diff --git a/lib/core/nanaxe_server_service.dart b/lib/core/nanaxe_server_service.dart index bc568f1..b295124 100644 --- a/lib/core/nanaxe_server_service.dart +++ b/lib/core/nanaxe_server_service.dart @@ -12,7 +12,7 @@ class NanaxeServerService { String? _baseUrl; String? _authToken; - + static const String _prefsUrlKey = 'nanaxe_server_url'; static const String _prefsTokenKey = 'nanaxe_server_token'; @@ -25,9 +25,10 @@ class NanaxeServerService { /// Настройка сервера Future configure(String baseUrl, {String? token}) async { - _baseUrl = baseUrl.replaceAll(RegExp(r'/+$'), ''); // Remove trailing slashes + _baseUrl = + baseUrl.replaceAll(RegExp(r'/+$'), ''); // Remove trailing slashes _authToken = token; - + final prefs = await SharedPreferences.getInstance(); await prefs.setString(_prefsUrlKey, _baseUrl!); if (token != null) { @@ -39,7 +40,7 @@ class NanaxeServerService { Future clearConfiguration() async { _baseUrl = null; _authToken = null; - + final prefs = await SharedPreferences.getInstance(); await prefs.remove(_prefsUrlKey); await prefs.remove(_prefsTokenKey); @@ -54,7 +55,8 @@ class NanaxeServerService { // ==================== AUTH ==================== /// Регистрация нового пользователя - Future> register(String email, String password, String username) async { + Future> register( + String email, String password, String username) async { if (_baseUrl == null) throw Exception('Server not configured'); final response = await http.post( @@ -68,7 +70,7 @@ class NanaxeServerService { ); final data = jsonDecode(response.body); - + if (response.statusCode == 201) { _authToken = data['token']; final prefs = await SharedPreferences.getInstance(); @@ -93,7 +95,7 @@ class NanaxeServerService { ); final data = jsonDecode(response.body); - + if (response.statusCode == 200) { _authToken = data['token']; final prefs = await SharedPreferences.getInstance(); @@ -323,11 +325,11 @@ class NanaxeServerService { final headers = { 'Content-Type': 'application/json', }; - + if (_authToken != null) { headers['Authorization'] = 'Bearer $_authToken'; } - + return headers; } diff --git a/server/api/node_modules/.bin/baseline-browser-mapping b/server/api/node_modules/.bin/baseline-browser-mapping new file mode 100644 index 0000000..7e4dd08 --- /dev/null +++ b/server/api/node_modules/.bin/baseline-browser-mapping @@ -0,0 +1,16 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) + if command -v cygpath > /dev/null 2>&1; then + basedir=`cygpath -w "$basedir"` + fi + ;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../baseline-browser-mapping/dist/cli.cjs" "$@" +else + exec node "$basedir/../baseline-browser-mapping/dist/cli.cjs" "$@" +fi diff --git a/server/api/node_modules/.bin/baseline-browser-mapping.cmd b/server/api/node_modules/.bin/baseline-browser-mapping.cmd new file mode 100644 index 0000000..724ac4d --- /dev/null +++ b/server/api/node_modules/.bin/baseline-browser-mapping.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\baseline-browser-mapping\dist\cli.cjs" %* diff --git a/server/api/node_modules/.bin/baseline-browser-mapping.ps1 b/server/api/node_modules/.bin/baseline-browser-mapping.ps1 new file mode 100644 index 0000000..049fe74 --- /dev/null +++ b/server/api/node_modules/.bin/baseline-browser-mapping.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../baseline-browser-mapping/dist/cli.cjs" $args + } else { + & "$basedir/node$exe" "$basedir/../baseline-browser-mapping/dist/cli.cjs" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../baseline-browser-mapping/dist/cli.cjs" $args + } else { + & "node$exe" "$basedir/../baseline-browser-mapping/dist/cli.cjs" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/server/api/node_modules/.bin/browserslist b/server/api/node_modules/.bin/browserslist new file mode 100644 index 0000000..60e71ad --- /dev/null +++ b/server/api/node_modules/.bin/browserslist @@ -0,0 +1,16 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) + if command -v cygpath > /dev/null 2>&1; then + basedir=`cygpath -w "$basedir"` + fi + ;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../browserslist/cli.js" "$@" +else + exec node "$basedir/../browserslist/cli.js" "$@" +fi diff --git a/server/api/node_modules/.bin/browserslist.cmd b/server/api/node_modules/.bin/browserslist.cmd new file mode 100644 index 0000000..f93c251 --- /dev/null +++ b/server/api/node_modules/.bin/browserslist.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\browserslist\cli.js" %* diff --git a/server/api/node_modules/.bin/browserslist.ps1 b/server/api/node_modules/.bin/browserslist.ps1 new file mode 100644 index 0000000..01e10a0 --- /dev/null +++ b/server/api/node_modules/.bin/browserslist.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../browserslist/cli.js" $args + } else { + & "$basedir/node$exe" "$basedir/../browserslist/cli.js" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../browserslist/cli.js" $args + } else { + & "node$exe" "$basedir/../browserslist/cli.js" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/server/api/node_modules/.bin/create-jest b/server/api/node_modules/.bin/create-jest new file mode 100644 index 0000000..162092d --- /dev/null +++ b/server/api/node_modules/.bin/create-jest @@ -0,0 +1,16 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) + if command -v cygpath > /dev/null 2>&1; then + basedir=`cygpath -w "$basedir"` + fi + ;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../create-jest/bin/create-jest.js" "$@" +else + exec node "$basedir/../create-jest/bin/create-jest.js" "$@" +fi diff --git a/server/api/node_modules/.bin/create-jest.cmd b/server/api/node_modules/.bin/create-jest.cmd new file mode 100644 index 0000000..585d103 --- /dev/null +++ b/server/api/node_modules/.bin/create-jest.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\create-jest\bin\create-jest.js" %* diff --git a/server/api/node_modules/.bin/create-jest.ps1 b/server/api/node_modules/.bin/create-jest.ps1 new file mode 100644 index 0000000..cf4288c --- /dev/null +++ b/server/api/node_modules/.bin/create-jest.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../create-jest/bin/create-jest.js" $args + } else { + & "$basedir/node$exe" "$basedir/../create-jest/bin/create-jest.js" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../create-jest/bin/create-jest.js" $args + } else { + & "node$exe" "$basedir/../create-jest/bin/create-jest.js" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/server/api/node_modules/.bin/esparse b/server/api/node_modules/.bin/esparse new file mode 100644 index 0000000..601762c --- /dev/null +++ b/server/api/node_modules/.bin/esparse @@ -0,0 +1,16 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) + if command -v cygpath > /dev/null 2>&1; then + basedir=`cygpath -w "$basedir"` + fi + ;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../esprima/bin/esparse.js" "$@" +else + exec node "$basedir/../esprima/bin/esparse.js" "$@" +fi diff --git a/server/api/node_modules/.bin/esparse.cmd b/server/api/node_modules/.bin/esparse.cmd new file mode 100644 index 0000000..2ca6d50 --- /dev/null +++ b/server/api/node_modules/.bin/esparse.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\esprima\bin\esparse.js" %* diff --git a/server/api/node_modules/.bin/esparse.ps1 b/server/api/node_modules/.bin/esparse.ps1 new file mode 100644 index 0000000..f19ed73 --- /dev/null +++ b/server/api/node_modules/.bin/esparse.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../esprima/bin/esparse.js" $args + } else { + & "$basedir/node$exe" "$basedir/../esprima/bin/esparse.js" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../esprima/bin/esparse.js" $args + } else { + & "node$exe" "$basedir/../esprima/bin/esparse.js" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/server/api/node_modules/.bin/esvalidate b/server/api/node_modules/.bin/esvalidate new file mode 100644 index 0000000..e2fee1f --- /dev/null +++ b/server/api/node_modules/.bin/esvalidate @@ -0,0 +1,16 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) + if command -v cygpath > /dev/null 2>&1; then + basedir=`cygpath -w "$basedir"` + fi + ;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../esprima/bin/esvalidate.js" "$@" +else + exec node "$basedir/../esprima/bin/esvalidate.js" "$@" +fi diff --git a/server/api/node_modules/.bin/esvalidate.cmd b/server/api/node_modules/.bin/esvalidate.cmd new file mode 100644 index 0000000..4c41643 --- /dev/null +++ b/server/api/node_modules/.bin/esvalidate.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\esprima\bin\esvalidate.js" %* diff --git a/server/api/node_modules/.bin/esvalidate.ps1 b/server/api/node_modules/.bin/esvalidate.ps1 new file mode 100644 index 0000000..23699d1 --- /dev/null +++ b/server/api/node_modules/.bin/esvalidate.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../esprima/bin/esvalidate.js" $args + } else { + & "$basedir/node$exe" "$basedir/../esprima/bin/esvalidate.js" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../esprima/bin/esvalidate.js" $args + } else { + & "node$exe" "$basedir/../esprima/bin/esvalidate.js" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/server/api/node_modules/.bin/import-local-fixture b/server/api/node_modules/.bin/import-local-fixture new file mode 100644 index 0000000..3a65441 --- /dev/null +++ b/server/api/node_modules/.bin/import-local-fixture @@ -0,0 +1,16 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) + if command -v cygpath > /dev/null 2>&1; then + basedir=`cygpath -w "$basedir"` + fi + ;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../import-local/fixtures/cli.js" "$@" +else + exec node "$basedir/../import-local/fixtures/cli.js" "$@" +fi diff --git a/server/api/node_modules/.bin/import-local-fixture.cmd b/server/api/node_modules/.bin/import-local-fixture.cmd new file mode 100644 index 0000000..5a3f685 --- /dev/null +++ b/server/api/node_modules/.bin/import-local-fixture.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\import-local\fixtures\cli.js" %* diff --git a/server/api/node_modules/.bin/import-local-fixture.ps1 b/server/api/node_modules/.bin/import-local-fixture.ps1 new file mode 100644 index 0000000..01ef784 --- /dev/null +++ b/server/api/node_modules/.bin/import-local-fixture.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../import-local/fixtures/cli.js" $args + } else { + & "$basedir/node$exe" "$basedir/../import-local/fixtures/cli.js" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../import-local/fixtures/cli.js" $args + } else { + & "node$exe" "$basedir/../import-local/fixtures/cli.js" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/server/api/node_modules/.bin/jest b/server/api/node_modules/.bin/jest new file mode 100644 index 0000000..61b6f56 --- /dev/null +++ b/server/api/node_modules/.bin/jest @@ -0,0 +1,16 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) + if command -v cygpath > /dev/null 2>&1; then + basedir=`cygpath -w "$basedir"` + fi + ;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../jest/bin/jest.js" "$@" +else + exec node "$basedir/../jest/bin/jest.js" "$@" +fi diff --git a/server/api/node_modules/.bin/jest.cmd b/server/api/node_modules/.bin/jest.cmd new file mode 100644 index 0000000..67a602a --- /dev/null +++ b/server/api/node_modules/.bin/jest.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\jest\bin\jest.js" %* diff --git a/server/api/node_modules/.bin/jest.ps1 b/server/api/node_modules/.bin/jest.ps1 new file mode 100644 index 0000000..78a2563 --- /dev/null +++ b/server/api/node_modules/.bin/jest.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../jest/bin/jest.js" $args + } else { + & "$basedir/node$exe" "$basedir/../jest/bin/jest.js" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../jest/bin/jest.js" $args + } else { + & "node$exe" "$basedir/../jest/bin/jest.js" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/server/api/node_modules/.bin/js-yaml b/server/api/node_modules/.bin/js-yaml new file mode 100644 index 0000000..82416ef --- /dev/null +++ b/server/api/node_modules/.bin/js-yaml @@ -0,0 +1,16 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) + if command -v cygpath > /dev/null 2>&1; then + basedir=`cygpath -w "$basedir"` + fi + ;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../js-yaml/bin/js-yaml.js" "$@" +else + exec node "$basedir/../js-yaml/bin/js-yaml.js" "$@" +fi diff --git a/server/api/node_modules/.bin/js-yaml.cmd b/server/api/node_modules/.bin/js-yaml.cmd new file mode 100644 index 0000000..453312b --- /dev/null +++ b/server/api/node_modules/.bin/js-yaml.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\js-yaml\bin\js-yaml.js" %* diff --git a/server/api/node_modules/.bin/js-yaml.ps1 b/server/api/node_modules/.bin/js-yaml.ps1 new file mode 100644 index 0000000..2acfc61 --- /dev/null +++ b/server/api/node_modules/.bin/js-yaml.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../js-yaml/bin/js-yaml.js" $args + } else { + & "$basedir/node$exe" "$basedir/../js-yaml/bin/js-yaml.js" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../js-yaml/bin/js-yaml.js" $args + } else { + & "node$exe" "$basedir/../js-yaml/bin/js-yaml.js" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/server/api/node_modules/.bin/jsesc b/server/api/node_modules/.bin/jsesc new file mode 100644 index 0000000..879c413 --- /dev/null +++ b/server/api/node_modules/.bin/jsesc @@ -0,0 +1,16 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) + if command -v cygpath > /dev/null 2>&1; then + basedir=`cygpath -w "$basedir"` + fi + ;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../jsesc/bin/jsesc" "$@" +else + exec node "$basedir/../jsesc/bin/jsesc" "$@" +fi diff --git a/server/api/node_modules/.bin/jsesc.cmd b/server/api/node_modules/.bin/jsesc.cmd new file mode 100644 index 0000000..eb41110 --- /dev/null +++ b/server/api/node_modules/.bin/jsesc.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\jsesc\bin\jsesc" %* diff --git a/server/api/node_modules/.bin/jsesc.ps1 b/server/api/node_modules/.bin/jsesc.ps1 new file mode 100644 index 0000000..6007e02 --- /dev/null +++ b/server/api/node_modules/.bin/jsesc.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../jsesc/bin/jsesc" $args + } else { + & "$basedir/node$exe" "$basedir/../jsesc/bin/jsesc" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../jsesc/bin/jsesc" $args + } else { + & "node$exe" "$basedir/../jsesc/bin/jsesc" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/server/api/node_modules/.bin/json5 b/server/api/node_modules/.bin/json5 new file mode 100644 index 0000000..abf72a4 --- /dev/null +++ b/server/api/node_modules/.bin/json5 @@ -0,0 +1,16 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) + if command -v cygpath > /dev/null 2>&1; then + basedir=`cygpath -w "$basedir"` + fi + ;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../json5/lib/cli.js" "$@" +else + exec node "$basedir/../json5/lib/cli.js" "$@" +fi diff --git a/server/api/node_modules/.bin/json5.cmd b/server/api/node_modules/.bin/json5.cmd new file mode 100644 index 0000000..95c137f --- /dev/null +++ b/server/api/node_modules/.bin/json5.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\json5\lib\cli.js" %* diff --git a/server/api/node_modules/.bin/json5.ps1 b/server/api/node_modules/.bin/json5.ps1 new file mode 100644 index 0000000..8700ddb --- /dev/null +++ b/server/api/node_modules/.bin/json5.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../json5/lib/cli.js" $args + } else { + & "$basedir/node$exe" "$basedir/../json5/lib/cli.js" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../json5/lib/cli.js" $args + } else { + & "node$exe" "$basedir/../json5/lib/cli.js" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/server/api/node_modules/.bin/mime b/server/api/node_modules/.bin/mime new file mode 100644 index 0000000..7751de3 --- /dev/null +++ b/server/api/node_modules/.bin/mime @@ -0,0 +1,16 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) + if command -v cygpath > /dev/null 2>&1; then + basedir=`cygpath -w "$basedir"` + fi + ;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../mime/cli.js" "$@" +else + exec node "$basedir/../mime/cli.js" "$@" +fi diff --git a/server/api/node_modules/.bin/mime.cmd b/server/api/node_modules/.bin/mime.cmd new file mode 100644 index 0000000..54491f1 --- /dev/null +++ b/server/api/node_modules/.bin/mime.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\mime\cli.js" %* diff --git a/server/api/node_modules/.bin/mime.ps1 b/server/api/node_modules/.bin/mime.ps1 new file mode 100644 index 0000000..2222f40 --- /dev/null +++ b/server/api/node_modules/.bin/mime.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../mime/cli.js" $args + } else { + & "$basedir/node$exe" "$basedir/../mime/cli.js" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../mime/cli.js" $args + } else { + & "node$exe" "$basedir/../mime/cli.js" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/server/api/node_modules/.bin/mkdirp b/server/api/node_modules/.bin/mkdirp new file mode 100644 index 0000000..1ab9c81 --- /dev/null +++ b/server/api/node_modules/.bin/mkdirp @@ -0,0 +1,16 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) + if command -v cygpath > /dev/null 2>&1; then + basedir=`cygpath -w "$basedir"` + fi + ;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../mkdirp/bin/cmd.js" "$@" +else + exec node "$basedir/../mkdirp/bin/cmd.js" "$@" +fi diff --git a/server/api/node_modules/.bin/mkdirp.cmd b/server/api/node_modules/.bin/mkdirp.cmd new file mode 100644 index 0000000..a865dd9 --- /dev/null +++ b/server/api/node_modules/.bin/mkdirp.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\mkdirp\bin\cmd.js" %* diff --git a/server/api/node_modules/.bin/mkdirp.ps1 b/server/api/node_modules/.bin/mkdirp.ps1 new file mode 100644 index 0000000..911e854 --- /dev/null +++ b/server/api/node_modules/.bin/mkdirp.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../mkdirp/bin/cmd.js" $args + } else { + & "$basedir/node$exe" "$basedir/../mkdirp/bin/cmd.js" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../mkdirp/bin/cmd.js" $args + } else { + & "node$exe" "$basedir/../mkdirp/bin/cmd.js" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/server/api/node_modules/.bin/node-which b/server/api/node_modules/.bin/node-which new file mode 100644 index 0000000..b49b03f --- /dev/null +++ b/server/api/node_modules/.bin/node-which @@ -0,0 +1,16 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) + if command -v cygpath > /dev/null 2>&1; then + basedir=`cygpath -w "$basedir"` + fi + ;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../which/bin/node-which" "$@" +else + exec node "$basedir/../which/bin/node-which" "$@" +fi diff --git a/server/api/node_modules/.bin/node-which.cmd b/server/api/node_modules/.bin/node-which.cmd new file mode 100644 index 0000000..8738aed --- /dev/null +++ b/server/api/node_modules/.bin/node-which.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\which\bin\node-which" %* diff --git a/server/api/node_modules/.bin/node-which.ps1 b/server/api/node_modules/.bin/node-which.ps1 new file mode 100644 index 0000000..cfb09e8 --- /dev/null +++ b/server/api/node_modules/.bin/node-which.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../which/bin/node-which" $args + } else { + & "$basedir/node$exe" "$basedir/../which/bin/node-which" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../which/bin/node-which" $args + } else { + & "node$exe" "$basedir/../which/bin/node-which" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/server/api/node_modules/.bin/nodemon b/server/api/node_modules/.bin/nodemon new file mode 100644 index 0000000..c477a18 --- /dev/null +++ b/server/api/node_modules/.bin/nodemon @@ -0,0 +1,16 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) + if command -v cygpath > /dev/null 2>&1; then + basedir=`cygpath -w "$basedir"` + fi + ;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../nodemon/bin/nodemon.js" "$@" +else + exec node "$basedir/../nodemon/bin/nodemon.js" "$@" +fi diff --git a/server/api/node_modules/.bin/nodemon.cmd b/server/api/node_modules/.bin/nodemon.cmd new file mode 100644 index 0000000..55acf8a --- /dev/null +++ b/server/api/node_modules/.bin/nodemon.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\nodemon\bin\nodemon.js" %* diff --git a/server/api/node_modules/.bin/nodemon.ps1 b/server/api/node_modules/.bin/nodemon.ps1 new file mode 100644 index 0000000..d4e3f5d --- /dev/null +++ b/server/api/node_modules/.bin/nodemon.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../nodemon/bin/nodemon.js" $args + } else { + & "$basedir/node$exe" "$basedir/../nodemon/bin/nodemon.js" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../nodemon/bin/nodemon.js" $args + } else { + & "node$exe" "$basedir/../nodemon/bin/nodemon.js" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/server/api/node_modules/.bin/nodetouch b/server/api/node_modules/.bin/nodetouch new file mode 100644 index 0000000..3e146b4 --- /dev/null +++ b/server/api/node_modules/.bin/nodetouch @@ -0,0 +1,16 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) + if command -v cygpath > /dev/null 2>&1; then + basedir=`cygpath -w "$basedir"` + fi + ;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../touch/bin/nodetouch.js" "$@" +else + exec node "$basedir/../touch/bin/nodetouch.js" "$@" +fi diff --git a/server/api/node_modules/.bin/nodetouch.cmd b/server/api/node_modules/.bin/nodetouch.cmd new file mode 100644 index 0000000..8298b91 --- /dev/null +++ b/server/api/node_modules/.bin/nodetouch.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\touch\bin\nodetouch.js" %* diff --git a/server/api/node_modules/.bin/nodetouch.ps1 b/server/api/node_modules/.bin/nodetouch.ps1 new file mode 100644 index 0000000..5f68b4c --- /dev/null +++ b/server/api/node_modules/.bin/nodetouch.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../touch/bin/nodetouch.js" $args + } else { + & "$basedir/node$exe" "$basedir/../touch/bin/nodetouch.js" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../touch/bin/nodetouch.js" $args + } else { + & "node$exe" "$basedir/../touch/bin/nodetouch.js" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/server/api/node_modules/.bin/parser b/server/api/node_modules/.bin/parser new file mode 100644 index 0000000..7696ad4 --- /dev/null +++ b/server/api/node_modules/.bin/parser @@ -0,0 +1,16 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) + if command -v cygpath > /dev/null 2>&1; then + basedir=`cygpath -w "$basedir"` + fi + ;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../@babel/parser/bin/babel-parser.js" "$@" +else + exec node "$basedir/../@babel/parser/bin/babel-parser.js" "$@" +fi diff --git a/server/api/node_modules/.bin/parser.cmd b/server/api/node_modules/.bin/parser.cmd new file mode 100644 index 0000000..1ad5c81 --- /dev/null +++ b/server/api/node_modules/.bin/parser.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\@babel\parser\bin\babel-parser.js" %* diff --git a/server/api/node_modules/.bin/parser.ps1 b/server/api/node_modules/.bin/parser.ps1 new file mode 100644 index 0000000..8926517 --- /dev/null +++ b/server/api/node_modules/.bin/parser.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../@babel/parser/bin/babel-parser.js" $args + } else { + & "$basedir/node$exe" "$basedir/../@babel/parser/bin/babel-parser.js" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../@babel/parser/bin/babel-parser.js" $args + } else { + & "node$exe" "$basedir/../@babel/parser/bin/babel-parser.js" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/server/api/node_modules/.bin/resolve b/server/api/node_modules/.bin/resolve new file mode 100644 index 0000000..c043cba --- /dev/null +++ b/server/api/node_modules/.bin/resolve @@ -0,0 +1,16 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) + if command -v cygpath > /dev/null 2>&1; then + basedir=`cygpath -w "$basedir"` + fi + ;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../resolve/bin/resolve" "$@" +else + exec node "$basedir/../resolve/bin/resolve" "$@" +fi diff --git a/server/api/node_modules/.bin/resolve.cmd b/server/api/node_modules/.bin/resolve.cmd new file mode 100644 index 0000000..1a017c4 --- /dev/null +++ b/server/api/node_modules/.bin/resolve.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\resolve\bin\resolve" %* diff --git a/server/api/node_modules/.bin/resolve.ps1 b/server/api/node_modules/.bin/resolve.ps1 new file mode 100644 index 0000000..f22b2d3 --- /dev/null +++ b/server/api/node_modules/.bin/resolve.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../resolve/bin/resolve" $args + } else { + & "$basedir/node$exe" "$basedir/../resolve/bin/resolve" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../resolve/bin/resolve" $args + } else { + & "node$exe" "$basedir/../resolve/bin/resolve" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/server/api/node_modules/.bin/semver b/server/api/node_modules/.bin/semver new file mode 100644 index 0000000..97c5327 --- /dev/null +++ b/server/api/node_modules/.bin/semver @@ -0,0 +1,16 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) + if command -v cygpath > /dev/null 2>&1; then + basedir=`cygpath -w "$basedir"` + fi + ;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../semver/bin/semver.js" "$@" +else + exec node "$basedir/../semver/bin/semver.js" "$@" +fi diff --git a/server/api/node_modules/.bin/semver.cmd b/server/api/node_modules/.bin/semver.cmd new file mode 100644 index 0000000..9913fa9 --- /dev/null +++ b/server/api/node_modules/.bin/semver.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\semver\bin\semver.js" %* diff --git a/server/api/node_modules/.bin/semver.ps1 b/server/api/node_modules/.bin/semver.ps1 new file mode 100644 index 0000000..314717a --- /dev/null +++ b/server/api/node_modules/.bin/semver.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../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 diff --git a/server/api/node_modules/.bin/update-browserslist-db b/server/api/node_modules/.bin/update-browserslist-db new file mode 100644 index 0000000..cced63c --- /dev/null +++ b/server/api/node_modules/.bin/update-browserslist-db @@ -0,0 +1,16 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) + if command -v cygpath > /dev/null 2>&1; then + basedir=`cygpath -w "$basedir"` + fi + ;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../update-browserslist-db/cli.js" "$@" +else + exec node "$basedir/../update-browserslist-db/cli.js" "$@" +fi diff --git a/server/api/node_modules/.bin/update-browserslist-db.cmd b/server/api/node_modules/.bin/update-browserslist-db.cmd new file mode 100644 index 0000000..2e14905 --- /dev/null +++ b/server/api/node_modules/.bin/update-browserslist-db.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\update-browserslist-db\cli.js" %* diff --git a/server/api/node_modules/.bin/update-browserslist-db.ps1 b/server/api/node_modules/.bin/update-browserslist-db.ps1 new file mode 100644 index 0000000..7abdf26 --- /dev/null +++ b/server/api/node_modules/.bin/update-browserslist-db.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../update-browserslist-db/cli.js" $args + } else { + & "$basedir/node$exe" "$basedir/../update-browserslist-db/cli.js" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../update-browserslist-db/cli.js" $args + } else { + & "node$exe" "$basedir/../update-browserslist-db/cli.js" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/server/api/node_modules/.bin/uuid b/server/api/node_modules/.bin/uuid new file mode 100644 index 0000000..0c2d469 --- /dev/null +++ b/server/api/node_modules/.bin/uuid @@ -0,0 +1,16 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) + if command -v cygpath > /dev/null 2>&1; then + basedir=`cygpath -w "$basedir"` + fi + ;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../uuid/dist/bin/uuid" "$@" +else + exec node "$basedir/../uuid/dist/bin/uuid" "$@" +fi diff --git a/server/api/node_modules/.bin/uuid.cmd b/server/api/node_modules/.bin/uuid.cmd new file mode 100644 index 0000000..0f2376e --- /dev/null +++ b/server/api/node_modules/.bin/uuid.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\uuid\dist\bin\uuid" %* diff --git a/server/api/node_modules/.bin/uuid.ps1 b/server/api/node_modules/.bin/uuid.ps1 new file mode 100644 index 0000000..7804628 --- /dev/null +++ b/server/api/node_modules/.bin/uuid.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../uuid/dist/bin/uuid" $args + } else { + & "$basedir/node$exe" "$basedir/../uuid/dist/bin/uuid" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../uuid/dist/bin/uuid" $args + } else { + & "node$exe" "$basedir/../uuid/dist/bin/uuid" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/server/api/node_modules/.bin/yaml b/server/api/node_modules/.bin/yaml new file mode 100644 index 0000000..c68b081 --- /dev/null +++ b/server/api/node_modules/.bin/yaml @@ -0,0 +1,16 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) + if command -v cygpath > /dev/null 2>&1; then + basedir=`cygpath -w "$basedir"` + fi + ;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../yaml/bin.mjs" "$@" +else + exec node "$basedir/../yaml/bin.mjs" "$@" +fi diff --git a/server/api/node_modules/.bin/yaml.cmd b/server/api/node_modules/.bin/yaml.cmd new file mode 100644 index 0000000..f76090f --- /dev/null +++ b/server/api/node_modules/.bin/yaml.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\yaml\bin.mjs" %* diff --git a/server/api/node_modules/.bin/yaml.ps1 b/server/api/node_modules/.bin/yaml.ps1 new file mode 100644 index 0000000..6820582 --- /dev/null +++ b/server/api/node_modules/.bin/yaml.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../yaml/bin.mjs" $args + } else { + & "$basedir/node$exe" "$basedir/../yaml/bin.mjs" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../yaml/bin.mjs" $args + } else { + & "node$exe" "$basedir/../yaml/bin.mjs" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/server/api/node_modules/.package-lock.json b/server/api/node_modules/.package-lock.json new file mode 100644 index 0000000..e0973d9 --- /dev/null +++ b/server/api/node_modules/.package-lock.json @@ -0,0 +1,5411 @@ +{ + "name": "nanaxe-api-server", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "node_modules/@babel/code-frame": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz", + "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.28.5", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.0.tgz", + "integrity": "sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz", + "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.0", + "@babel/generator": "^7.29.0", + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-module-transforms": "^7.28.6", + "@babel/helpers": "^7.28.6", + "@babel/parser": "^7.29.0", + "@babel/template": "^7.28.6", + "@babel/traverse": "^7.29.0", + "@babel/types": "^7.29.0", + "@jridgewell/remapping": "^2.3.5", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@babel/core/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==", + "dev": true, + "license": "MIT" + }, + "node_modules/@babel/generator": { + "version": "7.29.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz", + "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.0", + "@babel/types": "^7.29.0", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz", + "integrity": "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.28.6", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz", + "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.28.6", + "@babel/types": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz", + "integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.28.6", + "@babel/helper-validator-identifier": "^7.28.5", + "@babel/traverse": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz", + "integrity": "sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.2.tgz", + "integrity": "sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.28.6", + "@babel/types": "^7.29.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.2.tgz", + "integrity": "sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.0" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.28.6.tgz", + "integrity": "sha512-jiLC0ma9XkQT3TKJ9uYvlakm66Pamywo+qwL+oL8HJOvc6TWdZXVfhqJr8CCzbSGUAbDOzlGHJC1U+vRfLQDvw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.28.6.tgz", + "integrity": "sha512-wgEmr06G6sIpqr8YDwA2dSRTE3bJ+V0IfpzfSY3Lfgd7YWOaAdlykvJi13ZKBt8cZHfgH1IXN+CL656W3uUa4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.28.6.tgz", + "integrity": "sha512-+nDNmQye7nlnuuHDboPbGm00Vqg3oO8niRRL27/4LYHUsHYh0zJ1xWOz0uRwNFmM1Avzk8wZbc6rdiYhomzv/A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz", + "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.28.6", + "@babel/parser": "^7.28.6", + "@babel/types": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz", + "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.0", + "@babel/generator": "^7.29.0", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.29.0", + "@babel/template": "^7.28.6", + "@babel/types": "^7.29.0", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@babel/traverse/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==", + "dev": true, + "license": "MIT" + }, + "node_modules/@babel/types": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz", + "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.6.tgz", + "integrity": "sha512-+Sg6GCR/wy1oSmQDFq4LQDAhm3ETKnorxN+y5nbLULOR3P0c14f2Wurzj3/xqPXtasLFfHd5iRFQ7AJt4KH2cw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/core": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/environment": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-get-type": "^29.6.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^6.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.18", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-result": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/test-result": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@kwsites/file-exists": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@kwsites/file-exists/-/file-exists-1.1.1.tgz", + "integrity": "sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==", + "license": "MIT", + "dependencies": { + "debug": "^4.1.1" + } + }, + "node_modules/@kwsites/file-exists/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/@kwsites/file-exists/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/@kwsites/promise-deferred": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@kwsites/promise-deferred/-/promise-deferred-1.1.1.tgz", + "integrity": "sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==", + "license": "MIT" + }, + "node_modules/@simple-git/args-pathspec": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@simple-git/args-pathspec/-/args-pathspec-1.0.3.tgz", + "integrity": "sha512-ngJMaHlsWDTfjyq9F3VIQ8b7NXbBLq5j9i5bJ6XLYtD6qlDXT7fdKY2KscWWUF8t18xx052Y/PUO1K1TRc9yKA==", + "license": "MIT" + }, + "node_modules/@simple-git/argv-parser": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@simple-git/argv-parser/-/argv-parser-1.1.1.tgz", + "integrity": "sha512-Q9lBcfQ+VQCpQqGJFHe5yooOS5hGdLFFbJ5R+R5aDsnkPCahtn1hSkMcORX65J2Z5lxSkD0lQorMsncuBQxYUw==", + "license": "MIT", + "dependencies": { + "@simple-git/args-pathspec": "^1.0.3" + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.10", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.10.tgz", + "integrity": "sha512-MTBk/3jGLNB2tVxv6uLlFh1iu64iYOQ2PbdOSK3NW8JZsmlaOh2q6sdtKowBhfw8QFLmYNzTW4/oK4uATIi6ZA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@sinonjs/commons": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@sinonjs/commons": "^3.0.0" + } + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", + "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.2" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/node": { + "version": "25.6.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.6.0.tgz", + "integrity": "sha512-+qIYRKdNYJwY3vRCZMdJbPLJAtGjQBudzZzdzwQYkEPQd+PJGixUL5QfvCLDaULoLv+RhT3LDkwEfKaAkgSmNQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~7.19.0" + } + }, + "node_modules/@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/yargs": { + "version": "17.0.35", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.35.tgz", + "integrity": "sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "license": "MIT", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/append-field": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", + "integrity": "sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==", + "license": "MIT" + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "license": "MIT" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, + "node_modules/axios": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.15.1.tgz", + "integrity": "sha512-WOG+Jj8ZOvR0a3rAn+Tuf1UQJRxw5venr6DgdbJzngJE3qG7X0kL83CZGpdHMxEm+ZK3seAbvFsw4FfOfP9vxg==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.11", + "form-data": "^4.0.5", + "proxy-from-env": "^2.1.0" + } + }, + "node_modules/babel-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/transform": "^29.7.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.6.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.2.0.tgz", + "integrity": "sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-import-attributes": "^7.24.7", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5" + }, + "peerDependencies": { + "@babel/core": "^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/babel-preset-jest": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-plugin-jest-hoist": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/baseline-browser-mapping": { + "version": "2.10.20", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.20.tgz", + "integrity": "sha512-1AaXxEPfXT+GvTBJFuy4yXVHWJBXa4OdbIebGN/wX5DlsIkU0+wzGnd2lOzokSk51d5LUmqjgBLRLlypLUqInQ==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.cjs" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/basic-auth": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", + "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "5.1.2" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/basic-auth/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/bcryptjs": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz", + "integrity": "sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==", + "license": "MIT" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/body-parser": { + "version": "1.20.4", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.4.tgz", + "integrity": "sha512-ZTgYYLMOXY9qKU/57FAo8F+HA2dGX7bqGc71txDRC1rS4frdFI5R7NhluHxH6M0YItAP0sHB4uqAOcYKxO6uGA==", + "license": "MIT", + "dependencies": { + "bytes": "~3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "~1.2.0", + "http-errors": "~2.0.1", + "iconv-lite": "~0.4.24", + "on-finished": "~2.4.1", + "qs": "~6.14.0", + "raw-body": "~2.5.3", + "type-is": "~1.6.18", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", + "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.28.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.2.tgz", + "integrity": "sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "baseline-browser-mapping": "^2.10.12", + "caniuse-lite": "^1.0.30001782", + "electron-to-chromium": "^1.5.328", + "node-releases": "^2.0.36", + "update-browserslist-db": "^1.2.3" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==", + "license": "BSD-3-Clause" + }, + "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==", + "license": "MIT" + }, + "node_modules/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "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==", + "dev": true, + "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/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz", + "integrity": "sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.3.tgz", + "integrity": "sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw==", + "dev": true, + "license": "MIT" + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "engines": [ + "node >= 0.8" + ], + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cookie": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.7.tgz", + "integrity": "sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==", + "license": "MIT" + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "license": "MIT" + }, + "node_modules/cors": { + "version": "2.8.6", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.6.tgz", + "integrity": "sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw==", + "license": "MIT", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/create-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" + }, + "bin": { + "create-jest": "bin/create-jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/dedent": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.7.2.tgz", + "integrity": "sha512-WzMx3mW98SN+zn3hgemf4OzdmyNhhhKz5Ay0pUfQiMQ3e1g+xmTJWp/pKdwKVXhdSkAEGIIzqeuWrL3mV/AXbA==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "license": "MIT", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/dotenv": { + "version": "16.6.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.6.1.tgz", + "integrity": "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "license": "Apache-2.0", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.340", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.340.tgz", + "integrity": "sha512-908qahOGocRMinT2nM3ajCEM99H4iPdv84eagPP3FfZy/1ZGeOy2CZYzjhms81ckOPCXPlW7LkY4XpxD8r1DrA==", + "dev": true, + "license": "ISC" + }, + "node_modules/emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/error-ex": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", + "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT" + }, + "node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/express": { + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.22.1.tgz", + "integrity": "sha512-F2X8g9P1X7uCPZMA3MVf9wcTqlyNp7IhH5qPCI0izhaOIYXaW9L535tGA3qmjRzpH+bZczqq7hVKxTR4NWnu+g==", + "license": "MIT", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "~1.20.3", + "content-disposition": "~0.5.4", + "content-type": "~1.0.4", + "cookie": "~0.7.1", + "cookie-signature": "~1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.3.1", + "fresh": "~0.5.2", + "http-errors": "~2.0.0", + "merge-descriptors": "1.0.3", + "methods": "~1.1.2", + "on-finished": "~2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "~0.1.12", + "proxy-addr": "~2.0.7", + "qs": "~6.14.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "~0.19.0", + "serve-static": "~1.16.2", + "setprototypeof": "1.2.0", + "statuses": "~2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/express-rate-limit": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-7.5.1.tgz", + "integrity": "sha512-7iN8iPMDzOMHPUYllBEsQdWVB6fPDMPqwjBaFrgr4Jgr/+okjvzAy+UHlYYL/Vs0OsOrMkwS6PJDkFlJwoxUnw==", + "license": "MIT", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/express-rate-limit" + }, + "peerDependencies": { + "express": ">= 4.11" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.2.tgz", + "integrity": "sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "on-finished": "~2.4.1", + "parseurl": "~1.3.3", + "statuses": "~2.0.2", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/follow-redirects": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.16.0.tgz", + "integrity": "sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz", + "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "11.3.4", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.4.tgz", + "integrity": "sha512-CTXd6rk/M3/ULNQj8FBqBWHYBVYybQ3VPBw0xGKFe3tuH7ytT6ACnvzpIQ3UZtB8yvUKC2cXn1a+x+5EVQLovA==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, + "license": "ISC" + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.3.tgz", + "integrity": "sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/helmet": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/helmet/-/helmet-7.2.0.tgz", + "integrity": "sha512-ZRiwvN089JfMXokizgqEPXsl2Guk094yExfoDXR0cBYWxtBbaSww/w+vT4WEJsBW2iTUi1GgZ6swmoug3Oy4Xw==", + "license": "MIT", + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true, + "license": "MIT" + }, + "node_modules/http-errors": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", + "license": "MIT", + "dependencies": { + "depd": "~2.0.0", + "inherits": "~2.0.4", + "setprototypeof": "~1.2.0", + "statuses": "~2.0.2", + "toidentifier": "~1.0.1" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", + "dev": true, + "license": "ISC" + }, + "node_modules/import-local": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", + "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", + "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/istanbul-lib-source-maps/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==", + "dev": true, + "license": "MIT" + }, + "node_modules/istanbul-reports": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz", + "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", + "import-local": "^3.0.2", + "jest-cli": "^29.7.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "execa": "^5.0.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-circus": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^1.0.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.7.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-cli": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "create-jest": "^29.7.0", + "exit": "^0.1.2", + "import-local": "^3.0.2", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-config": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-docblock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-each": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-environment-node": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-leak-detector": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-message-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-mock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runner": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runtime": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-snapshot": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "natural-compare": "^1.4.0", + "pretty-format": "^29.7.0", + "semver": "^7.5.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "leven": "^3.1.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watcher": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.7.0", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz", + "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonwebtoken": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.3.tgz", + "integrity": "sha512-MT/xP0CrubFRNLNKvxJ2BYfy53Zkm++5bX9dtuPbqAeQpTVe0MQTFhao8+Cp//EmJp244xt6Drw/GVEGCUj40g==", + "license": "MIT", + "dependencies": { + "jws": "^4.0.1", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=12", + "npm": ">=6" + } + }, + "node_modules/jsonwebtoken/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/jsonwebtoken/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/jwa": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.1.tgz", + "integrity": "sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==", + "license": "MIT", + "dependencies": { + "buffer-equal-constant-time": "^1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jws": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.1.tgz", + "integrity": "sha512-EKI/M/yqPncGUUh44xz0PxSidXFr/+r0pA70+gIYhjv+et7yxM+s29Y+VGDkovRofQem0fs7Uvf4+YmAdyRduA==", + "license": "MIT", + "dependencies": { + "jwa": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true, + "license": "MIT" + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==", + "license": "MIT" + }, + "node_modules/lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==", + "license": "MIT" + }, + "node_modules/lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==", + "license": "MIT" + }, + "node_modules/lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==", + "license": "MIT" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "license": "MIT" + }, + "node_modules/lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", + "license": "MIT" + }, + "node_modules/lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", + "license": "MIT" + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true, + "license": "MIT" + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "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/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/morgan": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.1.tgz", + "integrity": "sha512-223dMRJtI/l25dJKWpgij2cMtywuG/WiUKXdvwfbhGKBhy1puASqXwFzmWZ7+K73vUPoR7SS2Qz2cI/g9MKw0A==", + "license": "MIT", + "dependencies": { + "basic-auth": "~2.0.1", + "debug": "2.6.9", + "depd": "~2.0.0", + "on-finished": "~2.3.0", + "on-headers": "~1.1.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/morgan/node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/multer": { + "version": "1.4.5-lts.2", + "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.5-lts.2.tgz", + "integrity": "sha512-VzGiVigcG9zUAoCNU+xShztrlr1auZOlurXynNvO9GiWD1/mTBbUljOKY+qMeazBqXgRnjzeEgJI/wyjJUHg9A==", + "deprecated": "Multer 1.x is impacted by a number of vulnerabilities, which have been patched in 2.x. You should upgrade to the latest 2.x version.", + "license": "MIT", + "dependencies": { + "append-field": "^1.0.0", + "busboy": "^1.0.0", + "concat-stream": "^1.5.2", + "mkdirp": "^0.5.4", + "object-assign": "^4.1.1", + "type-is": "^1.6.4", + "xtend": "^4.0.0" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-releases": { + "version": "2.0.37", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.37.tgz", + "integrity": "sha512-1h5gKZCF+pO/o3Iqt5Jp7wc9rH3eJJ0+nh/CIoiRwjRxde/hAHyLPXYN4V3CqKAbiZPSeJFSWHmJsbkicta0Eg==", + "dev": true, + "license": "MIT" + }, + "node_modules/nodemon": { + "version": "3.1.14", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.1.14.tgz", + "integrity": "sha512-jakjZi93UtB3jHMWsXL68FXSAosbLfY0In5gtKq3niLSkrWznrVBzXFNOEMJUfc9+Ke7SHWoAZsiMkNP3vq6Jw==", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": "^3.5.2", + "debug": "^4", + "ignore-by-default": "^1.0.1", + "minimatch": "^10.2.1", + "pstree.remy": "^1.1.8", + "semver": "^7.5.3", + "simple-update-notifier": "^2.0.0", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5" + }, + "bin": { + "nodemon": "bin/nodemon.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" + } + }, + "node_modules/nodemon/node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/nodemon/node_modules/brace-expansion": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz", + "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/nodemon/node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/nodemon/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/nodemon/node_modules/minimatch": { + "version": "10.2.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", + "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "brace-expansion": "^5.0.5" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/nodemon/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==", + "dev": true, + "license": "MIT" + }, + "node_modules/nodemon/node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/nodemon/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.1.0.tgz", + "integrity": "sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-locate/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-to-regexp": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.13.tgz", + "integrity": "sha512-A/AGNMFN3c8bOlvV9RreMdrv7jsmF9XIfDeCd87+I8RNg6s78BhJxMu69NEMHBSJFxKidViTEdruRwEk/WIKqA==", + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pirates": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", + "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "license": "MIT" + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-from-env": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-2.1.0.tgz", + "integrity": "sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "dev": true, + "license": "MIT" + }, + "node_modules/pure-rand": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", + "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ], + "license": "MIT" + }, + "node_modules/qs": { + "version": "6.14.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.2.tgz", + "integrity": "sha512-V/yCWTTF7VJ9hIh18Ugr2zhJMP01MY7c5kh4J870L7imm6/DIzBsNLTXzMwUA3yZ5b/KBqLx8Kp3uRvd7xSe3Q==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.3.tgz", + "integrity": "sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==", + "license": "MIT", + "dependencies": { + "bytes": "~3.1.2", + "http-errors": "~2.0.1", + "iconv-lite": "~0.4.24", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" + }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.12", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.12.tgz", + "integrity": "sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve.exports": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.3.tgz", + "integrity": "sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "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/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/send": { + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.2.tgz", + "integrity": "sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "~0.5.2", + "http-errors": "~2.0.1", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "~2.4.1", + "range-parser": "~1.2.1", + "statuses": "~2.0.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/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/serve-static": { + "version": "1.16.3", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.3.tgz", + "integrity": "sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==", + "license": "MIT", + "dependencies": { + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "~0.19.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz", + "integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/simple-git": { + "version": "3.36.0", + "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-3.36.0.tgz", + "integrity": "sha512-cGQjLjK8bxJw4QuYT7gxHw3/IouVESbhahSsHrX97MzCL1gu2u7oy38W6L2ZIGECEfIBG4BabsWDPjBxJENv9Q==", + "license": "MIT", + "dependencies": { + "@kwsites/file-exists": "^1.1.1", + "@kwsites/promise-deferred": "^1.1.1", + "@simple-git/args-pathspec": "^1.0.3", + "@simple-git/argv-parser": "^1.1.0", + "debug": "^4.4.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/steveukx/git-js?sponsor=1" + } + }, + "node_modules/simple-git/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/simple-git/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/simple-update-notifier": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", + "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/simple-update-notifier/node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true, + "license": "MIT" + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "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-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/statuses": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "license": "ISC", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/touch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.1.tgz", + "integrity": "sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==", + "dev": true, + "license": "ISC", + "bin": { + "nodetouch": "bin/nodetouch.js" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "license": "MIT", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "license": "MIT" + }, + "node_modules/undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "dev": true, + "license": "MIT" + }, + "node_modules/undici-types": { + "version": "7.19.2", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.19.2.tgz", + "integrity": "sha512-qYVnV5OEm2AW8cJMCpdV20CDyaN3g0AjDlOGf1OW4iaDEx8MwdtChUp4zu4H0VP3nDRF/8RKWH+IPp9uW0YGZg==", + "dev": true, + "license": "MIT" + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "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/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-to-istanbul": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", + "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==", + "dev": true, + "license": "ISC", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.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" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" + }, + "node_modules/yaml": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.3.tgz", + "integrity": "sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==", + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14.6" + }, + "funding": { + "url": "https://github.com/sponsors/eemeli" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/server/api/node_modules/@babel/code-frame/LICENSE b/server/api/node_modules/@babel/code-frame/LICENSE new file mode 100644 index 0000000..f31575e --- /dev/null +++ b/server/api/node_modules/@babel/code-frame/LICENSE @@ -0,0 +1,22 @@ +MIT License + +Copyright (c) 2014-present Sebastian McKenzie and other contributors + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/server/api/node_modules/@babel/code-frame/README.md b/server/api/node_modules/@babel/code-frame/README.md new file mode 100644 index 0000000..7160755 --- /dev/null +++ b/server/api/node_modules/@babel/code-frame/README.md @@ -0,0 +1,19 @@ +# @babel/code-frame + +> Generate errors that contain a code frame that point to source locations. + +See our website [@babel/code-frame](https://babeljs.io/docs/babel-code-frame) for more information. + +## Install + +Using npm: + +```sh +npm install --save-dev @babel/code-frame +``` + +or using yarn: + +```sh +yarn add @babel/code-frame --dev +``` diff --git a/server/api/node_modules/@babel/code-frame/lib/index.js b/server/api/node_modules/@babel/code-frame/lib/index.js new file mode 100644 index 0000000..9c5db40 --- /dev/null +++ b/server/api/node_modules/@babel/code-frame/lib/index.js @@ -0,0 +1,217 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +var picocolors = require('picocolors'); +var jsTokens = require('js-tokens'); +var helperValidatorIdentifier = require('@babel/helper-validator-identifier'); + +function isColorSupported() { + return (typeof process === "object" && (process.env.FORCE_COLOR === "0" || process.env.FORCE_COLOR === "false") ? false : picocolors.isColorSupported + ); +} +const compose = (f, g) => v => f(g(v)); +function buildDefs(colors) { + return { + keyword: colors.cyan, + capitalized: colors.yellow, + jsxIdentifier: colors.yellow, + punctuator: colors.yellow, + number: colors.magenta, + string: colors.green, + regex: colors.magenta, + comment: colors.gray, + invalid: compose(compose(colors.white, colors.bgRed), colors.bold), + gutter: colors.gray, + marker: compose(colors.red, colors.bold), + message: compose(colors.red, colors.bold), + reset: colors.reset + }; +} +const defsOn = buildDefs(picocolors.createColors(true)); +const defsOff = buildDefs(picocolors.createColors(false)); +function getDefs(enabled) { + return enabled ? defsOn : defsOff; +} + +const sometimesKeywords = new Set(["as", "async", "from", "get", "of", "set"]); +const NEWLINE$1 = /\r\n|[\n\r\u2028\u2029]/; +const BRACKET = /^[()[\]{}]$/; +let tokenize; +const JSX_TAG = /^[a-z][\w-]*$/i; +const getTokenType = function (token, offset, text) { + if (token.type === "name") { + const tokenValue = token.value; + if (helperValidatorIdentifier.isKeyword(tokenValue) || helperValidatorIdentifier.isStrictReservedWord(tokenValue, true) || sometimesKeywords.has(tokenValue)) { + return "keyword"; + } + if (JSX_TAG.test(tokenValue) && (text[offset - 1] === "<" || text.slice(offset - 2, offset) === " defs[type](str)).join("\n"); + } else { + highlighted += value; + } + } + return highlighted; +} + +let deprecationWarningShown = false; +const NEWLINE = /\r\n|[\n\r\u2028\u2029]/; +function getMarkerLines(loc, source, opts, startLineBaseZero) { + const startLoc = Object.assign({ + column: 0, + line: -1 + }, loc.start); + const endLoc = Object.assign({}, startLoc, loc.end); + const { + linesAbove = 2, + linesBelow = 3 + } = opts || {}; + const startLine = startLoc.line - startLineBaseZero; + const startColumn = startLoc.column; + const endLine = endLoc.line - startLineBaseZero; + const endColumn = endLoc.column; + let start = Math.max(startLine - (linesAbove + 1), 0); + let end = Math.min(source.length, endLine + linesBelow); + if (startLine === -1) { + start = 0; + } + if (endLine === -1) { + end = source.length; + } + const lineDiff = endLine - startLine; + const markerLines = {}; + if (lineDiff) { + for (let i = 0; i <= lineDiff; i++) { + const lineNumber = i + startLine; + if (!startColumn) { + markerLines[lineNumber] = true; + } else if (i === 0) { + const sourceLength = source[lineNumber - 1].length; + markerLines[lineNumber] = [startColumn, sourceLength - startColumn + 1]; + } else if (i === lineDiff) { + markerLines[lineNumber] = [0, endColumn]; + } else { + const sourceLength = source[lineNumber - i].length; + markerLines[lineNumber] = [0, sourceLength]; + } + } + } else { + if (startColumn === endColumn) { + if (startColumn) { + markerLines[startLine] = [startColumn, 0]; + } else { + markerLines[startLine] = true; + } + } else { + markerLines[startLine] = [startColumn, endColumn - startColumn]; + } + } + return { + start, + end, + markerLines + }; +} +function codeFrameColumns(rawLines, loc, opts = {}) { + const shouldHighlight = opts.forceColor || isColorSupported() && opts.highlightCode; + const startLineBaseZero = (opts.startLine || 1) - 1; + const defs = getDefs(shouldHighlight); + const lines = rawLines.split(NEWLINE); + const { + start, + end, + markerLines + } = getMarkerLines(loc, lines, opts, startLineBaseZero); + const hasColumns = loc.start && typeof loc.start.column === "number"; + const numberMaxWidth = String(end + startLineBaseZero).length; + const highlightedLines = shouldHighlight ? highlight(rawLines) : rawLines; + let frame = highlightedLines.split(NEWLINE, end).slice(start, end).map((line, index) => { + const number = start + 1 + index; + const paddedNumber = ` ${number + startLineBaseZero}`.slice(-numberMaxWidth); + const gutter = ` ${paddedNumber} |`; + const hasMarker = markerLines[number]; + const lastMarkerLine = !markerLines[number + 1]; + if (hasMarker) { + let markerLine = ""; + if (Array.isArray(hasMarker)) { + const markerSpacing = line.slice(0, Math.max(hasMarker[0] - 1, 0)).replace(/[^\t]/g, " "); + const numberOfMarkers = hasMarker[1] || 1; + markerLine = ["\n ", defs.gutter(gutter.replace(/\d/g, " ")), " ", markerSpacing, defs.marker("^").repeat(numberOfMarkers)].join(""); + if (lastMarkerLine && opts.message) { + markerLine += " " + defs.message(opts.message); + } + } + return [defs.marker(">"), defs.gutter(gutter), line.length > 0 ? ` ${line}` : "", markerLine].join(""); + } else { + return ` ${defs.gutter(gutter)}${line.length > 0 ? ` ${line}` : ""}`; + } + }).join("\n"); + if (opts.message && !hasColumns) { + frame = `${" ".repeat(numberMaxWidth + 1)}${opts.message}\n${frame}`; + } + if (shouldHighlight) { + return defs.reset(frame); + } else { + return frame; + } +} +function index (rawLines, lineNumber, colNumber, opts = {}) { + if (!deprecationWarningShown) { + deprecationWarningShown = true; + const message = "Passing lineNumber and colNumber is deprecated to @babel/code-frame. Please use `codeFrameColumns`."; + if (process.emitWarning) { + process.emitWarning(message, "DeprecationWarning"); + } else { + const deprecationError = new Error(message); + deprecationError.name = "DeprecationWarning"; + console.warn(new Error(message)); + } + } + colNumber = Math.max(colNumber, 0); + const location = { + start: { + column: colNumber, + line: lineNumber + } + }; + return codeFrameColumns(rawLines, location, opts); +} + +exports.codeFrameColumns = codeFrameColumns; +exports.default = index; +exports.highlight = highlight; +//# sourceMappingURL=index.js.map diff --git a/server/api/node_modules/@babel/code-frame/lib/index.js.map b/server/api/node_modules/@babel/code-frame/lib/index.js.map new file mode 100644 index 0000000..6b85ae4 --- /dev/null +++ b/server/api/node_modules/@babel/code-frame/lib/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../src/defs.ts","../src/highlight.ts","../src/index.ts"],"sourcesContent":["import picocolors, { createColors } from \"picocolors\";\nimport type { Colors, Formatter } from \"picocolors/types\";\n\nexport function isColorSupported() {\n return (\n // See https://github.com/alexeyraspopov/picocolors/issues/62\n typeof process === \"object\" &&\n (process.env.FORCE_COLOR === \"0\" || process.env.FORCE_COLOR === \"false\")\n ? false\n : picocolors.isColorSupported\n );\n}\n\nexport type InternalTokenType =\n | \"keyword\"\n | \"capitalized\"\n | \"jsxIdentifier\"\n | \"punctuator\"\n | \"number\"\n | \"string\"\n | \"regex\"\n | \"comment\"\n | \"invalid\";\n\ntype UITokens = \"gutter\" | \"marker\" | \"message\";\n\nexport type Defs = Record;\n\nconst compose: (f: (gv: U) => V, g: (v: T) => U) => (v: T) => V =\n (f, g) => v =>\n f(g(v));\n\n/**\n * Styles for token types.\n */\nfunction buildDefs(colors: Colors): Defs {\n return {\n keyword: colors.cyan,\n capitalized: colors.yellow,\n jsxIdentifier: colors.yellow,\n punctuator: colors.yellow,\n number: colors.magenta,\n string: colors.green,\n regex: colors.magenta,\n comment: colors.gray,\n invalid: compose(compose(colors.white, colors.bgRed), colors.bold),\n\n gutter: colors.gray,\n marker: compose(colors.red, colors.bold),\n message: compose(colors.red, colors.bold),\n\n reset: colors.reset,\n };\n}\n\nconst defsOn = buildDefs(createColors(true));\nconst defsOff = buildDefs(createColors(false));\n\nexport function getDefs(enabled: boolean): Defs {\n return enabled ? defsOn : defsOff;\n}\n","import type { Token as JSToken, JSXToken } from \"js-tokens\";\nimport jsTokens from \"js-tokens\";\n// We inline this package\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport * as charCodes from \"charcodes\";\n\nimport {\n isStrictReservedWord,\n isKeyword,\n} from \"@babel/helper-validator-identifier\";\n\nimport { getDefs, type InternalTokenType } from \"./defs.ts\";\n\n/**\n * Names that are always allowed as identifiers, but also appear as keywords\n * within certain syntactic productions.\n *\n * https://tc39.es/ecma262/#sec-keywords-and-reserved-words\n *\n * `target` has been omitted since it is very likely going to be a false\n * positive.\n */\nconst sometimesKeywords = new Set([\"as\", \"async\", \"from\", \"get\", \"of\", \"set\"]);\n\ntype Token = {\n type: InternalTokenType | \"uncolored\";\n value: string;\n};\n\n/**\n * RegExp to test for newlines in terminal.\n */\nconst NEWLINE = /\\r\\n|[\\n\\r\\u2028\\u2029]/;\n\n/**\n * RegExp to test for the three types of brackets.\n */\nconst BRACKET = /^[()[\\]{}]$/;\n\nlet tokenize: (\n text: string,\n) => Generator<{ type: InternalTokenType | \"uncolored\"; value: string }>;\n\nif (process.env.BABEL_8_BREAKING) {\n /**\n * Get the type of token, specifying punctuator type.\n */\n const getTokenType = function (\n token: JSToken | JSXToken,\n ): InternalTokenType | \"uncolored\" {\n if (token.type === \"IdentifierName\") {\n const tokenValue = token.value;\n if (\n isKeyword(tokenValue) ||\n isStrictReservedWord(tokenValue, true) ||\n sometimesKeywords.has(tokenValue)\n ) {\n return \"keyword\";\n }\n\n const firstChar = tokenValue.charCodeAt(0);\n if (firstChar < 128) {\n // ASCII characters\n if (\n firstChar >= charCodes.uppercaseA &&\n firstChar <= charCodes.uppercaseZ\n ) {\n return \"capitalized\";\n }\n } else {\n const firstChar = String.fromCodePoint(tokenValue.codePointAt(0));\n if (firstChar !== firstChar.toLowerCase()) {\n return \"capitalized\";\n }\n }\n }\n\n if (token.type === \"Punctuator\" && BRACKET.test(token.value)) {\n return \"uncolored\";\n }\n\n if (token.type === \"Invalid\" && token.value === \"@\") {\n return \"punctuator\";\n }\n\n switch (token.type) {\n case \"NumericLiteral\":\n return \"number\";\n\n case \"StringLiteral\":\n case \"JSXString\":\n case \"NoSubstitutionTemplate\":\n return \"string\";\n\n case \"RegularExpressionLiteral\":\n return \"regex\";\n\n case \"Punctuator\":\n case \"JSXPunctuator\":\n return \"punctuator\";\n\n case \"MultiLineComment\":\n case \"SingleLineComment\":\n return \"comment\";\n\n case \"Invalid\":\n case \"JSXInvalid\":\n return \"invalid\";\n\n case \"JSXIdentifier\":\n return \"jsxIdentifier\";\n\n default:\n return \"uncolored\";\n }\n };\n\n /**\n * Turn a string of JS into an array of objects.\n */\n tokenize = function* (text: string): Generator {\n for (const token of jsTokens(text, { jsx: true })) {\n switch (token.type) {\n case \"TemplateHead\":\n yield { type: \"string\", value: token.value.slice(0, -2) };\n yield { type: \"punctuator\", value: \"${\" };\n break;\n\n case \"TemplateMiddle\":\n yield { type: \"punctuator\", value: \"}\" };\n yield { type: \"string\", value: token.value.slice(1, -2) };\n yield { type: \"punctuator\", value: \"${\" };\n break;\n\n case \"TemplateTail\":\n yield { type: \"punctuator\", value: \"}\" };\n yield { type: \"string\", value: token.value.slice(1) };\n break;\n\n default:\n yield {\n type: getTokenType(token),\n value: token.value,\n };\n }\n }\n };\n} else {\n /**\n * RegExp to test for what seems to be a JSX tag name.\n */\n const JSX_TAG = /^[a-z][\\w-]*$/i;\n\n // The token here is defined in js-tokens@4. However we don't bother\n // typing it since the whole block will be removed in Babel 8\n const getTokenType = function (token: any, offset: number, text: string) {\n if (token.type === \"name\") {\n const tokenValue = token.value;\n if (\n isKeyword(tokenValue) ||\n isStrictReservedWord(tokenValue, true) ||\n sometimesKeywords.has(tokenValue)\n ) {\n return \"keyword\";\n }\n\n if (\n JSX_TAG.test(tokenValue) &&\n (text[offset - 1] === \"<\" || text.slice(offset - 2, offset) === \" defs[type as InternalTokenType](str))\n .join(\"\\n\");\n } else {\n highlighted += value;\n }\n }\n\n return highlighted;\n}\n","import { getDefs, isColorSupported } from \"./defs.ts\";\nimport { highlight } from \"./highlight.ts\";\n\nexport { highlight };\n\nlet deprecationWarningShown = false;\n\ntype Location = {\n column: number;\n line: number;\n};\n\ntype NodeLocation = {\n end?: Location;\n start: Location;\n};\n\nexport interface Options {\n /** Syntax highlight the code as JavaScript for terminals. default: false */\n highlightCode?: boolean;\n /** The number of lines to show above the error. default: 2 */\n linesAbove?: number;\n /** The number of lines to show below the error. default: 3 */\n linesBelow?: number;\n /** The line number corresponding to the first line in `rawLines`. default: 1 */\n startLine?: number;\n /**\n * Forcibly syntax highlight the code as JavaScript (for non-terminals);\n * overrides highlightCode.\n * default: false\n */\n forceColor?: boolean;\n /**\n * Pass in a string to be displayed inline (if possible) next to the\n * highlighted location in the code. If it can't be positioned inline,\n * it will be placed above the code frame.\n * default: nothing\n */\n message?: string;\n}\n\n/**\n * RegExp to test for newlines in terminal.\n */\n\nconst NEWLINE = /\\r\\n|[\\n\\r\\u2028\\u2029]/;\n\n/**\n * Extract what lines should be marked and highlighted.\n */\n\ntype MarkerLines = Record;\n\nfunction getMarkerLines(\n loc: NodeLocation,\n source: string[],\n opts: Options,\n startLineBaseZero: number,\n): {\n start: number;\n end: number;\n markerLines: MarkerLines;\n} {\n const startLoc: Location = {\n column: 0,\n line: -1,\n ...loc.start,\n };\n const endLoc: Location = {\n ...startLoc,\n ...loc.end,\n };\n const { linesAbove = 2, linesBelow = 3 } = opts || {};\n const startLine = startLoc.line - startLineBaseZero;\n const startColumn = startLoc.column;\n const endLine = endLoc.line - startLineBaseZero;\n const endColumn = endLoc.column;\n\n let start = Math.max(startLine - (linesAbove + 1), 0);\n let end = Math.min(source.length, endLine + linesBelow);\n\n if (startLine === -1) {\n start = 0;\n }\n\n if (endLine === -1) {\n end = source.length;\n }\n\n const lineDiff = endLine - startLine;\n const markerLines: MarkerLines = {};\n\n if (lineDiff) {\n for (let i = 0; i <= lineDiff; i++) {\n const lineNumber = i + startLine;\n\n if (!startColumn) {\n markerLines[lineNumber] = true;\n } else if (i === 0) {\n const sourceLength = source[lineNumber - 1].length;\n\n markerLines[lineNumber] = [startColumn, sourceLength - startColumn + 1];\n } else if (i === lineDiff) {\n markerLines[lineNumber] = [0, endColumn];\n } else {\n const sourceLength = source[lineNumber - i].length;\n\n markerLines[lineNumber] = [0, sourceLength];\n }\n }\n } else {\n if (startColumn === endColumn) {\n if (startColumn) {\n markerLines[startLine] = [startColumn, 0];\n } else {\n markerLines[startLine] = true;\n }\n } else {\n markerLines[startLine] = [startColumn, endColumn - startColumn];\n }\n }\n\n return { start, end, markerLines };\n}\n\nexport function codeFrameColumns(\n rawLines: string,\n loc: NodeLocation,\n opts: Options = {},\n): string {\n const shouldHighlight =\n opts.forceColor || (isColorSupported() && opts.highlightCode);\n const startLineBaseZero = (opts.startLine || 1) - 1;\n const defs = getDefs(shouldHighlight);\n\n const lines = rawLines.split(NEWLINE);\n const { start, end, markerLines } = getMarkerLines(\n loc,\n lines,\n opts,\n startLineBaseZero,\n );\n const hasColumns = loc.start && typeof loc.start.column === \"number\";\n\n const numberMaxWidth = String(end + startLineBaseZero).length;\n\n const highlightedLines = shouldHighlight ? highlight(rawLines) : rawLines;\n\n let frame = highlightedLines\n .split(NEWLINE, end)\n .slice(start, end)\n .map((line, index) => {\n const number = start + 1 + index;\n const paddedNumber = ` ${number + startLineBaseZero}`.slice(\n -numberMaxWidth,\n );\n const gutter = ` ${paddedNumber} |`;\n const hasMarker = markerLines[number];\n const lastMarkerLine = !markerLines[number + 1];\n if (hasMarker) {\n let markerLine = \"\";\n if (Array.isArray(hasMarker)) {\n const markerSpacing = line\n .slice(0, Math.max(hasMarker[0] - 1, 0))\n .replace(/[^\\t]/g, \" \");\n const numberOfMarkers = hasMarker[1] || 1;\n\n markerLine = [\n \"\\n \",\n defs.gutter(gutter.replace(/\\d/g, \" \")),\n \" \",\n markerSpacing,\n defs.marker(\"^\").repeat(numberOfMarkers),\n ].join(\"\");\n\n if (lastMarkerLine && opts.message) {\n markerLine += \" \" + defs.message(opts.message);\n }\n }\n return [\n defs.marker(\">\"),\n defs.gutter(gutter),\n line.length > 0 ? ` ${line}` : \"\",\n markerLine,\n ].join(\"\");\n } else {\n return ` ${defs.gutter(gutter)}${line.length > 0 ? ` ${line}` : \"\"}`;\n }\n })\n .join(\"\\n\");\n\n if (opts.message && !hasColumns) {\n frame = `${\" \".repeat(numberMaxWidth + 1)}${opts.message}\\n${frame}`;\n }\n\n if (shouldHighlight) {\n return defs.reset(frame);\n } else {\n return frame;\n }\n}\n\n/**\n * Create a code frame, adding line numbers, code highlighting, and pointing to a given position.\n */\n\nexport default function (\n rawLines: string,\n lineNumber: number,\n colNumber?: number | null,\n opts: Options = {},\n): string {\n if (!deprecationWarningShown) {\n deprecationWarningShown = true;\n\n const message =\n \"Passing lineNumber and colNumber is deprecated to @babel/code-frame. Please use `codeFrameColumns`.\";\n\n if (process.emitWarning) {\n // A string is directly supplied to emitWarning, because when supplying an\n // Error object node throws in the tests because of different contexts\n process.emitWarning(message, \"DeprecationWarning\");\n } else {\n const deprecationError = new Error(message);\n deprecationError.name = \"DeprecationWarning\";\n console.warn(new Error(message));\n }\n }\n\n colNumber = Math.max(colNumber, 0);\n\n const location: NodeLocation = {\n start: { column: colNumber, line: lineNumber },\n };\n\n return codeFrameColumns(rawLines, location, opts);\n}\n"],"names":["isColorSupported","process","env","FORCE_COLOR","picocolors","compose","f","g","v","buildDefs","colors","keyword","cyan","capitalized","yellow","jsxIdentifier","punctuator","number","magenta","string","green","regex","comment","gray","invalid","white","bgRed","bold","gutter","marker","red","message","reset","defsOn","createColors","defsOff","getDefs","enabled","sometimesKeywords","Set","NEWLINE","BRACKET","tokenize","JSX_TAG","getTokenType","token","offset","text","type","tokenValue","value","isKeyword","isStrictReservedWord","has","test","slice","firstChar","String","fromCodePoint","codePointAt","toLowerCase","match","jsTokens","default","exec","matchToToken","index","highlight","defs","highlighted","split","map","str","join","deprecationWarningShown","getMarkerLines","loc","source","opts","startLineBaseZero","startLoc","Object","assign","column","line","start","endLoc","end","linesAbove","linesBelow","startLine","startColumn","endLine","endColumn","Math","max","min","length","lineDiff","markerLines","i","lineNumber","sourceLength","codeFrameColumns","rawLines","shouldHighlight","forceColor","highlightCode","lines","hasColumns","numberMaxWidth","highlightedLines","frame","paddedNumber","hasMarker","lastMarkerLine","markerLine","Array","isArray","markerSpacing","replace","numberOfMarkers","repeat","colNumber","emitWarning","deprecationError","Error","name","console","warn","location"],"mappings":"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"} \ No newline at end of file diff --git a/server/api/node_modules/@babel/code-frame/package.json b/server/api/node_modules/@babel/code-frame/package.json new file mode 100644 index 0000000..d78a947 --- /dev/null +++ b/server/api/node_modules/@babel/code-frame/package.json @@ -0,0 +1,32 @@ +{ + "name": "@babel/code-frame", + "version": "7.29.0", + "description": "Generate errors that contain a code frame that point to source locations.", + "author": "The Babel Team (https://babel.dev/team)", + "homepage": "https://babel.dev/docs/en/next/babel-code-frame", + "bugs": "https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen", + "license": "MIT", + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "https://github.com/babel/babel.git", + "directory": "packages/babel-code-frame" + }, + "main": "./lib/index.js", + "dependencies": { + "@babel/helper-validator-identifier": "^7.28.5", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "devDependencies": { + "charcodes": "^0.2.0", + "import-meta-resolve": "^4.1.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "type": "commonjs" +} \ No newline at end of file diff --git a/server/api/node_modules/@babel/compat-data/LICENSE b/server/api/node_modules/@babel/compat-data/LICENSE new file mode 100644 index 0000000..f31575e --- /dev/null +++ b/server/api/node_modules/@babel/compat-data/LICENSE @@ -0,0 +1,22 @@ +MIT License + +Copyright (c) 2014-present Sebastian McKenzie and other contributors + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/server/api/node_modules/@babel/compat-data/README.md b/server/api/node_modules/@babel/compat-data/README.md new file mode 100644 index 0000000..c191898 --- /dev/null +++ b/server/api/node_modules/@babel/compat-data/README.md @@ -0,0 +1,19 @@ +# @babel/compat-data + +> The compat-data to determine required Babel plugins + +See our website [@babel/compat-data](https://babeljs.io/docs/babel-compat-data) for more information. + +## Install + +Using npm: + +```sh +npm install --save @babel/compat-data +``` + +or using yarn: + +```sh +yarn add @babel/compat-data +``` diff --git a/server/api/node_modules/@babel/compat-data/corejs2-built-ins.js b/server/api/node_modules/@babel/compat-data/corejs2-built-ins.js new file mode 100644 index 0000000..ed19e0b --- /dev/null +++ b/server/api/node_modules/@babel/compat-data/corejs2-built-ins.js @@ -0,0 +1,2 @@ +// Todo (Babel 8): remove this file as Babel 8 drop support of core-js 2 +module.exports = require("./data/corejs2-built-ins.json"); diff --git a/server/api/node_modules/@babel/compat-data/corejs3-shipped-proposals.js b/server/api/node_modules/@babel/compat-data/corejs3-shipped-proposals.js new file mode 100644 index 0000000..7909b8c --- /dev/null +++ b/server/api/node_modules/@babel/compat-data/corejs3-shipped-proposals.js @@ -0,0 +1,2 @@ +// Todo (Babel 8): remove this file now that it is included in babel-plugin-polyfill-corejs3 +module.exports = require("./data/corejs3-shipped-proposals.json"); diff --git a/server/api/node_modules/@babel/compat-data/data/corejs2-built-ins.json b/server/api/node_modules/@babel/compat-data/data/corejs2-built-ins.json new file mode 100644 index 0000000..ba76060 --- /dev/null +++ b/server/api/node_modules/@babel/compat-data/data/corejs2-built-ins.json @@ -0,0 +1,2106 @@ +{ + "es6.array.copy-within": { + "chrome": "45", + "opera": "32", + "edge": "12", + "firefox": "32", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "5", + "rhino": "1.7.13", + "opera_mobile": "32", + "electron": "0.31" + }, + "es6.array.every": { + "chrome": "5", + "opera": "10.10", + "edge": "12", + "firefox": "2", + "safari": "3.1", + "node": "0.4", + "deno": "1", + "ie": "9", + "android": "4", + "ios": "6", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.13", + "opera_mobile": "10.1", + "electron": "0.20" + }, + "es6.array.fill": { + "chrome": "45", + "opera": "32", + "edge": "12", + "firefox": "31", + "safari": "7.1", + "node": "4", + "deno": "1", + "ios": "8", + "samsung": "5", + "rhino": "1.7.13", + "opera_mobile": "32", + "electron": "0.31" + }, + "es6.array.filter": { + "chrome": "51", + "opera": "38", + "edge": "13", + "firefox": "48", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "opera_mobile": "41", + "electron": "1.2" + }, + "es6.array.find": { + "chrome": "45", + "opera": "32", + "edge": "12", + "firefox": "25", + "safari": "7.1", + "node": "4", + "deno": "1", + "ios": "8", + "samsung": "5", + "rhino": "1.7.13", + "opera_mobile": "32", + "electron": "0.31" + }, + "es6.array.find-index": { + "chrome": "45", + "opera": "32", + "edge": "12", + "firefox": "25", + "safari": "7.1", + "node": "4", + "deno": "1", + "ios": "8", + "samsung": "5", + "rhino": "1.7.13", + "opera_mobile": "32", + "electron": "0.31" + }, + "es7.array.flat-map": { + "chrome": "69", + "opera": "56", + "edge": "79", + "firefox": "62", + "safari": "12", + "node": "11", + "deno": "1", + "ios": "12", + "samsung": "10", + "rhino": "1.7.15", + "opera_mobile": "48", + "electron": "4.0" + }, + "es6.array.for-each": { + "chrome": "5", + "opera": "10.10", + "edge": "12", + "firefox": "2", + "safari": "3.1", + "node": "0.4", + "deno": "1", + "ie": "9", + "android": "4", + "ios": "6", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.13", + "opera_mobile": "10.1", + "electron": "0.20" + }, + "es6.array.from": { + "chrome": "51", + "opera": "38", + "edge": "15", + "firefox": "36", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "rhino": "1.7.15", + "opera_mobile": "41", + "electron": "1.2" + }, + "es7.array.includes": { + "chrome": "47", + "opera": "34", + "edge": "14", + "firefox": "102", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "rhino": "1.8", + "opera_mobile": "34", + "electron": "0.36" + }, + "es6.array.index-of": { + "chrome": "5", + "opera": "10.10", + "edge": "12", + "firefox": "2", + "safari": "3.1", + "node": "0.4", + "deno": "1", + "ie": "9", + "android": "4", + "ios": "6", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.13", + "opera_mobile": "10.1", + "electron": "0.20" + }, + "es6.array.is-array": { + "chrome": "5", + "opera": "10.50", + "edge": "12", + "firefox": "4", + "safari": "4", + "node": "0.4", + "deno": "1", + "ie": "9", + "android": "4", + "ios": "6", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.13", + "opera_mobile": "10.1", + "electron": "0.20" + }, + "es6.array.iterator": { + "chrome": "66", + "opera": "53", + "edge": "12", + "firefox": "60", + "safari": "9", + "node": "10", + "deno": "1", + "ios": "9", + "samsung": "9", + "rhino": "1.7.13", + "opera_mobile": "47", + "electron": "3.0" + }, + "es6.array.last-index-of": { + "chrome": "5", + "opera": "10.10", + "edge": "12", + "firefox": "2", + "safari": "3.1", + "node": "0.4", + "deno": "1", + "ie": "9", + "android": "4", + "ios": "6", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.13", + "opera_mobile": "10.1", + "electron": "0.20" + }, + "es6.array.map": { + "chrome": "51", + "opera": "38", + "edge": "13", + "firefox": "48", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "opera_mobile": "41", + "electron": "1.2" + }, + "es6.array.of": { + "chrome": "45", + "opera": "32", + "edge": "12", + "firefox": "25", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "5", + "rhino": "1.7.13", + "opera_mobile": "32", + "electron": "0.31" + }, + "es6.array.reduce": { + "chrome": "5", + "opera": "10.50", + "edge": "12", + "firefox": "3", + "safari": "4", + "node": "0.4", + "deno": "1", + "ie": "9", + "android": "4", + "ios": "6", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.13", + "opera_mobile": "10.1", + "electron": "0.20" + }, + "es6.array.reduce-right": { + "chrome": "5", + "opera": "10.50", + "edge": "12", + "firefox": "3", + "safari": "4", + "node": "0.4", + "deno": "1", + "ie": "9", + "android": "4", + "ios": "6", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.13", + "opera_mobile": "10.1", + "electron": "0.20" + }, + "es6.array.slice": { + "chrome": "51", + "opera": "38", + "edge": "13", + "firefox": "48", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "opera_mobile": "41", + "electron": "1.2" + }, + "es6.array.some": { + "chrome": "5", + "opera": "10.10", + "edge": "12", + "firefox": "2", + "safari": "3.1", + "node": "0.4", + "deno": "1", + "ie": "9", + "android": "4", + "ios": "6", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.13", + "opera_mobile": "10.1", + "electron": "0.20" + }, + "es6.array.sort": { + "chrome": "63", + "opera": "50", + "edge": "12", + "firefox": "5", + "safari": "12", + "node": "10", + "deno": "1", + "ie": "9", + "ios": "12", + "samsung": "8", + "rhino": "1.7.13", + "opera_mobile": "46", + "electron": "3.0" + }, + "es6.array.species": { + "chrome": "51", + "opera": "38", + "edge": "13", + "firefox": "48", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "rhino": "1.7.15", + "opera_mobile": "41", + "electron": "1.2" + }, + "es6.date.now": { + "chrome": "5", + "opera": "10.50", + "edge": "12", + "firefox": "2", + "safari": "4", + "node": "0.4", + "deno": "1", + "ie": "9", + "android": "4", + "ios": "6", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.13", + "opera_mobile": "10.1", + "electron": "0.20" + }, + "es6.date.to-iso-string": { + "chrome": "5", + "opera": "10.50", + "edge": "12", + "firefox": "3.5", + "safari": "4", + "node": "0.4", + "deno": "1", + "ie": "9", + "android": "4", + "ios": "6", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.13", + "opera_mobile": "10.1", + "electron": "0.20" + }, + "es6.date.to-json": { + "chrome": "5", + "opera": "12.10", + "edge": "12", + "firefox": "4", + "safari": "10", + "node": "0.4", + "deno": "1", + "ie": "9", + "android": "4", + "ios": "10", + "samsung": "1", + "rhino": "1.7.13", + "opera_mobile": "12.1", + "electron": "0.20" + }, + "es6.date.to-primitive": { + "chrome": "47", + "opera": "34", + "edge": "15", + "firefox": "44", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "rhino": "1.8", + "opera_mobile": "34", + "electron": "0.36" + }, + "es6.date.to-string": { + "chrome": "5", + "opera": "10.50", + "edge": "12", + "firefox": "2", + "safari": "3.1", + "node": "0.4", + "deno": "1", + "ie": "10", + "android": "4", + "ios": "6", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.13", + "opera_mobile": "10.1", + "electron": "0.20" + }, + "es6.function.bind": { + "chrome": "7", + "opera": "12", + "edge": "12", + "firefox": "4", + "safari": "5.1", + "node": "0.4", + "deno": "1", + "ie": "9", + "android": "4", + "ios": "6", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.13", + "opera_mobile": "12", + "electron": "0.20" + }, + "es6.function.has-instance": { + "chrome": "51", + "opera": "38", + "edge": "15", + "firefox": "50", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "opera_mobile": "41", + "electron": "1.2" + }, + "es6.function.name": { + "chrome": "5", + "opera": "10.50", + "edge": "14", + "firefox": "2", + "safari": "4", + "node": "0.4", + "deno": "1", + "android": "4", + "ios": "6", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.13", + "opera_mobile": "10.1", + "electron": "0.20" + }, + "es6.map": { + "chrome": "51", + "opera": "38", + "edge": "15", + "firefox": "53", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "opera_mobile": "41", + "electron": "1.2" + }, + "es6.math.acosh": { + "chrome": "38", + "opera": "25", + "edge": "12", + "firefox": "25", + "safari": "7.1", + "node": "0.12", + "deno": "1", + "ios": "8", + "samsung": "3", + "rhino": "1.7.13", + "opera_mobile": "25", + "electron": "0.20" + }, + "es6.math.asinh": { + "chrome": "38", + "opera": "25", + "edge": "12", + "firefox": "25", + "safari": "7.1", + "node": "0.12", + "deno": "1", + "ios": "8", + "samsung": "3", + "rhino": "1.7.13", + "opera_mobile": "25", + "electron": "0.20" + }, + "es6.math.atanh": { + "chrome": "38", + "opera": "25", + "edge": "12", + "firefox": "25", + "safari": "7.1", + "node": "0.12", + "deno": "1", + "ios": "8", + "samsung": "3", + "rhino": "1.7.13", + "opera_mobile": "25", + "electron": "0.20" + }, + "es6.math.cbrt": { + "chrome": "38", + "opera": "25", + "edge": "12", + "firefox": "25", + "safari": "7.1", + "node": "0.12", + "deno": "1", + "ios": "8", + "samsung": "3", + "rhino": "1.7.13", + "opera_mobile": "25", + "electron": "0.20" + }, + "es6.math.clz32": { + "chrome": "38", + "opera": "25", + "edge": "12", + "firefox": "31", + "safari": "9", + "node": "0.12", + "deno": "1", + "ios": "9", + "samsung": "3", + "rhino": "1.7.13", + "opera_mobile": "25", + "electron": "0.20" + }, + "es6.math.cosh": { + "chrome": "38", + "opera": "25", + "edge": "12", + "firefox": "25", + "safari": "7.1", + "node": "0.12", + "deno": "1", + "ios": "8", + "samsung": "3", + "rhino": "1.7.13", + "opera_mobile": "25", + "electron": "0.20" + }, + "es6.math.expm1": { + "chrome": "38", + "opera": "25", + "edge": "12", + "firefox": "25", + "safari": "7.1", + "node": "0.12", + "deno": "1", + "ios": "8", + "samsung": "3", + "rhino": "1.7.13", + "opera_mobile": "25", + "electron": "0.20" + }, + "es6.math.fround": { + "chrome": "38", + "opera": "25", + "edge": "12", + "firefox": "26", + "safari": "7.1", + "node": "0.12", + "deno": "1", + "ios": "8", + "samsung": "3", + "rhino": "1.7.13", + "opera_mobile": "25", + "electron": "0.20" + }, + "es6.math.hypot": { + "chrome": "38", + "opera": "25", + "edge": "12", + "firefox": "27", + "safari": "7.1", + "node": "0.12", + "deno": "1", + "ios": "8", + "samsung": "3", + "rhino": "1.7.13", + "opera_mobile": "25", + "electron": "0.20" + }, + "es6.math.imul": { + "chrome": "30", + "opera": "17", + "edge": "12", + "firefox": "23", + "safari": "7", + "node": "0.12", + "deno": "1", + "android": "4.4", + "ios": "7", + "samsung": "2", + "rhino": "1.7.13", + "opera_mobile": "18", + "electron": "0.20" + }, + "es6.math.log1p": { + "chrome": "38", + "opera": "25", + "edge": "12", + "firefox": "25", + "safari": "7.1", + "node": "0.12", + "deno": "1", + "ios": "8", + "samsung": "3", + "rhino": "1.7.13", + "opera_mobile": "25", + "electron": "0.20" + }, + "es6.math.log10": { + "chrome": "38", + "opera": "25", + "edge": "12", + "firefox": "25", + "safari": "7.1", + "node": "0.12", + "deno": "1", + "ios": "8", + "samsung": "3", + "rhino": "1.7.13", + "opera_mobile": "25", + "electron": "0.20" + }, + "es6.math.log2": { + "chrome": "38", + "opera": "25", + "edge": "12", + "firefox": "25", + "safari": "7.1", + "node": "0.12", + "deno": "1", + "ios": "8", + "samsung": "3", + "rhino": "1.7.13", + "opera_mobile": "25", + "electron": "0.20" + }, + "es6.math.sign": { + "chrome": "38", + "opera": "25", + "edge": "12", + "firefox": "25", + "safari": "9", + "node": "0.12", + "deno": "1", + "ios": "9", + "samsung": "3", + "rhino": "1.7.13", + "opera_mobile": "25", + "electron": "0.20" + }, + "es6.math.sinh": { + "chrome": "38", + "opera": "25", + "edge": "12", + "firefox": "25", + "safari": "7.1", + "node": "0.12", + "deno": "1", + "ios": "8", + "samsung": "3", + "rhino": "1.7.13", + "opera_mobile": "25", + "electron": "0.20" + }, + "es6.math.tanh": { + "chrome": "38", + "opera": "25", + "edge": "12", + "firefox": "25", + "safari": "7.1", + "node": "0.12", + "deno": "1", + "ios": "8", + "samsung": "3", + "rhino": "1.7.13", + "opera_mobile": "25", + "electron": "0.20" + }, + "es6.math.trunc": { + "chrome": "38", + "opera": "25", + "edge": "12", + "firefox": "25", + "safari": "7.1", + "node": "0.12", + "deno": "1", + "ios": "8", + "samsung": "3", + "rhino": "1.7.13", + "opera_mobile": "25", + "electron": "0.20" + }, + "es6.number.constructor": { + "chrome": "41", + "opera": "28", + "edge": "12", + "firefox": "36", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "3.4", + "rhino": "1.7.13", + "opera_mobile": "28", + "electron": "0.21" + }, + "es6.number.epsilon": { + "chrome": "34", + "opera": "21", + "edge": "12", + "firefox": "25", + "safari": "9", + "node": "0.12", + "deno": "1", + "ios": "9", + "samsung": "2", + "rhino": "1.7.14", + "opera_mobile": "21", + "electron": "0.20" + }, + "es6.number.is-finite": { + "chrome": "19", + "opera": "15", + "edge": "12", + "firefox": "16", + "safari": "9", + "node": "0.8", + "deno": "1", + "android": "4.1", + "ios": "9", + "samsung": "1.5", + "rhino": "1.7.13", + "opera_mobile": "14", + "electron": "0.20" + }, + "es6.number.is-integer": { + "chrome": "34", + "opera": "21", + "edge": "12", + "firefox": "16", + "safari": "9", + "node": "0.12", + "deno": "1", + "ios": "9", + "samsung": "2", + "rhino": "1.7.13", + "opera_mobile": "21", + "electron": "0.20" + }, + "es6.number.is-nan": { + "chrome": "19", + "opera": "15", + "edge": "12", + "firefox": "15", + "safari": "9", + "node": "0.8", + "deno": "1", + "android": "4.1", + "ios": "9", + "samsung": "1.5", + "rhino": "1.7.13", + "opera_mobile": "14", + "electron": "0.20" + }, + "es6.number.is-safe-integer": { + "chrome": "34", + "opera": "21", + "edge": "12", + "firefox": "32", + "safari": "9", + "node": "0.12", + "deno": "1", + "ios": "9", + "samsung": "2", + "rhino": "1.7.13", + "opera_mobile": "21", + "electron": "0.20" + }, + "es6.number.max-safe-integer": { + "chrome": "34", + "opera": "21", + "edge": "12", + "firefox": "31", + "safari": "9", + "node": "0.12", + "deno": "1", + "ios": "9", + "samsung": "2", + "rhino": "1.7.13", + "opera_mobile": "21", + "electron": "0.20" + }, + "es6.number.min-safe-integer": { + "chrome": "34", + "opera": "21", + "edge": "12", + "firefox": "31", + "safari": "9", + "node": "0.12", + "deno": "1", + "ios": "9", + "samsung": "2", + "rhino": "1.7.13", + "opera_mobile": "21", + "electron": "0.20" + }, + "es6.number.parse-float": { + "chrome": "34", + "opera": "21", + "edge": "12", + "firefox": "25", + "safari": "9", + "node": "0.12", + "deno": "1", + "ios": "9", + "samsung": "2", + "rhino": "1.7.14", + "opera_mobile": "21", + "electron": "0.20" + }, + "es6.number.parse-int": { + "chrome": "34", + "opera": "21", + "edge": "12", + "firefox": "25", + "safari": "9", + "node": "0.12", + "deno": "1", + "ios": "9", + "samsung": "2", + "rhino": "1.7.14", + "opera_mobile": "21", + "electron": "0.20" + }, + "es6.object.assign": { + "chrome": "49", + "opera": "36", + "edge": "13", + "firefox": "36", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "rhino": "1.8", + "opera_mobile": "36", + "electron": "0.37" + }, + "es6.object.create": { + "chrome": "5", + "opera": "12", + "edge": "12", + "firefox": "4", + "safari": "4", + "node": "0.4", + "deno": "1", + "ie": "9", + "android": "4", + "ios": "6", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.13", + "opera_mobile": "12", + "electron": "0.20" + }, + "es7.object.define-getter": { + "chrome": "62", + "opera": "49", + "edge": "16", + "firefox": "48", + "safari": "9", + "node": "8.10", + "deno": "1", + "ios": "9", + "samsung": "8", + "opera_mobile": "46", + "electron": "3.0" + }, + "es7.object.define-setter": { + "chrome": "62", + "opera": "49", + "edge": "16", + "firefox": "48", + "safari": "9", + "node": "8.10", + "deno": "1", + "ios": "9", + "samsung": "8", + "opera_mobile": "46", + "electron": "3.0" + }, + "es6.object.define-property": { + "chrome": "5", + "opera": "12", + "edge": "12", + "firefox": "4", + "safari": "5.1", + "node": "0.4", + "deno": "1", + "ie": "9", + "android": "4", + "ios": "6", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.13", + "opera_mobile": "12", + "electron": "0.20" + }, + "es6.object.define-properties": { + "chrome": "5", + "opera": "12", + "edge": "12", + "firefox": "4", + "safari": "4", + "node": "0.4", + "deno": "1", + "ie": "9", + "android": "4", + "ios": "6", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.13", + "opera_mobile": "12", + "electron": "0.20" + }, + "es7.object.entries": { + "chrome": "54", + "opera": "41", + "edge": "14", + "firefox": "47", + "safari": "10.1", + "node": "7", + "deno": "1", + "ios": "10.3", + "samsung": "6", + "rhino": "1.7.14", + "opera_mobile": "41", + "electron": "1.4" + }, + "es6.object.freeze": { + "chrome": "44", + "opera": "31", + "edge": "12", + "firefox": "35", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "4", + "rhino": "1.7.13", + "opera_mobile": "32", + "electron": "0.30" + }, + "es6.object.get-own-property-descriptor": { + "chrome": "44", + "opera": "31", + "edge": "12", + "firefox": "35", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "4", + "rhino": "1.7.13", + "opera_mobile": "32", + "electron": "0.30" + }, + "es7.object.get-own-property-descriptors": { + "chrome": "54", + "opera": "41", + "edge": "15", + "firefox": "50", + "safari": "10.1", + "node": "7", + "deno": "1", + "ios": "10.3", + "samsung": "6", + "rhino": "1.8", + "opera_mobile": "41", + "electron": "1.4" + }, + "es6.object.get-own-property-names": { + "chrome": "40", + "opera": "27", + "edge": "12", + "firefox": "33", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "3.4", + "rhino": "1.7.13", + "opera_mobile": "27", + "electron": "0.21" + }, + "es6.object.get-prototype-of": { + "chrome": "44", + "opera": "31", + "edge": "12", + "firefox": "35", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "4", + "rhino": "1.7.13", + "opera_mobile": "32", + "electron": "0.30" + }, + "es7.object.lookup-getter": { + "chrome": "62", + "opera": "49", + "edge": "79", + "firefox": "36", + "safari": "9", + "node": "8.10", + "deno": "1", + "ios": "9", + "samsung": "8", + "opera_mobile": "46", + "electron": "3.0" + }, + "es7.object.lookup-setter": { + "chrome": "62", + "opera": "49", + "edge": "79", + "firefox": "36", + "safari": "9", + "node": "8.10", + "deno": "1", + "ios": "9", + "samsung": "8", + "opera_mobile": "46", + "electron": "3.0" + }, + "es6.object.prevent-extensions": { + "chrome": "44", + "opera": "31", + "edge": "12", + "firefox": "35", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "4", + "rhino": "1.7.13", + "opera_mobile": "32", + "electron": "0.30" + }, + "es6.object.to-string": { + "chrome": "57", + "opera": "44", + "edge": "15", + "firefox": "51", + "safari": "10", + "node": "8", + "deno": "1", + "ios": "10", + "samsung": "7", + "opera_mobile": "43", + "electron": "1.7" + }, + "es6.object.is": { + "chrome": "19", + "opera": "15", + "edge": "12", + "firefox": "22", + "safari": "9", + "node": "0.8", + "deno": "1", + "android": "4.1", + "ios": "9", + "samsung": "1.5", + "rhino": "1.7.13", + "opera_mobile": "14", + "electron": "0.20" + }, + "es6.object.is-frozen": { + "chrome": "44", + "opera": "31", + "edge": "12", + "firefox": "35", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "4", + "rhino": "1.7.13", + "opera_mobile": "32", + "electron": "0.30" + }, + "es6.object.is-sealed": { + "chrome": "44", + "opera": "31", + "edge": "12", + "firefox": "35", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "4", + "rhino": "1.7.13", + "opera_mobile": "32", + "electron": "0.30" + }, + "es6.object.is-extensible": { + "chrome": "44", + "opera": "31", + "edge": "12", + "firefox": "35", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "4", + "rhino": "1.7.13", + "opera_mobile": "32", + "electron": "0.30" + }, + "es6.object.keys": { + "chrome": "40", + "opera": "27", + "edge": "12", + "firefox": "35", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "3.4", + "rhino": "1.7.13", + "opera_mobile": "27", + "electron": "0.21" + }, + "es6.object.seal": { + "chrome": "44", + "opera": "31", + "edge": "12", + "firefox": "35", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "4", + "rhino": "1.7.13", + "opera_mobile": "32", + "electron": "0.30" + }, + "es6.object.set-prototype-of": { + "chrome": "34", + "opera": "21", + "edge": "12", + "firefox": "31", + "safari": "9", + "node": "0.12", + "deno": "1", + "ie": "11", + "ios": "9", + "samsung": "2", + "rhino": "1.7.13", + "opera_mobile": "21", + "electron": "0.20" + }, + "es7.object.values": { + "chrome": "54", + "opera": "41", + "edge": "14", + "firefox": "47", + "safari": "10.1", + "node": "7", + "deno": "1", + "ios": "10.3", + "samsung": "6", + "rhino": "1.7.14", + "opera_mobile": "41", + "electron": "1.4" + }, + "es6.promise": { + "chrome": "51", + "opera": "38", + "edge": "14", + "firefox": "45", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "rhino": "1.7.15", + "opera_mobile": "41", + "electron": "1.2" + }, + "es7.promise.finally": { + "chrome": "63", + "opera": "50", + "edge": "18", + "firefox": "58", + "safari": "11.1", + "node": "10", + "deno": "1", + "ios": "11.3", + "samsung": "8", + "rhino": "1.7.15", + "opera_mobile": "46", + "electron": "3.0" + }, + "es6.reflect.apply": { + "chrome": "49", + "opera": "36", + "edge": "12", + "firefox": "42", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "rhino": "1.8", + "opera_mobile": "36", + "electron": "0.37" + }, + "es6.reflect.construct": { + "chrome": "49", + "opera": "36", + "edge": "13", + "firefox": "49", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "opera_mobile": "36", + "electron": "0.37" + }, + "es6.reflect.define-property": { + "chrome": "49", + "opera": "36", + "edge": "13", + "firefox": "42", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "rhino": "1.8", + "opera_mobile": "36", + "electron": "0.37" + }, + "es6.reflect.delete-property": { + "chrome": "49", + "opera": "36", + "edge": "12", + "firefox": "42", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "rhino": "1.8", + "opera_mobile": "36", + "electron": "0.37" + }, + "es6.reflect.get": { + "chrome": "49", + "opera": "36", + "edge": "12", + "firefox": "42", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "rhino": "1.8", + "opera_mobile": "36", + "electron": "0.37" + }, + "es6.reflect.get-own-property-descriptor": { + "chrome": "49", + "opera": "36", + "edge": "12", + "firefox": "42", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "rhino": "1.8", + "opera_mobile": "36", + "electron": "0.37" + }, + "es6.reflect.get-prototype-of": { + "chrome": "49", + "opera": "36", + "edge": "12", + "firefox": "42", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "rhino": "1.8", + "opera_mobile": "36", + "electron": "0.37" + }, + "es6.reflect.has": { + "chrome": "49", + "opera": "36", + "edge": "12", + "firefox": "42", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "rhino": "1.8", + "opera_mobile": "36", + "electron": "0.37" + }, + "es6.reflect.is-extensible": { + "chrome": "49", + "opera": "36", + "edge": "12", + "firefox": "42", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "rhino": "1.8", + "opera_mobile": "36", + "electron": "0.37" + }, + "es6.reflect.own-keys": { + "chrome": "49", + "opera": "36", + "edge": "12", + "firefox": "42", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "rhino": "1.8", + "opera_mobile": "36", + "electron": "0.37" + }, + "es6.reflect.prevent-extensions": { + "chrome": "49", + "opera": "36", + "edge": "12", + "firefox": "42", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "rhino": "1.8", + "opera_mobile": "36", + "electron": "0.37" + }, + "es6.reflect.set": { + "chrome": "49", + "opera": "36", + "edge": "12", + "firefox": "42", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "rhino": "1.8", + "opera_mobile": "36", + "electron": "0.37" + }, + "es6.reflect.set-prototype-of": { + "chrome": "49", + "opera": "36", + "edge": "12", + "firefox": "42", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "rhino": "1.8", + "opera_mobile": "36", + "electron": "0.37" + }, + "es6.regexp.constructor": { + "chrome": "50", + "opera": "37", + "edge": "79", + "firefox": "40", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "opera_mobile": "37", + "electron": "1.1" + }, + "es6.regexp.flags": { + "chrome": "49", + "opera": "36", + "edge": "79", + "firefox": "37", + "safari": "9", + "node": "6", + "deno": "1", + "ios": "9", + "samsung": "5", + "rhino": "1.7.15", + "opera_mobile": "36", + "electron": "0.37" + }, + "es6.regexp.match": { + "chrome": "50", + "opera": "37", + "edge": "79", + "firefox": "49", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "rhino": "1.7.13", + "opera_mobile": "37", + "electron": "1.1" + }, + "es6.regexp.replace": { + "chrome": "50", + "opera": "37", + "edge": "79", + "firefox": "49", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "opera_mobile": "37", + "electron": "1.1" + }, + "es6.regexp.split": { + "chrome": "50", + "opera": "37", + "edge": "79", + "firefox": "49", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "opera_mobile": "37", + "electron": "1.1" + }, + "es6.regexp.search": { + "chrome": "50", + "opera": "37", + "edge": "79", + "firefox": "49", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "rhino": "1.7.13", + "opera_mobile": "37", + "electron": "1.1" + }, + "es6.regexp.to-string": { + "chrome": "50", + "opera": "37", + "edge": "79", + "firefox": "39", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "rhino": "1.7.15", + "opera_mobile": "37", + "electron": "1.1" + }, + "es6.set": { + "chrome": "51", + "opera": "38", + "edge": "15", + "firefox": "53", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "opera_mobile": "41", + "electron": "1.2" + }, + "es6.symbol": { + "chrome": "51", + "opera": "38", + "edge": "79", + "firefox": "51", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "opera_mobile": "41", + "electron": "1.2" + }, + "es7.symbol.async-iterator": { + "chrome": "63", + "opera": "50", + "edge": "79", + "firefox": "57", + "safari": "12", + "node": "10", + "deno": "1", + "ios": "12", + "samsung": "8", + "opera_mobile": "46", + "electron": "3.0" + }, + "es6.string.anchor": { + "chrome": "5", + "opera": "15", + "edge": "12", + "firefox": "17", + "safari": "6", + "node": "0.4", + "deno": "1", + "android": "4", + "ios": "7", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.14", + "opera_mobile": "14", + "electron": "0.20" + }, + "es6.string.big": { + "chrome": "5", + "opera": "15", + "edge": "12", + "firefox": "17", + "safari": "6", + "node": "0.4", + "deno": "1", + "android": "4", + "ios": "7", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.14", + "opera_mobile": "14", + "electron": "0.20" + }, + "es6.string.blink": { + "chrome": "5", + "opera": "15", + "edge": "12", + "firefox": "17", + "safari": "6", + "node": "0.4", + "deno": "1", + "android": "4", + "ios": "7", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.14", + "opera_mobile": "14", + "electron": "0.20" + }, + "es6.string.bold": { + "chrome": "5", + "opera": "15", + "edge": "12", + "firefox": "17", + "safari": "6", + "node": "0.4", + "deno": "1", + "android": "4", + "ios": "7", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.14", + "opera_mobile": "14", + "electron": "0.20" + }, + "es6.string.code-point-at": { + "chrome": "41", + "opera": "28", + "edge": "12", + "firefox": "29", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "3.4", + "rhino": "1.7.13", + "opera_mobile": "28", + "electron": "0.21" + }, + "es6.string.ends-with": { + "chrome": "41", + "opera": "28", + "edge": "12", + "firefox": "29", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "3.4", + "rhino": "1.7.13", + "opera_mobile": "28", + "electron": "0.21" + }, + "es6.string.fixed": { + "chrome": "5", + "opera": "15", + "edge": "12", + "firefox": "17", + "safari": "6", + "node": "0.4", + "deno": "1", + "android": "4", + "ios": "7", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.14", + "opera_mobile": "14", + "electron": "0.20" + }, + "es6.string.fontcolor": { + "chrome": "5", + "opera": "15", + "edge": "12", + "firefox": "17", + "safari": "6", + "node": "0.4", + "deno": "1", + "android": "4", + "ios": "7", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.14", + "opera_mobile": "14", + "electron": "0.20" + }, + "es6.string.fontsize": { + "chrome": "5", + "opera": "15", + "edge": "12", + "firefox": "17", + "safari": "6", + "node": "0.4", + "deno": "1", + "android": "4", + "ios": "7", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.14", + "opera_mobile": "14", + "electron": "0.20" + }, + "es6.string.from-code-point": { + "chrome": "41", + "opera": "28", + "edge": "12", + "firefox": "29", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "3.4", + "rhino": "1.7.13", + "opera_mobile": "28", + "electron": "0.21" + }, + "es6.string.includes": { + "chrome": "41", + "opera": "28", + "edge": "12", + "firefox": "40", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "3.4", + "rhino": "1.7.13", + "opera_mobile": "28", + "electron": "0.21" + }, + "es6.string.italics": { + "chrome": "5", + "opera": "15", + "edge": "12", + "firefox": "17", + "safari": "6", + "node": "0.4", + "deno": "1", + "android": "4", + "ios": "7", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.14", + "opera_mobile": "14", + "electron": "0.20" + }, + "es6.string.iterator": { + "chrome": "38", + "opera": "25", + "edge": "12", + "firefox": "36", + "safari": "9", + "node": "0.12", + "deno": "1", + "ios": "9", + "samsung": "3", + "rhino": "1.7.13", + "opera_mobile": "25", + "electron": "0.20" + }, + "es6.string.link": { + "chrome": "5", + "opera": "15", + "edge": "12", + "firefox": "17", + "safari": "6", + "node": "0.4", + "deno": "1", + "android": "4", + "ios": "7", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.14", + "opera_mobile": "14", + "electron": "0.20" + }, + "es7.string.pad-start": { + "chrome": "57", + "opera": "44", + "edge": "15", + "firefox": "48", + "safari": "10", + "node": "8", + "deno": "1", + "ios": "10", + "samsung": "7", + "rhino": "1.7.13", + "opera_mobile": "43", + "electron": "1.7" + }, + "es7.string.pad-end": { + "chrome": "57", + "opera": "44", + "edge": "15", + "firefox": "48", + "safari": "10", + "node": "8", + "deno": "1", + "ios": "10", + "samsung": "7", + "rhino": "1.7.13", + "opera_mobile": "43", + "electron": "1.7" + }, + "es6.string.raw": { + "chrome": "41", + "opera": "28", + "edge": "12", + "firefox": "34", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "3.4", + "rhino": "1.7.14", + "opera_mobile": "28", + "electron": "0.21" + }, + "es6.string.repeat": { + "chrome": "41", + "opera": "28", + "edge": "12", + "firefox": "24", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "3.4", + "rhino": "1.7.13", + "opera_mobile": "28", + "electron": "0.21" + }, + "es6.string.small": { + "chrome": "5", + "opera": "15", + "edge": "12", + "firefox": "17", + "safari": "6", + "node": "0.4", + "deno": "1", + "android": "4", + "ios": "7", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.14", + "opera_mobile": "14", + "electron": "0.20" + }, + "es6.string.starts-with": { + "chrome": "41", + "opera": "28", + "edge": "12", + "firefox": "29", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "3.4", + "rhino": "1.7.13", + "opera_mobile": "28", + "electron": "0.21" + }, + "es6.string.strike": { + "chrome": "5", + "opera": "15", + "edge": "12", + "firefox": "17", + "safari": "6", + "node": "0.4", + "deno": "1", + "android": "4", + "ios": "7", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.14", + "opera_mobile": "14", + "electron": "0.20" + }, + "es6.string.sub": { + "chrome": "5", + "opera": "15", + "edge": "12", + "firefox": "17", + "safari": "6", + "node": "0.4", + "deno": "1", + "android": "4", + "ios": "7", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.14", + "opera_mobile": "14", + "electron": "0.20" + }, + "es6.string.sup": { + "chrome": "5", + "opera": "15", + "edge": "12", + "firefox": "17", + "safari": "6", + "node": "0.4", + "deno": "1", + "android": "4", + "ios": "7", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.14", + "opera_mobile": "14", + "electron": "0.20" + }, + "es6.string.trim": { + "chrome": "5", + "opera": "10.50", + "edge": "12", + "firefox": "3.5", + "safari": "4", + "node": "0.4", + "deno": "1", + "ie": "9", + "android": "4", + "ios": "6", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.13", + "opera_mobile": "10.1", + "electron": "0.20" + }, + "es7.string.trim-left": { + "chrome": "66", + "opera": "53", + "edge": "79", + "firefox": "61", + "safari": "12", + "node": "10", + "deno": "1", + "ios": "12", + "samsung": "9", + "rhino": "1.7.13", + "opera_mobile": "47", + "electron": "3.0" + }, + "es7.string.trim-right": { + "chrome": "66", + "opera": "53", + "edge": "79", + "firefox": "61", + "safari": "12", + "node": "10", + "deno": "1", + "ios": "12", + "samsung": "9", + "rhino": "1.7.13", + "opera_mobile": "47", + "electron": "3.0" + }, + "es6.typed.array-buffer": { + "chrome": "51", + "opera": "38", + "edge": "13", + "firefox": "48", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "opera_mobile": "41", + "electron": "1.2" + }, + "es6.typed.data-view": { + "chrome": "5", + "opera": "12", + "edge": "12", + "firefox": "15", + "safari": "5.1", + "node": "0.4", + "deno": "1", + "ie": "10", + "android": "4", + "ios": "6", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.13", + "opera_mobile": "12", + "electron": "0.20" + }, + "es6.typed.int8-array": { + "chrome": "51", + "opera": "38", + "edge": "13", + "firefox": "48", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "opera_mobile": "41", + "electron": "1.2" + }, + "es6.typed.uint8-array": { + "chrome": "51", + "opera": "38", + "edge": "13", + "firefox": "48", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "opera_mobile": "41", + "electron": "1.2" + }, + "es6.typed.uint8-clamped-array": { + "chrome": "51", + "opera": "38", + "edge": "13", + "firefox": "48", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "opera_mobile": "41", + "electron": "1.2" + }, + "es6.typed.int16-array": { + "chrome": "51", + "opera": "38", + "edge": "13", + "firefox": "48", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "opera_mobile": "41", + "electron": "1.2" + }, + "es6.typed.uint16-array": { + "chrome": "51", + "opera": "38", + "edge": "13", + "firefox": "48", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "opera_mobile": "41", + "electron": "1.2" + }, + "es6.typed.int32-array": { + "chrome": "51", + "opera": "38", + "edge": "13", + "firefox": "48", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "opera_mobile": "41", + "electron": "1.2" + }, + "es6.typed.uint32-array": { + "chrome": "51", + "opera": "38", + "edge": "13", + "firefox": "48", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "opera_mobile": "41", + "electron": "1.2" + }, + "es6.typed.float32-array": { + "chrome": "51", + "opera": "38", + "edge": "13", + "firefox": "48", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "opera_mobile": "41", + "electron": "1.2" + }, + "es6.typed.float64-array": { + "chrome": "51", + "opera": "38", + "edge": "13", + "firefox": "48", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "opera_mobile": "41", + "electron": "1.2" + }, + "es6.weak-map": { + "chrome": "51", + "opera": "38", + "edge": "15", + "firefox": "53", + "safari": "9", + "node": "6.5", + "deno": "1", + "ios": "9", + "samsung": "5", + "rhino": "1.7.15", + "opera_mobile": "41", + "electron": "1.2" + }, + "es6.weak-set": { + "chrome": "51", + "opera": "38", + "edge": "15", + "firefox": "53", + "safari": "9", + "node": "6.5", + "deno": "1", + "ios": "9", + "samsung": "5", + "rhino": "1.7.15", + "opera_mobile": "41", + "electron": "1.2" + } +} diff --git a/server/api/node_modules/@babel/compat-data/data/corejs3-shipped-proposals.json b/server/api/node_modules/@babel/compat-data/data/corejs3-shipped-proposals.json new file mode 100644 index 0000000..d03b698 --- /dev/null +++ b/server/api/node_modules/@babel/compat-data/data/corejs3-shipped-proposals.json @@ -0,0 +1,5 @@ +[ + "esnext.promise.all-settled", + "esnext.string.match-all", + "esnext.global-this" +] diff --git a/server/api/node_modules/@babel/compat-data/data/native-modules.json b/server/api/node_modules/@babel/compat-data/data/native-modules.json new file mode 100644 index 0000000..2328d21 --- /dev/null +++ b/server/api/node_modules/@babel/compat-data/data/native-modules.json @@ -0,0 +1,18 @@ +{ + "es6.module": { + "chrome": "61", + "and_chr": "61", + "edge": "16", + "firefox": "60", + "and_ff": "60", + "node": "13.2.0", + "opera": "48", + "op_mob": "45", + "safari": "10.1", + "ios": "10.3", + "samsung": "8.2", + "android": "61", + "electron": "2.0", + "ios_saf": "10.3" + } +} diff --git a/server/api/node_modules/@babel/compat-data/data/overlapping-plugins.json b/server/api/node_modules/@babel/compat-data/data/overlapping-plugins.json new file mode 100644 index 0000000..9b884bd --- /dev/null +++ b/server/api/node_modules/@babel/compat-data/data/overlapping-plugins.json @@ -0,0 +1,35 @@ +{ + "transform-async-to-generator": [ + "bugfix/transform-async-arrows-in-class" + ], + "transform-parameters": [ + "bugfix/transform-edge-default-parameters", + "bugfix/transform-safari-id-destructuring-collision-in-function-expression" + ], + "transform-function-name": [ + "bugfix/transform-edge-function-name" + ], + "transform-block-scoping": [ + "bugfix/transform-safari-block-shadowing", + "bugfix/transform-safari-for-shadowing" + ], + "transform-template-literals": [ + "bugfix/transform-tagged-template-caching" + ], + "transform-optional-chaining": [ + "bugfix/transform-v8-spread-parameters-in-optional-chaining" + ], + "proposal-optional-chaining": [ + "bugfix/transform-v8-spread-parameters-in-optional-chaining" + ], + "transform-class-properties": [ + "bugfix/transform-v8-static-class-fields-redefine-readonly", + "bugfix/transform-firefox-class-in-computed-class-key", + "bugfix/transform-safari-class-field-initializer-scope" + ], + "proposal-class-properties": [ + "bugfix/transform-v8-static-class-fields-redefine-readonly", + "bugfix/transform-firefox-class-in-computed-class-key", + "bugfix/transform-safari-class-field-initializer-scope" + ] +} diff --git a/server/api/node_modules/@babel/compat-data/data/plugin-bugfixes.json b/server/api/node_modules/@babel/compat-data/data/plugin-bugfixes.json new file mode 100644 index 0000000..3d1aed6 --- /dev/null +++ b/server/api/node_modules/@babel/compat-data/data/plugin-bugfixes.json @@ -0,0 +1,203 @@ +{ + "bugfix/transform-async-arrows-in-class": { + "chrome": "55", + "opera": "42", + "edge": "15", + "firefox": "52", + "safari": "11", + "node": "7.6", + "deno": "1", + "ios": "11", + "samsung": "6", + "opera_mobile": "42", + "electron": "1.6" + }, + "bugfix/transform-edge-default-parameters": { + "chrome": "49", + "opera": "36", + "edge": "18", + "firefox": "52", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "opera_mobile": "36", + "electron": "0.37" + }, + "bugfix/transform-edge-function-name": { + "chrome": "51", + "opera": "38", + "edge": "79", + "firefox": "53", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "opera_mobile": "41", + "electron": "1.2" + }, + "bugfix/transform-safari-block-shadowing": { + "chrome": "49", + "opera": "36", + "edge": "12", + "firefox": "44", + "safari": "11", + "node": "6", + "deno": "1", + "ie": "11", + "ios": "11", + "samsung": "5", + "opera_mobile": "36", + "electron": "0.37" + }, + "bugfix/transform-safari-for-shadowing": { + "chrome": "49", + "opera": "36", + "edge": "12", + "firefox": "4", + "safari": "11", + "node": "6", + "deno": "1", + "ie": "11", + "ios": "11", + "samsung": "5", + "rhino": "1.7.13", + "opera_mobile": "36", + "electron": "0.37" + }, + "bugfix/transform-safari-id-destructuring-collision-in-function-expression": { + "chrome": "49", + "opera": "36", + "edge": "14", + "firefox": "2", + "safari": "16.3", + "node": "6", + "deno": "1", + "ios": "16.3", + "samsung": "5", + "opera_mobile": "36", + "electron": "0.37" + }, + "bugfix/transform-tagged-template-caching": { + "chrome": "41", + "opera": "28", + "edge": "12", + "firefox": "34", + "safari": "13", + "node": "4", + "deno": "1", + "ios": "13", + "samsung": "3.4", + "rhino": "1.7.14", + "opera_mobile": "28", + "electron": "0.21" + }, + "bugfix/transform-v8-spread-parameters-in-optional-chaining": { + "chrome": "91", + "opera": "77", + "edge": "91", + "firefox": "74", + "safari": "13.1", + "node": "16.9", + "deno": "1.9", + "ios": "13.4", + "samsung": "16", + "opera_mobile": "64", + "electron": "13.0" + }, + "transform-optional-chaining": { + "chrome": "80", + "opera": "67", + "edge": "80", + "firefox": "74", + "safari": "13.1", + "node": "14", + "deno": "1", + "ios": "13.4", + "samsung": "13", + "rhino": "1.8", + "opera_mobile": "57", + "electron": "8.0" + }, + "proposal-optional-chaining": { + "chrome": "80", + "opera": "67", + "edge": "80", + "firefox": "74", + "safari": "13.1", + "node": "14", + "deno": "1", + "ios": "13.4", + "samsung": "13", + "rhino": "1.8", + "opera_mobile": "57", + "electron": "8.0" + }, + "transform-parameters": { + "chrome": "49", + "opera": "36", + "edge": "15", + "firefox": "52", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "opera_mobile": "36", + "electron": "0.37" + }, + "transform-async-to-generator": { + "chrome": "55", + "opera": "42", + "edge": "15", + "firefox": "52", + "safari": "10.1", + "node": "7.6", + "deno": "1", + "ios": "10.3", + "samsung": "6", + "opera_mobile": "42", + "electron": "1.6" + }, + "transform-template-literals": { + "chrome": "41", + "opera": "28", + "edge": "13", + "firefox": "34", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "3.4", + "opera_mobile": "28", + "electron": "0.21" + }, + "transform-function-name": { + "chrome": "51", + "opera": "38", + "edge": "14", + "firefox": "53", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "opera_mobile": "41", + "electron": "1.2" + }, + "transform-block-scoping": { + "chrome": "50", + "opera": "37", + "edge": "14", + "firefox": "53", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "opera_mobile": "37", + "electron": "1.1" + } +} diff --git a/server/api/node_modules/@babel/compat-data/data/plugins.json b/server/api/node_modules/@babel/compat-data/data/plugins.json new file mode 100644 index 0000000..c2ff459 --- /dev/null +++ b/server/api/node_modules/@babel/compat-data/data/plugins.json @@ -0,0 +1,838 @@ +{ + "transform-explicit-resource-management": { + "chrome": "134", + "edge": "134", + "firefox": "141", + "node": "24", + "electron": "35.0" + }, + "transform-duplicate-named-capturing-groups-regex": { + "chrome": "126", + "opera": "112", + "edge": "126", + "firefox": "129", + "safari": "17.4", + "node": "23", + "ios": "17.4", + "electron": "31.0" + }, + "transform-regexp-modifiers": { + "chrome": "125", + "opera": "111", + "edge": "125", + "firefox": "132", + "node": "23", + "samsung": "27", + "electron": "31.0" + }, + "transform-unicode-sets-regex": { + "chrome": "112", + "opera": "98", + "edge": "112", + "firefox": "116", + "safari": "17", + "node": "20", + "deno": "1.32", + "ios": "17", + "samsung": "23", + "opera_mobile": "75", + "electron": "24.0" + }, + "bugfix/transform-v8-static-class-fields-redefine-readonly": { + "chrome": "98", + "opera": "84", + "edge": "98", + "firefox": "75", + "safari": "15", + "node": "12", + "deno": "1.18", + "ios": "15", + "samsung": "11", + "opera_mobile": "52", + "electron": "17.0" + }, + "bugfix/transform-firefox-class-in-computed-class-key": { + "chrome": "74", + "opera": "62", + "edge": "79", + "firefox": "126", + "safari": "16", + "node": "12", + "deno": "1", + "ios": "16", + "samsung": "11", + "opera_mobile": "53", + "electron": "6.0" + }, + "bugfix/transform-safari-class-field-initializer-scope": { + "chrome": "74", + "opera": "62", + "edge": "79", + "firefox": "69", + "safari": "16", + "node": "12", + "deno": "1", + "ios": "16", + "samsung": "11", + "opera_mobile": "53", + "electron": "6.0" + }, + "transform-class-static-block": { + "chrome": "94", + "opera": "80", + "edge": "94", + "firefox": "93", + "safari": "16.4", + "node": "16.11", + "deno": "1.14", + "ios": "16.4", + "samsung": "17", + "opera_mobile": "66", + "electron": "15.0" + }, + "proposal-class-static-block": { + "chrome": "94", + "opera": "80", + "edge": "94", + "firefox": "93", + "safari": "16.4", + "node": "16.11", + "deno": "1.14", + "ios": "16.4", + "samsung": "17", + "opera_mobile": "66", + "electron": "15.0" + }, + "transform-private-property-in-object": { + "chrome": "91", + "opera": "77", + "edge": "91", + "firefox": "90", + "safari": "15", + "node": "16.9", + "deno": "1.9", + "ios": "15", + "samsung": "16", + "opera_mobile": "64", + "electron": "13.0" + }, + "proposal-private-property-in-object": { + "chrome": "91", + "opera": "77", + "edge": "91", + "firefox": "90", + "safari": "15", + "node": "16.9", + "deno": "1.9", + "ios": "15", + "samsung": "16", + "opera_mobile": "64", + "electron": "13.0" + }, + "transform-class-properties": { + "chrome": "74", + "opera": "62", + "edge": "79", + "firefox": "90", + "safari": "14.1", + "node": "12", + "deno": "1", + "ios": "14.5", + "samsung": "11", + "opera_mobile": "53", + "electron": "6.0" + }, + "proposal-class-properties": { + "chrome": "74", + "opera": "62", + "edge": "79", + "firefox": "90", + "safari": "14.1", + "node": "12", + "deno": "1", + "ios": "14.5", + "samsung": "11", + "opera_mobile": "53", + "electron": "6.0" + }, + "transform-private-methods": { + "chrome": "84", + "opera": "70", + "edge": "84", + "firefox": "90", + "safari": "15", + "node": "14.6", + "deno": "1", + "ios": "15", + "samsung": "14", + "opera_mobile": "60", + "electron": "10.0" + }, + "proposal-private-methods": { + "chrome": "84", + "opera": "70", + "edge": "84", + "firefox": "90", + "safari": "15", + "node": "14.6", + "deno": "1", + "ios": "15", + "samsung": "14", + "opera_mobile": "60", + "electron": "10.0" + }, + "transform-numeric-separator": { + "chrome": "75", + "opera": "62", + "edge": "79", + "firefox": "70", + "safari": "13", + "node": "12.5", + "deno": "1", + "ios": "13", + "samsung": "11", + "rhino": "1.7.14", + "opera_mobile": "54", + "electron": "6.0" + }, + "proposal-numeric-separator": { + "chrome": "75", + "opera": "62", + "edge": "79", + "firefox": "70", + "safari": "13", + "node": "12.5", + "deno": "1", + "ios": "13", + "samsung": "11", + "rhino": "1.7.14", + "opera_mobile": "54", + "electron": "6.0" + }, + "transform-logical-assignment-operators": { + "chrome": "85", + "opera": "71", + "edge": "85", + "firefox": "79", + "safari": "14", + "node": "15", + "deno": "1.2", + "ios": "14", + "samsung": "14", + "opera_mobile": "60", + "electron": "10.0" + }, + "proposal-logical-assignment-operators": { + "chrome": "85", + "opera": "71", + "edge": "85", + "firefox": "79", + "safari": "14", + "node": "15", + "deno": "1.2", + "ios": "14", + "samsung": "14", + "opera_mobile": "60", + "electron": "10.0" + }, + "transform-nullish-coalescing-operator": { + "chrome": "80", + "opera": "67", + "edge": "80", + "firefox": "72", + "safari": "13.1", + "node": "14", + "deno": "1", + "ios": "13.4", + "samsung": "13", + "rhino": "1.8", + "opera_mobile": "57", + "electron": "8.0" + }, + "proposal-nullish-coalescing-operator": { + "chrome": "80", + "opera": "67", + "edge": "80", + "firefox": "72", + "safari": "13.1", + "node": "14", + "deno": "1", + "ios": "13.4", + "samsung": "13", + "rhino": "1.8", + "opera_mobile": "57", + "electron": "8.0" + }, + "transform-optional-chaining": { + "chrome": "91", + "opera": "77", + "edge": "91", + "firefox": "74", + "safari": "13.1", + "node": "16.9", + "deno": "1.9", + "ios": "13.4", + "samsung": "16", + "opera_mobile": "64", + "electron": "13.0" + }, + "proposal-optional-chaining": { + "chrome": "91", + "opera": "77", + "edge": "91", + "firefox": "74", + "safari": "13.1", + "node": "16.9", + "deno": "1.9", + "ios": "13.4", + "samsung": "16", + "opera_mobile": "64", + "electron": "13.0" + }, + "transform-json-strings": { + "chrome": "66", + "opera": "53", + "edge": "79", + "firefox": "62", + "safari": "12", + "node": "10", + "deno": "1", + "ios": "12", + "samsung": "9", + "rhino": "1.7.14", + "opera_mobile": "47", + "electron": "3.0" + }, + "proposal-json-strings": { + "chrome": "66", + "opera": "53", + "edge": "79", + "firefox": "62", + "safari": "12", + "node": "10", + "deno": "1", + "ios": "12", + "samsung": "9", + "rhino": "1.7.14", + "opera_mobile": "47", + "electron": "3.0" + }, + "transform-optional-catch-binding": { + "chrome": "66", + "opera": "53", + "edge": "79", + "firefox": "58", + "safari": "11.1", + "node": "10", + "deno": "1", + "ios": "11.3", + "samsung": "9", + "opera_mobile": "47", + "electron": "3.0" + }, + "proposal-optional-catch-binding": { + "chrome": "66", + "opera": "53", + "edge": "79", + "firefox": "58", + "safari": "11.1", + "node": "10", + "deno": "1", + "ios": "11.3", + "samsung": "9", + "opera_mobile": "47", + "electron": "3.0" + }, + "transform-parameters": { + "chrome": "49", + "opera": "36", + "edge": "18", + "firefox": "52", + "safari": "16.3", + "node": "6", + "deno": "1", + "ios": "16.3", + "samsung": "5", + "opera_mobile": "36", + "electron": "0.37" + }, + "transform-async-generator-functions": { + "chrome": "63", + "opera": "50", + "edge": "79", + "firefox": "57", + "safari": "12", + "node": "10", + "deno": "1", + "ios": "12", + "samsung": "8", + "opera_mobile": "46", + "electron": "3.0" + }, + "proposal-async-generator-functions": { + "chrome": "63", + "opera": "50", + "edge": "79", + "firefox": "57", + "safari": "12", + "node": "10", + "deno": "1", + "ios": "12", + "samsung": "8", + "opera_mobile": "46", + "electron": "3.0" + }, + "transform-object-rest-spread": { + "chrome": "60", + "opera": "47", + "edge": "79", + "firefox": "55", + "safari": "11.1", + "node": "8.3", + "deno": "1", + "ios": "11.3", + "samsung": "8", + "opera_mobile": "44", + "electron": "2.0" + }, + "proposal-object-rest-spread": { + "chrome": "60", + "opera": "47", + "edge": "79", + "firefox": "55", + "safari": "11.1", + "node": "8.3", + "deno": "1", + "ios": "11.3", + "samsung": "8", + "opera_mobile": "44", + "electron": "2.0" + }, + "transform-dotall-regex": { + "chrome": "62", + "opera": "49", + "edge": "79", + "firefox": "78", + "safari": "11.1", + "node": "8.10", + "deno": "1", + "ios": "11.3", + "samsung": "8", + "rhino": "1.7.15", + "opera_mobile": "46", + "electron": "3.0" + }, + "transform-unicode-property-regex": { + "chrome": "64", + "opera": "51", + "edge": "79", + "firefox": "78", + "safari": "11.1", + "node": "10", + "deno": "1", + "ios": "11.3", + "samsung": "9", + "opera_mobile": "47", + "electron": "3.0" + }, + "proposal-unicode-property-regex": { + "chrome": "64", + "opera": "51", + "edge": "79", + "firefox": "78", + "safari": "11.1", + "node": "10", + "deno": "1", + "ios": "11.3", + "samsung": "9", + "opera_mobile": "47", + "electron": "3.0" + }, + "transform-named-capturing-groups-regex": { + "chrome": "64", + "opera": "51", + "edge": "79", + "firefox": "78", + "safari": "11.1", + "node": "10", + "deno": "1", + "ios": "11.3", + "samsung": "9", + "opera_mobile": "47", + "electron": "3.0" + }, + "transform-async-to-generator": { + "chrome": "55", + "opera": "42", + "edge": "15", + "firefox": "52", + "safari": "11", + "node": "7.6", + "deno": "1", + "ios": "11", + "samsung": "6", + "opera_mobile": "42", + "electron": "1.6" + }, + "transform-exponentiation-operator": { + "chrome": "52", + "opera": "39", + "edge": "14", + "firefox": "52", + "safari": "10.1", + "node": "7", + "deno": "1", + "ios": "10.3", + "samsung": "6", + "rhino": "1.7.14", + "opera_mobile": "41", + "electron": "1.3" + }, + "transform-template-literals": { + "chrome": "41", + "opera": "28", + "edge": "13", + "firefox": "34", + "safari": "13", + "node": "4", + "deno": "1", + "ios": "13", + "samsung": "3.4", + "opera_mobile": "28", + "electron": "0.21" + }, + "transform-literals": { + "chrome": "44", + "opera": "31", + "edge": "12", + "firefox": "53", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "4", + "rhino": "1.7.15", + "opera_mobile": "32", + "electron": "0.30" + }, + "transform-function-name": { + "chrome": "51", + "opera": "38", + "edge": "79", + "firefox": "53", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "opera_mobile": "41", + "electron": "1.2" + }, + "transform-arrow-functions": { + "chrome": "47", + "opera": "34", + "edge": "13", + "firefox": "43", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "rhino": "1.7.13", + "opera_mobile": "34", + "electron": "0.36" + }, + "transform-block-scoped-functions": { + "chrome": "41", + "opera": "28", + "edge": "12", + "firefox": "46", + "safari": "10", + "node": "4", + "deno": "1", + "ie": "11", + "ios": "10", + "samsung": "3.4", + "opera_mobile": "28", + "electron": "0.21" + }, + "transform-classes": { + "chrome": "46", + "opera": "33", + "edge": "13", + "firefox": "45", + "safari": "10", + "node": "5", + "deno": "1", + "ios": "10", + "samsung": "5", + "opera_mobile": "33", + "electron": "0.36" + }, + "transform-object-super": { + "chrome": "46", + "opera": "33", + "edge": "13", + "firefox": "45", + "safari": "10", + "node": "5", + "deno": "1", + "ios": "10", + "samsung": "5", + "opera_mobile": "33", + "electron": "0.36" + }, + "transform-shorthand-properties": { + "chrome": "43", + "opera": "30", + "edge": "12", + "firefox": "33", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "4", + "rhino": "1.7.14", + "opera_mobile": "30", + "electron": "0.27" + }, + "transform-duplicate-keys": { + "chrome": "42", + "opera": "29", + "edge": "12", + "firefox": "34", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "3.4", + "opera_mobile": "29", + "electron": "0.25" + }, + "transform-computed-properties": { + "chrome": "44", + "opera": "31", + "edge": "12", + "firefox": "34", + "safari": "7.1", + "node": "4", + "deno": "1", + "ios": "8", + "samsung": "4", + "rhino": "1.8", + "opera_mobile": "32", + "electron": "0.30" + }, + "transform-for-of": { + "chrome": "51", + "opera": "38", + "edge": "15", + "firefox": "53", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "opera_mobile": "41", + "electron": "1.2" + }, + "transform-sticky-regex": { + "chrome": "49", + "opera": "36", + "edge": "13", + "firefox": "3", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "rhino": "1.7.15", + "opera_mobile": "36", + "electron": "0.37" + }, + "transform-unicode-escapes": { + "chrome": "44", + "opera": "31", + "edge": "12", + "firefox": "53", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "4", + "rhino": "1.7.15", + "opera_mobile": "32", + "electron": "0.30" + }, + "transform-unicode-regex": { + "chrome": "50", + "opera": "37", + "edge": "13", + "firefox": "46", + "safari": "12", + "node": "6", + "deno": "1", + "ios": "12", + "samsung": "5", + "opera_mobile": "37", + "electron": "1.1" + }, + "transform-spread": { + "chrome": "46", + "opera": "33", + "edge": "13", + "firefox": "45", + "safari": "10", + "node": "5", + "deno": "1", + "ios": "10", + "samsung": "5", + "opera_mobile": "33", + "electron": "0.36" + }, + "transform-destructuring": { + "chrome": "51", + "opera": "38", + "edge": "15", + "firefox": "53", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "opera_mobile": "41", + "electron": "1.2" + }, + "transform-block-scoping": { + "chrome": "50", + "opera": "37", + "edge": "14", + "firefox": "53", + "safari": "11", + "node": "6", + "deno": "1", + "ios": "11", + "samsung": "5", + "opera_mobile": "37", + "electron": "1.1" + }, + "transform-typeof-symbol": { + "chrome": "48", + "opera": "35", + "edge": "12", + "firefox": "36", + "safari": "9", + "node": "6", + "deno": "1", + "ios": "9", + "samsung": "5", + "rhino": "1.8", + "opera_mobile": "35", + "electron": "0.37" + }, + "transform-new-target": { + "chrome": "46", + "opera": "33", + "edge": "14", + "firefox": "41", + "safari": "10", + "node": "5", + "deno": "1", + "ios": "10", + "samsung": "5", + "opera_mobile": "33", + "electron": "0.36" + }, + "transform-regenerator": { + "chrome": "50", + "opera": "37", + "edge": "13", + "firefox": "53", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "opera_mobile": "37", + "electron": "1.1" + }, + "transform-member-expression-literals": { + "chrome": "7", + "opera": "12", + "edge": "12", + "firefox": "2", + "safari": "5.1", + "node": "0.4", + "deno": "1", + "ie": "9", + "android": "4", + "ios": "6", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.13", + "opera_mobile": "12", + "electron": "0.20" + }, + "transform-property-literals": { + "chrome": "7", + "opera": "12", + "edge": "12", + "firefox": "2", + "safari": "5.1", + "node": "0.4", + "deno": "1", + "ie": "9", + "android": "4", + "ios": "6", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.13", + "opera_mobile": "12", + "electron": "0.20" + }, + "transform-reserved-words": { + "chrome": "13", + "opera": "10.50", + "edge": "12", + "firefox": "2", + "safari": "3.1", + "node": "0.6", + "deno": "1", + "ie": "9", + "android": "4.4", + "ios": "6", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.13", + "opera_mobile": "10.1", + "electron": "0.20" + }, + "transform-export-namespace-from": { + "chrome": "72", + "deno": "1.0", + "edge": "79", + "firefox": "80", + "node": "13.2.0", + "opera": "60", + "opera_mobile": "51", + "safari": "14.1", + "ios": "14.5", + "samsung": "11.0", + "android": "72", + "electron": "5.0" + }, + "proposal-export-namespace-from": { + "chrome": "72", + "deno": "1.0", + "edge": "79", + "firefox": "80", + "node": "13.2.0", + "opera": "60", + "opera_mobile": "51", + "safari": "14.1", + "ios": "14.5", + "samsung": "11.0", + "android": "72", + "electron": "5.0" + } +} diff --git a/server/api/node_modules/@babel/compat-data/native-modules.js b/server/api/node_modules/@babel/compat-data/native-modules.js new file mode 100644 index 0000000..f8c25fa --- /dev/null +++ b/server/api/node_modules/@babel/compat-data/native-modules.js @@ -0,0 +1,2 @@ +// Todo (Babel 8): remove this file, in Babel 8 users import the .json directly +module.exports = require("./data/native-modules.json"); diff --git a/server/api/node_modules/@babel/compat-data/overlapping-plugins.js b/server/api/node_modules/@babel/compat-data/overlapping-plugins.js new file mode 100644 index 0000000..0dd35f1 --- /dev/null +++ b/server/api/node_modules/@babel/compat-data/overlapping-plugins.js @@ -0,0 +1,2 @@ +// Todo (Babel 8): remove this file, in Babel 8 users import the .json directly +module.exports = require("./data/overlapping-plugins.json"); diff --git a/server/api/node_modules/@babel/compat-data/package.json b/server/api/node_modules/@babel/compat-data/package.json new file mode 100644 index 0000000..d6d14a5 --- /dev/null +++ b/server/api/node_modules/@babel/compat-data/package.json @@ -0,0 +1,40 @@ +{ + "name": "@babel/compat-data", + "version": "7.29.0", + "author": "The Babel Team (https://babel.dev/team)", + "license": "MIT", + "description": "The compat-data to determine required Babel plugins", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel.git", + "directory": "packages/babel-compat-data" + }, + "publishConfig": { + "access": "public" + }, + "exports": { + "./plugins": "./plugins.js", + "./native-modules": "./native-modules.js", + "./corejs2-built-ins": "./corejs2-built-ins.js", + "./corejs3-shipped-proposals": "./corejs3-shipped-proposals.js", + "./overlapping-plugins": "./overlapping-plugins.js", + "./plugin-bugfixes": "./plugin-bugfixes.js" + }, + "scripts": { + "build-data": "./scripts/download-compat-table.sh && node ./scripts/build-data.mjs && node ./scripts/build-modules-support.mjs && node ./scripts/build-bugfixes-targets.mjs" + }, + "keywords": [ + "babel", + "compat-table", + "compat-data" + ], + "devDependencies": { + "@mdn/browser-compat-data": "^6.0.8", + "core-js-compat": "^3.48.0", + "electron-to-chromium": "^1.5.278" + }, + "engines": { + "node": ">=6.9.0" + }, + "type": "commonjs" +} \ No newline at end of file diff --git a/server/api/node_modules/@babel/compat-data/plugin-bugfixes.js b/server/api/node_modules/@babel/compat-data/plugin-bugfixes.js new file mode 100644 index 0000000..9aaf364 --- /dev/null +++ b/server/api/node_modules/@babel/compat-data/plugin-bugfixes.js @@ -0,0 +1,2 @@ +// Todo (Babel 8): remove this file, in Babel 8 users import the .json directly +module.exports = require("./data/plugin-bugfixes.json"); diff --git a/server/api/node_modules/@babel/compat-data/plugins.js b/server/api/node_modules/@babel/compat-data/plugins.js new file mode 100644 index 0000000..b191017 --- /dev/null +++ b/server/api/node_modules/@babel/compat-data/plugins.js @@ -0,0 +1,2 @@ +// Todo (Babel 8): remove this file, in Babel 8 users import the .json directly +module.exports = require("./data/plugins.json"); diff --git a/server/api/node_modules/@babel/core/LICENSE b/server/api/node_modules/@babel/core/LICENSE new file mode 100644 index 0000000..f31575e --- /dev/null +++ b/server/api/node_modules/@babel/core/LICENSE @@ -0,0 +1,22 @@ +MIT License + +Copyright (c) 2014-present Sebastian McKenzie and other contributors + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/server/api/node_modules/@babel/core/README.md b/server/api/node_modules/@babel/core/README.md new file mode 100644 index 0000000..2903543 --- /dev/null +++ b/server/api/node_modules/@babel/core/README.md @@ -0,0 +1,19 @@ +# @babel/core + +> Babel compiler core. + +See our website [@babel/core](https://babeljs.io/docs/babel-core) for more information or the [issues](https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3A%22pkg%3A%20core%22+is%3Aopen) associated with this package. + +## Install + +Using npm: + +```sh +npm install --save-dev @babel/core +``` + +or using yarn: + +```sh +yarn add @babel/core --dev +``` diff --git a/server/api/node_modules/@babel/core/lib/config/cache-contexts.js b/server/api/node_modules/@babel/core/lib/config/cache-contexts.js new file mode 100644 index 0000000..f2ececd --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/config/cache-contexts.js @@ -0,0 +1,5 @@ +"use strict"; + +0 && 0; + +//# sourceMappingURL=cache-contexts.js.map diff --git a/server/api/node_modules/@babel/core/lib/config/cache-contexts.js.map b/server/api/node_modules/@babel/core/lib/config/cache-contexts.js.map new file mode 100644 index 0000000..39b1898 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/config/cache-contexts.js.map @@ -0,0 +1 @@ +{"version":3,"names":[],"sources":["../../src/config/cache-contexts.ts"],"sourcesContent":["import type { ConfigContext } from \"./config-chain.ts\";\nimport type {\n CallerMetadata,\n TargetsListOrObject,\n} from \"./validation/options.ts\";\n\nexport type { ConfigContext as FullConfig };\n\nexport type FullPreset = {\n targets: TargetsListOrObject;\n} & ConfigContext;\nexport type FullPlugin = {\n assumptions: Record;\n} & FullPreset;\n\n// Context not including filename since it is used in places that cannot\n// process 'ignore'/'only' and other filename-based logic.\nexport type SimpleConfig = {\n envName: string;\n caller: CallerMetadata | undefined;\n};\nexport type SimplePreset = {\n targets: TargetsListOrObject;\n} & SimpleConfig;\nexport type SimplePlugin = {\n assumptions: Record;\n} & SimplePreset;\n"],"mappings":"","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/core/lib/config/caching.js b/server/api/node_modules/@babel/core/lib/config/caching.js new file mode 100644 index 0000000..344c839 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/config/caching.js @@ -0,0 +1,261 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.assertSimpleType = assertSimpleType; +exports.makeStrongCache = makeStrongCache; +exports.makeStrongCacheSync = makeStrongCacheSync; +exports.makeWeakCache = makeWeakCache; +exports.makeWeakCacheSync = makeWeakCacheSync; +function _gensync() { + const data = require("gensync"); + _gensync = function () { + return data; + }; + return data; +} +var _async = require("../gensync-utils/async.js"); +var _util = require("./util.js"); +const synchronize = gen => { + return _gensync()(gen).sync; +}; +function* genTrue() { + return true; +} +function makeWeakCache(handler) { + return makeCachedFunction(WeakMap, handler); +} +function makeWeakCacheSync(handler) { + return synchronize(makeWeakCache(handler)); +} +function makeStrongCache(handler) { + return makeCachedFunction(Map, handler); +} +function makeStrongCacheSync(handler) { + return synchronize(makeStrongCache(handler)); +} +function makeCachedFunction(CallCache, handler) { + const callCacheSync = new CallCache(); + const callCacheAsync = new CallCache(); + const futureCache = new CallCache(); + return function* cachedFunction(arg, data) { + const asyncContext = yield* (0, _async.isAsync)(); + const callCache = asyncContext ? callCacheAsync : callCacheSync; + const cached = yield* getCachedValueOrWait(asyncContext, callCache, futureCache, arg, data); + if (cached.valid) return cached.value; + const cache = new CacheConfigurator(data); + const handlerResult = handler(arg, cache); + let finishLock; + let value; + if ((0, _util.isIterableIterator)(handlerResult)) { + value = yield* (0, _async.onFirstPause)(handlerResult, () => { + finishLock = setupAsyncLocks(cache, futureCache, arg); + }); + } else { + value = handlerResult; + } + updateFunctionCache(callCache, cache, arg, value); + if (finishLock) { + futureCache.delete(arg); + finishLock.release(value); + } + return value; + }; +} +function* getCachedValue(cache, arg, data) { + const cachedValue = cache.get(arg); + if (cachedValue) { + for (const { + value, + valid + } of cachedValue) { + if (yield* valid(data)) return { + valid: true, + value + }; + } + } + return { + valid: false, + value: null + }; +} +function* getCachedValueOrWait(asyncContext, callCache, futureCache, arg, data) { + const cached = yield* getCachedValue(callCache, arg, data); + if (cached.valid) { + return cached; + } + if (asyncContext) { + const cached = yield* getCachedValue(futureCache, arg, data); + if (cached.valid) { + const value = yield* (0, _async.waitFor)(cached.value.promise); + return { + valid: true, + value + }; + } + } + return { + valid: false, + value: null + }; +} +function setupAsyncLocks(config, futureCache, arg) { + const finishLock = new Lock(); + updateFunctionCache(futureCache, config, arg, finishLock); + return finishLock; +} +function updateFunctionCache(cache, config, arg, value) { + if (!config.configured()) config.forever(); + let cachedValue = cache.get(arg); + config.deactivate(); + switch (config.mode()) { + case "forever": + cachedValue = [{ + value, + valid: genTrue + }]; + cache.set(arg, cachedValue); + break; + case "invalidate": + cachedValue = [{ + value, + valid: config.validator() + }]; + cache.set(arg, cachedValue); + break; + case "valid": + if (cachedValue) { + cachedValue.push({ + value, + valid: config.validator() + }); + } else { + cachedValue = [{ + value, + valid: config.validator() + }]; + cache.set(arg, cachedValue); + } + } +} +class CacheConfigurator { + constructor(data) { + this._active = true; + this._never = false; + this._forever = false; + this._invalidate = false; + this._configured = false; + this._pairs = []; + this._data = void 0; + this._data = data; + } + simple() { + return makeSimpleConfigurator(this); + } + mode() { + if (this._never) return "never"; + if (this._forever) return "forever"; + if (this._invalidate) return "invalidate"; + return "valid"; + } + forever() { + if (!this._active) { + throw new Error("Cannot change caching after evaluation has completed."); + } + if (this._never) { + throw new Error("Caching has already been configured with .never()"); + } + this._forever = true; + this._configured = true; + } + never() { + if (!this._active) { + throw new Error("Cannot change caching after evaluation has completed."); + } + if (this._forever) { + throw new Error("Caching has already been configured with .forever()"); + } + this._never = true; + this._configured = true; + } + using(handler) { + if (!this._active) { + throw new Error("Cannot change caching after evaluation has completed."); + } + if (this._never || this._forever) { + throw new Error("Caching has already been configured with .never or .forever()"); + } + this._configured = true; + const key = handler(this._data); + const fn = (0, _async.maybeAsync)(handler, `You appear to be using an async cache handler, but Babel has been called synchronously`); + if ((0, _async.isThenable)(key)) { + return key.then(key => { + this._pairs.push([key, fn]); + return key; + }); + } + this._pairs.push([key, fn]); + return key; + } + invalidate(handler) { + this._invalidate = true; + return this.using(handler); + } + validator() { + const pairs = this._pairs; + return function* (data) { + for (const [key, fn] of pairs) { + if (key !== (yield* fn(data))) return false; + } + return true; + }; + } + deactivate() { + this._active = false; + } + configured() { + return this._configured; + } +} +function makeSimpleConfigurator(cache) { + function cacheFn(val) { + if (typeof val === "boolean") { + if (val) cache.forever();else cache.never(); + return; + } + return cache.using(() => assertSimpleType(val())); + } + cacheFn.forever = () => cache.forever(); + cacheFn.never = () => cache.never(); + cacheFn.using = cb => cache.using(() => assertSimpleType(cb())); + cacheFn.invalidate = cb => cache.invalidate(() => assertSimpleType(cb())); + return cacheFn; +} +function assertSimpleType(value) { + if ((0, _async.isThenable)(value)) { + throw new Error(`You appear to be using an async cache handler, ` + `which your current version of Babel does not support. ` + `We may add support for this in the future, ` + `but if you're on the most recent version of @babel/core and still ` + `seeing this error, then you'll need to synchronously handle your caching logic.`); + } + if (value != null && typeof value !== "string" && typeof value !== "boolean" && typeof value !== "number") { + throw new Error("Cache keys must be either string, boolean, number, null, or undefined."); + } + return value; +} +class Lock { + constructor() { + this.released = false; + this.promise = void 0; + this._resolve = void 0; + this.promise = new Promise(resolve => { + this._resolve = resolve; + }); + } + release(value) { + this.released = true; + this._resolve(value); + } +} +0 && 0; + +//# sourceMappingURL=caching.js.map diff --git a/server/api/node_modules/@babel/core/lib/config/caching.js.map b/server/api/node_modules/@babel/core/lib/config/caching.js.map new file mode 100644 index 0000000..c9a69fd --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/config/caching.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_gensync","data","require","_async","_util","synchronize","gen","gensync","sync","genTrue","makeWeakCache","handler","makeCachedFunction","WeakMap","makeWeakCacheSync","makeStrongCache","Map","makeStrongCacheSync","CallCache","callCacheSync","callCacheAsync","futureCache","cachedFunction","arg","asyncContext","isAsync","callCache","cached","getCachedValueOrWait","valid","value","cache","CacheConfigurator","handlerResult","finishLock","isIterableIterator","onFirstPause","setupAsyncLocks","updateFunctionCache","delete","release","getCachedValue","cachedValue","get","waitFor","promise","config","Lock","configured","forever","deactivate","mode","set","validator","push","constructor","_active","_never","_forever","_invalidate","_configured","_pairs","_data","simple","makeSimpleConfigurator","Error","never","using","key","fn","maybeAsync","isThenable","then","invalidate","pairs","cacheFn","val","assertSimpleType","cb","released","_resolve","Promise","resolve"],"sources":["../../src/config/caching.ts"],"sourcesContent":["import gensync from \"gensync\";\nimport type { Handler } from \"gensync\";\nimport {\n maybeAsync,\n isAsync,\n onFirstPause,\n waitFor,\n isThenable,\n} from \"../gensync-utils/async.ts\";\nimport { isIterableIterator } from \"./util.ts\";\n\nexport type { CacheConfigurator };\n\nexport type SimpleCacheConfigurator = {\n (forever: boolean): void;\n (handler: () => T): T;\n\n forever: () => void;\n never: () => void;\n using: (handler: () => T) => T;\n invalidate: (handler: () => T) => T;\n};\n\nexport type CacheEntry = {\n value: ResultT;\n valid: (channel: SideChannel) => Handler;\n}[];\n\nconst synchronize = (\n gen: (...args: ArgsT) => Handler,\n): ((...args: ArgsT) => ResultT) => {\n return gensync(gen).sync;\n};\n\n// eslint-disable-next-line require-yield\nfunction* genTrue() {\n return true;\n}\n\nexport function makeWeakCache(\n handler: (\n arg: ArgT,\n cache: CacheConfigurator,\n ) => Handler | ResultT,\n): (arg: ArgT, data: SideChannel) => Handler {\n return makeCachedFunction(WeakMap, handler);\n}\n\nexport function makeWeakCacheSync(\n handler: (arg: ArgT, cache?: CacheConfigurator) => ResultT,\n): (arg: ArgT, data?: SideChannel) => ResultT {\n return synchronize<[ArgT, SideChannel], ResultT>(\n makeWeakCache(handler),\n );\n}\n\nexport function makeStrongCache(\n handler: (\n arg: ArgT,\n cache: CacheConfigurator,\n ) => Handler | ResultT,\n): (arg: ArgT, data: SideChannel) => Handler {\n return makeCachedFunction(Map, handler);\n}\n\nexport function makeStrongCacheSync(\n handler: (arg: ArgT, cache?: CacheConfigurator) => ResultT,\n): (arg: ArgT, data?: SideChannel) => ResultT {\n return synchronize<[ArgT, SideChannel], ResultT>(\n makeStrongCache(handler),\n );\n}\n\n/* NOTE: Part of the logic explained in this comment is explained in the\n * getCachedValueOrWait and setupAsyncLocks functions.\n *\n * > There are only two hard things in Computer Science: cache invalidation and naming things.\n * > -- Phil Karlton\n *\n * I don't know if Phil was also thinking about handling a cache whose invalidation function is\n * defined asynchronously is considered, but it is REALLY hard to do correctly.\n *\n * The implemented logic (only when gensync is run asynchronously) is the following:\n * 1. If there is a valid cache associated to the current \"arg\" parameter,\n * a. RETURN the cached value\n * 3. If there is a FinishLock associated to the current \"arg\" parameter representing a valid cache,\n * a. Wait for that lock to be released\n * b. RETURN the value associated with that lock\n * 5. Start executing the function to be cached\n * a. If it pauses on a promise, then\n * i. Let FinishLock be a new lock\n * ii. Store FinishLock as associated to the current \"arg\" parameter\n * iii. Wait for the function to finish executing\n * iv. Release FinishLock\n * v. Send the function result to anyone waiting on FinishLock\n * 6. Store the result in the cache\n * 7. RETURN the result\n */\nfunction makeCachedFunction(\n CallCache: new () => CacheMap,\n handler: (\n arg: ArgT,\n cache: CacheConfigurator,\n ) => Handler | ResultT,\n): (arg: ArgT, data: SideChannel) => Handler {\n const callCacheSync = new CallCache();\n const callCacheAsync = new CallCache();\n const futureCache = new CallCache>();\n\n return function* cachedFunction(arg: ArgT, data: SideChannel) {\n const asyncContext = yield* isAsync();\n const callCache = asyncContext ? callCacheAsync : callCacheSync;\n\n const cached = yield* getCachedValueOrWait(\n asyncContext,\n callCache,\n futureCache,\n arg,\n data,\n );\n if (cached.valid) return cached.value;\n\n const cache = new CacheConfigurator(data);\n\n const handlerResult: Handler | ResultT = handler(arg, cache);\n\n let finishLock: Lock;\n let value: ResultT;\n\n if (isIterableIterator(handlerResult)) {\n value = yield* onFirstPause(handlerResult, () => {\n finishLock = setupAsyncLocks(cache, futureCache, arg);\n });\n } else {\n value = handlerResult;\n }\n\n updateFunctionCache(callCache, cache, arg, value);\n\n if (finishLock) {\n futureCache.delete(arg);\n finishLock.release(value);\n }\n\n return value;\n };\n}\n\ntype CacheMap =\n | Map>\n // @ts-expect-error todo(flow->ts): add `extends object` constraint to ArgT\n | WeakMap>;\n\nfunction* getCachedValue(\n cache: CacheMap,\n arg: ArgT,\n data: SideChannel,\n): Handler<{ valid: true; value: ResultT } | { valid: false; value: null }> {\n const cachedValue: CacheEntry | void = cache.get(arg);\n\n if (cachedValue) {\n for (const { value, valid } of cachedValue) {\n if (yield* valid(data)) return { valid: true, value };\n }\n }\n\n return { valid: false, value: null };\n}\n\nfunction* getCachedValueOrWait(\n asyncContext: boolean,\n callCache: CacheMap,\n futureCache: CacheMap, SideChannel>,\n arg: ArgT,\n data: SideChannel,\n): Handler<{ valid: true; value: ResultT } | { valid: false; value: null }> {\n const cached = yield* getCachedValue(callCache, arg, data);\n if (cached.valid) {\n return cached;\n }\n\n if (asyncContext) {\n const cached = yield* getCachedValue(futureCache, arg, data);\n if (cached.valid) {\n const value = yield* waitFor(cached.value.promise);\n return { valid: true, value };\n }\n }\n\n return { valid: false, value: null };\n}\n\nfunction setupAsyncLocks(\n config: CacheConfigurator,\n futureCache: CacheMap, SideChannel>,\n arg: ArgT,\n): Lock {\n const finishLock = new Lock();\n\n updateFunctionCache(futureCache, config, arg, finishLock);\n\n return finishLock;\n}\n\nfunction updateFunctionCache<\n ArgT,\n ResultT,\n SideChannel,\n Cache extends CacheMap,\n>(\n cache: Cache,\n config: CacheConfigurator,\n arg: ArgT,\n value: ResultT,\n) {\n if (!config.configured()) config.forever();\n\n let cachedValue: CacheEntry | void = cache.get(arg);\n\n config.deactivate();\n\n switch (config.mode()) {\n case \"forever\":\n cachedValue = [{ value, valid: genTrue }];\n cache.set(arg, cachedValue);\n break;\n case \"invalidate\":\n cachedValue = [{ value, valid: config.validator() }];\n cache.set(arg, cachedValue);\n break;\n case \"valid\":\n if (cachedValue) {\n cachedValue.push({ value, valid: config.validator() });\n } else {\n cachedValue = [{ value, valid: config.validator() }];\n cache.set(arg, cachedValue);\n }\n }\n}\n\nclass CacheConfigurator {\n _active: boolean = true;\n _never: boolean = false;\n _forever: boolean = false;\n _invalidate: boolean = false;\n\n _configured: boolean = false;\n\n _pairs: [\n cachedValue: unknown,\n handler: (data: SideChannel) => Handler,\n ][] = [];\n\n _data: SideChannel;\n\n constructor(data: SideChannel) {\n this._data = data;\n }\n\n simple() {\n return makeSimpleConfigurator(this);\n }\n\n mode() {\n if (this._never) return \"never\";\n if (this._forever) return \"forever\";\n if (this._invalidate) return \"invalidate\";\n return \"valid\";\n }\n\n forever() {\n if (!this._active) {\n throw new Error(\"Cannot change caching after evaluation has completed.\");\n }\n if (this._never) {\n throw new Error(\"Caching has already been configured with .never()\");\n }\n this._forever = true;\n this._configured = true;\n }\n\n never() {\n if (!this._active) {\n throw new Error(\"Cannot change caching after evaluation has completed.\");\n }\n if (this._forever) {\n throw new Error(\"Caching has already been configured with .forever()\");\n }\n this._never = true;\n this._configured = true;\n }\n\n using(handler: (data: SideChannel) => T): T {\n if (!this._active) {\n throw new Error(\"Cannot change caching after evaluation has completed.\");\n }\n if (this._never || this._forever) {\n throw new Error(\n \"Caching has already been configured with .never or .forever()\",\n );\n }\n this._configured = true;\n\n const key = handler(this._data);\n\n const fn = maybeAsync(\n handler,\n `You appear to be using an async cache handler, but Babel has been called synchronously`,\n );\n\n if (isThenable(key)) {\n // @ts-expect-error todo(flow->ts): improve function return type annotation\n return key.then((key: unknown) => {\n this._pairs.push([key, fn]);\n return key;\n });\n }\n\n this._pairs.push([key, fn]);\n return key;\n }\n\n invalidate(handler: (data: SideChannel) => T): T {\n this._invalidate = true;\n return this.using(handler);\n }\n\n validator(): (data: SideChannel) => Handler {\n const pairs = this._pairs;\n return function* (data: SideChannel) {\n for (const [key, fn] of pairs) {\n if (key !== (yield* fn(data))) return false;\n }\n return true;\n };\n }\n\n deactivate() {\n this._active = false;\n }\n\n configured() {\n return this._configured;\n }\n}\n\nfunction makeSimpleConfigurator(\n cache: CacheConfigurator,\n): SimpleCacheConfigurator {\n function cacheFn(val: any) {\n if (typeof val === \"boolean\") {\n if (val) cache.forever();\n else cache.never();\n return;\n }\n\n return cache.using(() => assertSimpleType(val()));\n }\n cacheFn.forever = () => cache.forever();\n cacheFn.never = () => cache.never();\n cacheFn.using = (cb: () => SimpleType) =>\n cache.using(() => assertSimpleType(cb()));\n cacheFn.invalidate = (cb: () => SimpleType) =>\n cache.invalidate(() => assertSimpleType(cb()));\n\n return cacheFn as any;\n}\n\n// Types are limited here so that in the future these values can be used\n// as part of Babel's caching logic.\nexport type SimpleType =\n | string\n | boolean\n | number\n | null\n | void\n | Promise;\nexport function assertSimpleType(value: unknown): SimpleType {\n if (isThenable(value)) {\n throw new Error(\n `You appear to be using an async cache handler, ` +\n `which your current version of Babel does not support. ` +\n `We may add support for this in the future, ` +\n `but if you're on the most recent version of @babel/core and still ` +\n `seeing this error, then you'll need to synchronously handle your caching logic.`,\n );\n }\n\n if (\n value != null &&\n typeof value !== \"string\" &&\n typeof value !== \"boolean\" &&\n typeof value !== \"number\"\n ) {\n throw new Error(\n \"Cache keys must be either string, boolean, number, null, or undefined.\",\n );\n }\n // @ts-expect-error Type 'unknown' is not assignable to type 'SimpleType'. This can be removed\n // when strictNullCheck is enabled\n return value;\n}\n\nclass Lock {\n released: boolean = false;\n promise: Promise;\n _resolve: (value: T) => void;\n\n constructor() {\n this.promise = new Promise(resolve => {\n this._resolve = resolve;\n });\n }\n\n release(value: T) {\n this.released = true;\n this._resolve(value);\n }\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/core/lib/config/config-chain.js b/server/api/node_modules/@babel/core/lib/config/config-chain.js new file mode 100644 index 0000000..5fded8e --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/config/config-chain.js @@ -0,0 +1,469 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.buildPresetChain = buildPresetChain; +exports.buildPresetChainWalker = void 0; +exports.buildRootChain = buildRootChain; +function _path() { + const data = require("path"); + _path = function () { + return data; + }; + return data; +} +function _debug() { + const data = require("debug"); + _debug = function () { + return data; + }; + return data; +} +var _options = require("./validation/options.js"); +var _patternToRegex = require("./pattern-to-regex.js"); +var _printer = require("./printer.js"); +var _rewriteStackTrace = require("../errors/rewrite-stack-trace.js"); +var _configError = require("../errors/config-error.js"); +var _index = require("./files/index.js"); +var _caching = require("./caching.js"); +var _configDescriptors = require("./config-descriptors.js"); +const debug = _debug()("babel:config:config-chain"); +function* buildPresetChain(arg, context) { + const chain = yield* buildPresetChainWalker(arg, context); + if (!chain) return null; + return { + plugins: dedupDescriptors(chain.plugins), + presets: dedupDescriptors(chain.presets), + options: chain.options.map(o => createConfigChainOptions(o)), + files: new Set() + }; +} +const buildPresetChainWalker = exports.buildPresetChainWalker = makeChainWalker({ + root: preset => loadPresetDescriptors(preset), + env: (preset, envName) => loadPresetEnvDescriptors(preset)(envName), + overrides: (preset, index) => loadPresetOverridesDescriptors(preset)(index), + overridesEnv: (preset, index, envName) => loadPresetOverridesEnvDescriptors(preset)(index)(envName), + createLogger: () => () => {} +}); +const loadPresetDescriptors = (0, _caching.makeWeakCacheSync)(preset => buildRootDescriptors(preset, preset.alias, _configDescriptors.createUncachedDescriptors)); +const loadPresetEnvDescriptors = (0, _caching.makeWeakCacheSync)(preset => (0, _caching.makeStrongCacheSync)(envName => buildEnvDescriptors(preset, preset.alias, _configDescriptors.createUncachedDescriptors, envName))); +const loadPresetOverridesDescriptors = (0, _caching.makeWeakCacheSync)(preset => (0, _caching.makeStrongCacheSync)(index => buildOverrideDescriptors(preset, preset.alias, _configDescriptors.createUncachedDescriptors, index))); +const loadPresetOverridesEnvDescriptors = (0, _caching.makeWeakCacheSync)(preset => (0, _caching.makeStrongCacheSync)(index => (0, _caching.makeStrongCacheSync)(envName => buildOverrideEnvDescriptors(preset, preset.alias, _configDescriptors.createUncachedDescriptors, index, envName)))); +function* buildRootChain(opts, context) { + let configReport, babelRcReport; + const programmaticLogger = new _printer.ConfigPrinter(); + const programmaticChain = yield* loadProgrammaticChain({ + options: opts, + dirname: context.cwd + }, context, undefined, programmaticLogger); + if (!programmaticChain) return null; + const programmaticReport = yield* programmaticLogger.output(); + let configFile; + if (typeof opts.configFile === "string") { + configFile = yield* (0, _index.loadConfig)(opts.configFile, context.cwd, context.envName, context.caller); + } else if (opts.configFile !== false) { + configFile = yield* (0, _index.findRootConfig)(context.root, context.envName, context.caller); + } + let { + babelrc, + babelrcRoots + } = opts; + let babelrcRootsDirectory = context.cwd; + const configFileChain = emptyChain(); + const configFileLogger = new _printer.ConfigPrinter(); + if (configFile) { + const validatedFile = validateConfigFile(configFile); + const result = yield* loadFileChain(validatedFile, context, undefined, configFileLogger); + if (!result) return null; + configReport = yield* configFileLogger.output(); + if (babelrc === undefined) { + babelrc = validatedFile.options.babelrc; + } + if (babelrcRoots === undefined) { + babelrcRootsDirectory = validatedFile.dirname; + babelrcRoots = validatedFile.options.babelrcRoots; + } + mergeChain(configFileChain, result); + } + let ignoreFile, babelrcFile; + let isIgnored = false; + const fileChain = emptyChain(); + if ((babelrc === true || babelrc === undefined) && typeof context.filename === "string") { + const pkgData = yield* (0, _index.findPackageData)(context.filename); + if (pkgData && babelrcLoadEnabled(context, pkgData, babelrcRoots, babelrcRootsDirectory)) { + ({ + ignore: ignoreFile, + config: babelrcFile + } = yield* (0, _index.findRelativeConfig)(pkgData, context.envName, context.caller)); + if (ignoreFile) { + fileChain.files.add(ignoreFile.filepath); + } + if (ignoreFile && shouldIgnore(context, ignoreFile.ignore, null, ignoreFile.dirname)) { + isIgnored = true; + } + if (babelrcFile && !isIgnored) { + const validatedFile = validateBabelrcFile(babelrcFile); + const babelrcLogger = new _printer.ConfigPrinter(); + const result = yield* loadFileChain(validatedFile, context, undefined, babelrcLogger); + if (!result) { + isIgnored = true; + } else { + babelRcReport = yield* babelrcLogger.output(); + mergeChain(fileChain, result); + } + } + if (babelrcFile && isIgnored) { + fileChain.files.add(babelrcFile.filepath); + } + } + } + if (context.showConfig) { + console.log(`Babel configs on "${context.filename}" (ascending priority):\n` + [configReport, babelRcReport, programmaticReport].filter(x => !!x).join("\n\n") + "\n-----End Babel configs-----"); + } + const chain = mergeChain(mergeChain(mergeChain(emptyChain(), configFileChain), fileChain), programmaticChain); + return { + plugins: isIgnored ? [] : dedupDescriptors(chain.plugins), + presets: isIgnored ? [] : dedupDescriptors(chain.presets), + options: isIgnored ? [] : chain.options.map(o => createConfigChainOptions(o)), + fileHandling: isIgnored ? "ignored" : "transpile", + ignore: ignoreFile || undefined, + babelrc: babelrcFile || undefined, + config: configFile || undefined, + files: chain.files + }; +} +function babelrcLoadEnabled(context, pkgData, babelrcRoots, babelrcRootsDirectory) { + if (typeof babelrcRoots === "boolean") return babelrcRoots; + const absoluteRoot = context.root; + if (babelrcRoots === undefined) { + return pkgData.directories.includes(absoluteRoot); + } + let babelrcPatterns = babelrcRoots; + if (!Array.isArray(babelrcPatterns)) { + babelrcPatterns = [babelrcPatterns]; + } + babelrcPatterns = babelrcPatterns.map(pat => { + return typeof pat === "string" ? _path().resolve(babelrcRootsDirectory, pat) : pat; + }); + if (babelrcPatterns.length === 1 && babelrcPatterns[0] === absoluteRoot) { + return pkgData.directories.includes(absoluteRoot); + } + return babelrcPatterns.some(pat => { + if (typeof pat === "string") { + pat = (0, _patternToRegex.default)(pat, babelrcRootsDirectory); + } + return pkgData.directories.some(directory => { + return matchPattern(pat, babelrcRootsDirectory, directory, context); + }); + }); +} +const validateConfigFile = (0, _caching.makeWeakCacheSync)(file => ({ + filepath: file.filepath, + dirname: file.dirname, + options: (0, _options.validate)("configfile", file.options, file.filepath) +})); +const validateBabelrcFile = (0, _caching.makeWeakCacheSync)(file => ({ + filepath: file.filepath, + dirname: file.dirname, + options: (0, _options.validate)("babelrcfile", file.options, file.filepath) +})); +const validateExtendFile = (0, _caching.makeWeakCacheSync)(file => ({ + filepath: file.filepath, + dirname: file.dirname, + options: (0, _options.validate)("extendsfile", file.options, file.filepath) +})); +const loadProgrammaticChain = makeChainWalker({ + root: input => buildRootDescriptors(input, "base", _configDescriptors.createCachedDescriptors), + env: (input, envName) => buildEnvDescriptors(input, "base", _configDescriptors.createCachedDescriptors, envName), + overrides: (input, index) => buildOverrideDescriptors(input, "base", _configDescriptors.createCachedDescriptors, index), + overridesEnv: (input, index, envName) => buildOverrideEnvDescriptors(input, "base", _configDescriptors.createCachedDescriptors, index, envName), + createLogger: (input, context, baseLogger) => buildProgrammaticLogger(input, context, baseLogger) +}); +const loadFileChainWalker = makeChainWalker({ + root: file => loadFileDescriptors(file), + env: (file, envName) => loadFileEnvDescriptors(file)(envName), + overrides: (file, index) => loadFileOverridesDescriptors(file)(index), + overridesEnv: (file, index, envName) => loadFileOverridesEnvDescriptors(file)(index)(envName), + createLogger: (file, context, baseLogger) => buildFileLogger(file.filepath, context, baseLogger) +}); +function* loadFileChain(input, context, files, baseLogger) { + const chain = yield* loadFileChainWalker(input, context, files, baseLogger); + chain == null || chain.files.add(input.filepath); + return chain; +} +const loadFileDescriptors = (0, _caching.makeWeakCacheSync)(file => buildRootDescriptors(file, file.filepath, _configDescriptors.createUncachedDescriptors)); +const loadFileEnvDescriptors = (0, _caching.makeWeakCacheSync)(file => (0, _caching.makeStrongCacheSync)(envName => buildEnvDescriptors(file, file.filepath, _configDescriptors.createUncachedDescriptors, envName))); +const loadFileOverridesDescriptors = (0, _caching.makeWeakCacheSync)(file => (0, _caching.makeStrongCacheSync)(index => buildOverrideDescriptors(file, file.filepath, _configDescriptors.createUncachedDescriptors, index))); +const loadFileOverridesEnvDescriptors = (0, _caching.makeWeakCacheSync)(file => (0, _caching.makeStrongCacheSync)(index => (0, _caching.makeStrongCacheSync)(envName => buildOverrideEnvDescriptors(file, file.filepath, _configDescriptors.createUncachedDescriptors, index, envName)))); +function buildFileLogger(filepath, context, baseLogger) { + if (!baseLogger) { + return () => {}; + } + return baseLogger.configure(context.showConfig, _printer.ChainFormatter.Config, { + filepath + }); +} +function buildRootDescriptors({ + dirname, + options +}, alias, descriptors) { + return descriptors(dirname, options, alias); +} +function buildProgrammaticLogger(_, context, baseLogger) { + var _context$caller; + if (!baseLogger) { + return () => {}; + } + return baseLogger.configure(context.showConfig, _printer.ChainFormatter.Programmatic, { + callerName: (_context$caller = context.caller) == null ? void 0 : _context$caller.name + }); +} +function buildEnvDescriptors({ + dirname, + options +}, alias, descriptors, envName) { + var _options$env; + const opts = (_options$env = options.env) == null ? void 0 : _options$env[envName]; + return opts ? descriptors(dirname, opts, `${alias}.env["${envName}"]`) : null; +} +function buildOverrideDescriptors({ + dirname, + options +}, alias, descriptors, index) { + var _options$overrides; + const opts = (_options$overrides = options.overrides) == null ? void 0 : _options$overrides[index]; + if (!opts) throw new Error("Assertion failure - missing override"); + return descriptors(dirname, opts, `${alias}.overrides[${index}]`); +} +function buildOverrideEnvDescriptors({ + dirname, + options +}, alias, descriptors, index, envName) { + var _options$overrides2, _override$env; + const override = (_options$overrides2 = options.overrides) == null ? void 0 : _options$overrides2[index]; + if (!override) throw new Error("Assertion failure - missing override"); + const opts = (_override$env = override.env) == null ? void 0 : _override$env[envName]; + return opts ? descriptors(dirname, opts, `${alias}.overrides[${index}].env["${envName}"]`) : null; +} +function makeChainWalker({ + root, + env, + overrides, + overridesEnv, + createLogger +}) { + return function* chainWalker(input, context, files = new Set(), baseLogger) { + const { + dirname + } = input; + const flattenedConfigs = []; + const rootOpts = root(input); + if (configIsApplicable(rootOpts, dirname, context, input.filepath)) { + flattenedConfigs.push({ + config: rootOpts, + envName: undefined, + index: undefined + }); + const envOpts = env(input, context.envName); + if (envOpts && configIsApplicable(envOpts, dirname, context, input.filepath)) { + flattenedConfigs.push({ + config: envOpts, + envName: context.envName, + index: undefined + }); + } + (rootOpts.options.overrides || []).forEach((_, index) => { + const overrideOps = overrides(input, index); + if (configIsApplicable(overrideOps, dirname, context, input.filepath)) { + flattenedConfigs.push({ + config: overrideOps, + index, + envName: undefined + }); + const overrideEnvOpts = overridesEnv(input, index, context.envName); + if (overrideEnvOpts && configIsApplicable(overrideEnvOpts, dirname, context, input.filepath)) { + flattenedConfigs.push({ + config: overrideEnvOpts, + index, + envName: context.envName + }); + } + } + }); + } + if (flattenedConfigs.some(({ + config: { + options: { + ignore, + only + } + } + }) => shouldIgnore(context, ignore, only, dirname))) { + return null; + } + const chain = emptyChain(); + const logger = createLogger(input, context, baseLogger); + for (const { + config, + index, + envName + } of flattenedConfigs) { + if (!(yield* mergeExtendsChain(chain, config.options, dirname, context, files, baseLogger))) { + return null; + } + logger(config, index, envName); + yield* mergeChainOpts(chain, config); + } + return chain; + }; +} +function* mergeExtendsChain(chain, opts, dirname, context, files, baseLogger) { + if (opts.extends === undefined) return true; + const file = yield* (0, _index.loadConfig)(opts.extends, dirname, context.envName, context.caller); + if (files.has(file)) { + throw new Error(`Configuration cycle detected loading ${file.filepath}.\n` + `File already loaded following the config chain:\n` + Array.from(files, file => ` - ${file.filepath}`).join("\n")); + } + files.add(file); + const fileChain = yield* loadFileChain(validateExtendFile(file), context, files, baseLogger); + files.delete(file); + if (!fileChain) return false; + mergeChain(chain, fileChain); + return true; +} +function mergeChain(target, source) { + target.options.push(...source.options); + target.plugins.push(...source.plugins); + target.presets.push(...source.presets); + for (const file of source.files) { + target.files.add(file); + } + return target; +} +function* mergeChainOpts(target, { + options, + plugins, + presets +}) { + target.options.push(options); + target.plugins.push(...(yield* plugins())); + target.presets.push(...(yield* presets())); + return target; +} +function emptyChain() { + return { + options: [], + presets: [], + plugins: [], + files: new Set() + }; +} +function createConfigChainOptions(opts) { + const options = Object.assign({}, opts); + delete options.extends; + delete options.env; + delete options.overrides; + delete options.plugins; + delete options.presets; + delete options.passPerPreset; + delete options.ignore; + delete options.only; + delete options.test; + delete options.include; + delete options.exclude; + if (hasOwnProperty.call(options, "sourceMap")) { + options.sourceMaps = options.sourceMap; + delete options.sourceMap; + } + return options; +} +function dedupDescriptors(items) { + const map = new Map(); + const descriptors = []; + for (const item of items) { + if (typeof item.value === "function") { + const fnKey = item.value; + let nameMap = map.get(fnKey); + if (!nameMap) { + nameMap = new Map(); + map.set(fnKey, nameMap); + } + let desc = nameMap.get(item.name); + if (!desc) { + desc = { + value: item + }; + descriptors.push(desc); + if (!item.ownPass) nameMap.set(item.name, desc); + } else { + desc.value = item; + } + } else { + descriptors.push({ + value: item + }); + } + } + return descriptors.reduce((acc, desc) => { + acc.push(desc.value); + return acc; + }, []); +} +function configIsApplicable({ + options +}, dirname, context, configName) { + return (options.test === undefined || configFieldIsApplicable(context, options.test, dirname, configName)) && (options.include === undefined || configFieldIsApplicable(context, options.include, dirname, configName)) && (options.exclude === undefined || !configFieldIsApplicable(context, options.exclude, dirname, configName)); +} +function configFieldIsApplicable(context, test, dirname, configName) { + const patterns = Array.isArray(test) ? test : [test]; + return matchesPatterns(context, patterns, dirname, configName); +} +function ignoreListReplacer(_key, value) { + if (value instanceof RegExp) { + return String(value); + } + return value; +} +function shouldIgnore(context, ignore, only, dirname) { + if (ignore && matchesPatterns(context, ignore, dirname)) { + var _context$filename; + const message = `No config is applied to "${(_context$filename = context.filename) != null ? _context$filename : "(unknown)"}" because it matches one of \`ignore: ${JSON.stringify(ignore, ignoreListReplacer)}\` from "${dirname}"`; + debug(message); + if (context.showConfig) { + console.log(message); + } + return true; + } + if (only && !matchesPatterns(context, only, dirname)) { + var _context$filename2; + const message = `No config is applied to "${(_context$filename2 = context.filename) != null ? _context$filename2 : "(unknown)"}" because it fails to match one of \`only: ${JSON.stringify(only, ignoreListReplacer)}\` from "${dirname}"`; + debug(message); + if (context.showConfig) { + console.log(message); + } + return true; + } + return false; +} +function matchesPatterns(context, patterns, dirname, configName) { + return patterns.some(pattern => matchPattern(pattern, dirname, context.filename, context, configName)); +} +function matchPattern(pattern, dirname, pathToTest, context, configName) { + if (typeof pattern === "function") { + return !!(0, _rewriteStackTrace.endHiddenCallStack)(pattern)(pathToTest, { + dirname, + envName: context.envName, + caller: context.caller + }); + } + if (typeof pathToTest !== "string") { + throw new _configError.default(`Configuration contains string/RegExp pattern, but no filename was passed to Babel`, configName); + } + if (typeof pattern === "string") { + pattern = (0, _patternToRegex.default)(pattern, dirname); + } + return pattern.test(pathToTest); +} +0 && 0; + +//# sourceMappingURL=config-chain.js.map diff --git a/server/api/node_modules/@babel/core/lib/config/config-chain.js.map b/server/api/node_modules/@babel/core/lib/config/config-chain.js.map new file mode 100644 index 0000000..92414e5 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/config/config-chain.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_path","data","require","_debug","_options","_patternToRegex","_printer","_rewriteStackTrace","_configError","_index","_caching","_configDescriptors","debug","buildDebug","buildPresetChain","arg","context","chain","buildPresetChainWalker","plugins","dedupDescriptors","presets","options","map","o","createConfigChainOptions","files","Set","exports","makeChainWalker","root","preset","loadPresetDescriptors","env","envName","loadPresetEnvDescriptors","overrides","index","loadPresetOverridesDescriptors","overridesEnv","loadPresetOverridesEnvDescriptors","createLogger","makeWeakCacheSync","buildRootDescriptors","alias","createUncachedDescriptors","makeStrongCacheSync","buildEnvDescriptors","buildOverrideDescriptors","buildOverrideEnvDescriptors","buildRootChain","opts","configReport","babelRcReport","programmaticLogger","ConfigPrinter","programmaticChain","loadProgrammaticChain","dirname","cwd","undefined","programmaticReport","output","configFile","loadConfig","caller","findRootConfig","babelrc","babelrcRoots","babelrcRootsDirectory","configFileChain","emptyChain","configFileLogger","validatedFile","validateConfigFile","result","loadFileChain","mergeChain","ignoreFile","babelrcFile","isIgnored","fileChain","filename","pkgData","findPackageData","babelrcLoadEnabled","ignore","config","findRelativeConfig","add","filepath","shouldIgnore","validateBabelrcFile","babelrcLogger","showConfig","console","log","filter","x","join","fileHandling","absoluteRoot","directories","includes","babelrcPatterns","Array","isArray","pat","path","resolve","length","some","pathPatternToRegex","directory","matchPattern","file","validate","validateExtendFile","input","createCachedDescriptors","baseLogger","buildProgrammaticLogger","loadFileChainWalker","loadFileDescriptors","loadFileEnvDescriptors","loadFileOverridesDescriptors","loadFileOverridesEnvDescriptors","buildFileLogger","configure","ChainFormatter","Config","descriptors","_","_context$caller","Programmatic","callerName","name","_options$env","_options$overrides","Error","_options$overrides2","_override$env","override","chainWalker","flattenedConfigs","rootOpts","configIsApplicable","push","envOpts","forEach","overrideOps","overrideEnvOpts","only","logger","mergeExtendsChain","mergeChainOpts","extends","has","from","delete","target","source","Object","assign","passPerPreset","test","include","exclude","hasOwnProperty","call","sourceMaps","sourceMap","items","Map","item","value","fnKey","nameMap","get","set","desc","ownPass","reduce","acc","configName","configFieldIsApplicable","patterns","matchesPatterns","ignoreListReplacer","_key","RegExp","String","_context$filename","message","JSON","stringify","_context$filename2","pattern","pathToTest","endHiddenCallStack","ConfigError"],"sources":["../../src/config/config-chain.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-use-before-define */\n\nimport path from \"node:path\";\nimport buildDebug from \"debug\";\nimport type { Handler } from \"gensync\";\nimport { validate } from \"./validation/options.ts\";\nimport type {\n ConfigApplicableTest,\n BabelrcSearch,\n CallerMetadata,\n MatchItem,\n InputOptions,\n ConfigChainOptions,\n} from \"./validation/options.ts\";\nimport pathPatternToRegex from \"./pattern-to-regex.ts\";\nimport { ConfigPrinter, ChainFormatter } from \"./printer.ts\";\nimport type { ReadonlyDeepArray } from \"./helpers/deep-array.ts\";\n\nimport { endHiddenCallStack } from \"../errors/rewrite-stack-trace.ts\";\nimport ConfigError from \"../errors/config-error.ts\";\nimport type { PluginAPI, PresetAPI } from \"./helpers/config-api.ts\";\n\nconst debug = buildDebug(\"babel:config:config-chain\");\n\nimport {\n findPackageData,\n findRelativeConfig,\n findRootConfig,\n loadConfig,\n} from \"./files/index.ts\";\nimport type { ConfigFile, IgnoreFile, FilePackageData } from \"./files/index.ts\";\n\nimport { makeWeakCacheSync, makeStrongCacheSync } from \"./caching.ts\";\n\nimport {\n createCachedDescriptors,\n createUncachedDescriptors,\n} from \"./config-descriptors.ts\";\nimport type {\n UnloadedDescriptor,\n OptionsAndDescriptors,\n ValidatedFile,\n} from \"./config-descriptors.ts\";\n\nexport type ConfigChain = {\n plugins: UnloadedDescriptor[];\n presets: UnloadedDescriptor[];\n options: ConfigChainOptions[];\n files: Set;\n};\n\nexport type PresetInstance = {\n options: InputOptions;\n alias: string;\n dirname: string;\n externalDependencies: ReadonlyDeepArray;\n};\n\nexport type ConfigContext = {\n filename: string | undefined;\n cwd: string;\n root: string;\n envName: string;\n caller: CallerMetadata | undefined;\n showConfig: boolean;\n};\n\n/**\n * Build a config chain for a given preset.\n */\nexport function* buildPresetChain(\n arg: PresetInstance,\n context: any,\n): Handler {\n const chain = yield* buildPresetChainWalker(arg, context);\n if (!chain) return null;\n\n return {\n plugins: dedupDescriptors(chain.plugins),\n presets: dedupDescriptors(chain.presets),\n options: chain.options.map(o => createConfigChainOptions(o)),\n files: new Set(),\n };\n}\n\nexport const buildPresetChainWalker = makeChainWalker({\n root: preset => loadPresetDescriptors(preset),\n env: (preset, envName) => loadPresetEnvDescriptors(preset)(envName),\n overrides: (preset, index) => loadPresetOverridesDescriptors(preset)(index),\n overridesEnv: (preset, index, envName) =>\n loadPresetOverridesEnvDescriptors(preset)(index)(envName),\n createLogger: () => () => {}, // Currently we don't support logging how preset is expanded\n});\nconst loadPresetDescriptors = makeWeakCacheSync((preset: PresetInstance) =>\n buildRootDescriptors(preset, preset.alias, createUncachedDescriptors),\n);\nconst loadPresetEnvDescriptors = makeWeakCacheSync((preset: PresetInstance) =>\n makeStrongCacheSync((envName: string) =>\n buildEnvDescriptors(\n preset,\n preset.alias,\n createUncachedDescriptors,\n envName,\n ),\n ),\n);\nconst loadPresetOverridesDescriptors = makeWeakCacheSync(\n (preset: PresetInstance) =>\n makeStrongCacheSync((index: number) =>\n buildOverrideDescriptors(\n preset,\n preset.alias,\n createUncachedDescriptors,\n index,\n ),\n ),\n);\nconst loadPresetOverridesEnvDescriptors = makeWeakCacheSync(\n (preset: PresetInstance) =>\n makeStrongCacheSync((index: number) =>\n makeStrongCacheSync((envName: string) =>\n buildOverrideEnvDescriptors(\n preset,\n preset.alias,\n createUncachedDescriptors,\n index,\n envName,\n ),\n ),\n ),\n);\n\nexport type FileHandling = \"transpile\" | \"ignored\" | \"unsupported\";\nexport type RootConfigChain = ConfigChain & {\n babelrc: ConfigFile | undefined;\n config: ConfigFile | undefined;\n ignore: IgnoreFile | undefined;\n fileHandling: FileHandling;\n files: Set;\n};\n\n/**\n * Build a config chain for Babel's full root configuration.\n */\nexport function* buildRootChain(\n opts: InputOptions,\n context: ConfigContext,\n): Handler {\n let configReport, babelRcReport;\n const programmaticLogger = new ConfigPrinter();\n const programmaticChain = yield* loadProgrammaticChain(\n {\n options: opts,\n dirname: context.cwd,\n },\n context,\n undefined,\n programmaticLogger,\n );\n if (!programmaticChain) return null;\n const programmaticReport = yield* programmaticLogger.output();\n\n let configFile;\n if (typeof opts.configFile === \"string\") {\n configFile = yield* loadConfig(\n opts.configFile,\n context.cwd,\n context.envName,\n context.caller,\n );\n } else if (opts.configFile !== false) {\n configFile = yield* findRootConfig(\n context.root,\n context.envName,\n context.caller,\n );\n }\n\n let { babelrc, babelrcRoots } = opts;\n let babelrcRootsDirectory = context.cwd;\n\n const configFileChain = emptyChain();\n const configFileLogger = new ConfigPrinter();\n if (configFile) {\n const validatedFile = validateConfigFile(configFile);\n const result = yield* loadFileChain(\n validatedFile,\n context,\n undefined,\n configFileLogger,\n );\n if (!result) return null;\n configReport = yield* configFileLogger.output();\n\n // Allow config files to toggle `.babelrc` resolution on and off and\n // specify where the roots are.\n if (babelrc === undefined) {\n babelrc = validatedFile.options.babelrc;\n }\n if (babelrcRoots === undefined) {\n babelrcRootsDirectory = validatedFile.dirname;\n babelrcRoots = validatedFile.options.babelrcRoots;\n }\n\n mergeChain(configFileChain, result);\n }\n\n let ignoreFile, babelrcFile;\n let isIgnored = false;\n const fileChain = emptyChain();\n // resolve all .babelrc files\n if (\n (babelrc === true || babelrc === undefined) &&\n typeof context.filename === \"string\"\n ) {\n const pkgData = yield* findPackageData(context.filename);\n\n if (\n pkgData &&\n babelrcLoadEnabled(context, pkgData, babelrcRoots, babelrcRootsDirectory)\n ) {\n ({ ignore: ignoreFile, config: babelrcFile } = yield* findRelativeConfig(\n pkgData,\n context.envName,\n context.caller,\n ));\n\n if (ignoreFile) {\n fileChain.files.add(ignoreFile.filepath);\n }\n\n if (\n ignoreFile &&\n shouldIgnore(context, ignoreFile.ignore, null, ignoreFile.dirname)\n ) {\n isIgnored = true;\n }\n\n if (babelrcFile && !isIgnored) {\n const validatedFile = validateBabelrcFile(babelrcFile);\n const babelrcLogger = new ConfigPrinter();\n const result = yield* loadFileChain(\n validatedFile,\n context,\n undefined,\n babelrcLogger,\n );\n if (!result) {\n isIgnored = true;\n } else {\n babelRcReport = yield* babelrcLogger.output();\n mergeChain(fileChain, result);\n }\n }\n\n if (babelrcFile && isIgnored) {\n fileChain.files.add(babelrcFile.filepath);\n }\n }\n }\n\n if (context.showConfig) {\n console.log(\n `Babel configs on \"${context.filename}\" (ascending priority):\\n` +\n // print config by the order of ascending priority\n [configReport, babelRcReport, programmaticReport]\n .filter(x => !!x)\n .join(\"\\n\\n\") +\n \"\\n-----End Babel configs-----\",\n );\n }\n // Insert file chain in front so programmatic options have priority\n // over configuration file chain items.\n const chain = mergeChain(\n mergeChain(mergeChain(emptyChain(), configFileChain), fileChain),\n programmaticChain,\n );\n\n return {\n plugins: isIgnored ? [] : dedupDescriptors(chain.plugins),\n presets: isIgnored ? [] : dedupDescriptors(chain.presets),\n options: isIgnored\n ? []\n : chain.options.map(o => createConfigChainOptions(o)),\n fileHandling: isIgnored ? \"ignored\" : \"transpile\",\n ignore: ignoreFile || undefined,\n babelrc: babelrcFile || undefined,\n config: configFile || undefined,\n files: chain.files,\n };\n}\n\nfunction babelrcLoadEnabled(\n context: ConfigContext,\n pkgData: FilePackageData,\n babelrcRoots: BabelrcSearch | undefined,\n babelrcRootsDirectory: string,\n): boolean {\n if (typeof babelrcRoots === \"boolean\") return babelrcRoots;\n\n const absoluteRoot = context.root;\n\n // Fast path to avoid having to match patterns if the babelrc is just\n // loading in the standard root directory.\n if (babelrcRoots === undefined) {\n return pkgData.directories.includes(absoluteRoot);\n }\n\n let babelrcPatterns = babelrcRoots;\n if (!Array.isArray(babelrcPatterns)) {\n babelrcPatterns = [babelrcPatterns];\n }\n babelrcPatterns = babelrcPatterns.map(pat => {\n return typeof pat === \"string\"\n ? path.resolve(babelrcRootsDirectory, pat)\n : pat;\n });\n\n // Fast path to avoid having to match patterns if the babelrc is just\n // loading in the standard root directory.\n if (babelrcPatterns.length === 1 && babelrcPatterns[0] === absoluteRoot) {\n return pkgData.directories.includes(absoluteRoot);\n }\n\n return babelrcPatterns.some(pat => {\n if (typeof pat === \"string\") {\n pat = pathPatternToRegex(pat, babelrcRootsDirectory);\n }\n\n return pkgData.directories.some(directory => {\n return matchPattern(pat, babelrcRootsDirectory, directory, context);\n });\n });\n}\n\nconst validateConfigFile = makeWeakCacheSync(\n (file: ConfigFile): ValidatedFile => ({\n filepath: file.filepath,\n dirname: file.dirname,\n options: validate(\"configfile\", file.options, file.filepath),\n }),\n);\n\nconst validateBabelrcFile = makeWeakCacheSync(\n (file: ConfigFile): ValidatedFile => ({\n filepath: file.filepath,\n dirname: file.dirname,\n options: validate(\"babelrcfile\", file.options, file.filepath),\n }),\n);\n\nconst validateExtendFile = makeWeakCacheSync(\n (file: ConfigFile): ValidatedFile => ({\n filepath: file.filepath,\n dirname: file.dirname,\n options: validate(\"extendsfile\", file.options, file.filepath),\n }),\n);\n\n/**\n * Build a config chain for just the programmatic options passed into Babel.\n */\nconst loadProgrammaticChain = makeChainWalker({\n root: input => buildRootDescriptors(input, \"base\", createCachedDescriptors),\n env: (input, envName) =>\n buildEnvDescriptors(input, \"base\", createCachedDescriptors, envName),\n overrides: (input, index) =>\n buildOverrideDescriptors(input, \"base\", createCachedDescriptors, index),\n overridesEnv: (input, index, envName) =>\n buildOverrideEnvDescriptors(\n input,\n \"base\",\n createCachedDescriptors,\n index,\n envName,\n ),\n createLogger: (input, context, baseLogger) =>\n buildProgrammaticLogger(input, context, baseLogger),\n});\n\n/**\n * Build a config chain for a given file.\n */\nconst loadFileChainWalker = makeChainWalker({\n root: file => loadFileDescriptors(file),\n env: (file, envName) => loadFileEnvDescriptors(file)(envName),\n overrides: (file, index) => loadFileOverridesDescriptors(file)(index),\n overridesEnv: (file, index, envName) =>\n loadFileOverridesEnvDescriptors(file)(index)(envName),\n createLogger: (file, context, baseLogger) =>\n buildFileLogger(file.filepath, context, baseLogger),\n});\n\nfunction* loadFileChain(\n input: ValidatedFile,\n context: ConfigContext,\n files: Set,\n baseLogger: ConfigPrinter,\n) {\n const chain = yield* loadFileChainWalker(input, context, files, baseLogger);\n chain?.files.add(input.filepath);\n\n return chain;\n}\n\nconst loadFileDescriptors = makeWeakCacheSync((file: ValidatedFile) =>\n buildRootDescriptors(file, file.filepath, createUncachedDescriptors),\n);\nconst loadFileEnvDescriptors = makeWeakCacheSync((file: ValidatedFile) =>\n makeStrongCacheSync((envName: string) =>\n buildEnvDescriptors(\n file,\n file.filepath,\n createUncachedDescriptors,\n envName,\n ),\n ),\n);\nconst loadFileOverridesDescriptors = makeWeakCacheSync((file: ValidatedFile) =>\n makeStrongCacheSync((index: number) =>\n buildOverrideDescriptors(\n file,\n file.filepath,\n createUncachedDescriptors,\n index,\n ),\n ),\n);\nconst loadFileOverridesEnvDescriptors = makeWeakCacheSync(\n (file: ValidatedFile) =>\n makeStrongCacheSync((index: number) =>\n makeStrongCacheSync((envName: string) =>\n buildOverrideEnvDescriptors(\n file,\n file.filepath,\n createUncachedDescriptors,\n index,\n envName,\n ),\n ),\n ),\n);\n\nfunction buildFileLogger(\n filepath: string,\n context: ConfigContext,\n baseLogger: ConfigPrinter | void,\n) {\n if (!baseLogger) {\n return () => {};\n }\n return baseLogger.configure(context.showConfig, ChainFormatter.Config, {\n filepath,\n });\n}\n\nfunction buildRootDescriptors(\n { dirname, options }: Partial,\n alias: string,\n descriptors: (\n dirname: string,\n options: InputOptions,\n alias: string,\n ) => OptionsAndDescriptors,\n) {\n return descriptors(dirname, options, alias);\n}\n\nfunction buildProgrammaticLogger(\n _: unknown,\n context: ConfigContext,\n baseLogger: ConfigPrinter | void,\n) {\n if (!baseLogger) {\n return () => {};\n }\n return baseLogger.configure(context.showConfig, ChainFormatter.Programmatic, {\n callerName: context.caller?.name,\n });\n}\n\nfunction buildEnvDescriptors(\n { dirname, options }: Partial,\n alias: string,\n descriptors: (\n dirname: string,\n options: InputOptions,\n alias: string,\n ) => OptionsAndDescriptors,\n envName: string,\n) {\n const opts = options.env?.[envName];\n return opts ? descriptors(dirname, opts, `${alias}.env[\"${envName}\"]`) : null;\n}\n\nfunction buildOverrideDescriptors(\n { dirname, options }: Partial,\n alias: string,\n descriptors: (\n dirname: string,\n options: InputOptions,\n alias: string,\n ) => OptionsAndDescriptors,\n index: number,\n) {\n const opts = options.overrides?.[index];\n if (!opts) throw new Error(\"Assertion failure - missing override\");\n\n return descriptors(dirname, opts, `${alias}.overrides[${index}]`);\n}\n\nfunction buildOverrideEnvDescriptors(\n { dirname, options }: Partial,\n alias: string,\n descriptors: (\n dirname: string,\n options: InputOptions,\n alias: string,\n ) => OptionsAndDescriptors,\n index: number,\n envName: string,\n) {\n const override = options.overrides?.[index];\n if (!override) throw new Error(\"Assertion failure - missing override\");\n\n const opts = override.env?.[envName];\n return opts\n ? descriptors(\n dirname,\n opts,\n `${alias}.overrides[${index}].env[\"${envName}\"]`,\n )\n : null;\n}\n\nfunction makeChainWalker<\n ArgT extends {\n options: InputOptions;\n dirname: string;\n filepath?: string;\n },\n>({\n root,\n env,\n overrides,\n overridesEnv,\n createLogger,\n}: {\n root: (configEntry: ArgT) => OptionsAndDescriptors;\n env: (configEntry: ArgT, env: string) => OptionsAndDescriptors | null;\n overrides: (configEntry: ArgT, index: number) => OptionsAndDescriptors;\n overridesEnv: (\n configEntry: ArgT,\n index: number,\n env: string,\n ) => OptionsAndDescriptors | null;\n createLogger: (\n configEntry: ArgT,\n context: ConfigContext,\n printer: ConfigPrinter | void,\n ) => (\n opts: OptionsAndDescriptors,\n index?: number | null,\n env?: string | null,\n ) => void;\n}): (\n configEntry: ArgT,\n context: ConfigContext,\n files?: Set,\n baseLogger?: ConfigPrinter,\n) => Handler {\n return function* chainWalker(input, context, files = new Set(), baseLogger) {\n const { dirname } = input;\n\n const flattenedConfigs: {\n config: OptionsAndDescriptors;\n index: number | undefined | null;\n envName: string | undefined | null;\n }[] = [];\n\n const rootOpts = root(input);\n if (configIsApplicable(rootOpts, dirname, context, input.filepath)) {\n flattenedConfigs.push({\n config: rootOpts,\n envName: undefined,\n index: undefined,\n });\n\n const envOpts = env(input, context.envName);\n if (\n envOpts &&\n configIsApplicable(envOpts, dirname, context, input.filepath)\n ) {\n flattenedConfigs.push({\n config: envOpts,\n envName: context.envName,\n index: undefined,\n });\n }\n\n (rootOpts.options.overrides || []).forEach((_, index) => {\n const overrideOps = overrides(input, index);\n if (configIsApplicable(overrideOps, dirname, context, input.filepath)) {\n flattenedConfigs.push({\n config: overrideOps,\n index,\n envName: undefined,\n });\n\n const overrideEnvOpts = overridesEnv(input, index, context.envName);\n if (\n overrideEnvOpts &&\n configIsApplicable(\n overrideEnvOpts,\n dirname,\n context,\n input.filepath,\n )\n ) {\n flattenedConfigs.push({\n config: overrideEnvOpts,\n index,\n envName: context.envName,\n });\n }\n }\n });\n }\n\n // Process 'ignore' and 'only' before 'extends' items are processed so\n // that we don't do extra work loading extended configs if a file is\n // ignored.\n if (\n flattenedConfigs.some(\n ({\n config: {\n options: { ignore, only },\n },\n }) => shouldIgnore(context, ignore, only, dirname),\n )\n ) {\n return null;\n }\n\n const chain = emptyChain();\n const logger = createLogger(input, context, baseLogger);\n\n for (const { config, index, envName } of flattenedConfigs) {\n if (\n !(yield* mergeExtendsChain(\n chain,\n config.options,\n dirname,\n context,\n files,\n baseLogger,\n ))\n ) {\n return null;\n }\n\n logger(config, index, envName);\n yield* mergeChainOpts(chain, config);\n }\n return chain;\n };\n}\n\nfunction* mergeExtendsChain(\n chain: ConfigChain,\n opts: InputOptions,\n dirname: string,\n context: ConfigContext,\n files: Set,\n baseLogger?: ConfigPrinter,\n): Handler {\n if (opts.extends === undefined) return true;\n\n const file = yield* loadConfig(\n opts.extends,\n dirname,\n context.envName,\n context.caller,\n );\n\n if (files.has(file)) {\n throw new Error(\n `Configuration cycle detected loading ${file.filepath}.\\n` +\n `File already loaded following the config chain:\\n` +\n Array.from(files, file => ` - ${file.filepath}`).join(\"\\n\"),\n );\n }\n\n files.add(file);\n const fileChain = yield* loadFileChain(\n validateExtendFile(file),\n context,\n files,\n baseLogger,\n );\n files.delete(file);\n\n if (!fileChain) return false;\n\n mergeChain(chain, fileChain);\n\n return true;\n}\n\nfunction mergeChain(target: ConfigChain, source: ConfigChain): ConfigChain {\n target.options.push(...source.options);\n target.plugins.push(...source.plugins);\n target.presets.push(...source.presets);\n for (const file of source.files) {\n target.files.add(file);\n }\n\n return target;\n}\n\nfunction* mergeChainOpts(\n target: ConfigChain,\n { options, plugins, presets }: OptionsAndDescriptors,\n): Handler {\n target.options.push(options);\n target.plugins.push(...(yield* plugins()));\n target.presets.push(...(yield* presets()));\n\n return target;\n}\n\nfunction emptyChain(): ConfigChain {\n return {\n options: [],\n presets: [],\n plugins: [],\n files: new Set(),\n };\n}\n\nfunction createConfigChainOptions(opts: InputOptions): ConfigChainOptions {\n const options = {\n ...opts,\n };\n delete options.extends;\n delete options.env;\n delete options.overrides;\n delete options.plugins;\n delete options.presets;\n delete options.passPerPreset;\n delete options.ignore;\n delete options.only;\n delete options.test;\n delete options.include;\n delete options.exclude;\n\n // \"sourceMap\" is just aliased to sourceMap, so copy it over as\n // we merge the options together.\n if (Object.hasOwn(options, \"sourceMap\")) {\n options.sourceMaps = options.sourceMap;\n delete options.sourceMap;\n }\n return options;\n}\n\nfunction dedupDescriptors(\n items: UnloadedDescriptor[],\n): UnloadedDescriptor[] {\n const map = new Map<\n Function,\n Map }>\n >();\n\n const descriptors = [];\n\n for (const item of items) {\n if (typeof item.value === \"function\") {\n const fnKey = item.value;\n let nameMap = map.get(fnKey);\n if (!nameMap) {\n nameMap = new Map();\n map.set(fnKey, nameMap);\n }\n let desc = nameMap.get(item.name);\n if (!desc) {\n desc = { value: item };\n descriptors.push(desc);\n\n // Treat passPerPreset presets as unique, skipping them\n // in the merge processing steps.\n if (!item.ownPass) nameMap.set(item.name, desc);\n } else {\n desc.value = item;\n }\n } else {\n descriptors.push({ value: item });\n }\n }\n\n return descriptors.reduce((acc, desc) => {\n acc.push(desc.value);\n return acc;\n }, []);\n}\n\nfunction configIsApplicable(\n { options }: OptionsAndDescriptors,\n dirname: string,\n context: ConfigContext,\n configName: string,\n): boolean {\n return (\n (options.test === undefined ||\n configFieldIsApplicable(context, options.test, dirname, configName)) &&\n (options.include === undefined ||\n configFieldIsApplicable(context, options.include, dirname, configName)) &&\n (options.exclude === undefined ||\n !configFieldIsApplicable(context, options.exclude, dirname, configName))\n );\n}\n\nfunction configFieldIsApplicable(\n context: ConfigContext,\n test: ConfigApplicableTest,\n dirname: string,\n configName: string,\n): boolean {\n const patterns = Array.isArray(test) ? test : [test];\n\n return matchesPatterns(context, patterns, dirname, configName);\n}\n\n/**\n * Print the ignoreList-values in a more helpful way than the default.\n */\nfunction ignoreListReplacer(\n _key: string,\n value: MatchItem[] | MatchItem,\n): MatchItem[] | MatchItem | string {\n if (value instanceof RegExp) {\n return String(value);\n }\n\n return value;\n}\n\n/**\n * Tests if a filename should be ignored based on \"ignore\" and \"only\" options.\n */\nfunction shouldIgnore(\n context: ConfigContext,\n ignore: MatchItem[] | undefined | null,\n only: MatchItem[] | undefined | null,\n dirname: string,\n): boolean {\n if (ignore && matchesPatterns(context, ignore, dirname)) {\n const message = `No config is applied to \"${\n context.filename ?? \"(unknown)\"\n }\" because it matches one of \\`ignore: ${JSON.stringify(\n ignore,\n ignoreListReplacer,\n )}\\` from \"${dirname}\"`;\n debug(message);\n if (context.showConfig) {\n console.log(message);\n }\n return true;\n }\n\n if (only && !matchesPatterns(context, only, dirname)) {\n const message = `No config is applied to \"${\n context.filename ?? \"(unknown)\"\n }\" because it fails to match one of \\`only: ${JSON.stringify(\n only,\n ignoreListReplacer,\n )}\\` from \"${dirname}\"`;\n debug(message);\n if (context.showConfig) {\n console.log(message);\n }\n return true;\n }\n\n return false;\n}\n\n/**\n * Returns result of calling function with filename if pattern is a function.\n * Otherwise returns result of matching pattern Regex with filename.\n */\nfunction matchesPatterns(\n context: ConfigContext,\n patterns: MatchItem[],\n dirname: string,\n configName?: string,\n): boolean {\n return patterns.some(pattern =>\n matchPattern(pattern, dirname, context.filename, context, configName),\n );\n}\n\nfunction matchPattern(\n pattern: MatchItem,\n dirname: string,\n pathToTest: string | undefined,\n context: ConfigContext,\n configName?: string,\n): boolean {\n if (typeof pattern === \"function\") {\n return !!endHiddenCallStack(pattern)(pathToTest, {\n dirname,\n envName: context.envName,\n caller: context.caller,\n });\n }\n\n if (typeof pathToTest !== \"string\") {\n throw new ConfigError(\n `Configuration contains string/RegExp pattern, but no filename was passed to Babel`,\n configName,\n );\n }\n\n if (typeof pattern === \"string\") {\n pattern = pathPatternToRegex(pattern, dirname);\n }\n return pattern.test(pathToTest);\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/core/lib/config/config-descriptors.js b/server/api/node_modules/@babel/core/lib/config/config-descriptors.js new file mode 100644 index 0000000..21fb414 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/config/config-descriptors.js @@ -0,0 +1,190 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.createCachedDescriptors = createCachedDescriptors; +exports.createDescriptor = createDescriptor; +exports.createUncachedDescriptors = createUncachedDescriptors; +function _gensync() { + const data = require("gensync"); + _gensync = function () { + return data; + }; + return data; +} +var _functional = require("../gensync-utils/functional.js"); +var _index = require("./files/index.js"); +var _item = require("./item.js"); +var _caching = require("./caching.js"); +var _resolveTargets = require("./resolve-targets.js"); +function isEqualDescriptor(a, b) { + var _a$file, _b$file, _a$file2, _b$file2; + return a.name === b.name && a.value === b.value && a.options === b.options && a.dirname === b.dirname && a.alias === b.alias && a.ownPass === b.ownPass && ((_a$file = a.file) == null ? void 0 : _a$file.request) === ((_b$file = b.file) == null ? void 0 : _b$file.request) && ((_a$file2 = a.file) == null ? void 0 : _a$file2.resolved) === ((_b$file2 = b.file) == null ? void 0 : _b$file2.resolved); +} +function* handlerOf(value) { + return value; +} +function optionsWithResolvedBrowserslistConfigFile(options, dirname) { + if (typeof options.browserslistConfigFile === "string") { + options.browserslistConfigFile = (0, _resolveTargets.resolveBrowserslistConfigFile)(options.browserslistConfigFile, dirname); + } + return options; +} +function createCachedDescriptors(dirname, options, alias) { + const { + plugins, + presets, + passPerPreset + } = options; + return { + options: optionsWithResolvedBrowserslistConfigFile(options, dirname), + plugins: plugins ? () => createCachedPluginDescriptors(plugins, dirname)(alias) : () => handlerOf([]), + presets: presets ? () => createCachedPresetDescriptors(presets, dirname)(alias)(!!passPerPreset) : () => handlerOf([]) + }; +} +function createUncachedDescriptors(dirname, options, alias) { + return { + options: optionsWithResolvedBrowserslistConfigFile(options, dirname), + plugins: (0, _functional.once)(() => createPluginDescriptors(options.plugins || [], dirname, alias)), + presets: (0, _functional.once)(() => createPresetDescriptors(options.presets || [], dirname, alias, !!options.passPerPreset)) + }; +} +const PRESET_DESCRIPTOR_CACHE = new WeakMap(); +const createCachedPresetDescriptors = (0, _caching.makeWeakCacheSync)((items, cache) => { + const dirname = cache.using(dir => dir); + return (0, _caching.makeStrongCacheSync)(alias => (0, _caching.makeStrongCache)(function* (passPerPreset) { + const descriptors = yield* createPresetDescriptors(items, dirname, alias, passPerPreset); + return descriptors.map(desc => loadCachedDescriptor(PRESET_DESCRIPTOR_CACHE, desc)); + })); +}); +const PLUGIN_DESCRIPTOR_CACHE = new WeakMap(); +const createCachedPluginDescriptors = (0, _caching.makeWeakCacheSync)((items, cache) => { + const dirname = cache.using(dir => dir); + return (0, _caching.makeStrongCache)(function* (alias) { + const descriptors = yield* createPluginDescriptors(items, dirname, alias); + return descriptors.map(desc => loadCachedDescriptor(PLUGIN_DESCRIPTOR_CACHE, desc)); + }); +}); +const DEFAULT_OPTIONS = {}; +function loadCachedDescriptor(cache, desc) { + const { + value, + options = DEFAULT_OPTIONS + } = desc; + if (options === false) return desc; + let cacheByOptions = cache.get(value); + if (!cacheByOptions) { + cacheByOptions = new WeakMap(); + cache.set(value, cacheByOptions); + } + let possibilities = cacheByOptions.get(options); + if (!possibilities) { + possibilities = []; + cacheByOptions.set(options, possibilities); + } + if (!possibilities.includes(desc)) { + const matches = possibilities.filter(possibility => isEqualDescriptor(possibility, desc)); + if (matches.length > 0) { + return matches[0]; + } + possibilities.push(desc); + } + return desc; +} +function* createPresetDescriptors(items, dirname, alias, passPerPreset) { + return yield* createDescriptors("preset", items, dirname, alias, passPerPreset); +} +function* createPluginDescriptors(items, dirname, alias) { + return yield* createDescriptors("plugin", items, dirname, alias); +} +function* createDescriptors(type, items, dirname, alias, ownPass) { + const descriptors = yield* _gensync().all(items.map((item, index) => createDescriptor(item, dirname, { + type, + alias: `${alias}$${index}`, + ownPass: !!ownPass + }))); + assertNoDuplicates(descriptors); + return descriptors; +} +function* createDescriptor(pair, dirname, { + type, + alias, + ownPass +}) { + const desc = (0, _item.getItemDescriptor)(pair); + if (desc) { + return desc; + } + let name; + let options; + let value = pair; + if (Array.isArray(value)) { + if (value.length === 3) { + [value, options, name] = value; + } else { + [value, options] = value; + } + } + let file = undefined; + let filepath = null; + if (typeof value === "string") { + if (typeof type !== "string") { + throw new Error("To resolve a string-based item, the type of item must be given"); + } + const resolver = type === "plugin" ? _index.loadPlugin : _index.loadPreset; + const request = value; + ({ + filepath, + value + } = yield* resolver(value, dirname)); + file = { + request, + resolved: filepath + }; + } + if (!value) { + throw new Error(`Unexpected falsy value: ${String(value)}`); + } + if (typeof value === "object" && value.__esModule) { + if (value.default) { + value = value.default; + } else { + throw new Error("Must export a default export when using ES6 modules."); + } + } + if (typeof value !== "object" && typeof value !== "function") { + throw new Error(`Unsupported format: ${typeof value}. Expected an object or a function.`); + } + if (filepath !== null && typeof value === "object" && value) { + throw new Error(`Plugin/Preset files are not allowed to export objects, only functions. In ${filepath}`); + } + return { + name, + alias: filepath || alias, + value, + options, + dirname, + ownPass, + file + }; +} +function assertNoDuplicates(items) { + const map = new Map(); + for (const item of items) { + if (typeof item.value !== "function") continue; + let nameMap = map.get(item.value); + if (!nameMap) { + nameMap = new Set(); + map.set(item.value, nameMap); + } + if (nameMap.has(item.name)) { + const conflicts = items.filter(i => i.value === item.value); + throw new Error([`Duplicate plugin/preset detected.`, `If you'd like to use two separate instances of a plugin,`, `they need separate names, e.g.`, ``, ` plugins: [`, ` ['some-plugin', {}],`, ` ['some-plugin', {}, 'some unique name'],`, ` ]`, ``, `Duplicates detected are:`, `${JSON.stringify(conflicts, null, 2)}`].join("\n")); + } + nameMap.add(item.name); + } +} +0 && 0; + +//# sourceMappingURL=config-descriptors.js.map diff --git a/server/api/node_modules/@babel/core/lib/config/config-descriptors.js.map b/server/api/node_modules/@babel/core/lib/config/config-descriptors.js.map new file mode 100644 index 0000000..b51b2cb --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/config/config-descriptors.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_gensync","data","require","_functional","_index","_item","_caching","_resolveTargets","isEqualDescriptor","a","b","_a$file","_b$file","_a$file2","_b$file2","name","value","options","dirname","alias","ownPass","file","request","resolved","handlerOf","optionsWithResolvedBrowserslistConfigFile","browserslistConfigFile","resolveBrowserslistConfigFile","createCachedDescriptors","plugins","presets","passPerPreset","createCachedPluginDescriptors","createCachedPresetDescriptors","createUncachedDescriptors","once","createPluginDescriptors","createPresetDescriptors","PRESET_DESCRIPTOR_CACHE","WeakMap","makeWeakCacheSync","items","cache","using","dir","makeStrongCacheSync","makeStrongCache","descriptors","map","desc","loadCachedDescriptor","PLUGIN_DESCRIPTOR_CACHE","DEFAULT_OPTIONS","cacheByOptions","get","set","possibilities","includes","matches","filter","possibility","length","push","createDescriptors","type","gensync","all","item","index","createDescriptor","assertNoDuplicates","pair","getItemDescriptor","Array","isArray","undefined","filepath","Error","resolver","loadPlugin","loadPreset","String","__esModule","default","Map","nameMap","Set","has","conflicts","i","JSON","stringify","join","add"],"sources":["../../src/config/config-descriptors.ts"],"sourcesContent":["import gensync, { type Handler } from \"gensync\";\nimport { once } from \"../gensync-utils/functional.ts\";\n\nimport { loadPlugin, loadPreset } from \"./files/index.ts\";\n\nimport { getItemDescriptor } from \"./item.ts\";\n\nimport {\n makeWeakCacheSync,\n makeStrongCacheSync,\n makeStrongCache,\n} from \"./caching.ts\";\nimport type { CacheConfigurator } from \"./caching.ts\";\n\nimport type {\n PluginItem,\n InputOptions,\n PresetItem,\n} from \"./validation/options.ts\";\n\nimport { resolveBrowserslistConfigFile } from \"./resolve-targets.ts\";\nimport type { PluginAPI, PresetAPI } from \"./helpers/config-api.ts\";\n\n// Represents a config object and functions to lazily load the descriptors\n// for the plugins and presets so we don't load the plugins/presets unless\n// the options object actually ends up being applicable.\nexport type OptionsAndDescriptors = {\n options: InputOptions;\n plugins: () => Handler[]>;\n presets: () => Handler[]>;\n};\n\n// Represents a plugin or presets at a given location in a config object.\n// At this point these have been resolved to a specific object or function,\n// but have not yet been executed to call functions with options.\nexport interface UnloadedDescriptor {\n name: string | undefined;\n value: object | ((api: API, options: Options, dirname: string) => unknown);\n options: Options;\n dirname: string;\n alias: string;\n ownPass?: boolean;\n file?: {\n request: string;\n resolved: string;\n };\n}\n\nfunction isEqualDescriptor(\n a: UnloadedDescriptor,\n b: UnloadedDescriptor,\n): boolean {\n return (\n a.name === b.name &&\n a.value === b.value &&\n a.options === b.options &&\n a.dirname === b.dirname &&\n a.alias === b.alias &&\n a.ownPass === b.ownPass &&\n a.file?.request === b.file?.request &&\n a.file?.resolved === b.file?.resolved\n );\n}\n\nexport type ValidatedFile = {\n filepath: string;\n dirname: string;\n options: InputOptions;\n};\n\n// eslint-disable-next-line require-yield\nfunction* handlerOf(value: T): Handler {\n return value;\n}\n\nfunction optionsWithResolvedBrowserslistConfigFile(\n options: InputOptions,\n dirname: string,\n): InputOptions {\n if (typeof options.browserslistConfigFile === \"string\") {\n options.browserslistConfigFile = resolveBrowserslistConfigFile(\n options.browserslistConfigFile,\n dirname,\n );\n }\n return options;\n}\n\n/**\n * Create a set of descriptors from a given options object, preserving\n * descriptor identity based on the identity of the plugin/preset arrays\n * themselves, and potentially on the identity of the plugins/presets + options.\n */\nexport function createCachedDescriptors(\n dirname: string,\n options: InputOptions,\n alias: string,\n): OptionsAndDescriptors {\n const { plugins, presets, passPerPreset } = options;\n return {\n options: optionsWithResolvedBrowserslistConfigFile(options, dirname),\n plugins: plugins\n ? () =>\n // @ts-expect-error todo(flow->ts) ts complains about incorrect arguments\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n createCachedPluginDescriptors(plugins, dirname)(alias)\n : () => handlerOf([]),\n presets: presets\n ? () =>\n // @ts-expect-error todo(flow->ts) ts complains about incorrect arguments\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n createCachedPresetDescriptors(presets, dirname)(alias)(\n !!passPerPreset,\n )\n : () => handlerOf([]),\n };\n}\n\n/**\n * Create a set of descriptors from a given options object, with consistent\n * identity for the descriptors, but not caching based on any specific identity.\n */\nexport function createUncachedDescriptors(\n dirname: string,\n options: InputOptions,\n alias: string,\n): OptionsAndDescriptors {\n return {\n options: optionsWithResolvedBrowserslistConfigFile(options, dirname),\n // The returned result here is cached to represent a config object in\n // memory, so we build and memoize the descriptors to ensure the same\n // values are returned consistently.\n plugins: once(() =>\n createPluginDescriptors(options.plugins || [], dirname, alias),\n ),\n presets: once(() =>\n createPresetDescriptors(\n options.presets || [],\n dirname,\n alias,\n !!options.passPerPreset,\n ),\n ),\n };\n}\n\nconst PRESET_DESCRIPTOR_CACHE = new WeakMap();\nconst createCachedPresetDescriptors = makeWeakCacheSync(\n (items: PresetItem[], cache: CacheConfigurator) => {\n const dirname = cache.using(dir => dir);\n return makeStrongCacheSync((alias: string) =>\n makeStrongCache(function* (\n passPerPreset: boolean,\n ): Handler[]> {\n const descriptors = yield* createPresetDescriptors(\n items,\n dirname,\n alias,\n passPerPreset,\n );\n return descriptors.map(\n // Items are cached using the overall preset array identity when\n // possibly, but individual descriptors are also cached if a match\n // can be found in the previously-used descriptor lists.\n desc => loadCachedDescriptor(PRESET_DESCRIPTOR_CACHE, desc),\n );\n }),\n );\n },\n);\n\nconst PLUGIN_DESCRIPTOR_CACHE = new WeakMap();\nconst createCachedPluginDescriptors = makeWeakCacheSync(\n (items: PluginItem[], cache: CacheConfigurator) => {\n const dirname = cache.using(dir => dir);\n return makeStrongCache(function* (\n alias: string,\n ): Handler[]> {\n const descriptors = yield* createPluginDescriptors(items, dirname, alias);\n return descriptors.map(\n // Items are cached using the overall plugin array identity when\n // possibly, but individual descriptors are also cached if a match\n // can be found in the previously-used descriptor lists.\n desc => loadCachedDescriptor(PLUGIN_DESCRIPTOR_CACHE, desc),\n );\n });\n },\n);\n\n/**\n * When no options object is given in a descriptor, this object is used\n * as a WeakMap key in order to have consistent identity.\n */\nconst DEFAULT_OPTIONS = {};\n\n/**\n * Given the cache and a descriptor, returns a matching descriptor from the\n * cache, or else returns the input descriptor and adds it to the cache for\n * next time.\n */\nfunction loadCachedDescriptor(\n cache: WeakMap[]>>,\n desc: UnloadedDescriptor,\n) {\n const { value, options = DEFAULT_OPTIONS } = desc;\n if (options === false) return desc;\n\n let cacheByOptions = cache.get(value);\n if (!cacheByOptions) {\n cacheByOptions = new WeakMap();\n cache.set(value, cacheByOptions);\n }\n\n let possibilities = cacheByOptions.get(options);\n if (!possibilities) {\n possibilities = [];\n cacheByOptions.set(options, possibilities);\n }\n\n if (!possibilities.includes(desc)) {\n const matches = possibilities.filter(possibility =>\n isEqualDescriptor(possibility, desc),\n );\n if (matches.length > 0) {\n return matches[0];\n }\n\n possibilities.push(desc);\n }\n\n return desc;\n}\n\nfunction* createPresetDescriptors(\n items: PresetItem[],\n dirname: string,\n alias: string,\n passPerPreset: boolean,\n): Handler[]> {\n return yield* createDescriptors(\n \"preset\",\n items,\n dirname,\n alias,\n passPerPreset,\n );\n}\n\nfunction* createPluginDescriptors(\n items: PluginItem[],\n dirname: string,\n alias: string,\n): Handler[]> {\n return yield* createDescriptors(\"plugin\", items, dirname, alias);\n}\n\nfunction* createDescriptors(\n type: Type,\n items: Type extends \"plugin\" ? PluginItem[] : PresetItem[],\n dirname: string,\n alias: string,\n ownPass?: boolean,\n): Handler<\n UnloadedDescriptor[]\n> {\n const descriptors = yield* gensync.all(\n items.map((item, index) =>\n createDescriptor(item, dirname, {\n type,\n alias: `${alias}$${index}`,\n ownPass: !!ownPass,\n }),\n ),\n );\n\n assertNoDuplicates(descriptors);\n\n return descriptors;\n}\n\n/**\n * Given a plugin/preset item, resolve it into a standard format.\n */\nexport function* createDescriptor(\n pair: PluginItem | PresetItem,\n dirname: string,\n {\n type,\n alias,\n ownPass,\n }: {\n type?: \"plugin\" | \"preset\";\n alias: string;\n ownPass?: boolean;\n },\n): Handler> {\n const desc = getItemDescriptor(pair);\n if (desc) {\n return desc;\n }\n\n let name;\n let options;\n let value = pair;\n if (Array.isArray(value)) {\n if (value.length === 3) {\n [value, options, name] = value;\n } else {\n [value, options] = value;\n }\n }\n\n let file = undefined;\n let filepath = null;\n if (typeof value === \"string\") {\n if (typeof type !== \"string\") {\n throw new Error(\n \"To resolve a string-based item, the type of item must be given\",\n );\n }\n const resolver = type === \"plugin\" ? loadPlugin : loadPreset;\n const request = value;\n\n // @ts-expect-error value must be a PluginItem\n ({ filepath, value } = yield* resolver(value, dirname));\n\n file = {\n request,\n resolved: filepath,\n };\n }\n\n if (!value) {\n // eslint-disable-next-line @typescript-eslint/no-base-to-string\n throw new Error(`Unexpected falsy value: ${String(value)}`);\n }\n\n // @ts-expect-error Handle transpiled ES6 modules.\n if (typeof value === \"object\" && value.__esModule) {\n // @ts-expect-error Handle transpiled ES6 modules.\n if (value.default) {\n // @ts-expect-error Handle transpiled ES6 modules.\n value = value.default;\n } else {\n throw new Error(\"Must export a default export when using ES6 modules.\");\n }\n }\n\n if (typeof value !== \"object\" && typeof value !== \"function\") {\n throw new Error(\n `Unsupported format: ${typeof value}. Expected an object or a function.`,\n );\n }\n\n if (filepath !== null && typeof value === \"object\" && value) {\n // We allow object values for plugins/presets nested directly within a\n // config object, because it can be useful to define them in nested\n // configuration contexts.\n throw new Error(\n `Plugin/Preset files are not allowed to export objects, only functions. In ${filepath}`,\n );\n }\n\n return {\n name,\n alias: filepath || alias,\n value,\n options,\n dirname,\n ownPass,\n file,\n };\n}\n\nfunction assertNoDuplicates(items: UnloadedDescriptor[]): void {\n const map = new Map();\n\n for (const item of items) {\n if (typeof item.value !== \"function\") continue;\n\n let nameMap = map.get(item.value);\n if (!nameMap) {\n nameMap = new Set();\n map.set(item.value, nameMap);\n }\n\n if (nameMap.has(item.name)) {\n const conflicts = items.filter(i => i.value === item.value);\n throw new Error(\n [\n `Duplicate plugin/preset detected.`,\n `If you'd like to use two separate instances of a plugin,`,\n `they need separate names, e.g.`,\n ``,\n ` plugins: [`,\n ` ['some-plugin', {}],`,\n ` ['some-plugin', {}, 'some unique name'],`,\n ` ]`,\n ``,\n `Duplicates detected are:`,\n `${JSON.stringify(conflicts, null, 2)}`,\n ].join(\"\\n\"),\n );\n }\n\n nameMap.add(item.name);\n }\n}\n"],"mappings":";;;;;;;;AAAA,SAAAA,SAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,QAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,IAAAE,WAAA,GAAAD,OAAA;AAEA,IAAAE,MAAA,GAAAF,OAAA;AAEA,IAAAG,KAAA,GAAAH,OAAA;AAEA,IAAAI,QAAA,GAAAJ,OAAA;AAaA,IAAAK,eAAA,GAAAL,OAAA;AA4BA,SAASM,iBAAiBA,CACxBC,CAA0B,EAC1BC,CAA0B,EACjB;EAAA,IAAAC,OAAA,EAAAC,OAAA,EAAAC,QAAA,EAAAC,QAAA;EACT,OACEL,CAAC,CAACM,IAAI,KAAKL,CAAC,CAACK,IAAI,IACjBN,CAAC,CAACO,KAAK,KAAKN,CAAC,CAACM,KAAK,IACnBP,CAAC,CAACQ,OAAO,KAAKP,CAAC,CAACO,OAAO,IACvBR,CAAC,CAACS,OAAO,KAAKR,CAAC,CAACQ,OAAO,IACvBT,CAAC,CAACU,KAAK,KAAKT,CAAC,CAACS,KAAK,IACnBV,CAAC,CAACW,OAAO,KAAKV,CAAC,CAACU,OAAO,IACvB,EAAAT,OAAA,GAAAF,CAAC,CAACY,IAAI,qBAANV,OAAA,CAAQW,OAAO,QAAAV,OAAA,GAAKF,CAAC,CAACW,IAAI,qBAANT,OAAA,CAAQU,OAAO,KACnC,EAAAT,QAAA,GAAAJ,CAAC,CAACY,IAAI,qBAANR,QAAA,CAAQU,QAAQ,QAAAT,QAAA,GAAKJ,CAAC,CAACW,IAAI,qBAANP,QAAA,CAAQS,QAAQ;AAEzC;AASA,UAAUC,SAASA,CAAIR,KAAQ,EAAc;EAC3C,OAAOA,KAAK;AACd;AAEA,SAASS,yCAAyCA,CAChDR,OAAqB,EACrBC,OAAe,EACD;EACd,IAAI,OAAOD,OAAO,CAACS,sBAAsB,KAAK,QAAQ,EAAE;IACtDT,OAAO,CAACS,sBAAsB,GAAG,IAAAC,6CAA6B,EAC5DV,OAAO,CAACS,sBAAsB,EAC9BR,OACF,CAAC;EACH;EACA,OAAOD,OAAO;AAChB;AAOO,SAASW,uBAAuBA,CACrCV,OAAe,EACfD,OAAqB,EACrBE,KAAa,EACU;EACvB,MAAM;IAAEU,OAAO;IAAEC,OAAO;IAAEC;EAAc,CAAC,GAAGd,OAAO;EACnD,OAAO;IACLA,OAAO,EAAEQ,yCAAyC,CAACR,OAAO,EAAEC,OAAO,CAAC;IACpEW,OAAO,EAAEA,OAAO,GACZ,MAGEG,6BAA6B,CAACH,OAAO,EAAEX,OAAO,CAAC,CAACC,KAAK,CAAC,GACxD,MAAMK,SAAS,CAAC,EAAE,CAAC;IACvBM,OAAO,EAAEA,OAAO,GACZ,MAGEG,6BAA6B,CAACH,OAAO,EAAEZ,OAAO,CAAC,CAACC,KAAK,CAAC,CACpD,CAAC,CAACY,aACJ,CAAC,GACH,MAAMP,SAAS,CAAC,EAAE;EACxB,CAAC;AACH;AAMO,SAASU,yBAAyBA,CACvChB,OAAe,EACfD,OAAqB,EACrBE,KAAa,EACU;EACvB,OAAO;IACLF,OAAO,EAAEQ,yCAAyC,CAACR,OAAO,EAAEC,OAAO,CAAC;IAIpEW,OAAO,EAAE,IAAAM,gBAAI,EAAC,MACZC,uBAAuB,CAACnB,OAAO,CAACY,OAAO,IAAI,EAAE,EAAEX,OAAO,EAAEC,KAAK,CAC/D,CAAC;IACDW,OAAO,EAAE,IAAAK,gBAAI,EAAC,MACZE,uBAAuB,CACrBpB,OAAO,CAACa,OAAO,IAAI,EAAE,EACrBZ,OAAO,EACPC,KAAK,EACL,CAAC,CAACF,OAAO,CAACc,aACZ,CACF;EACF,CAAC;AACH;AAEA,MAAMO,uBAAuB,GAAG,IAAIC,OAAO,CAAC,CAAC;AAC7C,MAAMN,6BAA6B,GAAG,IAAAO,0BAAiB,EACrD,CAACC,KAAmB,EAAEC,KAAgC,KAAK;EACzD,MAAMxB,OAAO,GAAGwB,KAAK,CAACC,KAAK,CAACC,GAAG,IAAIA,GAAG,CAAC;EACvC,OAAO,IAAAC,4BAAmB,EAAE1B,KAAa,IACvC,IAAA2B,wBAAe,EAAC,WACdf,aAAsB,EACoB;IAC1C,MAAMgB,WAAW,GAAG,OAAOV,uBAAuB,CAChDI,KAAK,EACLvB,OAAO,EACPC,KAAK,EACLY,aACF,CAAC;IACD,OAAOgB,WAAW,CAACC,GAAG,CAIpBC,IAAI,IAAIC,oBAAoB,CAACZ,uBAAuB,EAAEW,IAAI,CAC5D,CAAC;EACH,CAAC,CACH,CAAC;AACH,CACF,CAAC;AAED,MAAME,uBAAuB,GAAG,IAAIZ,OAAO,CAAC,CAAC;AAC7C,MAAMP,6BAA6B,GAAG,IAAAQ,0BAAiB,EACrD,CAACC,KAAmB,EAAEC,KAAgC,KAAK;EACzD,MAAMxB,OAAO,GAAGwB,KAAK,CAACC,KAAK,CAACC,GAAG,IAAIA,GAAG,CAAC;EACvC,OAAO,IAAAE,wBAAe,EAAC,WACrB3B,KAAa,EAC6B;IAC1C,MAAM4B,WAAW,GAAG,OAAOX,uBAAuB,CAACK,KAAK,EAAEvB,OAAO,EAAEC,KAAK,CAAC;IACzE,OAAO4B,WAAW,CAACC,GAAG,CAIpBC,IAAI,IAAIC,oBAAoB,CAACC,uBAAuB,EAAEF,IAAI,CAC5D,CAAC;EACH,CAAC,CAAC;AACJ,CACF,CAAC;AAMD,MAAMG,eAAe,GAAG,CAAC,CAAC;AAO1B,SAASF,oBAAoBA,CAC3BR,KAA6E,EAC7EO,IAA6B,EAC7B;EACA,MAAM;IAAEjC,KAAK;IAAEC,OAAO,GAAGmC;EAAgB,CAAC,GAAGH,IAAI;EACjD,IAAIhC,OAAO,KAAK,KAAK,EAAE,OAAOgC,IAAI;EAElC,IAAII,cAAc,GAAGX,KAAK,CAACY,GAAG,CAACtC,KAAK,CAAC;EACrC,IAAI,CAACqC,cAAc,EAAE;IACnBA,cAAc,GAAG,IAAId,OAAO,CAAC,CAAC;IAC9BG,KAAK,CAACa,GAAG,CAACvC,KAAK,EAAEqC,cAAc,CAAC;EAClC;EAEA,IAAIG,aAAa,GAAGH,cAAc,CAACC,GAAG,CAACrC,OAAO,CAAC;EAC/C,IAAI,CAACuC,aAAa,EAAE;IAClBA,aAAa,GAAG,EAAE;IAClBH,cAAc,CAACE,GAAG,CAACtC,OAAO,EAAEuC,aAAa,CAAC;EAC5C;EAEA,IAAI,CAACA,aAAa,CAACC,QAAQ,CAACR,IAAI,CAAC,EAAE;IACjC,MAAMS,OAAO,GAAGF,aAAa,CAACG,MAAM,CAACC,WAAW,IAC9CpD,iBAAiB,CAACoD,WAAW,EAAEX,IAAI,CACrC,CAAC;IACD,IAAIS,OAAO,CAACG,MAAM,GAAG,CAAC,EAAE;MACtB,OAAOH,OAAO,CAAC,CAAC,CAAC;IACnB;IAEAF,aAAa,CAACM,IAAI,CAACb,IAAI,CAAC;EAC1B;EAEA,OAAOA,IAAI;AACb;AAEA,UAAUZ,uBAAuBA,CAC/BI,KAAmB,EACnBvB,OAAe,EACfC,KAAa,EACbY,aAAsB,EACoB;EAC1C,OAAO,OAAOgC,iBAAiB,CAC7B,QAAQ,EACRtB,KAAK,EACLvB,OAAO,EACPC,KAAK,EACLY,aACF,CAAC;AACH;AAEA,UAAUK,uBAAuBA,CAC/BK,KAAmB,EACnBvB,OAAe,EACfC,KAAa,EAC6B;EAC1C,OAAO,OAAO4C,iBAAiB,CAAC,QAAQ,EAAEtB,KAAK,EAAEvB,OAAO,EAAEC,KAAK,CAAC;AAClE;AAEA,UAAU4C,iBAAiBA,CACzBC,IAAU,EACVvB,KAA0D,EAC1DvB,OAAe,EACfC,KAAa,EACbC,OAAiB,EAGjB;EACA,MAAM2B,WAAW,GAAG,OAAOkB,SAAMA,CAAC,CAACC,GAAG,CACpCzB,KAAK,CAACO,GAAG,CAAC,CAACmB,IAAI,EAAEC,KAAK,KACpBC,gBAAgB,CAACF,IAAI,EAAEjD,OAAO,EAAE;IAC9B8C,IAAI;IACJ7C,KAAK,EAAE,GAAGA,KAAK,IAAIiD,KAAK,EAAE;IAC1BhD,OAAO,EAAE,CAAC,CAACA;EACb,CAAC,CACH,CACF,CAAC;EAEDkD,kBAAkB,CAACvB,WAAW,CAAC;EAE/B,OAAOA,WAAW;AACpB;AAKO,UAAUsB,gBAAgBA,CAC/BE,IAA6B,EAC7BrD,OAAe,EACf;EACE8C,IAAI;EACJ7C,KAAK;EACLC;AAKF,CAAC,EACiC;EAClC,MAAM6B,IAAI,GAAG,IAAAuB,uBAAiB,EAACD,IAAI,CAAC;EACpC,IAAItB,IAAI,EAAE;IACR,OAAOA,IAAI;EACb;EAEA,IAAIlC,IAAI;EACR,IAAIE,OAAO;EACX,IAAID,KAAK,GAAGuD,IAAI;EAChB,IAAIE,KAAK,CAACC,OAAO,CAAC1D,KAAK,CAAC,EAAE;IACxB,IAAIA,KAAK,CAAC6C,MAAM,KAAK,CAAC,EAAE;MACtB,CAAC7C,KAAK,EAAEC,OAAO,EAAEF,IAAI,CAAC,GAAGC,KAAK;IAChC,CAAC,MAAM;MACL,CAACA,KAAK,EAAEC,OAAO,CAAC,GAAGD,KAAK;IAC1B;EACF;EAEA,IAAIK,IAAI,GAAGsD,SAAS;EACpB,IAAIC,QAAQ,GAAG,IAAI;EACnB,IAAI,OAAO5D,KAAK,KAAK,QAAQ,EAAE;IAC7B,IAAI,OAAOgD,IAAI,KAAK,QAAQ,EAAE;MAC5B,MAAM,IAAIa,KAAK,CACb,gEACF,CAAC;IACH;IACA,MAAMC,QAAQ,GAAGd,IAAI,KAAK,QAAQ,GAAGe,iBAAU,GAAGC,iBAAU;IAC5D,MAAM1D,OAAO,GAAGN,KAAK;IAGrB,CAAC;MAAE4D,QAAQ;MAAE5D;IAAM,CAAC,GAAG,OAAO8D,QAAQ,CAAC9D,KAAK,EAAEE,OAAO,CAAC;IAEtDG,IAAI,GAAG;MACLC,OAAO;MACPC,QAAQ,EAAEqD;IACZ,CAAC;EACH;EAEA,IAAI,CAAC5D,KAAK,EAAE;IAEV,MAAM,IAAI6D,KAAK,CAAC,2BAA2BI,MAAM,CAACjE,KAAK,CAAC,EAAE,CAAC;EAC7D;EAGA,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAIA,KAAK,CAACkE,UAAU,EAAE;IAEjD,IAAIlE,KAAK,CAACmE,OAAO,EAAE;MAEjBnE,KAAK,GAAGA,KAAK,CAACmE,OAAO;IACvB,CAAC,MAAM;MACL,MAAM,IAAIN,KAAK,CAAC,sDAAsD,CAAC;IACzE;EACF;EAEA,IAAI,OAAO7D,KAAK,KAAK,QAAQ,IAAI,OAAOA,KAAK,KAAK,UAAU,EAAE;IAC5D,MAAM,IAAI6D,KAAK,CACb,uBAAuB,OAAO7D,KAAK,qCACrC,CAAC;EACH;EAEA,IAAI4D,QAAQ,KAAK,IAAI,IAAI,OAAO5D,KAAK,KAAK,QAAQ,IAAIA,KAAK,EAAE;IAI3D,MAAM,IAAI6D,KAAK,CACb,6EAA6ED,QAAQ,EACvF,CAAC;EACH;EAEA,OAAO;IACL7D,IAAI;IACJI,KAAK,EAAEyD,QAAQ,IAAIzD,KAAK;IACxBH,KAAK;IACLC,OAAO;IACPC,OAAO;IACPE,OAAO;IACPC;EACF,CAAC;AACH;AAEA,SAASiD,kBAAkBA,CAAM7B,KAAgC,EAAQ;EACvE,MAAMO,GAAG,GAAG,IAAIoC,GAAG,CAAC,CAAC;EAErB,KAAK,MAAMjB,IAAI,IAAI1B,KAAK,EAAE;IACxB,IAAI,OAAO0B,IAAI,CAACnD,KAAK,KAAK,UAAU,EAAE;IAEtC,IAAIqE,OAAO,GAAGrC,GAAG,CAACM,GAAG,CAACa,IAAI,CAACnD,KAAK,CAAC;IACjC,IAAI,CAACqE,OAAO,EAAE;MACZA,OAAO,GAAG,IAAIC,GAAG,CAAC,CAAC;MACnBtC,GAAG,CAACO,GAAG,CAACY,IAAI,CAACnD,KAAK,EAAEqE,OAAO,CAAC;IAC9B;IAEA,IAAIA,OAAO,CAACE,GAAG,CAACpB,IAAI,CAACpD,IAAI,CAAC,EAAE;MAC1B,MAAMyE,SAAS,GAAG/C,KAAK,CAACkB,MAAM,CAAC8B,CAAC,IAAIA,CAAC,CAACzE,KAAK,KAAKmD,IAAI,CAACnD,KAAK,CAAC;MAC3D,MAAM,IAAI6D,KAAK,CACb,CACE,mCAAmC,EACnC,0DAA0D,EAC1D,gCAAgC,EAChC,EAAE,EACF,cAAc,EACd,0BAA0B,EAC1B,8CAA8C,EAC9C,KAAK,EACL,EAAE,EACF,0BAA0B,EAC1B,GAAGa,IAAI,CAACC,SAAS,CAACH,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CACxC,CAACI,IAAI,CAAC,IAAI,CACb,CAAC;IACH;IAEAP,OAAO,CAACQ,GAAG,CAAC1B,IAAI,CAACpD,IAAI,CAAC;EACxB;AACF;AAAC","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/core/lib/config/files/configuration.js b/server/api/node_modules/@babel/core/lib/config/files/configuration.js new file mode 100644 index 0000000..582fc32 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/config/files/configuration.js @@ -0,0 +1,290 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.ROOT_CONFIG_FILENAMES = void 0; +exports.findConfigUpwards = findConfigUpwards; +exports.findRelativeConfig = findRelativeConfig; +exports.findRootConfig = findRootConfig; +exports.loadConfig = loadConfig; +exports.resolveShowConfigPath = resolveShowConfigPath; +function _debug() { + const data = require("debug"); + _debug = function () { + return data; + }; + return data; +} +function _fs() { + const data = require("fs"); + _fs = function () { + return data; + }; + return data; +} +function _path() { + const data = require("path"); + _path = function () { + return data; + }; + return data; +} +function _json() { + const data = require("json5"); + _json = function () { + return data; + }; + return data; +} +function _gensync() { + const data = require("gensync"); + _gensync = function () { + return data; + }; + return data; +} +var _caching = require("../caching.js"); +var _configApi = require("../helpers/config-api.js"); +var _utils = require("./utils.js"); +var _moduleTypes = require("./module-types.js"); +var _patternToRegex = require("../pattern-to-regex.js"); +var _configError = require("../../errors/config-error.js"); +var fs = require("../../gensync-utils/fs.js"); +require("module"); +var _rewriteStackTrace = require("../../errors/rewrite-stack-trace.js"); +var _async = require("../../gensync-utils/async.js"); +const debug = _debug()("babel:config:loading:files:configuration"); +const ROOT_CONFIG_FILENAMES = exports.ROOT_CONFIG_FILENAMES = ["babel.config.js", "babel.config.cjs", "babel.config.mjs", "babel.config.json", "babel.config.cts", "babel.config.ts", "babel.config.mts"]; +const RELATIVE_CONFIG_FILENAMES = [".babelrc", ".babelrc.js", ".babelrc.cjs", ".babelrc.mjs", ".babelrc.json", ".babelrc.cts"]; +const BABELIGNORE_FILENAME = ".babelignore"; +const runConfig = (0, _caching.makeWeakCache)(function* runConfig(options, cache) { + yield* []; + return { + options: (0, _rewriteStackTrace.endHiddenCallStack)(options)((0, _configApi.makeConfigAPI)(cache)), + cacheNeedsConfiguration: !cache.configured() + }; +}); +function* readConfigCode(filepath, data) { + if (!_fs().existsSync(filepath)) return null; + let options = yield* (0, _moduleTypes.default)(filepath, (yield* (0, _async.isAsync)()) ? "auto" : "require", "You appear to be using a native ECMAScript module configuration " + "file, which is only supported when running Babel asynchronously " + "or when using the Node.js `--experimental-require-module` flag.", "You appear to be using a configuration file that contains top-level " + "await, which is only supported when running Babel asynchronously."); + let cacheNeedsConfiguration = false; + if (typeof options === "function") { + ({ + options, + cacheNeedsConfiguration + } = yield* runConfig(options, data)); + } + if (!options || typeof options !== "object" || Array.isArray(options)) { + throw new _configError.default(`Configuration should be an exported JavaScript object.`, filepath); + } + if (typeof options.then === "function") { + options.catch == null || options.catch(() => {}); + throw new _configError.default(`You appear to be using an async configuration, ` + `which your current version of Babel does not support. ` + `We may add support for this in the future, ` + `but if you're on the most recent version of @babel/core and still ` + `seeing this error, then you'll need to synchronously return your config.`, filepath); + } + if (cacheNeedsConfiguration) throwConfigError(filepath); + return buildConfigFileObject(options, filepath); +} +const cfboaf = new WeakMap(); +function buildConfigFileObject(options, filepath) { + let configFilesByFilepath = cfboaf.get(options); + if (!configFilesByFilepath) { + cfboaf.set(options, configFilesByFilepath = new Map()); + } + let configFile = configFilesByFilepath.get(filepath); + if (!configFile) { + configFile = { + filepath, + dirname: _path().dirname(filepath), + options + }; + configFilesByFilepath.set(filepath, configFile); + } + return configFile; +} +const packageToBabelConfig = (0, _caching.makeWeakCacheSync)(file => { + const babel = file.options.babel; + if (babel === undefined) return null; + if (typeof babel !== "object" || Array.isArray(babel) || babel === null) { + throw new _configError.default(`.babel property must be an object`, file.filepath); + } + return { + filepath: file.filepath, + dirname: file.dirname, + options: babel + }; +}); +const readConfigJSON5 = (0, _utils.makeStaticFileCache)((filepath, content) => { + let options; + try { + options = _json().parse(content); + } catch (err) { + throw new _configError.default(`Error while parsing config - ${err.message}`, filepath); + } + if (!options) throw new _configError.default(`No config detected`, filepath); + if (typeof options !== "object") { + throw new _configError.default(`Config returned typeof ${typeof options}`, filepath); + } + if (Array.isArray(options)) { + throw new _configError.default(`Expected config object but found array`, filepath); + } + delete options.$schema; + return { + filepath, + dirname: _path().dirname(filepath), + options + }; +}); +const readIgnoreConfig = (0, _utils.makeStaticFileCache)((filepath, content) => { + const ignoreDir = _path().dirname(filepath); + const ignorePatterns = content.split("\n").map(line => line.replace(/#.*$/, "").trim()).filter(Boolean); + for (const pattern of ignorePatterns) { + if (pattern.startsWith("!")) { + throw new _configError.default(`Negation of file paths is not supported.`, filepath); + } + } + return { + filepath, + dirname: _path().dirname(filepath), + ignore: ignorePatterns.map(pattern => (0, _patternToRegex.default)(pattern, ignoreDir)) + }; +}); +function findConfigUpwards(rootDir) { + let dirname = rootDir; + for (;;) { + for (const filename of ROOT_CONFIG_FILENAMES) { + if (_fs().existsSync(_path().join(dirname, filename))) { + return dirname; + } + } + const nextDir = _path().dirname(dirname); + if (dirname === nextDir) break; + dirname = nextDir; + } + return null; +} +function* findRelativeConfig(packageData, envName, caller) { + let config = null; + let ignore = null; + const dirname = _path().dirname(packageData.filepath); + for (const loc of packageData.directories) { + if (!config) { + var _packageData$pkg; + config = yield* loadOneConfig(RELATIVE_CONFIG_FILENAMES, loc, envName, caller, ((_packageData$pkg = packageData.pkg) == null ? void 0 : _packageData$pkg.dirname) === loc ? packageToBabelConfig(packageData.pkg) : null); + } + if (!ignore) { + const ignoreLoc = _path().join(loc, BABELIGNORE_FILENAME); + ignore = yield* readIgnoreConfig(ignoreLoc); + if (ignore) { + debug("Found ignore %o from %o.", ignore.filepath, dirname); + } + } + } + return { + config, + ignore + }; +} +function findRootConfig(dirname, envName, caller) { + return loadOneConfig(ROOT_CONFIG_FILENAMES, dirname, envName, caller); +} +function* loadOneConfig(names, dirname, envName, caller, previousConfig = null) { + const configs = yield* _gensync().all(names.map(filename => readConfig(_path().join(dirname, filename), envName, caller))); + const config = configs.reduce((previousConfig, config) => { + if (config && previousConfig) { + throw new _configError.default(`Multiple configuration files found. Please remove one:\n` + ` - ${_path().basename(previousConfig.filepath)}\n` + ` - ${config.filepath}\n` + `from ${dirname}`); + } + return config || previousConfig; + }, previousConfig); + if (config) { + debug("Found configuration %o from %o.", config.filepath, dirname); + } + return config; +} +function* loadConfig(name, dirname, envName, caller) { + const filepath = (((v, w) => (v = v.split("."), w = w.split("."), +v[0] > +w[0] || v[0] == w[0] && +v[1] >= +w[1]))(process.versions.node, "8.9") ? require.resolve : (r, { + paths: [b] + }, M = require("module")) => { + let f = M._findPath(r, M._nodeModulePaths(b).concat(b)); + if (f) return f; + f = new Error(`Cannot resolve module '${r}'`); + f.code = "MODULE_NOT_FOUND"; + throw f; + })(name, { + paths: [dirname] + }); + const conf = yield* readConfig(filepath, envName, caller); + if (!conf) { + throw new _configError.default(`Config file contains no configuration data`, filepath); + } + debug("Loaded config %o from %o.", name, dirname); + return conf; +} +function readConfig(filepath, envName, caller) { + const ext = _path().extname(filepath); + switch (ext) { + case ".js": + case ".cjs": + case ".mjs": + case ".ts": + case ".cts": + case ".mts": + return readConfigCode(filepath, { + envName, + caller + }); + default: + return readConfigJSON5(filepath); + } +} +function* resolveShowConfigPath(dirname) { + const targetPath = process.env.BABEL_SHOW_CONFIG_FOR; + if (targetPath != null) { + const absolutePath = _path().resolve(dirname, targetPath); + const stats = yield* fs.stat(absolutePath); + if (!stats.isFile()) { + throw new Error(`${absolutePath}: BABEL_SHOW_CONFIG_FOR must refer to a regular file, directories are not supported.`); + } + return absolutePath; + } + return null; +} +function throwConfigError(filepath) { + throw new _configError.default(`\ +Caching was left unconfigured. Babel's plugins, presets, and .babelrc.js files can be configured +for various types of caching, using the first param of their handler functions: + +module.exports = function(api) { + // The API exposes the following: + + // Cache the returned value forever and don't call this function again. + api.cache(true); + + // Don't cache at all. Not recommended because it will be very slow. + api.cache(false); + + // Cached based on the value of some function. If this function returns a value different from + // a previously-encountered value, the plugins will re-evaluate. + var env = api.cache(() => process.env.NODE_ENV); + + // If testing for a specific env, we recommend specifics to avoid instantiating a plugin for + // any possible NODE_ENV value that might come up during plugin execution. + var isProd = api.cache(() => process.env.NODE_ENV === "production"); + + // .cache(fn) will perform a linear search though instances to find the matching plugin based + // based on previous instantiated plugins. If you want to recreate the plugin and discard the + // previous instance whenever something changes, you may use: + var isProd = api.cache.invalidate(() => process.env.NODE_ENV === "production"); + + // Note, we also expose the following more-verbose versions of the above examples: + api.cache.forever(); // api.cache(true) + api.cache.never(); // api.cache(false) + api.cache.using(fn); // api.cache(fn) + + // Return the value that will be cached. + return { }; +};`, filepath); +} +0 && 0; + +//# sourceMappingURL=configuration.js.map diff --git a/server/api/node_modules/@babel/core/lib/config/files/configuration.js.map b/server/api/node_modules/@babel/core/lib/config/files/configuration.js.map new file mode 100644 index 0000000..07c99ef --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/config/files/configuration.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_debug","data","require","_fs","_path","_json","_gensync","_caching","_configApi","_utils","_moduleTypes","_patternToRegex","_configError","fs","_rewriteStackTrace","_async","debug","buildDebug","ROOT_CONFIG_FILENAMES","exports","RELATIVE_CONFIG_FILENAMES","BABELIGNORE_FILENAME","runConfig","makeWeakCache","options","cache","endHiddenCallStack","makeConfigAPI","cacheNeedsConfiguration","configured","readConfigCode","filepath","nodeFs","existsSync","loadCodeDefault","isAsync","Array","isArray","ConfigError","then","catch","throwConfigError","buildConfigFileObject","cfboaf","WeakMap","configFilesByFilepath","get","set","Map","configFile","dirname","path","packageToBabelConfig","makeWeakCacheSync","file","babel","undefined","readConfigJSON5","makeStaticFileCache","content","json5","parse","err","message","$schema","readIgnoreConfig","ignoreDir","ignorePatterns","split","map","line","replace","trim","filter","Boolean","pattern","startsWith","ignore","pathPatternToRegex","findConfigUpwards","rootDir","filename","join","nextDir","findRelativeConfig","packageData","envName","caller","config","loc","directories","_packageData$pkg","loadOneConfig","pkg","ignoreLoc","findRootConfig","names","previousConfig","configs","gensync","all","readConfig","reduce","basename","loadConfig","name","v","w","process","versions","node","resolve","r","paths","b","M","f","_findPath","_nodeModulePaths","concat","Error","code","conf","ext","extname","resolveShowConfigPath","targetPath","env","BABEL_SHOW_CONFIG_FOR","absolutePath","stats","stat","isFile"],"sources":["../../../src/config/files/configuration.ts"],"sourcesContent":["import buildDebug from \"debug\";\nimport nodeFs from \"node:fs\";\nimport path from \"node:path\";\nimport json5 from \"json5\";\nimport gensync from \"gensync\";\nimport type { Handler } from \"gensync\";\nimport { makeWeakCache, makeWeakCacheSync } from \"../caching.ts\";\nimport type { CacheConfigurator } from \"../caching.ts\";\nimport { makeConfigAPI } from \"../helpers/config-api.ts\";\nimport type { ConfigAPI } from \"../helpers/config-api.ts\";\nimport { makeStaticFileCache } from \"./utils.ts\";\nimport loadCodeDefault from \"./module-types.ts\";\nimport pathPatternToRegex from \"../pattern-to-regex.ts\";\nimport type { FilePackageData, RelativeConfig, ConfigFile } from \"./types.ts\";\nimport type { CallerMetadata, InputOptions } from \"../validation/options.ts\";\nimport ConfigError from \"../../errors/config-error.ts\";\n\nimport * as fs from \"../../gensync-utils/fs.ts\";\n\nimport { createRequire } from \"node:module\";\nimport { endHiddenCallStack } from \"../../errors/rewrite-stack-trace.ts\";\nimport { isAsync } from \"../../gensync-utils/async.ts\";\nconst require = createRequire(import.meta.url);\n\nconst debug = buildDebug(\"babel:config:loading:files:configuration\");\n\nexport const ROOT_CONFIG_FILENAMES = [\n \"babel.config.js\",\n \"babel.config.cjs\",\n \"babel.config.mjs\",\n \"babel.config.json\",\n \"babel.config.cts\",\n \"babel.config.ts\",\n \"babel.config.mts\",\n];\nconst RELATIVE_CONFIG_FILENAMES = [\n \".babelrc\",\n \".babelrc.js\",\n \".babelrc.cjs\",\n \".babelrc.mjs\",\n \".babelrc.json\",\n \".babelrc.cts\",\n];\n\nconst BABELIGNORE_FILENAME = \".babelignore\";\n\ntype ConfigCacheData = {\n envName: string;\n caller: CallerMetadata | undefined;\n};\n\nconst runConfig = makeWeakCache(function* runConfig(\n options: Function,\n cache: CacheConfigurator,\n): Handler<{\n options: InputOptions | null;\n cacheNeedsConfiguration: boolean;\n}> {\n // if we want to make it possible to use async configs\n yield* [];\n\n return {\n options: endHiddenCallStack(options as any as (api: ConfigAPI) => unknown)(\n makeConfigAPI(cache),\n ),\n cacheNeedsConfiguration: !cache.configured(),\n };\n});\n\nfunction* readConfigCode(\n filepath: string,\n data: ConfigCacheData,\n): Handler {\n if (!nodeFs.existsSync(filepath)) return null;\n\n let options = yield* loadCodeDefault(\n filepath,\n (yield* isAsync()) ? \"auto\" : \"require\",\n \"You appear to be using a native ECMAScript module configuration \" +\n \"file, which is only supported when running Babel asynchronously \" +\n \"or when using the Node.js `--experimental-require-module` flag.\",\n \"You appear to be using a configuration file that contains top-level \" +\n \"await, which is only supported when running Babel asynchronously.\",\n );\n\n let cacheNeedsConfiguration = false;\n if (typeof options === \"function\") {\n ({ options, cacheNeedsConfiguration } = yield* runConfig(options, data));\n }\n\n if (!options || typeof options !== \"object\" || Array.isArray(options)) {\n throw new ConfigError(\n `Configuration should be an exported JavaScript object.`,\n filepath,\n );\n }\n\n // @ts-expect-error todo(flow->ts)\n if (typeof options.then === \"function\") {\n // @ts-expect-error We use ?. in case options is a thenable but not a promise\n options.catch?.(() => {});\n throw new ConfigError(\n `You appear to be using an async configuration, ` +\n `which your current version of Babel does not support. ` +\n `We may add support for this in the future, ` +\n `but if you're on the most recent version of @babel/core and still ` +\n `seeing this error, then you'll need to synchronously return your config.`,\n filepath,\n );\n }\n\n if (cacheNeedsConfiguration) throwConfigError(filepath);\n\n return buildConfigFileObject(options, filepath);\n}\n\n// We cache the generated ConfigFile object rather than creating a new one\n// every time, so that it can be used as a cache key in other functions.\nconst cfboaf /* configFilesByOptionsAndFilepath */ = new WeakMap<\n InputOptions,\n Map\n>();\nfunction buildConfigFileObject(\n options: InputOptions,\n filepath: string,\n): ConfigFile {\n let configFilesByFilepath = cfboaf.get(options);\n if (!configFilesByFilepath) {\n cfboaf.set(options, (configFilesByFilepath = new Map()));\n }\n\n let configFile = configFilesByFilepath.get(filepath);\n if (!configFile) {\n configFile = {\n filepath,\n dirname: path.dirname(filepath),\n options,\n };\n configFilesByFilepath.set(filepath, configFile);\n }\n\n return configFile;\n}\n\nconst packageToBabelConfig = makeWeakCacheSync(\n (file: ConfigFile): ConfigFile | null => {\n const babel: unknown = file.options.babel;\n\n if (babel === undefined) return null;\n\n if (typeof babel !== \"object\" || Array.isArray(babel) || babel === null) {\n throw new ConfigError(`.babel property must be an object`, file.filepath);\n }\n\n return {\n filepath: file.filepath,\n dirname: file.dirname,\n options: babel,\n };\n },\n);\n\nconst readConfigJSON5 = makeStaticFileCache((filepath, content): ConfigFile => {\n let options;\n try {\n options = json5.parse(content);\n } catch (err) {\n throw new ConfigError(\n `Error while parsing config - ${err.message}`,\n filepath,\n );\n }\n\n if (!options) throw new ConfigError(`No config detected`, filepath);\n\n if (typeof options !== \"object\") {\n throw new ConfigError(`Config returned typeof ${typeof options}`, filepath);\n }\n if (Array.isArray(options)) {\n throw new ConfigError(`Expected config object but found array`, filepath);\n }\n\n delete options.$schema;\n\n return {\n filepath,\n dirname: path.dirname(filepath),\n options,\n };\n});\n\nconst readIgnoreConfig = makeStaticFileCache((filepath, content) => {\n const ignoreDir = path.dirname(filepath);\n const ignorePatterns = content\n .split(\"\\n\")\n .map(line =>\n line.replace(process.env.BABEL_8_BREAKING ? /^#.*$/ : /#.*$/, \"\").trim(),\n )\n .filter(Boolean);\n\n for (const pattern of ignorePatterns) {\n if (pattern.startsWith(\"!\")) {\n throw new ConfigError(\n `Negation of file paths is not supported.`,\n filepath,\n );\n }\n }\n\n return {\n filepath,\n dirname: path.dirname(filepath),\n ignore: ignorePatterns.map(pattern =>\n pathPatternToRegex(pattern, ignoreDir),\n ),\n };\n});\n\nexport function findConfigUpwards(rootDir: string): string | null {\n let dirname = rootDir;\n for (;;) {\n for (const filename of ROOT_CONFIG_FILENAMES) {\n if (nodeFs.existsSync(path.join(dirname, filename))) {\n return dirname;\n }\n }\n\n const nextDir = path.dirname(dirname);\n if (dirname === nextDir) break;\n dirname = nextDir;\n }\n\n return null;\n}\n\nexport function* findRelativeConfig(\n packageData: FilePackageData,\n envName: string,\n caller: CallerMetadata | undefined,\n): Handler {\n let config = null;\n let ignore = null;\n\n const dirname = path.dirname(packageData.filepath);\n\n for (const loc of packageData.directories) {\n if (!config) {\n config = yield* loadOneConfig(\n RELATIVE_CONFIG_FILENAMES,\n loc,\n envName,\n caller,\n packageData.pkg?.dirname === loc\n ? packageToBabelConfig(packageData.pkg)\n : null,\n );\n }\n\n if (!ignore) {\n const ignoreLoc = path.join(loc, BABELIGNORE_FILENAME);\n ignore = yield* readIgnoreConfig(ignoreLoc);\n\n if (ignore) {\n debug(\"Found ignore %o from %o.\", ignore.filepath, dirname);\n }\n }\n }\n\n return { config, ignore };\n}\n\nexport function findRootConfig(\n dirname: string,\n envName: string,\n caller: CallerMetadata | undefined,\n): Handler {\n return loadOneConfig(ROOT_CONFIG_FILENAMES, dirname, envName, caller);\n}\n\nfunction* loadOneConfig(\n names: string[],\n dirname: string,\n envName: string,\n caller: CallerMetadata | undefined,\n previousConfig: ConfigFile | null = null,\n): Handler {\n const configs = yield* gensync.all(\n names.map(filename =>\n readConfig(path.join(dirname, filename), envName, caller),\n ),\n );\n const config = configs.reduce((previousConfig: ConfigFile | null, config) => {\n if (config && previousConfig) {\n throw new ConfigError(\n `Multiple configuration files found. Please remove one:\\n` +\n ` - ${path.basename(previousConfig.filepath)}\\n` +\n ` - ${config.filepath}\\n` +\n `from ${dirname}`,\n );\n }\n\n return config || previousConfig;\n }, previousConfig);\n\n if (config) {\n debug(\"Found configuration %o from %o.\", config.filepath, dirname);\n }\n return config;\n}\n\nexport function* loadConfig(\n name: string,\n dirname: string,\n envName: string,\n caller: CallerMetadata | undefined,\n): Handler {\n const filepath = require.resolve(name, { paths: [dirname] });\n\n const conf = yield* readConfig(filepath, envName, caller);\n if (!conf) {\n throw new ConfigError(\n `Config file contains no configuration data`,\n filepath,\n );\n }\n\n debug(\"Loaded config %o from %o.\", name, dirname);\n return conf;\n}\n\n/**\n * Read the given config file, returning the result. Returns null if no config was found, but will\n * throw if there are parsing errors while loading a config.\n */\nfunction readConfig(\n filepath: string,\n envName: string,\n caller: CallerMetadata | undefined,\n): Handler {\n const ext = path.extname(filepath);\n switch (ext) {\n case \".js\":\n case \".cjs\":\n case \".mjs\":\n case \".ts\":\n case \".cts\":\n case \".mts\":\n return readConfigCode(filepath, { envName, caller });\n default:\n return readConfigJSON5(filepath);\n }\n}\n\nexport function* resolveShowConfigPath(\n dirname: string,\n): Handler {\n const targetPath = process.env.BABEL_SHOW_CONFIG_FOR;\n if (targetPath != null) {\n const absolutePath = path.resolve(dirname, targetPath);\n const stats = yield* fs.stat(absolutePath);\n if (!stats.isFile()) {\n throw new Error(\n `${absolutePath}: BABEL_SHOW_CONFIG_FOR must refer to a regular file, directories are not supported.`,\n );\n }\n return absolutePath;\n }\n return null;\n}\n\nfunction throwConfigError(filepath: string): never {\n throw new ConfigError(\n `\\\nCaching was left unconfigured. Babel's plugins, presets, and .babelrc.js files can be configured\nfor various types of caching, using the first param of their handler functions:\n\nmodule.exports = function(api) {\n // The API exposes the following:\n\n // Cache the returned value forever and don't call this function again.\n api.cache(true);\n\n // Don't cache at all. Not recommended because it will be very slow.\n api.cache(false);\n\n // Cached based on the value of some function. If this function returns a value different from\n // a previously-encountered value, the plugins will re-evaluate.\n var env = api.cache(() => process.env.NODE_ENV);\n\n // If testing for a specific env, we recommend specifics to avoid instantiating a plugin for\n // any possible NODE_ENV value that might come up during plugin execution.\n var isProd = api.cache(() => process.env.NODE_ENV === \"production\");\n\n // .cache(fn) will perform a linear search though instances to find the matching plugin based\n // based on previous instantiated plugins. If you want to recreate the plugin and discard the\n // previous instance whenever something changes, you may use:\n var isProd = api.cache.invalidate(() => process.env.NODE_ENV === \"production\");\n\n // Note, we also expose the following more-verbose versions of the above examples:\n api.cache.forever(); // api.cache(true)\n api.cache.never(); // api.cache(false)\n api.cache.using(fn); // api.cache(fn)\n\n // Return the value that will be cached.\n return { };\n};`,\n filepath,\n );\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/core/lib/config/files/import.cjs b/server/api/node_modules/@babel/core/lib/config/files/import.cjs new file mode 100644 index 0000000..46fa5d5 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/config/files/import.cjs @@ -0,0 +1,6 @@ +module.exports = function import_(filepath) { + return import(filepath); +}; +0 && 0; + +//# sourceMappingURL=import.cjs.map diff --git a/server/api/node_modules/@babel/core/lib/config/files/import.cjs.map b/server/api/node_modules/@babel/core/lib/config/files/import.cjs.map new file mode 100644 index 0000000..2200da8 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/config/files/import.cjs.map @@ -0,0 +1 @@ +{"version":3,"names":["module","exports","import_","filepath"],"sources":["../../../src/config/files/import.cjs"],"sourcesContent":["// We keep this in a separate file so that in older node versions, where\n// import() isn't supported, we can try/catch around the require() call\n// when loading this file.\n\nmodule.exports = function import_(filepath) {\n return import(filepath);\n};\n"],"mappings":"AAIAA,MAAM,CAACC,OAAO,GAAG,SAASC,OAAOA,CAACC,QAAQ,EAAE;EAC1C,OAAO,OAAOA,QAAQ,CAAC;AACzB,CAAC;AAAC","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/core/lib/config/files/index-browser.js b/server/api/node_modules/@babel/core/lib/config/files/index-browser.js new file mode 100644 index 0000000..d8ba7db --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/config/files/index-browser.js @@ -0,0 +1,58 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.ROOT_CONFIG_FILENAMES = void 0; +exports.findConfigUpwards = findConfigUpwards; +exports.findPackageData = findPackageData; +exports.findRelativeConfig = findRelativeConfig; +exports.findRootConfig = findRootConfig; +exports.loadConfig = loadConfig; +exports.loadPlugin = loadPlugin; +exports.loadPreset = loadPreset; +exports.resolvePlugin = resolvePlugin; +exports.resolvePreset = resolvePreset; +exports.resolveShowConfigPath = resolveShowConfigPath; +function findConfigUpwards(rootDir) { + return null; +} +function* findPackageData(filepath) { + return { + filepath, + directories: [], + pkg: null, + isPackage: false + }; +} +function* findRelativeConfig(pkgData, envName, caller) { + return { + config: null, + ignore: null + }; +} +function* findRootConfig(dirname, envName, caller) { + return null; +} +function* loadConfig(name, dirname, envName, caller) { + throw new Error(`Cannot load ${name} relative to ${dirname} in a browser`); +} +function* resolveShowConfigPath(dirname) { + return null; +} +const ROOT_CONFIG_FILENAMES = exports.ROOT_CONFIG_FILENAMES = []; +function resolvePlugin(name, dirname) { + return null; +} +function resolvePreset(name, dirname) { + return null; +} +function loadPlugin(name, dirname) { + throw new Error(`Cannot load plugin ${name} relative to ${dirname} in a browser`); +} +function loadPreset(name, dirname) { + throw new Error(`Cannot load preset ${name} relative to ${dirname} in a browser`); +} +0 && 0; + +//# sourceMappingURL=index-browser.js.map diff --git a/server/api/node_modules/@babel/core/lib/config/files/index-browser.js.map b/server/api/node_modules/@babel/core/lib/config/files/index-browser.js.map new file mode 100644 index 0000000..e10ddee --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/config/files/index-browser.js.map @@ -0,0 +1 @@ +{"version":3,"names":["findConfigUpwards","rootDir","findPackageData","filepath","directories","pkg","isPackage","findRelativeConfig","pkgData","envName","caller","config","ignore","findRootConfig","dirname","loadConfig","name","Error","resolveShowConfigPath","ROOT_CONFIG_FILENAMES","exports","resolvePlugin","resolvePreset","loadPlugin","loadPreset"],"sources":["../../../src/config/files/index-browser.ts"],"sourcesContent":["/* c8 ignore start */\n\nimport type { Handler } from \"gensync\";\n\nimport type {\n ConfigFile,\n IgnoreFile,\n RelativeConfig,\n FilePackageData,\n} from \"./types.ts\";\n\nimport type { CallerMetadata } from \"../validation/options.ts\";\n\nexport type { ConfigFile, IgnoreFile, RelativeConfig, FilePackageData };\n\nexport function findConfigUpwards(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n rootDir: string,\n): string | null {\n return null;\n}\n\n// eslint-disable-next-line require-yield\nexport function* findPackageData(filepath: string): Handler {\n return {\n filepath,\n directories: [],\n pkg: null,\n isPackage: false,\n };\n}\n\n// eslint-disable-next-line require-yield\nexport function* findRelativeConfig(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n pkgData: FilePackageData,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n envName: string,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n caller: CallerMetadata | undefined,\n): Handler {\n return { config: null, ignore: null };\n}\n\n// eslint-disable-next-line require-yield\nexport function* findRootConfig(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n dirname: string,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n envName: string,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n caller: CallerMetadata | undefined,\n): Handler {\n return null;\n}\n\n// eslint-disable-next-line require-yield\nexport function* loadConfig(\n name: string,\n dirname: string,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n envName: string,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n caller: CallerMetadata | undefined,\n): Handler {\n throw new Error(`Cannot load ${name} relative to ${dirname} in a browser`);\n}\n\n// eslint-disable-next-line require-yield\nexport function* resolveShowConfigPath(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n dirname: string,\n): Handler {\n return null;\n}\n\nexport const ROOT_CONFIG_FILENAMES: string[] = [];\n\ntype Resolved =\n | { loader: \"require\"; filepath: string }\n | { loader: \"import\"; filepath: string };\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function resolvePlugin(name: string, dirname: string): Resolved | null {\n return null;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function resolvePreset(name: string, dirname: string): Resolved | null {\n return null;\n}\n\nexport function loadPlugin(\n name: string,\n dirname: string,\n): Handler<{\n filepath: string;\n value: unknown;\n}> {\n throw new Error(\n `Cannot load plugin ${name} relative to ${dirname} in a browser`,\n );\n}\n\nexport function loadPreset(\n name: string,\n dirname: string,\n): Handler<{\n filepath: string;\n value: unknown;\n}> {\n throw new Error(\n `Cannot load preset ${name} relative to ${dirname} in a browser`,\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAeO,SAASA,iBAAiBA,CAE/BC,OAAe,EACA;EACf,OAAO,IAAI;AACb;AAGO,UAAUC,eAAeA,CAACC,QAAgB,EAA4B;EAC3E,OAAO;IACLA,QAAQ;IACRC,WAAW,EAAE,EAAE;IACfC,GAAG,EAAE,IAAI;IACTC,SAAS,EAAE;EACb,CAAC;AACH;AAGO,UAAUC,kBAAkBA,CAEjCC,OAAwB,EAExBC,OAAe,EAEfC,MAAkC,EACT;EACzB,OAAO;IAAEC,MAAM,EAAE,IAAI;IAAEC,MAAM,EAAE;EAAK,CAAC;AACvC;AAGO,UAAUC,cAAcA,CAE7BC,OAAe,EAEfL,OAAe,EAEfC,MAAkC,EACN;EAC5B,OAAO,IAAI;AACb;AAGO,UAAUK,UAAUA,CACzBC,IAAY,EACZF,OAAe,EAEfL,OAAe,EAEfC,MAAkC,EACb;EACrB,MAAM,IAAIO,KAAK,CAAC,eAAeD,IAAI,gBAAgBF,OAAO,eAAe,CAAC;AAC5E;AAGO,UAAUI,qBAAqBA,CAEpCJ,OAAe,EACS;EACxB,OAAO,IAAI;AACb;AAEO,MAAMK,qBAA+B,GAAAC,OAAA,CAAAD,qBAAA,GAAG,EAAE;AAO1C,SAASE,aAAaA,CAACL,IAAY,EAAEF,OAAe,EAAmB;EAC5E,OAAO,IAAI;AACb;AAGO,SAASQ,aAAaA,CAACN,IAAY,EAAEF,OAAe,EAAmB;EAC5E,OAAO,IAAI;AACb;AAEO,SAASS,UAAUA,CACxBP,IAAY,EACZF,OAAe,EAId;EACD,MAAM,IAAIG,KAAK,CACb,sBAAsBD,IAAI,gBAAgBF,OAAO,eACnD,CAAC;AACH;AAEO,SAASU,UAAUA,CACxBR,IAAY,EACZF,OAAe,EAId;EACD,MAAM,IAAIG,KAAK,CACb,sBAAsBD,IAAI,gBAAgBF,OAAO,eACnD,CAAC;AACH;AAAC","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/core/lib/config/files/index.js b/server/api/node_modules/@babel/core/lib/config/files/index.js new file mode 100644 index 0000000..8750f40 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/config/files/index.js @@ -0,0 +1,78 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "ROOT_CONFIG_FILENAMES", { + enumerable: true, + get: function () { + return _configuration.ROOT_CONFIG_FILENAMES; + } +}); +Object.defineProperty(exports, "findConfigUpwards", { + enumerable: true, + get: function () { + return _configuration.findConfigUpwards; + } +}); +Object.defineProperty(exports, "findPackageData", { + enumerable: true, + get: function () { + return _package.findPackageData; + } +}); +Object.defineProperty(exports, "findRelativeConfig", { + enumerable: true, + get: function () { + return _configuration.findRelativeConfig; + } +}); +Object.defineProperty(exports, "findRootConfig", { + enumerable: true, + get: function () { + return _configuration.findRootConfig; + } +}); +Object.defineProperty(exports, "loadConfig", { + enumerable: true, + get: function () { + return _configuration.loadConfig; + } +}); +Object.defineProperty(exports, "loadPlugin", { + enumerable: true, + get: function () { + return _plugins.loadPlugin; + } +}); +Object.defineProperty(exports, "loadPreset", { + enumerable: true, + get: function () { + return _plugins.loadPreset; + } +}); +Object.defineProperty(exports, "resolvePlugin", { + enumerable: true, + get: function () { + return _plugins.resolvePlugin; + } +}); +Object.defineProperty(exports, "resolvePreset", { + enumerable: true, + get: function () { + return _plugins.resolvePreset; + } +}); +Object.defineProperty(exports, "resolveShowConfigPath", { + enumerable: true, + get: function () { + return _configuration.resolveShowConfigPath; + } +}); +var _package = require("./package.js"); +var _configuration = require("./configuration.js"); +var _plugins = require("./plugins.js"); +({}); +0 && 0; + +//# sourceMappingURL=index.js.map diff --git a/server/api/node_modules/@babel/core/lib/config/files/index.js.map b/server/api/node_modules/@babel/core/lib/config/files/index.js.map new file mode 100644 index 0000000..832135f --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/config/files/index.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_package","require","_configuration","_plugins"],"sources":["../../../src/config/files/index.ts"],"sourcesContent":["type indexBrowserType = typeof import(\"./index-browser\");\ntype indexType = typeof import(\"./index\");\n\n// Kind of gross, but essentially asserting that the exports of this module are the same as the\n// exports of index-browser, since this file may be replaced at bundle time with index-browser.\n// eslint-disable-next-line @typescript-eslint/no-unused-expressions\n({}) as any as indexBrowserType as indexType;\n\nexport { findPackageData } from \"./package.ts\";\n\nexport {\n findConfigUpwards,\n findRelativeConfig,\n findRootConfig,\n loadConfig,\n resolveShowConfigPath,\n ROOT_CONFIG_FILENAMES,\n} from \"./configuration.ts\";\nexport type {\n ConfigFile,\n IgnoreFile,\n RelativeConfig,\n FilePackageData,\n} from \"./types.ts\";\nexport {\n loadPlugin,\n loadPreset,\n resolvePlugin,\n resolvePreset,\n} from \"./plugins.ts\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,IAAAA,QAAA,GAAAC,OAAA;AAEA,IAAAC,cAAA,GAAAD,OAAA;AAcA,IAAAE,QAAA,GAAAF,OAAA;AAlBA,CAAC,CAAC,CAAC;AAA0C","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/core/lib/config/files/module-types.js b/server/api/node_modules/@babel/core/lib/config/files/module-types.js new file mode 100644 index 0000000..e29a82f --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/config/files/module-types.js @@ -0,0 +1,203 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = loadCodeDefault; +exports.supportsESM = void 0; +var _async = require("../../gensync-utils/async.js"); +function _path() { + const data = require("path"); + _path = function () { + return data; + }; + return data; +} +function _url() { + const data = require("url"); + _url = function () { + return data; + }; + return data; +} +require("module"); +function _semver() { + const data = require("semver"); + _semver = function () { + return data; + }; + return data; +} +function _debug() { + const data = require("debug"); + _debug = function () { + return data; + }; + return data; +} +var _rewriteStackTrace = require("../../errors/rewrite-stack-trace.js"); +var _configError = require("../../errors/config-error.js"); +var _transformFile = require("../../transform-file.js"); +function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); } +function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; } +const debug = _debug()("babel:config:loading:files:module-types"); +try { + var import_ = require("./import.cjs"); +} catch (_unused) {} +const supportsESM = exports.supportsESM = _semver().satisfies(process.versions.node, "^12.17 || >=13.2"); +const LOADING_CJS_FILES = new Set(); +function loadCjsDefault(filepath) { + if (LOADING_CJS_FILES.has(filepath)) { + debug("Auto-ignoring usage of config %o.", filepath); + return {}; + } + let module; + try { + LOADING_CJS_FILES.add(filepath); + module = (0, _rewriteStackTrace.endHiddenCallStack)(require)(filepath); + } finally { + LOADING_CJS_FILES.delete(filepath); + } + return module != null && (module.__esModule || module[Symbol.toStringTag] === "Module") ? module.default || (arguments[1] ? module : undefined) : module; +} +const loadMjsFromPath = (0, _rewriteStackTrace.endHiddenCallStack)(function () { + var _loadMjsFromPath = _asyncToGenerator(function* (filepath) { + const url = (0, _url().pathToFileURL)(filepath).toString() + "?import"; + if (!import_) { + throw new _configError.default("Internal error: Native ECMAScript modules aren't supported by this platform.\n", filepath); + } + return yield import_(url); + }); + function loadMjsFromPath(_x) { + return _loadMjsFromPath.apply(this, arguments); + } + return loadMjsFromPath; +}()); +const tsNotSupportedError = ext => `\ +You are using a ${ext} config file, but Babel only supports transpiling .cts configs. Either: +- Use a .cts config file +- Update to Node.js 23.6.0, which has native TypeScript support +- Install tsx to transpile ${ext} files on the fly\ +`; +const SUPPORTED_EXTENSIONS = { + ".js": "unknown", + ".mjs": "esm", + ".cjs": "cjs", + ".ts": "unknown", + ".mts": "esm", + ".cts": "cjs" +}; +const asyncModules = new Set(); +function* loadCodeDefault(filepath, loader, esmError, tlaError) { + let async; + const ext = _path().extname(filepath); + const isTS = ext === ".ts" || ext === ".cts" || ext === ".mts"; + const type = SUPPORTED_EXTENSIONS[hasOwnProperty.call(SUPPORTED_EXTENSIONS, ext) ? ext : ".js"]; + const pattern = `${loader} ${type}`; + switch (pattern) { + case "require cjs": + case "auto cjs": + if (isTS) { + return ensureTsSupport(filepath, ext, () => loadCjsDefault(filepath)); + } else { + return loadCjsDefault(filepath, arguments[2]); + } + case "auto unknown": + case "require unknown": + case "require esm": + try { + if (isTS) { + return ensureTsSupport(filepath, ext, () => loadCjsDefault(filepath)); + } else { + return loadCjsDefault(filepath, arguments[2]); + } + } catch (e) { + if (e.code === "ERR_REQUIRE_ASYNC_MODULE" || e.code === "ERR_REQUIRE_CYCLE_MODULE" && asyncModules.has(filepath)) { + asyncModules.add(filepath); + if (!(async != null ? async : async = yield* (0, _async.isAsync)())) { + throw new _configError.default(tlaError, filepath); + } + } else if (e.code === "ERR_REQUIRE_ESM" || type === "esm") {} else { + throw e; + } + } + case "auto esm": + if (async != null ? async : async = yield* (0, _async.isAsync)()) { + const promise = isTS ? ensureTsSupport(filepath, ext, () => loadMjsFromPath(filepath)) : loadMjsFromPath(filepath); + return (yield* (0, _async.waitFor)(promise)).default; + } + if (isTS) { + throw new _configError.default(tsNotSupportedError(ext), filepath); + } else { + throw new _configError.default(esmError, filepath); + } + default: + throw new Error("Internal Babel error: unreachable code."); + } +} +function ensureTsSupport(filepath, ext, callback) { + if (process.features.typescript || require.extensions[".ts"] || require.extensions[".cts"] || require.extensions[".mts"]) { + return callback(); + } + if (ext !== ".cts") { + throw new _configError.default(tsNotSupportedError(ext), filepath); + } + const opts = { + babelrc: false, + configFile: false, + sourceType: "unambiguous", + sourceMaps: "inline", + sourceFileName: _path().basename(filepath), + presets: [[getTSPreset(filepath), Object.assign({ + onlyRemoveTypeImports: true, + optimizeConstEnums: true + }, { + allowDeclareFields: true + })]] + }; + let handler = function (m, filename) { + if (handler && filename.endsWith(".cts")) { + try { + return m._compile((0, _transformFile.transformFileSync)(filename, Object.assign({}, opts, { + filename + })).code, filename); + } catch (error) { + const packageJson = require("@babel/preset-typescript/package.json"); + if (_semver().lt(packageJson.version, "7.21.4")) { + console.error("`.cts` configuration file failed to load, please try to update `@babel/preset-typescript`."); + } + throw error; + } + } + return require.extensions[".js"](m, filename); + }; + require.extensions[ext] = handler; + try { + return callback(); + } finally { + if (require.extensions[ext] === handler) delete require.extensions[ext]; + handler = undefined; + } +} +function getTSPreset(filepath) { + try { + return require("@babel/preset-typescript"); + } catch (error) { + if (error.code !== "MODULE_NOT_FOUND") throw error; + let message = "You appear to be using a .cts file as Babel configuration, but the `@babel/preset-typescript` package was not found: please install it!"; + if (process.versions.pnp) { + message += ` +If you are using Yarn Plug'n'Play, you may also need to add the following configuration to your .yarnrc.yml file: + +packageExtensions: +\t"@babel/core@*": +\t\tpeerDependencies: +\t\t\t"@babel/preset-typescript": "*" +`; + } + throw new _configError.default(message, filepath); + } +} +0 && 0; + +//# sourceMappingURL=module-types.js.map diff --git a/server/api/node_modules/@babel/core/lib/config/files/module-types.js.map b/server/api/node_modules/@babel/core/lib/config/files/module-types.js.map new file mode 100644 index 0000000..eafb5e6 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/config/files/module-types.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_async","require","_path","data","_url","_semver","_debug","_rewriteStackTrace","_configError","_transformFile","asyncGeneratorStep","n","t","e","r","o","a","c","i","u","value","done","Promise","resolve","then","_asyncToGenerator","arguments","apply","_next","_throw","debug","buildDebug","import_","_unused","supportsESM","exports","semver","satisfies","process","versions","node","LOADING_CJS_FILES","Set","loadCjsDefault","filepath","has","module","add","endHiddenCallStack","delete","__esModule","Symbol","toStringTag","default","undefined","loadMjsFromPath","_loadMjsFromPath","url","pathToFileURL","toString","ConfigError","_x","tsNotSupportedError","ext","SUPPORTED_EXTENSIONS","asyncModules","loadCodeDefault","loader","esmError","tlaError","async","path","extname","isTS","type","hasOwnProperty","call","pattern","ensureTsSupport","code","isAsync","promise","waitFor","Error","callback","features","typescript","extensions","opts","babelrc","configFile","sourceType","sourceMaps","sourceFileName","basename","presets","getTSPreset","Object","assign","onlyRemoveTypeImports","optimizeConstEnums","allowDeclareFields","handler","m","filename","endsWith","_compile","transformFileSync","error","packageJson","lt","version","console","message","pnp"],"sources":["../../../src/config/files/module-types.ts"],"sourcesContent":["import { isAsync, waitFor } from \"../../gensync-utils/async.ts\";\nimport type { Handler } from \"gensync\";\nimport path from \"node:path\";\nimport { pathToFileURL } from \"node:url\";\nimport { createRequire } from \"node:module\";\nimport semver from \"semver\";\nimport buildDebug from \"debug\";\n\nimport { endHiddenCallStack } from \"../../errors/rewrite-stack-trace.ts\";\nimport ConfigError from \"../../errors/config-error.ts\";\n\nimport type { InputOptions } from \"../index.ts\";\nimport { transformFileSync } from \"../../transform-file.ts\";\n\nconst debug = buildDebug(\"babel:config:loading:files:module-types\");\n\nconst require = createRequire(import.meta.url);\n\nif (!process.env.BABEL_8_BREAKING) {\n try {\n // Old Node.js versions don't support import() syntax.\n // eslint-disable-next-line no-var\n var import_:\n | ((specifier: string | URL) => any)\n | undefined = require(\"./import.cjs\");\n } catch {}\n}\n\nexport const supportsESM = semver.satisfies(\n process.versions.node,\n // older versions, starting from 10, support the dynamic\n // import syntax but always return a rejected promise.\n \"^12.17 || >=13.2\",\n);\n\nconst LOADING_CJS_FILES = new Set();\n\nfunction loadCjsDefault(filepath: string) {\n // The `require()` call below can make this code reentrant if a require hook\n // like @babel/register has been loaded into the system. That would cause\n // Babel to attempt to compile the `.babelrc.js` file as it loads below. To\n // cover this case, we auto-ignore re-entrant config processing. ESM loaders\n // do not have this problem, because loaders do not apply to themselves.\n if (LOADING_CJS_FILES.has(filepath)) {\n debug(\"Auto-ignoring usage of config %o.\", filepath);\n return {};\n }\n\n let module;\n try {\n LOADING_CJS_FILES.add(filepath);\n module = endHiddenCallStack(require)(filepath);\n } finally {\n LOADING_CJS_FILES.delete(filepath);\n }\n\n if (process.env.BABEL_8_BREAKING) {\n return module != null &&\n (module.__esModule || module[Symbol.toStringTag] === \"Module\")\n ? module.default\n : module;\n } else {\n return module != null &&\n (module.__esModule || module[Symbol.toStringTag] === \"Module\")\n ? module.default ||\n /* fallbackToTranspiledModule */ (arguments[1] ? module : undefined)\n : module;\n }\n}\n\nconst loadMjsFromPath = endHiddenCallStack(async function loadMjsFromPath(\n filepath: string,\n) {\n // Add ?import as a workaround for https://github.com/nodejs/node/issues/55500\n const url = pathToFileURL(filepath).toString() + \"?import\";\n\n if (process.env.BABEL_8_BREAKING) {\n return await import(url);\n } else {\n if (!import_) {\n throw new ConfigError(\n \"Internal error: Native ECMAScript modules aren't supported by this platform.\\n\",\n filepath,\n );\n }\n\n return await import_(url);\n }\n});\n\nconst tsNotSupportedError = (ext: string) => `\\\nYou are using a ${ext} config file, but Babel only supports transpiling .cts configs. Either:\n- Use a .cts config file\n- Update to Node.js 23.6.0, which has native TypeScript support\n- Install tsx to transpile ${ext} files on the fly\\\n`;\n\nconst SUPPORTED_EXTENSIONS = {\n \".js\": \"unknown\",\n \".mjs\": \"esm\",\n \".cjs\": \"cjs\",\n \".ts\": \"unknown\",\n \".mts\": \"esm\",\n \".cts\": \"cjs\",\n} as const;\n\nconst asyncModules = new Set();\n\nexport default function* loadCodeDefault(\n filepath: string,\n loader: \"require\" | \"auto\",\n esmError: string,\n tlaError: string,\n): Handler {\n let async;\n\n const ext = path.extname(filepath);\n const isTS = ext === \".ts\" || ext === \".cts\" || ext === \".mts\";\n\n const type =\n SUPPORTED_EXTENSIONS[\n Object.hasOwn(SUPPORTED_EXTENSIONS, ext)\n ? (ext as keyof typeof SUPPORTED_EXTENSIONS)\n : (\".js\" as const)\n ];\n\n const pattern = `${loader} ${type}` as const;\n switch (pattern) {\n case \"require cjs\":\n case \"auto cjs\":\n if (isTS) {\n return ensureTsSupport(filepath, ext, () => loadCjsDefault(filepath));\n } else if (process.env.BABEL_8_BREAKING) {\n return loadCjsDefault(filepath);\n } else {\n return loadCjsDefault(\n filepath,\n // @ts-ignore(Babel 7 vs Babel 8) Removed in Babel 8\n /* fallbackToTranspiledModule */ arguments[2],\n );\n }\n case \"auto unknown\":\n case \"require unknown\":\n case \"require esm\":\n try {\n if (isTS) {\n return ensureTsSupport(filepath, ext, () => loadCjsDefault(filepath));\n } else if (process.env.BABEL_8_BREAKING) {\n return loadCjsDefault(filepath);\n } else {\n return loadCjsDefault(\n filepath,\n // @ts-ignore(Babel 7 vs Babel 8) Removed in Babel 8\n /* fallbackToTranspiledModule */ arguments[2],\n );\n }\n } catch (e) {\n if (\n e.code === \"ERR_REQUIRE_ASYNC_MODULE\" ||\n // Node.js 13.0.0 throws ERR_REQUIRE_CYCLE_MODULE instead of\n // ERR_REQUIRE_ASYNC_MODULE when requiring a module a second time\n // https://github.com/nodejs/node/issues/55516\n // This `asyncModules` won't catch all of such cases, but it will\n // at least catch those caused by Babel trying to load a module twice.\n (e.code === \"ERR_REQUIRE_CYCLE_MODULE\" && asyncModules.has(filepath))\n ) {\n asyncModules.add(filepath);\n if (!(async ??= yield* isAsync())) {\n throw new ConfigError(tlaError, filepath);\n }\n // fall through: require() failed due to TLA\n } else if (\n e.code === \"ERR_REQUIRE_ESM\" ||\n (!process.env.BABEL_8_BREAKING && type === \"esm\")\n ) {\n // fall through: require() failed due to ESM\n } else {\n throw e;\n }\n }\n // fall through: require() failed due to ESM or TLA, try import()\n case \"auto esm\":\n if ((async ??= yield* isAsync())) {\n const promise = isTS\n ? ensureTsSupport(filepath, ext, () => loadMjsFromPath(filepath))\n : loadMjsFromPath(filepath);\n\n return (yield* waitFor(promise)).default;\n }\n if (isTS) {\n throw new ConfigError(tsNotSupportedError(ext), filepath);\n } else {\n throw new ConfigError(esmError, filepath);\n }\n default:\n throw new Error(\"Internal Babel error: unreachable code.\");\n }\n}\n\nfunction ensureTsSupport(\n filepath: string,\n ext: string,\n callback: () => T,\n): T {\n if (\n process.features.typescript ||\n require.extensions[\".ts\"] ||\n require.extensions[\".cts\"] ||\n require.extensions[\".mts\"]\n ) {\n return callback();\n }\n\n if (ext !== \".cts\") {\n throw new ConfigError(tsNotSupportedError(ext), filepath);\n }\n\n const opts: InputOptions = {\n babelrc: false,\n configFile: false,\n sourceType: \"unambiguous\",\n sourceMaps: \"inline\",\n sourceFileName: path.basename(filepath),\n presets: [\n [\n getTSPreset(filepath),\n {\n onlyRemoveTypeImports: true,\n optimizeConstEnums: true,\n ...(process.env.BABEL_8_BREAKING ? {} : { allowDeclareFields: true }),\n },\n ],\n ],\n };\n\n let handler: NodeJS.RequireExtensions[\"\"] = function (m, filename) {\n // If we want to support `.ts`, `.d.ts` must be handled specially.\n if (handler && filename.endsWith(\".cts\")) {\n try {\n // @ts-expect-error Undocumented API\n return m._compile(\n transformFileSync(filename, {\n ...opts,\n filename,\n }).code,\n filename,\n );\n } catch (error) {\n // TODO(Babel 8): Add this as an optional peer dependency\n // eslint-disable-next-line import/no-extraneous-dependencies\n const packageJson = require(\"@babel/preset-typescript/package.json\");\n if (semver.lt(packageJson.version, \"7.21.4\")) {\n console.error(\n \"`.cts` configuration file failed to load, please try to update `@babel/preset-typescript`.\",\n );\n }\n throw error;\n }\n }\n return require.extensions[\".js\"](m, filename);\n };\n require.extensions[ext] = handler;\n\n try {\n return callback();\n } finally {\n if (require.extensions[ext] === handler) delete require.extensions[ext];\n handler = undefined;\n }\n}\n\nfunction getTSPreset(filepath: string) {\n try {\n // eslint-disable-next-line import/no-extraneous-dependencies\n return require(\"@babel/preset-typescript\");\n } catch (error) {\n if (error.code !== \"MODULE_NOT_FOUND\") throw error;\n\n let message =\n \"You appear to be using a .cts file as Babel configuration, but the `@babel/preset-typescript` package was not found: please install it!\";\n\n if (!process.env.BABEL_8_BREAKING) {\n if (process.versions.pnp) {\n // Using Yarn PnP, which doesn't allow requiring packages that are not\n // explicitly specified as dependencies.\n message += `\nIf you are using Yarn Plug'n'Play, you may also need to add the following configuration to your .yarnrc.yml file:\n\npackageExtensions:\n\\t\"@babel/core@*\":\n\\t\\tpeerDependencies:\n\\t\\t\\t\"@babel/preset-typescript\": \"*\"\n`;\n }\n }\n\n throw new ConfigError(message, filepath);\n }\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/core/lib/config/files/package.js b/server/api/node_modules/@babel/core/lib/config/files/package.js new file mode 100644 index 0000000..eed8ab8 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/config/files/package.js @@ -0,0 +1,61 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.findPackageData = findPackageData; +function _path() { + const data = require("path"); + _path = function () { + return data; + }; + return data; +} +var _utils = require("./utils.js"); +var _configError = require("../../errors/config-error.js"); +const PACKAGE_FILENAME = "package.json"; +const readConfigPackage = (0, _utils.makeStaticFileCache)((filepath, content) => { + let options; + try { + options = JSON.parse(content); + } catch (err) { + throw new _configError.default(`Error while parsing JSON - ${err.message}`, filepath); + } + if (!options) throw new Error(`${filepath}: No config detected`); + if (typeof options !== "object") { + throw new _configError.default(`Config returned typeof ${typeof options}`, filepath); + } + if (Array.isArray(options)) { + throw new _configError.default(`Expected config object but found array`, filepath); + } + return { + filepath, + dirname: _path().dirname(filepath), + options + }; +}); +function* findPackageData(filepath) { + let pkg = null; + const directories = []; + let isPackage = true; + let dirname = _path().dirname(filepath); + while (!pkg && _path().basename(dirname) !== "node_modules") { + directories.push(dirname); + pkg = yield* readConfigPackage(_path().join(dirname, PACKAGE_FILENAME)); + const nextLoc = _path().dirname(dirname); + if (dirname === nextLoc) { + isPackage = false; + break; + } + dirname = nextLoc; + } + return { + filepath, + directories, + pkg, + isPackage + }; +} +0 && 0; + +//# sourceMappingURL=package.js.map diff --git a/server/api/node_modules/@babel/core/lib/config/files/package.js.map b/server/api/node_modules/@babel/core/lib/config/files/package.js.map new file mode 100644 index 0000000..38aeb2c --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/config/files/package.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_path","data","require","_utils","_configError","PACKAGE_FILENAME","readConfigPackage","makeStaticFileCache","filepath","content","options","JSON","parse","err","ConfigError","message","Error","Array","isArray","dirname","path","findPackageData","pkg","directories","isPackage","basename","push","join","nextLoc"],"sources":["../../../src/config/files/package.ts"],"sourcesContent":["import path from \"node:path\";\nimport type { Handler } from \"gensync\";\nimport { makeStaticFileCache } from \"./utils.ts\";\n\nimport type { ConfigFile, FilePackageData } from \"./types.ts\";\n\nimport ConfigError from \"../../errors/config-error.ts\";\n\nconst PACKAGE_FILENAME = \"package.json\";\n\nconst readConfigPackage = makeStaticFileCache(\n (filepath, content): ConfigFile => {\n let options;\n try {\n options = JSON.parse(content) as unknown;\n } catch (err) {\n throw new ConfigError(\n `Error while parsing JSON - ${err.message}`,\n filepath,\n );\n }\n\n if (!options) throw new Error(`${filepath}: No config detected`);\n\n if (typeof options !== \"object\") {\n throw new ConfigError(\n `Config returned typeof ${typeof options}`,\n filepath,\n );\n }\n if (Array.isArray(options)) {\n throw new ConfigError(`Expected config object but found array`, filepath);\n }\n\n return {\n filepath,\n dirname: path.dirname(filepath),\n options,\n };\n },\n);\n\n/**\n * Find metadata about the package that this file is inside of. Resolution\n * of Babel's config requires general package information to decide when to\n * search for .babelrc files\n */\nexport function* findPackageData(filepath: string): Handler {\n let pkg = null;\n const directories = [];\n let isPackage = true;\n\n let dirname = path.dirname(filepath);\n while (!pkg && path.basename(dirname) !== \"node_modules\") {\n directories.push(dirname);\n\n pkg = yield* readConfigPackage(path.join(dirname, PACKAGE_FILENAME));\n\n const nextLoc = path.dirname(dirname);\n if (dirname === nextLoc) {\n isPackage = false;\n break;\n }\n dirname = nextLoc;\n }\n\n return { filepath, directories, pkg, isPackage };\n}\n"],"mappings":";;;;;;AAAA,SAAAA,MAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,KAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,IAAAE,MAAA,GAAAD,OAAA;AAIA,IAAAE,YAAA,GAAAF,OAAA;AAEA,MAAMG,gBAAgB,GAAG,cAAc;AAEvC,MAAMC,iBAAiB,GAAG,IAAAC,0BAAmB,EAC3C,CAACC,QAAQ,EAAEC,OAAO,KAAiB;EACjC,IAAIC,OAAO;EACX,IAAI;IACFA,OAAO,GAAGC,IAAI,CAACC,KAAK,CAACH,OAAO,CAAY;EAC1C,CAAC,CAAC,OAAOI,GAAG,EAAE;IACZ,MAAM,IAAIC,oBAAW,CACnB,8BAA8BD,GAAG,CAACE,OAAO,EAAE,EAC3CP,QACF,CAAC;EACH;EAEA,IAAI,CAACE,OAAO,EAAE,MAAM,IAAIM,KAAK,CAAC,GAAGR,QAAQ,sBAAsB,CAAC;EAEhE,IAAI,OAAOE,OAAO,KAAK,QAAQ,EAAE;IAC/B,MAAM,IAAII,oBAAW,CACnB,0BAA0B,OAAOJ,OAAO,EAAE,EAC1CF,QACF,CAAC;EACH;EACA,IAAIS,KAAK,CAACC,OAAO,CAACR,OAAO,CAAC,EAAE;IAC1B,MAAM,IAAII,oBAAW,CAAC,wCAAwC,EAAEN,QAAQ,CAAC;EAC3E;EAEA,OAAO;IACLA,QAAQ;IACRW,OAAO,EAAEC,MAAGA,CAAC,CAACD,OAAO,CAACX,QAAQ,CAAC;IAC/BE;EACF,CAAC;AACH,CACF,CAAC;AAOM,UAAUW,eAAeA,CAACb,QAAgB,EAA4B;EAC3E,IAAIc,GAAG,GAAG,IAAI;EACd,MAAMC,WAAW,GAAG,EAAE;EACtB,IAAIC,SAAS,GAAG,IAAI;EAEpB,IAAIL,OAAO,GAAGC,MAAGA,CAAC,CAACD,OAAO,CAACX,QAAQ,CAAC;EACpC,OAAO,CAACc,GAAG,IAAIF,MAAGA,CAAC,CAACK,QAAQ,CAACN,OAAO,CAAC,KAAK,cAAc,EAAE;IACxDI,WAAW,CAACG,IAAI,CAACP,OAAO,CAAC;IAEzBG,GAAG,GAAG,OAAOhB,iBAAiB,CAACc,MAAGA,CAAC,CAACO,IAAI,CAACR,OAAO,EAAEd,gBAAgB,CAAC,CAAC;IAEpE,MAAMuB,OAAO,GAAGR,MAAGA,CAAC,CAACD,OAAO,CAACA,OAAO,CAAC;IACrC,IAAIA,OAAO,KAAKS,OAAO,EAAE;MACvBJ,SAAS,GAAG,KAAK;MACjB;IACF;IACAL,OAAO,GAAGS,OAAO;EACnB;EAEA,OAAO;IAAEpB,QAAQ;IAAEe,WAAW;IAAED,GAAG;IAAEE;EAAU,CAAC;AAClD;AAAC","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/core/lib/config/files/plugins.js b/server/api/node_modules/@babel/core/lib/config/files/plugins.js new file mode 100644 index 0000000..caad07f --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/config/files/plugins.js @@ -0,0 +1,220 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.loadPlugin = loadPlugin; +exports.loadPreset = loadPreset; +exports.resolvePreset = exports.resolvePlugin = void 0; +function _debug() { + const data = require("debug"); + _debug = function () { + return data; + }; + return data; +} +function _path() { + const data = require("path"); + _path = function () { + return data; + }; + return data; +} +var _async = require("../../gensync-utils/async.js"); +var _moduleTypes = require("./module-types.js"); +function _url() { + const data = require("url"); + _url = function () { + return data; + }; + return data; +} +var _importMetaResolve = require("../../vendor/import-meta-resolve.js"); +require("module"); +function _fs() { + const data = require("fs"); + _fs = function () { + return data; + }; + return data; +} +const debug = _debug()("babel:config:loading:files:plugins"); +const EXACT_RE = /^module:/; +const BABEL_PLUGIN_PREFIX_RE = /^(?!@|module:|[^/]+\/|babel-plugin-)/; +const BABEL_PRESET_PREFIX_RE = /^(?!@|module:|[^/]+\/|babel-preset-)/; +const BABEL_PLUGIN_ORG_RE = /^(@babel\/)(?!plugin-|[^/]+\/)/; +const BABEL_PRESET_ORG_RE = /^(@babel\/)(?!preset-|[^/]+\/)/; +const OTHER_PLUGIN_ORG_RE = /^(@(?!babel\/)[^/]+\/)(?![^/]*babel-plugin(?:-|\/|$)|[^/]+\/)/; +const OTHER_PRESET_ORG_RE = /^(@(?!babel\/)[^/]+\/)(?![^/]*babel-preset(?:-|\/|$)|[^/]+\/)/; +const OTHER_ORG_DEFAULT_RE = /^(@(?!babel$)[^/]+)$/; +const resolvePlugin = exports.resolvePlugin = resolveStandardizedName.bind(null, "plugin"); +const resolvePreset = exports.resolvePreset = resolveStandardizedName.bind(null, "preset"); +function* loadPlugin(name, dirname) { + const { + filepath, + loader + } = resolvePlugin(name, dirname, yield* (0, _async.isAsync)()); + const value = yield* requireModule("plugin", loader, filepath); + debug("Loaded plugin %o from %o.", name, dirname); + return { + filepath, + value + }; +} +function* loadPreset(name, dirname) { + const { + filepath, + loader + } = resolvePreset(name, dirname, yield* (0, _async.isAsync)()); + const value = yield* requireModule("preset", loader, filepath); + debug("Loaded preset %o from %o.", name, dirname); + return { + filepath, + value + }; +} +function standardizeName(type, name) { + if (_path().isAbsolute(name)) return name; + const isPreset = type === "preset"; + return name.replace(isPreset ? BABEL_PRESET_PREFIX_RE : BABEL_PLUGIN_PREFIX_RE, `babel-${type}-`).replace(isPreset ? BABEL_PRESET_ORG_RE : BABEL_PLUGIN_ORG_RE, `$1${type}-`).replace(isPreset ? OTHER_PRESET_ORG_RE : OTHER_PLUGIN_ORG_RE, `$1babel-${type}-`).replace(OTHER_ORG_DEFAULT_RE, `$1/babel-${type}`).replace(EXACT_RE, ""); +} +function* resolveAlternativesHelper(type, name) { + const standardizedName = standardizeName(type, name); + const { + error, + value + } = yield standardizedName; + if (!error) return value; + if (error.code !== "MODULE_NOT_FOUND") throw error; + if (standardizedName !== name && !(yield name).error) { + error.message += `\n- If you want to resolve "${name}", use "module:${name}"`; + } + if (!(yield standardizeName(type, "@babel/" + name)).error) { + error.message += `\n- Did you mean "@babel/${name}"?`; + } + const oppositeType = type === "preset" ? "plugin" : "preset"; + if (!(yield standardizeName(oppositeType, name)).error) { + error.message += `\n- Did you accidentally pass a ${oppositeType} as a ${type}?`; + } + if (type === "plugin") { + const transformName = standardizedName.replace("-proposal-", "-transform-"); + if (transformName !== standardizedName && !(yield transformName).error) { + error.message += `\n- Did you mean "${transformName}"?`; + } + } + error.message += `\n +Make sure that all the Babel plugins and presets you are using +are defined as dependencies or devDependencies in your package.json +file. It's possible that the missing plugin is loaded by a preset +you are using that forgot to add the plugin to its dependencies: you +can workaround this problem by explicitly adding the missing package +to your top-level package.json. +`; + throw error; +} +function tryRequireResolve(id, dirname) { + try { + if (dirname) { + return { + error: null, + value: (((v, w) => (v = v.split("."), w = w.split("."), +v[0] > +w[0] || v[0] == w[0] && +v[1] >= +w[1]))(process.versions.node, "8.9") ? require.resolve : (r, { + paths: [b] + }, M = require("module")) => { + let f = M._findPath(r, M._nodeModulePaths(b).concat(b)); + if (f) return f; + f = new Error(`Cannot resolve module '${r}'`); + f.code = "MODULE_NOT_FOUND"; + throw f; + })(id, { + paths: [dirname] + }) + }; + } else { + return { + error: null, + value: require.resolve(id) + }; + } + } catch (error) { + return { + error, + value: null + }; + } +} +function tryImportMetaResolve(id, options) { + try { + return { + error: null, + value: (0, _importMetaResolve.resolve)(id, options) + }; + } catch (error) { + return { + error, + value: null + }; + } +} +function resolveStandardizedNameForRequire(type, name, dirname) { + const it = resolveAlternativesHelper(type, name); + let res = it.next(); + while (!res.done) { + res = it.next(tryRequireResolve(res.value, dirname)); + } + return { + loader: "require", + filepath: res.value + }; +} +function resolveStandardizedNameForImport(type, name, dirname) { + const parentUrl = (0, _url().pathToFileURL)(_path().join(dirname, "./babel-virtual-resolve-base.js")).href; + const it = resolveAlternativesHelper(type, name); + let res = it.next(); + while (!res.done) { + res = it.next(tryImportMetaResolve(res.value, parentUrl)); + } + return { + loader: "auto", + filepath: (0, _url().fileURLToPath)(res.value) + }; +} +function resolveStandardizedName(type, name, dirname, allowAsync) { + if (!_moduleTypes.supportsESM || !allowAsync) { + return resolveStandardizedNameForRequire(type, name, dirname); + } + try { + const resolved = resolveStandardizedNameForImport(type, name, dirname); + if (!(0, _fs().existsSync)(resolved.filepath)) { + throw Object.assign(new Error(`Could not resolve "${name}" in file ${dirname}.`), { + type: "MODULE_NOT_FOUND" + }); + } + return resolved; + } catch (e) { + try { + return resolveStandardizedNameForRequire(type, name, dirname); + } catch (e2) { + if (e.type === "MODULE_NOT_FOUND") throw e; + if (e2.type === "MODULE_NOT_FOUND") throw e2; + throw e; + } + } +} +var LOADING_MODULES = new Set(); +function* requireModule(type, loader, name) { + if (!(yield* (0, _async.isAsync)()) && LOADING_MODULES.has(name)) { + throw new Error(`Reentrant ${type} detected trying to load "${name}". This module is not ignored ` + "and is trying to load itself while compiling itself, leading to a dependency cycle. " + 'We recommend adding it to your "ignore" list in your babelrc, or to a .babelignore.'); + } + try { + LOADING_MODULES.add(name); + return yield* (0, _moduleTypes.default)(name, loader, `You appear to be using a native ECMAScript module ${type}, ` + "which is only supported when running Babel asynchronously " + "or when using the Node.js `--experimental-require-module` flag.", `You appear to be using a ${type} that contains top-level await, ` + "which is only supported when running Babel asynchronously.", true); + } catch (err) { + err.message = `[BABEL]: ${err.message} (While processing: ${name})`; + throw err; + } finally { + LOADING_MODULES.delete(name); + } +} +0 && 0; + +//# sourceMappingURL=plugins.js.map diff --git a/server/api/node_modules/@babel/core/lib/config/files/plugins.js.map b/server/api/node_modules/@babel/core/lib/config/files/plugins.js.map new file mode 100644 index 0000000..f3879e3 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/config/files/plugins.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_debug","data","require","_path","_async","_moduleTypes","_url","_importMetaResolve","_fs","debug","buildDebug","EXACT_RE","BABEL_PLUGIN_PREFIX_RE","BABEL_PRESET_PREFIX_RE","BABEL_PLUGIN_ORG_RE","BABEL_PRESET_ORG_RE","OTHER_PLUGIN_ORG_RE","OTHER_PRESET_ORG_RE","OTHER_ORG_DEFAULT_RE","resolvePlugin","exports","resolveStandardizedName","bind","resolvePreset","loadPlugin","name","dirname","filepath","loader","isAsync","value","requireModule","loadPreset","standardizeName","type","path","isAbsolute","isPreset","replace","resolveAlternativesHelper","standardizedName","error","code","message","oppositeType","transformName","tryRequireResolve","id","v","w","split","process","versions","node","resolve","r","paths","b","M","f","_findPath","_nodeModulePaths","concat","Error","tryImportMetaResolve","options","importMetaResolve","resolveStandardizedNameForRequire","it","res","next","done","resolveStandardizedNameForImport","parentUrl","pathToFileURL","join","href","fileURLToPath","allowAsync","supportsESM","resolved","existsSync","Object","assign","e","e2","LOADING_MODULES","Set","has","add","loadCodeDefault","err","delete"],"sources":["../../../src/config/files/plugins.ts"],"sourcesContent":["/**\n * This file handles all logic for converting string-based configuration references into loaded objects.\n */\n\nimport buildDebug from \"debug\";\nimport path from \"node:path\";\nimport type { Handler } from \"gensync\";\nimport { isAsync } from \"../../gensync-utils/async.ts\";\nimport loadCodeDefault, { supportsESM } from \"./module-types.ts\";\nimport { fileURLToPath, pathToFileURL } from \"node:url\";\n\nimport { resolve as importMetaResolve } from \"../../vendor/import-meta-resolve.js\";\n\nimport { createRequire } from \"node:module\";\nimport { existsSync } from \"node:fs\";\nconst require = createRequire(import.meta.url);\n\nconst debug = buildDebug(\"babel:config:loading:files:plugins\");\n\nconst EXACT_RE = /^module:/;\nconst BABEL_PLUGIN_PREFIX_RE = /^(?!@|module:|[^/]+\\/|babel-plugin-)/;\nconst BABEL_PRESET_PREFIX_RE = /^(?!@|module:|[^/]+\\/|babel-preset-)/;\nconst BABEL_PLUGIN_ORG_RE = /^(@babel\\/)(?!plugin-|[^/]+\\/)/;\nconst BABEL_PRESET_ORG_RE = /^(@babel\\/)(?!preset-|[^/]+\\/)/;\nconst OTHER_PLUGIN_ORG_RE =\n /^(@(?!babel\\/)[^/]+\\/)(?![^/]*babel-plugin(?:-|\\/|$)|[^/]+\\/)/;\nconst OTHER_PRESET_ORG_RE =\n /^(@(?!babel\\/)[^/]+\\/)(?![^/]*babel-preset(?:-|\\/|$)|[^/]+\\/)/;\nconst OTHER_ORG_DEFAULT_RE = /^(@(?!babel$)[^/]+)$/;\n\nexport const resolvePlugin = resolveStandardizedName.bind(null, \"plugin\");\nexport const resolvePreset = resolveStandardizedName.bind(null, \"preset\");\n\nexport function* loadPlugin(\n name: string,\n dirname: string,\n): Handler<{ filepath: string; value: unknown }> {\n const { filepath, loader } = resolvePlugin(name, dirname, yield* isAsync());\n\n const value = yield* requireModule(\"plugin\", loader, filepath);\n debug(\"Loaded plugin %o from %o.\", name, dirname);\n\n return { filepath, value };\n}\n\nexport function* loadPreset(\n name: string,\n dirname: string,\n): Handler<{ filepath: string; value: unknown }> {\n const { filepath, loader } = resolvePreset(name, dirname, yield* isAsync());\n\n const value = yield* requireModule(\"preset\", loader, filepath);\n\n debug(\"Loaded preset %o from %o.\", name, dirname);\n\n return { filepath, value };\n}\n\nfunction standardizeName(type: \"plugin\" | \"preset\", name: string) {\n // Let absolute and relative paths through.\n if (path.isAbsolute(name)) return name;\n\n const isPreset = type === \"preset\";\n\n return (\n name\n // foo -> babel-preset-foo\n .replace(\n isPreset ? BABEL_PRESET_PREFIX_RE : BABEL_PLUGIN_PREFIX_RE,\n `babel-${type}-`,\n )\n // @babel/es2015 -> @babel/preset-es2015\n .replace(\n isPreset ? BABEL_PRESET_ORG_RE : BABEL_PLUGIN_ORG_RE,\n `$1${type}-`,\n )\n // @foo/mypreset -> @foo/babel-preset-mypreset\n .replace(\n isPreset ? OTHER_PRESET_ORG_RE : OTHER_PLUGIN_ORG_RE,\n `$1babel-${type}-`,\n )\n // @foo -> @foo/babel-preset\n .replace(OTHER_ORG_DEFAULT_RE, `$1/babel-${type}`)\n // module:mypreset -> mypreset\n .replace(EXACT_RE, \"\")\n );\n}\n\ntype Result = { error: Error; value: null } | { error: null; value: T };\n\nfunction* resolveAlternativesHelper(\n type: \"plugin\" | \"preset\",\n name: string,\n): Iterator> {\n const standardizedName = standardizeName(type, name);\n const { error, value } = yield standardizedName;\n if (!error) return value;\n\n // @ts-expect-error code may not index error\n if (error.code !== \"MODULE_NOT_FOUND\") throw error;\n\n if (standardizedName !== name && !(yield name).error) {\n error.message += `\\n- If you want to resolve \"${name}\", use \"module:${name}\"`;\n }\n\n if (!(yield standardizeName(type, \"@babel/\" + name)).error) {\n error.message += `\\n- Did you mean \"@babel/${name}\"?`;\n }\n\n const oppositeType = type === \"preset\" ? \"plugin\" : \"preset\";\n if (!(yield standardizeName(oppositeType, name)).error) {\n error.message += `\\n- Did you accidentally pass a ${oppositeType} as a ${type}?`;\n }\n\n if (type === \"plugin\") {\n const transformName = standardizedName.replace(\"-proposal-\", \"-transform-\");\n if (transformName !== standardizedName && !(yield transformName).error) {\n error.message += `\\n- Did you mean \"${transformName}\"?`;\n }\n }\n\n error.message += `\\n\nMake sure that all the Babel plugins and presets you are using\nare defined as dependencies or devDependencies in your package.json\nfile. It's possible that the missing plugin is loaded by a preset\nyou are using that forgot to add the plugin to its dependencies: you\ncan workaround this problem by explicitly adding the missing package\nto your top-level package.json.\n`;\n\n throw error;\n}\n\nfunction tryRequireResolve(\n id: string,\n dirname: string | undefined,\n): Result {\n try {\n if (dirname) {\n return { error: null, value: require.resolve(id, { paths: [dirname] }) };\n } else {\n return { error: null, value: require.resolve(id) };\n }\n } catch (error) {\n return { error, value: null };\n }\n}\n\nfunction tryImportMetaResolve(\n id: Parameters[0],\n options: Parameters[1],\n): Result {\n try {\n return { error: null, value: importMetaResolve(id, options) };\n } catch (error) {\n return { error, value: null };\n }\n}\n\nfunction resolveStandardizedNameForRequire(\n type: \"plugin\" | \"preset\",\n name: string,\n dirname: string,\n) {\n const it = resolveAlternativesHelper(type, name);\n let res = it.next();\n while (!res.done) {\n res = it.next(tryRequireResolve(res.value, dirname));\n }\n return { loader: \"require\" as const, filepath: res.value };\n}\nfunction resolveStandardizedNameForImport(\n type: \"plugin\" | \"preset\",\n name: string,\n dirname: string,\n) {\n const parentUrl = pathToFileURL(\n path.join(dirname, \"./babel-virtual-resolve-base.js\"),\n ).href;\n\n const it = resolveAlternativesHelper(type, name);\n let res = it.next();\n while (!res.done) {\n res = it.next(tryImportMetaResolve(res.value, parentUrl));\n }\n return { loader: \"auto\" as const, filepath: fileURLToPath(res.value) };\n}\n\nfunction resolveStandardizedName(\n type: \"plugin\" | \"preset\",\n name: string,\n dirname: string,\n allowAsync: boolean,\n) {\n if (!supportsESM || !allowAsync) {\n return resolveStandardizedNameForRequire(type, name, dirname);\n }\n\n try {\n const resolved = resolveStandardizedNameForImport(type, name, dirname);\n // import-meta-resolve 4.0 does not throw if the module is not found.\n if (!existsSync(resolved.filepath)) {\n throw Object.assign(\n new Error(`Could not resolve \"${name}\" in file ${dirname}.`),\n { type: \"MODULE_NOT_FOUND\" },\n );\n }\n return resolved;\n } catch (e) {\n try {\n return resolveStandardizedNameForRequire(type, name, dirname);\n } catch (e2) {\n if (e.type === \"MODULE_NOT_FOUND\") throw e;\n if (e2.type === \"MODULE_NOT_FOUND\") throw e2;\n throw e;\n }\n }\n}\n\nif (!process.env.BABEL_8_BREAKING) {\n // eslint-disable-next-line no-var\n var LOADING_MODULES = new Set();\n}\nfunction* requireModule(\n type: string,\n loader: \"require\" | \"auto\",\n name: string,\n): Handler {\n if (!process.env.BABEL_8_BREAKING) {\n if (!(yield* isAsync()) && LOADING_MODULES.has(name)) {\n throw new Error(\n `Reentrant ${type} detected trying to load \"${name}\". This module is not ignored ` +\n \"and is trying to load itself while compiling itself, leading to a dependency cycle. \" +\n 'We recommend adding it to your \"ignore\" list in your babelrc, or to a .babelignore.',\n );\n }\n }\n\n try {\n if (!process.env.BABEL_8_BREAKING) {\n LOADING_MODULES.add(name);\n }\n\n if (process.env.BABEL_8_BREAKING) {\n return yield* loadCodeDefault(\n name,\n loader,\n `You appear to be using a native ECMAScript module ${type}, ` +\n \"which is only supported when running Babel asynchronously \" +\n \"or when using the Node.js `--experimental-require-module` flag.\",\n `You appear to be using a ${type} that contains top-level await, ` +\n \"which is only supported when running Babel asynchronously.\",\n );\n } else {\n return yield* loadCodeDefault(\n name,\n loader,\n `You appear to be using a native ECMAScript module ${type}, ` +\n \"which is only supported when running Babel asynchronously \" +\n \"or when using the Node.js `--experimental-require-module` flag.\",\n `You appear to be using a ${type} that contains top-level await, ` +\n \"which is only supported when running Babel asynchronously.\",\n // For backward compatibility, we need to support malformed presets\n // defined as separate named exports rather than a single default\n // export.\n // See packages/babel-core/test/fixtures/option-manager/presets/es2015_named.js\n // @ts-ignore(Babel 7 vs Babel 8) This param has been removed\n true,\n );\n }\n } catch (err) {\n err.message = `[BABEL]: ${err.message} (While processing: ${name})`;\n throw err;\n } finally {\n if (!process.env.BABEL_8_BREAKING) {\n LOADING_MODULES.delete(name);\n }\n }\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/core/lib/config/files/types.js b/server/api/node_modules/@babel/core/lib/config/files/types.js new file mode 100644 index 0000000..8fd1422 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/config/files/types.js @@ -0,0 +1,5 @@ +"use strict"; + +0 && 0; + +//# sourceMappingURL=types.js.map diff --git a/server/api/node_modules/@babel/core/lib/config/files/types.js.map b/server/api/node_modules/@babel/core/lib/config/files/types.js.map new file mode 100644 index 0000000..a2ac40b --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/config/files/types.js.map @@ -0,0 +1 @@ +{"version":3,"names":[],"sources":["../../../src/config/files/types.ts"],"sourcesContent":["import type { InputOptions } from \"../index.ts\";\n\nexport type ConfigFile = {\n filepath: string;\n dirname: string;\n options: InputOptions & { babel?: unknown };\n};\n\nexport type IgnoreFile = {\n filepath: string;\n dirname: string;\n ignore: RegExp[];\n};\n\nexport type RelativeConfig = {\n // The actual config, either from package.json#babel, .babelrc, or\n // .babelrc.js, if there was one.\n config: ConfigFile | null;\n // The .babelignore, if there was one.\n ignore: IgnoreFile | null;\n};\n\nexport type FilePackageData = {\n // The file in the package.\n filepath: string;\n // Any ancestor directories of the file that are within the package.\n directories: string[];\n // The contents of the package.json. May not be found if the package just\n // terminated at a node_modules folder without finding one.\n pkg: ConfigFile | null;\n // True if a package.json or node_modules folder was found while traversing\n // the directory structure.\n isPackage: boolean;\n};\n"],"mappings":"","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/core/lib/config/files/utils.js b/server/api/node_modules/@babel/core/lib/config/files/utils.js new file mode 100644 index 0000000..406aab9 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/config/files/utils.js @@ -0,0 +1,36 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.makeStaticFileCache = makeStaticFileCache; +var _caching = require("../caching.js"); +var fs = require("../../gensync-utils/fs.js"); +function _fs2() { + const data = require("fs"); + _fs2 = function () { + return data; + }; + return data; +} +function makeStaticFileCache(fn) { + return (0, _caching.makeStrongCache)(function* (filepath, cache) { + const cached = cache.invalidate(() => fileMtime(filepath)); + if (cached === null) { + return null; + } + return fn(filepath, yield* fs.readFile(filepath, "utf8")); + }); +} +function fileMtime(filepath) { + if (!_fs2().existsSync(filepath)) return null; + try { + return +_fs2().statSync(filepath).mtime; + } catch (e) { + if (e.code !== "ENOENT" && e.code !== "ENOTDIR") throw e; + } + return null; +} +0 && 0; + +//# sourceMappingURL=utils.js.map diff --git a/server/api/node_modules/@babel/core/lib/config/files/utils.js.map b/server/api/node_modules/@babel/core/lib/config/files/utils.js.map new file mode 100644 index 0000000..f3be225 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/config/files/utils.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_caching","require","fs","_fs2","data","makeStaticFileCache","fn","makeStrongCache","filepath","cache","cached","invalidate","fileMtime","readFile","nodeFs","existsSync","statSync","mtime","e","code"],"sources":["../../../src/config/files/utils.ts"],"sourcesContent":["import type { Handler } from \"gensync\";\n\nimport { makeStrongCache } from \"../caching.ts\";\nimport type { CacheConfigurator } from \"../caching.ts\";\nimport * as fs from \"../../gensync-utils/fs.ts\";\nimport nodeFs from \"node:fs\";\n\nexport function makeStaticFileCache(\n fn: (filepath: string, contents: string) => T,\n) {\n return makeStrongCache(function* (\n filepath: string,\n cache: CacheConfigurator,\n ): Handler {\n const cached = cache.invalidate(() => fileMtime(filepath));\n\n if (cached === null) {\n return null;\n }\n\n return fn(filepath, yield* fs.readFile(filepath, \"utf8\"));\n });\n}\n\nfunction fileMtime(filepath: string): number | null {\n if (!nodeFs.existsSync(filepath)) return null;\n\n try {\n return +nodeFs.statSync(filepath).mtime;\n } catch (e) {\n if (e.code !== \"ENOENT\" && e.code !== \"ENOTDIR\") throw e;\n }\n\n return null;\n}\n"],"mappings":";;;;;;AAEA,IAAAA,QAAA,GAAAC,OAAA;AAEA,IAAAC,EAAA,GAAAD,OAAA;AACA,SAAAE,KAAA;EAAA,MAAAC,IAAA,GAAAH,OAAA;EAAAE,IAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEO,SAASC,mBAAmBA,CACjCC,EAA6C,EAC7C;EACA,OAAO,IAAAC,wBAAe,EAAC,WACrBC,QAAgB,EAChBC,KAA8B,EACX;IACnB,MAAMC,MAAM,GAAGD,KAAK,CAACE,UAAU,CAAC,MAAMC,SAAS,CAACJ,QAAQ,CAAC,CAAC;IAE1D,IAAIE,MAAM,KAAK,IAAI,EAAE;MACnB,OAAO,IAAI;IACb;IAEA,OAAOJ,EAAE,CAACE,QAAQ,EAAE,OAAON,EAAE,CAACW,QAAQ,CAACL,QAAQ,EAAE,MAAM,CAAC,CAAC;EAC3D,CAAC,CAAC;AACJ;AAEA,SAASI,SAASA,CAACJ,QAAgB,EAAiB;EAClD,IAAI,CAACM,KAAKA,CAAC,CAACC,UAAU,CAACP,QAAQ,CAAC,EAAE,OAAO,IAAI;EAE7C,IAAI;IACF,OAAO,CAACM,KAAKA,CAAC,CAACE,QAAQ,CAACR,QAAQ,CAAC,CAACS,KAAK;EACzC,CAAC,CAAC,OAAOC,CAAC,EAAE;IACV,IAAIA,CAAC,CAACC,IAAI,KAAK,QAAQ,IAAID,CAAC,CAACC,IAAI,KAAK,SAAS,EAAE,MAAMD,CAAC;EAC1D;EAEA,OAAO,IAAI;AACb;AAAC","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/core/lib/config/full.js b/server/api/node_modules/@babel/core/lib/config/full.js new file mode 100644 index 0000000..614caa9 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/config/full.js @@ -0,0 +1,312 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +function _gensync() { + const data = require("gensync"); + _gensync = function () { + return data; + }; + return data; +} +var _async = require("../gensync-utils/async.js"); +var _util = require("./util.js"); +var context = require("../index.js"); +var _plugin = require("./plugin.js"); +var _item = require("./item.js"); +var _configChain = require("./config-chain.js"); +var _deepArray = require("./helpers/deep-array.js"); +function _traverse() { + const data = require("@babel/traverse"); + _traverse = function () { + return data; + }; + return data; +} +var _caching = require("./caching.js"); +var _options = require("./validation/options.js"); +var _plugins = require("./validation/plugins.js"); +var _configApi = require("./helpers/config-api.js"); +var _partial = require("./partial.js"); +var _configError = require("../errors/config-error.js"); +var _default = exports.default = _gensync()(function* loadFullConfig(inputOpts) { + var _opts$assumptions; + const result = yield* (0, _partial.default)(inputOpts); + if (!result) { + return null; + } + const { + options, + context, + fileHandling + } = result; + if (fileHandling === "ignored") { + return null; + } + const optionDefaults = {}; + const { + plugins, + presets + } = options; + if (!plugins || !presets) { + throw new Error("Assertion failure - plugins and presets exist"); + } + const presetContext = Object.assign({}, context, { + targets: options.targets + }); + const toDescriptor = item => { + const desc = (0, _item.getItemDescriptor)(item); + if (!desc) { + throw new Error("Assertion failure - must be config item"); + } + return desc; + }; + const presetsDescriptors = presets.map(toDescriptor); + const initialPluginsDescriptors = plugins.map(toDescriptor); + const pluginDescriptorsByPass = [[]]; + const passes = []; + const externalDependencies = []; + const ignored = yield* enhanceError(context, function* recursePresetDescriptors(rawPresets, pluginDescriptorsPass) { + const presets = []; + for (let i = 0; i < rawPresets.length; i++) { + const descriptor = rawPresets[i]; + if (descriptor.options !== false) { + try { + var preset = yield* loadPresetDescriptor(descriptor, presetContext); + } catch (e) { + if (e.code === "BABEL_UNKNOWN_OPTION") { + (0, _options.checkNoUnwrappedItemOptionPairs)(rawPresets, i, "preset", e); + } + throw e; + } + externalDependencies.push(preset.externalDependencies); + if (descriptor.ownPass) { + presets.push({ + preset: preset.chain, + pass: [] + }); + } else { + presets.unshift({ + preset: preset.chain, + pass: pluginDescriptorsPass + }); + } + } + } + if (presets.length > 0) { + pluginDescriptorsByPass.splice(1, 0, ...presets.map(o => o.pass).filter(p => p !== pluginDescriptorsPass)); + for (const { + preset, + pass + } of presets) { + if (!preset) return true; + pass.push(...preset.plugins); + const ignored = yield* recursePresetDescriptors(preset.presets, pass); + if (ignored) return true; + preset.options.forEach(opts => { + (0, _util.mergeOptions)(optionDefaults, opts); + }); + } + } + })(presetsDescriptors, pluginDescriptorsByPass[0]); + if (ignored) return null; + const opts = optionDefaults; + (0, _util.mergeOptions)(opts, options); + const pluginContext = Object.assign({}, presetContext, { + assumptions: (_opts$assumptions = opts.assumptions) != null ? _opts$assumptions : {} + }); + yield* enhanceError(context, function* loadPluginDescriptors() { + pluginDescriptorsByPass[0].unshift(...initialPluginsDescriptors); + for (const descs of pluginDescriptorsByPass) { + const pass = []; + passes.push(pass); + for (let i = 0; i < descs.length; i++) { + const descriptor = descs[i]; + if (descriptor.options !== false) { + try { + var plugin = yield* loadPluginDescriptor(descriptor, pluginContext); + } catch (e) { + if (e.code === "BABEL_UNKNOWN_PLUGIN_PROPERTY") { + (0, _options.checkNoUnwrappedItemOptionPairs)(descs, i, "plugin", e); + } + throw e; + } + pass.push(plugin); + externalDependencies.push(plugin.externalDependencies); + } + } + } + })(); + opts.plugins = passes[0]; + opts.presets = passes.slice(1).filter(plugins => plugins.length > 0).map(plugins => ({ + plugins + })); + opts.passPerPreset = opts.presets.length > 0; + return { + options: opts, + passes: passes, + externalDependencies: (0, _deepArray.finalize)(externalDependencies) + }; +}); +function enhanceError(context, fn) { + return function* (arg1, arg2) { + try { + return yield* fn(arg1, arg2); + } catch (e) { + if (!e.message.startsWith("[BABEL]")) { + var _context$filename; + e.message = `[BABEL] ${(_context$filename = context.filename) != null ? _context$filename : "unknown file"}: ${e.message}`; + } + throw e; + } + }; +} +const makeDescriptorLoader = apiFactory => (0, _caching.makeWeakCache)(function* ({ + value, + options, + dirname, + alias +}, cache) { + if (options === false) throw new Error("Assertion failure"); + options = options || {}; + const externalDependencies = []; + let item = value; + if (typeof value === "function") { + const factory = (0, _async.maybeAsync)(value, `You appear to be using an async plugin/preset, but Babel has been called synchronously`); + const api = Object.assign({}, context, apiFactory(cache, externalDependencies)); + try { + item = yield* factory(api, options, dirname); + } catch (e) { + if (alias) { + e.message += ` (While processing: ${JSON.stringify(alias)})`; + } + throw e; + } + } + if (!item || typeof item !== "object") { + throw new Error("Plugin/Preset did not return an object."); + } + if ((0, _async.isThenable)(item)) { + yield* []; + throw new Error(`You appear to be using a promise as a plugin, ` + `which your current version of Babel does not support. ` + `If you're using a published plugin, ` + `you may need to upgrade your @babel/core version. ` + `As an alternative, you can prefix the promise with "await". ` + `(While processing: ${JSON.stringify(alias)})`); + } + if (externalDependencies.length > 0 && (!cache.configured() || cache.mode() === "forever")) { + let error = `A plugin/preset has external untracked dependencies ` + `(${externalDependencies[0]}), but the cache `; + if (!cache.configured()) { + error += `has not been configured to be invalidated when the external dependencies change. `; + } else { + error += ` has been configured to never be invalidated. `; + } + error += `Plugins/presets should configure their cache to be invalidated when the external ` + `dependencies change, for example using \`api.cache.invalidate(() => ` + `statSync(filepath).mtimeMs)\` or \`api.cache.never()\`\n` + `(While processing: ${JSON.stringify(alias)})`; + throw new Error(error); + } + return { + value: item, + options, + dirname, + alias, + externalDependencies: (0, _deepArray.finalize)(externalDependencies) + }; +}); +const pluginDescriptorLoader = makeDescriptorLoader(_configApi.makePluginAPI); +const presetDescriptorLoader = makeDescriptorLoader(_configApi.makePresetAPI); +const instantiatePlugin = (0, _caching.makeWeakCache)(function* ({ + value, + options, + dirname, + alias, + externalDependencies +}, cache) { + const pluginObj = (0, _plugins.validatePluginObject)(value); + const plugin = Object.assign({}, pluginObj); + if (plugin.visitor) { + plugin.visitor = _traverse().default.explode(Object.assign({}, plugin.visitor)); + } + if (plugin.inherits) { + const inheritsDescriptor = { + name: undefined, + alias: `${alias}$inherits`, + value: plugin.inherits, + options, + dirname + }; + const inherits = yield* (0, _async.forwardAsync)(loadPluginDescriptor, run => { + return cache.invalidate(data => run(inheritsDescriptor, data)); + }); + plugin.pre = chainMaybeAsync(inherits.pre, plugin.pre); + plugin.post = chainMaybeAsync(inherits.post, plugin.post); + plugin.manipulateOptions = chainMaybeAsync(inherits.manipulateOptions, plugin.manipulateOptions); + plugin.visitor = _traverse().default.visitors.merge([inherits.visitor || {}, plugin.visitor || {}]); + if (inherits.externalDependencies.length > 0) { + if (externalDependencies.length === 0) { + externalDependencies = inherits.externalDependencies; + } else { + externalDependencies = (0, _deepArray.finalize)([externalDependencies, inherits.externalDependencies]); + } + } + } + return new _plugin.default(plugin, options, alias, externalDependencies); +}); +function* loadPluginDescriptor(descriptor, context) { + if (descriptor.value instanceof _plugin.default) { + if (descriptor.options) { + throw new Error("Passed options to an existing Plugin instance will not work."); + } + return descriptor.value; + } + return yield* instantiatePlugin(yield* pluginDescriptorLoader(descriptor, context), context); +} +const needsFilename = val => val && typeof val !== "function"; +const validateIfOptionNeedsFilename = (options, descriptor) => { + if (needsFilename(options.test) || needsFilename(options.include) || needsFilename(options.exclude)) { + const formattedPresetName = descriptor.name ? `"${descriptor.name}"` : "/* your preset */"; + throw new _configError.default([`Preset ${formattedPresetName} requires a filename to be set when babel is called directly,`, `\`\`\``, `babel.transformSync(code, { filename: 'file.ts', presets: [${formattedPresetName}] });`, `\`\`\``, `See https://babeljs.io/docs/en/options#filename for more information.`].join("\n")); + } +}; +const validatePreset = (preset, context, descriptor) => { + if (!context.filename) { + var _options$overrides; + const { + options + } = preset; + validateIfOptionNeedsFilename(options, descriptor); + (_options$overrides = options.overrides) == null || _options$overrides.forEach(overrideOptions => validateIfOptionNeedsFilename(overrideOptions, descriptor)); + } +}; +const instantiatePreset = (0, _caching.makeWeakCacheSync)(({ + value, + dirname, + alias, + externalDependencies +}) => { + return { + options: (0, _options.validate)("preset", value), + alias, + dirname, + externalDependencies + }; +}); +function* loadPresetDescriptor(descriptor, context) { + const preset = instantiatePreset(yield* presetDescriptorLoader(descriptor, context)); + validatePreset(preset, context, descriptor); + return { + chain: yield* (0, _configChain.buildPresetChain)(preset, context), + externalDependencies: preset.externalDependencies + }; +} +function chainMaybeAsync(a, b) { + if (!a) return b; + if (!b) return a; + return function (...args) { + const res = a.apply(this, args); + if (res && typeof res.then === "function") { + return res.then(() => b.apply(this, args)); + } + return b.apply(this, args); + }; +} +0 && 0; + +//# sourceMappingURL=full.js.map diff --git a/server/api/node_modules/@babel/core/lib/config/full.js.map b/server/api/node_modules/@babel/core/lib/config/full.js.map new file mode 100644 index 0000000..55e99b8 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/config/full.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_gensync","data","require","_async","_util","context","_plugin","_item","_configChain","_deepArray","_traverse","_caching","_options","_plugins","_configApi","_partial","_configError","_default","exports","default","gensync","loadFullConfig","inputOpts","_opts$assumptions","result","loadPrivatePartialConfig","options","fileHandling","optionDefaults","plugins","presets","Error","presetContext","Object","assign","targets","toDescriptor","item","desc","getItemDescriptor","presetsDescriptors","map","initialPluginsDescriptors","pluginDescriptorsByPass","passes","externalDependencies","ignored","enhanceError","recursePresetDescriptors","rawPresets","pluginDescriptorsPass","i","length","descriptor","preset","loadPresetDescriptor","e","code","checkNoUnwrappedItemOptionPairs","push","ownPass","chain","pass","unshift","splice","o","filter","p","forEach","opts","mergeOptions","pluginContext","assumptions","loadPluginDescriptors","descs","plugin","loadPluginDescriptor","slice","passPerPreset","freezeDeepArray","fn","arg1","arg2","message","startsWith","_context$filename","filename","makeDescriptorLoader","apiFactory","makeWeakCache","value","dirname","alias","cache","factory","maybeAsync","api","JSON","stringify","isThenable","configured","mode","error","pluginDescriptorLoader","makePluginAPI","presetDescriptorLoader","makePresetAPI","instantiatePlugin","pluginObj","validatePluginObject","visitor","traverse","explode","inherits","inheritsDescriptor","name","undefined","forwardAsync","run","invalidate","pre","chainMaybeAsync","post","manipulateOptions","visitors","merge","Plugin","needsFilename","val","validateIfOptionNeedsFilename","test","include","exclude","formattedPresetName","ConfigError","join","validatePreset","_options$overrides","overrides","overrideOptions","instantiatePreset","makeWeakCacheSync","validate","buildPresetChain","a","b","args","res","apply","then"],"sources":["../../src/config/full.ts"],"sourcesContent":["import gensync, { type Handler } from \"gensync\";\nimport {\n forwardAsync,\n maybeAsync,\n isThenable,\n} from \"../gensync-utils/async.ts\";\n\nimport { mergeOptions } from \"./util.ts\";\nimport * as context from \"../index.ts\";\nimport Plugin from \"./plugin.ts\";\nimport { getItemDescriptor } from \"./item.ts\";\nimport { buildPresetChain } from \"./config-chain.ts\";\nimport { finalize as freezeDeepArray } from \"./helpers/deep-array.ts\";\nimport type { DeepArray, ReadonlyDeepArray } from \"./helpers/deep-array.ts\";\nimport type {\n ConfigContext,\n ConfigChain,\n PresetInstance,\n} from \"./config-chain.ts\";\nimport type { UnloadedDescriptor } from \"./config-descriptors.ts\";\nimport traverse from \"@babel/traverse\";\nimport { makeWeakCache, makeWeakCacheSync } from \"./caching.ts\";\nimport type { CacheConfigurator } from \"./caching.ts\";\nimport {\n validate,\n checkNoUnwrappedItemOptionPairs,\n} from \"./validation/options.ts\";\nimport type { InputOptions, PluginItem } from \"./validation/options.ts\";\nimport { validatePluginObject } from \"./validation/plugins.ts\";\nimport { makePluginAPI, makePresetAPI } from \"./helpers/config-api.ts\";\nimport type { PluginAPI, PresetAPI } from \"./helpers/config-api.ts\";\n\nimport loadPrivatePartialConfig from \"./partial.ts\";\nimport type { ResolvedOptions } from \"./validation/options.ts\";\n\nimport type * as Context from \"./cache-contexts.ts\";\nimport ConfigError from \"../errors/config-error.ts\";\n\ntype LoadedDescriptor = {\n value: any;\n options: object;\n dirname: string;\n alias: string;\n externalDependencies: ReadonlyDeepArray;\n};\n\nexport type { InputOptions } from \"./validation/options.ts\";\n\nexport type ResolvedConfig = {\n options: ResolvedOptions;\n passes: PluginPasses;\n externalDependencies: ReadonlyDeepArray;\n};\n\nexport type { Plugin };\nexport type PluginPassList = Plugin[];\nexport type PluginPasses = PluginPassList[];\n\nexport default gensync(function* loadFullConfig(\n inputOpts: InputOptions,\n): Handler {\n const result = yield* loadPrivatePartialConfig(inputOpts);\n if (!result) {\n return null;\n }\n const { options, context, fileHandling } = result;\n\n if (fileHandling === \"ignored\") {\n return null;\n }\n\n const optionDefaults = {};\n\n const { plugins, presets } = options;\n\n if (!plugins || !presets) {\n throw new Error(\"Assertion failure - plugins and presets exist\");\n }\n\n const presetContext: Context.FullPreset = {\n ...context,\n targets: options.targets,\n };\n\n const toDescriptor = (item: PluginItem) => {\n const desc = getItemDescriptor(item);\n if (!desc) {\n throw new Error(\"Assertion failure - must be config item\");\n }\n\n return desc;\n };\n\n const presetsDescriptors = presets.map(toDescriptor);\n const initialPluginsDescriptors = plugins.map(toDescriptor);\n const pluginDescriptorsByPass: UnloadedDescriptor[][] = [[]];\n const passes: Plugin[][] = [];\n\n const externalDependencies: DeepArray = [];\n\n const ignored = yield* enhanceError(\n context,\n function* recursePresetDescriptors(\n rawPresets: UnloadedDescriptor[],\n pluginDescriptorsPass: UnloadedDescriptor[],\n ): Handler {\n const presets: {\n preset: ConfigChain | null;\n pass: UnloadedDescriptor[];\n }[] = [];\n\n for (let i = 0; i < rawPresets.length; i++) {\n const descriptor = rawPresets[i];\n // @ts-expect-error TODO: disallow false\n if (descriptor.options !== false) {\n try {\n // eslint-disable-next-line no-var\n var preset = yield* loadPresetDescriptor(descriptor, presetContext);\n } catch (e) {\n if (e.code === \"BABEL_UNKNOWN_OPTION\") {\n checkNoUnwrappedItemOptionPairs(rawPresets, i, \"preset\", e);\n }\n throw e;\n }\n\n externalDependencies.push(preset.externalDependencies);\n\n // Presets normally run in reverse order, but if they\n // have their own pass they run after the presets\n // in the previous pass.\n if (descriptor.ownPass) {\n presets.push({ preset: preset.chain, pass: [] });\n } else {\n presets.unshift({\n preset: preset.chain,\n pass: pluginDescriptorsPass,\n });\n }\n }\n }\n\n // resolve presets\n if (presets.length > 0) {\n // The passes are created in the same order as the preset list, but are inserted before any\n // existing additional passes.\n pluginDescriptorsByPass.splice(\n 1,\n 0,\n ...presets.map(o => o.pass).filter(p => p !== pluginDescriptorsPass),\n );\n\n for (const { preset, pass } of presets) {\n if (!preset) return true;\n\n pass.push(...preset.plugins);\n\n const ignored = yield* recursePresetDescriptors(preset.presets, pass);\n if (ignored) return true;\n\n preset.options.forEach(opts => {\n mergeOptions(optionDefaults, opts);\n });\n }\n }\n },\n )(presetsDescriptors, pluginDescriptorsByPass[0]);\n\n if (ignored) return null;\n\n const opts = optionDefaults as ResolvedOptions;\n mergeOptions(opts, options);\n\n const pluginContext: Context.FullPlugin = {\n ...presetContext,\n assumptions: opts.assumptions ?? {},\n };\n\n yield* enhanceError(context, function* loadPluginDescriptors() {\n pluginDescriptorsByPass[0].unshift(...initialPluginsDescriptors);\n\n for (const descs of pluginDescriptorsByPass) {\n const pass: Plugin[] = [];\n passes.push(pass);\n\n for (let i = 0; i < descs.length; i++) {\n const descriptor = descs[i];\n // @ts-expect-error TODO: disallow false\n if (descriptor.options !== false) {\n try {\n // eslint-disable-next-line no-var\n var plugin = yield* loadPluginDescriptor(descriptor, pluginContext);\n } catch (e) {\n if (e.code === \"BABEL_UNKNOWN_PLUGIN_PROPERTY\") {\n // print special message for `plugins: [\"@babel/foo\", { foo: \"option\" }]`\n checkNoUnwrappedItemOptionPairs(descs, i, \"plugin\", e);\n }\n throw e;\n }\n pass.push(plugin);\n\n externalDependencies.push(plugin.externalDependencies);\n }\n }\n }\n })();\n\n opts.plugins = passes[0];\n opts.presets = passes\n .slice(1)\n .filter(plugins => plugins.length > 0)\n .map(plugins => ({ plugins }));\n opts.passPerPreset = opts.presets.length > 0;\n\n return {\n options: opts,\n passes: passes,\n externalDependencies: freezeDeepArray(externalDependencies),\n };\n});\n\nfunction enhanceError(context: ConfigContext, fn: T): T {\n return function* (arg1: unknown, arg2: unknown) {\n try {\n return yield* fn(arg1, arg2);\n } catch (e) {\n // There are a few case where thrown errors will try to annotate themselves multiple times, so\n // to keep things simple we just bail out if re-wrapping the message.\n if (!e.message.startsWith(\"[BABEL]\")) {\n e.message = `[BABEL] ${context.filename ?? \"unknown file\"}: ${\n e.message\n }`;\n }\n\n throw e;\n }\n } as any;\n}\n\n/**\n * Load a generic plugin/preset from the given descriptor loaded from the config object.\n */\nconst makeDescriptorLoader = (\n apiFactory: (\n cache: CacheConfigurator,\n externalDependencies: string[],\n ) => API,\n) =>\n makeWeakCache(function* (\n { value, options, dirname, alias }: UnloadedDescriptor,\n cache: CacheConfigurator,\n ): Handler {\n // Disabled presets should already have been filtered out\n // @ts-expect-error expected\n if (options === false) throw new Error(\"Assertion failure\");\n\n options = options || {};\n\n const externalDependencies: string[] = [];\n\n let item: unknown = value;\n if (typeof value === \"function\") {\n const factory = maybeAsync(\n value as (api: API, options: object, dirname: string) => unknown,\n `You appear to be using an async plugin/preset, but Babel has been called synchronously`,\n );\n\n const api = {\n ...context,\n ...apiFactory(cache, externalDependencies),\n };\n try {\n item = yield* factory(api, options, dirname);\n } catch (e) {\n if (alias) {\n e.message += ` (While processing: ${JSON.stringify(alias)})`;\n }\n throw e;\n }\n }\n\n if (!item || typeof item !== \"object\") {\n throw new Error(\"Plugin/Preset did not return an object.\");\n }\n\n if (isThenable(item)) {\n // if we want to support async plugins\n yield* [];\n\n throw new Error(\n `You appear to be using a promise as a plugin, ` +\n `which your current version of Babel does not support. ` +\n `If you're using a published plugin, ` +\n `you may need to upgrade your @babel/core version. ` +\n `As an alternative, you can prefix the promise with \"await\". ` +\n `(While processing: ${JSON.stringify(alias)})`,\n );\n }\n\n if (\n externalDependencies.length > 0 &&\n (!cache.configured() || cache.mode() === \"forever\")\n ) {\n let error =\n `A plugin/preset has external untracked dependencies ` +\n `(${externalDependencies[0]}), but the cache `;\n if (!cache.configured()) {\n error += `has not been configured to be invalidated when the external dependencies change. `;\n } else {\n error += ` has been configured to never be invalidated. `;\n }\n error +=\n `Plugins/presets should configure their cache to be invalidated when the external ` +\n `dependencies change, for example using \\`api.cache.invalidate(() => ` +\n `statSync(filepath).mtimeMs)\\` or \\`api.cache.never()\\`\\n` +\n `(While processing: ${JSON.stringify(alias)})`;\n\n throw new Error(error);\n }\n\n return {\n value: item,\n options,\n dirname,\n alias,\n externalDependencies: freezeDeepArray(externalDependencies),\n };\n });\n\nconst pluginDescriptorLoader = makeDescriptorLoader<\n Context.SimplePlugin,\n PluginAPI\n>(makePluginAPI);\nconst presetDescriptorLoader = makeDescriptorLoader<\n Context.SimplePreset,\n PresetAPI\n>(makePresetAPI);\n\nconst instantiatePlugin = makeWeakCache(function* (\n { value, options, dirname, alias, externalDependencies }: LoadedDescriptor,\n cache: CacheConfigurator,\n): Handler {\n const pluginObj = validatePluginObject(value);\n\n const plugin = {\n ...pluginObj,\n };\n if (plugin.visitor) {\n plugin.visitor = traverse.explode({\n ...plugin.visitor,\n });\n }\n\n if (plugin.inherits) {\n const inheritsDescriptor: UnloadedDescriptor = {\n name: undefined,\n alias: `${alias}$inherits`,\n value: plugin.inherits,\n options,\n dirname,\n };\n\n const inherits = yield* forwardAsync(loadPluginDescriptor, run => {\n // If the inherited plugin changes, reinstantiate this plugin.\n return cache.invalidate(data => run(inheritsDescriptor, data));\n });\n\n plugin.pre = chainMaybeAsync(inherits.pre, plugin.pre);\n plugin.post = chainMaybeAsync(inherits.post, plugin.post);\n plugin.manipulateOptions = chainMaybeAsync(\n inherits.manipulateOptions,\n plugin.manipulateOptions,\n );\n plugin.visitor = traverse.visitors.merge([\n inherits.visitor || {},\n plugin.visitor || {},\n ]);\n\n if (inherits.externalDependencies.length > 0) {\n if (externalDependencies.length === 0) {\n externalDependencies = inherits.externalDependencies;\n } else {\n externalDependencies = freezeDeepArray([\n externalDependencies,\n inherits.externalDependencies,\n ]);\n }\n }\n }\n\n return new Plugin(plugin, options, alias, externalDependencies);\n});\n\n/**\n * Instantiate a plugin for the given descriptor, returning the plugin/options pair.\n */\nfunction* loadPluginDescriptor(\n descriptor: UnloadedDescriptor,\n context: Context.SimplePlugin,\n): Handler {\n if (descriptor.value instanceof Plugin) {\n if (descriptor.options) {\n throw new Error(\n \"Passed options to an existing Plugin instance will not work.\",\n );\n }\n\n return descriptor.value;\n }\n\n return yield* instantiatePlugin(\n yield* pluginDescriptorLoader(descriptor, context),\n context,\n );\n}\n\nconst needsFilename = (val: unknown) => val && typeof val !== \"function\";\n\nconst validateIfOptionNeedsFilename = (\n options: InputOptions,\n descriptor: UnloadedDescriptor,\n): void => {\n if (\n needsFilename(options.test) ||\n needsFilename(options.include) ||\n needsFilename(options.exclude)\n ) {\n const formattedPresetName = descriptor.name\n ? `\"${descriptor.name}\"`\n : \"/* your preset */\";\n throw new ConfigError(\n [\n `Preset ${formattedPresetName} requires a filename to be set when babel is called directly,`,\n `\\`\\`\\``,\n `babel.transformSync(code, { filename: 'file.ts', presets: [${formattedPresetName}] });`,\n `\\`\\`\\``,\n `See https://babeljs.io/docs/en/options#filename for more information.`,\n ].join(\"\\n\"),\n );\n }\n};\n\nconst validatePreset = (\n preset: PresetInstance,\n context: ConfigContext,\n descriptor: UnloadedDescriptor,\n): void => {\n if (!context.filename) {\n const { options } = preset;\n validateIfOptionNeedsFilename(options, descriptor);\n options.overrides?.forEach(overrideOptions =>\n validateIfOptionNeedsFilename(overrideOptions, descriptor),\n );\n }\n};\n\nconst instantiatePreset = makeWeakCacheSync(\n ({\n value,\n dirname,\n alias,\n externalDependencies,\n }: LoadedDescriptor): PresetInstance => {\n return {\n options: validate(\"preset\", value),\n alias,\n dirname,\n externalDependencies,\n };\n },\n);\n\n/**\n * Generate a config object that will act as the root of a new nested config.\n */\nfunction* loadPresetDescriptor(\n descriptor: UnloadedDescriptor,\n context: Context.FullPreset,\n): Handler<{\n chain: ConfigChain | null;\n externalDependencies: ReadonlyDeepArray;\n}> {\n const preset = instantiatePreset(\n yield* presetDescriptorLoader(descriptor, context),\n );\n validatePreset(preset, context, descriptor);\n return {\n chain: yield* buildPresetChain(preset, context),\n externalDependencies: preset.externalDependencies,\n };\n}\n\nfunction chainMaybeAsync>(\n a: undefined | ((...args: Args) => R),\n b: undefined | ((...args: Args) => R),\n): (...args: Args) => R {\n if (!a) return b;\n if (!b) return a;\n\n return function (this: unknown, ...args: Args) {\n const res = a.apply(this, args);\n if (res && typeof res.then === \"function\") {\n return res.then(() => b.apply(this, args));\n }\n return b.apply(this, args);\n } as (...args: Args) => R;\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/core/lib/config/helpers/config-api.js b/server/api/node_modules/@babel/core/lib/config/helpers/config-api.js new file mode 100644 index 0000000..192ebcf --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/config/helpers/config-api.js @@ -0,0 +1,85 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.makeConfigAPI = makeConfigAPI; +exports.makePluginAPI = makePluginAPI; +exports.makePresetAPI = makePresetAPI; +function _semver() { + const data = require("semver"); + _semver = function () { + return data; + }; + return data; +} +var _index = require("../../index.js"); +var _caching = require("../caching.js"); +function makeConfigAPI(cache) { + const env = value => cache.using(data => { + if (value === undefined) return data.envName; + if (typeof value === "function") { + return (0, _caching.assertSimpleType)(value(data.envName)); + } + return (Array.isArray(value) ? value : [value]).some(entry => { + if (typeof entry !== "string") { + throw new Error("Unexpected non-string value"); + } + return entry === data.envName; + }); + }); + const caller = cb => cache.using(data => (0, _caching.assertSimpleType)(cb(data.caller))); + return { + version: _index.version, + cache: cache.simple(), + env, + async: () => false, + caller, + assertVersion + }; +} +function makePresetAPI(cache, externalDependencies) { + const targets = () => JSON.parse(cache.using(data => JSON.stringify(data.targets))); + const addExternalDependency = ref => { + externalDependencies.push(ref); + }; + return Object.assign({}, makeConfigAPI(cache), { + targets, + addExternalDependency + }); +} +function makePluginAPI(cache, externalDependencies) { + const assumption = name => cache.using(data => data.assumptions[name]); + return Object.assign({}, makePresetAPI(cache, externalDependencies), { + assumption + }); +} +function assertVersion(range) { + if (typeof range === "number") { + if (!Number.isInteger(range)) { + throw new Error("Expected string or integer value."); + } + range = `^${range}.0.0-0`; + } + if (typeof range !== "string") { + throw new Error("Expected string or integer value."); + } + if (range === "*" || _semver().satisfies(_index.version, range)) return; + const message = `Requires Babel "${range}", but was loaded with "${_index.version}". ` + `If you are sure you have a compatible version of @babel/core, ` + `it is likely that something in your build process is loading the ` + `wrong version. Inspect the stack trace of this error to look for ` + `the first entry that doesn't mention "@babel/core" or "babel-core" ` + `to see what is calling Babel.`; + const limit = Error.stackTraceLimit; + if (typeof limit === "number" && limit < 25) { + Error.stackTraceLimit = 25; + } + const err = new Error(message); + if (typeof limit === "number") { + Error.stackTraceLimit = limit; + } + throw Object.assign(err, { + code: "BABEL_VERSION_UNSUPPORTED", + version: _index.version, + range + }); +} +0 && 0; + +//# sourceMappingURL=config-api.js.map diff --git a/server/api/node_modules/@babel/core/lib/config/helpers/config-api.js.map b/server/api/node_modules/@babel/core/lib/config/helpers/config-api.js.map new file mode 100644 index 0000000..b88d9f7 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/config/helpers/config-api.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_semver","data","require","_index","_caching","makeConfigAPI","cache","env","value","using","undefined","envName","assertSimpleType","Array","isArray","some","entry","Error","caller","cb","version","coreVersion","simple","async","assertVersion","makePresetAPI","externalDependencies","targets","JSON","parse","stringify","addExternalDependency","ref","push","Object","assign","makePluginAPI","assumption","name","assumptions","range","Number","isInteger","semver","satisfies","message","limit","stackTraceLimit","err","code"],"sources":["../../../src/config/helpers/config-api.ts"],"sourcesContent":["import semver from \"semver\";\nimport type { Targets } from \"@babel/helper-compilation-targets\";\n\nimport { version as coreVersion } from \"../../index.ts\";\nimport { assertSimpleType } from \"../caching.ts\";\nimport type {\n CacheConfigurator,\n SimpleCacheConfigurator,\n SimpleType,\n} from \"../caching.ts\";\n\nimport type {\n AssumptionName,\n CallerMetadata,\n InputOptions,\n} from \"../validation/options.ts\";\n\nimport type * as Context from \"../cache-contexts\";\n\ntype EnvName = NonNullable;\ntype EnvFunction = {\n (): string;\n (extractor: (envName: EnvName) => T): T;\n (envVar: string): boolean;\n (envVars: string[]): boolean;\n};\n\ntype CallerFactory = {\n (\n extractor: (callerMetadata: CallerMetadata | undefined) => T,\n ): T;\n (\n extractor: (callerMetadata: CallerMetadata | undefined) => unknown,\n ): SimpleType;\n};\ntype TargetsFunction = () => Targets;\ntype AssumptionFunction = (name: AssumptionName) => boolean | undefined;\n\nexport type ConfigAPI = {\n version: string;\n cache: SimpleCacheConfigurator;\n env: EnvFunction;\n async: () => boolean;\n assertVersion: typeof assertVersion;\n caller?: CallerFactory;\n};\n\nexport type PresetAPI = {\n targets: TargetsFunction;\n addExternalDependency: (ref: string) => void;\n} & ConfigAPI;\n\nexport type PluginAPI = {\n assumption: AssumptionFunction;\n} & PresetAPI;\n\nexport function makeConfigAPI(\n cache: CacheConfigurator,\n): ConfigAPI {\n // TODO(@nicolo-ribaudo): If we remove the explicit type from `value`\n // and the `as any` type cast, TypeScript crashes in an infinite\n // recursion. After upgrading to TS4.7 and finishing the noImplicitAny\n // PR, we should check if it still crashes and report it to the TS team.\n const env: EnvFunction = ((\n value: string | string[] | ((babelEnv: string) => T),\n ) =>\n cache.using(data => {\n if (value === undefined) return data.envName;\n if (typeof value === \"function\") {\n return assertSimpleType(value(data.envName));\n }\n return (Array.isArray(value) ? value : [value]).some(entry => {\n if (typeof entry !== \"string\") {\n throw new Error(\"Unexpected non-string value\");\n }\n return entry === data.envName;\n });\n })) as any;\n\n const caller = (\n cb: (CallerMetadata: CallerMetadata | undefined) => SimpleType,\n ) => cache.using(data => assertSimpleType(cb(data.caller)));\n\n return {\n version: coreVersion,\n cache: cache.simple(),\n // Expose \".env()\" so people can easily get the same env that we expose using the \"env\" key.\n env,\n async: () => false,\n caller,\n assertVersion,\n };\n}\n\nexport function makePresetAPI(\n cache: CacheConfigurator,\n externalDependencies: string[],\n): PresetAPI {\n const targets = () =>\n // We are using JSON.parse/JSON.stringify because it's only possible to cache\n // primitive values. We can safely stringify the targets object because it\n // only contains strings as its properties.\n // Please make the Record and Tuple proposal happen!\n JSON.parse(cache.using(data => JSON.stringify(data.targets)));\n\n const addExternalDependency = (ref: string) => {\n externalDependencies.push(ref);\n };\n\n return { ...makeConfigAPI(cache), targets, addExternalDependency };\n}\n\nexport function makePluginAPI(\n cache: CacheConfigurator,\n externalDependencies: string[],\n): PluginAPI {\n const assumption = (name: string) =>\n cache.using(data => data.assumptions[name]);\n\n return { ...makePresetAPI(cache, externalDependencies), assumption };\n}\n\nfunction assertVersion(range: string | number): void {\n if (typeof range === \"number\") {\n if (!Number.isInteger(range)) {\n throw new Error(\"Expected string or integer value.\");\n }\n range = `^${range}.0.0-0`;\n }\n if (typeof range !== \"string\") {\n throw new Error(\"Expected string or integer value.\");\n }\n\n // We want \"*\" to also allow any pre-release, but we do not pass\n // the includePrerelease option to semver.satisfies because we\n // do not want ^7.0.0 to match 8.0.0-alpha.1.\n if (range === \"*\" || semver.satisfies(coreVersion, range)) return;\n\n const message =\n `Requires Babel \"${range}\", but was loaded with \"${coreVersion}\". ` +\n `If you are sure you have a compatible version of @babel/core, ` +\n `it is likely that something in your build process is loading the ` +\n `wrong version. Inspect the stack trace of this error to look for ` +\n `the first entry that doesn't mention \"@babel/core\" or \"babel-core\" ` +\n `to see what is calling Babel.`;\n\n if (\n typeof process !== \"undefined\" &&\n process.env.BABEL_8_BREAKING &&\n process.env.BABEL_7_TO_8_DANGEROUSLY_DISABLE_VERSION_CHECK\n ) {\n console.warn(message);\n return;\n }\n\n const limit = Error.stackTraceLimit;\n\n if (typeof limit === \"number\" && limit < 25) {\n // Bump up the limit if needed so that users are more likely\n // to be able to see what is calling Babel.\n Error.stackTraceLimit = 25;\n }\n\n const err = new Error(message);\n\n if (typeof limit === \"number\") {\n Error.stackTraceLimit = limit;\n }\n\n throw Object.assign(err, {\n code: \"BABEL_VERSION_UNSUPPORTED\",\n version: coreVersion,\n range,\n });\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/core/lib/config/helpers/deep-array.js b/server/api/node_modules/@babel/core/lib/config/helpers/deep-array.js new file mode 100644 index 0000000..c611db2 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/config/helpers/deep-array.js @@ -0,0 +1,23 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.finalize = finalize; +exports.flattenToSet = flattenToSet; +function finalize(deepArr) { + return Object.freeze(deepArr); +} +function flattenToSet(arr) { + const result = new Set(); + const stack = [arr]; + while (stack.length > 0) { + for (const el of stack.pop()) { + if (Array.isArray(el)) stack.push(el);else result.add(el); + } + } + return result; +} +0 && 0; + +//# sourceMappingURL=deep-array.js.map diff --git a/server/api/node_modules/@babel/core/lib/config/helpers/deep-array.js.map b/server/api/node_modules/@babel/core/lib/config/helpers/deep-array.js.map new file mode 100644 index 0000000..57239da --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/config/helpers/deep-array.js.map @@ -0,0 +1 @@ +{"version":3,"names":["finalize","deepArr","Object","freeze","flattenToSet","arr","result","Set","stack","length","el","pop","Array","isArray","push","add"],"sources":["../../../src/config/helpers/deep-array.ts"],"sourcesContent":["export type DeepArray = (T | ReadonlyDeepArray)[];\n\n// Just to make sure that DeepArray is not assignable to ReadonlyDeepArray\ndeclare const __marker: unique symbol;\nexport type ReadonlyDeepArray = readonly (T | ReadonlyDeepArray)[] & {\n [__marker]: true;\n};\n\nexport function finalize(deepArr: DeepArray): ReadonlyDeepArray {\n return Object.freeze(deepArr) as ReadonlyDeepArray;\n}\n\nexport function flattenToSet(\n arr: ReadonlyDeepArray,\n): Set {\n const result = new Set();\n const stack = [arr];\n while (stack.length > 0) {\n for (const el of stack.pop()) {\n if (Array.isArray(el)) stack.push(el as ReadonlyDeepArray);\n else result.add(el as T);\n }\n }\n return result;\n}\n"],"mappings":";;;;;;;AAQO,SAASA,QAAQA,CAAIC,OAAqB,EAAwB;EACvE,OAAOC,MAAM,CAACC,MAAM,CAACF,OAAO,CAAC;AAC/B;AAEO,SAASG,YAAYA,CAC1BC,GAAyB,EACjB;EACR,MAAMC,MAAM,GAAG,IAAIC,GAAG,CAAI,CAAC;EAC3B,MAAMC,KAAK,GAAG,CAACH,GAAG,CAAC;EACnB,OAAOG,KAAK,CAACC,MAAM,GAAG,CAAC,EAAE;IACvB,KAAK,MAAMC,EAAE,IAAIF,KAAK,CAACG,GAAG,CAAC,CAAC,EAAE;MAC5B,IAAIC,KAAK,CAACC,OAAO,CAACH,EAAE,CAAC,EAAEF,KAAK,CAACM,IAAI,CAACJ,EAA0B,CAAC,CAAC,KACzDJ,MAAM,CAACS,GAAG,CAACL,EAAO,CAAC;IAC1B;EACF;EACA,OAAOJ,MAAM;AACf;AAAC","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/core/lib/config/helpers/environment.js b/server/api/node_modules/@babel/core/lib/config/helpers/environment.js new file mode 100644 index 0000000..a23b80b --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/config/helpers/environment.js @@ -0,0 +1,12 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.getEnv = getEnv; +function getEnv(defaultValue = "development") { + return process.env.BABEL_ENV || process.env.NODE_ENV || defaultValue; +} +0 && 0; + +//# sourceMappingURL=environment.js.map diff --git a/server/api/node_modules/@babel/core/lib/config/helpers/environment.js.map b/server/api/node_modules/@babel/core/lib/config/helpers/environment.js.map new file mode 100644 index 0000000..c34fc17 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/config/helpers/environment.js.map @@ -0,0 +1 @@ +{"version":3,"names":["getEnv","defaultValue","process","env","BABEL_ENV","NODE_ENV"],"sources":["../../../src/config/helpers/environment.ts"],"sourcesContent":["export function getEnv(defaultValue: string = \"development\"): string {\n return process.env.BABEL_ENV || process.env.NODE_ENV || defaultValue;\n}\n"],"mappings":";;;;;;AAAO,SAASA,MAAMA,CAACC,YAAoB,GAAG,aAAa,EAAU;EACnE,OAAOC,OAAO,CAACC,GAAG,CAACC,SAAS,IAAIF,OAAO,CAACC,GAAG,CAACE,QAAQ,IAAIJ,YAAY;AACtE;AAAC","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/core/lib/config/index.js b/server/api/node_modules/@babel/core/lib/config/index.js new file mode 100644 index 0000000..cebfe23 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/config/index.js @@ -0,0 +1,87 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.createConfigItem = createConfigItem; +exports.createConfigItemAsync = createConfigItemAsync; +exports.createConfigItemSync = createConfigItemSync; +Object.defineProperty(exports, "default", { + enumerable: true, + get: function () { + return _full.default; + } +}); +exports.loadOptions = loadOptions; +exports.loadOptionsAsync = loadOptionsAsync; +exports.loadOptionsSync = loadOptionsSync; +exports.loadPartialConfig = loadPartialConfig; +exports.loadPartialConfigAsync = loadPartialConfigAsync; +exports.loadPartialConfigSync = loadPartialConfigSync; +function _gensync() { + const data = require("gensync"); + _gensync = function () { + return data; + }; + return data; +} +var _full = require("./full.js"); +var _partial = require("./partial.js"); +var _item = require("./item.js"); +var _rewriteStackTrace = require("../errors/rewrite-stack-trace.js"); +const loadPartialConfigRunner = _gensync()(_partial.loadPartialConfig); +function loadPartialConfigAsync(...args) { + return (0, _rewriteStackTrace.beginHiddenCallStack)(loadPartialConfigRunner.async)(...args); +} +function loadPartialConfigSync(...args) { + return (0, _rewriteStackTrace.beginHiddenCallStack)(loadPartialConfigRunner.sync)(...args); +} +function loadPartialConfig(opts, callback) { + if (callback !== undefined) { + (0, _rewriteStackTrace.beginHiddenCallStack)(loadPartialConfigRunner.errback)(opts, callback); + } else if (typeof opts === "function") { + (0, _rewriteStackTrace.beginHiddenCallStack)(loadPartialConfigRunner.errback)(undefined, opts); + } else { + return loadPartialConfigSync(opts); + } +} +function* loadOptionsImpl(opts) { + var _config$options; + const config = yield* (0, _full.default)(opts); + return (_config$options = config == null ? void 0 : config.options) != null ? _config$options : null; +} +const loadOptionsRunner = _gensync()(loadOptionsImpl); +function loadOptionsAsync(...args) { + return (0, _rewriteStackTrace.beginHiddenCallStack)(loadOptionsRunner.async)(...args); +} +function loadOptionsSync(...args) { + return (0, _rewriteStackTrace.beginHiddenCallStack)(loadOptionsRunner.sync)(...args); +} +function loadOptions(opts, callback) { + if (callback !== undefined) { + (0, _rewriteStackTrace.beginHiddenCallStack)(loadOptionsRunner.errback)(opts, callback); + } else if (typeof opts === "function") { + (0, _rewriteStackTrace.beginHiddenCallStack)(loadOptionsRunner.errback)(undefined, opts); + } else { + return loadOptionsSync(opts); + } +} +const createConfigItemRunner = _gensync()(_item.createConfigItem); +function createConfigItemAsync(...args) { + return (0, _rewriteStackTrace.beginHiddenCallStack)(createConfigItemRunner.async)(...args); +} +function createConfigItemSync(...args) { + return (0, _rewriteStackTrace.beginHiddenCallStack)(createConfigItemRunner.sync)(...args); +} +function createConfigItem(target, options, callback) { + if (callback !== undefined) { + (0, _rewriteStackTrace.beginHiddenCallStack)(createConfigItemRunner.errback)(target, options, callback); + } else if (typeof options === "function") { + (0, _rewriteStackTrace.beginHiddenCallStack)(createConfigItemRunner.errback)(target, undefined, callback); + } else { + return createConfigItemSync(target, options); + } +} +0 && 0; + +//# sourceMappingURL=index.js.map diff --git a/server/api/node_modules/@babel/core/lib/config/index.js.map b/server/api/node_modules/@babel/core/lib/config/index.js.map new file mode 100644 index 0000000..32f94ed --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/config/index.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_gensync","data","require","_full","_partial","_item","_rewriteStackTrace","loadPartialConfigRunner","gensync","loadPartialConfigImpl","loadPartialConfigAsync","args","beginHiddenCallStack","async","loadPartialConfigSync","sync","loadPartialConfig","opts","callback","undefined","errback","loadOptionsImpl","_config$options","config","loadFullConfig","options","loadOptionsRunner","loadOptionsAsync","loadOptionsSync","loadOptions","createConfigItemRunner","createConfigItemImpl","createConfigItemAsync","createConfigItemSync","createConfigItem","target"],"sources":["../../src/config/index.ts"],"sourcesContent":["import gensync, { type Handler } from \"gensync\";\n\nexport type {\n ResolvedConfig,\n InputOptions,\n PluginPasses,\n Plugin,\n} from \"./full.ts\";\n\nimport type {\n InputOptions,\n PluginTarget,\n ResolvedOptions,\n} from \"./validation/options.ts\";\nexport type { ConfigAPI } from \"./helpers/config-api.ts\";\nimport type {\n PluginAPI as basePluginAPI,\n PresetAPI as basePresetAPI,\n} from \"./helpers/config-api.ts\";\nexport type { PluginObject } from \"./validation/plugins.ts\";\ntype PluginAPI = basePluginAPI & typeof import(\"..\");\ntype PresetAPI = basePresetAPI & typeof import(\"..\");\nexport type { PluginAPI, PresetAPI };\nexport type {\n CallerMetadata,\n NormalizedOptions,\n} from \"./validation/options.ts\";\n\nimport loadFullConfig from \"./full.ts\";\nimport {\n type PartialConfig,\n loadPartialConfig as loadPartialConfigImpl,\n} from \"./partial.ts\";\n\nexport { loadFullConfig as default };\nexport type { PartialConfig } from \"./partial.ts\";\n\nimport { createConfigItem as createConfigItemImpl } from \"./item.ts\";\nimport type { ConfigItem } from \"./item.ts\";\nexport type { ConfigItem };\n\nimport { beginHiddenCallStack } from \"../errors/rewrite-stack-trace.ts\";\n\nconst loadPartialConfigRunner = gensync(loadPartialConfigImpl);\nexport function loadPartialConfigAsync(\n ...args: Parameters\n) {\n return beginHiddenCallStack(loadPartialConfigRunner.async)(...args);\n}\nexport function loadPartialConfigSync(\n ...args: Parameters\n) {\n return beginHiddenCallStack(loadPartialConfigRunner.sync)(...args);\n}\nexport function loadPartialConfig(\n opts: Parameters[0],\n callback?: (err: Error, val: PartialConfig | null) => void,\n) {\n if (callback !== undefined) {\n beginHiddenCallStack(loadPartialConfigRunner.errback)(opts, callback);\n } else if (typeof opts === \"function\") {\n beginHiddenCallStack(loadPartialConfigRunner.errback)(\n undefined,\n opts as (err: Error, val: PartialConfig | null) => void,\n );\n } else {\n if (process.env.BABEL_8_BREAKING) {\n throw new Error(\n \"Starting from Babel 8.0.0, the 'loadPartialConfig' function expects a callback. If you need to call it synchronously, please use 'loadPartialConfigSync'.\",\n );\n } else {\n return loadPartialConfigSync(opts);\n }\n }\n}\n\nfunction* loadOptionsImpl(opts: InputOptions): Handler {\n const config = yield* loadFullConfig(opts);\n // NOTE: We want to return \"null\" explicitly, while ?. alone returns undefined\n return config?.options ?? null;\n}\nconst loadOptionsRunner = gensync(loadOptionsImpl);\nexport function loadOptionsAsync(\n ...args: Parameters\n) {\n return beginHiddenCallStack(loadOptionsRunner.async)(...args);\n}\nexport function loadOptionsSync(\n ...args: Parameters\n) {\n return beginHiddenCallStack(loadOptionsRunner.sync)(...args);\n}\nexport function loadOptions(\n opts: Parameters[0],\n callback?: (err: Error, val: ResolvedOptions | null) => void,\n) {\n if (callback !== undefined) {\n beginHiddenCallStack(loadOptionsRunner.errback)(opts, callback);\n } else if (typeof opts === \"function\") {\n beginHiddenCallStack(loadOptionsRunner.errback)(\n undefined,\n opts as (err: Error, val: ResolvedOptions | null) => void,\n );\n } else {\n if (process.env.BABEL_8_BREAKING) {\n throw new Error(\n \"Starting from Babel 8.0.0, the 'loadOptions' function expects a callback. If you need to call it synchronously, please use 'loadOptionsSync'.\",\n );\n } else {\n return loadOptionsSync(opts);\n }\n }\n}\n\nconst createConfigItemRunner = gensync(createConfigItemImpl);\nexport function createConfigItemAsync(\n ...args: Parameters\n) {\n return beginHiddenCallStack(createConfigItemRunner.async)(...args);\n}\nexport function createConfigItemSync(\n ...args: Parameters\n) {\n return beginHiddenCallStack(createConfigItemRunner.sync)(...args);\n}\nexport function createConfigItem(\n target: PluginTarget,\n options: Parameters[1],\n callback?: (err: Error, val: ConfigItem | null) => void,\n) {\n if (callback !== undefined) {\n beginHiddenCallStack(createConfigItemRunner.errback)(\n target,\n options,\n callback,\n );\n } else if (typeof options === \"function\") {\n beginHiddenCallStack(createConfigItemRunner.errback)(\n target,\n undefined,\n callback,\n );\n } else {\n if (process.env.BABEL_8_BREAKING) {\n throw new Error(\n \"Starting from Babel 8.0.0, the 'createConfigItem' function expects a callback. If you need to call it synchronously, please use 'createConfigItemSync'.\",\n );\n } else {\n return createConfigItemSync(target, options);\n }\n }\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/core/lib/config/item.js b/server/api/node_modules/@babel/core/lib/config/item.js new file mode 100644 index 0000000..69cf01f --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/config/item.js @@ -0,0 +1,67 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.createConfigItem = createConfigItem; +exports.createItemFromDescriptor = createItemFromDescriptor; +exports.getItemDescriptor = getItemDescriptor; +function _path() { + const data = require("path"); + _path = function () { + return data; + }; + return data; +} +var _configDescriptors = require("./config-descriptors.js"); +function createItemFromDescriptor(desc) { + return new ConfigItem(desc); +} +function* createConfigItem(value, { + dirname = ".", + type +} = {}) { + const descriptor = yield* (0, _configDescriptors.createDescriptor)(value, _path().resolve(dirname), { + type, + alias: "programmatic item" + }); + return createItemFromDescriptor(descriptor); +} +const CONFIG_ITEM_BRAND = Symbol.for("@babel/core@7 - ConfigItem"); +function getItemDescriptor(item) { + if (item != null && item[CONFIG_ITEM_BRAND]) { + return item._descriptor; + } + return undefined; +} +class ConfigItem { + constructor(descriptor) { + this._descriptor = void 0; + this[CONFIG_ITEM_BRAND] = true; + this.value = void 0; + this.options = void 0; + this.dirname = void 0; + this.name = void 0; + this.file = void 0; + this._descriptor = descriptor; + Object.defineProperty(this, "_descriptor", { + enumerable: false + }); + Object.defineProperty(this, CONFIG_ITEM_BRAND, { + enumerable: false + }); + this.value = this._descriptor.value; + this.options = this._descriptor.options; + this.dirname = this._descriptor.dirname; + this.name = this._descriptor.name; + this.file = this._descriptor.file ? { + request: this._descriptor.file.request, + resolved: this._descriptor.file.resolved + } : undefined; + Object.freeze(this); + } +} +Object.freeze(ConfigItem.prototype); +0 && 0; + +//# sourceMappingURL=item.js.map diff --git a/server/api/node_modules/@babel/core/lib/config/item.js.map b/server/api/node_modules/@babel/core/lib/config/item.js.map new file mode 100644 index 0000000..6bdc806 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/config/item.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_path","data","require","_configDescriptors","createItemFromDescriptor","desc","ConfigItem","createConfigItem","value","dirname","type","descriptor","createDescriptor","path","resolve","alias","CONFIG_ITEM_BRAND","Symbol","for","getItemDescriptor","item","_descriptor","undefined","constructor","options","name","file","Object","defineProperty","enumerable","request","resolved","freeze","prototype"],"sources":["../../src/config/item.ts"],"sourcesContent":["import type { Handler } from \"gensync\";\nimport type { PluginItem, PresetItem } from \"./validation/options.ts\";\n\nimport path from \"node:path\";\nimport { createDescriptor } from \"./config-descriptors.ts\";\n\nimport type { UnloadedDescriptor } from \"./config-descriptors.ts\";\n\nexport function createItemFromDescriptor(\n desc: UnloadedDescriptor,\n): ConfigItem {\n return new ConfigItem(desc);\n}\n\n/**\n * Create a config item using the same value format used in Babel's config\n * files. Items returned from this function should be cached by the caller\n * ideally, as recreating the config item will mean re-resolving the item\n * and re-evaluating the plugin/preset function.\n */\nexport function* createConfigItem(\n value: PluginItem | PresetItem,\n {\n dirname = \".\",\n type,\n }: {\n dirname?: string;\n type?: \"preset\" | \"plugin\";\n } = {},\n): Handler> {\n const descriptor = yield* createDescriptor(value, path.resolve(dirname), {\n type,\n alias: \"programmatic item\",\n });\n\n return createItemFromDescriptor(descriptor);\n}\n\nconst CONFIG_ITEM_BRAND = Symbol.for(\"@babel/core@7 - ConfigItem\");\n\nexport function getItemDescriptor(\n item: unknown,\n): UnloadedDescriptor | void {\n if ((item as any)?.[CONFIG_ITEM_BRAND]) {\n return (item as ConfigItem)._descriptor;\n }\n\n return undefined;\n}\n\nexport type { ConfigItem };\n\n/**\n * A public representation of a plugin/preset that will _eventually_ be load.\n * Users can use this to interact with the results of a loaded Babel\n * configuration.\n *\n * Any changes to public properties of this class should be considered a\n * breaking change to Babel's API.\n */\nclass ConfigItem {\n /**\n * The private underlying descriptor that Babel actually cares about.\n * If you access this, you are a bad person.\n */\n _descriptor: UnloadedDescriptor;\n\n // TODO(Babel 9): Check if this symbol needs to be updated\n /**\n * Used to detect ConfigItem instances from other Babel instances.\n */\n [CONFIG_ITEM_BRAND] = true;\n\n /**\n * The resolved value of the item itself.\n */\n value: object | Function;\n\n /**\n * The options, if any, that were passed to the item.\n * Mutating this will lead to undefined behavior.\n *\n * \"false\" means that this item has been disabled.\n */\n options: object | void | false;\n\n /**\n * The directory that the options for this item are relative to.\n */\n dirname: string;\n\n /**\n * Get the name of the plugin, if the user gave it one.\n */\n name: string | void;\n\n /**\n * Data about the file that the item was loaded from, if Babel knows it.\n */\n file: {\n // The requested path, e.g. \"@babel/env\".\n request: string;\n // The resolved absolute path of the file.\n resolved: string;\n } | void;\n\n constructor(descriptor: UnloadedDescriptor) {\n // Make people less likely to stumble onto this if they are exploring\n // programmatically, and also make sure that if people happen to\n // pass the item through JSON.stringify, it doesn't show up.\n this._descriptor = descriptor;\n Object.defineProperty(this, \"_descriptor\", { enumerable: false });\n\n Object.defineProperty(this, CONFIG_ITEM_BRAND, { enumerable: false });\n\n this.value = this._descriptor.value;\n this.options = this._descriptor.options;\n this.dirname = this._descriptor.dirname;\n this.name = this._descriptor.name;\n this.file = this._descriptor.file\n ? {\n request: this._descriptor.file.request,\n resolved: this._descriptor.file.resolved,\n }\n : undefined;\n\n // Freeze the object to make it clear that people shouldn't expect mutating\n // this object to do anything. A new item should be created if they want\n // to change something.\n Object.freeze(this);\n }\n}\n\nObject.freeze(ConfigItem.prototype);\n"],"mappings":";;;;;;;;AAGA,SAAAA,MAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,KAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,IAAAE,kBAAA,GAAAD,OAAA;AAIO,SAASE,wBAAwBA,CACtCC,IAA6B,EACZ;EACjB,OAAO,IAAIC,UAAU,CAACD,IAAI,CAAC;AAC7B;AAQO,UAAUE,gBAAgBA,CAC/BC,KAA8B,EAC9B;EACEC,OAAO,GAAG,GAAG;EACbC;AAIF,CAAC,GAAG,CAAC,CAAC,EACoB;EAC1B,MAAMC,UAAU,GAAG,OAAO,IAAAC,mCAAgB,EAACJ,KAAK,EAAEK,MAAGA,CAAC,CAACC,OAAO,CAACL,OAAO,CAAC,EAAE;IACvEC,IAAI;IACJK,KAAK,EAAE;EACT,CAAC,CAAC;EAEF,OAAOX,wBAAwB,CAACO,UAAU,CAAC;AAC7C;AAEA,MAAMK,iBAAiB,GAAGC,MAAM,CAACC,GAAG,CAAC,4BAA4B,CAAC;AAE3D,SAASC,iBAAiBA,CAC/BC,IAAa,EACmB;EAChC,IAAKA,IAAI,YAAJA,IAAI,CAAWJ,iBAAiB,CAAC,EAAE;IACtC,OAAQI,IAAI,CAAqBC,WAAW;EAC9C;EAEA,OAAOC,SAAS;AAClB;AAYA,MAAMhB,UAAU,CAAM;EA8CpBiB,WAAWA,CAACZ,UAAmC,EAAE;IAAA,KAzCjDU,WAAW;IAAA,KAMVL,iBAAiB,IAAI,IAAI;IAAA,KAK1BR,KAAK;IAAA,KAQLgB,OAAO;IAAA,KAKPf,OAAO;IAAA,KAKPgB,IAAI;IAAA,KAKJC,IAAI;IAWF,IAAI,CAACL,WAAW,GAAGV,UAAU;IAC7BgB,MAAM,CAACC,cAAc,CAAC,IAAI,EAAE,aAAa,EAAE;MAAEC,UAAU,EAAE;IAAM,CAAC,CAAC;IAEjEF,MAAM,CAACC,cAAc,CAAC,IAAI,EAAEZ,iBAAiB,EAAE;MAAEa,UAAU,EAAE;IAAM,CAAC,CAAC;IAErE,IAAI,CAACrB,KAAK,GAAG,IAAI,CAACa,WAAW,CAACb,KAAK;IACnC,IAAI,CAACgB,OAAO,GAAG,IAAI,CAACH,WAAW,CAACG,OAAO;IACvC,IAAI,CAACf,OAAO,GAAG,IAAI,CAACY,WAAW,CAACZ,OAAO;IACvC,IAAI,CAACgB,IAAI,GAAG,IAAI,CAACJ,WAAW,CAACI,IAAI;IACjC,IAAI,CAACC,IAAI,GAAG,IAAI,CAACL,WAAW,CAACK,IAAI,GAC7B;MACEI,OAAO,EAAE,IAAI,CAACT,WAAW,CAACK,IAAI,CAACI,OAAO;MACtCC,QAAQ,EAAE,IAAI,CAACV,WAAW,CAACK,IAAI,CAACK;IAClC,CAAC,GACDT,SAAS;IAKbK,MAAM,CAACK,MAAM,CAAC,IAAI,CAAC;EACrB;AACF;AAEAL,MAAM,CAACK,MAAM,CAAC1B,UAAU,CAAC2B,SAAS,CAAC;AAAC","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/core/lib/config/partial.js b/server/api/node_modules/@babel/core/lib/config/partial.js new file mode 100644 index 0000000..a5a2f65 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/config/partial.js @@ -0,0 +1,158 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = loadPrivatePartialConfig; +exports.loadPartialConfig = loadPartialConfig; +function _path() { + const data = require("path"); + _path = function () { + return data; + }; + return data; +} +var _plugin = require("./plugin.js"); +var _util = require("./util.js"); +var _item = require("./item.js"); +var _configChain = require("./config-chain.js"); +var _environment = require("./helpers/environment.js"); +var _options = require("./validation/options.js"); +var _index = require("./files/index.js"); +var _resolveTargets = require("./resolve-targets.js"); +const _excluded = ["showIgnoredFiles"]; +function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; } +function resolveRootMode(rootDir, rootMode) { + switch (rootMode) { + case "root": + return rootDir; + case "upward-optional": + { + const upwardRootDir = (0, _index.findConfigUpwards)(rootDir); + return upwardRootDir === null ? rootDir : upwardRootDir; + } + case "upward": + { + const upwardRootDir = (0, _index.findConfigUpwards)(rootDir); + if (upwardRootDir !== null) return upwardRootDir; + throw Object.assign(new Error(`Babel was run with rootMode:"upward" but a root could not ` + `be found when searching upward from "${rootDir}".\n` + `One of the following config files must be in the directory tree: ` + `"${_index.ROOT_CONFIG_FILENAMES.join(", ")}".`), { + code: "BABEL_ROOT_NOT_FOUND", + dirname: rootDir + }); + } + default: + throw new Error(`Assertion failure - unknown rootMode value.`); + } +} +function* loadPrivatePartialConfig(inputOpts) { + if (inputOpts != null && (typeof inputOpts !== "object" || Array.isArray(inputOpts))) { + throw new Error("Babel options must be an object, null, or undefined"); + } + const args = inputOpts ? (0, _options.validate)("arguments", inputOpts) : {}; + const { + envName = (0, _environment.getEnv)(), + cwd = ".", + root: rootDir = ".", + rootMode = "root", + caller, + cloneInputAst = true + } = args; + const absoluteCwd = _path().resolve(cwd); + const absoluteRootDir = resolveRootMode(_path().resolve(absoluteCwd, rootDir), rootMode); + const filename = typeof args.filename === "string" ? _path().resolve(cwd, args.filename) : undefined; + const showConfigPath = yield* (0, _index.resolveShowConfigPath)(absoluteCwd); + const context = { + filename, + cwd: absoluteCwd, + root: absoluteRootDir, + envName, + caller, + showConfig: showConfigPath === filename + }; + const configChain = yield* (0, _configChain.buildRootChain)(args, context); + if (!configChain) return null; + const merged = { + assumptions: {} + }; + configChain.options.forEach(opts => { + (0, _util.mergeOptions)(merged, opts); + }); + const options = Object.assign({}, merged, { + targets: (0, _resolveTargets.resolveTargets)(merged, absoluteRootDir), + cloneInputAst, + babelrc: false, + configFile: false, + browserslistConfigFile: false, + passPerPreset: false, + envName: context.envName, + cwd: context.cwd, + root: context.root, + rootMode: "root", + filename: typeof context.filename === "string" ? context.filename : undefined, + plugins: configChain.plugins.map(descriptor => (0, _item.createItemFromDescriptor)(descriptor)), + presets: configChain.presets.map(descriptor => (0, _item.createItemFromDescriptor)(descriptor)) + }); + return { + options, + context, + fileHandling: configChain.fileHandling, + ignore: configChain.ignore, + babelrc: configChain.babelrc, + config: configChain.config, + files: configChain.files + }; +} +function* loadPartialConfig(opts) { + let showIgnoredFiles = false; + if (typeof opts === "object" && opts !== null && !Array.isArray(opts)) { + var _opts = opts; + ({ + showIgnoredFiles + } = _opts); + opts = _objectWithoutPropertiesLoose(_opts, _excluded); + _opts; + } + const result = yield* loadPrivatePartialConfig(opts); + if (!result) return null; + const { + options, + babelrc, + ignore, + config, + fileHandling, + files + } = result; + if (fileHandling === "ignored" && !showIgnoredFiles) { + return null; + } + (options.plugins || []).forEach(item => { + if (item.value instanceof _plugin.default) { + throw new Error("Passing cached plugin instances is not supported in " + "babel.loadPartialConfig()"); + } + }); + return new PartialConfig(options, babelrc ? babelrc.filepath : undefined, ignore ? ignore.filepath : undefined, config ? config.filepath : undefined, fileHandling, files); +} +class PartialConfig { + constructor(options, babelrc, ignore, config, fileHandling, files) { + this.options = void 0; + this.babelrc = void 0; + this.babelignore = void 0; + this.config = void 0; + this.fileHandling = void 0; + this.files = void 0; + this.options = options; + this.babelignore = ignore; + this.babelrc = babelrc; + this.config = config; + this.fileHandling = fileHandling; + this.files = files; + Object.freeze(this); + } + hasFilesystemConfig() { + return this.babelrc !== undefined || this.config !== undefined; + } +} +Object.freeze(PartialConfig.prototype); +0 && 0; + +//# sourceMappingURL=partial.js.map diff --git a/server/api/node_modules/@babel/core/lib/config/partial.js.map b/server/api/node_modules/@babel/core/lib/config/partial.js.map new file mode 100644 index 0000000..e54684d --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/config/partial.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_path","data","require","_plugin","_util","_item","_configChain","_environment","_options","_index","_resolveTargets","_excluded","_objectWithoutPropertiesLoose","r","e","t","n","hasOwnProperty","call","indexOf","resolveRootMode","rootDir","rootMode","upwardRootDir","findConfigUpwards","Object","assign","Error","ROOT_CONFIG_FILENAMES","join","code","dirname","loadPrivatePartialConfig","inputOpts","Array","isArray","args","validate","envName","getEnv","cwd","root","caller","cloneInputAst","absoluteCwd","path","resolve","absoluteRootDir","filename","undefined","showConfigPath","resolveShowConfigPath","context","showConfig","configChain","buildRootChain","merged","assumptions","options","forEach","opts","mergeOptions","targets","resolveTargets","babelrc","configFile","browserslistConfigFile","passPerPreset","plugins","map","descriptor","createItemFromDescriptor","presets","fileHandling","ignore","config","files","loadPartialConfig","showIgnoredFiles","_opts","result","item","value","Plugin","PartialConfig","filepath","constructor","babelignore","freeze","hasFilesystemConfig","prototype"],"sources":["../../src/config/partial.ts"],"sourcesContent":["import path from \"node:path\";\nimport type { Handler } from \"gensync\";\nimport Plugin from \"./plugin.ts\";\nimport { mergeOptions } from \"./util.ts\";\nimport { createItemFromDescriptor } from \"./item.ts\";\nimport { buildRootChain } from \"./config-chain.ts\";\nimport type { ConfigContext, FileHandling } from \"./config-chain.ts\";\nimport { getEnv } from \"./helpers/environment.ts\";\nimport { validate } from \"./validation/options.ts\";\n\nimport type {\n RootMode,\n InputOptions,\n NormalizedOptions,\n} from \"./validation/options.ts\";\n\nimport {\n findConfigUpwards,\n resolveShowConfigPath,\n ROOT_CONFIG_FILENAMES,\n} from \"./files/index.ts\";\nimport type { ConfigFile, IgnoreFile } from \"./files/index.ts\";\nimport { resolveTargets } from \"./resolve-targets.ts\";\n\nfunction resolveRootMode(rootDir: string, rootMode: RootMode): string {\n switch (rootMode) {\n case \"root\":\n return rootDir;\n\n case \"upward-optional\": {\n const upwardRootDir = findConfigUpwards(rootDir);\n return upwardRootDir === null ? rootDir : upwardRootDir;\n }\n\n case \"upward\": {\n const upwardRootDir = findConfigUpwards(rootDir);\n if (upwardRootDir !== null) return upwardRootDir;\n\n throw Object.assign(\n new Error(\n `Babel was run with rootMode:\"upward\" but a root could not ` +\n `be found when searching upward from \"${rootDir}\".\\n` +\n `One of the following config files must be in the directory tree: ` +\n `\"${ROOT_CONFIG_FILENAMES.join(\", \")}\".`,\n ) as any,\n {\n code: \"BABEL_ROOT_NOT_FOUND\",\n dirname: rootDir,\n },\n );\n }\n default:\n throw new Error(`Assertion failure - unknown rootMode value.`);\n }\n}\n\nexport type PrivPartialConfig = {\n showIgnoredFiles?: boolean;\n options: NormalizedOptions;\n context: ConfigContext;\n babelrc: ConfigFile | undefined;\n config: ConfigFile | undefined;\n ignore: IgnoreFile | undefined;\n fileHandling: FileHandling;\n files: Set;\n};\n\nexport default function* loadPrivatePartialConfig(\n inputOpts: InputOptions,\n): Handler {\n if (\n inputOpts != null &&\n (typeof inputOpts !== \"object\" || Array.isArray(inputOpts))\n ) {\n throw new Error(\"Babel options must be an object, null, or undefined\");\n }\n\n const args = inputOpts ? validate(\"arguments\", inputOpts) : {};\n\n const {\n envName = getEnv(),\n cwd = \".\",\n root: rootDir = \".\",\n rootMode = \"root\",\n caller,\n cloneInputAst = true,\n } = args;\n const absoluteCwd = path.resolve(cwd);\n const absoluteRootDir = resolveRootMode(\n path.resolve(absoluteCwd, rootDir),\n rootMode,\n );\n\n const filename =\n typeof args.filename === \"string\"\n ? path.resolve(cwd, args.filename)\n : undefined;\n\n const showConfigPath = yield* resolveShowConfigPath(absoluteCwd);\n\n const context: ConfigContext = {\n filename,\n cwd: absoluteCwd,\n root: absoluteRootDir,\n envName,\n caller,\n showConfig: showConfigPath === filename,\n };\n\n const configChain = yield* buildRootChain(args, context);\n if (!configChain) return null;\n\n const merged = {\n assumptions: {},\n };\n configChain.options.forEach(opts => {\n mergeOptions(merged as any, opts);\n });\n\n const options: NormalizedOptions = {\n ...merged,\n targets: resolveTargets(merged, absoluteRootDir),\n\n // Tack the passes onto the object itself so that, if this object is\n // passed back to Babel a second time, it will be in the right structure\n // to not change behavior.\n cloneInputAst,\n babelrc: false,\n configFile: false,\n browserslistConfigFile: false,\n passPerPreset: false,\n envName: context.envName,\n cwd: context.cwd,\n root: context.root,\n rootMode: \"root\",\n filename:\n typeof context.filename === \"string\" ? context.filename : undefined,\n\n plugins: configChain.plugins.map(descriptor =>\n createItemFromDescriptor(descriptor),\n ),\n presets: configChain.presets.map(descriptor =>\n createItemFromDescriptor(descriptor),\n ),\n };\n\n return {\n options,\n context,\n fileHandling: configChain.fileHandling,\n ignore: configChain.ignore,\n babelrc: configChain.babelrc,\n config: configChain.config,\n files: configChain.files,\n };\n}\n\nexport function* loadPartialConfig(\n opts?: InputOptions,\n): Handler {\n let showIgnoredFiles = false;\n // We only extract showIgnoredFiles if opts is an object, so that\n // loadPrivatePartialConfig can throw the appropriate error if it's not.\n if (typeof opts === \"object\" && opts !== null && !Array.isArray(opts)) {\n ({ showIgnoredFiles, ...opts } = opts);\n }\n\n const result: PrivPartialConfig | undefined | null =\n yield* loadPrivatePartialConfig(opts);\n if (!result) return null;\n\n const { options, babelrc, ignore, config, fileHandling, files } = result;\n\n if (fileHandling === \"ignored\" && !showIgnoredFiles) {\n return null;\n }\n\n (options.plugins || []).forEach(item => {\n if (item.value instanceof Plugin) {\n throw new Error(\n \"Passing cached plugin instances is not supported in \" +\n \"babel.loadPartialConfig()\",\n );\n }\n });\n\n return new PartialConfig(\n options,\n babelrc ? babelrc.filepath : undefined,\n ignore ? ignore.filepath : undefined,\n config ? config.filepath : undefined,\n fileHandling,\n files,\n );\n}\n\nexport type { PartialConfig };\n\nclass PartialConfig {\n /**\n * These properties are public, so any changes to them should be considered\n * a breaking change to Babel's API.\n */\n options: NormalizedOptions;\n babelrc: string | undefined;\n babelignore: string | undefined;\n config: string | undefined;\n fileHandling: FileHandling;\n files: Set;\n\n constructor(\n options: NormalizedOptions,\n babelrc: string | undefined,\n ignore: string | undefined,\n config: string | undefined,\n fileHandling: FileHandling,\n files: Set,\n ) {\n this.options = options;\n this.babelignore = ignore;\n this.babelrc = babelrc;\n this.config = config;\n this.fileHandling = fileHandling;\n this.files = files;\n\n // Freeze since this is a public API and it should be extremely obvious that\n // reassigning properties on here does nothing.\n Object.freeze(this);\n }\n\n /**\n * Returns true if there is a config file in the filesystem for this config.\n */\n hasFilesystemConfig(): boolean {\n return this.babelrc !== undefined || this.config !== undefined;\n }\n}\nObject.freeze(PartialConfig.prototype);\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/core/lib/config/pattern-to-regex.js b/server/api/node_modules/@babel/core/lib/config/pattern-to-regex.js new file mode 100644 index 0000000..32de02d --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/config/pattern-to-regex.js @@ -0,0 +1,38 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = pathToPattern; +function _path() { + const data = require("path"); + _path = function () { + return data; + }; + return data; +} +const sep = `\\${_path().sep}`; +const endSep = `(?:${sep}|$)`; +const substitution = `[^${sep}]+`; +const starPat = `(?:${substitution}${sep})`; +const starPatLast = `(?:${substitution}${endSep})`; +const starStarPat = `${starPat}*?`; +const starStarPatLast = `${starPat}*?${starPatLast}?`; +function escapeRegExp(string) { + return string.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&"); +} +function pathToPattern(pattern, dirname) { + const parts = _path().resolve(dirname, pattern).split(_path().sep); + return new RegExp(["^", ...parts.map((part, i) => { + const last = i === parts.length - 1; + if (part === "**") return last ? starStarPatLast : starStarPat; + if (part === "*") return last ? starPatLast : starPat; + if (part.startsWith("*.")) { + return substitution + escapeRegExp(part.slice(1)) + (last ? endSep : sep); + } + return escapeRegExp(part) + (last ? endSep : sep); + })].join("")); +} +0 && 0; + +//# sourceMappingURL=pattern-to-regex.js.map diff --git a/server/api/node_modules/@babel/core/lib/config/pattern-to-regex.js.map b/server/api/node_modules/@babel/core/lib/config/pattern-to-regex.js.map new file mode 100644 index 0000000..0da14ff --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/config/pattern-to-regex.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_path","data","require","sep","path","endSep","substitution","starPat","starPatLast","starStarPat","starStarPatLast","escapeRegExp","string","replace","pathToPattern","pattern","dirname","parts","resolve","split","RegExp","map","part","i","last","length","startsWith","slice","join"],"sources":["../../src/config/pattern-to-regex.ts"],"sourcesContent":["import path from \"node:path\";\n\nconst sep = `\\\\${path.sep}`;\nconst endSep = `(?:${sep}|$)`;\n\nconst substitution = `[^${sep}]+`;\n\nconst starPat = `(?:${substitution}${sep})`;\nconst starPatLast = `(?:${substitution}${endSep})`;\n\nconst starStarPat = `${starPat}*?`;\nconst starStarPatLast = `${starPat}*?${starPatLast}?`;\n\nfunction escapeRegExp(string: string) {\n return string.replace(/[|\\\\{}()[\\]^$+*?.]/g, \"\\\\$&\");\n}\n\n/**\n * Implement basic pattern matching that will allow users to do the simple\n * tests with * and **. If users want full complex pattern matching, then can\n * always use regex matching, or function validation.\n */\nexport default function pathToPattern(\n pattern: string,\n dirname: string,\n): RegExp {\n const parts = path.resolve(dirname, pattern).split(path.sep);\n\n return new RegExp(\n [\n \"^\",\n ...parts.map((part, i) => {\n const last = i === parts.length - 1;\n\n // ** matches 0 or more path parts.\n if (part === \"**\") return last ? starStarPatLast : starStarPat;\n\n // * matches 1 path part.\n if (part === \"*\") return last ? starPatLast : starPat;\n\n // *.ext matches a wildcard with an extension.\n if (part.startsWith(\"*.\")) {\n return (\n substitution + escapeRegExp(part.slice(1)) + (last ? endSep : sep)\n );\n }\n\n // Otherwise match the pattern text.\n return escapeRegExp(part) + (last ? endSep : sep);\n }),\n ].join(\"\"),\n );\n}\n"],"mappings":";;;;;;AAAA,SAAAA,MAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,KAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,MAAME,GAAG,GAAG,KAAKC,MAAGA,CAAC,CAACD,GAAG,EAAE;AAC3B,MAAME,MAAM,GAAG,MAAMF,GAAG,KAAK;AAE7B,MAAMG,YAAY,GAAG,KAAKH,GAAG,IAAI;AAEjC,MAAMI,OAAO,GAAG,MAAMD,YAAY,GAAGH,GAAG,GAAG;AAC3C,MAAMK,WAAW,GAAG,MAAMF,YAAY,GAAGD,MAAM,GAAG;AAElD,MAAMI,WAAW,GAAG,GAAGF,OAAO,IAAI;AAClC,MAAMG,eAAe,GAAG,GAAGH,OAAO,KAAKC,WAAW,GAAG;AAErD,SAASG,YAAYA,CAACC,MAAc,EAAE;EACpC,OAAOA,MAAM,CAACC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC;AACtD;AAOe,SAASC,aAAaA,CACnCC,OAAe,EACfC,OAAe,EACP;EACR,MAAMC,KAAK,GAAGb,MAAGA,CAAC,CAACc,OAAO,CAACF,OAAO,EAAED,OAAO,CAAC,CAACI,KAAK,CAACf,MAAGA,CAAC,CAACD,GAAG,CAAC;EAE5D,OAAO,IAAIiB,MAAM,CACf,CACE,GAAG,EACH,GAAGH,KAAK,CAACI,GAAG,CAAC,CAACC,IAAI,EAAEC,CAAC,KAAK;IACxB,MAAMC,IAAI,GAAGD,CAAC,KAAKN,KAAK,CAACQ,MAAM,GAAG,CAAC;IAGnC,IAAIH,IAAI,KAAK,IAAI,EAAE,OAAOE,IAAI,GAAGd,eAAe,GAAGD,WAAW;IAG9D,IAAIa,IAAI,KAAK,GAAG,EAAE,OAAOE,IAAI,GAAGhB,WAAW,GAAGD,OAAO;IAGrD,IAAIe,IAAI,CAACI,UAAU,CAAC,IAAI,CAAC,EAAE;MACzB,OACEpB,YAAY,GAAGK,YAAY,CAACW,IAAI,CAACK,KAAK,CAAC,CAAC,CAAC,CAAC,IAAIH,IAAI,GAAGnB,MAAM,GAAGF,GAAG,CAAC;IAEtE;IAGA,OAAOQ,YAAY,CAACW,IAAI,CAAC,IAAIE,IAAI,GAAGnB,MAAM,GAAGF,GAAG,CAAC;EACnD,CAAC,CAAC,CACH,CAACyB,IAAI,CAAC,EAAE,CACX,CAAC;AACH;AAAC","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/core/lib/config/plugin.js b/server/api/node_modules/@babel/core/lib/config/plugin.js new file mode 100644 index 0000000..21a28cd --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/config/plugin.js @@ -0,0 +1,33 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _deepArray = require("./helpers/deep-array.js"); +class Plugin { + constructor(plugin, options, key, externalDependencies = (0, _deepArray.finalize)([])) { + this.key = void 0; + this.manipulateOptions = void 0; + this.post = void 0; + this.pre = void 0; + this.visitor = void 0; + this.parserOverride = void 0; + this.generatorOverride = void 0; + this.options = void 0; + this.externalDependencies = void 0; + this.key = plugin.name || key; + this.manipulateOptions = plugin.manipulateOptions; + this.post = plugin.post; + this.pre = plugin.pre; + this.visitor = plugin.visitor || {}; + this.parserOverride = plugin.parserOverride; + this.generatorOverride = plugin.generatorOverride; + this.options = options; + this.externalDependencies = externalDependencies; + } +} +exports.default = Plugin; +0 && 0; + +//# sourceMappingURL=plugin.js.map diff --git a/server/api/node_modules/@babel/core/lib/config/plugin.js.map b/server/api/node_modules/@babel/core/lib/config/plugin.js.map new file mode 100644 index 0000000..c3bccb5 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/config/plugin.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_deepArray","require","Plugin","constructor","plugin","options","key","externalDependencies","finalize","manipulateOptions","post","pre","visitor","parserOverride","generatorOverride","name","exports","default"],"sources":["../../src/config/plugin.ts"],"sourcesContent":["import { finalize } from \"./helpers/deep-array.ts\";\nimport type { ReadonlyDeepArray } from \"./helpers/deep-array.ts\";\nimport type { PluginObject } from \"./validation/plugins.ts\";\n\nexport default class Plugin {\n key: string | undefined | null;\n manipulateOptions?: PluginObject[\"manipulateOptions\"];\n post?: PluginObject[\"post\"];\n pre?: PluginObject[\"pre\"];\n visitor: PluginObject[\"visitor\"];\n\n parserOverride?: PluginObject[\"parserOverride\"];\n generatorOverride?: PluginObject[\"generatorOverride\"];\n\n options: object;\n\n externalDependencies: ReadonlyDeepArray;\n\n constructor(\n plugin: PluginObject,\n options: object,\n key?: string,\n externalDependencies: ReadonlyDeepArray = finalize([]),\n ) {\n this.key = plugin.name || key;\n\n this.manipulateOptions = plugin.manipulateOptions;\n this.post = plugin.post;\n this.pre = plugin.pre;\n this.visitor = plugin.visitor || {};\n this.parserOverride = plugin.parserOverride;\n this.generatorOverride = plugin.generatorOverride;\n\n this.options = options;\n this.externalDependencies = externalDependencies;\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAIe,MAAMC,MAAM,CAAC;EAc1BC,WAAWA,CACTC,MAAoB,EACpBC,OAAe,EACfC,GAAY,EACZC,oBAA+C,GAAG,IAAAC,mBAAQ,EAAC,EAAE,CAAC,EAC9D;IAAA,KAlBFF,GAAG;IAAA,KACHG,iBAAiB;IAAA,KACjBC,IAAI;IAAA,KACJC,GAAG;IAAA,KACHC,OAAO;IAAA,KAEPC,cAAc;IAAA,KACdC,iBAAiB;IAAA,KAEjBT,OAAO;IAAA,KAEPE,oBAAoB;IAQlB,IAAI,CAACD,GAAG,GAAGF,MAAM,CAACW,IAAI,IAAIT,GAAG;IAE7B,IAAI,CAACG,iBAAiB,GAAGL,MAAM,CAACK,iBAAiB;IACjD,IAAI,CAACC,IAAI,GAAGN,MAAM,CAACM,IAAI;IACvB,IAAI,CAACC,GAAG,GAAGP,MAAM,CAACO,GAAG;IACrB,IAAI,CAACC,OAAO,GAAGR,MAAM,CAACQ,OAAO,IAAI,CAAC,CAAC;IACnC,IAAI,CAACC,cAAc,GAAGT,MAAM,CAACS,cAAc;IAC3C,IAAI,CAACC,iBAAiB,GAAGV,MAAM,CAACU,iBAAiB;IAEjD,IAAI,CAACT,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACE,oBAAoB,GAAGA,oBAAoB;EAClD;AACF;AAACS,OAAA,CAAAC,OAAA,GAAAf,MAAA;AAAA","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/core/lib/config/printer.js b/server/api/node_modules/@babel/core/lib/config/printer.js new file mode 100644 index 0000000..3ac2c07 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/config/printer.js @@ -0,0 +1,113 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.ConfigPrinter = exports.ChainFormatter = void 0; +function _gensync() { + const data = require("gensync"); + _gensync = function () { + return data; + }; + return data; +} +const ChainFormatter = exports.ChainFormatter = { + Programmatic: 0, + Config: 1 +}; +const Formatter = { + title(type, callerName, filepath) { + let title = ""; + if (type === ChainFormatter.Programmatic) { + title = "programmatic options"; + if (callerName) { + title += " from " + callerName; + } + } else { + title = "config " + filepath; + } + return title; + }, + loc(index, envName) { + let loc = ""; + if (index != null) { + loc += `.overrides[${index}]`; + } + if (envName != null) { + loc += `.env["${envName}"]`; + } + return loc; + }, + *optionsAndDescriptors(opt) { + const content = Object.assign({}, opt.options); + delete content.overrides; + delete content.env; + const pluginDescriptors = [...(yield* opt.plugins())]; + if (pluginDescriptors.length) { + content.plugins = pluginDescriptors.map(d => descriptorToConfig(d)); + } + const presetDescriptors = [...(yield* opt.presets())]; + if (presetDescriptors.length) { + content.presets = [...presetDescriptors].map(d => descriptorToConfig(d)); + } + return JSON.stringify(content, undefined, 2); + } +}; +function descriptorToConfig(d) { + var _d$file; + let name = (_d$file = d.file) == null ? void 0 : _d$file.request; + if (name == null) { + if (typeof d.value === "object") { + name = d.value; + } else if (typeof d.value === "function") { + name = `[Function: ${d.value.toString().slice(0, 50)} ... ]`; + } + } + if (name == null) { + name = "[Unknown]"; + } + if (d.options === undefined) { + return name; + } else if (d.name == null) { + return [name, d.options]; + } else { + return [name, d.options, d.name]; + } +} +class ConfigPrinter { + constructor() { + this._stack = []; + } + configure(enabled, type, { + callerName, + filepath + }) { + if (!enabled) return () => {}; + return (content, index, envName) => { + this._stack.push({ + type, + callerName, + filepath, + content, + index, + envName + }); + }; + } + static *format(config) { + let title = Formatter.title(config.type, config.callerName, config.filepath); + const loc = Formatter.loc(config.index, config.envName); + if (loc) title += ` ${loc}`; + const content = yield* Formatter.optionsAndDescriptors(config.content); + return `${title}\n${content}`; + } + *output() { + if (this._stack.length === 0) return ""; + const configs = yield* _gensync().all(this._stack.map(s => ConfigPrinter.format(s))); + return configs.join("\n\n"); + } +} +exports.ConfigPrinter = ConfigPrinter; +0 && 0; + +//# sourceMappingURL=printer.js.map diff --git a/server/api/node_modules/@babel/core/lib/config/printer.js.map b/server/api/node_modules/@babel/core/lib/config/printer.js.map new file mode 100644 index 0000000..de47394 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/config/printer.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_gensync","data","require","ChainFormatter","exports","Programmatic","Config","Formatter","title","type","callerName","filepath","loc","index","envName","optionsAndDescriptors","opt","content","Object","assign","options","overrides","env","pluginDescriptors","plugins","length","map","d","descriptorToConfig","presetDescriptors","presets","JSON","stringify","undefined","_d$file","name","file","request","value","toString","slice","ConfigPrinter","constructor","_stack","configure","enabled","push","format","config","output","configs","gensync","all","s","join"],"sources":["../../src/config/printer.ts"],"sourcesContent":["import gensync from \"gensync\";\n\nimport type { Handler } from \"gensync\";\n\nimport type {\n OptionsAndDescriptors,\n UnloadedDescriptor,\n} from \"./config-descriptors.ts\";\n\n// todo: Use flow enums when @babel/transform-flow-types supports it\nexport const ChainFormatter = {\n Programmatic: 0,\n Config: 1,\n};\n\ntype PrintableConfig = {\n content: OptionsAndDescriptors;\n type: (typeof ChainFormatter)[keyof typeof ChainFormatter];\n callerName: string | undefined | null;\n filepath: string | undefined | null;\n index: number | undefined | null;\n envName: string | undefined | null;\n};\n\nconst Formatter = {\n title(\n type: (typeof ChainFormatter)[keyof typeof ChainFormatter],\n callerName?: string | null,\n filepath?: string | null,\n ): string {\n let title = \"\";\n if (type === ChainFormatter.Programmatic) {\n title = \"programmatic options\";\n if (callerName) {\n title += \" from \" + callerName;\n }\n } else {\n title = \"config \" + filepath;\n }\n return title;\n },\n loc(index?: number | null, envName?: string | null): string {\n let loc = \"\";\n if (index != null) {\n loc += `.overrides[${index}]`;\n }\n if (envName != null) {\n loc += `.env[\"${envName}\"]`;\n }\n return loc;\n },\n\n *optionsAndDescriptors(opt: OptionsAndDescriptors) {\n const content = { ...opt.options };\n // overrides and env will be printed as separated config items\n delete content.overrides;\n delete content.env;\n // resolve to descriptors\n const pluginDescriptors = [...(yield* opt.plugins())];\n if (pluginDescriptors.length) {\n content.plugins = pluginDescriptors.map(d => descriptorToConfig(d));\n }\n const presetDescriptors = [...(yield* opt.presets())];\n if (presetDescriptors.length) {\n content.presets = [...presetDescriptors].map(d => descriptorToConfig(d));\n }\n return JSON.stringify(content, undefined, 2);\n },\n};\n\nfunction descriptorToConfig(\n d: UnloadedDescriptor,\n): string | [string, object] | [string, object, string] {\n let name: string = d.file?.request;\n if (name == null) {\n if (typeof d.value === \"object\") {\n // @ts-expect-error FIXME\n name = d.value;\n } else if (typeof d.value === \"function\") {\n // If the unloaded descriptor is a function, i.e. `plugins: [ require(\"my-plugin\") ]`,\n // we print the first 50 characters of the function source code and hopefully we can see\n // `name: 'my-plugin'` in the source\n name = `[Function: ${d.value.toString().slice(0, 50)} ... ]`;\n }\n }\n if (name == null) {\n name = \"[Unknown]\";\n }\n if (d.options === undefined) {\n return name;\n } else if (d.name == null) {\n return [name, d.options];\n } else {\n return [name, d.options, d.name];\n }\n}\n\nexport class ConfigPrinter {\n _stack: PrintableConfig[] = [];\n configure(\n enabled: boolean,\n type: (typeof ChainFormatter)[keyof typeof ChainFormatter],\n {\n callerName,\n filepath,\n }: {\n callerName?: string;\n filepath?: string;\n },\n ) {\n if (!enabled) return () => {};\n return (\n content: OptionsAndDescriptors,\n index?: number | null,\n envName?: string | null,\n ) => {\n this._stack.push({\n type,\n callerName,\n filepath,\n content,\n index,\n envName,\n });\n };\n }\n static *format(config: PrintableConfig): Handler {\n let title = Formatter.title(\n config.type,\n config.callerName,\n config.filepath,\n );\n const loc = Formatter.loc(config.index, config.envName);\n if (loc) title += ` ${loc}`;\n const content = yield* Formatter.optionsAndDescriptors(config.content);\n return `${title}\\n${content}`;\n }\n\n *output(): Handler {\n if (this._stack.length === 0) return \"\";\n const configs = yield* gensync.all(\n this._stack.map(s => ConfigPrinter.format(s)),\n );\n return configs.join(\"\\n\\n\");\n }\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/core/lib/config/resolve-targets-browser.js b/server/api/node_modules/@babel/core/lib/config/resolve-targets-browser.js new file mode 100644 index 0000000..3fdbd88 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/config/resolve-targets-browser.js @@ -0,0 +1,41 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.resolveBrowserslistConfigFile = resolveBrowserslistConfigFile; +exports.resolveTargets = resolveTargets; +function _helperCompilationTargets() { + const data = require("@babel/helper-compilation-targets"); + _helperCompilationTargets = function () { + return data; + }; + return data; +} +function resolveBrowserslistConfigFile(browserslistConfigFile, configFilePath) { + return undefined; +} +function resolveTargets(options, root) { + const optTargets = options.targets; + let targets; + if (typeof optTargets === "string" || Array.isArray(optTargets)) { + targets = { + browsers: optTargets + }; + } else if (optTargets) { + if ("esmodules" in optTargets) { + targets = Object.assign({}, optTargets, { + esmodules: "intersect" + }); + } else { + targets = optTargets; + } + } + return (0, _helperCompilationTargets().default)(targets, { + ignoreBrowserslistConfig: true, + browserslistEnv: options.browserslistEnv + }); +} +0 && 0; + +//# sourceMappingURL=resolve-targets-browser.js.map diff --git a/server/api/node_modules/@babel/core/lib/config/resolve-targets-browser.js.map b/server/api/node_modules/@babel/core/lib/config/resolve-targets-browser.js.map new file mode 100644 index 0000000..57b49e3 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/config/resolve-targets-browser.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_helperCompilationTargets","data","require","resolveBrowserslistConfigFile","browserslistConfigFile","configFilePath","undefined","resolveTargets","options","root","optTargets","targets","Array","isArray","browsers","Object","assign","esmodules","getTargets","ignoreBrowserslistConfig","browserslistEnv"],"sources":["../../src/config/resolve-targets-browser.ts"],"sourcesContent":["/* c8 ignore start */\n\nimport type { InputOptions } from \"./validation/options.ts\";\nimport getTargets, {\n type InputTargets,\n} from \"@babel/helper-compilation-targets\";\n\nimport type { Targets } from \"@babel/helper-compilation-targets\";\n\nexport function resolveBrowserslistConfigFile(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n browserslistConfigFile: string,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n configFilePath: string,\n): string | void {\n return undefined;\n}\n\nexport function resolveTargets(\n options: InputOptions,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n root: string,\n): Targets {\n const optTargets = options.targets;\n let targets: InputTargets;\n\n if (typeof optTargets === \"string\" || Array.isArray(optTargets)) {\n targets = { browsers: optTargets };\n } else if (optTargets) {\n if (\"esmodules\" in optTargets) {\n targets = { ...optTargets, esmodules: \"intersect\" };\n } else {\n // https://github.com/microsoft/TypeScript/issues/17002\n targets = optTargets as InputTargets;\n }\n }\n\n return getTargets(targets, {\n ignoreBrowserslistConfig: true,\n browserslistEnv: options.browserslistEnv,\n });\n}\n"],"mappings":";;;;;;;AAGA,SAAAA,0BAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,yBAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAMO,SAASE,6BAA6BA,CAE3CC,sBAA8B,EAE9BC,cAAsB,EACP;EACf,OAAOC,SAAS;AAClB;AAEO,SAASC,cAAcA,CAC5BC,OAAqB,EAErBC,IAAY,EACH;EACT,MAAMC,UAAU,GAAGF,OAAO,CAACG,OAAO;EAClC,IAAIA,OAAqB;EAEzB,IAAI,OAAOD,UAAU,KAAK,QAAQ,IAAIE,KAAK,CAACC,OAAO,CAACH,UAAU,CAAC,EAAE;IAC/DC,OAAO,GAAG;MAAEG,QAAQ,EAAEJ;IAAW,CAAC;EACpC,CAAC,MAAM,IAAIA,UAAU,EAAE;IACrB,IAAI,WAAW,IAAIA,UAAU,EAAE;MAC7BC,OAAO,GAAAI,MAAA,CAAAC,MAAA,KAAQN,UAAU;QAAEO,SAAS,EAAE;MAAW,EAAE;IACrD,CAAC,MAAM;MAELN,OAAO,GAAGD,UAA0B;IACtC;EACF;EAEA,OAAO,IAAAQ,mCAAU,EAACP,OAAO,EAAE;IACzBQ,wBAAwB,EAAE,IAAI;IAC9BC,eAAe,EAAEZ,OAAO,CAACY;EAC3B,CAAC,CAAC;AACJ;AAAC","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/core/lib/config/resolve-targets.js b/server/api/node_modules/@babel/core/lib/config/resolve-targets.js new file mode 100644 index 0000000..1fc539a --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/config/resolve-targets.js @@ -0,0 +1,61 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.resolveBrowserslistConfigFile = resolveBrowserslistConfigFile; +exports.resolveTargets = resolveTargets; +function _path() { + const data = require("path"); + _path = function () { + return data; + }; + return data; +} +function _helperCompilationTargets() { + const data = require("@babel/helper-compilation-targets"); + _helperCompilationTargets = function () { + return data; + }; + return data; +} +({}); +function resolveBrowserslistConfigFile(browserslistConfigFile, configFileDir) { + return _path().resolve(configFileDir, browserslistConfigFile); +} +function resolveTargets(options, root) { + const optTargets = options.targets; + let targets; + if (typeof optTargets === "string" || Array.isArray(optTargets)) { + targets = { + browsers: optTargets + }; + } else if (optTargets) { + if ("esmodules" in optTargets) { + targets = Object.assign({}, optTargets, { + esmodules: "intersect" + }); + } else { + targets = optTargets; + } + } + const { + browserslistConfigFile + } = options; + let configFile; + let ignoreBrowserslistConfig = false; + if (typeof browserslistConfigFile === "string") { + configFile = browserslistConfigFile; + } else { + ignoreBrowserslistConfig = browserslistConfigFile === false; + } + return (0, _helperCompilationTargets().default)(targets, { + ignoreBrowserslistConfig, + configFile, + configPath: root, + browserslistEnv: options.browserslistEnv + }); +} +0 && 0; + +//# sourceMappingURL=resolve-targets.js.map diff --git a/server/api/node_modules/@babel/core/lib/config/resolve-targets.js.map b/server/api/node_modules/@babel/core/lib/config/resolve-targets.js.map new file mode 100644 index 0000000..575fd4f --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/config/resolve-targets.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_path","data","require","_helperCompilationTargets","resolveBrowserslistConfigFile","browserslistConfigFile","configFileDir","path","resolve","resolveTargets","options","root","optTargets","targets","Array","isArray","browsers","Object","assign","esmodules","configFile","ignoreBrowserslistConfig","getTargets","configPath","browserslistEnv"],"sources":["../../src/config/resolve-targets.ts"],"sourcesContent":["type browserType = typeof import(\"./resolve-targets-browser\");\ntype nodeType = typeof import(\"./resolve-targets\");\n\n// Kind of gross, but essentially asserting that the exports of this module are the same as the\n// exports of index-browser, since this file may be replaced at bundle time with index-browser.\n// eslint-disable-next-line @typescript-eslint/no-unused-expressions\n({}) as any as browserType as nodeType;\n\nimport type { InputOptions } from \"./validation/options.ts\";\nimport path from \"node:path\";\nimport getTargets, {\n type InputTargets,\n} from \"@babel/helper-compilation-targets\";\n\nimport type { Targets } from \"@babel/helper-compilation-targets\";\n\nexport function resolveBrowserslistConfigFile(\n browserslistConfigFile: string,\n configFileDir: string,\n): string | undefined {\n return path.resolve(configFileDir, browserslistConfigFile);\n}\n\nexport function resolveTargets(options: InputOptions, root: string): Targets {\n const optTargets = options.targets;\n let targets: InputTargets;\n\n if (typeof optTargets === \"string\" || Array.isArray(optTargets)) {\n targets = { browsers: optTargets };\n } else if (optTargets) {\n if (\"esmodules\" in optTargets) {\n targets = { ...optTargets, esmodules: \"intersect\" };\n } else {\n // https://github.com/microsoft/TypeScript/issues/17002\n targets = optTargets as InputTargets;\n }\n }\n\n const { browserslistConfigFile } = options;\n let configFile;\n let ignoreBrowserslistConfig = false;\n if (typeof browserslistConfigFile === \"string\") {\n configFile = browserslistConfigFile;\n } else {\n ignoreBrowserslistConfig = browserslistConfigFile === false;\n }\n\n return getTargets(targets, {\n ignoreBrowserslistConfig,\n configFile,\n configPath: root,\n browserslistEnv: options.browserslistEnv,\n });\n}\n"],"mappings":";;;;;;;AASA,SAAAA,MAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,KAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,0BAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,yBAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAJA,CAAC,CAAC,CAAC;AAUI,SAASG,6BAA6BA,CAC3CC,sBAA8B,EAC9BC,aAAqB,EACD;EACpB,OAAOC,MAAGA,CAAC,CAACC,OAAO,CAACF,aAAa,EAAED,sBAAsB,CAAC;AAC5D;AAEO,SAASI,cAAcA,CAACC,OAAqB,EAAEC,IAAY,EAAW;EAC3E,MAAMC,UAAU,GAAGF,OAAO,CAACG,OAAO;EAClC,IAAIA,OAAqB;EAEzB,IAAI,OAAOD,UAAU,KAAK,QAAQ,IAAIE,KAAK,CAACC,OAAO,CAACH,UAAU,CAAC,EAAE;IAC/DC,OAAO,GAAG;MAAEG,QAAQ,EAAEJ;IAAW,CAAC;EACpC,CAAC,MAAM,IAAIA,UAAU,EAAE;IACrB,IAAI,WAAW,IAAIA,UAAU,EAAE;MAC7BC,OAAO,GAAAI,MAAA,CAAAC,MAAA,KAAQN,UAAU;QAAEO,SAAS,EAAE;MAAW,EAAE;IACrD,CAAC,MAAM;MAELN,OAAO,GAAGD,UAA0B;IACtC;EACF;EAEA,MAAM;IAAEP;EAAuB,CAAC,GAAGK,OAAO;EAC1C,IAAIU,UAAU;EACd,IAAIC,wBAAwB,GAAG,KAAK;EACpC,IAAI,OAAOhB,sBAAsB,KAAK,QAAQ,EAAE;IAC9Ce,UAAU,GAAGf,sBAAsB;EACrC,CAAC,MAAM;IACLgB,wBAAwB,GAAGhB,sBAAsB,KAAK,KAAK;EAC7D;EAEA,OAAO,IAAAiB,mCAAU,EAACT,OAAO,EAAE;IACzBQ,wBAAwB;IACxBD,UAAU;IACVG,UAAU,EAAEZ,IAAI;IAChBa,eAAe,EAAEd,OAAO,CAACc;EAC3B,CAAC,CAAC;AACJ;AAAC","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/core/lib/config/util.js b/server/api/node_modules/@babel/core/lib/config/util.js new file mode 100644 index 0000000..077f1af --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/config/util.js @@ -0,0 +1,31 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.isIterableIterator = isIterableIterator; +exports.mergeOptions = mergeOptions; +function mergeOptions(target, source) { + for (const k of Object.keys(source)) { + if ((k === "parserOpts" || k === "generatorOpts" || k === "assumptions") && source[k]) { + const parserOpts = source[k]; + const targetObj = target[k] || (target[k] = {}); + mergeDefaultFields(targetObj, parserOpts); + } else { + const val = source[k]; + if (val !== undefined) target[k] = val; + } + } +} +function mergeDefaultFields(target, source) { + for (const k of Object.keys(source)) { + const val = source[k]; + if (val !== undefined) target[k] = val; + } +} +function isIterableIterator(value) { + return !!value && typeof value.next === "function" && typeof value[Symbol.iterator] === "function"; +} +0 && 0; + +//# sourceMappingURL=util.js.map diff --git a/server/api/node_modules/@babel/core/lib/config/util.js.map b/server/api/node_modules/@babel/core/lib/config/util.js.map new file mode 100644 index 0000000..2bdc742 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/config/util.js.map @@ -0,0 +1 @@ +{"version":3,"names":["mergeOptions","target","source","k","Object","keys","parserOpts","targetObj","mergeDefaultFields","val","undefined","isIterableIterator","value","next","Symbol","iterator"],"sources":["../../src/config/util.ts"],"sourcesContent":["import type { InputOptions, ResolvedOptions } from \"./validation/options.ts\";\n\nexport function mergeOptions(\n target: InputOptions | ResolvedOptions,\n source: InputOptions,\n): void {\n for (const k of Object.keys(source)) {\n if (\n (k === \"parserOpts\" || k === \"generatorOpts\" || k === \"assumptions\") &&\n source[k]\n ) {\n const parserOpts = source[k];\n const targetObj = target[k] || (target[k] = {});\n mergeDefaultFields(targetObj, parserOpts);\n } else {\n //@ts-expect-error k must index source\n const val = source[k];\n //@ts-expect-error assigning source to target\n if (val !== undefined) target[k] = val as any;\n }\n }\n}\n\nfunction mergeDefaultFields(target: T, source: T) {\n for (const k of Object.keys(source) as (keyof T)[]) {\n const val = source[k];\n if (val !== undefined) target[k] = val;\n }\n}\n\nexport function isIterableIterator(value: any): value is IterableIterator {\n return (\n !!value &&\n typeof value.next === \"function\" &&\n typeof value[Symbol.iterator] === \"function\"\n );\n}\n"],"mappings":";;;;;;;AAEO,SAASA,YAAYA,CAC1BC,MAAsC,EACtCC,MAAoB,EACd;EACN,KAAK,MAAMC,CAAC,IAAIC,MAAM,CAACC,IAAI,CAACH,MAAM,CAAC,EAAE;IACnC,IACE,CAACC,CAAC,KAAK,YAAY,IAAIA,CAAC,KAAK,eAAe,IAAIA,CAAC,KAAK,aAAa,KACnED,MAAM,CAACC,CAAC,CAAC,EACT;MACA,MAAMG,UAAU,GAAGJ,MAAM,CAACC,CAAC,CAAC;MAC5B,MAAMI,SAAS,GAAGN,MAAM,CAACE,CAAC,CAAC,KAAKF,MAAM,CAACE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;MAC/CK,kBAAkB,CAACD,SAAS,EAAED,UAAU,CAAC;IAC3C,CAAC,MAAM;MAEL,MAAMG,GAAG,GAAGP,MAAM,CAACC,CAAC,CAAC;MAErB,IAAIM,GAAG,KAAKC,SAAS,EAAET,MAAM,CAACE,CAAC,CAAC,GAAGM,GAAU;IAC/C;EACF;AACF;AAEA,SAASD,kBAAkBA,CAAmBP,MAAS,EAAEC,MAAS,EAAE;EAClE,KAAK,MAAMC,CAAC,IAAIC,MAAM,CAACC,IAAI,CAACH,MAAM,CAAC,EAAiB;IAClD,MAAMO,GAAG,GAAGP,MAAM,CAACC,CAAC,CAAC;IACrB,IAAIM,GAAG,KAAKC,SAAS,EAAET,MAAM,CAACE,CAAC,CAAC,GAAGM,GAAG;EACxC;AACF;AAEO,SAASE,kBAAkBA,CAACC,KAAU,EAAkC;EAC7E,OACE,CAAC,CAACA,KAAK,IACP,OAAOA,KAAK,CAACC,IAAI,KAAK,UAAU,IAChC,OAAOD,KAAK,CAACE,MAAM,CAACC,QAAQ,CAAC,KAAK,UAAU;AAEhD;AAAC","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/core/lib/config/validation/option-assertions.js b/server/api/node_modules/@babel/core/lib/config/validation/option-assertions.js new file mode 100644 index 0000000..0227971 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/config/validation/option-assertions.js @@ -0,0 +1,277 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.access = access; +exports.assertArray = assertArray; +exports.assertAssumptions = assertAssumptions; +exports.assertBabelrcSearch = assertBabelrcSearch; +exports.assertBoolean = assertBoolean; +exports.assertCallerMetadata = assertCallerMetadata; +exports.assertCompact = assertCompact; +exports.assertConfigApplicableTest = assertConfigApplicableTest; +exports.assertConfigFileSearch = assertConfigFileSearch; +exports.assertFunction = assertFunction; +exports.assertIgnoreList = assertIgnoreList; +exports.assertInputSourceMap = assertInputSourceMap; +exports.assertObject = assertObject; +exports.assertPluginList = assertPluginList; +exports.assertRootMode = assertRootMode; +exports.assertSourceMaps = assertSourceMaps; +exports.assertSourceType = assertSourceType; +exports.assertString = assertString; +exports.assertTargets = assertTargets; +exports.msg = msg; +function _helperCompilationTargets() { + const data = require("@babel/helper-compilation-targets"); + _helperCompilationTargets = function () { + return data; + }; + return data; +} +var _options = require("./options.js"); +function msg(loc) { + switch (loc.type) { + case "root": + return ``; + case "env": + return `${msg(loc.parent)}.env["${loc.name}"]`; + case "overrides": + return `${msg(loc.parent)}.overrides[${loc.index}]`; + case "option": + return `${msg(loc.parent)}.${loc.name}`; + case "access": + return `${msg(loc.parent)}[${JSON.stringify(loc.name)}]`; + default: + throw new Error(`Assertion failure: Unknown type ${loc.type}`); + } +} +function access(loc, name) { + return { + type: "access", + name, + parent: loc + }; +} +function assertRootMode(loc, value) { + if (value !== undefined && value !== "root" && value !== "upward" && value !== "upward-optional") { + throw new Error(`${msg(loc)} must be a "root", "upward", "upward-optional" or undefined`); + } + return value; +} +function assertSourceMaps(loc, value) { + if (value !== undefined && typeof value !== "boolean" && value !== "inline" && value !== "both") { + throw new Error(`${msg(loc)} must be a boolean, "inline", "both", or undefined`); + } + return value; +} +function assertCompact(loc, value) { + if (value !== undefined && typeof value !== "boolean" && value !== "auto") { + throw new Error(`${msg(loc)} must be a boolean, "auto", or undefined`); + } + return value; +} +function assertSourceType(loc, value) { + if (value !== undefined && value !== "module" && value !== "commonjs" && value !== "script" && value !== "unambiguous") { + throw new Error(`${msg(loc)} must be "module", "commonjs", "script", "unambiguous", or undefined`); + } + return value; +} +function assertCallerMetadata(loc, value) { + const obj = assertObject(loc, value); + if (obj) { + if (typeof obj.name !== "string") { + throw new Error(`${msg(loc)} set but does not contain "name" property string`); + } + for (const prop of Object.keys(obj)) { + const propLoc = access(loc, prop); + const value = obj[prop]; + if (value != null && typeof value !== "boolean" && typeof value !== "string" && typeof value !== "number") { + throw new Error(`${msg(propLoc)} must be null, undefined, a boolean, a string, or a number.`); + } + } + } + return value; +} +function assertInputSourceMap(loc, value) { + if (value !== undefined && typeof value !== "boolean" && (typeof value !== "object" || !value)) { + throw new Error(`${msg(loc)} must be a boolean, object, or undefined`); + } + return value; +} +function assertString(loc, value) { + if (value !== undefined && typeof value !== "string") { + throw new Error(`${msg(loc)} must be a string, or undefined`); + } + return value; +} +function assertFunction(loc, value) { + if (value !== undefined && typeof value !== "function") { + throw new Error(`${msg(loc)} must be a function, or undefined`); + } + return value; +} +function assertBoolean(loc, value) { + if (value !== undefined && typeof value !== "boolean") { + throw new Error(`${msg(loc)} must be a boolean, or undefined`); + } + return value; +} +function assertObject(loc, value) { + if (value !== undefined && (typeof value !== "object" || Array.isArray(value) || !value)) { + throw new Error(`${msg(loc)} must be an object, or undefined`); + } + return value; +} +function assertArray(loc, value) { + if (value != null && !Array.isArray(value)) { + throw new Error(`${msg(loc)} must be an array, or undefined`); + } + return value; +} +function assertIgnoreList(loc, value) { + const arr = assertArray(loc, value); + arr == null || arr.forEach((item, i) => assertIgnoreItem(access(loc, i), item)); + return arr; +} +function assertIgnoreItem(loc, value) { + if (typeof value !== "string" && typeof value !== "function" && !(value instanceof RegExp)) { + throw new Error(`${msg(loc)} must be an array of string/Function/RegExp values, or undefined`); + } + return value; +} +function assertConfigApplicableTest(loc, value) { + if (value === undefined) { + return value; + } + if (Array.isArray(value)) { + value.forEach((item, i) => { + if (!checkValidTest(item)) { + throw new Error(`${msg(access(loc, i))} must be a string/Function/RegExp.`); + } + }); + } else if (!checkValidTest(value)) { + throw new Error(`${msg(loc)} must be a string/Function/RegExp, or an array of those`); + } + return value; +} +function checkValidTest(value) { + return typeof value === "string" || typeof value === "function" || value instanceof RegExp; +} +function assertConfigFileSearch(loc, value) { + if (value !== undefined && typeof value !== "boolean" && typeof value !== "string") { + throw new Error(`${msg(loc)} must be a undefined, a boolean, a string, ` + `got ${JSON.stringify(value)}`); + } + return value; +} +function assertBabelrcSearch(loc, value) { + if (value === undefined || typeof value === "boolean") { + return value; + } + if (Array.isArray(value)) { + value.forEach((item, i) => { + if (!checkValidTest(item)) { + throw new Error(`${msg(access(loc, i))} must be a string/Function/RegExp.`); + } + }); + } else if (!checkValidTest(value)) { + throw new Error(`${msg(loc)} must be a undefined, a boolean, a string/Function/RegExp ` + `or an array of those, got ${JSON.stringify(value)}`); + } + return value; +} +function assertPluginList(loc, value) { + const arr = assertArray(loc, value); + if (arr) { + arr.forEach((item, i) => assertPluginItem(access(loc, i), item)); + } + return arr; +} +function assertPluginItem(loc, value) { + if (Array.isArray(value)) { + if (value.length === 0) { + throw new Error(`${msg(loc)} must include an object`); + } + if (value.length > 3) { + throw new Error(`${msg(loc)} may only be a two-tuple or three-tuple`); + } + assertPluginTarget(access(loc, 0), value[0]); + if (value.length > 1) { + const opts = value[1]; + if (opts !== undefined && opts !== false && (typeof opts !== "object" || Array.isArray(opts) || opts === null)) { + throw new Error(`${msg(access(loc, 1))} must be an object, false, or undefined`); + } + } + if (value.length === 3) { + const name = value[2]; + if (name !== undefined && typeof name !== "string") { + throw new Error(`${msg(access(loc, 2))} must be a string, or undefined`); + } + } + } else { + assertPluginTarget(loc, value); + } + return value; +} +function assertPluginTarget(loc, value) { + if ((typeof value !== "object" || !value) && typeof value !== "string" && typeof value !== "function") { + throw new Error(`${msg(loc)} must be a string, object, function`); + } + return value; +} +function assertTargets(loc, value) { + if ((0, _helperCompilationTargets().isBrowsersQueryValid)(value)) return value; + if (typeof value !== "object" || !value || Array.isArray(value)) { + throw new Error(`${msg(loc)} must be a string, an array of strings or an object`); + } + const browsersLoc = access(loc, "browsers"); + const esmodulesLoc = access(loc, "esmodules"); + assertBrowsersList(browsersLoc, value.browsers); + assertBoolean(esmodulesLoc, value.esmodules); + for (const key of Object.keys(value)) { + const val = value[key]; + const subLoc = access(loc, key); + if (key === "esmodules") assertBoolean(subLoc, val);else if (key === "browsers") assertBrowsersList(subLoc, val);else if (!hasOwnProperty.call(_helperCompilationTargets().TargetNames, key)) { + const validTargets = Object.keys(_helperCompilationTargets().TargetNames).join(", "); + throw new Error(`${msg(subLoc)} is not a valid target. Supported targets are ${validTargets}`); + } else assertBrowserVersion(subLoc, val); + } + return value; +} +function assertBrowsersList(loc, value) { + if (value !== undefined && !(0, _helperCompilationTargets().isBrowsersQueryValid)(value)) { + throw new Error(`${msg(loc)} must be undefined, a string or an array of strings`); + } +} +function assertBrowserVersion(loc, value) { + if (typeof value === "number" && Math.round(value) === value) return; + if (typeof value === "string") return; + throw new Error(`${msg(loc)} must be a string or an integer number`); +} +function assertAssumptions(loc, value) { + if (value === undefined) return; + if (typeof value !== "object" || value === null) { + throw new Error(`${msg(loc)} must be an object or undefined.`); + } + let root = loc; + do { + root = root.parent; + } while (root.type !== "root"); + const inPreset = root.source === "preset"; + for (const name of Object.keys(value)) { + const subLoc = access(loc, name); + if (!_options.assumptionsNames.has(name)) { + throw new Error(`${msg(subLoc)} is not a supported assumption.`); + } + if (typeof value[name] !== "boolean") { + throw new Error(`${msg(subLoc)} must be a boolean.`); + } + if (inPreset && value[name] === false) { + throw new Error(`${msg(subLoc)} cannot be set to 'false' inside presets.`); + } + } + return value; +} +0 && 0; + +//# sourceMappingURL=option-assertions.js.map diff --git a/server/api/node_modules/@babel/core/lib/config/validation/option-assertions.js.map b/server/api/node_modules/@babel/core/lib/config/validation/option-assertions.js.map new file mode 100644 index 0000000..38ba554 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/config/validation/option-assertions.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_helperCompilationTargets","data","require","_options","msg","loc","type","parent","name","index","JSON","stringify","Error","access","assertRootMode","value","undefined","assertSourceMaps","assertCompact","assertSourceType","assertCallerMetadata","obj","assertObject","prop","Object","keys","propLoc","assertInputSourceMap","assertString","assertFunction","assertBoolean","Array","isArray","assertArray","assertIgnoreList","arr","forEach","item","i","assertIgnoreItem","RegExp","assertConfigApplicableTest","checkValidTest","assertConfigFileSearch","assertBabelrcSearch","assertPluginList","assertPluginItem","length","assertPluginTarget","opts","assertTargets","isBrowsersQueryValid","browsersLoc","esmodulesLoc","assertBrowsersList","browsers","esmodules","key","val","subLoc","hasOwnProperty","call","TargetNames","validTargets","join","assertBrowserVersion","Math","round","assertAssumptions","root","inPreset","source","assumptionsNames","has"],"sources":["../../../src/config/validation/option-assertions.ts"],"sourcesContent":["import {\n isBrowsersQueryValid,\n TargetNames,\n} from \"@babel/helper-compilation-targets\";\n\nimport type {\n ConfigFileSearch,\n BabelrcSearch,\n MatchItem,\n PluginTarget,\n ConfigApplicableTest,\n SourceMapsOption,\n SourceTypeOption,\n CompactOption,\n RootInputSourceMapOption,\n NestingPath,\n CallerMetadata,\n RootMode,\n TargetsListOrObject,\n AssumptionName,\n PluginItem,\n} from \"./options.ts\";\n\nimport { assumptionsNames } from \"./options.ts\";\n\nexport type { RootPath } from \"./options.ts\";\n\nexport type ValidatorSet = Record>;\n\nexport type Validator = (loc: OptionPath, value: unknown) => T;\n\nexport function msg(loc: NestingPath | GeneralPath): string {\n switch (loc.type) {\n case \"root\":\n return ``;\n case \"env\":\n return `${msg(loc.parent)}.env[\"${loc.name}\"]`;\n case \"overrides\":\n return `${msg(loc.parent)}.overrides[${loc.index}]`;\n case \"option\":\n return `${msg(loc.parent)}.${loc.name}`;\n case \"access\":\n return `${msg(loc.parent)}[${JSON.stringify(loc.name)}]`;\n default:\n // @ts-expect-error should not happen when code is type checked\n throw new Error(`Assertion failure: Unknown type ${loc.type}`);\n }\n}\n\nexport function access(loc: GeneralPath, name: string | number): AccessPath {\n return {\n type: \"access\",\n name,\n parent: loc,\n };\n}\n\nexport type OptionPath = Readonly<{\n type: \"option\";\n name: string;\n parent: NestingPath;\n}>;\ntype AccessPath = Readonly<{\n type: \"access\";\n name: string | number;\n parent: GeneralPath;\n}>;\ntype GeneralPath = OptionPath | AccessPath;\n\nexport function assertRootMode(\n loc: OptionPath,\n value: unknown,\n): RootMode | void {\n if (\n value !== undefined &&\n value !== \"root\" &&\n value !== \"upward\" &&\n value !== \"upward-optional\"\n ) {\n throw new Error(\n `${msg(loc)} must be a \"root\", \"upward\", \"upward-optional\" or undefined`,\n );\n }\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n}\n\nexport function assertSourceMaps(\n loc: OptionPath,\n value: unknown,\n): SourceMapsOption | void {\n if (\n value !== undefined &&\n typeof value !== \"boolean\" &&\n value !== \"inline\" &&\n value !== \"both\"\n ) {\n throw new Error(\n `${msg(loc)} must be a boolean, \"inline\", \"both\", or undefined`,\n );\n }\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n}\n\nexport function assertCompact(\n loc: OptionPath,\n value: unknown,\n): CompactOption | void {\n if (value !== undefined && typeof value !== \"boolean\" && value !== \"auto\") {\n throw new Error(`${msg(loc)} must be a boolean, \"auto\", or undefined`);\n }\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n}\n\nexport function assertSourceType(\n loc: OptionPath,\n value: unknown,\n): SourceTypeOption | void {\n if (\n value !== undefined &&\n value !== \"module\" &&\n value !== \"commonjs\" &&\n value !== \"script\" &&\n value !== \"unambiguous\"\n ) {\n throw new Error(\n `${msg(loc)} must be \"module\", \"commonjs\", \"script\", \"unambiguous\", or undefined`,\n );\n }\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n}\n\nexport function assertCallerMetadata(\n loc: OptionPath,\n value: unknown,\n): CallerMetadata | undefined {\n const obj = assertObject(loc, value);\n if (obj) {\n if (typeof obj.name !== \"string\") {\n throw new Error(\n `${msg(loc)} set but does not contain \"name\" property string`,\n );\n }\n\n for (const prop of Object.keys(obj)) {\n const propLoc = access(loc, prop);\n const value = obj[prop];\n if (\n value != null &&\n typeof value !== \"boolean\" &&\n typeof value !== \"string\" &&\n typeof value !== \"number\"\n ) {\n // NOTE(logan): I'm limiting the type here so that we can guarantee that\n // the \"caller\" value will serialize to JSON nicely. We can always\n // allow more complex structures later though.\n throw new Error(\n `${msg(\n propLoc,\n )} must be null, undefined, a boolean, a string, or a number.`,\n );\n }\n }\n }\n // @ts-expect-error todo(flow->ts)\n return value;\n}\n\nexport function assertInputSourceMap(\n loc: OptionPath,\n value: unknown,\n): RootInputSourceMapOption {\n if (\n value !== undefined &&\n typeof value !== \"boolean\" &&\n (typeof value !== \"object\" || !value)\n ) {\n throw new Error(`${msg(loc)} must be a boolean, object, or undefined`);\n }\n return value as RootInputSourceMapOption;\n}\n\nexport function assertString(loc: GeneralPath, value: unknown): string | void {\n if (value !== undefined && typeof value !== \"string\") {\n throw new Error(`${msg(loc)} must be a string, or undefined`);\n }\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n}\n\nexport function assertFunction(\n loc: GeneralPath,\n value: unknown,\n): Function | void {\n if (value !== undefined && typeof value !== \"function\") {\n throw new Error(`${msg(loc)} must be a function, or undefined`);\n }\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n}\n\nexport function assertBoolean(\n loc: GeneralPath,\n value: unknown,\n): boolean | void {\n if (value !== undefined && typeof value !== \"boolean\") {\n throw new Error(`${msg(loc)} must be a boolean, or undefined`);\n }\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n}\n\nexport function assertObject(\n loc: GeneralPath,\n value: unknown,\n): Readonly> | void {\n if (\n value !== undefined &&\n (typeof value !== \"object\" || Array.isArray(value) || !value)\n ) {\n throw new Error(`${msg(loc)} must be an object, or undefined`);\n }\n // @ts-expect-error todo(flow->ts) value is still typed as unknown, also assert function typically should not return a value\n return value;\n}\n\nexport function assertArray(\n loc: GeneralPath,\n value: T[] | undefined | null,\n): T[] | undefined | null {\n if (value != null && !Array.isArray(value)) {\n throw new Error(`${msg(loc)} must be an array, or undefined`);\n }\n return value;\n}\n\nexport function assertIgnoreList(\n loc: OptionPath,\n value: unknown[] | undefined,\n): MatchItem[] | void {\n const arr = assertArray(loc, value);\n arr?.forEach((item, i) => assertIgnoreItem(access(loc, i), item));\n // @ts-expect-error todo(flow->ts)\n return arr;\n}\nfunction assertIgnoreItem(loc: GeneralPath, value: unknown): MatchItem {\n if (\n typeof value !== \"string\" &&\n typeof value !== \"function\" &&\n !(value instanceof RegExp)\n ) {\n throw new Error(\n `${msg(\n loc,\n )} must be an array of string/Function/RegExp values, or undefined`,\n );\n }\n return value as MatchItem;\n}\n\nexport function assertConfigApplicableTest(\n loc: OptionPath,\n value: unknown,\n): ConfigApplicableTest | void {\n if (value === undefined) {\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n }\n\n if (Array.isArray(value)) {\n value.forEach((item, i) => {\n if (!checkValidTest(item)) {\n throw new Error(\n `${msg(access(loc, i))} must be a string/Function/RegExp.`,\n );\n }\n });\n } else if (!checkValidTest(value)) {\n throw new Error(\n `${msg(loc)} must be a string/Function/RegExp, or an array of those`,\n );\n }\n return value as ConfigApplicableTest;\n}\n\nfunction checkValidTest(value: unknown): value is string | Function | RegExp {\n return (\n typeof value === \"string\" ||\n typeof value === \"function\" ||\n value instanceof RegExp\n );\n}\n\nexport function assertConfigFileSearch(\n loc: OptionPath,\n value: unknown,\n): ConfigFileSearch | void {\n if (\n value !== undefined &&\n typeof value !== \"boolean\" &&\n typeof value !== \"string\"\n ) {\n throw new Error(\n `${msg(loc)} must be a undefined, a boolean, a string, ` +\n `got ${JSON.stringify(value)}`,\n );\n }\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n}\n\nexport function assertBabelrcSearch(\n loc: OptionPath,\n value: unknown,\n): BabelrcSearch | void {\n if (value === undefined || typeof value === \"boolean\") {\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n }\n\n if (Array.isArray(value)) {\n value.forEach((item, i) => {\n if (!checkValidTest(item)) {\n throw new Error(\n `${msg(access(loc, i))} must be a string/Function/RegExp.`,\n );\n }\n });\n } else if (!checkValidTest(value)) {\n throw new Error(\n `${msg(loc)} must be a undefined, a boolean, a string/Function/RegExp ` +\n `or an array of those, got ${JSON.stringify(value as any)}`,\n );\n }\n return value as BabelrcSearch;\n}\n\nexport function assertPluginList(\n loc: OptionPath,\n value: unknown[] | null | undefined,\n): PluginItem[] {\n const arr = assertArray(loc, value);\n if (arr) {\n // Loop instead of using `.map` in order to preserve object identity\n // for plugin array for use during config chain processing.\n arr.forEach((item, i) => assertPluginItem(access(loc, i), item));\n }\n return arr as PluginItem[];\n}\nfunction assertPluginItem(loc: GeneralPath, value: unknown): PluginItem {\n if (Array.isArray(value)) {\n if (value.length === 0) {\n throw new Error(`${msg(loc)} must include an object`);\n }\n\n if (value.length > 3) {\n throw new Error(`${msg(loc)} may only be a two-tuple or three-tuple`);\n }\n\n assertPluginTarget(access(loc, 0), value[0]);\n\n if (value.length > 1) {\n const opts = value[1];\n if (\n opts !== undefined &&\n opts !== false &&\n (typeof opts !== \"object\" || Array.isArray(opts) || opts === null)\n ) {\n throw new Error(\n `${msg(access(loc, 1))} must be an object, false, or undefined`,\n );\n }\n }\n if (value.length === 3) {\n const name = value[2];\n if (name !== undefined && typeof name !== \"string\") {\n throw new Error(\n `${msg(access(loc, 2))} must be a string, or undefined`,\n );\n }\n }\n } else {\n assertPluginTarget(loc, value);\n }\n\n return value as PluginItem;\n}\nfunction assertPluginTarget(loc: GeneralPath, value: unknown): PluginTarget {\n if (\n (typeof value !== \"object\" || !value) &&\n typeof value !== \"string\" &&\n typeof value !== \"function\"\n ) {\n throw new Error(`${msg(loc)} must be a string, object, function`);\n }\n return value as PluginTarget;\n}\n\nexport function assertTargets(\n loc: GeneralPath,\n value: any,\n): TargetsListOrObject {\n if (isBrowsersQueryValid(value)) return value;\n\n if (typeof value !== \"object\" || !value || Array.isArray(value)) {\n throw new Error(\n `${msg(loc)} must be a string, an array of strings or an object`,\n );\n }\n\n const browsersLoc = access(loc, \"browsers\");\n const esmodulesLoc = access(loc, \"esmodules\");\n\n assertBrowsersList(browsersLoc, value.browsers);\n assertBoolean(esmodulesLoc, value.esmodules);\n\n for (const key of Object.keys(value)) {\n const val = value[key];\n const subLoc = access(loc, key);\n\n if (key === \"esmodules\") assertBoolean(subLoc, val);\n else if (key === \"browsers\") assertBrowsersList(subLoc, val);\n else if (!Object.hasOwn(TargetNames, key)) {\n const validTargets = Object.keys(TargetNames).join(\", \");\n throw new Error(\n `${msg(\n subLoc,\n )} is not a valid target. Supported targets are ${validTargets}`,\n );\n } else assertBrowserVersion(subLoc, val);\n }\n\n return value;\n}\n\nfunction assertBrowsersList(loc: GeneralPath, value: unknown) {\n if (value !== undefined && !isBrowsersQueryValid(value)) {\n throw new Error(\n `${msg(loc)} must be undefined, a string or an array of strings`,\n );\n }\n}\n\nfunction assertBrowserVersion(loc: GeneralPath, value: unknown) {\n if (typeof value === \"number\" && Math.round(value) === value) return;\n if (typeof value === \"string\") return;\n\n throw new Error(`${msg(loc)} must be a string or an integer number`);\n}\n\nexport function assertAssumptions(\n loc: GeneralPath,\n value: Record,\n): Record | void {\n if (value === undefined) return;\n\n if (typeof value !== \"object\" || value === null) {\n throw new Error(`${msg(loc)} must be an object or undefined.`);\n }\n\n // todo(flow->ts): remove any\n let root: any = loc;\n do {\n root = root.parent;\n } while (root.type !== \"root\");\n const inPreset = root.source === \"preset\";\n\n for (const name of Object.keys(value)) {\n const subLoc = access(loc, name);\n if (!assumptionsNames.has(name as AssumptionName)) {\n throw new Error(`${msg(subLoc)} is not a supported assumption.`);\n }\n if (typeof value[name] !== \"boolean\") {\n throw new Error(`${msg(subLoc)} must be a boolean.`);\n }\n if (inPreset && value[name] === false) {\n throw new Error(\n `${msg(subLoc)} cannot be set to 'false' inside presets.`,\n );\n }\n }\n\n // @ts-expect-error todo(flow->ts)\n return value;\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/core/lib/config/validation/options.js b/server/api/node_modules/@babel/core/lib/config/validation/options.js new file mode 100644 index 0000000..d694170 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/config/validation/options.js @@ -0,0 +1,187 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.assumptionsNames = void 0; +exports.checkNoUnwrappedItemOptionPairs = checkNoUnwrappedItemOptionPairs; +exports.validate = validate; +var _removed = require("./removed.js"); +var _optionAssertions = require("./option-assertions.js"); +var _configError = require("../../errors/config-error.js"); +const ROOT_VALIDATORS = { + cwd: _optionAssertions.assertString, + root: _optionAssertions.assertString, + rootMode: _optionAssertions.assertRootMode, + configFile: _optionAssertions.assertConfigFileSearch, + caller: _optionAssertions.assertCallerMetadata, + filename: _optionAssertions.assertString, + filenameRelative: _optionAssertions.assertString, + code: _optionAssertions.assertBoolean, + ast: _optionAssertions.assertBoolean, + cloneInputAst: _optionAssertions.assertBoolean, + envName: _optionAssertions.assertString +}; +const BABELRC_VALIDATORS = { + babelrc: _optionAssertions.assertBoolean, + babelrcRoots: _optionAssertions.assertBabelrcSearch +}; +const NONPRESET_VALIDATORS = { + extends: _optionAssertions.assertString, + ignore: _optionAssertions.assertIgnoreList, + only: _optionAssertions.assertIgnoreList, + targets: _optionAssertions.assertTargets, + browserslistConfigFile: _optionAssertions.assertConfigFileSearch, + browserslistEnv: _optionAssertions.assertString +}; +const COMMON_VALIDATORS = { + inputSourceMap: _optionAssertions.assertInputSourceMap, + presets: _optionAssertions.assertPluginList, + plugins: _optionAssertions.assertPluginList, + passPerPreset: _optionAssertions.assertBoolean, + assumptions: _optionAssertions.assertAssumptions, + env: assertEnvSet, + overrides: assertOverridesList, + test: _optionAssertions.assertConfigApplicableTest, + include: _optionAssertions.assertConfigApplicableTest, + exclude: _optionAssertions.assertConfigApplicableTest, + retainLines: _optionAssertions.assertBoolean, + comments: _optionAssertions.assertBoolean, + shouldPrintComment: _optionAssertions.assertFunction, + compact: _optionAssertions.assertCompact, + minified: _optionAssertions.assertBoolean, + auxiliaryCommentBefore: _optionAssertions.assertString, + auxiliaryCommentAfter: _optionAssertions.assertString, + sourceType: _optionAssertions.assertSourceType, + wrapPluginVisitorMethod: _optionAssertions.assertFunction, + highlightCode: _optionAssertions.assertBoolean, + sourceMaps: _optionAssertions.assertSourceMaps, + sourceMap: _optionAssertions.assertSourceMaps, + sourceFileName: _optionAssertions.assertString, + sourceRoot: _optionAssertions.assertString, + parserOpts: _optionAssertions.assertObject, + generatorOpts: _optionAssertions.assertObject +}; +Object.assign(COMMON_VALIDATORS, { + getModuleId: _optionAssertions.assertFunction, + moduleRoot: _optionAssertions.assertString, + moduleIds: _optionAssertions.assertBoolean, + moduleId: _optionAssertions.assertString +}); +const knownAssumptions = ["arrayLikeIsIterable", "constantReexports", "constantSuper", "enumerableModuleMeta", "ignoreFunctionLength", "ignoreToPrimitiveHint", "iterableIsArray", "mutableTemplateObject", "noClassCalls", "noDocumentAll", "noIncompleteNsImportDetection", "noNewArrows", "noUninitializedPrivateFieldAccess", "objectRestNoSymbols", "privateFieldsAsSymbols", "privateFieldsAsProperties", "pureGetters", "setClassMethods", "setComputedProperties", "setPublicClassFields", "setSpreadProperties", "skipForOfIteratorClosing", "superIsCallableConstructor"]; +const assumptionsNames = exports.assumptionsNames = new Set(knownAssumptions); +function getSource(loc) { + return loc.type === "root" ? loc.source : getSource(loc.parent); +} +function validate(type, opts, filename) { + try { + return validateNested({ + type: "root", + source: type + }, opts); + } catch (error) { + const configError = new _configError.default(error.message, filename); + if (error.code) configError.code = error.code; + throw configError; + } +} +function validateNested(loc, opts) { + const type = getSource(loc); + assertNoDuplicateSourcemap(opts); + Object.keys(opts).forEach(key => { + const optLoc = { + type: "option", + name: key, + parent: loc + }; + if (type === "preset" && NONPRESET_VALIDATORS[key]) { + throw new Error(`${(0, _optionAssertions.msg)(optLoc)} is not allowed in preset options`); + } + if (type !== "arguments" && ROOT_VALIDATORS[key]) { + throw new Error(`${(0, _optionAssertions.msg)(optLoc)} is only allowed in root programmatic options`); + } + if (type !== "arguments" && type !== "configfile" && BABELRC_VALIDATORS[key]) { + if (type === "babelrcfile" || type === "extendsfile") { + throw new Error(`${(0, _optionAssertions.msg)(optLoc)} is not allowed in .babelrc or "extends"ed files, only in root programmatic options, ` + `or babel.config.js/config file options`); + } + throw new Error(`${(0, _optionAssertions.msg)(optLoc)} is only allowed in root programmatic options, or babel.config.js/config file options`); + } + const validator = COMMON_VALIDATORS[key] || NONPRESET_VALIDATORS[key] || BABELRC_VALIDATORS[key] || ROOT_VALIDATORS[key] || throwUnknownError; + validator(optLoc, opts[key]); + }); + return opts; +} +function throwUnknownError(loc) { + const key = loc.name; + if (_removed.default[key]) { + const { + message, + version = 5 + } = _removed.default[key]; + throw new Error(`Using removed Babel ${version} option: ${(0, _optionAssertions.msg)(loc)} - ${message}`); + } else { + const unknownOptErr = new Error(`Unknown option: ${(0, _optionAssertions.msg)(loc)}. Check out https://babeljs.io/docs/en/babel-core/#options for more information about options.`); + unknownOptErr.code = "BABEL_UNKNOWN_OPTION"; + throw unknownOptErr; + } +} +function assertNoDuplicateSourcemap(opts) { + if (hasOwnProperty.call(opts, "sourceMap") && hasOwnProperty.call(opts, "sourceMaps")) { + throw new Error(".sourceMap is an alias for .sourceMaps, cannot use both"); + } +} +function assertEnvSet(loc, value) { + if (loc.parent.type === "env") { + throw new Error(`${(0, _optionAssertions.msg)(loc)} is not allowed inside of another .env block`); + } + const parent = loc.parent; + const obj = (0, _optionAssertions.assertObject)(loc, value); + if (obj) { + for (const envName of Object.keys(obj)) { + const env = (0, _optionAssertions.assertObject)((0, _optionAssertions.access)(loc, envName), obj[envName]); + if (!env) continue; + const envLoc = { + type: "env", + name: envName, + parent + }; + validateNested(envLoc, env); + } + } + return obj; +} +function assertOverridesList(loc, value) { + if (loc.parent.type === "env") { + throw new Error(`${(0, _optionAssertions.msg)(loc)} is not allowed inside an .env block`); + } + if (loc.parent.type === "overrides") { + throw new Error(`${(0, _optionAssertions.msg)(loc)} is not allowed inside an .overrides block`); + } + const parent = loc.parent; + const arr = (0, _optionAssertions.assertArray)(loc, value); + if (arr) { + for (const [index, item] of arr.entries()) { + const objLoc = (0, _optionAssertions.access)(loc, index); + const env = (0, _optionAssertions.assertObject)(objLoc, item); + if (!env) throw new Error(`${(0, _optionAssertions.msg)(objLoc)} must be an object`); + const overridesLoc = { + type: "overrides", + index, + parent + }; + validateNested(overridesLoc, env); + } + } + return arr; +} +function checkNoUnwrappedItemOptionPairs(items, index, type, e) { + if (index === 0) return; + const lastItem = items[index - 1]; + const thisItem = items[index]; + if (lastItem.file && lastItem.options === undefined && typeof thisItem.value === "object") { + e.message += `\n- Maybe you meant to use\n` + `"${type}s": [\n ["${lastItem.file.request}", ${JSON.stringify(thisItem.value, undefined, 2)}]\n]\n` + `To be a valid ${type}, its name and options should be wrapped in a pair of brackets`; + } +} +0 && 0; + +//# sourceMappingURL=options.js.map diff --git a/server/api/node_modules/@babel/core/lib/config/validation/options.js.map b/server/api/node_modules/@babel/core/lib/config/validation/options.js.map new file mode 100644 index 0000000..a1a5185 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/config/validation/options.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_removed","require","_optionAssertions","_configError","ROOT_VALIDATORS","cwd","assertString","root","rootMode","assertRootMode","configFile","assertConfigFileSearch","caller","assertCallerMetadata","filename","filenameRelative","code","assertBoolean","ast","cloneInputAst","envName","BABELRC_VALIDATORS","babelrc","babelrcRoots","assertBabelrcSearch","NONPRESET_VALIDATORS","extends","ignore","assertIgnoreList","only","targets","assertTargets","browserslistConfigFile","browserslistEnv","COMMON_VALIDATORS","inputSourceMap","assertInputSourceMap","presets","assertPluginList","plugins","passPerPreset","assumptions","assertAssumptions","env","assertEnvSet","overrides","assertOverridesList","test","assertConfigApplicableTest","include","exclude","retainLines","comments","shouldPrintComment","assertFunction","compact","assertCompact","minified","auxiliaryCommentBefore","auxiliaryCommentAfter","sourceType","assertSourceType","wrapPluginVisitorMethod","highlightCode","sourceMaps","assertSourceMaps","sourceMap","sourceFileName","sourceRoot","parserOpts","assertObject","generatorOpts","Object","assign","getModuleId","moduleRoot","moduleIds","moduleId","knownAssumptions","assumptionsNames","exports","Set","getSource","loc","type","source","parent","validate","opts","validateNested","error","configError","ConfigError","message","assertNoDuplicateSourcemap","keys","forEach","key","optLoc","name","Error","msg","validator","throwUnknownError","removed","version","unknownOptErr","hasOwnProperty","call","value","obj","access","envLoc","arr","assertArray","index","item","entries","objLoc","overridesLoc","checkNoUnwrappedItemOptionPairs","items","e","lastItem","thisItem","file","options","undefined","request","JSON","stringify"],"sources":["../../../src/config/validation/options.ts"],"sourcesContent":["import type { InputTargets, Targets } from \"@babel/helper-compilation-targets\";\n\nimport type { ConfigItem } from \"../item.ts\";\n\nimport removed from \"./removed.ts\";\nimport {\n msg,\n access,\n assertString,\n assertBoolean,\n assertObject,\n assertArray,\n assertCallerMetadata,\n assertInputSourceMap,\n assertIgnoreList,\n assertPluginList,\n assertConfigApplicableTest,\n assertConfigFileSearch,\n assertBabelrcSearch,\n assertFunction,\n assertRootMode,\n assertSourceMaps,\n assertCompact,\n assertSourceType,\n assertTargets,\n assertAssumptions,\n} from \"./option-assertions.ts\";\nimport type {\n ValidatorSet,\n Validator,\n OptionPath,\n} from \"./option-assertions.ts\";\nimport type { UnloadedDescriptor } from \"../config-descriptors.ts\";\nimport type { PluginAPI } from \"../helpers/config-api.ts\";\nimport type { ParserOptions } from \"@babel/parser\";\nimport type { GeneratorOptions } from \"@babel/generator\";\nimport type { VisitWrapper } from \"@babel/traverse\";\nimport ConfigError from \"../../errors/config-error.ts\";\nimport type { PluginObject } from \"./plugins.ts\";\nimport type Plugin from \"../plugin.ts\";\nimport type { PresetAPI } from \"../index.ts\";\nimport type { PresetObject } from \"../../index.ts\";\n\nconst ROOT_VALIDATORS: ValidatorSet = {\n cwd: assertString as Validator,\n root: assertString as Validator,\n rootMode: assertRootMode as Validator,\n configFile: assertConfigFileSearch as Validator,\n\n caller: assertCallerMetadata as Validator,\n filename: assertString as Validator,\n filenameRelative: assertString as Validator,\n code: assertBoolean as Validator,\n ast: assertBoolean as Validator,\n\n cloneInputAst: assertBoolean as Validator,\n\n envName: assertString as Validator,\n};\n\nconst BABELRC_VALIDATORS: ValidatorSet = {\n babelrc: assertBoolean as Validator,\n babelrcRoots: assertBabelrcSearch as Validator,\n};\n\nconst NONPRESET_VALIDATORS: ValidatorSet = {\n extends: assertString as Validator,\n ignore: assertIgnoreList as Validator,\n only: assertIgnoreList as Validator,\n\n targets: assertTargets as Validator,\n browserslistConfigFile: assertConfigFileSearch as Validator<\n InputOptions[\"browserslistConfigFile\"]\n >,\n browserslistEnv: assertString as Validator,\n};\n\nconst COMMON_VALIDATORS: ValidatorSet = {\n // TODO: Should 'inputSourceMap' be moved to be a root-only option?\n // We may want a boolean-only version to be a common option, with the\n // object only allowed as a root config argument.\n inputSourceMap: assertInputSourceMap as Validator<\n InputOptions[\"inputSourceMap\"]\n >,\n presets: assertPluginList as Validator,\n plugins: assertPluginList as Validator,\n passPerPreset: assertBoolean as Validator,\n assumptions: assertAssumptions as Validator,\n\n env: assertEnvSet as Validator,\n overrides: assertOverridesList as Validator,\n\n // We could limit these to 'overrides' blocks, but it's not clear why we'd\n // bother, when the ability to limit a config to a specific set of files\n // is a fairly general useful feature.\n test: assertConfigApplicableTest as Validator,\n include: assertConfigApplicableTest as Validator,\n exclude: assertConfigApplicableTest as Validator,\n\n retainLines: assertBoolean as Validator,\n comments: assertBoolean as Validator,\n shouldPrintComment: assertFunction as Validator<\n InputOptions[\"shouldPrintComment\"]\n >,\n compact: assertCompact as Validator,\n minified: assertBoolean as Validator,\n auxiliaryCommentBefore: assertString as Validator<\n InputOptions[\"auxiliaryCommentBefore\"]\n >,\n auxiliaryCommentAfter: assertString as Validator<\n InputOptions[\"auxiliaryCommentAfter\"]\n >,\n sourceType: assertSourceType as Validator,\n wrapPluginVisitorMethod: assertFunction as Validator<\n InputOptions[\"wrapPluginVisitorMethod\"]\n >,\n highlightCode: assertBoolean as Validator,\n sourceMaps: assertSourceMaps as Validator,\n sourceMap: assertSourceMaps as Validator,\n sourceFileName: assertString as Validator,\n sourceRoot: assertString as Validator,\n parserOpts: assertObject as Validator,\n generatorOpts: assertObject as Validator,\n};\nif (!process.env.BABEL_8_BREAKING) {\n Object.assign(COMMON_VALIDATORS, {\n getModuleId: assertFunction,\n moduleRoot: assertString,\n moduleIds: assertBoolean,\n moduleId: assertString,\n });\n}\n\ntype Assumptions = {\n arrayLikeIsIterable?: boolean;\n constantReexports?: boolean;\n constantSuper?: boolean;\n enumerableModuleMeta?: boolean;\n ignoreFunctionLength?: boolean;\n ignoreToPrimitiveHint?: boolean;\n iterableIsArray?: boolean;\n mutableTemplateObject?: boolean;\n noClassCalls?: boolean;\n noDocumentAll?: boolean;\n noIncompleteNsImportDetection?: boolean;\n noNewArrows?: boolean;\n noUninitializedPrivateFieldAccess?: boolean;\n objectRestNoSymbols?: boolean;\n privateFieldsAsProperties?: boolean;\n privateFieldsAsSymbols?: boolean;\n pureGetters?: boolean;\n setClassMethods?: boolean;\n setComputedProperties?: boolean;\n setPublicClassFields?: boolean;\n setSpreadProperties?: boolean;\n skipForOfIteratorClosing?: boolean;\n superIsCallableConstructor?: boolean;\n};\n\nexport type AssumptionName = keyof Assumptions;\n\nexport type InputOptions = {\n cwd?: string;\n filename?: string;\n filenameRelative?: string;\n babelrc?: boolean;\n babelrcRoots?: BabelrcSearch;\n configFile?: ConfigFileSearch;\n root?: string;\n rootMode?: RootMode;\n code?: boolean;\n ast?: boolean;\n cloneInputAst?: boolean;\n inputSourceMap?: RootInputSourceMapOption;\n envName?: string;\n caller?: CallerMetadata;\n extends?: string;\n env?: EnvSet;\n ignore?: MatchItem[];\n only?: MatchItem[];\n overrides?: InputOptions[];\n showIgnoredFiles?: boolean;\n // Generally verify if a given config object should be applied to the given file.\n test?: ConfigApplicableTest;\n include?: ConfigApplicableTest;\n exclude?: ConfigApplicableTest;\n presets?: PresetItem[];\n plugins?: PluginItem[];\n passPerPreset?: boolean;\n assumptions?: Assumptions;\n // browserslists-related options\n targets?: TargetsListOrObject;\n browserslistConfigFile?: ConfigFileSearch;\n browserslistEnv?: string;\n // Options for @babel/generator\n retainLines?: GeneratorOptions[\"retainLines\"];\n comments?: GeneratorOptions[\"comments\"];\n shouldPrintComment?: GeneratorOptions[\"shouldPrintComment\"];\n compact?: GeneratorOptions[\"compact\"];\n minified?: GeneratorOptions[\"minified\"];\n auxiliaryCommentBefore?: GeneratorOptions[\"auxiliaryCommentBefore\"];\n auxiliaryCommentAfter?: GeneratorOptions[\"auxiliaryCommentAfter\"];\n // Parser\n sourceType?: SourceTypeOption;\n wrapPluginVisitorMethod?: VisitWrapper | null;\n highlightCode?: boolean;\n // Sourcemap generation options.\n sourceMaps?: SourceMapsOption;\n sourceMap?: SourceMapsOption;\n sourceFileName?: string;\n sourceRoot?: string;\n // Todo(Babel 9): Deprecate top level parserOpts\n parserOpts?: ParserOptions;\n // Todo(Babel 9): Deprecate top level generatorOpts\n generatorOpts?: GeneratorOptions;\n};\n\nexport type NormalizedOptions = Omit & {\n assumptions: Assumptions;\n targets: Targets;\n cloneInputAst: boolean;\n babelrc: false;\n configFile: false;\n browserslistConfigFile: false;\n passPerPreset: false;\n envName: string;\n cwd: string;\n root: string;\n rootMode: \"root\";\n filename: string | undefined;\n presets: ConfigItem[];\n plugins: ConfigItem[];\n};\n\nexport type ResolvedOptions = Omit<\n NormalizedOptions,\n \"presets\" | \"plugins\" | \"passPerPreset\"\n> & {\n presets: { plugins: Plugin[] }[];\n plugins: Plugin[];\n passPerPreset: boolean;\n};\n\nexport type ConfigChainOptions = Omit<\n InputOptions,\n | \"extends\"\n | \"env\"\n | \"overrides\"\n | \"plugins\"\n | \"presets\"\n | \"passPerPreset\"\n | \"ignore\"\n | \"only\"\n | \"test\"\n | \"include\"\n | \"exclude\"\n | \"sourceMap\"\n>;\n\nexport type CallerMetadata = {\n // If 'caller' is specified, require that the name is given for debugging\n // messages.\n name: string;\n supportsStaticESM?: boolean;\n supportsDynamicImport?: boolean;\n supportsTopLevelAwait?: boolean;\n supportsExportNamespaceFrom?: boolean;\n};\nexport type EnvSet = Record;\nexport type MatchItem =\n | string\n | RegExp\n | ((\n path: string | undefined,\n context: { dirname: string; caller: CallerMetadata; envName: string },\n ) => unknown);\n\nexport type MaybeDefaultProperty = T | { default: T };\n\nexport type PluginTarget =\n | string\n | MaybeDefaultProperty<\n (api: PluginAPI, options?: object, dirname?: string) => PluginObject\n >;\nexport type PluginItem =\n | ConfigItem\n | PluginTarget\n | [PluginTarget, object]\n | [PluginTarget, object, string];\n\nexport type PresetTarget =\n | string\n | MaybeDefaultProperty<\n (api: PresetAPI, options?: object, dirname?: string) => PresetObject\n >;\nexport type PresetItem =\n | ConfigItem\n | PresetTarget\n | [PresetTarget, object]\n | [PresetTarget, object, string];\n\nexport type ConfigApplicableTest = MatchItem | MatchItem[];\n\nexport type ConfigFileSearch = string | boolean;\nexport type BabelrcSearch = boolean | MatchItem | MatchItem[];\nexport type SourceMapsOption = boolean | \"inline\" | \"both\";\nexport type SourceTypeOption = \"module\" | \"commonjs\" | \"script\" | \"unambiguous\";\nexport type CompactOption = boolean | \"auto\";\n// https://github.com/mozilla/source-map/blob/801be934007c3ed0ef66c620641b1668e92c891d/source-map.d.ts#L15C8-L23C2\ninterface InputSourceMap {\n version: number;\n sources: string[];\n names: string[];\n sourceRoot?: string | undefined;\n sourcesContent?: string[] | undefined;\n mappings: string;\n file: string;\n}\nexport type RootInputSourceMapOption = InputSourceMap | boolean;\nexport type RootMode = \"root\" | \"upward\" | \"upward-optional\";\n\nexport type TargetsListOrObject =\n | Targets\n | InputTargets\n | InputTargets[\"browsers\"];\n\nexport type OptionsSource =\n | \"arguments\"\n | \"configfile\"\n | \"babelrcfile\"\n | \"extendsfile\"\n | \"preset\"\n | \"plugin\";\n\nexport type RootPath = Readonly<{\n type: \"root\";\n source: OptionsSource;\n}>;\n\ntype OverridesPath = Readonly<{\n type: \"overrides\";\n index: number;\n parent: RootPath;\n}>;\n\ntype EnvPath = Readonly<{\n type: \"env\";\n name: string;\n parent: RootPath | OverridesPath;\n}>;\n\nexport type NestingPath = RootPath | OverridesPath | EnvPath;\n\nconst knownAssumptions = [\n \"arrayLikeIsIterable\",\n \"constantReexports\",\n \"constantSuper\",\n \"enumerableModuleMeta\",\n \"ignoreFunctionLength\",\n \"ignoreToPrimitiveHint\",\n \"iterableIsArray\",\n \"mutableTemplateObject\",\n \"noClassCalls\",\n \"noDocumentAll\",\n \"noIncompleteNsImportDetection\",\n \"noNewArrows\",\n \"noUninitializedPrivateFieldAccess\",\n \"objectRestNoSymbols\",\n \"privateFieldsAsSymbols\",\n \"privateFieldsAsProperties\",\n \"pureGetters\",\n \"setClassMethods\",\n \"setComputedProperties\",\n \"setPublicClassFields\",\n \"setSpreadProperties\",\n \"skipForOfIteratorClosing\",\n \"superIsCallableConstructor\",\n] as const;\nexport const assumptionsNames = new Set(knownAssumptions);\n\nfunction getSource(loc: NestingPath): OptionsSource {\n return loc.type === \"root\" ? loc.source : getSource(loc.parent);\n}\n\nexport function validate(\n type: OptionsSource,\n opts: any,\n filename?: string,\n): InputOptions {\n try {\n return validateNested(\n {\n type: \"root\",\n source: type,\n },\n opts,\n );\n } catch (error) {\n const configError = new ConfigError(error.message, filename);\n // @ts-expect-error TODO: .code is not defined on ConfigError or Error\n if (error.code) configError.code = error.code;\n throw configError;\n }\n}\n\nfunction validateNested(loc: NestingPath, opts: Record) {\n const type = getSource(loc);\n assertNoDuplicateSourcemap(opts);\n\n Object.keys(opts).forEach((key: string) => {\n const optLoc = {\n type: \"option\",\n name: key,\n parent: loc,\n } as const;\n\n if (type === \"preset\" && NONPRESET_VALIDATORS[key]) {\n throw new Error(`${msg(optLoc)} is not allowed in preset options`);\n }\n if (type !== \"arguments\" && ROOT_VALIDATORS[key]) {\n throw new Error(\n `${msg(optLoc)} is only allowed in root programmatic options`,\n );\n }\n if (\n type !== \"arguments\" &&\n type !== \"configfile\" &&\n BABELRC_VALIDATORS[key]\n ) {\n if (type === \"babelrcfile\" || type === \"extendsfile\") {\n throw new Error(\n `${msg(\n optLoc,\n )} is not allowed in .babelrc or \"extends\"ed files, only in root programmatic options, ` +\n `or babel.config.js/config file options`,\n );\n }\n\n throw new Error(\n `${msg(\n optLoc,\n )} is only allowed in root programmatic options, or babel.config.js/config file options`,\n );\n }\n\n const validator =\n COMMON_VALIDATORS[key] ||\n NONPRESET_VALIDATORS[key] ||\n BABELRC_VALIDATORS[key] ||\n ROOT_VALIDATORS[key] ||\n (throwUnknownError as Validator);\n\n validator(optLoc, opts[key]);\n });\n\n return opts;\n}\n\nfunction throwUnknownError(loc: OptionPath) {\n const key = loc.name;\n\n if (removed[key]) {\n const { message, version = 5 } = removed[key];\n\n throw new Error(\n `Using removed Babel ${version} option: ${msg(loc)} - ${message}`,\n );\n } else {\n const unknownOptErr = new Error(\n `Unknown option: ${msg(\n loc,\n )}. Check out https://babeljs.io/docs/en/babel-core/#options for more information about options.`,\n );\n // @ts-expect-error todo(flow->ts): consider creating something like BabelConfigError with code field in it\n unknownOptErr.code = \"BABEL_UNKNOWN_OPTION\";\n\n throw unknownOptErr;\n }\n}\n\nfunction assertNoDuplicateSourcemap(opts: any): void {\n if (Object.hasOwn(opts, \"sourceMap\") && Object.hasOwn(opts, \"sourceMaps\")) {\n throw new Error(\".sourceMap is an alias for .sourceMaps, cannot use both\");\n }\n}\n\nfunction assertEnvSet(\n loc: OptionPath,\n value: unknown,\n): void | EnvSet {\n if (loc.parent.type === \"env\") {\n throw new Error(`${msg(loc)} is not allowed inside of another .env block`);\n }\n const parent: RootPath | OverridesPath = loc.parent;\n\n const obj = assertObject(loc, value);\n if (obj) {\n // Validate but don't copy the .env object in order to preserve\n // object identity for use during config chain processing.\n for (const envName of Object.keys(obj)) {\n const env = assertObject(access(loc, envName), obj[envName]);\n if (!env) continue;\n\n const envLoc = {\n type: \"env\",\n name: envName,\n parent,\n } as const;\n validateNested(envLoc, env);\n }\n }\n return obj;\n}\n\nfunction assertOverridesList(\n loc: OptionPath,\n value: unknown[],\n): undefined | InputOptions[] {\n if (loc.parent.type === \"env\") {\n throw new Error(`${msg(loc)} is not allowed inside an .env block`);\n }\n if (loc.parent.type === \"overrides\") {\n throw new Error(`${msg(loc)} is not allowed inside an .overrides block`);\n }\n const parent: RootPath = loc.parent;\n\n const arr = assertArray(loc, value);\n if (arr) {\n for (const [index, item] of arr.entries()) {\n const objLoc = access(loc, index);\n const env = assertObject(objLoc, item);\n if (!env) throw new Error(`${msg(objLoc)} must be an object`);\n\n const overridesLoc = {\n type: \"overrides\",\n index,\n parent,\n } as const;\n validateNested(overridesLoc, env);\n }\n }\n return arr;\n}\n\nexport function checkNoUnwrappedItemOptionPairs(\n items: UnloadedDescriptor[],\n index: number,\n type: \"plugin\" | \"preset\",\n e: Error,\n): void {\n if (index === 0) return;\n\n const lastItem = items[index - 1];\n const thisItem = items[index];\n\n if (\n lastItem.file &&\n lastItem.options === undefined &&\n typeof thisItem.value === \"object\"\n ) {\n e.message +=\n `\\n- Maybe you meant to use\\n` +\n `\"${type}s\": [\\n [\"${lastItem.file.request}\", ${JSON.stringify(\n thisItem.value,\n undefined,\n 2,\n )}]\\n]\\n` +\n `To be a valid ${type}, its name and options should be wrapped in a pair of brackets`;\n }\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/core/lib/config/validation/plugins.js b/server/api/node_modules/@babel/core/lib/config/validation/plugins.js new file mode 100644 index 0000000..d744ecc --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/config/validation/plugins.js @@ -0,0 +1,67 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.validatePluginObject = validatePluginObject; +var _optionAssertions = require("./option-assertions.js"); +const VALIDATORS = { + name: _optionAssertions.assertString, + manipulateOptions: _optionAssertions.assertFunction, + pre: _optionAssertions.assertFunction, + post: _optionAssertions.assertFunction, + inherits: _optionAssertions.assertFunction, + visitor: assertVisitorMap, + parserOverride: _optionAssertions.assertFunction, + generatorOverride: _optionAssertions.assertFunction +}; +function assertVisitorMap(loc, value) { + const obj = (0, _optionAssertions.assertObject)(loc, value); + if (obj) { + Object.keys(obj).forEach(prop => { + if (prop !== "_exploded" && prop !== "_verified") { + assertVisitorHandler(prop, obj[prop]); + } + }); + if (obj.enter || obj.exit) { + throw new Error(`${(0, _optionAssertions.msg)(loc)} cannot contain catch-all "enter" or "exit" handlers. Please target individual nodes.`); + } + } + return obj; +} +function assertVisitorHandler(key, value) { + if (value && typeof value === "object") { + Object.keys(value).forEach(handler => { + if (handler !== "enter" && handler !== "exit") { + throw new Error(`.visitor["${key}"] may only have .enter and/or .exit handlers.`); + } + }); + } else if (typeof value !== "function") { + throw new Error(`.visitor["${key}"] must be a function`); + } +} +function validatePluginObject(obj) { + const rootPath = { + type: "root", + source: "plugin" + }; + Object.keys(obj).forEach(key => { + const validator = VALIDATORS[key]; + if (validator) { + const optLoc = { + type: "option", + name: key, + parent: rootPath + }; + validator(optLoc, obj[key]); + } else { + const invalidPluginPropertyError = new Error(`.${key} is not a valid Plugin property`); + invalidPluginPropertyError.code = "BABEL_UNKNOWN_PLUGIN_PROPERTY"; + throw invalidPluginPropertyError; + } + }); + return obj; +} +0 && 0; + +//# sourceMappingURL=plugins.js.map diff --git a/server/api/node_modules/@babel/core/lib/config/validation/plugins.js.map b/server/api/node_modules/@babel/core/lib/config/validation/plugins.js.map new file mode 100644 index 0000000..a11be98 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/config/validation/plugins.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_optionAssertions","require","VALIDATORS","name","assertString","manipulateOptions","assertFunction","pre","post","inherits","visitor","assertVisitorMap","parserOverride","generatorOverride","loc","value","obj","assertObject","Object","keys","forEach","prop","assertVisitorHandler","enter","exit","Error","msg","key","handler","validatePluginObject","rootPath","type","source","validator","optLoc","parent","invalidPluginPropertyError","code"],"sources":["../../../src/config/validation/plugins.ts"],"sourcesContent":["import {\n assertString,\n assertFunction,\n assertObject,\n msg,\n} from \"./option-assertions.ts\";\n\nimport type {\n ValidatorSet,\n Validator,\n OptionPath,\n RootPath,\n} from \"./option-assertions.ts\";\nimport type { parse, ParserOptions } from \"@babel/parser\";\nimport type { Visitor } from \"@babel/traverse\";\nimport type { ResolvedOptions } from \"./options.ts\";\nimport type { File, PluginAPI, PluginPass } from \"../../index.ts\";\nimport type { GeneratorOptions, GeneratorResult } from \"@babel/generator\";\nimport type babelGenerator from \"@babel/generator\";\n\n// Note: The casts here are just meant to be static assertions to make sure\n// that the assertion functions actually assert that the value's type matches\n// the declared types.\nconst VALIDATORS: ValidatorSet = {\n name: assertString as Validator,\n manipulateOptions: assertFunction as Validator<\n PluginObject[\"manipulateOptions\"]\n >,\n pre: assertFunction as Validator,\n post: assertFunction as Validator,\n inherits: assertFunction as Validator,\n visitor: assertVisitorMap as Validator,\n\n parserOverride: assertFunction as Validator,\n generatorOverride: assertFunction as Validator<\n PluginObject[\"generatorOverride\"]\n >,\n};\n\nfunction assertVisitorMap(loc: OptionPath, value: unknown): Visitor {\n const obj = assertObject(loc, value);\n if (obj) {\n Object.keys(obj).forEach(prop => {\n if (prop !== \"_exploded\" && prop !== \"_verified\") {\n assertVisitorHandler(prop, obj[prop]);\n }\n });\n\n if (obj.enter || obj.exit) {\n throw new Error(\n `${msg(\n loc,\n )} cannot contain catch-all \"enter\" or \"exit\" handlers. Please target individual nodes.`,\n );\n }\n }\n return obj as Visitor;\n}\n\nfunction assertVisitorHandler(\n key: string,\n value: unknown,\n): asserts value is VisitorHandler {\n if (value && typeof value === \"object\") {\n Object.keys(value).forEach((handler: string) => {\n if (handler !== \"enter\" && handler !== \"exit\") {\n throw new Error(\n `.visitor[\"${key}\"] may only have .enter and/or .exit handlers.`,\n );\n }\n });\n } else if (typeof value !== \"function\") {\n throw new Error(`.visitor[\"${key}\"] must be a function`);\n }\n}\n\ntype VisitorHandler =\n | Function\n | {\n enter?: Function;\n exit?: Function;\n };\n\nexport type PluginObject = {\n name?: string;\n manipulateOptions?: (\n options: ResolvedOptions,\n parserOpts: ParserOptions,\n ) => void;\n pre?: (this: S, file: File) => void | Promise;\n post?: (this: S, file: File) => void | Promise;\n inherits?: (\n api: PluginAPI,\n options: unknown,\n dirname: string,\n ) => PluginObject;\n visitor?: Visitor;\n parserOverride?: (\n ...args: [...Parameters, typeof parse]\n ) => ReturnType;\n generatorOverride?: (\n ast: File[\"ast\"],\n generatorOpts: GeneratorOptions,\n code: File[\"code\"],\n generate: typeof babelGenerator,\n ) => GeneratorResult;\n};\n\nexport function validatePluginObject(\n obj: Record,\n): PluginObject {\n const rootPath: RootPath = {\n type: \"root\",\n source: \"plugin\",\n };\n Object.keys(obj).forEach((key: string) => {\n const validator = VALIDATORS[key];\n\n if (validator) {\n const optLoc: OptionPath = {\n type: \"option\",\n name: key,\n parent: rootPath,\n };\n validator(optLoc, obj[key]);\n } else {\n const invalidPluginPropertyError = new Error(\n `.${key} is not a valid Plugin property`,\n );\n // @ts-expect-error todo(flow->ts) consider adding BabelConfigError with code field\n invalidPluginPropertyError.code = \"BABEL_UNKNOWN_PLUGIN_PROPERTY\";\n throw invalidPluginPropertyError;\n }\n });\n\n return obj as any;\n}\n"],"mappings":";;;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AAuBA,MAAMC,UAAwB,GAAG;EAC/BC,IAAI,EAAEC,8BAA+C;EACrDC,iBAAiB,EAAEC,gCAElB;EACDC,GAAG,EAAED,gCAAgD;EACrDE,IAAI,EAAEF,gCAAiD;EACvDG,QAAQ,EAAEH,gCAAqD;EAC/DI,OAAO,EAAEC,gBAAsD;EAE/DC,cAAc,EAAEN,gCAA2D;EAC3EO,iBAAiB,EAAEP;AAGrB,CAAC;AAED,SAASK,gBAAgBA,CAACG,GAAe,EAAEC,KAAc,EAAW;EAClE,MAAMC,GAAG,GAAG,IAAAC,8BAAY,EAACH,GAAG,EAAEC,KAAK,CAAC;EACpC,IAAIC,GAAG,EAAE;IACPE,MAAM,CAACC,IAAI,CAACH,GAAG,CAAC,CAACI,OAAO,CAACC,IAAI,IAAI;MAC/B,IAAIA,IAAI,KAAK,WAAW,IAAIA,IAAI,KAAK,WAAW,EAAE;QAChDC,oBAAoB,CAACD,IAAI,EAAEL,GAAG,CAACK,IAAI,CAAC,CAAC;MACvC;IACF,CAAC,CAAC;IAEF,IAAIL,GAAG,CAACO,KAAK,IAAIP,GAAG,CAACQ,IAAI,EAAE;MACzB,MAAM,IAAIC,KAAK,CACb,GAAG,IAAAC,qBAAG,EACJZ,GACF,CAAC,uFACH,CAAC;IACH;EACF;EACA,OAAOE,GAAG;AACZ;AAEA,SAASM,oBAAoBA,CAC3BK,GAAW,EACXZ,KAAc,EACmB;EACjC,IAAIA,KAAK,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IACtCG,MAAM,CAACC,IAAI,CAACJ,KAAK,CAAC,CAACK,OAAO,CAAEQ,OAAe,IAAK;MAC9C,IAAIA,OAAO,KAAK,OAAO,IAAIA,OAAO,KAAK,MAAM,EAAE;QAC7C,MAAM,IAAIH,KAAK,CACb,aAAaE,GAAG,gDAClB,CAAC;MACH;IACF,CAAC,CAAC;EACJ,CAAC,MAAM,IAAI,OAAOZ,KAAK,KAAK,UAAU,EAAE;IACtC,MAAM,IAAIU,KAAK,CAAC,aAAaE,GAAG,uBAAuB,CAAC;EAC1D;AACF;AAkCO,SAASE,oBAAoBA,CAClCb,GAA4B,EACd;EACd,MAAMc,QAAkB,GAAG;IACzBC,IAAI,EAAE,MAAM;IACZC,MAAM,EAAE;EACV,CAAC;EACDd,MAAM,CAACC,IAAI,CAACH,GAAG,CAAC,CAACI,OAAO,CAAEO,GAAW,IAAK;IACxC,MAAMM,SAAS,GAAG/B,UAAU,CAACyB,GAAG,CAAC;IAEjC,IAAIM,SAAS,EAAE;MACb,MAAMC,MAAkB,GAAG;QACzBH,IAAI,EAAE,QAAQ;QACd5B,IAAI,EAAEwB,GAAG;QACTQ,MAAM,EAAEL;MACV,CAAC;MACDG,SAAS,CAACC,MAAM,EAAElB,GAAG,CAACW,GAAG,CAAC,CAAC;IAC7B,CAAC,MAAM;MACL,MAAMS,0BAA0B,GAAG,IAAIX,KAAK,CAC1C,IAAIE,GAAG,iCACT,CAAC;MAEDS,0BAA0B,CAACC,IAAI,GAAG,+BAA+B;MACjE,MAAMD,0BAA0B;IAClC;EACF,CAAC,CAAC;EAEF,OAAOpB,GAAG;AACZ;AAAC","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/core/lib/config/validation/removed.js b/server/api/node_modules/@babel/core/lib/config/validation/removed.js new file mode 100644 index 0000000..9bd436e --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/config/validation/removed.js @@ -0,0 +1,68 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _default = exports.default = { + auxiliaryComment: { + message: "Use `auxiliaryCommentBefore` or `auxiliaryCommentAfter`" + }, + blacklist: { + message: "Put the specific transforms you want in the `plugins` option" + }, + breakConfig: { + message: "This is not a necessary option in Babel 6" + }, + experimental: { + message: "Put the specific transforms you want in the `plugins` option" + }, + externalHelpers: { + message: "Use the `external-helpers` plugin instead. " + "Check out http://babeljs.io/docs/plugins/external-helpers/" + }, + extra: { + message: "" + }, + jsxPragma: { + message: "use the `pragma` option in the `react-jsx` plugin. " + "Check out http://babeljs.io/docs/plugins/transform-react-jsx/" + }, + loose: { + message: "Specify the `loose` option for the relevant plugin you are using " + "or use a preset that sets the option." + }, + metadataUsedHelpers: { + message: "Not required anymore as this is enabled by default" + }, + modules: { + message: "Use the corresponding module transform plugin in the `plugins` option. " + "Check out http://babeljs.io/docs/plugins/#modules" + }, + nonStandard: { + message: "Use the `react-jsx` and `flow-strip-types` plugins to support JSX and Flow. " + "Also check out the react preset http://babeljs.io/docs/plugins/preset-react/" + }, + optional: { + message: "Put the specific transforms you want in the `plugins` option" + }, + sourceMapName: { + message: "The `sourceMapName` option has been removed because it makes more sense for the " + "tooling that calls Babel to assign `map.file` themselves." + }, + stage: { + message: "Check out the corresponding stage-x presets http://babeljs.io/docs/plugins/#presets" + }, + whitelist: { + message: "Put the specific transforms you want in the `plugins` option" + }, + resolveModuleSource: { + version: 6, + message: "Use `babel-plugin-module-resolver@3`'s 'resolvePath' options" + }, + metadata: { + version: 6, + message: "Generated plugin metadata is always included in the output result" + }, + sourceMapTarget: { + version: 6, + message: "The `sourceMapTarget` option has been removed because it makes more sense for the tooling " + "that calls Babel to assign `map.file` themselves." + } +}; +0 && 0; + +//# sourceMappingURL=removed.js.map diff --git a/server/api/node_modules/@babel/core/lib/config/validation/removed.js.map b/server/api/node_modules/@babel/core/lib/config/validation/removed.js.map new file mode 100644 index 0000000..e1aa740 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/config/validation/removed.js.map @@ -0,0 +1 @@ +{"version":3,"names":["auxiliaryComment","message","blacklist","breakConfig","experimental","externalHelpers","extra","jsxPragma","loose","metadataUsedHelpers","modules","nonStandard","optional","sourceMapName","stage","whitelist","resolveModuleSource","version","metadata","sourceMapTarget"],"sources":["../../../src/config/validation/removed.ts"],"sourcesContent":["export default {\n auxiliaryComment: {\n message: \"Use `auxiliaryCommentBefore` or `auxiliaryCommentAfter`\",\n },\n blacklist: {\n message: \"Put the specific transforms you want in the `plugins` option\",\n },\n breakConfig: {\n message: \"This is not a necessary option in Babel 6\",\n },\n experimental: {\n message: \"Put the specific transforms you want in the `plugins` option\",\n },\n externalHelpers: {\n message:\n \"Use the `external-helpers` plugin instead. \" +\n \"Check out http://babeljs.io/docs/plugins/external-helpers/\",\n },\n extra: {\n message: \"\",\n },\n jsxPragma: {\n message:\n \"use the `pragma` option in the `react-jsx` plugin. \" +\n \"Check out http://babeljs.io/docs/plugins/transform-react-jsx/\",\n },\n loose: {\n message:\n \"Specify the `loose` option for the relevant plugin you are using \" +\n \"or use a preset that sets the option.\",\n },\n metadataUsedHelpers: {\n message: \"Not required anymore as this is enabled by default\",\n },\n modules: {\n message:\n \"Use the corresponding module transform plugin in the `plugins` option. \" +\n \"Check out http://babeljs.io/docs/plugins/#modules\",\n },\n nonStandard: {\n message:\n \"Use the `react-jsx` and `flow-strip-types` plugins to support JSX and Flow. \" +\n \"Also check out the react preset http://babeljs.io/docs/plugins/preset-react/\",\n },\n optional: {\n message: \"Put the specific transforms you want in the `plugins` option\",\n },\n sourceMapName: {\n message:\n \"The `sourceMapName` option has been removed because it makes more sense for the \" +\n \"tooling that calls Babel to assign `map.file` themselves.\",\n },\n stage: {\n message:\n \"Check out the corresponding stage-x presets http://babeljs.io/docs/plugins/#presets\",\n },\n whitelist: {\n message: \"Put the specific transforms you want in the `plugins` option\",\n },\n\n resolveModuleSource: {\n version: 6,\n message: \"Use `babel-plugin-module-resolver@3`'s 'resolvePath' options\",\n },\n metadata: {\n version: 6,\n message:\n \"Generated plugin metadata is always included in the output result\",\n },\n sourceMapTarget: {\n version: 6,\n message:\n \"The `sourceMapTarget` option has been removed because it makes more sense for the tooling \" +\n \"that calls Babel to assign `map.file` themselves.\",\n },\n} as Record;\n"],"mappings":";;;;;;iCAAe;EACbA,gBAAgB,EAAE;IAChBC,OAAO,EAAE;EACX,CAAC;EACDC,SAAS,EAAE;IACTD,OAAO,EAAE;EACX,CAAC;EACDE,WAAW,EAAE;IACXF,OAAO,EAAE;EACX,CAAC;EACDG,YAAY,EAAE;IACZH,OAAO,EAAE;EACX,CAAC;EACDI,eAAe,EAAE;IACfJ,OAAO,EACL,6CAA6C,GAC7C;EACJ,CAAC;EACDK,KAAK,EAAE;IACLL,OAAO,EAAE;EACX,CAAC;EACDM,SAAS,EAAE;IACTN,OAAO,EACL,qDAAqD,GACrD;EACJ,CAAC;EACDO,KAAK,EAAE;IACLP,OAAO,EACL,mEAAmE,GACnE;EACJ,CAAC;EACDQ,mBAAmB,EAAE;IACnBR,OAAO,EAAE;EACX,CAAC;EACDS,OAAO,EAAE;IACPT,OAAO,EACL,yEAAyE,GACzE;EACJ,CAAC;EACDU,WAAW,EAAE;IACXV,OAAO,EACL,8EAA8E,GAC9E;EACJ,CAAC;EACDW,QAAQ,EAAE;IACRX,OAAO,EAAE;EACX,CAAC;EACDY,aAAa,EAAE;IACbZ,OAAO,EACL,kFAAkF,GAClF;EACJ,CAAC;EACDa,KAAK,EAAE;IACLb,OAAO,EACL;EACJ,CAAC;EACDc,SAAS,EAAE;IACTd,OAAO,EAAE;EACX,CAAC;EAEDe,mBAAmB,EAAE;IACnBC,OAAO,EAAE,CAAC;IACVhB,OAAO,EAAE;EACX,CAAC;EACDiB,QAAQ,EAAE;IACRD,OAAO,EAAE,CAAC;IACVhB,OAAO,EACL;EACJ,CAAC;EACDkB,eAAe,EAAE;IACfF,OAAO,EAAE,CAAC;IACVhB,OAAO,EACL,4FAA4F,GAC5F;EACJ;AACF,CAAC;AAAA","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/core/lib/errors/config-error.js b/server/api/node_modules/@babel/core/lib/errors/config-error.js new file mode 100644 index 0000000..c290804 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/errors/config-error.js @@ -0,0 +1,18 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _rewriteStackTrace = require("./rewrite-stack-trace.js"); +class ConfigError extends Error { + constructor(message, filename) { + super(message); + (0, _rewriteStackTrace.expectedError)(this); + if (filename) (0, _rewriteStackTrace.injectVirtualStackFrame)(this, filename); + } +} +exports.default = ConfigError; +0 && 0; + +//# sourceMappingURL=config-error.js.map diff --git a/server/api/node_modules/@babel/core/lib/errors/config-error.js.map b/server/api/node_modules/@babel/core/lib/errors/config-error.js.map new file mode 100644 index 0000000..0045ded --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/errors/config-error.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_rewriteStackTrace","require","ConfigError","Error","constructor","message","filename","expectedError","injectVirtualStackFrame","exports","default"],"sources":["../../src/errors/config-error.ts"],"sourcesContent":["import {\n injectVirtualStackFrame,\n expectedError,\n} from \"./rewrite-stack-trace.ts\";\n\nexport default class ConfigError extends Error {\n constructor(message: string, filename?: string) {\n super(message);\n expectedError(this);\n if (filename) injectVirtualStackFrame(this, filename);\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AAKe,MAAMC,WAAW,SAASC,KAAK,CAAC;EAC7CC,WAAWA,CAACC,OAAe,EAAEC,QAAiB,EAAE;IAC9C,KAAK,CAACD,OAAO,CAAC;IACd,IAAAE,gCAAa,EAAC,IAAI,CAAC;IACnB,IAAID,QAAQ,EAAE,IAAAE,0CAAuB,EAAC,IAAI,EAAEF,QAAQ,CAAC;EACvD;AACF;AAACG,OAAA,CAAAC,OAAA,GAAAR,WAAA;AAAA","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/core/lib/errors/rewrite-stack-trace.js b/server/api/node_modules/@babel/core/lib/errors/rewrite-stack-trace.js new file mode 100644 index 0000000..68896d3 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/errors/rewrite-stack-trace.js @@ -0,0 +1,98 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.beginHiddenCallStack = beginHiddenCallStack; +exports.endHiddenCallStack = endHiddenCallStack; +exports.expectedError = expectedError; +exports.injectVirtualStackFrame = injectVirtualStackFrame; +var _Object$getOwnPropert; +const ErrorToString = Function.call.bind(Error.prototype.toString); +const SUPPORTED = !!Error.captureStackTrace && ((_Object$getOwnPropert = Object.getOwnPropertyDescriptor(Error, "stackTraceLimit")) == null ? void 0 : _Object$getOwnPropert.writable) === true; +const START_HIDING = "startHiding - secret - don't use this - v1"; +const STOP_HIDING = "stopHiding - secret - don't use this - v1"; +const expectedErrors = new WeakSet(); +const virtualFrames = new WeakMap(); +function CallSite(filename) { + return Object.create({ + isNative: () => false, + isConstructor: () => false, + isToplevel: () => true, + getFileName: () => filename, + getLineNumber: () => undefined, + getColumnNumber: () => undefined, + getFunctionName: () => undefined, + getMethodName: () => undefined, + getTypeName: () => undefined, + toString: () => filename + }); +} +function injectVirtualStackFrame(error, filename) { + if (!SUPPORTED) return; + let frames = virtualFrames.get(error); + if (!frames) virtualFrames.set(error, frames = []); + frames.push(CallSite(filename)); + return error; +} +function expectedError(error) { + if (!SUPPORTED) return; + expectedErrors.add(error); + return error; +} +function beginHiddenCallStack(fn) { + if (!SUPPORTED) return fn; + return Object.defineProperty(function (...args) { + setupPrepareStackTrace(); + return fn(...args); + }, "name", { + value: STOP_HIDING + }); +} +function endHiddenCallStack(fn) { + if (!SUPPORTED) return fn; + return Object.defineProperty(function (...args) { + return fn(...args); + }, "name", { + value: START_HIDING + }); +} +function setupPrepareStackTrace() { + setupPrepareStackTrace = () => {}; + const { + prepareStackTrace = defaultPrepareStackTrace + } = Error; + const MIN_STACK_TRACE_LIMIT = 50; + Error.stackTraceLimit && (Error.stackTraceLimit = Math.max(Error.stackTraceLimit, MIN_STACK_TRACE_LIMIT)); + Error.prepareStackTrace = function stackTraceRewriter(err, trace) { + let newTrace = []; + const isExpected = expectedErrors.has(err); + let status = isExpected ? "hiding" : "unknown"; + for (let i = 0; i < trace.length; i++) { + const name = trace[i].getFunctionName(); + if (name === START_HIDING) { + status = "hiding"; + } else if (name === STOP_HIDING) { + if (status === "hiding") { + status = "showing"; + if (virtualFrames.has(err)) { + newTrace.unshift(...virtualFrames.get(err)); + } + } else if (status === "unknown") { + newTrace = trace; + break; + } + } else if (status !== "hiding") { + newTrace.push(trace[i]); + } + } + return prepareStackTrace(err, newTrace); + }; +} +function defaultPrepareStackTrace(err, trace) { + if (trace.length === 0) return ErrorToString(err); + return `${ErrorToString(err)}\n at ${trace.join("\n at ")}`; +} +0 && 0; + +//# sourceMappingURL=rewrite-stack-trace.js.map diff --git a/server/api/node_modules/@babel/core/lib/errors/rewrite-stack-trace.js.map b/server/api/node_modules/@babel/core/lib/errors/rewrite-stack-trace.js.map new file mode 100644 index 0000000..25cce7a --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/errors/rewrite-stack-trace.js.map @@ -0,0 +1 @@ +{"version":3,"names":["ErrorToString","Function","call","bind","Error","prototype","toString","SUPPORTED","captureStackTrace","_Object$getOwnPropert","Object","getOwnPropertyDescriptor","writable","START_HIDING","STOP_HIDING","expectedErrors","WeakSet","virtualFrames","WeakMap","CallSite","filename","create","isNative","isConstructor","isToplevel","getFileName","getLineNumber","undefined","getColumnNumber","getFunctionName","getMethodName","getTypeName","injectVirtualStackFrame","error","frames","get","set","push","expectedError","add","beginHiddenCallStack","fn","defineProperty","args","setupPrepareStackTrace","value","endHiddenCallStack","prepareStackTrace","defaultPrepareStackTrace","MIN_STACK_TRACE_LIMIT","stackTraceLimit","Math","max","stackTraceRewriter","err","trace","newTrace","isExpected","has","status","i","length","name","unshift","join"],"sources":["../../src/errors/rewrite-stack-trace.ts"],"sourcesContent":["/**\n * This file uses the internal V8 Stack Trace API (https://v8.dev/docs/stack-trace-api)\n * to provide utilities to rewrite the stack trace.\n * When this API is not present, all the functions in this file become noops.\n *\n * beginHiddenCallStack(fn) and endHiddenCallStack(fn) wrap their parameter to\n * mark an hidden portion of the stack trace. The function passed to\n * beginHiddenCallStack is the first hidden function, while the function passed\n * to endHiddenCallStack is the first shown function.\n *\n * When an error is thrown _outside_ of the hidden zone, everything between\n * beginHiddenCallStack and endHiddenCallStack will not be shown.\n * If an error is thrown _inside_ the hidden zone, then the whole stack trace\n * will be visible: this is to avoid hiding real bugs.\n * However, if an error inside the hidden zone is expected, it can be marked\n * with the expectedError(error) function to keep the hidden frames hidden.\n *\n * Consider this call stack (the outer function is the bottom one):\n *\n * 1. a()\n * 2. endHiddenCallStack(b)()\n * 3. c()\n * 4. beginHiddenCallStack(d)()\n * 5. e()\n * 6. f()\n *\n * - If a() throws an error, then its shown call stack will be \"a, b, e, f\"\n * - If b() throws an error, then its shown call stack will be \"b, e, f\"\n * - If c() throws an expected error, then its shown call stack will be \"e, f\"\n * - If c() throws an unexpected error, then its shown call stack will be \"c, d, e, f\"\n * - If d() throws an expected error, then its shown call stack will be \"e, f\"\n * - If d() throws an unexpected error, then its shown call stack will be \"d, e, f\"\n * - If e() throws an error, then its shown call stack will be \"e, f\"\n *\n * Additionally, an error can inject additional \"virtual\" stack frames using the\n * injectVirtualStackFrame(error, filename) function: those are injected as a\n * replacement of the hidden frames.\n * In the example above, if we called injectVirtualStackFrame(err, \"h\") and\n * injectVirtualStackFrame(err, \"i\") on the expected error thrown by c(), its\n * shown call stack would have been \"h, i, e, f\".\n * This can be useful, for example, to report config validation errors as if they\n * were directly thrown in the config file.\n */\n\nconst ErrorToString = Function.call.bind(Error.prototype.toString);\n\nconst SUPPORTED =\n !!Error.captureStackTrace &&\n Object.getOwnPropertyDescriptor(Error, \"stackTraceLimit\")?.writable === true;\n\nconst START_HIDING = \"startHiding - secret - don't use this - v1\";\nconst STOP_HIDING = \"stopHiding - secret - don't use this - v1\";\n\ntype CallSite = NodeJS.CallSite;\n\nconst expectedErrors = new WeakSet();\nconst virtualFrames = new WeakMap();\n\nfunction CallSite(filename: string): CallSite {\n // We need to use a prototype otherwise it breaks source-map-support's internals\n return Object.create({\n isNative: () => false,\n isConstructor: () => false,\n isToplevel: () => true,\n getFileName: () => filename,\n getLineNumber: () => undefined,\n getColumnNumber: () => undefined,\n getFunctionName: () => undefined,\n getMethodName: () => undefined,\n getTypeName: () => undefined,\n toString: () => filename,\n } as CallSite);\n}\n\nexport function injectVirtualStackFrame(error: Error, filename: string) {\n if (!SUPPORTED) return;\n\n let frames = virtualFrames.get(error);\n if (!frames) virtualFrames.set(error, (frames = []));\n frames.push(CallSite(filename));\n\n return error;\n}\n\nexport function expectedError(error: Error) {\n if (!SUPPORTED) return;\n expectedErrors.add(error);\n return error;\n}\n\nexport function beginHiddenCallStack(\n fn: (...args: A) => R,\n) {\n if (!SUPPORTED) return fn;\n\n return Object.defineProperty(\n function (...args: A) {\n setupPrepareStackTrace();\n return fn(...args);\n },\n \"name\",\n { value: STOP_HIDING },\n );\n}\n\nexport function endHiddenCallStack(\n fn: (...args: A) => R,\n) {\n if (!SUPPORTED) return fn;\n\n return Object.defineProperty(\n function (...args: A) {\n return fn(...args);\n },\n \"name\",\n { value: START_HIDING },\n );\n}\n\nfunction setupPrepareStackTrace() {\n // @ts-expect-error This function is a singleton\n setupPrepareStackTrace = () => {};\n\n const { prepareStackTrace = defaultPrepareStackTrace } = Error;\n\n // We add some extra frames to Error.stackTraceLimit, so that we can\n // always show some useful frames even after deleting ours.\n // STACK_TRACE_LIMIT_DELTA should be around the maximum expected number\n // of internal frames, and not too big because capturing the stack trace\n // is slow (this is why Error.stackTraceLimit does not default to Infinity!).\n // Increase it if needed.\n // However, we only do it if the user did not explicitly set it to 0.\n const MIN_STACK_TRACE_LIMIT = 50;\n Error.stackTraceLimit &&= Math.max(\n Error.stackTraceLimit,\n MIN_STACK_TRACE_LIMIT,\n );\n\n Error.prepareStackTrace = function stackTraceRewriter(err, trace) {\n let newTrace = [];\n\n const isExpected = expectedErrors.has(err);\n let status: \"showing\" | \"hiding\" | \"unknown\" = isExpected\n ? \"hiding\"\n : \"unknown\";\n for (let i = 0; i < trace.length; i++) {\n const name = trace[i].getFunctionName();\n if (name === START_HIDING) {\n status = \"hiding\";\n } else if (name === STOP_HIDING) {\n if (status === \"hiding\") {\n status = \"showing\";\n if (virtualFrames.has(err)) {\n newTrace.unshift(...virtualFrames.get(err));\n }\n } else if (status === \"unknown\") {\n // Unexpected internal error, show the full stack trace\n newTrace = trace;\n break;\n }\n } else if (status !== \"hiding\") {\n newTrace.push(trace[i]);\n }\n }\n\n return prepareStackTrace(err, newTrace);\n };\n}\n\nfunction defaultPrepareStackTrace(err: Error, trace: CallSite[]) {\n if (trace.length === 0) return ErrorToString(err);\n // eslint-disable-next-line @typescript-eslint/no-base-to-string\n return `${ErrorToString(err)}\\n at ${trace.join(\"\\n at \")}`;\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/core/lib/gensync-utils/async.js b/server/api/node_modules/@babel/core/lib/gensync-utils/async.js new file mode 100644 index 0000000..42946c6 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/gensync-utils/async.js @@ -0,0 +1,90 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.forwardAsync = forwardAsync; +exports.isAsync = void 0; +exports.isThenable = isThenable; +exports.maybeAsync = maybeAsync; +exports.waitFor = exports.onFirstPause = void 0; +function _gensync() { + const data = require("gensync"); + _gensync = function () { + return data; + }; + return data; +} +function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); } +function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; } +const runGenerator = _gensync()(function* (item) { + return yield* item; +}); +const isAsync = exports.isAsync = _gensync()({ + sync: () => false, + errback: cb => cb(null, true) +}); +function maybeAsync(fn, message) { + return _gensync()({ + sync(...args) { + const result = fn.apply(this, args); + if (isThenable(result)) throw new Error(message); + return result; + }, + async(...args) { + return Promise.resolve(fn.apply(this, args)); + } + }); +} +const withKind = _gensync()({ + sync: cb => cb("sync"), + async: function () { + var _ref = _asyncToGenerator(function* (cb) { + return cb("async"); + }); + return function async(_x) { + return _ref.apply(this, arguments); + }; + }() +}); +function forwardAsync(action, cb) { + const g = _gensync()(action); + return withKind(kind => { + const adapted = g[kind]; + return cb(adapted); + }); +} +const onFirstPause = exports.onFirstPause = _gensync()({ + name: "onFirstPause", + arity: 2, + sync: function (item) { + return runGenerator.sync(item); + }, + errback: function (item, firstPause, cb) { + let completed = false; + runGenerator.errback(item, (err, value) => { + completed = true; + cb(err, value); + }); + if (!completed) { + firstPause(); + } + } +}); +const waitFor = exports.waitFor = _gensync()({ + sync: x => x, + async: function () { + var _ref2 = _asyncToGenerator(function* (x) { + return x; + }); + return function async(_x2) { + return _ref2.apply(this, arguments); + }; + }() +}); +function isThenable(val) { + return !!val && (typeof val === "object" || typeof val === "function") && !!val.then && typeof val.then === "function"; +} +0 && 0; + +//# sourceMappingURL=async.js.map diff --git a/server/api/node_modules/@babel/core/lib/gensync-utils/async.js.map b/server/api/node_modules/@babel/core/lib/gensync-utils/async.js.map new file mode 100644 index 0000000..595d757 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/gensync-utils/async.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_gensync","data","require","asyncGeneratorStep","n","t","e","r","o","a","c","i","u","value","done","Promise","resolve","then","_asyncToGenerator","arguments","apply","_next","_throw","runGenerator","gensync","item","isAsync","exports","sync","errback","cb","maybeAsync","fn","message","args","result","isThenable","Error","async","withKind","_ref","_x","forwardAsync","action","g","kind","adapted","onFirstPause","name","arity","firstPause","completed","err","waitFor","x","_ref2","_x2","val"],"sources":["../../src/gensync-utils/async.ts"],"sourcesContent":["import gensync, { type Gensync, type Handler, type Callback } from \"gensync\";\n\ntype MaybePromise = T | Promise;\n\nconst runGenerator: {\n sync(gen: Handler): Return;\n async(gen: Handler): Promise;\n errback(gen: Handler, cb: Callback): void;\n} = gensync(function* (item: Handler): Handler {\n return yield* item;\n});\n\n// This Gensync returns true if the current execution context is\n// asynchronous, otherwise it returns false.\nexport const isAsync = gensync({\n sync: () => false,\n errback: cb => cb(null, true),\n});\n\n// This function wraps any functions (which could be either synchronous or\n// asynchronous) with a Gensync. If the wrapped function returns a promise\n// but the current execution context is synchronous, it will throw the\n// provided error.\n// This is used to handle user-provided functions which could be asynchronous.\nexport function maybeAsync(\n fn: (...args: Args) => Return,\n message: string,\n): Gensync {\n return gensync({\n sync(...args) {\n const result = fn.apply(this, args);\n if (isThenable(result)) throw new Error(message);\n return result;\n },\n async(...args) {\n return Promise.resolve(fn.apply(this, args));\n },\n });\n}\n\nconst withKind = gensync({\n sync: cb => cb(\"sync\"),\n async: async cb => cb(\"async\"),\n}) as (cb: (kind: \"sync\" | \"async\") => MaybePromise) => Handler;\n\n// This function wraps a generator (or a Gensync) into another function which,\n// when called, will run the provided generator in a sync or async way, depending\n// on the execution context where this forwardAsync function is called.\n// This is useful, for example, when passing a callback to a function which isn't\n// aware of gensync, but it only knows about synchronous and asynchronous functions.\n// An example is cache.using, which being exposed to the user must be as simple as\n// possible:\n// yield* forwardAsync(gensyncFn, wrappedFn =>\n// cache.using(x => {\n// // Here we don't know about gensync. wrappedFn is a\n// // normal sync or async function\n// return wrappedFn(x);\n// })\n// )\nexport function forwardAsync(\n action: (...args: Args) => Handler,\n cb: (\n adapted: (...args: Args) => MaybePromise,\n ) => MaybePromise,\n): Handler {\n const g = gensync(action);\n return withKind(kind => {\n const adapted = g[kind];\n return cb(adapted);\n });\n}\n\n// If the given generator is executed asynchronously, the first time that it\n// is paused (i.e. When it yields a gensync generator which can't be run\n// synchronously), call the \"firstPause\" callback.\nexport const onFirstPause = gensync<\n [gen: Handler, firstPause: () => void],\n unknown\n>({\n name: \"onFirstPause\",\n arity: 2,\n sync: function (item) {\n return runGenerator.sync(item);\n },\n errback: function (item, firstPause, cb) {\n let completed = false;\n\n runGenerator.errback(item, (err, value) => {\n completed = true;\n cb(err, value);\n });\n\n if (!completed) {\n firstPause();\n }\n },\n}) as (gen: Handler, firstPause: () => void) => Handler;\n\n// Wait for the given promise to be resolved\nexport const waitFor = gensync({\n sync: x => x,\n async: async x => x,\n}) as (p: T | Promise) => Handler;\n\nexport function isThenable(val: any): val is PromiseLike {\n return (\n !!val &&\n (typeof val === \"object\" || typeof val === \"function\") &&\n !!val.then &&\n typeof val.then === \"function\"\n );\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/core/lib/gensync-utils/fs.js b/server/api/node_modules/@babel/core/lib/gensync-utils/fs.js new file mode 100644 index 0000000..b842df8 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/gensync-utils/fs.js @@ -0,0 +1,31 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.stat = exports.readFile = void 0; +function _fs() { + const data = require("fs"); + _fs = function () { + return data; + }; + return data; +} +function _gensync() { + const data = require("gensync"); + _gensync = function () { + return data; + }; + return data; +} +const readFile = exports.readFile = _gensync()({ + sync: _fs().readFileSync, + errback: _fs().readFile +}); +const stat = exports.stat = _gensync()({ + sync: _fs().statSync, + errback: _fs().stat +}); +0 && 0; + +//# sourceMappingURL=fs.js.map diff --git a/server/api/node_modules/@babel/core/lib/gensync-utils/fs.js.map b/server/api/node_modules/@babel/core/lib/gensync-utils/fs.js.map new file mode 100644 index 0000000..ef4e8d9 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/gensync-utils/fs.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_fs","data","require","_gensync","readFile","exports","gensync","sync","fs","readFileSync","errback","stat","statSync"],"sources":["../../src/gensync-utils/fs.ts"],"sourcesContent":["import fs from \"node:fs\";\nimport gensync from \"gensync\";\n\nexport const readFile = gensync<[filepath: string, encoding: \"utf8\"], string>({\n sync: fs.readFileSync,\n errback: fs.readFile,\n});\n\nexport const stat = gensync({\n sync: fs.statSync,\n errback: fs.stat,\n});\n"],"mappings":";;;;;;AAAA,SAAAA,IAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,GAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,SAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,QAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEO,MAAMG,QAAQ,GAAAC,OAAA,CAAAD,QAAA,GAAGE,SAAMA,CAAC,CAA+C;EAC5EC,IAAI,EAAEC,IAACA,CAAC,CAACC,YAAY;EACrBC,OAAO,EAAEF,IAACA,CAAC,CAACJ;AACd,CAAC,CAAC;AAEK,MAAMO,IAAI,GAAAN,OAAA,CAAAM,IAAA,GAAGL,SAAMA,CAAC,CAAC;EAC1BC,IAAI,EAAEC,IAACA,CAAC,CAACI,QAAQ;EACjBF,OAAO,EAAEF,IAACA,CAAC,CAACG;AACd,CAAC,CAAC;AAAC","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/core/lib/gensync-utils/functional.js b/server/api/node_modules/@babel/core/lib/gensync-utils/functional.js new file mode 100644 index 0000000..d7f7755 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/gensync-utils/functional.js @@ -0,0 +1,58 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.once = once; +var _async = require("./async.js"); +function once(fn) { + let result; + let resultP; + let promiseReferenced = false; + return function* () { + if (!result) { + if (resultP) { + promiseReferenced = true; + return yield* (0, _async.waitFor)(resultP); + } + if (!(yield* (0, _async.isAsync)())) { + try { + result = { + ok: true, + value: yield* fn() + }; + } catch (error) { + result = { + ok: false, + value: error + }; + } + } else { + let resolve, reject; + resultP = new Promise((res, rej) => { + resolve = res; + reject = rej; + }); + try { + result = { + ok: true, + value: yield* fn() + }; + resultP = null; + if (promiseReferenced) resolve(result.value); + } catch (error) { + result = { + ok: false, + value: error + }; + resultP = null; + if (promiseReferenced) reject(error); + } + } + } + if (result.ok) return result.value;else throw result.value; + }; +} +0 && 0; + +//# sourceMappingURL=functional.js.map diff --git a/server/api/node_modules/@babel/core/lib/gensync-utils/functional.js.map b/server/api/node_modules/@babel/core/lib/gensync-utils/functional.js.map new file mode 100644 index 0000000..e8c5ed0 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/gensync-utils/functional.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_async","require","once","fn","result","resultP","promiseReferenced","waitFor","isAsync","ok","value","error","resolve","reject","Promise","res","rej"],"sources":["../../src/gensync-utils/functional.ts"],"sourcesContent":["import type { Handler } from \"gensync\";\n\nimport { isAsync, waitFor } from \"./async.ts\";\n\nexport function once(fn: () => Handler): () => Handler {\n let result: { ok: true; value: R } | { ok: false; value: unknown };\n let resultP: Promise;\n let promiseReferenced = false;\n return function* () {\n if (!result) {\n if (resultP) {\n promiseReferenced = true;\n return yield* waitFor(resultP);\n }\n\n if (!(yield* isAsync())) {\n try {\n result = { ok: true, value: yield* fn() };\n } catch (error) {\n result = { ok: false, value: error };\n }\n } else {\n let resolve: (result: R) => void, reject: (error: unknown) => void;\n resultP = new Promise((res, rej) => {\n resolve = res;\n reject = rej;\n });\n\n try {\n result = { ok: true, value: yield* fn() };\n // Avoid keeping the promise around\n // now that we have the result.\n resultP = null;\n // We only resolve/reject the promise if it has been actually\n // referenced. If there are no listeners we can forget about it.\n // In the reject case, this avoid uncatchable unhandledRejection\n // events.\n if (promiseReferenced) resolve(result.value);\n } catch (error) {\n result = { ok: false, value: error };\n resultP = null;\n if (promiseReferenced) reject(error);\n }\n }\n }\n\n if (result.ok) return result.value;\n else throw result.value;\n };\n}\n"],"mappings":";;;;;;AAEA,IAAAA,MAAA,GAAAC,OAAA;AAEO,SAASC,IAAIA,CAAIC,EAAoB,EAAoB;EAC9D,IAAIC,MAA8D;EAClE,IAAIC,OAAmB;EACvB,IAAIC,iBAAiB,GAAG,KAAK;EAC7B,OAAO,aAAa;IAClB,IAAI,CAACF,MAAM,EAAE;MACX,IAAIC,OAAO,EAAE;QACXC,iBAAiB,GAAG,IAAI;QACxB,OAAO,OAAO,IAAAC,cAAO,EAACF,OAAO,CAAC;MAChC;MAEA,IAAI,EAAE,OAAO,IAAAG,cAAO,EAAC,CAAC,CAAC,EAAE;QACvB,IAAI;UACFJ,MAAM,GAAG;YAAEK,EAAE,EAAE,IAAI;YAAEC,KAAK,EAAE,OAAOP,EAAE,CAAC;UAAE,CAAC;QAC3C,CAAC,CAAC,OAAOQ,KAAK,EAAE;UACdP,MAAM,GAAG;YAAEK,EAAE,EAAE,KAAK;YAAEC,KAAK,EAAEC;UAAM,CAAC;QACtC;MACF,CAAC,MAAM;QACL,IAAIC,OAA4B,EAAEC,MAAgC;QAClER,OAAO,GAAG,IAAIS,OAAO,CAAC,CAACC,GAAG,EAAEC,GAAG,KAAK;UAClCJ,OAAO,GAAGG,GAAG;UACbF,MAAM,GAAGG,GAAG;QACd,CAAC,CAAC;QAEF,IAAI;UACFZ,MAAM,GAAG;YAAEK,EAAE,EAAE,IAAI;YAAEC,KAAK,EAAE,OAAOP,EAAE,CAAC;UAAE,CAAC;UAGzCE,OAAO,GAAG,IAAI;UAKd,IAAIC,iBAAiB,EAAEM,OAAO,CAACR,MAAM,CAACM,KAAK,CAAC;QAC9C,CAAC,CAAC,OAAOC,KAAK,EAAE;UACdP,MAAM,GAAG;YAAEK,EAAE,EAAE,KAAK;YAAEC,KAAK,EAAEC;UAAM,CAAC;UACpCN,OAAO,GAAG,IAAI;UACd,IAAIC,iBAAiB,EAAEO,MAAM,CAACF,KAAK,CAAC;QACtC;MACF;IACF;IAEA,IAAIP,MAAM,CAACK,EAAE,EAAE,OAAOL,MAAM,CAACM,KAAK,CAAC,KAC9B,MAAMN,MAAM,CAACM,KAAK;EACzB,CAAC;AACH;AAAC","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/core/lib/index.js b/server/api/node_modules/@babel/core/lib/index.js new file mode 100644 index 0000000..2c15c49 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/index.js @@ -0,0 +1,230 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.DEFAULT_EXTENSIONS = void 0; +Object.defineProperty(exports, "File", { + enumerable: true, + get: function () { + return _file.default; + } +}); +Object.defineProperty(exports, "buildExternalHelpers", { + enumerable: true, + get: function () { + return _buildExternalHelpers.default; + } +}); +Object.defineProperty(exports, "createConfigItem", { + enumerable: true, + get: function () { + return _index2.createConfigItem; + } +}); +Object.defineProperty(exports, "createConfigItemAsync", { + enumerable: true, + get: function () { + return _index2.createConfigItemAsync; + } +}); +Object.defineProperty(exports, "createConfigItemSync", { + enumerable: true, + get: function () { + return _index2.createConfigItemSync; + } +}); +Object.defineProperty(exports, "getEnv", { + enumerable: true, + get: function () { + return _environment.getEnv; + } +}); +Object.defineProperty(exports, "loadOptions", { + enumerable: true, + get: function () { + return _index2.loadOptions; + } +}); +Object.defineProperty(exports, "loadOptionsAsync", { + enumerable: true, + get: function () { + return _index2.loadOptionsAsync; + } +}); +Object.defineProperty(exports, "loadOptionsSync", { + enumerable: true, + get: function () { + return _index2.loadOptionsSync; + } +}); +Object.defineProperty(exports, "loadPartialConfig", { + enumerable: true, + get: function () { + return _index2.loadPartialConfig; + } +}); +Object.defineProperty(exports, "loadPartialConfigAsync", { + enumerable: true, + get: function () { + return _index2.loadPartialConfigAsync; + } +}); +Object.defineProperty(exports, "loadPartialConfigSync", { + enumerable: true, + get: function () { + return _index2.loadPartialConfigSync; + } +}); +Object.defineProperty(exports, "parse", { + enumerable: true, + get: function () { + return _parse.parse; + } +}); +Object.defineProperty(exports, "parseAsync", { + enumerable: true, + get: function () { + return _parse.parseAsync; + } +}); +Object.defineProperty(exports, "parseSync", { + enumerable: true, + get: function () { + return _parse.parseSync; + } +}); +exports.resolvePreset = exports.resolvePlugin = void 0; +Object.defineProperty((0, exports), "template", { + enumerable: true, + get: function () { + return _template().default; + } +}); +Object.defineProperty((0, exports), "tokTypes", { + enumerable: true, + get: function () { + return _parser().tokTypes; + } +}); +Object.defineProperty(exports, "transform", { + enumerable: true, + get: function () { + return _transform.transform; + } +}); +Object.defineProperty(exports, "transformAsync", { + enumerable: true, + get: function () { + return _transform.transformAsync; + } +}); +Object.defineProperty(exports, "transformFile", { + enumerable: true, + get: function () { + return _transformFile.transformFile; + } +}); +Object.defineProperty(exports, "transformFileAsync", { + enumerable: true, + get: function () { + return _transformFile.transformFileAsync; + } +}); +Object.defineProperty(exports, "transformFileSync", { + enumerable: true, + get: function () { + return _transformFile.transformFileSync; + } +}); +Object.defineProperty(exports, "transformFromAst", { + enumerable: true, + get: function () { + return _transformAst.transformFromAst; + } +}); +Object.defineProperty(exports, "transformFromAstAsync", { + enumerable: true, + get: function () { + return _transformAst.transformFromAstAsync; + } +}); +Object.defineProperty(exports, "transformFromAstSync", { + enumerable: true, + get: function () { + return _transformAst.transformFromAstSync; + } +}); +Object.defineProperty(exports, "transformSync", { + enumerable: true, + get: function () { + return _transform.transformSync; + } +}); +Object.defineProperty((0, exports), "traverse", { + enumerable: true, + get: function () { + return _traverse().default; + } +}); +exports.version = exports.types = void 0; +var _file = require("./transformation/file/file.js"); +var _buildExternalHelpers = require("./tools/build-external-helpers.js"); +var resolvers = require("./config/files/index.js"); +var _environment = require("./config/helpers/environment.js"); +function _types() { + const data = require("@babel/types"); + _types = function () { + return data; + }; + return data; +} +Object.defineProperty((0, exports), "types", { + enumerable: true, + get: function () { + return _types(); + } +}); +function _parser() { + const data = require("@babel/parser"); + _parser = function () { + return data; + }; + return data; +} +function _traverse() { + const data = require("@babel/traverse"); + _traverse = function () { + return data; + }; + return data; +} +function _template() { + const data = require("@babel/template"); + _template = function () { + return data; + }; + return data; +} +var _index2 = require("./config/index.js"); +var _transform = require("./transform.js"); +var _transformFile = require("./transform-file.js"); +var _transformAst = require("./transform-ast.js"); +var _parse = require("./parse.js"); +const version = exports.version = "7.29.0"; +const resolvePlugin = (name, dirname) => resolvers.resolvePlugin(name, dirname, false).filepath; +exports.resolvePlugin = resolvePlugin; +const resolvePreset = (name, dirname) => resolvers.resolvePreset(name, dirname, false).filepath; +exports.resolvePreset = resolvePreset; +const DEFAULT_EXTENSIONS = exports.DEFAULT_EXTENSIONS = Object.freeze([".js", ".jsx", ".es6", ".es", ".mjs", ".cjs"]); +exports.OptionManager = class OptionManager { + init(opts) { + return (0, _index2.loadOptionsSync)(opts); + } +}; +exports.Plugin = function Plugin(alias) { + throw new Error(`The (${alias}) Babel 5 plugin is being run with an unsupported Babel version.`); +}; +0 && (exports.types = exports.traverse = exports.tokTypes = exports.template = 0); + +//# sourceMappingURL=index.js.map diff --git a/server/api/node_modules/@babel/core/lib/index.js.map b/server/api/node_modules/@babel/core/lib/index.js.map new file mode 100644 index 0000000..a5f9ea5 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/index.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_file","require","_buildExternalHelpers","resolvers","_environment","_types","data","Object","defineProperty","exports","enumerable","get","_parser","_traverse","_template","_index2","_transform","_transformFile","_transformAst","_parse","version","resolvePlugin","name","dirname","filepath","resolvePreset","DEFAULT_EXTENSIONS","freeze","OptionManager","init","opts","loadOptionsSync","Plugin","alias","Error","types","traverse","tokTypes","template"],"sources":["../src/index.ts"],"sourcesContent":["if (!process.env.IS_PUBLISH && !USE_ESM && process.env.BABEL_8_BREAKING) {\n throw new Error(\n \"BABEL_8_BREAKING is only supported in ESM. Please run `make use-esm`.\",\n );\n}\n\nexport const version = PACKAGE_JSON.version;\n\nexport { default as File } from \"./transformation/file/file.ts\";\nexport type { default as PluginPass } from \"./transformation/plugin-pass.ts\";\nexport { default as buildExternalHelpers } from \"./tools/build-external-helpers.ts\";\n\nimport * as resolvers from \"./config/files/index.ts\";\n// For backwards-compatibility, we expose the resolvers\n// with the old API.\nexport const resolvePlugin = (name: string, dirname: string) =>\n resolvers.resolvePlugin(name, dirname, false).filepath;\nexport const resolvePreset = (name: string, dirname: string) =>\n resolvers.resolvePreset(name, dirname, false).filepath;\n\nexport { getEnv } from \"./config/helpers/environment.ts\";\n\n// NOTE: Lazy re-exports aren't detected by the Node.js CJS-ESM interop.\n// These are handled by pluginInjectNodeReexportsHints in our babel.config.js\n// so that they can work well.\nexport * as types from \"@babel/types\";\nexport { tokTypes } from \"@babel/parser\";\nexport { default as traverse } from \"@babel/traverse\";\nexport { default as template } from \"@babel/template\";\n\n// rollup-plugin-dts assumes that all re-exported types are also valid values\n// Visitor is only a type, so we need to use this workaround to prevent\n// rollup-plugin-dts from breaking it.\n// TODO: Figure out how to fix this upstream.\nexport type { NodePath, Scope } from \"@babel/traverse\";\nexport type Visitor = import(\"@babel/traverse\").Visitor;\n\nexport {\n createConfigItem,\n createConfigItemAsync,\n createConfigItemSync,\n} from \"./config/index.ts\";\n\nexport {\n loadOptions,\n loadOptionsAsync,\n loadPartialConfig,\n loadPartialConfigAsync,\n loadPartialConfigSync,\n} from \"./config/index.ts\";\nimport { loadOptionsSync } from \"./config/index.ts\";\nimport type {\n ConfigApplicableTest,\n PluginItem,\n} from \"./config/validation/options.ts\";\nexport { loadOptionsSync };\nexport type { PluginItem };\n\nexport type PresetObject = {\n overrides?: PresetObject[];\n test?: ConfigApplicableTest;\n plugins?: PluginItem[];\n};\n\nexport type {\n CallerMetadata,\n ConfigAPI,\n ConfigItem,\n InputOptions,\n NormalizedOptions,\n PartialConfig,\n PluginAPI,\n PluginObject,\n PresetAPI,\n} from \"./config/index.ts\";\n\nexport {\n type FileResult,\n transform,\n transformAsync,\n transformSync,\n} from \"./transform.ts\";\nexport {\n transformFile,\n transformFileAsync,\n transformFileSync,\n} from \"./transform-file.ts\";\nexport {\n transformFromAst,\n transformFromAstAsync,\n transformFromAstSync,\n} from \"./transform-ast.ts\";\nexport { parse, parseAsync, parseSync } from \"./parse.ts\";\n\n/**\n * Recommended set of compilable extensions. Not used in @babel/core directly, but meant as\n * as an easy source for tooling making use of @babel/core.\n */\nexport const DEFAULT_EXTENSIONS = Object.freeze([\n \".js\",\n \".jsx\",\n \".es6\",\n \".es\",\n \".mjs\",\n \".cjs\",\n] as const);\n\nif (!process.env.BABEL_8_BREAKING && !USE_ESM) {\n // For easier backward-compatibility, provide an API like the one we exposed in Babel 6.\n // eslint-disable-next-line no-restricted-globals\n exports.OptionManager = class OptionManager {\n init(opts: any) {\n return loadOptionsSync(opts);\n }\n };\n\n // eslint-disable-next-line no-restricted-globals\n exports.Plugin = function Plugin(alias: string) {\n throw new Error(\n `The (${alias}) Babel 5 plugin is being run with an unsupported Babel version.`,\n );\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,IAAAA,KAAA,GAAAC,OAAA;AAEA,IAAAC,qBAAA,GAAAD,OAAA;AAEA,IAAAE,SAAA,GAAAF,OAAA;AAQA,IAAAG,YAAA,GAAAH,OAAA;AAAyD,SAAAI,OAAA;EAAA,MAAAC,IAAA,GAAAL,OAAA;EAAAI,MAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAAC,MAAA,CAAAC,cAAA,KAAAC,OAAA;EAAAC,UAAA;EAAAC,GAAA,WAAAA,CAAA;IAAA,OAAAN,MAAA;EAAA;AAAA;AAMzD,SAAAO,QAAA;EAAA,MAAAN,IAAA,GAAAL,OAAA;EAAAW,OAAA,YAAAA,CAAA;IAAA,OAAAN,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAO,UAAA;EAAA,MAAAP,IAAA,GAAAL,OAAA;EAAAY,SAAA,YAAAA,CAAA;IAAA,OAAAP,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAQ,UAAA;EAAA,MAAAR,IAAA,GAAAL,OAAA;EAAAa,SAAA,YAAAA,CAAA;IAAA,OAAAR,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AASA,IAAAS,OAAA,GAAAd,OAAA;AAuCA,IAAAe,UAAA,GAAAf,OAAA;AAMA,IAAAgB,cAAA,GAAAhB,OAAA;AAKA,IAAAiB,aAAA,GAAAjB,OAAA;AAKA,IAAAkB,MAAA,GAAAlB,OAAA;AAtFO,MAAMmB,OAAO,GAAAX,OAAA,CAAAW,OAAA,WAAuB;AASpC,MAAMC,aAAa,GAAGA,CAACC,IAAY,EAAEC,OAAe,KACzDpB,SAAS,CAACkB,aAAa,CAACC,IAAI,EAAEC,OAAO,EAAE,KAAK,CAAC,CAACC,QAAQ;AAACf,OAAA,CAAAY,aAAA,GAAAA,aAAA;AAClD,MAAMI,aAAa,GAAGA,CAACH,IAAY,EAAEC,OAAe,KACzDpB,SAAS,CAACsB,aAAa,CAACH,IAAI,EAAEC,OAAO,EAAE,KAAK,CAAC,CAACC,QAAQ;AAACf,OAAA,CAAAgB,aAAA,GAAAA,aAAA;AAgFlD,MAAMC,kBAAkB,GAAAjB,OAAA,CAAAiB,kBAAA,GAAGnB,MAAM,CAACoB,MAAM,CAAC,CAC9C,KAAK,EACL,MAAM,EACN,MAAM,EACN,KAAK,EACL,MAAM,EACN,MAAM,CACE,CAAC;AAKTlB,OAAO,CAACmB,aAAa,GAAG,MAAMA,aAAa,CAAC;EAC1CC,IAAIA,CAACC,IAAS,EAAE;IACd,OAAO,IAAAC,uBAAe,EAACD,IAAI,CAAC;EAC9B;AACF,CAAC;AAGDrB,OAAO,CAACuB,MAAM,GAAG,SAASA,MAAMA,CAACC,KAAa,EAAE;EAC9C,MAAM,IAAIC,KAAK,CACb,QAAQD,KAAK,kEACf,CAAC;AACH,CAAC;AAAC,MAAAxB,OAAA,CAAA0B,KAAA,GAAA1B,OAAA,CAAA2B,QAAA,GAAA3B,OAAA,CAAA4B,QAAA,GAAA5B,OAAA,CAAA6B,QAAA","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/core/lib/parse.js b/server/api/node_modules/@babel/core/lib/parse.js new file mode 100644 index 0000000..5c4db4c --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/parse.js @@ -0,0 +1,45 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.parse = void 0; +exports.parseAsync = parseAsync; +exports.parseSync = parseSync; +function _gensync() { + const data = require("gensync"); + _gensync = function () { + return data; + }; + return data; +} +var _index = require("./config/index.js"); +var _index2 = require("./parser/index.js"); +var _normalizeOpts = require("./transformation/normalize-opts.js"); +var _rewriteStackTrace = require("./errors/rewrite-stack-trace.js"); +const parseRunner = _gensync()(function* parse(code, opts) { + const config = yield* (0, _index.default)(opts); + if (config === null) { + return null; + } + return yield* (0, _index2.default)(config.passes, (0, _normalizeOpts.default)(config), code); +}); +const parse = exports.parse = function parse(code, opts, callback) { + if (typeof opts === "function") { + callback = opts; + opts = undefined; + } + if (callback === undefined) { + return (0, _rewriteStackTrace.beginHiddenCallStack)(parseRunner.sync)(code, opts); + } + (0, _rewriteStackTrace.beginHiddenCallStack)(parseRunner.errback)(code, opts, callback); +}; +function parseSync(...args) { + return (0, _rewriteStackTrace.beginHiddenCallStack)(parseRunner.sync)(...args); +} +function parseAsync(...args) { + return (0, _rewriteStackTrace.beginHiddenCallStack)(parseRunner.async)(...args); +} +0 && 0; + +//# sourceMappingURL=parse.js.map diff --git a/server/api/node_modules/@babel/core/lib/parse.js.map b/server/api/node_modules/@babel/core/lib/parse.js.map new file mode 100644 index 0000000..91434fc --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/parse.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_gensync","data","require","_index","_index2","_normalizeOpts","_rewriteStackTrace","parseRunner","gensync","parse","code","opts","config","loadConfig","parser","passes","normalizeOptions","exports","callback","undefined","beginHiddenCallStack","sync","errback","parseSync","args","parseAsync","async"],"sources":["../src/parse.ts"],"sourcesContent":["import gensync, { type Handler } from \"gensync\";\n\nimport loadConfig, { type InputOptions } from \"./config/index.ts\";\nimport parser, { type ParseResult } from \"./parser/index.ts\";\nimport normalizeOptions from \"./transformation/normalize-opts.ts\";\n\nimport { beginHiddenCallStack } from \"./errors/rewrite-stack-trace.ts\";\n\ntype FileParseCallback = {\n (err: Error, ast: null): void;\n (err: null, ast: ParseResult | null): void;\n};\n\ntype Parse = {\n (code: string, callback: FileParseCallback): void;\n (\n code: string,\n opts: InputOptions | undefined | null,\n callback: FileParseCallback,\n ): void;\n (code: string, opts?: InputOptions | null): ParseResult | null;\n};\n\nconst parseRunner = gensync(function* parse(\n code: string,\n opts: InputOptions | undefined | null,\n): Handler {\n const config = yield* loadConfig(opts);\n\n if (config === null) {\n return null;\n }\n\n return yield* parser(config.passes, normalizeOptions(config), code);\n});\n\nexport const parse: Parse = function parse(\n code,\n opts?,\n callback?: FileParseCallback,\n) {\n if (typeof opts === \"function\") {\n callback = opts;\n opts = undefined as InputOptions;\n }\n\n if (callback === undefined) {\n if (process.env.BABEL_8_BREAKING) {\n throw new Error(\n \"Starting from Babel 8.0.0, the 'parse' function expects a callback. If you need to call it synchronously, please use 'parseSync'.\",\n );\n } else {\n // console.warn(\n // \"Starting from Babel 8.0.0, the 'parse' function will expect a callback. If you need to call it synchronously, please use 'parseSync'.\",\n // );\n return beginHiddenCallStack(parseRunner.sync)(code, opts);\n }\n }\n\n beginHiddenCallStack(parseRunner.errback)(code, opts, callback);\n};\n\nexport function parseSync(...args: Parameters) {\n return beginHiddenCallStack(parseRunner.sync)(...args);\n}\nexport function parseAsync(...args: Parameters) {\n return beginHiddenCallStack(parseRunner.async)(...args);\n}\n"],"mappings":";;;;;;;;AAAA,SAAAA,SAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,QAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,IAAAE,MAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,cAAA,GAAAH,OAAA;AAEA,IAAAI,kBAAA,GAAAJ,OAAA;AAiBA,MAAMK,WAAW,GAAGC,SAAMA,CAAC,CAAC,UAAUC,KAAKA,CACzCC,IAAY,EACZC,IAAqC,EACR;EAC7B,MAAMC,MAAM,GAAG,OAAO,IAAAC,cAAU,EAACF,IAAI,CAAC;EAEtC,IAAIC,MAAM,KAAK,IAAI,EAAE;IACnB,OAAO,IAAI;EACb;EAEA,OAAO,OAAO,IAAAE,eAAM,EAACF,MAAM,CAACG,MAAM,EAAE,IAAAC,sBAAgB,EAACJ,MAAM,CAAC,EAAEF,IAAI,CAAC;AACrE,CAAC,CAAC;AAEK,MAAMD,KAAY,GAAAQ,OAAA,CAAAR,KAAA,GAAG,SAASA,KAAKA,CACxCC,IAAI,EACJC,IAAK,EACLO,QAA4B,EAC5B;EACA,IAAI,OAAOP,IAAI,KAAK,UAAU,EAAE;IAC9BO,QAAQ,GAAGP,IAAI;IACfA,IAAI,GAAGQ,SAAyB;EAClC;EAEA,IAAID,QAAQ,KAAKC,SAAS,EAAE;IASxB,OAAO,IAAAC,uCAAoB,EAACb,WAAW,CAACc,IAAI,CAAC,CAACX,IAAI,EAAEC,IAAI,CAAC;EAE7D;EAEA,IAAAS,uCAAoB,EAACb,WAAW,CAACe,OAAO,CAAC,CAACZ,IAAI,EAAEC,IAAI,EAAEO,QAAQ,CAAC;AACjE,CAAC;AAEM,SAASK,SAASA,CAAC,GAAGC,IAAyC,EAAE;EACtE,OAAO,IAAAJ,uCAAoB,EAACb,WAAW,CAACc,IAAI,CAAC,CAAC,GAAGG,IAAI,CAAC;AACxD;AACO,SAASC,UAAUA,CAAC,GAAGD,IAA0C,EAAE;EACxE,OAAO,IAAAJ,uCAAoB,EAACb,WAAW,CAACmB,KAAK,CAAC,CAAC,GAAGF,IAAI,CAAC;AACzD;AAAC","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/core/lib/parser/index.js b/server/api/node_modules/@babel/core/lib/parser/index.js new file mode 100644 index 0000000..690b343 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/parser/index.js @@ -0,0 +1,85 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = parser; +function _parser() { + const data = require("@babel/parser"); + _parser = function () { + return data; + }; + return data; +} +function _codeFrame() { + const data = require("@babel/code-frame"); + _codeFrame = function () { + return data; + }; + return data; +} +var _missingPluginHelper = require("./util/missing-plugin-helper.js"); +function* parser(pluginPasses, { + parserOpts, + highlightCode = true, + filename = "unknown" +}, code) { + try { + const results = []; + for (const plugins of pluginPasses) { + for (const plugin of plugins) { + const { + parserOverride + } = plugin; + if (parserOverride) { + const ast = parserOverride(code, parserOpts, _parser().parse); + if (ast !== undefined) results.push(ast); + } + } + } + if (results.length === 0) { + return (0, _parser().parse)(code, parserOpts); + } else if (results.length === 1) { + yield* []; + if (typeof results[0].then === "function") { + throw new Error(`You appear to be using an async parser plugin, ` + `which your current version of Babel does not support. ` + `If you're using a published plugin, you may need to upgrade ` + `your @babel/core version.`); + } + return results[0]; + } + throw new Error("More than one plugin attempted to override parsing."); + } catch (err) { + if (err.code === "BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED") { + err.message += "\nConsider renaming the file to '.mjs', or setting sourceType:module " + "or sourceType:unambiguous in your Babel config for this file."; + } + const startLine = parserOpts == null ? void 0 : parserOpts.startLine; + const startColumn = parserOpts == null ? void 0 : parserOpts.startColumn; + if (startColumn != null) { + code = " ".repeat(startColumn) + code; + } + const { + loc, + missingPlugin + } = err; + if (loc) { + const codeFrame = (0, _codeFrame().codeFrameColumns)(code, { + start: { + line: loc.line, + column: loc.column + 1 + } + }, { + highlightCode, + startLine + }); + if (missingPlugin) { + err.message = `${filename}: ` + (0, _missingPluginHelper.default)(missingPlugin[0], loc, codeFrame, filename); + } else { + err.message = `${filename}: ${err.message}\n\n` + codeFrame; + } + err.code = "BABEL_PARSE_ERROR"; + } + throw err; + } +} +0 && 0; + +//# sourceMappingURL=index.js.map diff --git a/server/api/node_modules/@babel/core/lib/parser/index.js.map b/server/api/node_modules/@babel/core/lib/parser/index.js.map new file mode 100644 index 0000000..d173041 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/parser/index.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_parser","data","require","_codeFrame","_missingPluginHelper","parser","pluginPasses","parserOpts","highlightCode","filename","code","results","plugins","plugin","parserOverride","ast","parse","undefined","push","length","then","Error","err","message","startLine","startColumn","repeat","loc","missingPlugin","codeFrame","codeFrameColumns","start","line","column","generateMissingPluginMessage"],"sources":["../../src/parser/index.ts"],"sourcesContent":["import type { Handler } from \"gensync\";\nimport { parse, type ParseResult } from \"@babel/parser\";\nimport { codeFrameColumns } from \"@babel/code-frame\";\nimport generateMissingPluginMessage from \"./util/missing-plugin-helper.ts\";\nimport type { PluginPasses } from \"../config/index.ts\";\nimport type { ResolvedOptions } from \"../config/validation/options.ts\";\n\nexport type { ParseResult };\n\nexport default function* parser(\n pluginPasses: PluginPasses,\n { parserOpts, highlightCode = true, filename = \"unknown\" }: ResolvedOptions,\n code: string,\n): Handler {\n try {\n const results = [];\n for (const plugins of pluginPasses) {\n for (const plugin of plugins) {\n const { parserOverride } = plugin;\n if (parserOverride) {\n const ast = parserOverride(code, parserOpts, parse);\n\n if (ast !== undefined) results.push(ast);\n }\n }\n }\n\n if (results.length === 0) {\n return parse(code, parserOpts);\n } else if (results.length === 1) {\n // If we want to allow async parsers\n yield* [];\n if (typeof (results[0] as any).then === \"function\") {\n throw new Error(\n `You appear to be using an async parser plugin, ` +\n `which your current version of Babel does not support. ` +\n `If you're using a published plugin, you may need to upgrade ` +\n `your @babel/core version.`,\n );\n }\n return results[0];\n }\n // TODO: Add an error code\n throw new Error(\"More than one plugin attempted to override parsing.\");\n } catch (err) {\n if (err.code === \"BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED\") {\n err.message +=\n \"\\nConsider renaming the file to '.mjs', or setting sourceType:module \" +\n \"or sourceType:unambiguous in your Babel config for this file.\";\n // err.code will be changed to BABEL_PARSE_ERROR later.\n }\n\n const startLine = parserOpts?.startLine;\n const startColumn = parserOpts?.startColumn;\n\n if (startColumn != null) {\n code = \" \".repeat(startColumn) + code;\n }\n\n const { loc, missingPlugin } = err;\n if (loc) {\n const codeFrame = codeFrameColumns(\n code,\n {\n start: {\n line: loc.line,\n column: loc.column + 1,\n },\n },\n {\n highlightCode,\n startLine,\n },\n );\n if (missingPlugin) {\n err.message =\n `${filename}: ` +\n generateMissingPluginMessage(\n missingPlugin[0],\n loc,\n codeFrame,\n filename,\n );\n } else {\n err.message = `${filename}: ${err.message}\\n\\n` + codeFrame;\n }\n err.code = \"BABEL_PARSE_ERROR\";\n }\n throw err;\n }\n}\n"],"mappings":";;;;;;AACA,SAAAA,QAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,OAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,WAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,UAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,IAAAG,oBAAA,GAAAF,OAAA;AAMe,UAAUG,MAAMA,CAC7BC,YAA0B,EAC1B;EAAEC,UAAU;EAAEC,aAAa,GAAG,IAAI;EAAEC,QAAQ,GAAG;AAA2B,CAAC,EAC3EC,IAAY,EACU;EACtB,IAAI;IACF,MAAMC,OAAO,GAAG,EAAE;IAClB,KAAK,MAAMC,OAAO,IAAIN,YAAY,EAAE;MAClC,KAAK,MAAMO,MAAM,IAAID,OAAO,EAAE;QAC5B,MAAM;UAAEE;QAAe,CAAC,GAAGD,MAAM;QACjC,IAAIC,cAAc,EAAE;UAClB,MAAMC,GAAG,GAAGD,cAAc,CAACJ,IAAI,EAAEH,UAAU,EAAES,eAAK,CAAC;UAEnD,IAAID,GAAG,KAAKE,SAAS,EAAEN,OAAO,CAACO,IAAI,CAACH,GAAG,CAAC;QAC1C;MACF;IACF;IAEA,IAAIJ,OAAO,CAACQ,MAAM,KAAK,CAAC,EAAE;MACxB,OAAO,IAAAH,eAAK,EAACN,IAAI,EAAEH,UAAU,CAAC;IAChC,CAAC,MAAM,IAAII,OAAO,CAACQ,MAAM,KAAK,CAAC,EAAE;MAE/B,OAAO,EAAE;MACT,IAAI,OAAQR,OAAO,CAAC,CAAC,CAAC,CAASS,IAAI,KAAK,UAAU,EAAE;QAClD,MAAM,IAAIC,KAAK,CACb,iDAAiD,GAC/C,wDAAwD,GACxD,8DAA8D,GAC9D,2BACJ,CAAC;MACH;MACA,OAAOV,OAAO,CAAC,CAAC,CAAC;IACnB;IAEA,MAAM,IAAIU,KAAK,CAAC,qDAAqD,CAAC;EACxE,CAAC,CAAC,OAAOC,GAAG,EAAE;IACZ,IAAIA,GAAG,CAACZ,IAAI,KAAK,yCAAyC,EAAE;MAC1DY,GAAG,CAACC,OAAO,IACT,uEAAuE,GACvE,+DAA+D;IAEnE;IAEA,MAAMC,SAAS,GAAGjB,UAAU,oBAAVA,UAAU,CAAEiB,SAAS;IACvC,MAAMC,WAAW,GAAGlB,UAAU,oBAAVA,UAAU,CAAEkB,WAAW;IAE3C,IAAIA,WAAW,IAAI,IAAI,EAAE;MACvBf,IAAI,GAAG,GAAG,CAACgB,MAAM,CAACD,WAAW,CAAC,GAAGf,IAAI;IACvC;IAEA,MAAM;MAAEiB,GAAG;MAAEC;IAAc,CAAC,GAAGN,GAAG;IAClC,IAAIK,GAAG,EAAE;MACP,MAAME,SAAS,GAAG,IAAAC,6BAAgB,EAChCpB,IAAI,EACJ;QACEqB,KAAK,EAAE;UACLC,IAAI,EAAEL,GAAG,CAACK,IAAI;UACdC,MAAM,EAAEN,GAAG,CAACM,MAAM,GAAG;QACvB;MACF,CAAC,EACD;QACEzB,aAAa;QACbgB;MACF,CACF,CAAC;MACD,IAAII,aAAa,EAAE;QACjBN,GAAG,CAACC,OAAO,GACT,GAAGd,QAAQ,IAAI,GACf,IAAAyB,4BAA4B,EAC1BN,aAAa,CAAC,CAAC,CAAC,EAChBD,GAAG,EACHE,SAAS,EACTpB,QACF,CAAC;MACL,CAAC,MAAM;QACLa,GAAG,CAACC,OAAO,GAAG,GAAGd,QAAQ,KAAKa,GAAG,CAACC,OAAO,MAAM,GAAGM,SAAS;MAC7D;MACAP,GAAG,CAACZ,IAAI,GAAG,mBAAmB;IAChC;IACA,MAAMY,GAAG;EACX;AACF;AAAC","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/core/lib/parser/util/missing-plugin-helper.js b/server/api/node_modules/@babel/core/lib/parser/util/missing-plugin-helper.js new file mode 100644 index 0000000..0eb294c --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/parser/util/missing-plugin-helper.js @@ -0,0 +1,337 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = generateMissingPluginMessage; +const pluginNameMap = { + asyncDoExpressions: { + syntax: { + name: "@babel/plugin-syntax-async-do-expressions", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-async-do-expressions" + } + }, + decimal: { + syntax: { + name: "@babel/plugin-syntax-decimal", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-decimal" + } + }, + decorators: { + syntax: { + name: "@babel/plugin-syntax-decorators", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-decorators" + }, + transform: { + name: "@babel/plugin-proposal-decorators", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-decorators" + } + }, + doExpressions: { + syntax: { + name: "@babel/plugin-syntax-do-expressions", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-do-expressions" + }, + transform: { + name: "@babel/plugin-proposal-do-expressions", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-do-expressions" + } + }, + exportDefaultFrom: { + syntax: { + name: "@babel/plugin-syntax-export-default-from", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-export-default-from" + }, + transform: { + name: "@babel/plugin-proposal-export-default-from", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-export-default-from" + } + }, + flow: { + syntax: { + name: "@babel/plugin-syntax-flow", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-flow" + }, + transform: { + name: "@babel/preset-flow", + url: "https://github.com/babel/babel/tree/main/packages/babel-preset-flow" + } + }, + functionBind: { + syntax: { + name: "@babel/plugin-syntax-function-bind", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-function-bind" + }, + transform: { + name: "@babel/plugin-proposal-function-bind", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-function-bind" + } + }, + functionSent: { + syntax: { + name: "@babel/plugin-syntax-function-sent", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-function-sent" + }, + transform: { + name: "@babel/plugin-proposal-function-sent", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-function-sent" + } + }, + jsx: { + syntax: { + name: "@babel/plugin-syntax-jsx", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-jsx" + }, + transform: { + name: "@babel/preset-react", + url: "https://github.com/babel/babel/tree/main/packages/babel-preset-react" + } + }, + pipelineOperator: { + syntax: { + name: "@babel/plugin-syntax-pipeline-operator", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-pipeline-operator" + }, + transform: { + name: "@babel/plugin-proposal-pipeline-operator", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-pipeline-operator" + } + }, + recordAndTuple: { + syntax: { + name: "@babel/plugin-syntax-record-and-tuple", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-record-and-tuple" + } + }, + throwExpressions: { + syntax: { + name: "@babel/plugin-syntax-throw-expressions", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-throw-expressions" + }, + transform: { + name: "@babel/plugin-proposal-throw-expressions", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-throw-expressions" + } + }, + typescript: { + syntax: { + name: "@babel/plugin-syntax-typescript", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-typescript" + }, + transform: { + name: "@babel/preset-typescript", + url: "https://github.com/babel/babel/tree/main/packages/babel-preset-typescript" + } + } +}; +Object.assign(pluginNameMap, { + asyncGenerators: { + syntax: { + name: "@babel/plugin-syntax-async-generators", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-async-generators" + }, + transform: { + name: "@babel/plugin-transform-async-generator-functions", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-async-generator-functions" + } + }, + classProperties: { + syntax: { + name: "@babel/plugin-syntax-class-properties", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-class-properties" + }, + transform: { + name: "@babel/plugin-transform-class-properties", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-class-properties" + } + }, + classPrivateProperties: { + syntax: { + name: "@babel/plugin-syntax-class-properties", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-class-properties" + }, + transform: { + name: "@babel/plugin-transform-class-properties", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-class-properties" + } + }, + classPrivateMethods: { + syntax: { + name: "@babel/plugin-syntax-class-properties", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-class-properties" + }, + transform: { + name: "@babel/plugin-transform-private-methods", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-private-methods" + } + }, + classStaticBlock: { + syntax: { + name: "@babel/plugin-syntax-class-static-block", + url: "https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-syntax-class-static-block" + }, + transform: { + name: "@babel/plugin-transform-class-static-block", + url: "https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-class-static-block" + } + }, + dynamicImport: { + syntax: { + name: "@babel/plugin-syntax-dynamic-import", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-dynamic-import" + } + }, + exportNamespaceFrom: { + syntax: { + name: "@babel/plugin-syntax-export-namespace-from", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-export-namespace-from" + }, + transform: { + name: "@babel/plugin-transform-export-namespace-from", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-export-namespace-from" + } + }, + importAssertions: { + syntax: { + name: "@babel/plugin-syntax-import-assertions", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-import-assertions" + } + }, + importAttributes: { + syntax: { + name: "@babel/plugin-syntax-import-attributes", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-import-attributes" + } + }, + importMeta: { + syntax: { + name: "@babel/plugin-syntax-import-meta", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-import-meta" + } + }, + logicalAssignment: { + syntax: { + name: "@babel/plugin-syntax-logical-assignment-operators", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-logical-assignment-operators" + }, + transform: { + name: "@babel/plugin-transform-logical-assignment-operators", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-logical-assignment-operators" + } + }, + moduleStringNames: { + syntax: { + name: "@babel/plugin-syntax-module-string-names", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-module-string-names" + } + }, + numericSeparator: { + syntax: { + name: "@babel/plugin-syntax-numeric-separator", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-numeric-separator" + }, + transform: { + name: "@babel/plugin-transform-numeric-separator", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-numeric-separator" + } + }, + nullishCoalescingOperator: { + syntax: { + name: "@babel/plugin-syntax-nullish-coalescing-operator", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-nullish-coalescing-operator" + }, + transform: { + name: "@babel/plugin-transform-nullish-coalescing-operator", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-nullish-coalescing-opearator" + } + }, + objectRestSpread: { + syntax: { + name: "@babel/plugin-syntax-object-rest-spread", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-object-rest-spread" + }, + transform: { + name: "@babel/plugin-transform-object-rest-spread", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-object-rest-spread" + } + }, + optionalCatchBinding: { + syntax: { + name: "@babel/plugin-syntax-optional-catch-binding", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-optional-catch-binding" + }, + transform: { + name: "@babel/plugin-transform-optional-catch-binding", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-optional-catch-binding" + } + }, + optionalChaining: { + syntax: { + name: "@babel/plugin-syntax-optional-chaining", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-optional-chaining" + }, + transform: { + name: "@babel/plugin-transform-optional-chaining", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-optional-chaining" + } + }, + privateIn: { + syntax: { + name: "@babel/plugin-syntax-private-property-in-object", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-private-property-in-object" + }, + transform: { + name: "@babel/plugin-transform-private-property-in-object", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-private-property-in-object" + } + }, + regexpUnicodeSets: { + syntax: { + name: "@babel/plugin-syntax-unicode-sets-regex", + url: "https://github.com/babel/babel/blob/main/packages/babel-plugin-syntax-unicode-sets-regex/README.md" + }, + transform: { + name: "@babel/plugin-transform-unicode-sets-regex", + url: "https://github.com/babel/babel/blob/main/packages/babel-plugin-proposalunicode-sets-regex/README.md" + } + } +}); +const getNameURLCombination = ({ + name, + url +}) => `${name} (${url})`; +function generateMissingPluginMessage(missingPluginName, loc, codeFrame, filename) { + let helpMessage = `Support for the experimental syntax '${missingPluginName}' isn't currently enabled ` + `(${loc.line}:${loc.column + 1}):\n\n` + codeFrame; + const pluginInfo = pluginNameMap[missingPluginName]; + if (pluginInfo) { + const { + syntax: syntaxPlugin, + transform: transformPlugin + } = pluginInfo; + if (syntaxPlugin) { + const syntaxPluginInfo = getNameURLCombination(syntaxPlugin); + if (transformPlugin) { + const transformPluginInfo = getNameURLCombination(transformPlugin); + const sectionType = transformPlugin.name.startsWith("@babel/plugin") ? "plugins" : "presets"; + helpMessage += `\n\nAdd ${transformPluginInfo} to the '${sectionType}' section of your Babel config to enable transformation. +If you want to leave it as-is, add ${syntaxPluginInfo} to the 'plugins' section to enable parsing.`; + } else { + helpMessage += `\n\nAdd ${syntaxPluginInfo} to the 'plugins' section of your Babel config ` + `to enable parsing.`; + } + } + } + const msgFilename = filename === "unknown" ? "" : filename; + helpMessage += ` + +If you already added the plugin for this syntax to your config, it's possible that your config \ +isn't being loaded. +You can re-run Babel with the BABEL_SHOW_CONFIG_FOR environment variable to show the loaded \ +configuration: +\tnpx cross-env BABEL_SHOW_CONFIG_FOR=${msgFilename} +See https://babeljs.io/docs/configuration#print-effective-configs for more info. +`; + return helpMessage; +} +0 && 0; + +//# sourceMappingURL=missing-plugin-helper.js.map diff --git a/server/api/node_modules/@babel/core/lib/parser/util/missing-plugin-helper.js.map b/server/api/node_modules/@babel/core/lib/parser/util/missing-plugin-helper.js.map new file mode 100644 index 0000000..b032bff --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/parser/util/missing-plugin-helper.js.map @@ -0,0 +1 @@ +{"version":3,"names":["pluginNameMap","asyncDoExpressions","syntax","name","url","decimal","decorators","transform","doExpressions","exportDefaultFrom","flow","functionBind","functionSent","jsx","pipelineOperator","recordAndTuple","throwExpressions","typescript","Object","assign","asyncGenerators","classProperties","classPrivateProperties","classPrivateMethods","classStaticBlock","dynamicImport","exportNamespaceFrom","importAssertions","importAttributes","importMeta","logicalAssignment","moduleStringNames","numericSeparator","nullishCoalescingOperator","objectRestSpread","optionalCatchBinding","optionalChaining","privateIn","regexpUnicodeSets","getNameURLCombination","generateMissingPluginMessage","missingPluginName","loc","codeFrame","filename","helpMessage","line","column","pluginInfo","syntaxPlugin","transformPlugin","syntaxPluginInfo","transformPluginInfo","sectionType","startsWith","msgFilename"],"sources":["../../../src/parser/util/missing-plugin-helper.ts"],"sourcesContent":["const pluginNameMap: Record<\n string,\n Partial>>\n> = {\n asyncDoExpressions: {\n syntax: {\n name: \"@babel/plugin-syntax-async-do-expressions\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-async-do-expressions\",\n },\n },\n decimal: {\n syntax: {\n name: \"@babel/plugin-syntax-decimal\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-decimal\",\n },\n },\n decorators: {\n syntax: {\n name: \"@babel/plugin-syntax-decorators\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-decorators\",\n },\n transform: {\n name: \"@babel/plugin-proposal-decorators\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-decorators\",\n },\n },\n doExpressions: {\n syntax: {\n name: \"@babel/plugin-syntax-do-expressions\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-do-expressions\",\n },\n transform: {\n name: \"@babel/plugin-proposal-do-expressions\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-do-expressions\",\n },\n },\n exportDefaultFrom: {\n syntax: {\n name: \"@babel/plugin-syntax-export-default-from\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-export-default-from\",\n },\n transform: {\n name: \"@babel/plugin-proposal-export-default-from\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-export-default-from\",\n },\n },\n flow: {\n syntax: {\n name: \"@babel/plugin-syntax-flow\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-flow\",\n },\n transform: {\n name: \"@babel/preset-flow\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-preset-flow\",\n },\n },\n functionBind: {\n syntax: {\n name: \"@babel/plugin-syntax-function-bind\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-function-bind\",\n },\n transform: {\n name: \"@babel/plugin-proposal-function-bind\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-function-bind\",\n },\n },\n functionSent: {\n syntax: {\n name: \"@babel/plugin-syntax-function-sent\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-function-sent\",\n },\n transform: {\n name: \"@babel/plugin-proposal-function-sent\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-function-sent\",\n },\n },\n jsx: {\n syntax: {\n name: \"@babel/plugin-syntax-jsx\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-jsx\",\n },\n transform: {\n name: \"@babel/preset-react\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-preset-react\",\n },\n },\n pipelineOperator: {\n syntax: {\n name: \"@babel/plugin-syntax-pipeline-operator\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-pipeline-operator\",\n },\n transform: {\n name: \"@babel/plugin-proposal-pipeline-operator\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-pipeline-operator\",\n },\n },\n recordAndTuple: {\n syntax: {\n name: \"@babel/plugin-syntax-record-and-tuple\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-record-and-tuple\",\n },\n },\n throwExpressions: {\n syntax: {\n name: \"@babel/plugin-syntax-throw-expressions\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-throw-expressions\",\n },\n transform: {\n name: \"@babel/plugin-proposal-throw-expressions\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-throw-expressions\",\n },\n },\n typescript: {\n syntax: {\n name: \"@babel/plugin-syntax-typescript\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-typescript\",\n },\n transform: {\n name: \"@babel/preset-typescript\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-preset-typescript\",\n },\n },\n};\n\nif (!process.env.BABEL_8_BREAKING) {\n // TODO: This plugins are now supported by default by @babel/parser.\n Object.assign(pluginNameMap, {\n asyncGenerators: {\n syntax: {\n name: \"@babel/plugin-syntax-async-generators\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-async-generators\",\n },\n transform: {\n name: \"@babel/plugin-transform-async-generator-functions\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-async-generator-functions\",\n },\n },\n classProperties: {\n syntax: {\n name: \"@babel/plugin-syntax-class-properties\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-class-properties\",\n },\n transform: {\n name: \"@babel/plugin-transform-class-properties\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-class-properties\",\n },\n },\n classPrivateProperties: {\n syntax: {\n name: \"@babel/plugin-syntax-class-properties\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-class-properties\",\n },\n transform: {\n name: \"@babel/plugin-transform-class-properties\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-class-properties\",\n },\n },\n classPrivateMethods: {\n syntax: {\n name: \"@babel/plugin-syntax-class-properties\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-class-properties\",\n },\n transform: {\n name: \"@babel/plugin-transform-private-methods\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-private-methods\",\n },\n },\n classStaticBlock: {\n syntax: {\n name: \"@babel/plugin-syntax-class-static-block\",\n url: \"https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-syntax-class-static-block\",\n },\n transform: {\n name: \"@babel/plugin-transform-class-static-block\",\n url: \"https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-class-static-block\",\n },\n },\n dynamicImport: {\n syntax: {\n name: \"@babel/plugin-syntax-dynamic-import\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-dynamic-import\",\n },\n },\n exportNamespaceFrom: {\n syntax: {\n name: \"@babel/plugin-syntax-export-namespace-from\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-export-namespace-from\",\n },\n transform: {\n name: \"@babel/plugin-transform-export-namespace-from\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-export-namespace-from\",\n },\n },\n // Will be removed\n importAssertions: {\n syntax: {\n name: \"@babel/plugin-syntax-import-assertions\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-import-assertions\",\n },\n },\n importAttributes: {\n syntax: {\n name: \"@babel/plugin-syntax-import-attributes\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-import-attributes\",\n },\n },\n importMeta: {\n syntax: {\n name: \"@babel/plugin-syntax-import-meta\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-import-meta\",\n },\n },\n logicalAssignment: {\n syntax: {\n name: \"@babel/plugin-syntax-logical-assignment-operators\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-logical-assignment-operators\",\n },\n transform: {\n name: \"@babel/plugin-transform-logical-assignment-operators\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-logical-assignment-operators\",\n },\n },\n moduleStringNames: {\n syntax: {\n name: \"@babel/plugin-syntax-module-string-names\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-module-string-names\",\n },\n },\n numericSeparator: {\n syntax: {\n name: \"@babel/plugin-syntax-numeric-separator\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-numeric-separator\",\n },\n transform: {\n name: \"@babel/plugin-transform-numeric-separator\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-numeric-separator\",\n },\n },\n nullishCoalescingOperator: {\n syntax: {\n name: \"@babel/plugin-syntax-nullish-coalescing-operator\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-nullish-coalescing-operator\",\n },\n transform: {\n name: \"@babel/plugin-transform-nullish-coalescing-operator\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-nullish-coalescing-opearator\",\n },\n },\n objectRestSpread: {\n syntax: {\n name: \"@babel/plugin-syntax-object-rest-spread\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-object-rest-spread\",\n },\n transform: {\n name: \"@babel/plugin-transform-object-rest-spread\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-object-rest-spread\",\n },\n },\n optionalCatchBinding: {\n syntax: {\n name: \"@babel/plugin-syntax-optional-catch-binding\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-optional-catch-binding\",\n },\n transform: {\n name: \"@babel/plugin-transform-optional-catch-binding\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-optional-catch-binding\",\n },\n },\n optionalChaining: {\n syntax: {\n name: \"@babel/plugin-syntax-optional-chaining\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-optional-chaining\",\n },\n transform: {\n name: \"@babel/plugin-transform-optional-chaining\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-optional-chaining\",\n },\n },\n privateIn: {\n syntax: {\n name: \"@babel/plugin-syntax-private-property-in-object\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-private-property-in-object\",\n },\n transform: {\n name: \"@babel/plugin-transform-private-property-in-object\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-private-property-in-object\",\n },\n },\n regexpUnicodeSets: {\n syntax: {\n name: \"@babel/plugin-syntax-unicode-sets-regex\",\n url: \"https://github.com/babel/babel/blob/main/packages/babel-plugin-syntax-unicode-sets-regex/README.md\",\n },\n transform: {\n name: \"@babel/plugin-transform-unicode-sets-regex\",\n url: \"https://github.com/babel/babel/blob/main/packages/babel-plugin-proposalunicode-sets-regex/README.md\",\n },\n },\n });\n}\n\nconst getNameURLCombination = ({ name, url }: { name: string; url: string }) =>\n `${name} (${url})`;\n\n/*\nReturns a string of the format:\nSupport for the experimental syntax [@babel/parser plugin name] isn't currently enabled ([loc]):\n\n[code frame]\n\nAdd [npm package name] ([url]) to the 'plugins' section of your Babel config\nto enable [parsing|transformation].\n*/\nexport default function generateMissingPluginMessage(\n missingPluginName: string,\n loc: {\n line: number;\n column: number;\n },\n codeFrame: string,\n filename: string,\n): string {\n let helpMessage =\n `Support for the experimental syntax '${missingPluginName}' isn't currently enabled ` +\n `(${loc.line}:${loc.column + 1}):\\n\\n` +\n codeFrame;\n const pluginInfo = pluginNameMap[missingPluginName];\n if (pluginInfo) {\n const { syntax: syntaxPlugin, transform: transformPlugin } = pluginInfo;\n if (syntaxPlugin) {\n const syntaxPluginInfo = getNameURLCombination(syntaxPlugin);\n if (transformPlugin) {\n const transformPluginInfo = getNameURLCombination(transformPlugin);\n const sectionType = transformPlugin.name.startsWith(\"@babel/plugin\")\n ? \"plugins\"\n : \"presets\";\n helpMessage += `\\n\\nAdd ${transformPluginInfo} to the '${sectionType}' section of your Babel config to enable transformation.\nIf you want to leave it as-is, add ${syntaxPluginInfo} to the 'plugins' section to enable parsing.`;\n } else {\n helpMessage +=\n `\\n\\nAdd ${syntaxPluginInfo} to the 'plugins' section of your Babel config ` +\n `to enable parsing.`;\n }\n }\n }\n\n const msgFilename =\n filename === \"unknown\" ? \"\" : filename;\n helpMessage += `\n\nIf you already added the plugin for this syntax to your config, it's possible that your config \\\nisn't being loaded.\nYou can re-run Babel with the BABEL_SHOW_CONFIG_FOR environment variable to show the loaded \\\nconfiguration:\n\\tnpx cross-env BABEL_SHOW_CONFIG_FOR=${msgFilename} \nSee https://babeljs.io/docs/configuration#print-effective-configs for more info.\n`;\n return helpMessage;\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/core/lib/tools/build-external-helpers.js b/server/api/node_modules/@babel/core/lib/tools/build-external-helpers.js new file mode 100644 index 0000000..88c90dc --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/tools/build-external-helpers.js @@ -0,0 +1,144 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = _default; +function helpers() { + const data = require("@babel/helpers"); + helpers = function () { + return data; + }; + return data; +} +function _generator() { + const data = require("@babel/generator"); + _generator = function () { + return data; + }; + return data; +} +function _template() { + const data = require("@babel/template"); + _template = function () { + return data; + }; + return data; +} +function _t() { + const data = require("@babel/types"); + _t = function () { + return data; + }; + return data; +} +const { + arrayExpression, + assignmentExpression, + binaryExpression, + blockStatement, + callExpression, + cloneNode, + conditionalExpression, + exportNamedDeclaration, + exportSpecifier, + expressionStatement, + functionExpression, + identifier, + memberExpression, + objectExpression, + program, + stringLiteral, + unaryExpression, + variableDeclaration, + variableDeclarator +} = _t(); +const buildUmdWrapper = replacements => _template().default.statement` + (function (root, factory) { + if (typeof define === "function" && define.amd) { + define(AMD_ARGUMENTS, factory); + } else if (typeof exports === "object") { + factory(COMMON_ARGUMENTS); + } else { + factory(BROWSER_ARGUMENTS); + } + })(UMD_ROOT, function (FACTORY_PARAMETERS) { + FACTORY_BODY + }); + `(replacements); +function buildGlobal(allowlist) { + const namespace = identifier("babelHelpers"); + const body = []; + const container = functionExpression(null, [identifier("global")], blockStatement(body)); + const tree = program([expressionStatement(callExpression(container, [conditionalExpression(binaryExpression("===", unaryExpression("typeof", identifier("global")), stringLiteral("undefined")), identifier("self"), identifier("global"))]))]); + body.push(variableDeclaration("var", [variableDeclarator(namespace, assignmentExpression("=", memberExpression(identifier("global"), namespace), objectExpression([])))])); + buildHelpers(body, namespace, allowlist); + return tree; +} +function buildModule(allowlist) { + const body = []; + const refs = buildHelpers(body, null, allowlist); + body.unshift(exportNamedDeclaration(null, Object.keys(refs).map(name => { + return exportSpecifier(cloneNode(refs[name]), identifier(name)); + }))); + return program(body, [], "module"); +} +function buildUmd(allowlist) { + const namespace = identifier("babelHelpers"); + const body = []; + body.push(variableDeclaration("var", [variableDeclarator(namespace, identifier("global"))])); + buildHelpers(body, namespace, allowlist); + return program([buildUmdWrapper({ + FACTORY_PARAMETERS: identifier("global"), + BROWSER_ARGUMENTS: assignmentExpression("=", memberExpression(identifier("root"), namespace), objectExpression([])), + COMMON_ARGUMENTS: identifier("exports"), + AMD_ARGUMENTS: arrayExpression([stringLiteral("exports")]), + FACTORY_BODY: body, + UMD_ROOT: identifier("this") + })]); +} +function buildVar(allowlist) { + const namespace = identifier("babelHelpers"); + const body = []; + body.push(variableDeclaration("var", [variableDeclarator(namespace, objectExpression([]))])); + const tree = program(body); + buildHelpers(body, namespace, allowlist); + body.push(expressionStatement(namespace)); + return tree; +} +function buildHelpers(body, namespace, allowlist) { + const getHelperReference = name => { + return namespace ? memberExpression(namespace, identifier(name)) : identifier(`_${name}`); + }; + const refs = {}; + helpers().list.forEach(function (name) { + if (allowlist && !allowlist.includes(name)) return; + const ref = refs[name] = getHelperReference(name); + const { + nodes + } = helpers().get(name, getHelperReference, namespace ? null : `_${name}`, [], namespace ? (ast, exportName, mapExportBindingAssignments) => { + mapExportBindingAssignments(node => assignmentExpression("=", ref, node)); + ast.body.push(expressionStatement(assignmentExpression("=", ref, identifier(exportName)))); + } : null); + body.push(...nodes); + }); + return refs; +} +function _default(allowlist, outputType = "global") { + let tree; + const build = { + global: buildGlobal, + module: buildModule, + umd: buildUmd, + var: buildVar + }[outputType]; + if (build) { + tree = build(allowlist); + } else { + throw new Error(`Unsupported output type ${outputType}`); + } + return (0, _generator().default)(tree).code; +} +0 && 0; + +//# sourceMappingURL=build-external-helpers.js.map diff --git a/server/api/node_modules/@babel/core/lib/tools/build-external-helpers.js.map b/server/api/node_modules/@babel/core/lib/tools/build-external-helpers.js.map new file mode 100644 index 0000000..f856480 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/tools/build-external-helpers.js.map @@ -0,0 +1 @@ +{"version":3,"names":["helpers","data","require","_generator","_template","_t","arrayExpression","assignmentExpression","binaryExpression","blockStatement","callExpression","cloneNode","conditionalExpression","exportNamedDeclaration","exportSpecifier","expressionStatement","functionExpression","identifier","memberExpression","objectExpression","program","stringLiteral","unaryExpression","variableDeclaration","variableDeclarator","buildUmdWrapper","replacements","template","statement","buildGlobal","allowlist","namespace","body","container","tree","push","buildHelpers","buildModule","refs","unshift","Object","keys","map","name","buildUmd","FACTORY_PARAMETERS","BROWSER_ARGUMENTS","COMMON_ARGUMENTS","AMD_ARGUMENTS","FACTORY_BODY","UMD_ROOT","buildVar","getHelperReference","list","forEach","includes","ref","nodes","get","ast","exportName","mapExportBindingAssignments","node","_default","outputType","build","global","module","umd","var","Error","generator","code"],"sources":["../../src/tools/build-external-helpers.ts"],"sourcesContent":["import * as helpers from \"@babel/helpers\";\nimport generator from \"@babel/generator\";\nimport template from \"@babel/template\";\nimport {\n arrayExpression,\n assignmentExpression,\n binaryExpression,\n blockStatement,\n callExpression,\n cloneNode,\n conditionalExpression,\n exportNamedDeclaration,\n exportSpecifier,\n expressionStatement,\n functionExpression,\n identifier,\n memberExpression,\n objectExpression,\n program,\n stringLiteral,\n unaryExpression,\n variableDeclaration,\n variableDeclarator,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\nimport type { Replacements } from \"@babel/template\";\n\n// Wrapped to avoid wasting time parsing this when almost no-one uses\n// build-external-helpers.\nconst buildUmdWrapper = (replacements: Replacements) =>\n template.statement`\n (function (root, factory) {\n if (typeof define === \"function\" && define.amd) {\n define(AMD_ARGUMENTS, factory);\n } else if (typeof exports === \"object\") {\n factory(COMMON_ARGUMENTS);\n } else {\n factory(BROWSER_ARGUMENTS);\n }\n })(UMD_ROOT, function (FACTORY_PARAMETERS) {\n FACTORY_BODY\n });\n `(replacements);\n\nfunction buildGlobal(allowlist?: string[]) {\n const namespace = identifier(\"babelHelpers\");\n\n const body: t.Statement[] = [];\n const container = functionExpression(\n null,\n [identifier(\"global\")],\n blockStatement(body),\n );\n const tree = program([\n expressionStatement(\n callExpression(container, [\n // typeof global === \"undefined\" ? self : global\n conditionalExpression(\n binaryExpression(\n \"===\",\n unaryExpression(\"typeof\", identifier(\"global\")),\n stringLiteral(\"undefined\"),\n ),\n identifier(\"self\"),\n identifier(\"global\"),\n ),\n ]),\n ),\n ]);\n\n body.push(\n variableDeclaration(\"var\", [\n variableDeclarator(\n namespace,\n assignmentExpression(\n \"=\",\n memberExpression(identifier(\"global\"), namespace),\n objectExpression([]),\n ),\n ),\n ]),\n );\n\n buildHelpers(body, namespace, allowlist);\n\n return tree;\n}\n\nfunction buildModule(allowlist?: string[]) {\n const body: t.Statement[] = [];\n const refs = buildHelpers(body, null, allowlist);\n\n body.unshift(\n exportNamedDeclaration(\n null,\n Object.keys(refs).map(name => {\n return exportSpecifier(cloneNode(refs[name]), identifier(name));\n }),\n ),\n );\n\n return program(body, [], \"module\");\n}\n\nfunction buildUmd(allowlist?: string[]) {\n const namespace = identifier(\"babelHelpers\");\n\n const body: t.Statement[] = [];\n body.push(\n variableDeclaration(\"var\", [\n variableDeclarator(namespace, identifier(\"global\")),\n ]),\n );\n\n buildHelpers(body, namespace, allowlist);\n\n return program([\n buildUmdWrapper({\n FACTORY_PARAMETERS: identifier(\"global\"),\n BROWSER_ARGUMENTS: assignmentExpression(\n \"=\",\n memberExpression(identifier(\"root\"), namespace),\n objectExpression([]),\n ),\n COMMON_ARGUMENTS: identifier(\"exports\"),\n AMD_ARGUMENTS: arrayExpression([stringLiteral(\"exports\")]),\n FACTORY_BODY: body,\n UMD_ROOT: identifier(\"this\"),\n }),\n ]);\n}\n\nfunction buildVar(allowlist?: string[]) {\n const namespace = identifier(\"babelHelpers\");\n\n const body: t.Statement[] = [];\n body.push(\n variableDeclaration(\"var\", [\n variableDeclarator(namespace, objectExpression([])),\n ]),\n );\n const tree = program(body);\n buildHelpers(body, namespace, allowlist);\n body.push(expressionStatement(namespace));\n return tree;\n}\n\nfunction buildHelpers(\n body: t.Statement[],\n namespace: t.Expression,\n allowlist?: string[],\n): Record;\nfunction buildHelpers(\n body: t.Statement[],\n namespace: null,\n allowlist?: string[],\n): Record;\n\nfunction buildHelpers(\n body: t.Statement[],\n namespace: t.Expression | null,\n allowlist?: string[],\n) {\n const getHelperReference = (name: string) => {\n return namespace\n ? memberExpression(namespace, identifier(name))\n : identifier(`_${name}`);\n };\n\n const refs: Record = {};\n helpers.list.forEach(function (name) {\n if (allowlist && !allowlist.includes(name)) return;\n\n const ref = (refs[name] = getHelperReference(name));\n\n const { nodes } = helpers.get(\n name,\n getHelperReference,\n namespace ? null : `_${name}`,\n [],\n namespace\n ? (ast, exportName, mapExportBindingAssignments) => {\n mapExportBindingAssignments(node =>\n assignmentExpression(\"=\", ref, node),\n );\n ast.body.push(\n expressionStatement(\n assignmentExpression(\"=\", ref, identifier(exportName)),\n ),\n );\n }\n : null,\n );\n\n body.push(...nodes);\n });\n return refs;\n}\nexport default function (\n allowlist?: string[],\n outputType: \"global\" | \"module\" | \"umd\" | \"var\" = \"global\",\n) {\n let tree: t.Program;\n\n const build = {\n global: buildGlobal,\n module: buildModule,\n umd: buildUmd,\n var: buildVar,\n }[outputType];\n\n if (build) {\n tree = build(allowlist);\n } else {\n throw new Error(`Unsupported output type ${outputType}`);\n }\n\n return generator(tree).code;\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/core/lib/transform-ast.js b/server/api/node_modules/@babel/core/lib/transform-ast.js new file mode 100644 index 0000000..f54b9c9 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/transform-ast.js @@ -0,0 +1,48 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.transformFromAst = void 0; +exports.transformFromAstAsync = transformFromAstAsync; +exports.transformFromAstSync = transformFromAstSync; +function _gensync() { + const data = require("gensync"); + _gensync = function () { + return data; + }; + return data; +} +var _index = require("./config/index.js"); +var _index2 = require("./transformation/index.js"); +var _rewriteStackTrace = require("./errors/rewrite-stack-trace.js"); +const transformFromAstRunner = _gensync()(function* (ast, code, opts) { + const config = yield* (0, _index.default)(opts); + if (config === null) return null; + if (!ast) throw new Error("No AST given"); + return yield* (0, _index2.run)(config, code, ast); +}); +const transformFromAst = exports.transformFromAst = function transformFromAst(ast, code, optsOrCallback, maybeCallback) { + let opts; + let callback; + if (typeof optsOrCallback === "function") { + callback = optsOrCallback; + opts = undefined; + } else { + opts = optsOrCallback; + callback = maybeCallback; + } + if (callback === undefined) { + return (0, _rewriteStackTrace.beginHiddenCallStack)(transformFromAstRunner.sync)(ast, code, opts); + } + (0, _rewriteStackTrace.beginHiddenCallStack)(transformFromAstRunner.errback)(ast, code, opts, callback); +}; +function transformFromAstSync(...args) { + return (0, _rewriteStackTrace.beginHiddenCallStack)(transformFromAstRunner.sync)(...args); +} +function transformFromAstAsync(...args) { + return (0, _rewriteStackTrace.beginHiddenCallStack)(transformFromAstRunner.async)(...args); +} +0 && 0; + +//# sourceMappingURL=transform-ast.js.map diff --git a/server/api/node_modules/@babel/core/lib/transform-ast.js.map b/server/api/node_modules/@babel/core/lib/transform-ast.js.map new file mode 100644 index 0000000..e83787e --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/transform-ast.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_gensync","data","require","_index","_index2","_rewriteStackTrace","transformFromAstRunner","gensync","ast","code","opts","config","loadConfig","Error","run","transformFromAst","exports","optsOrCallback","maybeCallback","callback","undefined","beginHiddenCallStack","sync","errback","transformFromAstSync","args","transformFromAstAsync","async"],"sources":["../src/transform-ast.ts"],"sourcesContent":["import gensync, { type Handler } from \"gensync\";\n\nimport loadConfig from \"./config/index.ts\";\nimport type { InputOptions, ResolvedConfig } from \"./config/index.ts\";\nimport { run } from \"./transformation/index.ts\";\nimport type * as t from \"@babel/types\";\n\nimport { beginHiddenCallStack } from \"./errors/rewrite-stack-trace.ts\";\n\nimport type { FileResult, FileResultCallback } from \"./transformation/index.ts\";\ntype AstRoot = t.File | t.Program;\n\ntype TransformFromAst = {\n (ast: AstRoot, code: string, callback: FileResultCallback): void;\n (\n ast: AstRoot,\n code: string,\n opts: InputOptions | undefined | null,\n callback: FileResultCallback,\n ): void;\n (ast: AstRoot, code: string, opts?: InputOptions | null): FileResult | null;\n};\n\nconst transformFromAstRunner = gensync(function* (\n ast: AstRoot,\n code: string,\n opts: InputOptions | undefined | null,\n): Handler {\n const config: ResolvedConfig | null = yield* loadConfig(opts);\n if (config === null) return null;\n\n if (!ast) throw new Error(\"No AST given\");\n\n return yield* run(config, code, ast);\n});\n\nexport const transformFromAst: TransformFromAst = function transformFromAst(\n ast,\n code,\n optsOrCallback?: InputOptions | null | undefined | FileResultCallback,\n maybeCallback?: FileResultCallback,\n) {\n let opts: InputOptions | undefined | null;\n let callback: FileResultCallback | undefined;\n if (typeof optsOrCallback === \"function\") {\n callback = optsOrCallback;\n opts = undefined;\n } else {\n opts = optsOrCallback;\n callback = maybeCallback;\n }\n\n if (callback === undefined) {\n if (process.env.BABEL_8_BREAKING) {\n throw new Error(\n \"Starting from Babel 8.0.0, the 'transformFromAst' function expects a callback. If you need to call it synchronously, please use 'transformFromAstSync'.\",\n );\n } else {\n // console.warn(\n // \"Starting from Babel 8.0.0, the 'transformFromAst' function will expect a callback. If you need to call it synchronously, please use 'transformFromAstSync'.\",\n // );\n return beginHiddenCallStack(transformFromAstRunner.sync)(ast, code, opts);\n }\n }\n\n beginHiddenCallStack(transformFromAstRunner.errback)(\n ast,\n code,\n opts,\n callback,\n );\n};\n\nexport function transformFromAstSync(\n ...args: Parameters\n) {\n return beginHiddenCallStack(transformFromAstRunner.sync)(...args);\n}\n\nexport function transformFromAstAsync(\n ...args: Parameters\n) {\n return beginHiddenCallStack(transformFromAstRunner.async)(...args);\n}\n"],"mappings":";;;;;;;;AAAA,SAAAA,SAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,QAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,IAAAE,MAAA,GAAAD,OAAA;AAEA,IAAAE,OAAA,GAAAF,OAAA;AAGA,IAAAG,kBAAA,GAAAH,OAAA;AAgBA,MAAMI,sBAAsB,GAAGC,SAAMA,CAAC,CAAC,WACrCC,GAAY,EACZC,IAAY,EACZC,IAAqC,EACT;EAC5B,MAAMC,MAA6B,GAAG,OAAO,IAAAC,cAAU,EAACF,IAAI,CAAC;EAC7D,IAAIC,MAAM,KAAK,IAAI,EAAE,OAAO,IAAI;EAEhC,IAAI,CAACH,GAAG,EAAE,MAAM,IAAIK,KAAK,CAAC,cAAc,CAAC;EAEzC,OAAO,OAAO,IAAAC,WAAG,EAACH,MAAM,EAAEF,IAAI,EAAED,GAAG,CAAC;AACtC,CAAC,CAAC;AAEK,MAAMO,gBAAkC,GAAAC,OAAA,CAAAD,gBAAA,GAAG,SAASA,gBAAgBA,CACzEP,GAAG,EACHC,IAAI,EACJQ,cAAqE,EACrEC,aAAkC,EAClC;EACA,IAAIR,IAAqC;EACzC,IAAIS,QAAwC;EAC5C,IAAI,OAAOF,cAAc,KAAK,UAAU,EAAE;IACxCE,QAAQ,GAAGF,cAAc;IACzBP,IAAI,GAAGU,SAAS;EAClB,CAAC,MAAM;IACLV,IAAI,GAAGO,cAAc;IACrBE,QAAQ,GAAGD,aAAa;EAC1B;EAEA,IAAIC,QAAQ,KAAKC,SAAS,EAAE;IASxB,OAAO,IAAAC,uCAAoB,EAACf,sBAAsB,CAACgB,IAAI,CAAC,CAACd,GAAG,EAAEC,IAAI,EAAEC,IAAI,CAAC;EAE7E;EAEA,IAAAW,uCAAoB,EAACf,sBAAsB,CAACiB,OAAO,CAAC,CAClDf,GAAG,EACHC,IAAI,EACJC,IAAI,EACJS,QACF,CAAC;AACH,CAAC;AAEM,SAASK,oBAAoBA,CAClC,GAAGC,IAAoD,EACvD;EACA,OAAO,IAAAJ,uCAAoB,EAACf,sBAAsB,CAACgB,IAAI,CAAC,CAAC,GAAGG,IAAI,CAAC;AACnE;AAEO,SAASC,qBAAqBA,CACnC,GAAGD,IAAqD,EACxD;EACA,OAAO,IAAAJ,uCAAoB,EAACf,sBAAsB,CAACqB,KAAK,CAAC,CAAC,GAAGF,IAAI,CAAC;AACpE;AAAC","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/core/lib/transform-file-browser.js b/server/api/node_modules/@babel/core/lib/transform-file-browser.js new file mode 100644 index 0000000..8576809 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/transform-file-browser.js @@ -0,0 +1,23 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.transformFile = void 0; +exports.transformFileAsync = transformFileAsync; +exports.transformFileSync = transformFileSync; +const transformFile = exports.transformFile = function transformFile(filename, opts, callback) { + if (typeof opts === "function") { + callback = opts; + } + callback(new Error("Transforming files is not supported in browsers"), null); +}; +function transformFileSync() { + throw new Error("Transforming files is not supported in browsers"); +} +function transformFileAsync() { + return Promise.reject(new Error("Transforming files is not supported in browsers")); +} +0 && 0; + +//# sourceMappingURL=transform-file-browser.js.map diff --git a/server/api/node_modules/@babel/core/lib/transform-file-browser.js.map b/server/api/node_modules/@babel/core/lib/transform-file-browser.js.map new file mode 100644 index 0000000..b632a42 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/transform-file-browser.js.map @@ -0,0 +1 @@ +{"version":3,"names":["transformFile","exports","filename","opts","callback","Error","transformFileSync","transformFileAsync","Promise","reject"],"sources":["../src/transform-file-browser.ts"],"sourcesContent":["/* c8 ignore start */\n\n// duplicated from transform-file so we do not have to import anything here\ntype TransformFile = {\n (filename: string, callback: (error: Error, file: null) => void): void;\n (\n filename: string,\n opts: any,\n callback: (error: Error, file: null) => void,\n ): void;\n};\n\nexport const transformFile: TransformFile = function transformFile(\n filename,\n opts,\n callback?: (error: Error, file: null) => void,\n) {\n if (typeof opts === \"function\") {\n callback = opts;\n }\n\n callback(new Error(\"Transforming files is not supported in browsers\"), null);\n};\n\nexport function transformFileSync(): never {\n throw new Error(\"Transforming files is not supported in browsers\");\n}\n\nexport function transformFileAsync() {\n return Promise.reject(\n new Error(\"Transforming files is not supported in browsers\"),\n );\n}\n"],"mappings":";;;;;;;;AAYO,MAAMA,aAA4B,GAAAC,OAAA,CAAAD,aAAA,GAAG,SAASA,aAAaA,CAChEE,QAAQ,EACRC,IAAI,EACJC,QAA6C,EAC7C;EACA,IAAI,OAAOD,IAAI,KAAK,UAAU,EAAE;IAC9BC,QAAQ,GAAGD,IAAI;EACjB;EAEAC,QAAQ,CAAC,IAAIC,KAAK,CAAC,iDAAiD,CAAC,EAAE,IAAI,CAAC;AAC9E,CAAC;AAEM,SAASC,iBAAiBA,CAAA,EAAU;EACzC,MAAM,IAAID,KAAK,CAAC,iDAAiD,CAAC;AACpE;AAEO,SAASE,kBAAkBA,CAAA,EAAG;EACnC,OAAOC,OAAO,CAACC,MAAM,CACnB,IAAIJ,KAAK,CAAC,iDAAiD,CAC7D,CAAC;AACH;AAAC","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/core/lib/transform-file.js b/server/api/node_modules/@babel/core/lib/transform-file.js new file mode 100644 index 0000000..ce7f9f9 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/transform-file.js @@ -0,0 +1,40 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.transformFile = transformFile; +exports.transformFileAsync = transformFileAsync; +exports.transformFileSync = transformFileSync; +function _gensync() { + const data = require("gensync"); + _gensync = function () { + return data; + }; + return data; +} +var _index = require("./config/index.js"); +var _index2 = require("./transformation/index.js"); +var fs = require("./gensync-utils/fs.js"); +({}); +const transformFileRunner = _gensync()(function* (filename, opts) { + const options = Object.assign({}, opts, { + filename + }); + const config = yield* (0, _index.default)(options); + if (config === null) return null; + const code = yield* fs.readFile(filename, "utf8"); + return yield* (0, _index2.run)(config, code); +}); +function transformFile(...args) { + transformFileRunner.errback(...args); +} +function transformFileSync(...args) { + return transformFileRunner.sync(...args); +} +function transformFileAsync(...args) { + return transformFileRunner.async(...args); +} +0 && 0; + +//# sourceMappingURL=transform-file.js.map diff --git a/server/api/node_modules/@babel/core/lib/transform-file.js.map b/server/api/node_modules/@babel/core/lib/transform-file.js.map new file mode 100644 index 0000000..36a85b1 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/transform-file.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_gensync","data","require","_index","_index2","fs","transformFileRunner","gensync","filename","opts","options","Object","assign","config","loadConfig","code","readFile","run","transformFile","args","errback","transformFileSync","sync","transformFileAsync","async"],"sources":["../src/transform-file.ts"],"sourcesContent":["import gensync, { type Handler } from \"gensync\";\n\nimport loadConfig from \"./config/index.ts\";\nimport type { InputOptions, ResolvedConfig } from \"./config/index.ts\";\nimport { run } from \"./transformation/index.ts\";\nimport type { FileResult, FileResultCallback } from \"./transformation/index.ts\";\nimport * as fs from \"./gensync-utils/fs.ts\";\n\ntype transformFileBrowserType = typeof import(\"./transform-file-browser\");\ntype transformFileType = typeof import(\"./transform-file\");\n\n// Kind of gross, but essentially asserting that the exports of this module are the same as the\n// exports of transform-file-browser, since this file may be replaced at bundle time with\n// transform-file-browser.\n// eslint-disable-next-line @typescript-eslint/no-unused-expressions\n({}) as any as transformFileBrowserType as transformFileType;\n\nconst transformFileRunner = gensync(function* (\n filename: string,\n opts?: InputOptions,\n): Handler {\n const options = { ...opts, filename };\n\n const config: ResolvedConfig | null = yield* loadConfig(options);\n if (config === null) return null;\n\n const code = yield* fs.readFile(filename, \"utf8\");\n return yield* run(config, code);\n});\n\n// @ts-expect-error TS doesn't detect that this signature is compatible\nexport function transformFile(\n filename: string,\n callback: FileResultCallback,\n): void;\nexport function transformFile(\n filename: string,\n opts: InputOptions | undefined | null,\n callback: FileResultCallback,\n): void;\nexport function transformFile(\n ...args: Parameters\n) {\n transformFileRunner.errback(...args);\n}\n\nexport function transformFileSync(\n ...args: Parameters\n) {\n return transformFileRunner.sync(...args);\n}\nexport function transformFileAsync(\n ...args: Parameters\n) {\n return transformFileRunner.async(...args);\n}\n"],"mappings":";;;;;;;;AAAA,SAAAA,SAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,QAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,IAAAE,MAAA,GAAAD,OAAA;AAEA,IAAAE,OAAA,GAAAF,OAAA;AAEA,IAAAG,EAAA,GAAAH,OAAA;AASA,CAAC,CAAC,CAAC;AAEH,MAAMI,mBAAmB,GAAGC,SAAMA,CAAC,CAAC,WAClCC,QAAgB,EAChBC,IAAmB,EACS;EAC5B,MAAMC,OAAO,GAAAC,MAAA,CAAAC,MAAA,KAAQH,IAAI;IAAED;EAAQ,EAAE;EAErC,MAAMK,MAA6B,GAAG,OAAO,IAAAC,cAAU,EAACJ,OAAO,CAAC;EAChE,IAAIG,MAAM,KAAK,IAAI,EAAE,OAAO,IAAI;EAEhC,MAAME,IAAI,GAAG,OAAOV,EAAE,CAACW,QAAQ,CAACR,QAAQ,EAAE,MAAM,CAAC;EACjD,OAAO,OAAO,IAAAS,WAAG,EAACJ,MAAM,EAAEE,IAAI,CAAC;AACjC,CAAC,CAAC;AAYK,SAASG,aAAaA,CAC3B,GAAGC,IAAoD,EACvD;EACAb,mBAAmB,CAACc,OAAO,CAAC,GAAGD,IAAI,CAAC;AACtC;AAEO,SAASE,iBAAiBA,CAC/B,GAAGF,IAAiD,EACpD;EACA,OAAOb,mBAAmB,CAACgB,IAAI,CAAC,GAAGH,IAAI,CAAC;AAC1C;AACO,SAASI,kBAAkBA,CAChC,GAAGJ,IAAkD,EACrD;EACA,OAAOb,mBAAmB,CAACkB,KAAK,CAAC,GAAGL,IAAI,CAAC;AAC3C;AAAC","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/core/lib/transform.js b/server/api/node_modules/@babel/core/lib/transform.js new file mode 100644 index 0000000..3b496db --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/transform.js @@ -0,0 +1,47 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.transform = void 0; +exports.transformAsync = transformAsync; +exports.transformSync = transformSync; +function _gensync() { + const data = require("gensync"); + _gensync = function () { + return data; + }; + return data; +} +var _index = require("./config/index.js"); +var _index2 = require("./transformation/index.js"); +var _rewriteStackTrace = require("./errors/rewrite-stack-trace.js"); +const transformRunner = _gensync()(function* transform(code, opts) { + const config = yield* (0, _index.default)(opts); + if (config === null) return null; + return yield* (0, _index2.run)(config, code); +}); +const transform = exports.transform = function transform(code, optsOrCallback, maybeCallback) { + let opts; + let callback; + if (typeof optsOrCallback === "function") { + callback = optsOrCallback; + opts = undefined; + } else { + opts = optsOrCallback; + callback = maybeCallback; + } + if (callback === undefined) { + return (0, _rewriteStackTrace.beginHiddenCallStack)(transformRunner.sync)(code, opts); + } + (0, _rewriteStackTrace.beginHiddenCallStack)(transformRunner.errback)(code, opts, callback); +}; +function transformSync(...args) { + return (0, _rewriteStackTrace.beginHiddenCallStack)(transformRunner.sync)(...args); +} +function transformAsync(...args) { + return (0, _rewriteStackTrace.beginHiddenCallStack)(transformRunner.async)(...args); +} +0 && 0; + +//# sourceMappingURL=transform.js.map diff --git a/server/api/node_modules/@babel/core/lib/transform.js.map b/server/api/node_modules/@babel/core/lib/transform.js.map new file mode 100644 index 0000000..6f3e9f0 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/transform.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_gensync","data","require","_index","_index2","_rewriteStackTrace","transformRunner","gensync","transform","code","opts","config","loadConfig","run","exports","optsOrCallback","maybeCallback","callback","undefined","beginHiddenCallStack","sync","errback","transformSync","args","transformAsync","async"],"sources":["../src/transform.ts"],"sourcesContent":["import gensync, { type Handler } from \"gensync\";\n\nimport loadConfig from \"./config/index.ts\";\nimport type { InputOptions, ResolvedConfig } from \"./config/index.ts\";\nimport { run } from \"./transformation/index.ts\";\n\nimport type { FileResult, FileResultCallback } from \"./transformation/index.ts\";\nimport { beginHiddenCallStack } from \"./errors/rewrite-stack-trace.ts\";\n\nexport type { FileResult } from \"./transformation/index.ts\";\n\ntype Transform = {\n (code: string, callback: FileResultCallback): void;\n (\n code: string,\n opts: InputOptions | undefined | null,\n callback: FileResultCallback,\n ): void;\n (code: string, opts?: InputOptions | null): FileResult | null;\n};\n\nconst transformRunner = gensync(function* transform(\n code: string,\n opts?: InputOptions,\n): Handler {\n const config: ResolvedConfig | null = yield* loadConfig(opts);\n if (config === null) return null;\n\n return yield* run(config, code);\n});\n\nexport const transform: Transform = function transform(\n code,\n optsOrCallback?: InputOptions | null | undefined | FileResultCallback,\n maybeCallback?: FileResultCallback,\n) {\n let opts: InputOptions | undefined | null;\n let callback: FileResultCallback | undefined;\n if (typeof optsOrCallback === \"function\") {\n callback = optsOrCallback;\n opts = undefined;\n } else {\n opts = optsOrCallback;\n callback = maybeCallback;\n }\n\n if (callback === undefined) {\n if (process.env.BABEL_8_BREAKING) {\n throw new Error(\n \"Starting from Babel 8.0.0, the 'transform' function expects a callback. If you need to call it synchronously, please use 'transformSync'.\",\n );\n } else {\n // console.warn(\n // \"Starting from Babel 8.0.0, the 'transform' function will expect a callback. If you need to call it synchronously, please use 'transformSync'.\",\n // );\n return beginHiddenCallStack(transformRunner.sync)(code, opts);\n }\n }\n\n beginHiddenCallStack(transformRunner.errback)(code, opts, callback);\n};\n\nexport function transformSync(\n ...args: Parameters\n) {\n return beginHiddenCallStack(transformRunner.sync)(...args);\n}\nexport function transformAsync(\n ...args: Parameters\n) {\n return beginHiddenCallStack(transformRunner.async)(...args);\n}\n"],"mappings":";;;;;;;;AAAA,SAAAA,SAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,QAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,IAAAE,MAAA,GAAAD,OAAA;AAEA,IAAAE,OAAA,GAAAF,OAAA;AAGA,IAAAG,kBAAA,GAAAH,OAAA;AAcA,MAAMI,eAAe,GAAGC,SAAMA,CAAC,CAAC,UAAUC,SAASA,CACjDC,IAAY,EACZC,IAAmB,EACS;EAC5B,MAAMC,MAA6B,GAAG,OAAO,IAAAC,cAAU,EAACF,IAAI,CAAC;EAC7D,IAAIC,MAAM,KAAK,IAAI,EAAE,OAAO,IAAI;EAEhC,OAAO,OAAO,IAAAE,WAAG,EAACF,MAAM,EAAEF,IAAI,CAAC;AACjC,CAAC,CAAC;AAEK,MAAMD,SAAoB,GAAAM,OAAA,CAAAN,SAAA,GAAG,SAASA,SAASA,CACpDC,IAAI,EACJM,cAAqE,EACrEC,aAAkC,EAClC;EACA,IAAIN,IAAqC;EACzC,IAAIO,QAAwC;EAC5C,IAAI,OAAOF,cAAc,KAAK,UAAU,EAAE;IACxCE,QAAQ,GAAGF,cAAc;IACzBL,IAAI,GAAGQ,SAAS;EAClB,CAAC,MAAM;IACLR,IAAI,GAAGK,cAAc;IACrBE,QAAQ,GAAGD,aAAa;EAC1B;EAEA,IAAIC,QAAQ,KAAKC,SAAS,EAAE;IASxB,OAAO,IAAAC,uCAAoB,EAACb,eAAe,CAACc,IAAI,CAAC,CAACX,IAAI,EAAEC,IAAI,CAAC;EAEjE;EAEA,IAAAS,uCAAoB,EAACb,eAAe,CAACe,OAAO,CAAC,CAACZ,IAAI,EAAEC,IAAI,EAAEO,QAAQ,CAAC;AACrE,CAAC;AAEM,SAASK,aAAaA,CAC3B,GAAGC,IAA6C,EAChD;EACA,OAAO,IAAAJ,uCAAoB,EAACb,eAAe,CAACc,IAAI,CAAC,CAAC,GAAGG,IAAI,CAAC;AAC5D;AACO,SAASC,cAAcA,CAC5B,GAAGD,IAA8C,EACjD;EACA,OAAO,IAAAJ,uCAAoB,EAACb,eAAe,CAACmB,KAAK,CAAC,CAAC,GAAGF,IAAI,CAAC;AAC7D;AAAC","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/core/lib/transformation/block-hoist-plugin.js b/server/api/node_modules/@babel/core/lib/transformation/block-hoist-plugin.js new file mode 100644 index 0000000..ec22ee3 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/transformation/block-hoist-plugin.js @@ -0,0 +1,84 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = loadBlockHoistPlugin; +function _traverse() { + const data = require("@babel/traverse"); + _traverse = function () { + return data; + }; + return data; +} +var _plugin = require("../config/plugin.js"); +let LOADED_PLUGIN; +const blockHoistPlugin = { + name: "internal.blockHoist", + visitor: { + Block: { + exit({ + node + }) { + node.body = performHoisting(node.body); + } + }, + SwitchCase: { + exit({ + node + }) { + node.consequent = performHoisting(node.consequent); + } + } + } +}; +function performHoisting(body) { + let max = Math.pow(2, 30) - 1; + let hasChange = false; + for (let i = 0; i < body.length; i++) { + const n = body[i]; + const p = priority(n); + if (p > max) { + hasChange = true; + break; + } + max = p; + } + if (!hasChange) return body; + return stableSort(body.slice()); +} +function loadBlockHoistPlugin() { + if (!LOADED_PLUGIN) { + LOADED_PLUGIN = new _plugin.default(Object.assign({}, blockHoistPlugin, { + visitor: _traverse().default.explode(blockHoistPlugin.visitor) + }), {}); + } + return LOADED_PLUGIN; +} +function priority(bodyNode) { + const priority = bodyNode == null ? void 0 : bodyNode._blockHoist; + if (priority == null) return 1; + if (priority === true) return 2; + return priority; +} +function stableSort(body) { + const buckets = Object.create(null); + for (let i = 0; i < body.length; i++) { + const n = body[i]; + const p = priority(n); + const bucket = buckets[p] || (buckets[p] = []); + bucket.push(n); + } + const keys = Object.keys(buckets).map(k => +k).sort((a, b) => b - a); + let index = 0; + for (const key of keys) { + const bucket = buckets[key]; + for (const n of bucket) { + body[index++] = n; + } + } + return body; +} +0 && 0; + +//# sourceMappingURL=block-hoist-plugin.js.map diff --git a/server/api/node_modules/@babel/core/lib/transformation/block-hoist-plugin.js.map b/server/api/node_modules/@babel/core/lib/transformation/block-hoist-plugin.js.map new file mode 100644 index 0000000..028e36a --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/transformation/block-hoist-plugin.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_traverse","data","require","_plugin","LOADED_PLUGIN","blockHoistPlugin","name","visitor","Block","exit","node","body","performHoisting","SwitchCase","consequent","max","Math","pow","hasChange","i","length","n","p","priority","stableSort","slice","loadBlockHoistPlugin","Plugin","Object","assign","traverse","explode","bodyNode","_blockHoist","buckets","create","bucket","push","keys","map","k","sort","a","b","index","key"],"sources":["../../src/transformation/block-hoist-plugin.ts"],"sourcesContent":["import traverse from \"@babel/traverse\";\nimport type { Statement } from \"@babel/types\";\nimport type { PluginObject } from \"../config/index.ts\";\nimport Plugin from \"../config/plugin.ts\";\n\nlet LOADED_PLUGIN: Plugin | void;\n\nconst blockHoistPlugin: PluginObject = {\n /**\n * [Please add a description.]\n *\n * Priority:\n *\n * - 0 We want this to be at the **very** bottom\n * - 1 Default node position\n * - 2 Priority over normal nodes\n * - 3 We want this to be at the **very** top\n * - 4 Reserved for the helpers used to implement module imports.\n */\n\n name: \"internal.blockHoist\",\n\n visitor: {\n Block: {\n exit({ node }) {\n node.body = performHoisting(node.body);\n },\n },\n SwitchCase: {\n exit({ node }) {\n // In case statements, hoisting is difficult to perform correctly due to\n // functions that are declared and referenced in different blocks.\n // Nevertheless, hoisting the statements *inside* of each case should at\n // least mitigate the failure cases.\n node.consequent = performHoisting(node.consequent);\n },\n },\n },\n};\n\nfunction performHoisting(body: Statement[]): Statement[] {\n // Largest SMI\n let max = 2 ** 30 - 1;\n let hasChange = false;\n for (let i = 0; i < body.length; i++) {\n const n = body[i];\n const p = priority(n);\n if (p > max) {\n hasChange = true;\n break;\n }\n max = p;\n }\n if (!hasChange) return body;\n\n // My kingdom for a stable sort!\n return stableSort(body.slice());\n}\n\nexport default function loadBlockHoistPlugin(): Plugin {\n if (!LOADED_PLUGIN) {\n // cache the loaded blockHoist plugin plugin\n LOADED_PLUGIN = new Plugin(\n {\n ...blockHoistPlugin,\n visitor: traverse.explode(blockHoistPlugin.visitor),\n },\n {},\n );\n }\n\n return LOADED_PLUGIN;\n}\n\nfunction priority(bodyNode: Statement & { _blockHoist?: number | true }) {\n const priority = bodyNode?._blockHoist;\n if (priority == null) return 1;\n if (priority === true) return 2;\n return priority;\n}\n\nfunction stableSort(body: Statement[]) {\n // By default, we use priorities of 0-4.\n const buckets = Object.create(null);\n\n // By collecting into buckets, we can guarantee a stable sort.\n for (let i = 0; i < body.length; i++) {\n const n = body[i];\n const p = priority(n);\n\n // In case some plugin is setting an unexpected priority.\n const bucket = buckets[p] || (buckets[p] = []);\n bucket.push(n);\n }\n\n // Sort our keys in descending order. Keys are unique, so we don't have to\n // worry about stability.\n const keys = Object.keys(buckets)\n .map(k => +k)\n .sort((a, b) => b - a);\n\n let index = 0;\n for (const key of keys) {\n const bucket = buckets[key];\n for (const n of bucket) {\n body[index++] = n;\n }\n }\n return body;\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/core/lib/transformation/file/babel-7-helpers.cjs b/server/api/node_modules/@babel/core/lib/transformation/file/babel-7-helpers.cjs new file mode 100644 index 0000000..a532ff1 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/transformation/file/babel-7-helpers.cjs @@ -0,0 +1,4 @@ +exports.getModuleName = () => require("@babel/helper-module-transforms").getModuleName; +0 && 0; + +//# sourceMappingURL=babel-7-helpers.cjs.map diff --git a/server/api/node_modules/@babel/core/lib/transformation/file/babel-7-helpers.cjs.map b/server/api/node_modules/@babel/core/lib/transformation/file/babel-7-helpers.cjs.map new file mode 100644 index 0000000..241ae7e --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/transformation/file/babel-7-helpers.cjs.map @@ -0,0 +1 @@ +{"version":3,"names":["exports","getModuleName","require"],"sources":["../../../src/transformation/file/babel-7-helpers.cjs"],"sourcesContent":["// TODO(Babel 8): Remove this file\n\nif (!process.env.BABEL_8_BREAKING) {\n exports.getModuleName = () =>\n require(\"@babel/helper-module-transforms\").getModuleName;\n} else if (process.env.IS_PUBLISH) {\n throw new Error(\n \"Internal Babel error: This file should only be loaded in Babel 7\",\n );\n}\n"],"mappings":"AAGEA,OAAO,CAACC,aAAa,GAAG,MACtBC,OAAO,CAAC,iCAAiC,CAAC,CAACD,aAAa;AAAC","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/core/lib/transformation/file/file.js b/server/api/node_modules/@babel/core/lib/transformation/file/file.js new file mode 100644 index 0000000..a17be42 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/transformation/file/file.js @@ -0,0 +1,204 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +function helpers() { + const data = require("@babel/helpers"); + helpers = function () { + return data; + }; + return data; +} +function _traverse() { + const data = require("@babel/traverse"); + _traverse = function () { + return data; + }; + return data; +} +function _codeFrame() { + const data = require("@babel/code-frame"); + _codeFrame = function () { + return data; + }; + return data; +} +function _t() { + const data = require("@babel/types"); + _t = function () { + return data; + }; + return data; +} +function _semver() { + const data = require("semver"); + _semver = function () { + return data; + }; + return data; +} +var _babel7Helpers = require("./babel-7-helpers.cjs"); +const { + cloneNode, + interpreterDirective, + traverseFast +} = _t(); +class File { + constructor(options, { + code, + ast, + inputMap + }) { + this._map = new Map(); + this.opts = void 0; + this.declarations = {}; + this.path = void 0; + this.ast = void 0; + this.scope = void 0; + this.metadata = {}; + this.code = ""; + this.inputMap = void 0; + this.hub = { + file: this, + getCode: () => this.code, + getScope: () => this.scope, + addHelper: this.addHelper.bind(this), + buildError: this.buildCodeFrameError.bind(this) + }; + this.opts = options; + this.code = code; + this.ast = ast; + this.inputMap = inputMap; + this.path = _traverse().NodePath.get({ + hub: this.hub, + parentPath: null, + parent: this.ast, + container: this.ast, + key: "program" + }).setContext(); + this.scope = this.path.scope; + } + get shebang() { + const { + interpreter + } = this.path.node; + return interpreter ? interpreter.value : ""; + } + set shebang(value) { + if (value) { + this.path.get("interpreter").replaceWith(interpreterDirective(value)); + } else { + this.path.get("interpreter").remove(); + } + } + set(key, val) { + if (key === "helpersNamespace") { + throw new Error("Babel 7.0.0-beta.56 has dropped support for the 'helpersNamespace' utility." + "If you are using @babel/plugin-external-helpers you will need to use a newer " + "version than the one you currently have installed. " + "If you have your own implementation, you'll want to explore using 'helperGenerator' " + "alongside 'file.availableHelper()'."); + } + this._map.set(key, val); + } + get(key) { + return this._map.get(key); + } + has(key) { + return this._map.has(key); + } + availableHelper(name, versionRange) { + if (helpers().isInternal(name)) return false; + let minVersion; + try { + minVersion = helpers().minVersion(name); + } catch (err) { + if (err.code !== "BABEL_HELPER_UNKNOWN") throw err; + return false; + } + if (typeof versionRange !== "string") return true; + if (_semver().valid(versionRange)) versionRange = `^${versionRange}`; + return !_semver().intersects(`<${minVersion}`, versionRange) && !_semver().intersects(`>=8.0.0`, versionRange); + } + addHelper(name) { + if (helpers().isInternal(name)) { + throw new Error("Cannot use internal helper " + name); + } + return this._addHelper(name); + } + _addHelper(name) { + const declar = this.declarations[name]; + if (declar) return cloneNode(declar); + const generator = this.get("helperGenerator"); + if (generator) { + const res = generator(name); + if (res) return res; + } + helpers().minVersion(name); + const uid = this.declarations[name] = this.scope.generateUidIdentifier(name); + const dependencies = {}; + for (const dep of helpers().getDependencies(name)) { + dependencies[dep] = this._addHelper(dep); + } + const { + nodes, + globals + } = helpers().get(name, dep => dependencies[dep], uid.name, Object.keys(this.scope.getAllBindings())); + globals.forEach(name => { + if (this.path.scope.hasBinding(name, true)) { + this.path.scope.rename(name); + } + }); + nodes.forEach(node => { + node._compact = true; + }); + const added = this.path.unshiftContainer("body", nodes); + for (const path of added) { + if (path.isVariableDeclaration()) this.scope.registerDeclaration(path); + } + return uid; + } + buildCodeFrameError(node, msg, _Error = SyntaxError) { + let loc = node == null ? void 0 : node.loc; + if (!loc && node) { + traverseFast(node, function (node) { + if (node.loc) { + loc = node.loc; + return traverseFast.stop; + } + }); + let txt = "This is an error on an internal node. Probably an internal error."; + if (loc) txt += " Location has been estimated."; + msg += ` (${txt})`; + } + if (loc) { + const { + highlightCode = true + } = this.opts; + msg += "\n" + (0, _codeFrame().codeFrameColumns)(this.code, { + start: { + line: loc.start.line, + column: loc.start.column + 1 + }, + end: loc.end && loc.start.line === loc.end.line ? { + line: loc.end.line, + column: loc.end.column + 1 + } : undefined + }, { + highlightCode + }); + } + return new _Error(msg); + } +} +exports.default = File; +File.prototype.addImport = function addImport() { + throw new Error("This API has been removed. If you're looking for this " + "functionality in Babel 7, you should import the " + "'@babel/helper-module-imports' module and use the functions exposed " + " from that module, such as 'addNamed' or 'addDefault'."); +}; +File.prototype.addTemplateObject = function addTemplateObject() { + throw new Error("This function has been moved into the template literal transform itself."); +}; +File.prototype.getModuleName = function getModuleName() { + return _babel7Helpers.getModuleName()(this.opts, this.opts); +}; +0 && 0; + +//# sourceMappingURL=file.js.map diff --git a/server/api/node_modules/@babel/core/lib/transformation/file/file.js.map b/server/api/node_modules/@babel/core/lib/transformation/file/file.js.map new file mode 100644 index 0000000..f20e621 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/transformation/file/file.js.map @@ -0,0 +1 @@ +{"version":3,"names":["helpers","data","require","_traverse","_codeFrame","_t","_semver","_babel7Helpers","cloneNode","interpreterDirective","traverseFast","File","constructor","options","code","ast","inputMap","_map","Map","opts","declarations","path","scope","metadata","hub","file","getCode","getScope","addHelper","bind","buildError","buildCodeFrameError","NodePath","get","parentPath","parent","container","key","setContext","shebang","interpreter","node","value","replaceWith","remove","set","val","Error","has","availableHelper","name","versionRange","isInternal","minVersion","err","semver","valid","intersects","_addHelper","declar","generator","res","uid","generateUidIdentifier","dependencies","dep","getDependencies","nodes","globals","Object","keys","getAllBindings","forEach","hasBinding","rename","_compact","added","unshiftContainer","isVariableDeclaration","registerDeclaration","msg","_Error","SyntaxError","loc","stop","txt","highlightCode","codeFrameColumns","start","line","column","end","undefined","exports","default","prototype","addImport","addTemplateObject","getModuleName","babel7"],"sources":["../../../src/transformation/file/file.ts"],"sourcesContent":["import * as helpers from \"@babel/helpers\";\nimport { NodePath } from \"@babel/traverse\";\nimport type { HubInterface, Scope } from \"@babel/traverse\";\nimport { codeFrameColumns } from \"@babel/code-frame\";\nimport { cloneNode, interpreterDirective, traverseFast } from \"@babel/types\";\nimport type * as t from \"@babel/types\";\nimport semver from \"semver\";\n\nimport type { NormalizedFile } from \"../normalize-file.ts\";\n\n// @ts-expect-error This file is `any`\nimport babel7 from \"./babel-7-helpers.cjs\" with { if: \"!process.env.BABEL_8_BREAKING && (!USE_ESM || IS_STANDALONE)\" };\nimport type { ResolvedOptions } from \"../../config/validation/options.ts\";\nimport type { SourceMapConverter } from \"convert-source-map\";\n\nexport default class File {\n _map = new Map();\n opts: ResolvedOptions;\n declarations: Record = {};\n path: NodePath;\n ast: t.File;\n scope: Scope;\n metadata: Record = {};\n code: string = \"\";\n inputMap: SourceMapConverter;\n\n hub: HubInterface & { file: File } = {\n // keep it for the usage in babel-core, ex: path.hub.file.opts.filename\n file: this,\n getCode: () => this.code,\n getScope: () => this.scope,\n addHelper: this.addHelper.bind(this),\n buildError: this.buildCodeFrameError.bind(this),\n };\n\n constructor(\n options: ResolvedOptions,\n { code, ast, inputMap }: NormalizedFile,\n ) {\n this.opts = options;\n this.code = code;\n this.ast = ast;\n this.inputMap = inputMap;\n\n this.path = NodePath.get({\n hub: this.hub,\n parentPath: null,\n parent: this.ast,\n container: this.ast,\n key: \"program\",\n }).setContext() as NodePath;\n this.scope = this.path.scope;\n }\n\n /**\n * Provide backward-compatible access to the interpreter directive handling\n * in Babel 6.x. If you are writing a plugin for Babel 7.x, it would be\n * best to use 'program.interpreter' directly.\n */\n get shebang(): string {\n const { interpreter } = this.path.node;\n return interpreter ? interpreter.value : \"\";\n }\n set shebang(value: string) {\n if (value) {\n this.path.get(\"interpreter\").replaceWith(interpreterDirective(value));\n } else {\n this.path.get(\"interpreter\").remove();\n }\n }\n\n set(key: unknown, val: unknown) {\n if (!process.env.BABEL_8_BREAKING) {\n if (key === \"helpersNamespace\") {\n throw new Error(\n \"Babel 7.0.0-beta.56 has dropped support for the 'helpersNamespace' utility.\" +\n \"If you are using @babel/plugin-external-helpers you will need to use a newer \" +\n \"version than the one you currently have installed. \" +\n \"If you have your own implementation, you'll want to explore using 'helperGenerator' \" +\n \"alongside 'file.availableHelper()'.\",\n );\n }\n }\n\n this._map.set(key, val);\n }\n\n get(key: unknown): any {\n return this._map.get(key);\n }\n\n has(key: unknown): boolean {\n return this._map.has(key);\n }\n\n /**\n * Check if a given helper is available in @babel/core's helper list.\n *\n * This _also_ allows you to pass a Babel version specifically. If the\n * helper exists, but was not available for the full given range, it will be\n * considered unavailable.\n */\n availableHelper(name: string, versionRange?: string | null): boolean {\n if (helpers.isInternal(name)) return false;\n\n let minVersion;\n try {\n minVersion = helpers.minVersion(name);\n } catch (err) {\n if (err.code !== \"BABEL_HELPER_UNKNOWN\") throw err;\n\n return false;\n }\n\n if (typeof versionRange !== \"string\") return true;\n\n // semver.intersects() has some surprising behavior with comparing ranges\n // with pre-release versions. We add '^' to ensure that we are always\n // comparing ranges with ranges, which sidesteps this logic.\n // For example:\n //\n // semver.intersects(`<7.0.1`, \"7.0.0-beta.0\") // false - surprising\n // semver.intersects(`<7.0.1`, \"^7.0.0-beta.0\") // true - expected\n //\n // This is because the first falls back to\n //\n // semver.satisfies(\"7.0.0-beta.0\", `<7.0.1`) // false - surprising\n //\n // and this fails because a prerelease version can only satisfy a range\n // if it is a prerelease within the same major/minor/patch range.\n //\n // Note: If this is found to have issues, please also revisit the logic in\n // transform-runtime's definitions.js file.\n if (semver.valid(versionRange)) versionRange = `^${versionRange}`;\n\n if (process.env.BABEL_8_BREAKING) {\n return (\n !semver.intersects(`<${minVersion}`, versionRange) &&\n !semver.intersects(`>=9.0.0`, versionRange)\n );\n } else {\n return (\n !semver.intersects(`<${minVersion}`, versionRange) &&\n !semver.intersects(`>=8.0.0`, versionRange)\n );\n }\n }\n\n addHelper(name: string): t.Identifier {\n if (helpers.isInternal(name)) {\n throw new Error(\"Cannot use internal helper \" + name);\n }\n return this._addHelper(name);\n }\n\n _addHelper(name: string): t.Identifier {\n const declar = this.declarations[name];\n if (declar) return cloneNode(declar);\n\n const generator = this.get(\"helperGenerator\");\n if (generator) {\n const res = generator(name);\n if (res) return res;\n }\n\n // make sure that the helper exists\n helpers.minVersion(name);\n\n const uid = (this.declarations[name] =\n this.scope.generateUidIdentifier(name));\n\n const dependencies: Record = {};\n for (const dep of helpers.getDependencies(name)) {\n dependencies[dep] = this._addHelper(dep);\n }\n\n const { nodes, globals } = helpers.get(\n name,\n dep => dependencies[dep],\n uid.name,\n Object.keys(this.scope.getAllBindings()),\n );\n\n globals.forEach(name => {\n if (this.path.scope.hasBinding(name, true /* noGlobals */)) {\n this.path.scope.rename(name);\n }\n });\n\n nodes.forEach(node => {\n // @ts-expect-error Fixme: document _compact node property\n node._compact = true;\n });\n\n const added = this.path.unshiftContainer(\"body\", nodes);\n // TODO: NodePath#unshiftContainer should automatically register new\n // bindings.\n for (const path of added) {\n if (path.isVariableDeclaration()) this.scope.registerDeclaration(path);\n }\n\n return uid;\n }\n\n buildCodeFrameError(\n node: t.Node | undefined | null,\n msg: string,\n _Error: typeof Error = SyntaxError,\n ): Error {\n let loc = node?.loc;\n\n if (!loc && node) {\n traverseFast(node, function (node) {\n if (node.loc) {\n loc = node.loc;\n return traverseFast.stop;\n }\n });\n\n let txt =\n \"This is an error on an internal node. Probably an internal error.\";\n if (loc) txt += \" Location has been estimated.\";\n\n msg += ` (${txt})`;\n }\n\n if (loc) {\n const { highlightCode = true } = this.opts;\n\n msg +=\n \"\\n\" +\n codeFrameColumns(\n this.code,\n {\n start: {\n line: loc.start.line,\n column: loc.start.column + 1,\n },\n end:\n loc.end && loc.start.line === loc.end.line\n ? {\n line: loc.end.line,\n column: loc.end.column + 1,\n }\n : undefined,\n },\n { highlightCode },\n );\n }\n\n return new _Error(msg);\n }\n}\n\nif (!process.env.BABEL_8_BREAKING) {\n // @ts-expect-error Babel 7\n File.prototype.addImport = function addImport() {\n throw new Error(\n \"This API has been removed. If you're looking for this \" +\n \"functionality in Babel 7, you should import the \" +\n \"'@babel/helper-module-imports' module and use the functions exposed \" +\n \" from that module, such as 'addNamed' or 'addDefault'.\",\n );\n };\n // @ts-expect-error Babel 7\n File.prototype.addTemplateObject = function addTemplateObject() {\n throw new Error(\n \"This function has been moved into the template literal transform itself.\",\n );\n };\n\n if (!USE_ESM || IS_STANDALONE) {\n // @ts-expect-error Babel 7\n File.prototype.getModuleName = function getModuleName() {\n return babel7.getModuleName()(this.opts, this.opts);\n };\n }\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/core/lib/transformation/file/generate.js b/server/api/node_modules/@babel/core/lib/transformation/file/generate.js new file mode 100644 index 0000000..10b5b29 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/transformation/file/generate.js @@ -0,0 +1,84 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = generateCode; +function _convertSourceMap() { + const data = require("convert-source-map"); + _convertSourceMap = function () { + return data; + }; + return data; +} +function _generator() { + const data = require("@babel/generator"); + _generator = function () { + return data; + }; + return data; +} +var _mergeMap = require("./merge-map.js"); +function generateCode(pluginPasses, file) { + const { + opts, + ast, + code, + inputMap + } = file; + const { + generatorOpts + } = opts; + generatorOpts.inputSourceMap = inputMap == null ? void 0 : inputMap.toObject(); + const results = []; + for (const plugins of pluginPasses) { + for (const plugin of plugins) { + const { + generatorOverride + } = plugin; + if (generatorOverride) { + const result = generatorOverride(ast, generatorOpts, code, _generator().default); + if (result !== undefined) results.push(result); + } + } + } + let result; + if (results.length === 0) { + result = (0, _generator().default)(ast, generatorOpts, code); + } else if (results.length === 1) { + result = results[0]; + if (typeof result.then === "function") { + throw new Error(`You appear to be using an async codegen plugin, ` + `which your current version of Babel does not support. ` + `If you're using a published plugin, ` + `you may need to upgrade your @babel/core version.`); + } + } else { + throw new Error("More than one plugin attempted to override codegen."); + } + let { + code: outputCode, + decodedMap: outputMap = result.map + } = result; + if (result.__mergedMap) { + outputMap = Object.assign({}, result.map); + } else { + if (outputMap) { + if (inputMap) { + outputMap = (0, _mergeMap.default)(inputMap.toObject(), outputMap, generatorOpts.sourceFileName); + } else { + outputMap = result.map; + } + } + } + if (opts.sourceMaps === "inline" || opts.sourceMaps === "both") { + outputCode += "\n" + _convertSourceMap().fromObject(outputMap).toComment(); + } + if (opts.sourceMaps === "inline") { + outputMap = null; + } + return { + outputCode, + outputMap + }; +} +0 && 0; + +//# sourceMappingURL=generate.js.map diff --git a/server/api/node_modules/@babel/core/lib/transformation/file/generate.js.map b/server/api/node_modules/@babel/core/lib/transformation/file/generate.js.map new file mode 100644 index 0000000..d857215 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/transformation/file/generate.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_convertSourceMap","data","require","_generator","_mergeMap","generateCode","pluginPasses","file","opts","ast","code","inputMap","generatorOpts","inputSourceMap","toObject","results","plugins","plugin","generatorOverride","result","generate","undefined","push","length","then","Error","outputCode","decodedMap","outputMap","map","__mergedMap","Object","assign","mergeSourceMap","sourceFileName","sourceMaps","convertSourceMap","fromObject","toComment"],"sources":["../../../src/transformation/file/generate.ts"],"sourcesContent":["import type { PluginPasses } from \"../../config/index.ts\";\nimport convertSourceMap from \"convert-source-map\";\nimport type { GeneratorResult } from \"@babel/generator\";\nimport generate from \"@babel/generator\";\n\nimport type File from \"./file.ts\";\nimport mergeSourceMap from \"./merge-map.ts\";\n\nexport default function generateCode(\n pluginPasses: PluginPasses,\n file: File,\n): {\n outputCode: string;\n outputMap: GeneratorResult[\"map\"] | null;\n} {\n const { opts, ast, code, inputMap } = file;\n const { generatorOpts } = opts;\n\n generatorOpts.inputSourceMap = inputMap?.toObject();\n\n const results = [];\n for (const plugins of pluginPasses) {\n for (const plugin of plugins) {\n const { generatorOverride } = plugin;\n if (generatorOverride) {\n const result = generatorOverride(ast, generatorOpts, code, generate);\n\n if (result !== undefined) results.push(result);\n }\n }\n }\n\n let result;\n if (results.length === 0) {\n result = generate(ast, generatorOpts, code);\n } else if (results.length === 1) {\n result = results[0];\n\n // @ts-expect-error check if generatorOverride returned a promise\n if (typeof result.then === \"function\") {\n throw new Error(\n `You appear to be using an async codegen plugin, ` +\n `which your current version of Babel does not support. ` +\n `If you're using a published plugin, ` +\n `you may need to upgrade your @babel/core version.`,\n );\n }\n } else {\n throw new Error(\"More than one plugin attempted to override codegen.\");\n }\n\n // Decoded maps are faster to merge, so we attempt to get use the decodedMap\n // first. But to preserve backwards compat with older Generator, we'll fall\n // back to the encoded map.\n let { code: outputCode, decodedMap: outputMap = result.map } = result;\n\n // @ts-expect-error For backwards compat.\n if (result.__mergedMap) {\n /**\n * @see mergeSourceMap\n */\n outputMap = { ...result.map };\n } else {\n if (outputMap) {\n if (inputMap) {\n // mergeSourceMap returns an encoded map\n outputMap = mergeSourceMap(\n inputMap.toObject(),\n outputMap,\n generatorOpts.sourceFileName,\n );\n } else {\n // We cannot output a decoded map, so retrieve the encoded form. Because\n // the decoded form is free, it's fine to prioritize decoded first.\n outputMap = result.map;\n }\n }\n }\n\n if (opts.sourceMaps === \"inline\" || opts.sourceMaps === \"both\") {\n outputCode += \"\\n\" + convertSourceMap.fromObject(outputMap).toComment();\n }\n\n if (opts.sourceMaps === \"inline\") {\n outputMap = null;\n }\n\n // @ts-expect-error outputMap must be an EncodedSourceMap or null\n return { outputCode, outputMap };\n}\n"],"mappings":";;;;;;AACA,SAAAA,kBAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,iBAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAE,WAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,UAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGA,IAAAG,SAAA,GAAAF,OAAA;AAEe,SAASG,YAAYA,CAClCC,YAA0B,EAC1BC,IAAU,EAIV;EACA,MAAM;IAAEC,IAAI;IAAEC,GAAG;IAAEC,IAAI;IAAEC;EAAS,CAAC,GAAGJ,IAAI;EAC1C,MAAM;IAAEK;EAAc,CAAC,GAAGJ,IAAI;EAE9BI,aAAa,CAACC,cAAc,GAAGF,QAAQ,oBAARA,QAAQ,CAAEG,QAAQ,CAAC,CAAC;EAEnD,MAAMC,OAAO,GAAG,EAAE;EAClB,KAAK,MAAMC,OAAO,IAAIV,YAAY,EAAE;IAClC,KAAK,MAAMW,MAAM,IAAID,OAAO,EAAE;MAC5B,MAAM;QAAEE;MAAkB,CAAC,GAAGD,MAAM;MACpC,IAAIC,iBAAiB,EAAE;QACrB,MAAMC,MAAM,GAAGD,iBAAiB,CAACT,GAAG,EAAEG,aAAa,EAAEF,IAAI,EAAEU,oBAAQ,CAAC;QAEpE,IAAID,MAAM,KAAKE,SAAS,EAAEN,OAAO,CAACO,IAAI,CAACH,MAAM,CAAC;MAChD;IACF;EACF;EAEA,IAAIA,MAAM;EACV,IAAIJ,OAAO,CAACQ,MAAM,KAAK,CAAC,EAAE;IACxBJ,MAAM,GAAG,IAAAC,oBAAQ,EAACX,GAAG,EAAEG,aAAa,EAAEF,IAAI,CAAC;EAC7C,CAAC,MAAM,IAAIK,OAAO,CAACQ,MAAM,KAAK,CAAC,EAAE;IAC/BJ,MAAM,GAAGJ,OAAO,CAAC,CAAC,CAAC;IAGnB,IAAI,OAAOI,MAAM,CAACK,IAAI,KAAK,UAAU,EAAE;MACrC,MAAM,IAAIC,KAAK,CACb,kDAAkD,GAChD,wDAAwD,GACxD,sCAAsC,GACtC,mDACJ,CAAC;IACH;EACF,CAAC,MAAM;IACL,MAAM,IAAIA,KAAK,CAAC,qDAAqD,CAAC;EACxE;EAKA,IAAI;IAAEf,IAAI,EAAEgB,UAAU;IAAEC,UAAU,EAAEC,SAAS,GAAGT,MAAM,CAACU;EAAI,CAAC,GAAGV,MAAM;EAGrE,IAAIA,MAAM,CAACW,WAAW,EAAE;IAItBF,SAAS,GAAAG,MAAA,CAAAC,MAAA,KAAQb,MAAM,CAACU,GAAG,CAAE;EAC/B,CAAC,MAAM;IACL,IAAID,SAAS,EAAE;MACb,IAAIjB,QAAQ,EAAE;QAEZiB,SAAS,GAAG,IAAAK,iBAAc,EACxBtB,QAAQ,CAACG,QAAQ,CAAC,CAAC,EACnBc,SAAS,EACThB,aAAa,CAACsB,cAChB,CAAC;MACH,CAAC,MAAM;QAGLN,SAAS,GAAGT,MAAM,CAACU,GAAG;MACxB;IACF;EACF;EAEA,IAAIrB,IAAI,CAAC2B,UAAU,KAAK,QAAQ,IAAI3B,IAAI,CAAC2B,UAAU,KAAK,MAAM,EAAE;IAC9DT,UAAU,IAAI,IAAI,GAAGU,kBAAeA,CAAC,CAACC,UAAU,CAACT,SAAS,CAAC,CAACU,SAAS,CAAC,CAAC;EACzE;EAEA,IAAI9B,IAAI,CAAC2B,UAAU,KAAK,QAAQ,EAAE;IAChCP,SAAS,GAAG,IAAI;EAClB;EAGA,OAAO;IAAEF,UAAU;IAAEE;EAAU,CAAC;AAClC;AAAC","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/core/lib/transformation/file/merge-map.js b/server/api/node_modules/@babel/core/lib/transformation/file/merge-map.js new file mode 100644 index 0000000..1b60d5c --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/transformation/file/merge-map.js @@ -0,0 +1,37 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = mergeSourceMap; +function _remapping() { + const data = require("@jridgewell/remapping"); + _remapping = function () { + return data; + }; + return data; +} +function mergeSourceMap(inputMap, map, sourceFileName) { + const source = sourceFileName.replace(/\\/g, "/"); + let found = false; + const result = _remapping()(rootless(map), (s, ctx) => { + if (s === source && !found) { + found = true; + ctx.source = ""; + return rootless(inputMap); + } + return null; + }); + if (typeof inputMap.sourceRoot === "string") { + result.sourceRoot = inputMap.sourceRoot; + } + return Object.assign({}, result); +} +function rootless(map) { + return Object.assign({}, map, { + sourceRoot: null + }); +} +0 && 0; + +//# sourceMappingURL=merge-map.js.map diff --git a/server/api/node_modules/@babel/core/lib/transformation/file/merge-map.js.map b/server/api/node_modules/@babel/core/lib/transformation/file/merge-map.js.map new file mode 100644 index 0000000..5afc533 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/transformation/file/merge-map.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_remapping","data","require","mergeSourceMap","inputMap","map","sourceFileName","source","replace","found","result","remapping","rootless","s","ctx","sourceRoot","Object","assign"],"sources":["../../../src/transformation/file/merge-map.ts"],"sourcesContent":["type SourceMap = any;\nimport remapping from \"@jridgewell/remapping\";\n\nexport default function mergeSourceMap(\n inputMap: SourceMap,\n map: SourceMap,\n sourceFileName: string,\n): SourceMap {\n // On win32 machines, the sourceFileName uses backslash paths like\n // `C:\\foo\\bar.js`. But sourcemaps are always posix paths, so we need to\n // normalize to regular slashes before we can merge (else we won't find the\n // source associated with our input map).\n // This mirrors code done while generating the output map at\n // https://github.com/babel/babel/blob/5c2fcadc9ae34fd20dd72b1111d5cf50476d700d/packages/babel-generator/src/source-map.ts#L102\n const source = sourceFileName.replace(/\\\\/g, \"/\");\n\n // Prevent an infinite recursion if one of the input map's sources has the\n // same resolved path as the input map. In the case, it would keep find the\n // input map, then get it's sources which will include a path like the input\n // map, on and on.\n let found = false;\n const result = remapping(rootless(map), (s, ctx) => {\n if (s === source && !found) {\n found = true;\n // We empty the source location, which will prevent the sourcemap from\n // becoming relative to the input's location. Eg, if we're transforming a\n // file 'foo/bar.js', and it is a transformation of a `baz.js` file in the\n // same directory, the expected output is just `baz.js`. Without this step,\n // it would become `foo/baz.js`.\n ctx.source = \"\";\n\n return rootless(inputMap);\n }\n\n return null;\n });\n\n if (typeof inputMap.sourceRoot === \"string\") {\n result.sourceRoot = inputMap.sourceRoot;\n }\n\n // remapping returns a SourceMap class type, but this breaks code downstream in\n // @babel/traverse and @babel/types that relies on data being plain objects.\n // When it encounters the sourcemap type it outputs a \"don't know how to turn\n // this value into a node\" error. As a result, we are converting the merged\n // sourcemap to a plain js object.\n return { ...result };\n}\n\nfunction rootless(map: SourceMap): SourceMap {\n return {\n ...map,\n\n // This is a bit hack. Remapping will create absolute sources in our\n // sourcemap, but we want to maintain sources relative to the sourceRoot.\n // We'll re-add the sourceRoot after remapping.\n sourceRoot: null,\n };\n}\n"],"mappings":";;;;;;AACA,SAAAA,WAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,UAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEe,SAASE,cAAcA,CACpCC,QAAmB,EACnBC,GAAc,EACdC,cAAsB,EACX;EAOX,MAAMC,MAAM,GAAGD,cAAc,CAACE,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;EAMjD,IAAIC,KAAK,GAAG,KAAK;EACjB,MAAMC,MAAM,GAAGC,WAAQA,CAAC,CAACC,QAAQ,CAACP,GAAG,CAAC,EAAE,CAACQ,CAAC,EAAEC,GAAG,KAAK;IAClD,IAAID,CAAC,KAAKN,MAAM,IAAI,CAACE,KAAK,EAAE;MAC1BA,KAAK,GAAG,IAAI;MAMZK,GAAG,CAACP,MAAM,GAAG,EAAE;MAEf,OAAOK,QAAQ,CAACR,QAAQ,CAAC;IAC3B;IAEA,OAAO,IAAI;EACb,CAAC,CAAC;EAEF,IAAI,OAAOA,QAAQ,CAACW,UAAU,KAAK,QAAQ,EAAE;IAC3CL,MAAM,CAACK,UAAU,GAAGX,QAAQ,CAACW,UAAU;EACzC;EAOA,OAAAC,MAAA,CAAAC,MAAA,KAAYP,MAAM;AACpB;AAEA,SAASE,QAAQA,CAACP,GAAc,EAAa;EAC3C,OAAAW,MAAA,CAAAC,MAAA,KACKZ,GAAG;IAKNU,UAAU,EAAE;EAAI;AAEpB;AAAC","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/core/lib/transformation/index.js b/server/api/node_modules/@babel/core/lib/transformation/index.js new file mode 100644 index 0000000..3e4f5a5 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/transformation/index.js @@ -0,0 +1,90 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.run = run; +function _traverse() { + const data = require("@babel/traverse"); + _traverse = function () { + return data; + }; + return data; +} +var _pluginPass = require("./plugin-pass.js"); +var _blockHoistPlugin = require("./block-hoist-plugin.js"); +var _normalizeOpts = require("./normalize-opts.js"); +var _normalizeFile = require("./normalize-file.js"); +var _generate = require("./file/generate.js"); +var _deepArray = require("../config/helpers/deep-array.js"); +var _async = require("../gensync-utils/async.js"); +function* run(config, code, ast) { + const file = yield* (0, _normalizeFile.default)(config.passes, (0, _normalizeOpts.default)(config), code, ast); + const opts = file.opts; + try { + yield* transformFile(file, config.passes); + } catch (e) { + var _opts$filename; + e.message = `${(_opts$filename = opts.filename) != null ? _opts$filename : "unknown file"}: ${e.message}`; + if (!e.code) { + e.code = "BABEL_TRANSFORM_ERROR"; + } + throw e; + } + let outputCode, outputMap; + try { + if (opts.code !== false) { + ({ + outputCode, + outputMap + } = (0, _generate.default)(config.passes, file)); + } + } catch (e) { + var _opts$filename2; + e.message = `${(_opts$filename2 = opts.filename) != null ? _opts$filename2 : "unknown file"}: ${e.message}`; + if (!e.code) { + e.code = "BABEL_GENERATE_ERROR"; + } + throw e; + } + return { + metadata: file.metadata, + options: opts, + ast: opts.ast === true ? file.ast : null, + code: outputCode === undefined ? null : outputCode, + map: outputMap === undefined ? null : outputMap, + sourceType: file.ast.program.sourceType, + externalDependencies: (0, _deepArray.flattenToSet)(config.externalDependencies) + }; +} +function* transformFile(file, pluginPasses) { + const async = yield* (0, _async.isAsync)(); + for (const pluginPairs of pluginPasses) { + const passPairs = []; + const passes = []; + const visitors = []; + for (const plugin of pluginPairs.concat([(0, _blockHoistPlugin.default)()])) { + const pass = new _pluginPass.default(file, plugin.key, plugin.options, async); + passPairs.push([plugin, pass]); + passes.push(pass); + visitors.push(plugin.visitor); + } + for (const [plugin, pass] of passPairs) { + if (plugin.pre) { + const fn = (0, _async.maybeAsync)(plugin.pre, `You appear to be using an async plugin/preset, but Babel has been called synchronously`); + yield* fn.call(pass, file); + } + } + const visitor = _traverse().default.visitors.merge(visitors, passes, file.opts.wrapPluginVisitorMethod); + (0, _traverse().default)(file.ast, visitor, file.scope); + for (const [plugin, pass] of passPairs) { + if (plugin.post) { + const fn = (0, _async.maybeAsync)(plugin.post, `You appear to be using an async plugin/preset, but Babel has been called synchronously`); + yield* fn.call(pass, file); + } + } + } +} +0 && 0; + +//# sourceMappingURL=index.js.map diff --git a/server/api/node_modules/@babel/core/lib/transformation/index.js.map b/server/api/node_modules/@babel/core/lib/transformation/index.js.map new file mode 100644 index 0000000..9f816e0 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/transformation/index.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_traverse","data","require","_pluginPass","_blockHoistPlugin","_normalizeOpts","_normalizeFile","_generate","_deepArray","_async","run","config","code","ast","file","normalizeFile","passes","normalizeOptions","opts","transformFile","e","_opts$filename","message","filename","outputCode","outputMap","generateCode","_opts$filename2","metadata","options","undefined","map","sourceType","program","externalDependencies","flattenToSet","pluginPasses","async","isAsync","pluginPairs","passPairs","visitors","plugin","concat","loadBlockHoistPlugin","pass","PluginPass","key","push","visitor","pre","fn","maybeAsync","call","traverse","merge","wrapPluginVisitorMethod","scope","post"],"sources":["../../src/transformation/index.ts"],"sourcesContent":["import traverse from \"@babel/traverse\";\nimport type * as t from \"@babel/types\";\nimport type { GeneratorResult } from \"@babel/generator\";\n\nimport type { Handler } from \"gensync\";\n\nimport type { ResolvedConfig, Plugin, PluginPasses } from \"../config/index.ts\";\n\nimport PluginPass from \"./plugin-pass.ts\";\nimport loadBlockHoistPlugin from \"./block-hoist-plugin.ts\";\nimport normalizeOptions from \"./normalize-opts.ts\";\nimport normalizeFile from \"./normalize-file.ts\";\n\nimport generateCode from \"./file/generate.ts\";\nimport type File from \"./file/file.ts\";\n\nimport { flattenToSet } from \"../config/helpers/deep-array.ts\";\nimport { isAsync, maybeAsync } from \"../gensync-utils/async.ts\";\nimport type { SourceTypeOption } from \"../config/validation/options.ts\";\n\nexport type FileResultCallback = {\n (err: Error, file: null): void;\n (err: null, file: FileResult | null): void;\n};\n\nexport type FileResult = {\n metadata: Record;\n options: Record;\n ast: t.File | null;\n code: string | null;\n map: GeneratorResult[\"map\"];\n sourceType: Exclude;\n externalDependencies: Set;\n};\n\nexport function* run(\n config: ResolvedConfig,\n code: string,\n ast?: t.File | t.Program | null,\n): Handler {\n const file = yield* normalizeFile(\n config.passes,\n normalizeOptions(config),\n code,\n ast,\n );\n\n const opts = file.opts;\n try {\n yield* transformFile(file, config.passes);\n } catch (e) {\n e.message = `${opts.filename ?? \"unknown file\"}: ${e.message}`;\n if (!e.code) {\n e.code = \"BABEL_TRANSFORM_ERROR\";\n }\n throw e;\n }\n\n let outputCode, outputMap;\n try {\n if (opts.code !== false) {\n ({ outputCode, outputMap } = generateCode(config.passes, file));\n }\n } catch (e) {\n e.message = `${opts.filename ?? \"unknown file\"}: ${e.message}`;\n if (!e.code) {\n e.code = \"BABEL_GENERATE_ERROR\";\n }\n throw e;\n }\n\n return {\n metadata: file.metadata,\n options: opts,\n ast: opts.ast === true ? file.ast : null,\n code: outputCode === undefined ? null : outputCode,\n map: outputMap === undefined ? null : outputMap,\n sourceType: file.ast.program.sourceType,\n externalDependencies: flattenToSet(config.externalDependencies),\n };\n}\n\nfunction* transformFile(file: File, pluginPasses: PluginPasses): Handler {\n const async = yield* isAsync();\n\n for (const pluginPairs of pluginPasses) {\n const passPairs: [Plugin, PluginPass][] = [];\n const passes = [];\n const visitors = [];\n\n for (const plugin of pluginPairs.concat([loadBlockHoistPlugin()])) {\n const pass = new PluginPass(file, plugin.key, plugin.options, async);\n\n passPairs.push([plugin, pass]);\n passes.push(pass);\n visitors.push(plugin.visitor);\n }\n\n for (const [plugin, pass] of passPairs) {\n if (plugin.pre) {\n const fn = maybeAsync(\n plugin.pre,\n `You appear to be using an async plugin/preset, but Babel has been called synchronously`,\n );\n\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n yield* fn.call(pass, file);\n }\n }\n\n // merge all plugin visitors into a single visitor\n const visitor = traverse.visitors.merge(\n visitors,\n passes,\n file.opts.wrapPluginVisitorMethod,\n );\n if (process.env.BABEL_8_BREAKING) {\n traverse(file.ast.program, visitor, file.scope, null, file.path, true);\n } else {\n traverse(file.ast, visitor, file.scope);\n }\n\n for (const [plugin, pass] of passPairs) {\n if (plugin.post) {\n const fn = maybeAsync(\n plugin.post,\n `You appear to be using an async plugin/preset, but Babel has been called synchronously`,\n );\n\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n yield* fn.call(pass, file);\n }\n }\n }\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/core/lib/transformation/normalize-file.js b/server/api/node_modules/@babel/core/lib/transformation/normalize-file.js new file mode 100644 index 0000000..ba13031 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/transformation/normalize-file.js @@ -0,0 +1,127 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = normalizeFile; +function _fs() { + const data = require("fs"); + _fs = function () { + return data; + }; + return data; +} +function _path() { + const data = require("path"); + _path = function () { + return data; + }; + return data; +} +function _debug() { + const data = require("debug"); + _debug = function () { + return data; + }; + return data; +} +function _t() { + const data = require("@babel/types"); + _t = function () { + return data; + }; + return data; +} +function _convertSourceMap() { + const data = require("convert-source-map"); + _convertSourceMap = function () { + return data; + }; + return data; +} +var _file = require("./file/file.js"); +var _index = require("../parser/index.js"); +var _cloneDeep = require("./util/clone-deep.js"); +const { + file, + traverseFast +} = _t(); +const debug = _debug()("babel:transform:file"); +const INLINE_SOURCEMAP_REGEX = /^[@#]\s+sourceMappingURL=data:(?:application|text)\/json;(?:charset[:=]\S+?;)?base64,.*$/; +const EXTERNAL_SOURCEMAP_REGEX = /^[@#][ \t]+sourceMappingURL=([^\s'"`]+)[ \t]*$/; +function* normalizeFile(pluginPasses, options, code, ast) { + code = `${code || ""}`; + if (ast) { + if (ast.type === "Program") { + ast = file(ast, [], []); + } else if (ast.type !== "File") { + throw new Error("AST root must be a Program or File node"); + } + if (options.cloneInputAst) { + ast = (0, _cloneDeep.default)(ast); + } + } else { + ast = yield* (0, _index.default)(pluginPasses, options, code); + } + let inputMap = null; + if (options.inputSourceMap !== false) { + if (typeof options.inputSourceMap === "object") { + inputMap = _convertSourceMap().fromObject(options.inputSourceMap); + } + if (!inputMap) { + const lastComment = extractComments(INLINE_SOURCEMAP_REGEX, ast); + if (lastComment) { + try { + inputMap = _convertSourceMap().fromComment("//" + lastComment); + } catch (err) { + debug("discarding unknown inline input sourcemap"); + } + } + } + if (!inputMap) { + const lastComment = extractComments(EXTERNAL_SOURCEMAP_REGEX, ast); + if (typeof options.filename === "string" && lastComment) { + try { + const match = EXTERNAL_SOURCEMAP_REGEX.exec(lastComment); + const inputMapContent = _fs().readFileSync(_path().resolve(_path().dirname(options.filename), match[1]), "utf8"); + inputMap = _convertSourceMap().fromJSON(inputMapContent); + } catch (err) { + debug("discarding unknown file input sourcemap", err); + } + } else if (lastComment) { + debug("discarding un-loadable file input sourcemap"); + } + } + } + return new _file.default(options, { + code, + ast: ast, + inputMap + }); +} +function extractCommentsFromList(regex, comments, lastComment) { + if (comments) { + comments = comments.filter(({ + value + }) => { + if (regex.test(value)) { + lastComment = value; + return false; + } + return true; + }); + } + return [comments, lastComment]; +} +function extractComments(regex, ast) { + let lastComment = null; + traverseFast(ast, node => { + [node.leadingComments, lastComment] = extractCommentsFromList(regex, node.leadingComments, lastComment); + [node.innerComments, lastComment] = extractCommentsFromList(regex, node.innerComments, lastComment); + [node.trailingComments, lastComment] = extractCommentsFromList(regex, node.trailingComments, lastComment); + }); + return lastComment; +} +0 && 0; + +//# sourceMappingURL=normalize-file.js.map diff --git a/server/api/node_modules/@babel/core/lib/transformation/normalize-file.js.map b/server/api/node_modules/@babel/core/lib/transformation/normalize-file.js.map new file mode 100644 index 0000000..63f7d5e --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/transformation/normalize-file.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_fs","data","require","_path","_debug","_t","_convertSourceMap","_file","_index","_cloneDeep","file","traverseFast","debug","buildDebug","INLINE_SOURCEMAP_REGEX","EXTERNAL_SOURCEMAP_REGEX","normalizeFile","pluginPasses","options","code","ast","type","Error","cloneInputAst","cloneDeep","parser","inputMap","inputSourceMap","convertSourceMap","fromObject","lastComment","extractComments","fromComment","err","filename","match","exec","inputMapContent","fs","readFileSync","path","resolve","dirname","fromJSON","File","extractCommentsFromList","regex","comments","filter","value","test","node","leadingComments","innerComments","trailingComments"],"sources":["../../src/transformation/normalize-file.ts"],"sourcesContent":["import fs from \"node:fs\";\nimport path from \"node:path\";\nimport buildDebug from \"debug\";\nimport type { Handler } from \"gensync\";\nimport { file, traverseFast } from \"@babel/types\";\nimport type * as t from \"@babel/types\";\nimport type { PluginPasses } from \"../config/index.ts\";\nimport convertSourceMap from \"convert-source-map\";\nimport type { SourceMapConverter as Converter } from \"convert-source-map\";\nimport File from \"./file/file.ts\";\nimport parser from \"../parser/index.ts\";\nimport cloneDeep from \"./util/clone-deep.ts\";\nimport type { ResolvedOptions } from \"../config/validation/options.ts\";\n\nconst debug = buildDebug(\"babel:transform:file\");\n\n// These regexps are copied from the convert-source-map package,\n// but without // or /* at the beginning of the comment.\n\nconst INLINE_SOURCEMAP_REGEX =\n /^[@#]\\s+sourceMappingURL=data:(?:application|text)\\/json;(?:charset[:=]\\S+?;)?base64,.*$/;\nconst EXTERNAL_SOURCEMAP_REGEX =\n /^[@#][ \\t]+sourceMappingURL=([^\\s'\"`]+)[ \\t]*$/;\n\nexport type NormalizedFile = {\n code: string;\n ast: t.File;\n inputMap: Converter | null;\n};\n\nexport default function* normalizeFile(\n pluginPasses: PluginPasses,\n options: ResolvedOptions,\n code: string,\n ast?: t.File | t.Program | null,\n): Handler {\n code = `${code || \"\"}`;\n\n if (ast) {\n if (ast.type === \"Program\") {\n ast = file(ast, [], []);\n } else if (ast.type !== \"File\") {\n throw new Error(\"AST root must be a Program or File node\");\n }\n\n if (options.cloneInputAst) {\n ast = cloneDeep(ast);\n }\n } else {\n ast = yield* parser(pluginPasses, options, code);\n }\n\n let inputMap = null;\n if (options.inputSourceMap !== false) {\n // If an explicit object is passed in, it overrides the processing of\n // source maps that may be in the file itself.\n if (typeof options.inputSourceMap === \"object\") {\n inputMap = convertSourceMap.fromObject(options.inputSourceMap);\n }\n\n if (!inputMap) {\n const lastComment = extractComments(INLINE_SOURCEMAP_REGEX, ast);\n if (lastComment) {\n try {\n inputMap = convertSourceMap.fromComment(\"//\" + lastComment);\n } catch (err) {\n if (process.env.BABEL_8_BREAKING) {\n console.warn(\n \"discarding unknown inline input sourcemap\",\n options.filename,\n err,\n );\n } else {\n debug(\"discarding unknown inline input sourcemap\");\n }\n }\n }\n }\n\n if (!inputMap) {\n const lastComment = extractComments(EXTERNAL_SOURCEMAP_REGEX, ast);\n if (typeof options.filename === \"string\" && lastComment) {\n try {\n // when `lastComment` is non-null, EXTERNAL_SOURCEMAP_REGEX must have matches\n const match: [string, string] = EXTERNAL_SOURCEMAP_REGEX.exec(\n lastComment,\n ) as any;\n const inputMapContent = fs.readFileSync(\n path.resolve(path.dirname(options.filename), match[1]),\n \"utf8\",\n );\n inputMap = convertSourceMap.fromJSON(inputMapContent);\n } catch (err) {\n debug(\"discarding unknown file input sourcemap\", err);\n }\n } else if (lastComment) {\n debug(\"discarding un-loadable file input sourcemap\");\n }\n }\n }\n\n return new File(options, {\n code,\n ast: ast,\n inputMap,\n });\n}\n\nfunction extractCommentsFromList(\n regex: RegExp,\n comments: t.Comment[],\n lastComment: string | null,\n): [t.Comment[], string | null] {\n if (comments) {\n comments = comments.filter(({ value }) => {\n if (regex.test(value)) {\n lastComment = value;\n return false;\n }\n return true;\n });\n }\n return [comments, lastComment];\n}\n\nfunction extractComments(regex: RegExp, ast: t.Node) {\n let lastComment: string = null;\n traverseFast(ast, node => {\n [node.leadingComments, lastComment] = extractCommentsFromList(\n regex,\n node.leadingComments,\n lastComment,\n );\n [node.innerComments, lastComment] = extractCommentsFromList(\n regex,\n node.innerComments,\n lastComment,\n );\n [node.trailingComments, lastComment] = extractCommentsFromList(\n regex,\n node.trailingComments,\n lastComment,\n );\n });\n return lastComment;\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/core/lib/transformation/normalize-opts.js b/server/api/node_modules/@babel/core/lib/transformation/normalize-opts.js new file mode 100644 index 0000000..c4d9d8b --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/transformation/normalize-opts.js @@ -0,0 +1,59 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = normalizeOptions; +function _path() { + const data = require("path"); + _path = function () { + return data; + }; + return data; +} +function normalizeOptions(config) { + const { + filename, + cwd, + filenameRelative = typeof filename === "string" ? _path().relative(cwd, filename) : "unknown", + sourceType = "module", + inputSourceMap, + sourceMaps = !!inputSourceMap, + sourceRoot = config.options.moduleRoot, + sourceFileName = _path().basename(filenameRelative), + comments = true, + compact = "auto" + } = config.options; + const opts = config.options; + const options = Object.assign({}, opts, { + parserOpts: Object.assign({ + sourceType: _path().extname(filenameRelative) === ".mjs" ? "module" : sourceType, + sourceFileName: filename, + plugins: [] + }, opts.parserOpts), + generatorOpts: Object.assign({ + filename, + auxiliaryCommentBefore: opts.auxiliaryCommentBefore, + auxiliaryCommentAfter: opts.auxiliaryCommentAfter, + retainLines: opts.retainLines, + comments, + shouldPrintComment: opts.shouldPrintComment, + compact, + minified: opts.minified, + sourceMaps: !!sourceMaps, + sourceRoot, + sourceFileName + }, opts.generatorOpts) + }); + for (const plugins of config.passes) { + for (const plugin of plugins) { + if (plugin.manipulateOptions) { + plugin.manipulateOptions(options, options.parserOpts); + } + } + } + return options; +} +0 && 0; + +//# sourceMappingURL=normalize-opts.js.map diff --git a/server/api/node_modules/@babel/core/lib/transformation/normalize-opts.js.map b/server/api/node_modules/@babel/core/lib/transformation/normalize-opts.js.map new file mode 100644 index 0000000..1439fa9 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/transformation/normalize-opts.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_path","data","require","normalizeOptions","config","filename","cwd","filenameRelative","path","relative","sourceType","inputSourceMap","sourceMaps","sourceRoot","options","moduleRoot","sourceFileName","basename","comments","compact","opts","Object","assign","parserOpts","extname","plugins","generatorOpts","auxiliaryCommentBefore","auxiliaryCommentAfter","retainLines","shouldPrintComment","minified","passes","plugin","manipulateOptions"],"sources":["../../src/transformation/normalize-opts.ts"],"sourcesContent":["import path from \"node:path\";\nimport type { ResolvedConfig } from \"../config/index.ts\";\nimport type { ResolvedOptions } from \"../config/validation/options.ts\";\n\nexport default function normalizeOptions(\n config: ResolvedConfig,\n): ResolvedOptions {\n const {\n filename,\n cwd,\n filenameRelative = typeof filename === \"string\"\n ? path.relative(cwd, filename)\n : \"unknown\",\n sourceType = \"module\",\n inputSourceMap,\n sourceMaps = !!inputSourceMap,\n sourceRoot = process.env.BABEL_8_BREAKING\n ? undefined\n : // @ts-ignore(Babel 7 vs Babel 8) moduleRoot is a Babel 7 option\n config.options.moduleRoot,\n\n sourceFileName = path.basename(filenameRelative),\n\n comments = true,\n compact = \"auto\",\n } = config.options;\n\n const opts = config.options;\n\n const options: ResolvedOptions = {\n ...opts,\n\n parserOpts: {\n sourceType:\n path.extname(filenameRelative) === \".mjs\" ? \"module\" : sourceType,\n\n // @ts-expect-error We should have passed `sourceFilename` here\n // pending https://github.com/babel/babel/issues/15917#issuecomment-2789278964\n sourceFileName: filename,\n plugins: [],\n ...opts.parserOpts,\n },\n\n generatorOpts: {\n // General generator flags.\n filename,\n\n auxiliaryCommentBefore: opts.auxiliaryCommentBefore,\n auxiliaryCommentAfter: opts.auxiliaryCommentAfter,\n retainLines: opts.retainLines,\n comments,\n shouldPrintComment: opts.shouldPrintComment,\n compact,\n minified: opts.minified,\n\n // Source-map generation flags.\n // babel-generator does not differentiate between `true`, `\"inline\"` or `\"both\"`\n sourceMaps: !!sourceMaps,\n sourceRoot,\n sourceFileName,\n\n ...opts.generatorOpts,\n },\n };\n\n for (const plugins of config.passes) {\n for (const plugin of plugins) {\n if (plugin.manipulateOptions) {\n plugin.manipulateOptions(options, options.parserOpts);\n }\n }\n }\n\n return options;\n}\n"],"mappings":";;;;;;AAAA,SAAAA,MAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,KAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAIe,SAASE,gBAAgBA,CACtCC,MAAsB,EACL;EACjB,MAAM;IACJC,QAAQ;IACRC,GAAG;IACHC,gBAAgB,GAAG,OAAOF,QAAQ,KAAK,QAAQ,GAC3CG,MAAGA,CAAC,CAACC,QAAQ,CAACH,GAAG,EAAED,QAAQ,CAAC,GAC5B,SAAS;IACbK,UAAU,GAAG,QAAQ;IACrBC,cAAc;IACdC,UAAU,GAAG,CAAC,CAACD,cAAc;IAC7BE,UAAU,GAGNT,MAAM,CAACU,OAAO,CAACC,UAAU;IAE7BC,cAAc,GAAGR,MAAGA,CAAC,CAACS,QAAQ,CAACV,gBAAgB,CAAC;IAEhDW,QAAQ,GAAG,IAAI;IACfC,OAAO,GAAG;EACZ,CAAC,GAAGf,MAAM,CAACU,OAAO;EAElB,MAAMM,IAAI,GAAGhB,MAAM,CAACU,OAAO;EAE3B,MAAMA,OAAwB,GAAAO,MAAA,CAAAC,MAAA,KACzBF,IAAI;IAEPG,UAAU,EAAAF,MAAA,CAAAC,MAAA;MACRZ,UAAU,EACRF,MAAGA,CAAC,CAACgB,OAAO,CAACjB,gBAAgB,CAAC,KAAK,MAAM,GAAG,QAAQ,GAAGG,UAAU;MAInEM,cAAc,EAAEX,QAAQ;MACxBoB,OAAO,EAAE;IAAE,GACRL,IAAI,CAACG,UAAU,CACnB;IAEDG,aAAa,EAAAL,MAAA,CAAAC,MAAA;MAEXjB,QAAQ;MAERsB,sBAAsB,EAAEP,IAAI,CAACO,sBAAsB;MACnDC,qBAAqB,EAAER,IAAI,CAACQ,qBAAqB;MACjDC,WAAW,EAAET,IAAI,CAACS,WAAW;MAC7BX,QAAQ;MACRY,kBAAkB,EAAEV,IAAI,CAACU,kBAAkB;MAC3CX,OAAO;MACPY,QAAQ,EAAEX,IAAI,CAACW,QAAQ;MAIvBnB,UAAU,EAAE,CAAC,CAACA,UAAU;MACxBC,UAAU;MACVG;IAAc,GAEXI,IAAI,CAACM,aAAa;EACtB,EACF;EAED,KAAK,MAAMD,OAAO,IAAIrB,MAAM,CAAC4B,MAAM,EAAE;IACnC,KAAK,MAAMC,MAAM,IAAIR,OAAO,EAAE;MAC5B,IAAIQ,MAAM,CAACC,iBAAiB,EAAE;QAC5BD,MAAM,CAACC,iBAAiB,CAACpB,OAAO,EAAEA,OAAO,CAACS,UAAU,CAAC;MACvD;IACF;EACF;EAEA,OAAOT,OAAO;AAChB;AAAC","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/core/lib/transformation/plugin-pass.js b/server/api/node_modules/@babel/core/lib/transformation/plugin-pass.js new file mode 100644 index 0000000..1b91307 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/transformation/plugin-pass.js @@ -0,0 +1,48 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +class PluginPass { + constructor(file, key, options, isAsync) { + this._map = new Map(); + this.key = void 0; + this.file = void 0; + this.opts = void 0; + this.cwd = void 0; + this.filename = void 0; + this.isAsync = void 0; + this.key = key; + this.file = file; + this.opts = options || {}; + this.cwd = file.opts.cwd; + this.filename = file.opts.filename; + this.isAsync = isAsync; + } + set(key, val) { + this._map.set(key, val); + } + get(key) { + return this._map.get(key); + } + availableHelper(name, versionRange) { + return this.file.availableHelper(name, versionRange); + } + addHelper(name) { + return this.file.addHelper(name); + } + buildCodeFrameError(node, msg, _Error) { + return this.file.buildCodeFrameError(node, msg, _Error); + } +} +exports.default = PluginPass; +PluginPass.prototype.getModuleName = function getModuleName() { + return this.file.getModuleName(); +}; +PluginPass.prototype.addImport = function addImport() { + this.file.addImport(); +}; +0 && 0; + +//# sourceMappingURL=plugin-pass.js.map diff --git a/server/api/node_modules/@babel/core/lib/transformation/plugin-pass.js.map b/server/api/node_modules/@babel/core/lib/transformation/plugin-pass.js.map new file mode 100644 index 0000000..888f99e --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/transformation/plugin-pass.js.map @@ -0,0 +1 @@ +{"version":3,"names":["PluginPass","constructor","file","key","options","isAsync","_map","Map","opts","cwd","filename","set","val","get","availableHelper","name","versionRange","addHelper","buildCodeFrameError","node","msg","_Error","exports","default","prototype","getModuleName","addImport"],"sources":["../../src/transformation/plugin-pass.ts"],"sourcesContent":["import type * as t from \"@babel/types\";\nimport type File from \"./file/file.ts\";\n\nexport default class PluginPass {\n _map = new Map();\n key: string | undefined | null;\n file: File;\n opts: Partial;\n\n /**\n * The working directory that Babel's programmatic options are loaded\n * relative to.\n */\n cwd: string;\n\n /** The absolute path of the file being compiled. */\n filename: string | void;\n\n /**\n * Is Babel executed in async mode or not.\n */\n isAsync: boolean;\n\n constructor(\n file: File,\n key: string | null,\n options: Options | undefined,\n isAsync: boolean,\n ) {\n this.key = key;\n this.file = file;\n this.opts = options || {};\n this.cwd = file.opts.cwd;\n this.filename = file.opts.filename;\n this.isAsync = isAsync;\n }\n\n set(key: unknown, val: unknown) {\n this._map.set(key, val);\n }\n\n get(key: unknown): any {\n return this._map.get(key);\n }\n\n availableHelper(name: string, versionRange?: string | null) {\n return this.file.availableHelper(name, versionRange);\n }\n\n addHelper(name: string) {\n return this.file.addHelper(name);\n }\n\n buildCodeFrameError(\n node: t.Node | undefined | null,\n msg: string,\n _Error?: typeof Error,\n ) {\n return this.file.buildCodeFrameError(node, msg, _Error);\n }\n}\n\nif (!process.env.BABEL_8_BREAKING) {\n (PluginPass as any).prototype.getModuleName = function getModuleName(\n this: PluginPass,\n ): string | undefined {\n // @ts-expect-error only exists in Babel 7\n return this.file.getModuleName();\n };\n (PluginPass as any).prototype.addImport = function addImport(\n this: PluginPass,\n ): void {\n // @ts-expect-error only exists in Babel 7\n this.file.addImport();\n };\n}\n"],"mappings":";;;;;;AAGe,MAAMA,UAAU,CAAmB;EAoBhDC,WAAWA,CACTC,IAAU,EACVC,GAAkB,EAClBC,OAA4B,EAC5BC,OAAgB,EAChB;IAAA,KAxBFC,IAAI,GAAG,IAAIC,GAAG,CAAmB,CAAC;IAAA,KAClCJ,GAAG;IAAA,KACHD,IAAI;IAAA,KACJM,IAAI;IAAA,KAMJC,GAAG;IAAA,KAGHC,QAAQ;IAAA,KAKRL,OAAO;IAQL,IAAI,CAACF,GAAG,GAAGA,GAAG;IACd,IAAI,CAACD,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACM,IAAI,GAAGJ,OAAO,IAAI,CAAC,CAAC;IACzB,IAAI,CAACK,GAAG,GAAGP,IAAI,CAACM,IAAI,CAACC,GAAG;IACxB,IAAI,CAACC,QAAQ,GAAGR,IAAI,CAACM,IAAI,CAACE,QAAQ;IAClC,IAAI,CAACL,OAAO,GAAGA,OAAO;EACxB;EAEAM,GAAGA,CAACR,GAAY,EAAES,GAAY,EAAE;IAC9B,IAAI,CAACN,IAAI,CAACK,GAAG,CAACR,GAAG,EAAES,GAAG,CAAC;EACzB;EAEAC,GAAGA,CAACV,GAAY,EAAO;IACrB,OAAO,IAAI,CAACG,IAAI,CAACO,GAAG,CAACV,GAAG,CAAC;EAC3B;EAEAW,eAAeA,CAACC,IAAY,EAAEC,YAA4B,EAAE;IAC1D,OAAO,IAAI,CAACd,IAAI,CAACY,eAAe,CAACC,IAAI,EAAEC,YAAY,CAAC;EACtD;EAEAC,SAASA,CAACF,IAAY,EAAE;IACtB,OAAO,IAAI,CAACb,IAAI,CAACe,SAAS,CAACF,IAAI,CAAC;EAClC;EAEAG,mBAAmBA,CACjBC,IAA+B,EAC/BC,GAAW,EACXC,MAAqB,EACrB;IACA,OAAO,IAAI,CAACnB,IAAI,CAACgB,mBAAmB,CAACC,IAAI,EAAEC,GAAG,EAAEC,MAAM,CAAC;EACzD;AACF;AAACC,OAAA,CAAAC,OAAA,GAAAvB,UAAA;AAGEA,UAAU,CAASwB,SAAS,CAACC,aAAa,GAAG,SAASA,aAAaA,CAAA,EAE9C;EAEpB,OAAO,IAAI,CAACvB,IAAI,CAACuB,aAAa,CAAC,CAAC;AAClC,CAAC;AACAzB,UAAU,CAASwB,SAAS,CAACE,SAAS,GAAG,SAASA,SAASA,CAAA,EAEpD;EAEN,IAAI,CAACxB,IAAI,CAACwB,SAAS,CAAC,CAAC;AACvB,CAAC;AAAC","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/core/lib/transformation/util/clone-deep.js b/server/api/node_modules/@babel/core/lib/transformation/util/clone-deep.js new file mode 100644 index 0000000..a915149 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/transformation/util/clone-deep.js @@ -0,0 +1,54 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = _default; +const circleSet = new Set(); +let depth = 0; +function deepClone(value, cache, allowCircle) { + if (value !== null) { + if (allowCircle) { + if (cache.has(value)) return cache.get(value); + } else if (++depth > 250) { + if (circleSet.has(value)) { + depth = 0; + circleSet.clear(); + throw new Error("Babel-deepClone: Cycles are not allowed in AST"); + } + circleSet.add(value); + } + let cloned; + if (Array.isArray(value)) { + cloned = new Array(value.length); + if (allowCircle) cache.set(value, cloned); + for (let i = 0; i < value.length; i++) { + cloned[i] = typeof value[i] !== "object" ? value[i] : deepClone(value[i], cache, allowCircle); + } + } else { + cloned = {}; + if (allowCircle) cache.set(value, cloned); + const keys = Object.keys(value); + for (let i = 0; i < keys.length; i++) { + const key = keys[i]; + cloned[key] = typeof value[key] !== "object" ? value[key] : deepClone(value[key], cache, allowCircle || key === "leadingComments" || key === "innerComments" || key === "trailingComments" || key === "extra"); + } + } + if (!allowCircle) { + if (depth-- > 250) circleSet.delete(value); + } + return cloned; + } + return value; +} +function _default(value) { + if (typeof value !== "object") return value; + try { + return deepClone(value, new Map(), true); + } catch (_) { + return structuredClone(value); + } +} +0 && 0; + +//# sourceMappingURL=clone-deep.js.map diff --git a/server/api/node_modules/@babel/core/lib/transformation/util/clone-deep.js.map b/server/api/node_modules/@babel/core/lib/transformation/util/clone-deep.js.map new file mode 100644 index 0000000..947b6c9 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/transformation/util/clone-deep.js.map @@ -0,0 +1 @@ +{"version":3,"names":["circleSet","Set","depth","deepClone","value","cache","allowCircle","has","get","clear","Error","add","cloned","Array","isArray","length","set","i","keys","Object","key","delete","_default","Map","_","structuredClone"],"sources":["../../../src/transformation/util/clone-deep.ts"],"sourcesContent":["const circleSet = new Set();\nlet depth = 0;\n// https://github.com/babel/babel/pull/14583#discussion_r882828856\nfunction deepClone(\n value: any,\n cache: Map,\n allowCircle: boolean,\n): any {\n if (value !== null) {\n if (allowCircle) {\n if (cache.has(value)) return cache.get(value);\n } else if (++depth > 250) {\n if (circleSet.has(value)) {\n depth = 0;\n circleSet.clear();\n throw new Error(\"Babel-deepClone: Cycles are not allowed in AST\");\n }\n circleSet.add(value);\n }\n let cloned: any;\n if (Array.isArray(value)) {\n cloned = new Array(value.length);\n if (allowCircle) cache.set(value, cloned);\n for (let i = 0; i < value.length; i++) {\n cloned[i] =\n typeof value[i] !== \"object\"\n ? value[i]\n : deepClone(value[i], cache, allowCircle);\n }\n } else {\n cloned = {};\n if (allowCircle) cache.set(value, cloned);\n const keys = Object.keys(value);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n cloned[key] =\n typeof value[key] !== \"object\"\n ? value[key]\n : deepClone(\n value[key],\n cache,\n allowCircle ||\n key === \"leadingComments\" ||\n key === \"innerComments\" ||\n key === \"trailingComments\" ||\n key === \"extra\",\n );\n }\n }\n if (!allowCircle) {\n if (depth-- > 250) circleSet.delete(value);\n }\n return cloned;\n }\n return value;\n}\n\nexport default function (value: T): T {\n if (typeof value !== \"object\") return value;\n\n if (process.env.BABEL_8_BREAKING) {\n if (!process.env.IS_PUBLISH && depth > 0) {\n throw new Error(\"depth > 0\");\n }\n return deepClone(value, new Map(), false);\n } else {\n try {\n return deepClone(value, new Map(), true);\n } catch (_) {\n return structuredClone(value);\n }\n }\n}\n"],"mappings":";;;;;;AAAA,MAAMA,SAAS,GAAG,IAAIC,GAAG,CAAC,CAAC;AAC3B,IAAIC,KAAK,GAAG,CAAC;AAEb,SAASC,SAASA,CAChBC,KAAU,EACVC,KAAoB,EACpBC,WAAoB,EACf;EACL,IAAIF,KAAK,KAAK,IAAI,EAAE;IAClB,IAAIE,WAAW,EAAE;MACf,IAAID,KAAK,CAACE,GAAG,CAACH,KAAK,CAAC,EAAE,OAAOC,KAAK,CAACG,GAAG,CAACJ,KAAK,CAAC;IAC/C,CAAC,MAAM,IAAI,EAAEF,KAAK,GAAG,GAAG,EAAE;MACxB,IAAIF,SAAS,CAACO,GAAG,CAACH,KAAK,CAAC,EAAE;QACxBF,KAAK,GAAG,CAAC;QACTF,SAAS,CAACS,KAAK,CAAC,CAAC;QACjB,MAAM,IAAIC,KAAK,CAAC,gDAAgD,CAAC;MACnE;MACAV,SAAS,CAACW,GAAG,CAACP,KAAK,CAAC;IACtB;IACA,IAAIQ,MAAW;IACf,IAAIC,KAAK,CAACC,OAAO,CAACV,KAAK,CAAC,EAAE;MACxBQ,MAAM,GAAG,IAAIC,KAAK,CAACT,KAAK,CAACW,MAAM,CAAC;MAChC,IAAIT,WAAW,EAAED,KAAK,CAACW,GAAG,CAACZ,KAAK,EAAEQ,MAAM,CAAC;MACzC,KAAK,IAAIK,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGb,KAAK,CAACW,MAAM,EAAEE,CAAC,EAAE,EAAE;QACrCL,MAAM,CAACK,CAAC,CAAC,GACP,OAAOb,KAAK,CAACa,CAAC,CAAC,KAAK,QAAQ,GACxBb,KAAK,CAACa,CAAC,CAAC,GACRd,SAAS,CAACC,KAAK,CAACa,CAAC,CAAC,EAAEZ,KAAK,EAAEC,WAAW,CAAC;MAC/C;IACF,CAAC,MAAM;MACLM,MAAM,GAAG,CAAC,CAAC;MACX,IAAIN,WAAW,EAAED,KAAK,CAACW,GAAG,CAACZ,KAAK,EAAEQ,MAAM,CAAC;MACzC,MAAMM,IAAI,GAAGC,MAAM,CAACD,IAAI,CAACd,KAAK,CAAC;MAC/B,KAAK,IAAIa,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGC,IAAI,CAACH,MAAM,EAAEE,CAAC,EAAE,EAAE;QACpC,MAAMG,GAAG,GAAGF,IAAI,CAACD,CAAC,CAAC;QACnBL,MAAM,CAACQ,GAAG,CAAC,GACT,OAAOhB,KAAK,CAACgB,GAAG,CAAC,KAAK,QAAQ,GAC1BhB,KAAK,CAACgB,GAAG,CAAC,GACVjB,SAAS,CACPC,KAAK,CAACgB,GAAG,CAAC,EACVf,KAAK,EACLC,WAAW,IACTc,GAAG,KAAK,iBAAiB,IACzBA,GAAG,KAAK,eAAe,IACvBA,GAAG,KAAK,kBAAkB,IAC1BA,GAAG,KAAK,OACZ,CAAC;MACT;IACF;IACA,IAAI,CAACd,WAAW,EAAE;MAChB,IAAIJ,KAAK,EAAE,GAAG,GAAG,EAAEF,SAAS,CAACqB,MAAM,CAACjB,KAAK,CAAC;IAC5C;IACA,OAAOQ,MAAM;EACf;EACA,OAAOR,KAAK;AACd;AAEe,SAAAkB,SAAalB,KAAQ,EAAK;EACvC,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE,OAAOA,KAAK;EAQzC,IAAI;IACF,OAAOD,SAAS,CAACC,KAAK,EAAE,IAAImB,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC;EAC1C,CAAC,CAAC,OAAOC,CAAC,EAAE;IACV,OAAOC,eAAe,CAACrB,KAAK,CAAC;EAC/B;AAEJ;AAAC","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/core/lib/vendor/import-meta-resolve.js b/server/api/node_modules/@babel/core/lib/vendor/import-meta-resolve.js new file mode 100644 index 0000000..90a5911 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/vendor/import-meta-resolve.js @@ -0,0 +1,1042 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.moduleResolve = moduleResolve; +exports.resolve = resolve; +function _assert() { + const data = require("assert"); + _assert = function () { + return data; + }; + return data; +} +function _fs() { + const data = _interopRequireWildcard(require("fs"), true); + _fs = function () { + return data; + }; + return data; +} +function _process() { + const data = require("process"); + _process = function () { + return data; + }; + return data; +} +function _url() { + const data = require("url"); + _url = function () { + return data; + }; + return data; +} +function _path() { + const data = require("path"); + _path = function () { + return data; + }; + return data; +} +function _module() { + const data = require("module"); + _module = function () { + return data; + }; + return data; +} +function _v() { + const data = require("v8"); + _v = function () { + return data; + }; + return data; +} +function _util() { + const data = require("util"); + _util = function () { + return data; + }; + return data; +} +function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); } +const own$1 = {}.hasOwnProperty; +const classRegExp = /^([A-Z][a-z\d]*)+$/; +const kTypes = new Set(['string', 'function', 'number', 'object', 'Function', 'Object', 'boolean', 'bigint', 'symbol']); +const codes = {}; +function formatList(array, type = 'and') { + return array.length < 3 ? array.join(` ${type} `) : `${array.slice(0, -1).join(', ')}, ${type} ${array[array.length - 1]}`; +} +const messages = new Map(); +const nodeInternalPrefix = '__node_internal_'; +let userStackTraceLimit; +codes.ERR_INVALID_ARG_TYPE = createError('ERR_INVALID_ARG_TYPE', (name, expected, actual) => { + _assert()(typeof name === 'string', "'name' must be a string"); + if (!Array.isArray(expected)) { + expected = [expected]; + } + let message = 'The '; + if (name.endsWith(' argument')) { + message += `${name} `; + } else { + const type = name.includes('.') ? 'property' : 'argument'; + message += `"${name}" ${type} `; + } + message += 'must be '; + const types = []; + const instances = []; + const other = []; + for (const value of expected) { + _assert()(typeof value === 'string', 'All expected entries have to be of type string'); + if (kTypes.has(value)) { + types.push(value.toLowerCase()); + } else if (classRegExp.exec(value) === null) { + _assert()(value !== 'object', 'The value "object" should be written as "Object"'); + other.push(value); + } else { + instances.push(value); + } + } + if (instances.length > 0) { + const pos = types.indexOf('object'); + if (pos !== -1) { + types.slice(pos, 1); + instances.push('Object'); + } + } + if (types.length > 0) { + message += `${types.length > 1 ? 'one of type' : 'of type'} ${formatList(types, 'or')}`; + if (instances.length > 0 || other.length > 0) message += ' or '; + } + if (instances.length > 0) { + message += `an instance of ${formatList(instances, 'or')}`; + if (other.length > 0) message += ' or '; + } + if (other.length > 0) { + if (other.length > 1) { + message += `one of ${formatList(other, 'or')}`; + } else { + if (other[0].toLowerCase() !== other[0]) message += 'an '; + message += `${other[0]}`; + } + } + message += `. Received ${determineSpecificType(actual)}`; + return message; +}, TypeError); +codes.ERR_INVALID_MODULE_SPECIFIER = createError('ERR_INVALID_MODULE_SPECIFIER', (request, reason, base = undefined) => { + return `Invalid module "${request}" ${reason}${base ? ` imported from ${base}` : ''}`; +}, TypeError); +codes.ERR_INVALID_PACKAGE_CONFIG = createError('ERR_INVALID_PACKAGE_CONFIG', (path, base, message) => { + return `Invalid package config ${path}${base ? ` while importing ${base}` : ''}${message ? `. ${message}` : ''}`; +}, Error); +codes.ERR_INVALID_PACKAGE_TARGET = createError('ERR_INVALID_PACKAGE_TARGET', (packagePath, key, target, isImport = false, base = undefined) => { + const relatedError = typeof target === 'string' && !isImport && target.length > 0 && !target.startsWith('./'); + if (key === '.') { + _assert()(isImport === false); + return `Invalid "exports" main target ${JSON.stringify(target)} defined ` + `in the package config ${packagePath}package.json${base ? ` imported from ${base}` : ''}${relatedError ? '; targets must start with "./"' : ''}`; + } + return `Invalid "${isImport ? 'imports' : 'exports'}" target ${JSON.stringify(target)} defined for '${key}' in the package config ${packagePath}package.json${base ? ` imported from ${base}` : ''}${relatedError ? '; targets must start with "./"' : ''}`; +}, Error); +codes.ERR_MODULE_NOT_FOUND = createError('ERR_MODULE_NOT_FOUND', (path, base, exactUrl = false) => { + return `Cannot find ${exactUrl ? 'module' : 'package'} '${path}' imported from ${base}`; +}, Error); +codes.ERR_NETWORK_IMPORT_DISALLOWED = createError('ERR_NETWORK_IMPORT_DISALLOWED', "import of '%s' by %s is not supported: %s", Error); +codes.ERR_PACKAGE_IMPORT_NOT_DEFINED = createError('ERR_PACKAGE_IMPORT_NOT_DEFINED', (specifier, packagePath, base) => { + return `Package import specifier "${specifier}" is not defined${packagePath ? ` in package ${packagePath}package.json` : ''} imported from ${base}`; +}, TypeError); +codes.ERR_PACKAGE_PATH_NOT_EXPORTED = createError('ERR_PACKAGE_PATH_NOT_EXPORTED', (packagePath, subpath, base = undefined) => { + if (subpath === '.') return `No "exports" main defined in ${packagePath}package.json${base ? ` imported from ${base}` : ''}`; + return `Package subpath '${subpath}' is not defined by "exports" in ${packagePath}package.json${base ? ` imported from ${base}` : ''}`; +}, Error); +codes.ERR_UNSUPPORTED_DIR_IMPORT = createError('ERR_UNSUPPORTED_DIR_IMPORT', "Directory import '%s' is not supported " + 'resolving ES modules imported from %s', Error); +codes.ERR_UNSUPPORTED_RESOLVE_REQUEST = createError('ERR_UNSUPPORTED_RESOLVE_REQUEST', 'Failed to resolve module specifier "%s" from "%s": Invalid relative URL or base scheme is not hierarchical.', TypeError); +codes.ERR_UNKNOWN_FILE_EXTENSION = createError('ERR_UNKNOWN_FILE_EXTENSION', (extension, path) => { + return `Unknown file extension "${extension}" for ${path}`; +}, TypeError); +codes.ERR_INVALID_ARG_VALUE = createError('ERR_INVALID_ARG_VALUE', (name, value, reason = 'is invalid') => { + let inspected = (0, _util().inspect)(value); + if (inspected.length > 128) { + inspected = `${inspected.slice(0, 128)}...`; + } + const type = name.includes('.') ? 'property' : 'argument'; + return `The ${type} '${name}' ${reason}. Received ${inspected}`; +}, TypeError); +function createError(sym, value, constructor) { + messages.set(sym, value); + return makeNodeErrorWithCode(constructor, sym); +} +function makeNodeErrorWithCode(Base, key) { + return NodeError; + function NodeError(...parameters) { + const limit = Error.stackTraceLimit; + if (isErrorStackTraceLimitWritable()) Error.stackTraceLimit = 0; + const error = new Base(); + if (isErrorStackTraceLimitWritable()) Error.stackTraceLimit = limit; + const message = getMessage(key, parameters, error); + Object.defineProperties(error, { + message: { + value: message, + enumerable: false, + writable: true, + configurable: true + }, + toString: { + value() { + return `${this.name} [${key}]: ${this.message}`; + }, + enumerable: false, + writable: true, + configurable: true + } + }); + captureLargerStackTrace(error); + error.code = key; + return error; + } +} +function isErrorStackTraceLimitWritable() { + try { + if (_v().startupSnapshot.isBuildingSnapshot()) { + return false; + } + } catch (_unused) {} + const desc = Object.getOwnPropertyDescriptor(Error, 'stackTraceLimit'); + if (desc === undefined) { + return Object.isExtensible(Error); + } + return own$1.call(desc, 'writable') && desc.writable !== undefined ? desc.writable : desc.set !== undefined; +} +function hideStackFrames(wrappedFunction) { + const hidden = nodeInternalPrefix + wrappedFunction.name; + Object.defineProperty(wrappedFunction, 'name', { + value: hidden + }); + return wrappedFunction; +} +const captureLargerStackTrace = hideStackFrames(function (error) { + const stackTraceLimitIsWritable = isErrorStackTraceLimitWritable(); + if (stackTraceLimitIsWritable) { + userStackTraceLimit = Error.stackTraceLimit; + Error.stackTraceLimit = Number.POSITIVE_INFINITY; + } + Error.captureStackTrace(error); + if (stackTraceLimitIsWritable) Error.stackTraceLimit = userStackTraceLimit; + return error; +}); +function getMessage(key, parameters, self) { + const message = messages.get(key); + _assert()(message !== undefined, 'expected `message` to be found'); + if (typeof message === 'function') { + _assert()(message.length <= parameters.length, `Code: ${key}; The provided arguments length (${parameters.length}) does not ` + `match the required ones (${message.length}).`); + return Reflect.apply(message, self, parameters); + } + const regex = /%[dfijoOs]/g; + let expectedLength = 0; + while (regex.exec(message) !== null) expectedLength++; + _assert()(expectedLength === parameters.length, `Code: ${key}; The provided arguments length (${parameters.length}) does not ` + `match the required ones (${expectedLength}).`); + if (parameters.length === 0) return message; + parameters.unshift(message); + return Reflect.apply(_util().format, null, parameters); +} +function determineSpecificType(value) { + if (value === null || value === undefined) { + return String(value); + } + if (typeof value === 'function' && value.name) { + return `function ${value.name}`; + } + if (typeof value === 'object') { + if (value.constructor && value.constructor.name) { + return `an instance of ${value.constructor.name}`; + } + return `${(0, _util().inspect)(value, { + depth: -1 + })}`; + } + let inspected = (0, _util().inspect)(value, { + colors: false + }); + if (inspected.length > 28) { + inspected = `${inspected.slice(0, 25)}...`; + } + return `type ${typeof value} (${inspected})`; +} +const hasOwnProperty$1 = {}.hasOwnProperty; +const { + ERR_INVALID_PACKAGE_CONFIG: ERR_INVALID_PACKAGE_CONFIG$1 +} = codes; +const cache = new Map(); +function read(jsonPath, { + base, + specifier +}) { + const existing = cache.get(jsonPath); + if (existing) { + return existing; + } + let string; + try { + string = _fs().default.readFileSync(_path().toNamespacedPath(jsonPath), 'utf8'); + } catch (error) { + const exception = error; + if (exception.code !== 'ENOENT') { + throw exception; + } + } + const result = { + exists: false, + pjsonPath: jsonPath, + main: undefined, + name: undefined, + type: 'none', + exports: undefined, + imports: undefined + }; + if (string !== undefined) { + let parsed; + try { + parsed = JSON.parse(string); + } catch (error_) { + const cause = error_; + const error = new ERR_INVALID_PACKAGE_CONFIG$1(jsonPath, (base ? `"${specifier}" from ` : '') + (0, _url().fileURLToPath)(base || specifier), cause.message); + error.cause = cause; + throw error; + } + result.exists = true; + if (hasOwnProperty$1.call(parsed, 'name') && typeof parsed.name === 'string') { + result.name = parsed.name; + } + if (hasOwnProperty$1.call(parsed, 'main') && typeof parsed.main === 'string') { + result.main = parsed.main; + } + if (hasOwnProperty$1.call(parsed, 'exports')) { + result.exports = parsed.exports; + } + if (hasOwnProperty$1.call(parsed, 'imports')) { + result.imports = parsed.imports; + } + if (hasOwnProperty$1.call(parsed, 'type') && (parsed.type === 'commonjs' || parsed.type === 'module')) { + result.type = parsed.type; + } + } + cache.set(jsonPath, result); + return result; +} +function getPackageScopeConfig(resolved) { + let packageJSONUrl = new URL('package.json', resolved); + while (true) { + const packageJSONPath = packageJSONUrl.pathname; + if (packageJSONPath.endsWith('node_modules/package.json')) { + break; + } + const packageConfig = read((0, _url().fileURLToPath)(packageJSONUrl), { + specifier: resolved + }); + if (packageConfig.exists) { + return packageConfig; + } + const lastPackageJSONUrl = packageJSONUrl; + packageJSONUrl = new URL('../package.json', packageJSONUrl); + if (packageJSONUrl.pathname === lastPackageJSONUrl.pathname) { + break; + } + } + const packageJSONPath = (0, _url().fileURLToPath)(packageJSONUrl); + return { + pjsonPath: packageJSONPath, + exists: false, + type: 'none' + }; +} +function getPackageType(url) { + return getPackageScopeConfig(url).type; +} +const { + ERR_UNKNOWN_FILE_EXTENSION +} = codes; +const hasOwnProperty = {}.hasOwnProperty; +const extensionFormatMap = { + __proto__: null, + '.cjs': 'commonjs', + '.js': 'module', + '.json': 'json', + '.mjs': 'module' +}; +function mimeToFormat(mime) { + if (mime && /\s*(text|application)\/javascript\s*(;\s*charset=utf-?8\s*)?/i.test(mime)) return 'module'; + if (mime === 'application/json') return 'json'; + return null; +} +const protocolHandlers = { + __proto__: null, + 'data:': getDataProtocolModuleFormat, + 'file:': getFileProtocolModuleFormat, + 'http:': getHttpProtocolModuleFormat, + 'https:': getHttpProtocolModuleFormat, + 'node:'() { + return 'builtin'; + } +}; +function getDataProtocolModuleFormat(parsed) { + const { + 1: mime + } = /^([^/]+\/[^;,]+)[^,]*?(;base64)?,/.exec(parsed.pathname) || [null, null, null]; + return mimeToFormat(mime); +} +function extname(url) { + const pathname = url.pathname; + let index = pathname.length; + while (index--) { + const code = pathname.codePointAt(index); + if (code === 47) { + return ''; + } + if (code === 46) { + return pathname.codePointAt(index - 1) === 47 ? '' : pathname.slice(index); + } + } + return ''; +} +function getFileProtocolModuleFormat(url, _context, ignoreErrors) { + const value = extname(url); + if (value === '.js') { + const packageType = getPackageType(url); + if (packageType !== 'none') { + return packageType; + } + return 'commonjs'; + } + if (value === '') { + const packageType = getPackageType(url); + if (packageType === 'none' || packageType === 'commonjs') { + return 'commonjs'; + } + return 'module'; + } + const format = extensionFormatMap[value]; + if (format) return format; + if (ignoreErrors) { + return undefined; + } + const filepath = (0, _url().fileURLToPath)(url); + throw new ERR_UNKNOWN_FILE_EXTENSION(value, filepath); +} +function getHttpProtocolModuleFormat() {} +function defaultGetFormatWithoutErrors(url, context) { + const protocol = url.protocol; + if (!hasOwnProperty.call(protocolHandlers, protocol)) { + return null; + } + return protocolHandlers[protocol](url, context, true) || null; +} +const { + ERR_INVALID_ARG_VALUE +} = codes; +const DEFAULT_CONDITIONS = Object.freeze(['node', 'import']); +const DEFAULT_CONDITIONS_SET = new Set(DEFAULT_CONDITIONS); +function getDefaultConditions() { + return DEFAULT_CONDITIONS; +} +function getDefaultConditionsSet() { + return DEFAULT_CONDITIONS_SET; +} +function getConditionsSet(conditions) { + if (conditions !== undefined && conditions !== getDefaultConditions()) { + if (!Array.isArray(conditions)) { + throw new ERR_INVALID_ARG_VALUE('conditions', conditions, 'expected an array'); + } + return new Set(conditions); + } + return getDefaultConditionsSet(); +} +const RegExpPrototypeSymbolReplace = RegExp.prototype[Symbol.replace]; +const { + ERR_NETWORK_IMPORT_DISALLOWED, + ERR_INVALID_MODULE_SPECIFIER, + ERR_INVALID_PACKAGE_CONFIG, + ERR_INVALID_PACKAGE_TARGET, + ERR_MODULE_NOT_FOUND, + ERR_PACKAGE_IMPORT_NOT_DEFINED, + ERR_PACKAGE_PATH_NOT_EXPORTED, + ERR_UNSUPPORTED_DIR_IMPORT, + ERR_UNSUPPORTED_RESOLVE_REQUEST +} = codes; +const own = {}.hasOwnProperty; +const invalidSegmentRegEx = /(^|\\|\/)((\.|%2e)(\.|%2e)?|(n|%6e|%4e)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(_|%5f)(m|%6d|%4d)(o|%6f|%4f)(d|%64|%44)(u|%75|%55)(l|%6c|%4c)(e|%65|%45)(s|%73|%53))?(\\|\/|$)/i; +const deprecatedInvalidSegmentRegEx = /(^|\\|\/)((\.|%2e)(\.|%2e)?|(n|%6e|%4e)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(_|%5f)(m|%6d|%4d)(o|%6f|%4f)(d|%64|%44)(u|%75|%55)(l|%6c|%4c)(e|%65|%45)(s|%73|%53))(\\|\/|$)/i; +const invalidPackageNameRegEx = /^\.|%|\\/; +const patternRegEx = /\*/g; +const encodedSeparatorRegEx = /%2f|%5c/i; +const emittedPackageWarnings = new Set(); +const doubleSlashRegEx = /[/\\]{2}/; +function emitInvalidSegmentDeprecation(target, request, match, packageJsonUrl, internal, base, isTarget) { + if (_process().noDeprecation) { + return; + } + const pjsonPath = (0, _url().fileURLToPath)(packageJsonUrl); + const double = doubleSlashRegEx.exec(isTarget ? target : request) !== null; + _process().emitWarning(`Use of deprecated ${double ? 'double slash' : 'leading or trailing slash matching'} resolving "${target}" for module ` + `request "${request}" ${request === match ? '' : `matched to "${match}" `}in the "${internal ? 'imports' : 'exports'}" field module resolution of the package at ${pjsonPath}${base ? ` imported from ${(0, _url().fileURLToPath)(base)}` : ''}.`, 'DeprecationWarning', 'DEP0166'); +} +function emitLegacyIndexDeprecation(url, packageJsonUrl, base, main) { + if (_process().noDeprecation) { + return; + } + const format = defaultGetFormatWithoutErrors(url, { + parentURL: base.href + }); + if (format !== 'module') return; + const urlPath = (0, _url().fileURLToPath)(url.href); + const packagePath = (0, _url().fileURLToPath)(new (_url().URL)('.', packageJsonUrl)); + const basePath = (0, _url().fileURLToPath)(base); + if (!main) { + _process().emitWarning(`No "main" or "exports" field defined in the package.json for ${packagePath} resolving the main entry point "${urlPath.slice(packagePath.length)}", imported from ${basePath}.\nDefault "index" lookups for the main are deprecated for ES modules.`, 'DeprecationWarning', 'DEP0151'); + } else if (_path().resolve(packagePath, main) !== urlPath) { + _process().emitWarning(`Package ${packagePath} has a "main" field set to "${main}", ` + `excluding the full filename and extension to the resolved file at "${urlPath.slice(packagePath.length)}", imported from ${basePath}.\n Automatic extension resolution of the "main" field is ` + 'deprecated for ES modules.', 'DeprecationWarning', 'DEP0151'); + } +} +function tryStatSync(path) { + try { + return (0, _fs().statSync)(path); + } catch (_unused2) {} +} +function fileExists(url) { + const stats = (0, _fs().statSync)(url, { + throwIfNoEntry: false + }); + const isFile = stats ? stats.isFile() : undefined; + return isFile === null || isFile === undefined ? false : isFile; +} +function legacyMainResolve(packageJsonUrl, packageConfig, base) { + let guess; + if (packageConfig.main !== undefined) { + guess = new (_url().URL)(packageConfig.main, packageJsonUrl); + if (fileExists(guess)) return guess; + const tries = [`./${packageConfig.main}.js`, `./${packageConfig.main}.json`, `./${packageConfig.main}.node`, `./${packageConfig.main}/index.js`, `./${packageConfig.main}/index.json`, `./${packageConfig.main}/index.node`]; + let i = -1; + while (++i < tries.length) { + guess = new (_url().URL)(tries[i], packageJsonUrl); + if (fileExists(guess)) break; + guess = undefined; + } + if (guess) { + emitLegacyIndexDeprecation(guess, packageJsonUrl, base, packageConfig.main); + return guess; + } + } + const tries = ['./index.js', './index.json', './index.node']; + let i = -1; + while (++i < tries.length) { + guess = new (_url().URL)(tries[i], packageJsonUrl); + if (fileExists(guess)) break; + guess = undefined; + } + if (guess) { + emitLegacyIndexDeprecation(guess, packageJsonUrl, base, packageConfig.main); + return guess; + } + throw new ERR_MODULE_NOT_FOUND((0, _url().fileURLToPath)(new (_url().URL)('.', packageJsonUrl)), (0, _url().fileURLToPath)(base)); +} +function finalizeResolution(resolved, base, preserveSymlinks) { + if (encodedSeparatorRegEx.exec(resolved.pathname) !== null) { + throw new ERR_INVALID_MODULE_SPECIFIER(resolved.pathname, 'must not include encoded "/" or "\\" characters', (0, _url().fileURLToPath)(base)); + } + let filePath; + try { + filePath = (0, _url().fileURLToPath)(resolved); + } catch (error) { + const cause = error; + Object.defineProperty(cause, 'input', { + value: String(resolved) + }); + Object.defineProperty(cause, 'module', { + value: String(base) + }); + throw cause; + } + const stats = tryStatSync(filePath.endsWith('/') ? filePath.slice(-1) : filePath); + if (stats && stats.isDirectory()) { + const error = new ERR_UNSUPPORTED_DIR_IMPORT(filePath, (0, _url().fileURLToPath)(base)); + error.url = String(resolved); + throw error; + } + if (!stats || !stats.isFile()) { + const error = new ERR_MODULE_NOT_FOUND(filePath || resolved.pathname, base && (0, _url().fileURLToPath)(base), true); + error.url = String(resolved); + throw error; + } + if (!preserveSymlinks) { + const real = (0, _fs().realpathSync)(filePath); + const { + search, + hash + } = resolved; + resolved = (0, _url().pathToFileURL)(real + (filePath.endsWith(_path().sep) ? '/' : '')); + resolved.search = search; + resolved.hash = hash; + } + return resolved; +} +function importNotDefined(specifier, packageJsonUrl, base) { + return new ERR_PACKAGE_IMPORT_NOT_DEFINED(specifier, packageJsonUrl && (0, _url().fileURLToPath)(new (_url().URL)('.', packageJsonUrl)), (0, _url().fileURLToPath)(base)); +} +function exportsNotFound(subpath, packageJsonUrl, base) { + return new ERR_PACKAGE_PATH_NOT_EXPORTED((0, _url().fileURLToPath)(new (_url().URL)('.', packageJsonUrl)), subpath, base && (0, _url().fileURLToPath)(base)); +} +function throwInvalidSubpath(request, match, packageJsonUrl, internal, base) { + const reason = `request is not a valid match in pattern "${match}" for the "${internal ? 'imports' : 'exports'}" resolution of ${(0, _url().fileURLToPath)(packageJsonUrl)}`; + throw new ERR_INVALID_MODULE_SPECIFIER(request, reason, base && (0, _url().fileURLToPath)(base)); +} +function invalidPackageTarget(subpath, target, packageJsonUrl, internal, base) { + target = typeof target === 'object' && target !== null ? JSON.stringify(target, null, '') : `${target}`; + return new ERR_INVALID_PACKAGE_TARGET((0, _url().fileURLToPath)(new (_url().URL)('.', packageJsonUrl)), subpath, target, internal, base && (0, _url().fileURLToPath)(base)); +} +function resolvePackageTargetString(target, subpath, match, packageJsonUrl, base, pattern, internal, isPathMap, conditions) { + if (subpath !== '' && !pattern && target[target.length - 1] !== '/') throw invalidPackageTarget(match, target, packageJsonUrl, internal, base); + if (!target.startsWith('./')) { + if (internal && !target.startsWith('../') && !target.startsWith('/')) { + let isURL = false; + try { + new (_url().URL)(target); + isURL = true; + } catch (_unused3) {} + if (!isURL) { + const exportTarget = pattern ? RegExpPrototypeSymbolReplace.call(patternRegEx, target, () => subpath) : target + subpath; + return packageResolve(exportTarget, packageJsonUrl, conditions); + } + } + throw invalidPackageTarget(match, target, packageJsonUrl, internal, base); + } + if (invalidSegmentRegEx.exec(target.slice(2)) !== null) { + if (deprecatedInvalidSegmentRegEx.exec(target.slice(2)) === null) { + if (!isPathMap) { + const request = pattern ? match.replace('*', () => subpath) : match + subpath; + const resolvedTarget = pattern ? RegExpPrototypeSymbolReplace.call(patternRegEx, target, () => subpath) : target; + emitInvalidSegmentDeprecation(resolvedTarget, request, match, packageJsonUrl, internal, base, true); + } + } else { + throw invalidPackageTarget(match, target, packageJsonUrl, internal, base); + } + } + const resolved = new (_url().URL)(target, packageJsonUrl); + const resolvedPath = resolved.pathname; + const packagePath = new (_url().URL)('.', packageJsonUrl).pathname; + if (!resolvedPath.startsWith(packagePath)) throw invalidPackageTarget(match, target, packageJsonUrl, internal, base); + if (subpath === '') return resolved; + if (invalidSegmentRegEx.exec(subpath) !== null) { + const request = pattern ? match.replace('*', () => subpath) : match + subpath; + if (deprecatedInvalidSegmentRegEx.exec(subpath) === null) { + if (!isPathMap) { + const resolvedTarget = pattern ? RegExpPrototypeSymbolReplace.call(patternRegEx, target, () => subpath) : target; + emitInvalidSegmentDeprecation(resolvedTarget, request, match, packageJsonUrl, internal, base, false); + } + } else { + throwInvalidSubpath(request, match, packageJsonUrl, internal, base); + } + } + if (pattern) { + return new (_url().URL)(RegExpPrototypeSymbolReplace.call(patternRegEx, resolved.href, () => subpath)); + } + return new (_url().URL)(subpath, resolved); +} +function isArrayIndex(key) { + const keyNumber = Number(key); + if (`${keyNumber}` !== key) return false; + return keyNumber >= 0 && keyNumber < 0xffffffff; +} +function resolvePackageTarget(packageJsonUrl, target, subpath, packageSubpath, base, pattern, internal, isPathMap, conditions) { + if (typeof target === 'string') { + return resolvePackageTargetString(target, subpath, packageSubpath, packageJsonUrl, base, pattern, internal, isPathMap, conditions); + } + if (Array.isArray(target)) { + const targetList = target; + if (targetList.length === 0) return null; + let lastException; + let i = -1; + while (++i < targetList.length) { + const targetItem = targetList[i]; + let resolveResult; + try { + resolveResult = resolvePackageTarget(packageJsonUrl, targetItem, subpath, packageSubpath, base, pattern, internal, isPathMap, conditions); + } catch (error) { + const exception = error; + lastException = exception; + if (exception.code === 'ERR_INVALID_PACKAGE_TARGET') continue; + throw error; + } + if (resolveResult === undefined) continue; + if (resolveResult === null) { + lastException = null; + continue; + } + return resolveResult; + } + if (lastException === undefined || lastException === null) { + return null; + } + throw lastException; + } + if (typeof target === 'object' && target !== null) { + const keys = Object.getOwnPropertyNames(target); + let i = -1; + while (++i < keys.length) { + const key = keys[i]; + if (isArrayIndex(key)) { + throw new ERR_INVALID_PACKAGE_CONFIG((0, _url().fileURLToPath)(packageJsonUrl), base, '"exports" cannot contain numeric property keys.'); + } + } + i = -1; + while (++i < keys.length) { + const key = keys[i]; + if (key === 'default' || conditions && conditions.has(key)) { + const conditionalTarget = target[key]; + const resolveResult = resolvePackageTarget(packageJsonUrl, conditionalTarget, subpath, packageSubpath, base, pattern, internal, isPathMap, conditions); + if (resolveResult === undefined) continue; + return resolveResult; + } + } + return null; + } + if (target === null) { + return null; + } + throw invalidPackageTarget(packageSubpath, target, packageJsonUrl, internal, base); +} +function isConditionalExportsMainSugar(exports, packageJsonUrl, base) { + if (typeof exports === 'string' || Array.isArray(exports)) return true; + if (typeof exports !== 'object' || exports === null) return false; + const keys = Object.getOwnPropertyNames(exports); + let isConditionalSugar = false; + let i = 0; + let keyIndex = -1; + while (++keyIndex < keys.length) { + const key = keys[keyIndex]; + const currentIsConditionalSugar = key === '' || key[0] !== '.'; + if (i++ === 0) { + isConditionalSugar = currentIsConditionalSugar; + } else if (isConditionalSugar !== currentIsConditionalSugar) { + throw new ERR_INVALID_PACKAGE_CONFIG((0, _url().fileURLToPath)(packageJsonUrl), base, '"exports" cannot contain some keys starting with \'.\' and some not.' + ' The exports object must either be an object of package subpath keys' + ' or an object of main entry condition name keys only.'); + } + } + return isConditionalSugar; +} +function emitTrailingSlashPatternDeprecation(match, pjsonUrl, base) { + if (_process().noDeprecation) { + return; + } + const pjsonPath = (0, _url().fileURLToPath)(pjsonUrl); + if (emittedPackageWarnings.has(pjsonPath + '|' + match)) return; + emittedPackageWarnings.add(pjsonPath + '|' + match); + _process().emitWarning(`Use of deprecated trailing slash pattern mapping "${match}" in the ` + `"exports" field module resolution of the package at ${pjsonPath}${base ? ` imported from ${(0, _url().fileURLToPath)(base)}` : ''}. Mapping specifiers ending in "/" is no longer supported.`, 'DeprecationWarning', 'DEP0155'); +} +function packageExportsResolve(packageJsonUrl, packageSubpath, packageConfig, base, conditions) { + let exports = packageConfig.exports; + if (isConditionalExportsMainSugar(exports, packageJsonUrl, base)) { + exports = { + '.': exports + }; + } + if (own.call(exports, packageSubpath) && !packageSubpath.includes('*') && !packageSubpath.endsWith('/')) { + const target = exports[packageSubpath]; + const resolveResult = resolvePackageTarget(packageJsonUrl, target, '', packageSubpath, base, false, false, false, conditions); + if (resolveResult === null || resolveResult === undefined) { + throw exportsNotFound(packageSubpath, packageJsonUrl, base); + } + return resolveResult; + } + let bestMatch = ''; + let bestMatchSubpath = ''; + const keys = Object.getOwnPropertyNames(exports); + let i = -1; + while (++i < keys.length) { + const key = keys[i]; + const patternIndex = key.indexOf('*'); + if (patternIndex !== -1 && packageSubpath.startsWith(key.slice(0, patternIndex))) { + if (packageSubpath.endsWith('/')) { + emitTrailingSlashPatternDeprecation(packageSubpath, packageJsonUrl, base); + } + const patternTrailer = key.slice(patternIndex + 1); + if (packageSubpath.length >= key.length && packageSubpath.endsWith(patternTrailer) && patternKeyCompare(bestMatch, key) === 1 && key.lastIndexOf('*') === patternIndex) { + bestMatch = key; + bestMatchSubpath = packageSubpath.slice(patternIndex, packageSubpath.length - patternTrailer.length); + } + } + } + if (bestMatch) { + const target = exports[bestMatch]; + const resolveResult = resolvePackageTarget(packageJsonUrl, target, bestMatchSubpath, bestMatch, base, true, false, packageSubpath.endsWith('/'), conditions); + if (resolveResult === null || resolveResult === undefined) { + throw exportsNotFound(packageSubpath, packageJsonUrl, base); + } + return resolveResult; + } + throw exportsNotFound(packageSubpath, packageJsonUrl, base); +} +function patternKeyCompare(a, b) { + const aPatternIndex = a.indexOf('*'); + const bPatternIndex = b.indexOf('*'); + const baseLengthA = aPatternIndex === -1 ? a.length : aPatternIndex + 1; + const baseLengthB = bPatternIndex === -1 ? b.length : bPatternIndex + 1; + if (baseLengthA > baseLengthB) return -1; + if (baseLengthB > baseLengthA) return 1; + if (aPatternIndex === -1) return 1; + if (bPatternIndex === -1) return -1; + if (a.length > b.length) return -1; + if (b.length > a.length) return 1; + return 0; +} +function packageImportsResolve(name, base, conditions) { + if (name === '#' || name.startsWith('#/') || name.endsWith('/')) { + const reason = 'is not a valid internal imports specifier name'; + throw new ERR_INVALID_MODULE_SPECIFIER(name, reason, (0, _url().fileURLToPath)(base)); + } + let packageJsonUrl; + const packageConfig = getPackageScopeConfig(base); + if (packageConfig.exists) { + packageJsonUrl = (0, _url().pathToFileURL)(packageConfig.pjsonPath); + const imports = packageConfig.imports; + if (imports) { + if (own.call(imports, name) && !name.includes('*')) { + const resolveResult = resolvePackageTarget(packageJsonUrl, imports[name], '', name, base, false, true, false, conditions); + if (resolveResult !== null && resolveResult !== undefined) { + return resolveResult; + } + } else { + let bestMatch = ''; + let bestMatchSubpath = ''; + const keys = Object.getOwnPropertyNames(imports); + let i = -1; + while (++i < keys.length) { + const key = keys[i]; + const patternIndex = key.indexOf('*'); + if (patternIndex !== -1 && name.startsWith(key.slice(0, -1))) { + const patternTrailer = key.slice(patternIndex + 1); + if (name.length >= key.length && name.endsWith(patternTrailer) && patternKeyCompare(bestMatch, key) === 1 && key.lastIndexOf('*') === patternIndex) { + bestMatch = key; + bestMatchSubpath = name.slice(patternIndex, name.length - patternTrailer.length); + } + } + } + if (bestMatch) { + const target = imports[bestMatch]; + const resolveResult = resolvePackageTarget(packageJsonUrl, target, bestMatchSubpath, bestMatch, base, true, true, false, conditions); + if (resolveResult !== null && resolveResult !== undefined) { + return resolveResult; + } + } + } + } + } + throw importNotDefined(name, packageJsonUrl, base); +} +function parsePackageName(specifier, base) { + let separatorIndex = specifier.indexOf('/'); + let validPackageName = true; + let isScoped = false; + if (specifier[0] === '@') { + isScoped = true; + if (separatorIndex === -1 || specifier.length === 0) { + validPackageName = false; + } else { + separatorIndex = specifier.indexOf('/', separatorIndex + 1); + } + } + const packageName = separatorIndex === -1 ? specifier : specifier.slice(0, separatorIndex); + if (invalidPackageNameRegEx.exec(packageName) !== null) { + validPackageName = false; + } + if (!validPackageName) { + throw new ERR_INVALID_MODULE_SPECIFIER(specifier, 'is not a valid package name', (0, _url().fileURLToPath)(base)); + } + const packageSubpath = '.' + (separatorIndex === -1 ? '' : specifier.slice(separatorIndex)); + return { + packageName, + packageSubpath, + isScoped + }; +} +function packageResolve(specifier, base, conditions) { + if (_module().builtinModules.includes(specifier)) { + return new (_url().URL)('node:' + specifier); + } + const { + packageName, + packageSubpath, + isScoped + } = parsePackageName(specifier, base); + const packageConfig = getPackageScopeConfig(base); + if (packageConfig.exists) { + const packageJsonUrl = (0, _url().pathToFileURL)(packageConfig.pjsonPath); + if (packageConfig.name === packageName && packageConfig.exports !== undefined && packageConfig.exports !== null) { + return packageExportsResolve(packageJsonUrl, packageSubpath, packageConfig, base, conditions); + } + } + let packageJsonUrl = new (_url().URL)('./node_modules/' + packageName + '/package.json', base); + let packageJsonPath = (0, _url().fileURLToPath)(packageJsonUrl); + let lastPath; + do { + const stat = tryStatSync(packageJsonPath.slice(0, -13)); + if (!stat || !stat.isDirectory()) { + lastPath = packageJsonPath; + packageJsonUrl = new (_url().URL)((isScoped ? '../../../../node_modules/' : '../../../node_modules/') + packageName + '/package.json', packageJsonUrl); + packageJsonPath = (0, _url().fileURLToPath)(packageJsonUrl); + continue; + } + const packageConfig = read(packageJsonPath, { + base, + specifier + }); + if (packageConfig.exports !== undefined && packageConfig.exports !== null) { + return packageExportsResolve(packageJsonUrl, packageSubpath, packageConfig, base, conditions); + } + if (packageSubpath === '.') { + return legacyMainResolve(packageJsonUrl, packageConfig, base); + } + return new (_url().URL)(packageSubpath, packageJsonUrl); + } while (packageJsonPath.length !== lastPath.length); + throw new ERR_MODULE_NOT_FOUND(packageName, (0, _url().fileURLToPath)(base), false); +} +function isRelativeSpecifier(specifier) { + if (specifier[0] === '.') { + if (specifier.length === 1 || specifier[1] === '/') return true; + if (specifier[1] === '.' && (specifier.length === 2 || specifier[2] === '/')) { + return true; + } + } + return false; +} +function shouldBeTreatedAsRelativeOrAbsolutePath(specifier) { + if (specifier === '') return false; + if (specifier[0] === '/') return true; + return isRelativeSpecifier(specifier); +} +function moduleResolve(specifier, base, conditions, preserveSymlinks) { + const protocol = base.protocol; + const isData = protocol === 'data:'; + const isRemote = isData || protocol === 'http:' || protocol === 'https:'; + let resolved; + if (shouldBeTreatedAsRelativeOrAbsolutePath(specifier)) { + try { + resolved = new (_url().URL)(specifier, base); + } catch (error_) { + const error = new ERR_UNSUPPORTED_RESOLVE_REQUEST(specifier, base); + error.cause = error_; + throw error; + } + } else if (protocol === 'file:' && specifier[0] === '#') { + resolved = packageImportsResolve(specifier, base, conditions); + } else { + try { + resolved = new (_url().URL)(specifier); + } catch (error_) { + if (isRemote && !_module().builtinModules.includes(specifier)) { + const error = new ERR_UNSUPPORTED_RESOLVE_REQUEST(specifier, base); + error.cause = error_; + throw error; + } + resolved = packageResolve(specifier, base, conditions); + } + } + _assert()(resolved !== undefined, 'expected to be defined'); + if (resolved.protocol !== 'file:') { + return resolved; + } + return finalizeResolution(resolved, base, preserveSymlinks); +} +function checkIfDisallowedImport(specifier, parsed, parsedParentURL) { + if (parsedParentURL) { + const parentProtocol = parsedParentURL.protocol; + if (parentProtocol === 'http:' || parentProtocol === 'https:') { + if (shouldBeTreatedAsRelativeOrAbsolutePath(specifier)) { + const parsedProtocol = parsed == null ? void 0 : parsed.protocol; + if (parsedProtocol && parsedProtocol !== 'https:' && parsedProtocol !== 'http:') { + throw new ERR_NETWORK_IMPORT_DISALLOWED(specifier, parsedParentURL, 'remote imports cannot import from a local location.'); + } + return { + url: (parsed == null ? void 0 : parsed.href) || '' + }; + } + if (_module().builtinModules.includes(specifier)) { + throw new ERR_NETWORK_IMPORT_DISALLOWED(specifier, parsedParentURL, 'remote imports cannot import from a local location.'); + } + throw new ERR_NETWORK_IMPORT_DISALLOWED(specifier, parsedParentURL, 'only relative and absolute specifiers are supported.'); + } + } +} +function isURL(self) { + return Boolean(self && typeof self === 'object' && 'href' in self && typeof self.href === 'string' && 'protocol' in self && typeof self.protocol === 'string' && self.href && self.protocol); +} +function throwIfInvalidParentURL(parentURL) { + if (parentURL === undefined) { + return; + } + if (typeof parentURL !== 'string' && !isURL(parentURL)) { + throw new codes.ERR_INVALID_ARG_TYPE('parentURL', ['string', 'URL'], parentURL); + } +} +function defaultResolve(specifier, context = {}) { + const { + parentURL + } = context; + _assert()(parentURL !== undefined, 'expected `parentURL` to be defined'); + throwIfInvalidParentURL(parentURL); + let parsedParentURL; + if (parentURL) { + try { + parsedParentURL = new (_url().URL)(parentURL); + } catch (_unused4) {} + } + let parsed; + let protocol; + try { + parsed = shouldBeTreatedAsRelativeOrAbsolutePath(specifier) ? new (_url().URL)(specifier, parsedParentURL) : new (_url().URL)(specifier); + protocol = parsed.protocol; + if (protocol === 'data:') { + return { + url: parsed.href, + format: null + }; + } + } catch (_unused5) {} + const maybeReturn = checkIfDisallowedImport(specifier, parsed, parsedParentURL); + if (maybeReturn) return maybeReturn; + if (protocol === undefined && parsed) { + protocol = parsed.protocol; + } + if (protocol === 'node:') { + return { + url: specifier + }; + } + if (parsed && parsed.protocol === 'node:') return { + url: specifier + }; + const conditions = getConditionsSet(context.conditions); + const url = moduleResolve(specifier, new (_url().URL)(parentURL), conditions, false); + return { + url: url.href, + format: defaultGetFormatWithoutErrors(url, { + parentURL + }) + }; +} +function resolve(specifier, parent) { + if (!parent) { + throw new Error('Please pass `parent`: `import-meta-resolve` cannot ponyfill that'); + } + try { + return defaultResolve(specifier, { + parentURL: parent + }).url; + } catch (error) { + const exception = error; + if ((exception.code === 'ERR_UNSUPPORTED_DIR_IMPORT' || exception.code === 'ERR_MODULE_NOT_FOUND') && typeof exception.url === 'string') { + return exception.url; + } + throw error; + } +} +0 && 0; + +//# sourceMappingURL=import-meta-resolve.js.map diff --git a/server/api/node_modules/@babel/core/lib/vendor/import-meta-resolve.js.map b/server/api/node_modules/@babel/core/lib/vendor/import-meta-resolve.js.map new file mode 100644 index 0000000..d9e5b42 --- /dev/null +++ b/server/api/node_modules/@babel/core/lib/vendor/import-meta-resolve.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_assert","data","require","_fs","_interopRequireWildcard","_process","_url","_path","_module","_v","_util","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","own$1","classRegExp","kTypes","Set","codes","formatList","array","type","length","join","slice","messages","Map","nodeInternalPrefix","userStackTraceLimit","ERR_INVALID_ARG_TYPE","createError","name","expected","actual","assert","Array","isArray","message","endsWith","includes","types","instances","other","value","push","toLowerCase","exec","pos","indexOf","determineSpecificType","TypeError","ERR_INVALID_MODULE_SPECIFIER","request","reason","base","undefined","ERR_INVALID_PACKAGE_CONFIG","path","Error","ERR_INVALID_PACKAGE_TARGET","packagePath","key","target","isImport","relatedError","startsWith","JSON","stringify","ERR_MODULE_NOT_FOUND","exactUrl","ERR_NETWORK_IMPORT_DISALLOWED","ERR_PACKAGE_IMPORT_NOT_DEFINED","specifier","ERR_PACKAGE_PATH_NOT_EXPORTED","subpath","ERR_UNSUPPORTED_DIR_IMPORT","ERR_UNSUPPORTED_RESOLVE_REQUEST","ERR_UNKNOWN_FILE_EXTENSION","extension","ERR_INVALID_ARG_VALUE","inspected","inspect","sym","constructor","makeNodeErrorWithCode","Base","NodeError","parameters","limit","stackTraceLimit","isErrorStackTraceLimitWritable","error","getMessage","defineProperties","enumerable","writable","configurable","toString","captureLargerStackTrace","code","v8","startupSnapshot","isBuildingSnapshot","_unused","desc","isExtensible","hideStackFrames","wrappedFunction","hidden","stackTraceLimitIsWritable","Number","POSITIVE_INFINITY","captureStackTrace","self","Reflect","apply","regex","expectedLength","unshift","format","String","depth","colors","hasOwnProperty$1","ERR_INVALID_PACKAGE_CONFIG$1","cache","read","jsonPath","existing","string","fs","readFileSync","toNamespacedPath","exception","result","exists","pjsonPath","main","exports","imports","parsed","parse","error_","cause","fileURLToPath","getPackageScopeConfig","resolved","packageJSONUrl","URL","packageJSONPath","pathname","packageConfig","lastPackageJSONUrl","getPackageType","url","extensionFormatMap","mimeToFormat","mime","test","protocolHandlers","getDataProtocolModuleFormat","getFileProtocolModuleFormat","getHttpProtocolModuleFormat","node:","extname","index","codePointAt","_context","ignoreErrors","packageType","filepath","defaultGetFormatWithoutErrors","context","protocol","DEFAULT_CONDITIONS","freeze","DEFAULT_CONDITIONS_SET","getDefaultConditions","getDefaultConditionsSet","getConditionsSet","conditions","RegExpPrototypeSymbolReplace","RegExp","prototype","Symbol","replace","own","invalidSegmentRegEx","deprecatedInvalidSegmentRegEx","invalidPackageNameRegEx","patternRegEx","encodedSeparatorRegEx","emittedPackageWarnings","doubleSlashRegEx","emitInvalidSegmentDeprecation","match","packageJsonUrl","internal","isTarget","process","noDeprecation","double","emitWarning","emitLegacyIndexDeprecation","parentURL","href","urlPath","URL$1","basePath","resolve","tryStatSync","statSync","_unused2","fileExists","stats","throwIfNoEntry","isFile","legacyMainResolve","guess","tries","finalizeResolution","preserveSymlinks","filePath","isDirectory","real","realpathSync","search","hash","pathToFileURL","sep","importNotDefined","exportsNotFound","throwInvalidSubpath","invalidPackageTarget","resolvePackageTargetString","pattern","isPathMap","isURL","_unused3","exportTarget","packageResolve","resolvedTarget","resolvedPath","isArrayIndex","keyNumber","resolvePackageTarget","packageSubpath","targetList","lastException","targetItem","resolveResult","keys","getOwnPropertyNames","conditionalTarget","isConditionalExportsMainSugar","isConditionalSugar","keyIndex","currentIsConditionalSugar","emitTrailingSlashPatternDeprecation","pjsonUrl","add","packageExportsResolve","bestMatch","bestMatchSubpath","patternIndex","patternTrailer","patternKeyCompare","lastIndexOf","a","b","aPatternIndex","bPatternIndex","baseLengthA","baseLengthB","packageImportsResolve","parsePackageName","separatorIndex","validPackageName","isScoped","packageName","builtinModules","packageJsonPath","lastPath","stat","isRelativeSpecifier","shouldBeTreatedAsRelativeOrAbsolutePath","moduleResolve","isData","isRemote","checkIfDisallowedImport","parsedParentURL","parentProtocol","parsedProtocol","Boolean","throwIfInvalidParentURL","defaultResolve","_unused4","_unused5","maybeReturn","parent"],"sources":["../../src/vendor/import-meta-resolve.js"],"sourcesContent":["\n/****************************************************************************\\\n * NOTE FROM BABEL AUTHORS *\n * This file is inlined from https://github.com/wooorm/import-meta-resolve, *\n * because we need to compile it to CommonJS. *\n\\****************************************************************************/\n\n/*\n(The MIT License)\n\nCopyright (c) 2021 Titus Wormer \n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n'Software'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n---\n\nThis is a derivative work based on:\n.\nWhich is licensed:\n\n\"\"\"\nCopyright Node.js contributors. All rights reserved.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to\ndeal in the Software without restriction, including without limitation the\nrights to use, copy, modify, merge, publish, distribute, sublicense, and/or\nsell copies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\nIN THE SOFTWARE.\n\"\"\"\n\nThis license applies to parts of Node.js originating from the\nhttps://github.com/joyent/node repository:\n\n\"\"\"\nCopyright Joyent, Inc. and other Node contributors. All rights reserved.\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to\ndeal in the Software without restriction, including without limitation the\nrights to use, copy, modify, merge, publish, distribute, sublicense, and/or\nsell copies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\nIN THE SOFTWARE.\n\"\"\"\n*/\n\nimport assert from 'assert';\nimport fs, { realpathSync, statSync } from 'fs';\nimport process from 'process';\nimport { fileURLToPath, URL as URL$1, pathToFileURL } from 'url';\nimport path from 'path';\nimport { builtinModules } from 'module';\nimport v8 from 'v8';\nimport { format, inspect } from 'util';\n\n/**\n * @typedef ErrnoExceptionFields\n * @property {number | undefined} [errnode]\n * @property {string | undefined} [code]\n * @property {string | undefined} [path]\n * @property {string | undefined} [syscall]\n * @property {string | undefined} [url]\n *\n * @typedef {Error & ErrnoExceptionFields} ErrnoException\n */\n\n\nconst own$1 = {}.hasOwnProperty;\n\nconst classRegExp = /^([A-Z][a-z\\d]*)+$/;\n// Sorted by a rough estimate on most frequently used entries.\nconst kTypes = new Set([\n 'string',\n 'function',\n 'number',\n 'object',\n // Accept 'Function' and 'Object' as alternative to the lower cased version.\n 'Function',\n 'Object',\n 'boolean',\n 'bigint',\n 'symbol'\n]);\n\nconst codes = {};\n\n/**\n * Create a list string in the form like 'A and B' or 'A, B, ..., and Z'.\n * We cannot use Intl.ListFormat because it's not available in\n * --without-intl builds.\n *\n * @param {Array} array\n * An array of strings.\n * @param {string} [type]\n * The list type to be inserted before the last element.\n * @returns {string}\n */\nfunction formatList(array, type = 'and') {\n return array.length < 3\n ? array.join(` ${type} `)\n : `${array.slice(0, -1).join(', ')}, ${type} ${array[array.length - 1]}`\n}\n\n/** @type {Map} */\nconst messages = new Map();\nconst nodeInternalPrefix = '__node_internal_';\n/** @type {number} */\nlet userStackTraceLimit;\n\ncodes.ERR_INVALID_ARG_TYPE = createError(\n 'ERR_INVALID_ARG_TYPE',\n /**\n * @param {string} name\n * @param {Array | string} expected\n * @param {unknown} actual\n */\n (name, expected, actual) => {\n assert(typeof name === 'string', \"'name' must be a string\");\n if (!Array.isArray(expected)) {\n expected = [expected];\n }\n\n let message = 'The ';\n if (name.endsWith(' argument')) {\n // For cases like 'first argument'\n message += `${name} `;\n } else {\n const type = name.includes('.') ? 'property' : 'argument';\n message += `\"${name}\" ${type} `;\n }\n\n message += 'must be ';\n\n /** @type {Array} */\n const types = [];\n /** @type {Array} */\n const instances = [];\n /** @type {Array} */\n const other = [];\n\n for (const value of expected) {\n assert(\n typeof value === 'string',\n 'All expected entries have to be of type string'\n );\n\n if (kTypes.has(value)) {\n types.push(value.toLowerCase());\n } else if (classRegExp.exec(value) === null) {\n assert(\n value !== 'object',\n 'The value \"object\" should be written as \"Object\"'\n );\n other.push(value);\n } else {\n instances.push(value);\n }\n }\n\n // Special handle `object` in case other instances are allowed to outline\n // the differences between each other.\n if (instances.length > 0) {\n const pos = types.indexOf('object');\n if (pos !== -1) {\n types.slice(pos, 1);\n instances.push('Object');\n }\n }\n\n if (types.length > 0) {\n message += `${types.length > 1 ? 'one of type' : 'of type'} ${formatList(\n types,\n 'or'\n )}`;\n if (instances.length > 0 || other.length > 0) message += ' or ';\n }\n\n if (instances.length > 0) {\n message += `an instance of ${formatList(instances, 'or')}`;\n if (other.length > 0) message += ' or ';\n }\n\n if (other.length > 0) {\n if (other.length > 1) {\n message += `one of ${formatList(other, 'or')}`;\n } else {\n if (other[0].toLowerCase() !== other[0]) message += 'an ';\n message += `${other[0]}`;\n }\n }\n\n message += `. Received ${determineSpecificType(actual)}`;\n\n return message\n },\n TypeError\n);\n\ncodes.ERR_INVALID_MODULE_SPECIFIER = createError(\n 'ERR_INVALID_MODULE_SPECIFIER',\n /**\n * @param {string} request\n * @param {string} reason\n * @param {string} [base]\n */\n (request, reason, base = undefined) => {\n return `Invalid module \"${request}\" ${reason}${\n base ? ` imported from ${base}` : ''\n }`\n },\n TypeError\n);\n\ncodes.ERR_INVALID_PACKAGE_CONFIG = createError(\n 'ERR_INVALID_PACKAGE_CONFIG',\n /**\n * @param {string} path\n * @param {string} [base]\n * @param {string} [message]\n */\n (path, base, message) => {\n return `Invalid package config ${path}${\n base ? ` while importing ${base}` : ''\n }${message ? `. ${message}` : ''}`\n },\n Error\n);\n\ncodes.ERR_INVALID_PACKAGE_TARGET = createError(\n 'ERR_INVALID_PACKAGE_TARGET',\n /**\n * @param {string} packagePath\n * @param {string} key\n * @param {unknown} target\n * @param {boolean} [isImport=false]\n * @param {string} [base]\n */\n (packagePath, key, target, isImport = false, base = undefined) => {\n const relatedError =\n typeof target === 'string' &&\n !isImport &&\n target.length > 0 &&\n !target.startsWith('./');\n if (key === '.') {\n assert(isImport === false);\n return (\n `Invalid \"exports\" main target ${JSON.stringify(target)} defined ` +\n `in the package config ${packagePath}package.json${\n base ? ` imported from ${base}` : ''\n }${relatedError ? '; targets must start with \"./\"' : ''}`\n )\n }\n\n return `Invalid \"${\n isImport ? 'imports' : 'exports'\n }\" target ${JSON.stringify(\n target\n )} defined for '${key}' in the package config ${packagePath}package.json${\n base ? ` imported from ${base}` : ''\n }${relatedError ? '; targets must start with \"./\"' : ''}`\n },\n Error\n);\n\ncodes.ERR_MODULE_NOT_FOUND = createError(\n 'ERR_MODULE_NOT_FOUND',\n /**\n * @param {string} path\n * @param {string} base\n * @param {boolean} [exactUrl]\n */\n (path, base, exactUrl = false) => {\n return `Cannot find ${\n exactUrl ? 'module' : 'package'\n } '${path}' imported from ${base}`\n },\n Error\n);\n\ncodes.ERR_NETWORK_IMPORT_DISALLOWED = createError(\n 'ERR_NETWORK_IMPORT_DISALLOWED',\n \"import of '%s' by %s is not supported: %s\",\n Error\n);\n\ncodes.ERR_PACKAGE_IMPORT_NOT_DEFINED = createError(\n 'ERR_PACKAGE_IMPORT_NOT_DEFINED',\n /**\n * @param {string} specifier\n * @param {string} packagePath\n * @param {string} base\n */\n (specifier, packagePath, base) => {\n return `Package import specifier \"${specifier}\" is not defined${\n packagePath ? ` in package ${packagePath}package.json` : ''\n } imported from ${base}`\n },\n TypeError\n);\n\ncodes.ERR_PACKAGE_PATH_NOT_EXPORTED = createError(\n 'ERR_PACKAGE_PATH_NOT_EXPORTED',\n /**\n * @param {string} packagePath\n * @param {string} subpath\n * @param {string} [base]\n */\n (packagePath, subpath, base = undefined) => {\n if (subpath === '.')\n return `No \"exports\" main defined in ${packagePath}package.json${\n base ? ` imported from ${base}` : ''\n }`\n return `Package subpath '${subpath}' is not defined by \"exports\" in ${packagePath}package.json${\n base ? ` imported from ${base}` : ''\n }`\n },\n Error\n);\n\ncodes.ERR_UNSUPPORTED_DIR_IMPORT = createError(\n 'ERR_UNSUPPORTED_DIR_IMPORT',\n \"Directory import '%s' is not supported \" +\n 'resolving ES modules imported from %s',\n Error\n);\n\ncodes.ERR_UNSUPPORTED_RESOLVE_REQUEST = createError(\n 'ERR_UNSUPPORTED_RESOLVE_REQUEST',\n 'Failed to resolve module specifier \"%s\" from \"%s\": Invalid relative URL or base scheme is not hierarchical.',\n TypeError\n);\n\ncodes.ERR_UNKNOWN_FILE_EXTENSION = createError(\n 'ERR_UNKNOWN_FILE_EXTENSION',\n /**\n * @param {string} extension\n * @param {string} path\n */\n (extension, path) => {\n return `Unknown file extension \"${extension}\" for ${path}`\n },\n TypeError\n);\n\ncodes.ERR_INVALID_ARG_VALUE = createError(\n 'ERR_INVALID_ARG_VALUE',\n /**\n * @param {string} name\n * @param {unknown} value\n * @param {string} [reason='is invalid']\n */\n (name, value, reason = 'is invalid') => {\n let inspected = inspect(value);\n\n if (inspected.length > 128) {\n inspected = `${inspected.slice(0, 128)}...`;\n }\n\n const type = name.includes('.') ? 'property' : 'argument';\n\n return `The ${type} '${name}' ${reason}. Received ${inspected}`\n },\n TypeError\n // Note: extra classes have been shaken out.\n // , RangeError\n);\n\n/**\n * Utility function for registering the error codes. Only used here. Exported\n * *only* to allow for testing.\n * @param {string} sym\n * @param {MessageFunction | string} value\n * @param {ErrorConstructor} constructor\n * @returns {new (...parameters: Array) => Error}\n */\nfunction createError(sym, value, constructor) {\n // Special case for SystemError that formats the error message differently\n // The SystemErrors only have SystemError as their base classes.\n messages.set(sym, value);\n\n return makeNodeErrorWithCode(constructor, sym)\n}\n\n/**\n * @param {ErrorConstructor} Base\n * @param {string} key\n * @returns {ErrorConstructor}\n */\nfunction makeNodeErrorWithCode(Base, key) {\n // @ts-expect-error It’s a Node error.\n return NodeError\n /**\n * @param {Array} parameters\n */\n function NodeError(...parameters) {\n const limit = Error.stackTraceLimit;\n if (isErrorStackTraceLimitWritable()) Error.stackTraceLimit = 0;\n const error = new Base();\n // Reset the limit and setting the name property.\n if (isErrorStackTraceLimitWritable()) Error.stackTraceLimit = limit;\n const message = getMessage(key, parameters, error);\n Object.defineProperties(error, {\n // Note: no need to implement `kIsNodeError` symbol, would be hard,\n // probably.\n message: {\n value: message,\n enumerable: false,\n writable: true,\n configurable: true\n },\n toString: {\n /** @this {Error} */\n value() {\n return `${this.name} [${key}]: ${this.message}`\n },\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n\n captureLargerStackTrace(error);\n // @ts-expect-error It’s a Node error.\n error.code = key;\n return error\n }\n}\n\n/**\n * @returns {boolean}\n */\nfunction isErrorStackTraceLimitWritable() {\n // Do no touch Error.stackTraceLimit as V8 would attempt to install\n // it again during deserialization.\n try {\n if (v8.startupSnapshot.isBuildingSnapshot()) {\n return false\n }\n } catch {}\n\n const desc = Object.getOwnPropertyDescriptor(Error, 'stackTraceLimit');\n if (desc === undefined) {\n return Object.isExtensible(Error)\n }\n\n return own$1.call(desc, 'writable') && desc.writable !== undefined\n ? desc.writable\n : desc.set !== undefined\n}\n\n/**\n * This function removes unnecessary frames from Node.js core errors.\n * @template {(...parameters: unknown[]) => unknown} T\n * @param {T} wrappedFunction\n * @returns {T}\n */\nfunction hideStackFrames(wrappedFunction) {\n // We rename the functions that will be hidden to cut off the stacktrace\n // at the outermost one\n const hidden = nodeInternalPrefix + wrappedFunction.name;\n Object.defineProperty(wrappedFunction, 'name', {value: hidden});\n return wrappedFunction\n}\n\nconst captureLargerStackTrace = hideStackFrames(\n /**\n * @param {Error} error\n * @returns {Error}\n */\n // @ts-expect-error: fine\n function (error) {\n const stackTraceLimitIsWritable = isErrorStackTraceLimitWritable();\n if (stackTraceLimitIsWritable) {\n userStackTraceLimit = Error.stackTraceLimit;\n Error.stackTraceLimit = Number.POSITIVE_INFINITY;\n }\n\n Error.captureStackTrace(error);\n\n // Reset the limit\n if (stackTraceLimitIsWritable) Error.stackTraceLimit = userStackTraceLimit;\n\n return error\n }\n);\n\n/**\n * @param {string} key\n * @param {Array} parameters\n * @param {Error} self\n * @returns {string}\n */\nfunction getMessage(key, parameters, self) {\n const message = messages.get(key);\n assert(message !== undefined, 'expected `message` to be found');\n\n if (typeof message === 'function') {\n assert(\n message.length <= parameters.length, // Default options do not count.\n `Code: ${key}; The provided arguments length (${parameters.length}) does not ` +\n `match the required ones (${message.length}).`\n );\n return Reflect.apply(message, self, parameters)\n }\n\n const regex = /%[dfijoOs]/g;\n let expectedLength = 0;\n while (regex.exec(message) !== null) expectedLength++;\n assert(\n expectedLength === parameters.length,\n `Code: ${key}; The provided arguments length (${parameters.length}) does not ` +\n `match the required ones (${expectedLength}).`\n );\n if (parameters.length === 0) return message\n\n parameters.unshift(message);\n return Reflect.apply(format, null, parameters)\n}\n\n/**\n * Determine the specific type of a value for type-mismatch errors.\n * @param {unknown} value\n * @returns {string}\n */\nfunction determineSpecificType(value) {\n if (value === null || value === undefined) {\n return String(value)\n }\n\n if (typeof value === 'function' && value.name) {\n return `function ${value.name}`\n }\n\n if (typeof value === 'object') {\n if (value.constructor && value.constructor.name) {\n return `an instance of ${value.constructor.name}`\n }\n\n return `${inspect(value, {depth: -1})}`\n }\n\n let inspected = inspect(value, {colors: false});\n\n if (inspected.length > 28) {\n inspected = `${inspected.slice(0, 25)}...`;\n }\n\n return `type ${typeof value} (${inspected})`\n}\n\n// Manually “tree shaken” from:\n// \n// Last checked on: Apr 29, 2023.\n// Removed the native dependency.\n// Also: no need to cache, we do that in resolve already.\n\n\nconst hasOwnProperty$1 = {}.hasOwnProperty;\n\nconst {ERR_INVALID_PACKAGE_CONFIG: ERR_INVALID_PACKAGE_CONFIG$1} = codes;\n\n/** @type {Map} */\nconst cache = new Map();\n\n/**\n * @param {string} jsonPath\n * @param {{specifier: URL | string, base?: URL}} options\n * @returns {PackageConfig}\n */\nfunction read(jsonPath, {base, specifier}) {\n const existing = cache.get(jsonPath);\n\n if (existing) {\n return existing\n }\n\n /** @type {string | undefined} */\n let string;\n\n try {\n string = fs.readFileSync(path.toNamespacedPath(jsonPath), 'utf8');\n } catch (error) {\n const exception = /** @type {ErrnoException} */ (error);\n\n if (exception.code !== 'ENOENT') {\n throw exception\n }\n }\n\n /** @type {PackageConfig} */\n const result = {\n exists: false,\n pjsonPath: jsonPath,\n main: undefined,\n name: undefined,\n type: 'none', // Ignore unknown types for forwards compatibility\n exports: undefined,\n imports: undefined\n };\n\n if (string !== undefined) {\n /** @type {Record} */\n let parsed;\n\n try {\n parsed = JSON.parse(string);\n } catch (error_) {\n const cause = /** @type {ErrnoException} */ (error_);\n const error = new ERR_INVALID_PACKAGE_CONFIG$1(\n jsonPath,\n (base ? `\"${specifier}\" from ` : '') + fileURLToPath(base || specifier),\n cause.message\n );\n error.cause = cause;\n throw error\n }\n\n result.exists = true;\n\n if (\n hasOwnProperty$1.call(parsed, 'name') &&\n typeof parsed.name === 'string'\n ) {\n result.name = parsed.name;\n }\n\n if (\n hasOwnProperty$1.call(parsed, 'main') &&\n typeof parsed.main === 'string'\n ) {\n result.main = parsed.main;\n }\n\n if (hasOwnProperty$1.call(parsed, 'exports')) {\n // @ts-expect-error: assume valid.\n result.exports = parsed.exports;\n }\n\n if (hasOwnProperty$1.call(parsed, 'imports')) {\n // @ts-expect-error: assume valid.\n result.imports = parsed.imports;\n }\n\n // Ignore unknown types for forwards compatibility\n if (\n hasOwnProperty$1.call(parsed, 'type') &&\n (parsed.type === 'commonjs' || parsed.type === 'module')\n ) {\n result.type = parsed.type;\n }\n }\n\n cache.set(jsonPath, result);\n\n return result\n}\n\n/**\n * @param {URL | string} resolved\n * @returns {PackageConfig}\n */\nfunction getPackageScopeConfig(resolved) {\n // Note: in Node, this is now a native module.\n let packageJSONUrl = new URL('package.json', resolved);\n\n while (true) {\n const packageJSONPath = packageJSONUrl.pathname;\n if (packageJSONPath.endsWith('node_modules/package.json')) {\n break\n }\n\n const packageConfig = read(fileURLToPath(packageJSONUrl), {\n specifier: resolved\n });\n\n if (packageConfig.exists) {\n return packageConfig\n }\n\n const lastPackageJSONUrl = packageJSONUrl;\n packageJSONUrl = new URL('../package.json', packageJSONUrl);\n\n // Terminates at root where ../package.json equals ../../package.json\n // (can't just check \"/package.json\" for Windows support).\n if (packageJSONUrl.pathname === lastPackageJSONUrl.pathname) {\n break\n }\n }\n\n const packageJSONPath = fileURLToPath(packageJSONUrl);\n // ^^ Note: in Node, this is now a native module.\n\n return {\n pjsonPath: packageJSONPath,\n exists: false,\n type: 'none'\n }\n}\n\n/**\n * Returns the package type for a given URL.\n * @param {URL} url - The URL to get the package type for.\n * @returns {PackageType}\n */\nfunction getPackageType(url) {\n // To do @anonrig: Write a C++ function that returns only \"type\".\n return getPackageScopeConfig(url).type\n}\n\n// Manually “tree shaken” from:\n// \n// Last checked on: Apr 29, 2023.\n\n\nconst {ERR_UNKNOWN_FILE_EXTENSION} = codes;\n\nconst hasOwnProperty = {}.hasOwnProperty;\n\n/** @type {Record} */\nconst extensionFormatMap = {\n // @ts-expect-error: hush.\n __proto__: null,\n '.cjs': 'commonjs',\n '.js': 'module',\n '.json': 'json',\n '.mjs': 'module'\n};\n\n/**\n * @param {string | null} mime\n * @returns {string | null}\n */\nfunction mimeToFormat(mime) {\n if (\n mime &&\n /\\s*(text|application)\\/javascript\\s*(;\\s*charset=utf-?8\\s*)?/i.test(mime)\n )\n return 'module'\n if (mime === 'application/json') return 'json'\n return null\n}\n\n/**\n * @callback ProtocolHandler\n * @param {URL} parsed\n * @param {{parentURL: string, source?: Buffer}} context\n * @param {boolean} ignoreErrors\n * @returns {string | null | void}\n */\n\n/**\n * @type {Record}\n */\nconst protocolHandlers = {\n // @ts-expect-error: hush.\n __proto__: null,\n 'data:': getDataProtocolModuleFormat,\n 'file:': getFileProtocolModuleFormat,\n 'http:': getHttpProtocolModuleFormat,\n 'https:': getHttpProtocolModuleFormat,\n 'node:'() {\n return 'builtin'\n }\n};\n\n/**\n * @param {URL} parsed\n */\nfunction getDataProtocolModuleFormat(parsed) {\n const {1: mime} = /^([^/]+\\/[^;,]+)[^,]*?(;base64)?,/.exec(\n parsed.pathname\n ) || [null, null, null];\n return mimeToFormat(mime)\n}\n\n/**\n * Returns the file extension from a URL.\n *\n * Should give similar result to\n * `require('node:path').extname(require('node:url').fileURLToPath(url))`\n * when used with a `file:` URL.\n *\n * @param {URL} url\n * @returns {string}\n */\nfunction extname(url) {\n const pathname = url.pathname;\n let index = pathname.length;\n\n while (index--) {\n const code = pathname.codePointAt(index);\n\n if (code === 47 /* `/` */) {\n return ''\n }\n\n if (code === 46 /* `.` */) {\n return pathname.codePointAt(index - 1) === 47 /* `/` */\n ? ''\n : pathname.slice(index)\n }\n }\n\n return ''\n}\n\n/**\n * @type {ProtocolHandler}\n */\nfunction getFileProtocolModuleFormat(url, _context, ignoreErrors) {\n const value = extname(url);\n\n if (value === '.js') {\n const packageType = getPackageType(url);\n\n if (packageType !== 'none') {\n return packageType\n }\n\n return 'commonjs'\n }\n\n if (value === '') {\n const packageType = getPackageType(url);\n\n // Legacy behavior\n if (packageType === 'none' || packageType === 'commonjs') {\n return 'commonjs'\n }\n\n // Note: we don’t implement WASM, so we don’t need\n // `getFormatOfExtensionlessFile` from `formats`.\n return 'module'\n }\n\n const format = extensionFormatMap[value];\n if (format) return format\n\n // Explicit undefined return indicates load hook should rerun format check\n if (ignoreErrors) {\n return undefined\n }\n\n const filepath = fileURLToPath(url);\n throw new ERR_UNKNOWN_FILE_EXTENSION(value, filepath)\n}\n\nfunction getHttpProtocolModuleFormat() {\n // To do: HTTPS imports.\n}\n\n/**\n * @param {URL} url\n * @param {{parentURL: string}} context\n * @returns {string | null}\n */\nfunction defaultGetFormatWithoutErrors(url, context) {\n const protocol = url.protocol;\n\n if (!hasOwnProperty.call(protocolHandlers, protocol)) {\n return null\n }\n\n return protocolHandlers[protocol](url, context, true) || null\n}\n\n// Manually “tree shaken” from:\n// \n// Last checked on: Apr 29, 2023.\n\n\nconst {ERR_INVALID_ARG_VALUE} = codes;\n\n// In Node itself these values are populated from CLI arguments, before any\n// user code runs.\n// Here we just define the defaults.\nconst DEFAULT_CONDITIONS = Object.freeze(['node', 'import']);\nconst DEFAULT_CONDITIONS_SET = new Set(DEFAULT_CONDITIONS);\n\n/**\n * Returns the default conditions for ES module loading.\n */\nfunction getDefaultConditions() {\n return DEFAULT_CONDITIONS\n}\n\n/**\n * Returns the default conditions for ES module loading, as a Set.\n */\nfunction getDefaultConditionsSet() {\n return DEFAULT_CONDITIONS_SET\n}\n\n/**\n * @param {Array} [conditions]\n * @returns {Set}\n */\nfunction getConditionsSet(conditions) {\n if (conditions !== undefined && conditions !== getDefaultConditions()) {\n if (!Array.isArray(conditions)) {\n throw new ERR_INVALID_ARG_VALUE(\n 'conditions',\n conditions,\n 'expected an array'\n )\n }\n\n return new Set(conditions)\n }\n\n return getDefaultConditionsSet()\n}\n\n// Manually “tree shaken” from:\n// \n// Last checked on: Apr 29, 2023.\n\n\nconst RegExpPrototypeSymbolReplace = RegExp.prototype[Symbol.replace];\n\nconst {\n ERR_NETWORK_IMPORT_DISALLOWED,\n ERR_INVALID_MODULE_SPECIFIER,\n ERR_INVALID_PACKAGE_CONFIG,\n ERR_INVALID_PACKAGE_TARGET,\n ERR_MODULE_NOT_FOUND,\n ERR_PACKAGE_IMPORT_NOT_DEFINED,\n ERR_PACKAGE_PATH_NOT_EXPORTED,\n ERR_UNSUPPORTED_DIR_IMPORT,\n ERR_UNSUPPORTED_RESOLVE_REQUEST\n} = codes;\n\nconst own = {}.hasOwnProperty;\n\nconst invalidSegmentRegEx =\n /(^|\\\\|\\/)((\\.|%2e)(\\.|%2e)?|(n|%6e|%4e)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(_|%5f)(m|%6d|%4d)(o|%6f|%4f)(d|%64|%44)(u|%75|%55)(l|%6c|%4c)(e|%65|%45)(s|%73|%53))?(\\\\|\\/|$)/i;\nconst deprecatedInvalidSegmentRegEx =\n /(^|\\\\|\\/)((\\.|%2e)(\\.|%2e)?|(n|%6e|%4e)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(_|%5f)(m|%6d|%4d)(o|%6f|%4f)(d|%64|%44)(u|%75|%55)(l|%6c|%4c)(e|%65|%45)(s|%73|%53))(\\\\|\\/|$)/i;\nconst invalidPackageNameRegEx = /^\\.|%|\\\\/;\nconst patternRegEx = /\\*/g;\nconst encodedSeparatorRegEx = /%2f|%5c/i;\n/** @type {Set} */\nconst emittedPackageWarnings = new Set();\n\nconst doubleSlashRegEx = /[/\\\\]{2}/;\n\n/**\n *\n * @param {string} target\n * @param {string} request\n * @param {string} match\n * @param {URL} packageJsonUrl\n * @param {boolean} internal\n * @param {URL} base\n * @param {boolean} isTarget\n */\nfunction emitInvalidSegmentDeprecation(\n target,\n request,\n match,\n packageJsonUrl,\n internal,\n base,\n isTarget\n) {\n // @ts-expect-error: apparently it does exist, TS.\n if (process.noDeprecation) {\n return\n }\n\n const pjsonPath = fileURLToPath(packageJsonUrl);\n const double = doubleSlashRegEx.exec(isTarget ? target : request) !== null;\n process.emitWarning(\n `Use of deprecated ${\n double ? 'double slash' : 'leading or trailing slash matching'\n } resolving \"${target}\" for module ` +\n `request \"${request}\" ${\n request === match ? '' : `matched to \"${match}\" `\n }in the \"${\n internal ? 'imports' : 'exports'\n }\" field module resolution of the package at ${pjsonPath}${\n base ? ` imported from ${fileURLToPath(base)}` : ''\n }.`,\n 'DeprecationWarning',\n 'DEP0166'\n );\n}\n\n/**\n * @param {URL} url\n * @param {URL} packageJsonUrl\n * @param {URL} base\n * @param {string} [main]\n * @returns {void}\n */\nfunction emitLegacyIndexDeprecation(url, packageJsonUrl, base, main) {\n // @ts-expect-error: apparently it does exist, TS.\n if (process.noDeprecation) {\n return\n }\n\n const format = defaultGetFormatWithoutErrors(url, {parentURL: base.href});\n if (format !== 'module') return\n const urlPath = fileURLToPath(url.href);\n const packagePath = fileURLToPath(new URL$1('.', packageJsonUrl));\n const basePath = fileURLToPath(base);\n if (!main) {\n process.emitWarning(\n `No \"main\" or \"exports\" field defined in the package.json for ${packagePath} resolving the main entry point \"${urlPath.slice(\n packagePath.length\n )}\", imported from ${basePath}.\\nDefault \"index\" lookups for the main are deprecated for ES modules.`,\n 'DeprecationWarning',\n 'DEP0151'\n );\n } else if (path.resolve(packagePath, main) !== urlPath) {\n process.emitWarning(\n `Package ${packagePath} has a \"main\" field set to \"${main}\", ` +\n `excluding the full filename and extension to the resolved file at \"${urlPath.slice(\n packagePath.length\n )}\", imported from ${basePath}.\\n Automatic extension resolution of the \"main\" field is ` +\n 'deprecated for ES modules.',\n 'DeprecationWarning',\n 'DEP0151'\n );\n }\n}\n\n/**\n * @param {string} path\n * @returns {Stats | undefined}\n */\nfunction tryStatSync(path) {\n // Note: from Node 15 onwards we can use `throwIfNoEntry: false` instead.\n try {\n return statSync(path)\n } catch {\n // Note: in Node code this returns `new Stats`,\n // but in Node 22 that’s marked as a deprecated internal API.\n // Which, well, we kinda are, but still to prevent that warning,\n // just yield `undefined`.\n }\n}\n\n/**\n * Legacy CommonJS main resolution:\n * 1. let M = pkg_url + (json main field)\n * 2. TRY(M, M.js, M.json, M.node)\n * 3. TRY(M/index.js, M/index.json, M/index.node)\n * 4. TRY(pkg_url/index.js, pkg_url/index.json, pkg_url/index.node)\n * 5. NOT_FOUND\n *\n * @param {URL} url\n * @returns {boolean}\n */\nfunction fileExists(url) {\n const stats = statSync(url, {throwIfNoEntry: false});\n const isFile = stats ? stats.isFile() : undefined;\n return isFile === null || isFile === undefined ? false : isFile\n}\n\n/**\n * @param {URL} packageJsonUrl\n * @param {PackageConfig} packageConfig\n * @param {URL} base\n * @returns {URL}\n */\nfunction legacyMainResolve(packageJsonUrl, packageConfig, base) {\n /** @type {URL | undefined} */\n let guess;\n if (packageConfig.main !== undefined) {\n guess = new URL$1(packageConfig.main, packageJsonUrl);\n // Note: fs check redundances will be handled by Descriptor cache here.\n if (fileExists(guess)) return guess\n\n const tries = [\n `./${packageConfig.main}.js`,\n `./${packageConfig.main}.json`,\n `./${packageConfig.main}.node`,\n `./${packageConfig.main}/index.js`,\n `./${packageConfig.main}/index.json`,\n `./${packageConfig.main}/index.node`\n ];\n let i = -1;\n\n while (++i < tries.length) {\n guess = new URL$1(tries[i], packageJsonUrl);\n if (fileExists(guess)) break\n guess = undefined;\n }\n\n if (guess) {\n emitLegacyIndexDeprecation(\n guess,\n packageJsonUrl,\n base,\n packageConfig.main\n );\n return guess\n }\n // Fallthrough.\n }\n\n const tries = ['./index.js', './index.json', './index.node'];\n let i = -1;\n\n while (++i < tries.length) {\n guess = new URL$1(tries[i], packageJsonUrl);\n if (fileExists(guess)) break\n guess = undefined;\n }\n\n if (guess) {\n emitLegacyIndexDeprecation(guess, packageJsonUrl, base, packageConfig.main);\n return guess\n }\n\n // Not found.\n throw new ERR_MODULE_NOT_FOUND(\n fileURLToPath(new URL$1('.', packageJsonUrl)),\n fileURLToPath(base)\n )\n}\n\n/**\n * @param {URL} resolved\n * @param {URL} base\n * @param {boolean} [preserveSymlinks]\n * @returns {URL}\n */\nfunction finalizeResolution(resolved, base, preserveSymlinks) {\n if (encodedSeparatorRegEx.exec(resolved.pathname) !== null) {\n throw new ERR_INVALID_MODULE_SPECIFIER(\n resolved.pathname,\n 'must not include encoded \"/\" or \"\\\\\" characters',\n fileURLToPath(base)\n )\n }\n\n /** @type {string} */\n let filePath;\n\n try {\n filePath = fileURLToPath(resolved);\n } catch (error) {\n const cause = /** @type {ErrnoException} */ (error);\n Object.defineProperty(cause, 'input', {value: String(resolved)});\n Object.defineProperty(cause, 'module', {value: String(base)});\n throw cause\n }\n\n const stats = tryStatSync(\n filePath.endsWith('/') ? filePath.slice(-1) : filePath\n );\n\n if (stats && stats.isDirectory()) {\n const error = new ERR_UNSUPPORTED_DIR_IMPORT(filePath, fileURLToPath(base));\n // @ts-expect-error Add this for `import.meta.resolve`.\n error.url = String(resolved);\n throw error\n }\n\n if (!stats || !stats.isFile()) {\n const error = new ERR_MODULE_NOT_FOUND(\n filePath || resolved.pathname,\n base && fileURLToPath(base),\n true\n );\n // @ts-expect-error Add this for `import.meta.resolve`.\n error.url = String(resolved);\n throw error\n }\n\n if (!preserveSymlinks) {\n const real = realpathSync(filePath);\n const {search, hash} = resolved;\n resolved = pathToFileURL(real + (filePath.endsWith(path.sep) ? '/' : ''));\n resolved.search = search;\n resolved.hash = hash;\n }\n\n return resolved\n}\n\n/**\n * @param {string} specifier\n * @param {URL | undefined} packageJsonUrl\n * @param {URL} base\n * @returns {Error}\n */\nfunction importNotDefined(specifier, packageJsonUrl, base) {\n return new ERR_PACKAGE_IMPORT_NOT_DEFINED(\n specifier,\n packageJsonUrl && fileURLToPath(new URL$1('.', packageJsonUrl)),\n fileURLToPath(base)\n )\n}\n\n/**\n * @param {string} subpath\n * @param {URL} packageJsonUrl\n * @param {URL} base\n * @returns {Error}\n */\nfunction exportsNotFound(subpath, packageJsonUrl, base) {\n return new ERR_PACKAGE_PATH_NOT_EXPORTED(\n fileURLToPath(new URL$1('.', packageJsonUrl)),\n subpath,\n base && fileURLToPath(base)\n )\n}\n\n/**\n * @param {string} request\n * @param {string} match\n * @param {URL} packageJsonUrl\n * @param {boolean} internal\n * @param {URL} [base]\n * @returns {never}\n */\nfunction throwInvalidSubpath(request, match, packageJsonUrl, internal, base) {\n const reason = `request is not a valid match in pattern \"${match}\" for the \"${\n internal ? 'imports' : 'exports'\n }\" resolution of ${fileURLToPath(packageJsonUrl)}`;\n throw new ERR_INVALID_MODULE_SPECIFIER(\n request,\n reason,\n base && fileURLToPath(base)\n )\n}\n\n/**\n * @param {string} subpath\n * @param {unknown} target\n * @param {URL} packageJsonUrl\n * @param {boolean} internal\n * @param {URL} [base]\n * @returns {Error}\n */\nfunction invalidPackageTarget(subpath, target, packageJsonUrl, internal, base) {\n target =\n typeof target === 'object' && target !== null\n ? JSON.stringify(target, null, '')\n : `${target}`;\n\n return new ERR_INVALID_PACKAGE_TARGET(\n fileURLToPath(new URL$1('.', packageJsonUrl)),\n subpath,\n target,\n internal,\n base && fileURLToPath(base)\n )\n}\n\n/**\n * @param {string} target\n * @param {string} subpath\n * @param {string} match\n * @param {URL} packageJsonUrl\n * @param {URL} base\n * @param {boolean} pattern\n * @param {boolean} internal\n * @param {boolean} isPathMap\n * @param {Set | undefined} conditions\n * @returns {URL}\n */\nfunction resolvePackageTargetString(\n target,\n subpath,\n match,\n packageJsonUrl,\n base,\n pattern,\n internal,\n isPathMap,\n conditions\n) {\n if (subpath !== '' && !pattern && target[target.length - 1] !== '/')\n throw invalidPackageTarget(match, target, packageJsonUrl, internal, base)\n\n if (!target.startsWith('./')) {\n if (internal && !target.startsWith('../') && !target.startsWith('/')) {\n let isURL = false;\n\n try {\n new URL$1(target);\n isURL = true;\n } catch {\n // Continue regardless of error.\n }\n\n if (!isURL) {\n const exportTarget = pattern\n ? RegExpPrototypeSymbolReplace.call(\n patternRegEx,\n target,\n () => subpath\n )\n : target + subpath;\n\n return packageResolve(exportTarget, packageJsonUrl, conditions)\n }\n }\n\n throw invalidPackageTarget(match, target, packageJsonUrl, internal, base)\n }\n\n if (invalidSegmentRegEx.exec(target.slice(2)) !== null) {\n if (deprecatedInvalidSegmentRegEx.exec(target.slice(2)) === null) {\n if (!isPathMap) {\n const request = pattern\n ? match.replace('*', () => subpath)\n : match + subpath;\n const resolvedTarget = pattern\n ? RegExpPrototypeSymbolReplace.call(\n patternRegEx,\n target,\n () => subpath\n )\n : target;\n emitInvalidSegmentDeprecation(\n resolvedTarget,\n request,\n match,\n packageJsonUrl,\n internal,\n base,\n true\n );\n }\n } else {\n throw invalidPackageTarget(match, target, packageJsonUrl, internal, base)\n }\n }\n\n const resolved = new URL$1(target, packageJsonUrl);\n const resolvedPath = resolved.pathname;\n const packagePath = new URL$1('.', packageJsonUrl).pathname;\n\n if (!resolvedPath.startsWith(packagePath))\n throw invalidPackageTarget(match, target, packageJsonUrl, internal, base)\n\n if (subpath === '') return resolved\n\n if (invalidSegmentRegEx.exec(subpath) !== null) {\n const request = pattern\n ? match.replace('*', () => subpath)\n : match + subpath;\n if (deprecatedInvalidSegmentRegEx.exec(subpath) === null) {\n if (!isPathMap) {\n const resolvedTarget = pattern\n ? RegExpPrototypeSymbolReplace.call(\n patternRegEx,\n target,\n () => subpath\n )\n : target;\n emitInvalidSegmentDeprecation(\n resolvedTarget,\n request,\n match,\n packageJsonUrl,\n internal,\n base,\n false\n );\n }\n } else {\n throwInvalidSubpath(request, match, packageJsonUrl, internal, base);\n }\n }\n\n if (pattern) {\n return new URL$1(\n RegExpPrototypeSymbolReplace.call(\n patternRegEx,\n resolved.href,\n () => subpath\n )\n )\n }\n\n return new URL$1(subpath, resolved)\n}\n\n/**\n * @param {string} key\n * @returns {boolean}\n */\nfunction isArrayIndex(key) {\n const keyNumber = Number(key);\n if (`${keyNumber}` !== key) return false\n return keyNumber >= 0 && keyNumber < 0xff_ff_ff_ff\n}\n\n/**\n * @param {URL} packageJsonUrl\n * @param {unknown} target\n * @param {string} subpath\n * @param {string} packageSubpath\n * @param {URL} base\n * @param {boolean} pattern\n * @param {boolean} internal\n * @param {boolean} isPathMap\n * @param {Set | undefined} conditions\n * @returns {URL | null}\n */\nfunction resolvePackageTarget(\n packageJsonUrl,\n target,\n subpath,\n packageSubpath,\n base,\n pattern,\n internal,\n isPathMap,\n conditions\n) {\n if (typeof target === 'string') {\n return resolvePackageTargetString(\n target,\n subpath,\n packageSubpath,\n packageJsonUrl,\n base,\n pattern,\n internal,\n isPathMap,\n conditions\n )\n }\n\n if (Array.isArray(target)) {\n /** @type {Array} */\n const targetList = target;\n if (targetList.length === 0) return null\n\n /** @type {ErrnoException | null | undefined} */\n let lastException;\n let i = -1;\n\n while (++i < targetList.length) {\n const targetItem = targetList[i];\n /** @type {URL | null} */\n let resolveResult;\n try {\n resolveResult = resolvePackageTarget(\n packageJsonUrl,\n targetItem,\n subpath,\n packageSubpath,\n base,\n pattern,\n internal,\n isPathMap,\n conditions\n );\n } catch (error) {\n const exception = /** @type {ErrnoException} */ (error);\n lastException = exception;\n if (exception.code === 'ERR_INVALID_PACKAGE_TARGET') continue\n throw error\n }\n\n if (resolveResult === undefined) continue\n\n if (resolveResult === null) {\n lastException = null;\n continue\n }\n\n return resolveResult\n }\n\n if (lastException === undefined || lastException === null) {\n return null\n }\n\n throw lastException\n }\n\n if (typeof target === 'object' && target !== null) {\n const keys = Object.getOwnPropertyNames(target);\n let i = -1;\n\n while (++i < keys.length) {\n const key = keys[i];\n if (isArrayIndex(key)) {\n throw new ERR_INVALID_PACKAGE_CONFIG(\n fileURLToPath(packageJsonUrl),\n base,\n '\"exports\" cannot contain numeric property keys.'\n )\n }\n }\n\n i = -1;\n\n while (++i < keys.length) {\n const key = keys[i];\n if (key === 'default' || (conditions && conditions.has(key))) {\n // @ts-expect-error: indexable.\n const conditionalTarget = /** @type {unknown} */ (target[key]);\n const resolveResult = resolvePackageTarget(\n packageJsonUrl,\n conditionalTarget,\n subpath,\n packageSubpath,\n base,\n pattern,\n internal,\n isPathMap,\n conditions\n );\n if (resolveResult === undefined) continue\n return resolveResult\n }\n }\n\n return null\n }\n\n if (target === null) {\n return null\n }\n\n throw invalidPackageTarget(\n packageSubpath,\n target,\n packageJsonUrl,\n internal,\n base\n )\n}\n\n/**\n * @param {unknown} exports\n * @param {URL} packageJsonUrl\n * @param {URL} base\n * @returns {boolean}\n */\nfunction isConditionalExportsMainSugar(exports, packageJsonUrl, base) {\n if (typeof exports === 'string' || Array.isArray(exports)) return true\n if (typeof exports !== 'object' || exports === null) return false\n\n const keys = Object.getOwnPropertyNames(exports);\n let isConditionalSugar = false;\n let i = 0;\n let keyIndex = -1;\n while (++keyIndex < keys.length) {\n const key = keys[keyIndex];\n const currentIsConditionalSugar = key === '' || key[0] !== '.';\n if (i++ === 0) {\n isConditionalSugar = currentIsConditionalSugar;\n } else if (isConditionalSugar !== currentIsConditionalSugar) {\n throw new ERR_INVALID_PACKAGE_CONFIG(\n fileURLToPath(packageJsonUrl),\n base,\n '\"exports\" cannot contain some keys starting with \\'.\\' and some not.' +\n ' The exports object must either be an object of package subpath keys' +\n ' or an object of main entry condition name keys only.'\n )\n }\n }\n\n return isConditionalSugar\n}\n\n/**\n * @param {string} match\n * @param {URL} pjsonUrl\n * @param {URL} base\n */\nfunction emitTrailingSlashPatternDeprecation(match, pjsonUrl, base) {\n // @ts-expect-error: apparently it does exist, TS.\n if (process.noDeprecation) {\n return\n }\n\n const pjsonPath = fileURLToPath(pjsonUrl);\n if (emittedPackageWarnings.has(pjsonPath + '|' + match)) return\n emittedPackageWarnings.add(pjsonPath + '|' + match);\n process.emitWarning(\n `Use of deprecated trailing slash pattern mapping \"${match}\" in the ` +\n `\"exports\" field module resolution of the package at ${pjsonPath}${\n base ? ` imported from ${fileURLToPath(base)}` : ''\n }. Mapping specifiers ending in \"/\" is no longer supported.`,\n 'DeprecationWarning',\n 'DEP0155'\n );\n}\n\n/**\n * @param {URL} packageJsonUrl\n * @param {string} packageSubpath\n * @param {Record} packageConfig\n * @param {URL} base\n * @param {Set | undefined} conditions\n * @returns {URL}\n */\nfunction packageExportsResolve(\n packageJsonUrl,\n packageSubpath,\n packageConfig,\n base,\n conditions\n) {\n let exports = packageConfig.exports;\n\n if (isConditionalExportsMainSugar(exports, packageJsonUrl, base)) {\n exports = {'.': exports};\n }\n\n if (\n own.call(exports, packageSubpath) &&\n !packageSubpath.includes('*') &&\n !packageSubpath.endsWith('/')\n ) {\n // @ts-expect-error: indexable.\n const target = exports[packageSubpath];\n const resolveResult = resolvePackageTarget(\n packageJsonUrl,\n target,\n '',\n packageSubpath,\n base,\n false,\n false,\n false,\n conditions\n );\n if (resolveResult === null || resolveResult === undefined) {\n throw exportsNotFound(packageSubpath, packageJsonUrl, base)\n }\n\n return resolveResult\n }\n\n let bestMatch = '';\n let bestMatchSubpath = '';\n const keys = Object.getOwnPropertyNames(exports);\n let i = -1;\n\n while (++i < keys.length) {\n const key = keys[i];\n const patternIndex = key.indexOf('*');\n\n if (\n patternIndex !== -1 &&\n packageSubpath.startsWith(key.slice(0, patternIndex))\n ) {\n // When this reaches EOL, this can throw at the top of the whole function:\n //\n // if (StringPrototypeEndsWith(packageSubpath, '/'))\n // throwInvalidSubpath(packageSubpath)\n //\n // To match \"imports\" and the spec.\n if (packageSubpath.endsWith('/')) {\n emitTrailingSlashPatternDeprecation(\n packageSubpath,\n packageJsonUrl,\n base\n );\n }\n\n const patternTrailer = key.slice(patternIndex + 1);\n\n if (\n packageSubpath.length >= key.length &&\n packageSubpath.endsWith(patternTrailer) &&\n patternKeyCompare(bestMatch, key) === 1 &&\n key.lastIndexOf('*') === patternIndex\n ) {\n bestMatch = key;\n bestMatchSubpath = packageSubpath.slice(\n patternIndex,\n packageSubpath.length - patternTrailer.length\n );\n }\n }\n }\n\n if (bestMatch) {\n // @ts-expect-error: indexable.\n const target = /** @type {unknown} */ (exports[bestMatch]);\n const resolveResult = resolvePackageTarget(\n packageJsonUrl,\n target,\n bestMatchSubpath,\n bestMatch,\n base,\n true,\n false,\n packageSubpath.endsWith('/'),\n conditions\n );\n\n if (resolveResult === null || resolveResult === undefined) {\n throw exportsNotFound(packageSubpath, packageJsonUrl, base)\n }\n\n return resolveResult\n }\n\n throw exportsNotFound(packageSubpath, packageJsonUrl, base)\n}\n\n/**\n * @param {string} a\n * @param {string} b\n */\nfunction patternKeyCompare(a, b) {\n const aPatternIndex = a.indexOf('*');\n const bPatternIndex = b.indexOf('*');\n const baseLengthA = aPatternIndex === -1 ? a.length : aPatternIndex + 1;\n const baseLengthB = bPatternIndex === -1 ? b.length : bPatternIndex + 1;\n if (baseLengthA > baseLengthB) return -1\n if (baseLengthB > baseLengthA) return 1\n if (aPatternIndex === -1) return 1\n if (bPatternIndex === -1) return -1\n if (a.length > b.length) return -1\n if (b.length > a.length) return 1\n return 0\n}\n\n/**\n * @param {string} name\n * @param {URL} base\n * @param {Set} [conditions]\n * @returns {URL}\n */\nfunction packageImportsResolve(name, base, conditions) {\n if (name === '#' || name.startsWith('#/') || name.endsWith('/')) {\n const reason = 'is not a valid internal imports specifier name';\n throw new ERR_INVALID_MODULE_SPECIFIER(name, reason, fileURLToPath(base))\n }\n\n /** @type {URL | undefined} */\n let packageJsonUrl;\n\n const packageConfig = getPackageScopeConfig(base);\n\n if (packageConfig.exists) {\n packageJsonUrl = pathToFileURL(packageConfig.pjsonPath);\n const imports = packageConfig.imports;\n if (imports) {\n if (own.call(imports, name) && !name.includes('*')) {\n const resolveResult = resolvePackageTarget(\n packageJsonUrl,\n imports[name],\n '',\n name,\n base,\n false,\n true,\n false,\n conditions\n );\n if (resolveResult !== null && resolveResult !== undefined) {\n return resolveResult\n }\n } else {\n let bestMatch = '';\n let bestMatchSubpath = '';\n const keys = Object.getOwnPropertyNames(imports);\n let i = -1;\n\n while (++i < keys.length) {\n const key = keys[i];\n const patternIndex = key.indexOf('*');\n\n if (patternIndex !== -1 && name.startsWith(key.slice(0, -1))) {\n const patternTrailer = key.slice(patternIndex + 1);\n if (\n name.length >= key.length &&\n name.endsWith(patternTrailer) &&\n patternKeyCompare(bestMatch, key) === 1 &&\n key.lastIndexOf('*') === patternIndex\n ) {\n bestMatch = key;\n bestMatchSubpath = name.slice(\n patternIndex,\n name.length - patternTrailer.length\n );\n }\n }\n }\n\n if (bestMatch) {\n const target = imports[bestMatch];\n const resolveResult = resolvePackageTarget(\n packageJsonUrl,\n target,\n bestMatchSubpath,\n bestMatch,\n base,\n true,\n true,\n false,\n conditions\n );\n\n if (resolveResult !== null && resolveResult !== undefined) {\n return resolveResult\n }\n }\n }\n }\n }\n\n throw importNotDefined(name, packageJsonUrl, base)\n}\n\n/**\n * @param {string} specifier\n * @param {URL} base\n */\nfunction parsePackageName(specifier, base) {\n let separatorIndex = specifier.indexOf('/');\n let validPackageName = true;\n let isScoped = false;\n if (specifier[0] === '@') {\n isScoped = true;\n if (separatorIndex === -1 || specifier.length === 0) {\n validPackageName = false;\n } else {\n separatorIndex = specifier.indexOf('/', separatorIndex + 1);\n }\n }\n\n const packageName =\n separatorIndex === -1 ? specifier : specifier.slice(0, separatorIndex);\n\n // Package name cannot have leading . and cannot have percent-encoding or\n // \\\\ separators.\n if (invalidPackageNameRegEx.exec(packageName) !== null) {\n validPackageName = false;\n }\n\n if (!validPackageName) {\n throw new ERR_INVALID_MODULE_SPECIFIER(\n specifier,\n 'is not a valid package name',\n fileURLToPath(base)\n )\n }\n\n const packageSubpath =\n '.' + (separatorIndex === -1 ? '' : specifier.slice(separatorIndex));\n\n return {packageName, packageSubpath, isScoped}\n}\n\n/**\n * @param {string} specifier\n * @param {URL} base\n * @param {Set | undefined} conditions\n * @returns {URL}\n */\nfunction packageResolve(specifier, base, conditions) {\n if (builtinModules.includes(specifier)) {\n return new URL$1('node:' + specifier)\n }\n\n const {packageName, packageSubpath, isScoped} = parsePackageName(\n specifier,\n base\n );\n\n // ResolveSelf\n const packageConfig = getPackageScopeConfig(base);\n\n // Can’t test.\n /* c8 ignore next 16 */\n if (packageConfig.exists) {\n const packageJsonUrl = pathToFileURL(packageConfig.pjsonPath);\n if (\n packageConfig.name === packageName &&\n packageConfig.exports !== undefined &&\n packageConfig.exports !== null\n ) {\n return packageExportsResolve(\n packageJsonUrl,\n packageSubpath,\n packageConfig,\n base,\n conditions\n )\n }\n }\n\n let packageJsonUrl = new URL$1(\n './node_modules/' + packageName + '/package.json',\n base\n );\n let packageJsonPath = fileURLToPath(packageJsonUrl);\n /** @type {string} */\n let lastPath;\n do {\n const stat = tryStatSync(packageJsonPath.slice(0, -13));\n if (!stat || !stat.isDirectory()) {\n lastPath = packageJsonPath;\n packageJsonUrl = new URL$1(\n (isScoped ? '../../../../node_modules/' : '../../../node_modules/') +\n packageName +\n '/package.json',\n packageJsonUrl\n );\n packageJsonPath = fileURLToPath(packageJsonUrl);\n continue\n }\n\n // Package match.\n const packageConfig = read(packageJsonPath, {base, specifier});\n if (packageConfig.exports !== undefined && packageConfig.exports !== null) {\n return packageExportsResolve(\n packageJsonUrl,\n packageSubpath,\n packageConfig,\n base,\n conditions\n )\n }\n\n if (packageSubpath === '.') {\n return legacyMainResolve(packageJsonUrl, packageConfig, base)\n }\n\n return new URL$1(packageSubpath, packageJsonUrl)\n // Cross-platform root check.\n } while (packageJsonPath.length !== lastPath.length)\n\n throw new ERR_MODULE_NOT_FOUND(packageName, fileURLToPath(base), false)\n}\n\n/**\n * @param {string} specifier\n * @returns {boolean}\n */\nfunction isRelativeSpecifier(specifier) {\n if (specifier[0] === '.') {\n if (specifier.length === 1 || specifier[1] === '/') return true\n if (\n specifier[1] === '.' &&\n (specifier.length === 2 || specifier[2] === '/')\n ) {\n return true\n }\n }\n\n return false\n}\n\n/**\n * @param {string} specifier\n * @returns {boolean}\n */\nfunction shouldBeTreatedAsRelativeOrAbsolutePath(specifier) {\n if (specifier === '') return false\n if (specifier[0] === '/') return true\n return isRelativeSpecifier(specifier)\n}\n\n/**\n * The “Resolver Algorithm Specification” as detailed in the Node docs (which is\n * sync and slightly lower-level than `resolve`).\n *\n * @param {string} specifier\n * `/example.js`, `./example.js`, `../example.js`, `some-package`, `fs`, etc.\n * @param {URL} base\n * Full URL (to a file) that `specifier` is resolved relative from.\n * @param {Set} [conditions]\n * Conditions.\n * @param {boolean} [preserveSymlinks]\n * Keep symlinks instead of resolving them.\n * @returns {URL}\n * A URL object to the found thing.\n */\nfunction moduleResolve(specifier, base, conditions, preserveSymlinks) {\n // Note: The Node code supports `base` as a string (in this internal API) too,\n // we don’t.\n const protocol = base.protocol;\n const isData = protocol === 'data:';\n const isRemote = isData || protocol === 'http:' || protocol === 'https:';\n // Order swapped from spec for minor perf gain.\n // Ok since relative URLs cannot parse as URLs.\n /** @type {URL | undefined} */\n let resolved;\n\n if (shouldBeTreatedAsRelativeOrAbsolutePath(specifier)) {\n try {\n resolved = new URL$1(specifier, base);\n } catch (error_) {\n const error = new ERR_UNSUPPORTED_RESOLVE_REQUEST(specifier, base);\n error.cause = error_;\n throw error\n }\n } else if (protocol === 'file:' && specifier[0] === '#') {\n resolved = packageImportsResolve(specifier, base, conditions);\n } else {\n try {\n resolved = new URL$1(specifier);\n } catch (error_) {\n // Note: actual code uses `canBeRequiredWithoutScheme`.\n if (isRemote && !builtinModules.includes(specifier)) {\n const error = new ERR_UNSUPPORTED_RESOLVE_REQUEST(specifier, base);\n error.cause = error_;\n throw error\n }\n\n resolved = packageResolve(specifier, base, conditions);\n }\n }\n\n assert(resolved !== undefined, 'expected to be defined');\n\n if (resolved.protocol !== 'file:') {\n return resolved\n }\n\n return finalizeResolution(resolved, base, preserveSymlinks)\n}\n\n/**\n * @param {string} specifier\n * @param {URL | undefined} parsed\n * @param {URL | undefined} parsedParentURL\n */\nfunction checkIfDisallowedImport(specifier, parsed, parsedParentURL) {\n if (parsedParentURL) {\n // Avoid accessing the `protocol` property due to the lazy getters.\n const parentProtocol = parsedParentURL.protocol;\n\n if (parentProtocol === 'http:' || parentProtocol === 'https:') {\n if (shouldBeTreatedAsRelativeOrAbsolutePath(specifier)) {\n // Avoid accessing the `protocol` property due to the lazy getters.\n const parsedProtocol = parsed?.protocol;\n\n // `data:` and `blob:` disallowed due to allowing file: access via\n // indirection\n if (\n parsedProtocol &&\n parsedProtocol !== 'https:' &&\n parsedProtocol !== 'http:'\n ) {\n throw new ERR_NETWORK_IMPORT_DISALLOWED(\n specifier,\n parsedParentURL,\n 'remote imports cannot import from a local location.'\n )\n }\n\n return {url: parsed?.href || ''}\n }\n\n if (builtinModules.includes(specifier)) {\n throw new ERR_NETWORK_IMPORT_DISALLOWED(\n specifier,\n parsedParentURL,\n 'remote imports cannot import from a local location.'\n )\n }\n\n throw new ERR_NETWORK_IMPORT_DISALLOWED(\n specifier,\n parsedParentURL,\n 'only relative and absolute specifiers are supported.'\n )\n }\n }\n}\n\n// Note: this is from:\n// \n/**\n * Checks if a value has the shape of a WHATWG URL object.\n *\n * Using a symbol or instanceof would not be able to recognize URL objects\n * coming from other implementations (e.g. in Electron), so instead we are\n * checking some well known properties for a lack of a better test.\n *\n * We use `href` and `protocol` as they are the only properties that are\n * easy to retrieve and calculate due to the lazy nature of the getters.\n *\n * @template {unknown} Value\n * @param {Value} self\n * @returns {Value is URL}\n */\nfunction isURL(self) {\n return Boolean(\n self &&\n typeof self === 'object' &&\n 'href' in self &&\n typeof self.href === 'string' &&\n 'protocol' in self &&\n typeof self.protocol === 'string' &&\n self.href &&\n self.protocol\n )\n}\n\n/**\n * Validate user-input in `context` supplied by a custom loader.\n *\n * @param {unknown} parentURL\n * @returns {asserts parentURL is URL | string | undefined}\n */\nfunction throwIfInvalidParentURL(parentURL) {\n if (parentURL === undefined) {\n return // Main entry point, so no parent\n }\n\n if (typeof parentURL !== 'string' && !isURL(parentURL)) {\n throw new codes.ERR_INVALID_ARG_TYPE(\n 'parentURL',\n ['string', 'URL'],\n parentURL\n )\n }\n}\n\n/**\n * @param {string} specifier\n * @param {{parentURL?: string, conditions?: Array}} context\n * @returns {{url: string, format?: string | null}}\n */\nfunction defaultResolve(specifier, context = {}) {\n const {parentURL} = context;\n assert(parentURL !== undefined, 'expected `parentURL` to be defined');\n throwIfInvalidParentURL(parentURL);\n\n /** @type {URL | undefined} */\n let parsedParentURL;\n if (parentURL) {\n try {\n parsedParentURL = new URL$1(parentURL);\n } catch {\n // Ignore exception\n }\n }\n\n /** @type {URL | undefined} */\n let parsed;\n /** @type {string | undefined} */\n let protocol;\n\n try {\n parsed = shouldBeTreatedAsRelativeOrAbsolutePath(specifier)\n ? new URL$1(specifier, parsedParentURL)\n : new URL$1(specifier);\n\n // Avoid accessing the `protocol` property due to the lazy getters.\n protocol = parsed.protocol;\n\n if (protocol === 'data:') {\n return {url: parsed.href, format: null}\n }\n } catch {\n // Ignore exception\n }\n\n // There are multiple deep branches that can either throw or return; instead\n // of duplicating that deeply nested logic for the possible returns, DRY and\n // check for a return. This seems the least gnarly.\n const maybeReturn = checkIfDisallowedImport(\n specifier,\n parsed,\n parsedParentURL\n );\n\n if (maybeReturn) return maybeReturn\n\n // This must come after checkIfDisallowedImport\n if (protocol === undefined && parsed) {\n protocol = parsed.protocol;\n }\n\n if (protocol === 'node:') {\n return {url: specifier}\n }\n\n // This must come after checkIfDisallowedImport\n if (parsed && parsed.protocol === 'node:') return {url: specifier}\n\n const conditions = getConditionsSet(context.conditions);\n\n const url = moduleResolve(specifier, new URL$1(parentURL), conditions, false);\n\n return {\n // Do NOT cast `url` to a string: that will work even when there are real\n // problems, silencing them\n url: url.href,\n format: defaultGetFormatWithoutErrors(url, {parentURL})\n }\n}\n\n/**\n * @typedef {import('./lib/errors.js').ErrnoException} ErrnoException\n */\n\n\n/**\n * Match `import.meta.resolve` except that `parent` is required (you can pass\n * `import.meta.url`).\n *\n * @param {string} specifier\n * The module specifier to resolve relative to parent\n * (`/example.js`, `./example.js`, `../example.js`, `some-package`, `fs`,\n * etc).\n * @param {string} parent\n * The absolute parent module URL to resolve from.\n * You must pass `import.meta.url` or something else.\n * @returns {string}\n * Returns a string to a full `file:`, `data:`, or `node:` URL\n * to the found thing.\n */\nfunction resolve(specifier, parent) {\n if (!parent) {\n throw new Error(\n 'Please pass `parent`: `import-meta-resolve` cannot ponyfill that'\n )\n }\n\n try {\n return defaultResolve(specifier, {parentURL: parent}).url\n } catch (error) {\n // See: \n const exception = /** @type {ErrnoException} */ (error);\n\n if (\n (exception.code === 'ERR_UNSUPPORTED_DIR_IMPORT' ||\n exception.code === 'ERR_MODULE_NOT_FOUND') &&\n typeof exception.url === 'string'\n ) {\n return exception.url\n }\n\n throw error\n }\n}\n\nexport { moduleResolve, resolve };\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/core/node_modules/debug/LICENSE b/server/api/node_modules/@babel/core/node_modules/debug/LICENSE new file mode 100644 index 0000000..1a9820e --- /dev/null +++ b/server/api/node_modules/@babel/core/node_modules/debug/LICENSE @@ -0,0 +1,20 @@ +(The MIT License) + +Copyright (c) 2014-2017 TJ Holowaychuk +Copyright (c) 2018-2021 Josh Junon + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software +and associated documentation files (the 'Software'), to deal in the Software without restriction, +including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial +portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT +LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + diff --git a/server/api/node_modules/@babel/core/node_modules/debug/README.md b/server/api/node_modules/@babel/core/node_modules/debug/README.md new file mode 100644 index 0000000..9ebdfbf --- /dev/null +++ b/server/api/node_modules/@babel/core/node_modules/debug/README.md @@ -0,0 +1,481 @@ +# debug +[![OpenCollective](https://opencollective.com/debug/backers/badge.svg)](#backers) +[![OpenCollective](https://opencollective.com/debug/sponsors/badge.svg)](#sponsors) + + + +A tiny JavaScript debugging utility modelled after Node.js core's debugging +technique. Works in Node.js and web browsers. + +## Installation + +```bash +$ npm install debug +``` + +## Usage + +`debug` exposes a function; simply pass this function the name of your module, and it will return a decorated version of `console.error` for you to pass debug statements to. This will allow you to toggle the debug output for different parts of your module as well as the module as a whole. + +Example [_app.js_](./examples/node/app.js): + +```js +var debug = require('debug')('http') + , http = require('http') + , name = 'My App'; + +// fake app + +debug('booting %o', name); + +http.createServer(function(req, res){ + debug(req.method + ' ' + req.url); + res.end('hello\n'); +}).listen(3000, function(){ + debug('listening'); +}); + +// fake worker of some kind + +require('./worker'); +``` + +Example [_worker.js_](./examples/node/worker.js): + +```js +var a = require('debug')('worker:a') + , b = require('debug')('worker:b'); + +function work() { + a('doing lots of uninteresting work'); + setTimeout(work, Math.random() * 1000); +} + +work(); + +function workb() { + b('doing some work'); + setTimeout(workb, Math.random() * 2000); +} + +workb(); +``` + +The `DEBUG` environment variable is then used to enable these based on space or +comma-delimited names. + +Here are some examples: + +screen shot 2017-08-08 at 12 53 04 pm +screen shot 2017-08-08 at 12 53 38 pm +screen shot 2017-08-08 at 12 53 25 pm + +#### Windows command prompt notes + +##### CMD + +On Windows the environment variable is set using the `set` command. + +```cmd +set DEBUG=*,-not_this +``` + +Example: + +```cmd +set DEBUG=* & node app.js +``` + +##### PowerShell (VS Code default) + +PowerShell uses different syntax to set environment variables. + +```cmd +$env:DEBUG = "*,-not_this" +``` + +Example: + +```cmd +$env:DEBUG='app';node app.js +``` + +Then, run the program to be debugged as usual. + +npm script example: +```js + "windowsDebug": "@powershell -Command $env:DEBUG='*';node app.js", +``` + +## Namespace Colors + +Every debug instance has a color generated for it based on its namespace name. +This helps when visually parsing the debug output to identify which debug instance +a debug line belongs to. + +#### Node.js + +In Node.js, colors are enabled when stderr is a TTY. You also _should_ install +the [`supports-color`](https://npmjs.org/supports-color) module alongside debug, +otherwise debug will only use a small handful of basic colors. + + + +#### Web Browser + +Colors are also enabled on "Web Inspectors" that understand the `%c` formatting +option. These are WebKit web inspectors, Firefox ([since version +31](https://hacks.mozilla.org/2014/05/editable-box-model-multiple-selection-sublime-text-keys-much-more-firefox-developer-tools-episode-31/)) +and the Firebug plugin for Firefox (any version). + + + + +## Millisecond diff + +When actively developing an application it can be useful to see when the time spent between one `debug()` call and the next. Suppose for example you invoke `debug()` before requesting a resource, and after as well, the "+NNNms" will show you how much time was spent between calls. + + + +When stdout is not a TTY, `Date#toISOString()` is used, making it more useful for logging the debug information as shown below: + + + + +## Conventions + +If you're using this in one or more of your libraries, you _should_ use the name of your library so that developers may toggle debugging as desired without guessing names. If you have more than one debuggers you _should_ prefix them with your library name and use ":" to separate features. For example "bodyParser" from Connect would then be "connect:bodyParser". If you append a "*" to the end of your name, it will always be enabled regardless of the setting of the DEBUG environment variable. You can then use it for normal output as well as debug output. + +## Wildcards + +The `*` character may be used as a wildcard. Suppose for example your library has +debuggers named "connect:bodyParser", "connect:compress", "connect:session", +instead of listing all three with +`DEBUG=connect:bodyParser,connect:compress,connect:session`, you may simply do +`DEBUG=connect:*`, or to run everything using this module simply use `DEBUG=*`. + +You can also exclude specific debuggers by prefixing them with a "-" character. +For example, `DEBUG=*,-connect:*` would include all debuggers except those +starting with "connect:". + +## Environment Variables + +When running through Node.js, you can set a few environment variables that will +change the behavior of the debug logging: + +| Name | Purpose | +|-----------|-------------------------------------------------| +| `DEBUG` | Enables/disables specific debugging namespaces. | +| `DEBUG_HIDE_DATE` | Hide date from debug output (non-TTY). | +| `DEBUG_COLORS`| Whether or not to use colors in the debug output. | +| `DEBUG_DEPTH` | Object inspection depth. | +| `DEBUG_SHOW_HIDDEN` | Shows hidden properties on inspected objects. | + + +__Note:__ The environment variables beginning with `DEBUG_` end up being +converted into an Options object that gets used with `%o`/`%O` formatters. +See the Node.js documentation for +[`util.inspect()`](https://nodejs.org/api/util.html#util_util_inspect_object_options) +for the complete list. + +## Formatters + +Debug uses [printf-style](https://wikipedia.org/wiki/Printf_format_string) formatting. +Below are the officially supported formatters: + +| Formatter | Representation | +|-----------|----------------| +| `%O` | Pretty-print an Object on multiple lines. | +| `%o` | Pretty-print an Object all on a single line. | +| `%s` | String. | +| `%d` | Number (both integer and float). | +| `%j` | JSON. Replaced with the string '[Circular]' if the argument contains circular references. | +| `%%` | Single percent sign ('%'). This does not consume an argument. | + + +### Custom formatters + +You can add custom formatters by extending the `debug.formatters` object. +For example, if you wanted to add support for rendering a Buffer as hex with +`%h`, you could do something like: + +```js +const createDebug = require('debug') +createDebug.formatters.h = (v) => { + return v.toString('hex') +} + +// …elsewhere +const debug = createDebug('foo') +debug('this is hex: %h', new Buffer('hello world')) +// foo this is hex: 68656c6c6f20776f726c6421 +0ms +``` + + +## Browser Support + +You can build a browser-ready script using [browserify](https://github.com/substack/node-browserify), +or just use the [browserify-as-a-service](https://wzrd.in/) [build](https://wzrd.in/standalone/debug@latest), +if you don't want to build it yourself. + +Debug's enable state is currently persisted by `localStorage`. +Consider the situation shown below where you have `worker:a` and `worker:b`, +and wish to debug both. You can enable this using `localStorage.debug`: + +```js +localStorage.debug = 'worker:*' +``` + +And then refresh the page. + +```js +a = debug('worker:a'); +b = debug('worker:b'); + +setInterval(function(){ + a('doing some work'); +}, 1000); + +setInterval(function(){ + b('doing some work'); +}, 1200); +``` + +In Chromium-based web browsers (e.g. Brave, Chrome, and Electron), the JavaScript console will—by default—only show messages logged by `debug` if the "Verbose" log level is _enabled_. + + + +## Output streams + + By default `debug` will log to stderr, however this can be configured per-namespace by overriding the `log` method: + +Example [_stdout.js_](./examples/node/stdout.js): + +```js +var debug = require('debug'); +var error = debug('app:error'); + +// by default stderr is used +error('goes to stderr!'); + +var log = debug('app:log'); +// set this namespace to log via console.log +log.log = console.log.bind(console); // don't forget to bind to console! +log('goes to stdout'); +error('still goes to stderr!'); + +// set all output to go via console.info +// overrides all per-namespace log settings +debug.log = console.info.bind(console); +error('now goes to stdout via console.info'); +log('still goes to stdout, but via console.info now'); +``` + +## Extend +You can simply extend debugger +```js +const log = require('debug')('auth'); + +//creates new debug instance with extended namespace +const logSign = log.extend('sign'); +const logLogin = log.extend('login'); + +log('hello'); // auth hello +logSign('hello'); //auth:sign hello +logLogin('hello'); //auth:login hello +``` + +## Set dynamically + +You can also enable debug dynamically by calling the `enable()` method : + +```js +let debug = require('debug'); + +console.log(1, debug.enabled('test')); + +debug.enable('test'); +console.log(2, debug.enabled('test')); + +debug.disable(); +console.log(3, debug.enabled('test')); + +``` + +print : +``` +1 false +2 true +3 false +``` + +Usage : +`enable(namespaces)` +`namespaces` can include modes separated by a colon and wildcards. + +Note that calling `enable()` completely overrides previously set DEBUG variable : + +``` +$ DEBUG=foo node -e 'var dbg = require("debug"); dbg.enable("bar"); console.log(dbg.enabled("foo"))' +=> false +``` + +`disable()` + +Will disable all namespaces. The functions returns the namespaces currently +enabled (and skipped). This can be useful if you want to disable debugging +temporarily without knowing what was enabled to begin with. + +For example: + +```js +let debug = require('debug'); +debug.enable('foo:*,-foo:bar'); +let namespaces = debug.disable(); +debug.enable(namespaces); +``` + +Note: There is no guarantee that the string will be identical to the initial +enable string, but semantically they will be identical. + +## Checking whether a debug target is enabled + +After you've created a debug instance, you can determine whether or not it is +enabled by checking the `enabled` property: + +```javascript +const debug = require('debug')('http'); + +if (debug.enabled) { + // do stuff... +} +``` + +You can also manually toggle this property to force the debug instance to be +enabled or disabled. + +## Usage in child processes + +Due to the way `debug` detects if the output is a TTY or not, colors are not shown in child processes when `stderr` is piped. A solution is to pass the `DEBUG_COLORS=1` environment variable to the child process. +For example: + +```javascript +worker = fork(WORKER_WRAP_PATH, [workerPath], { + stdio: [ + /* stdin: */ 0, + /* stdout: */ 'pipe', + /* stderr: */ 'pipe', + 'ipc', + ], + env: Object.assign({}, process.env, { + DEBUG_COLORS: 1 // without this settings, colors won't be shown + }), +}); + +worker.stderr.pipe(process.stderr, { end: false }); +``` + + +## Authors + + - TJ Holowaychuk + - Nathan Rajlich + - Andrew Rhyne + - Josh Junon + +## Backers + +Support us with a monthly donation and help us continue our activities. [[Become a backer](https://opencollective.com/debug#backer)] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +## Sponsors + +Become a sponsor and get your logo on our README on Github with a link to your site. [[Become a sponsor](https://opencollective.com/debug#sponsor)] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +## License + +(The MIT License) + +Copyright (c) 2014-2017 TJ Holowaychuk <tj@vision-media.ca> +Copyright (c) 2018-2021 Josh Junon + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/server/api/node_modules/@babel/core/node_modules/debug/package.json b/server/api/node_modules/@babel/core/node_modules/debug/package.json new file mode 100644 index 0000000..ee8abb5 --- /dev/null +++ b/server/api/node_modules/@babel/core/node_modules/debug/package.json @@ -0,0 +1,64 @@ +{ + "name": "debug", + "version": "4.4.3", + "repository": { + "type": "git", + "url": "git://github.com/debug-js/debug.git" + }, + "description": "Lightweight debugging utility for Node.js and the browser", + "keywords": [ + "debug", + "log", + "debugger" + ], + "files": [ + "src", + "LICENSE", + "README.md" + ], + "author": "Josh Junon (https://github.com/qix-)", + "contributors": [ + "TJ Holowaychuk ", + "Nathan Rajlich (http://n8.io)", + "Andrew Rhyne " + ], + "license": "MIT", + "scripts": { + "lint": "xo", + "test": "npm run test:node && npm run test:browser && npm run lint", + "test:node": "mocha test.js test.node.js", + "test:browser": "karma start --single-run", + "test:coverage": "cat ./coverage/lcov.info | coveralls" + }, + "dependencies": { + "ms": "^2.1.3" + }, + "devDependencies": { + "brfs": "^2.0.1", + "browserify": "^16.2.3", + "coveralls": "^3.0.2", + "karma": "^3.1.4", + "karma-browserify": "^6.0.0", + "karma-chrome-launcher": "^2.2.0", + "karma-mocha": "^1.3.0", + "mocha": "^5.2.0", + "mocha-lcov-reporter": "^1.2.0", + "sinon": "^14.0.0", + "xo": "^0.23.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + }, + "main": "./src/index.js", + "browser": "./src/browser.js", + "engines": { + "node": ">=6.0" + }, + "xo": { + "rules": { + "import/extensions": "off" + } + } +} diff --git a/server/api/node_modules/@babel/core/node_modules/debug/src/browser.js b/server/api/node_modules/@babel/core/node_modules/debug/src/browser.js new file mode 100644 index 0000000..5993451 --- /dev/null +++ b/server/api/node_modules/@babel/core/node_modules/debug/src/browser.js @@ -0,0 +1,272 @@ +/* eslint-env browser */ + +/** + * This is the web browser implementation of `debug()`. + */ + +exports.formatArgs = formatArgs; +exports.save = save; +exports.load = load; +exports.useColors = useColors; +exports.storage = localstorage(); +exports.destroy = (() => { + let warned = false; + + return () => { + if (!warned) { + warned = true; + console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'); + } + }; +})(); + +/** + * Colors. + */ + +exports.colors = [ + '#0000CC', + '#0000FF', + '#0033CC', + '#0033FF', + '#0066CC', + '#0066FF', + '#0099CC', + '#0099FF', + '#00CC00', + '#00CC33', + '#00CC66', + '#00CC99', + '#00CCCC', + '#00CCFF', + '#3300CC', + '#3300FF', + '#3333CC', + '#3333FF', + '#3366CC', + '#3366FF', + '#3399CC', + '#3399FF', + '#33CC00', + '#33CC33', + '#33CC66', + '#33CC99', + '#33CCCC', + '#33CCFF', + '#6600CC', + '#6600FF', + '#6633CC', + '#6633FF', + '#66CC00', + '#66CC33', + '#9900CC', + '#9900FF', + '#9933CC', + '#9933FF', + '#99CC00', + '#99CC33', + '#CC0000', + '#CC0033', + '#CC0066', + '#CC0099', + '#CC00CC', + '#CC00FF', + '#CC3300', + '#CC3333', + '#CC3366', + '#CC3399', + '#CC33CC', + '#CC33FF', + '#CC6600', + '#CC6633', + '#CC9900', + '#CC9933', + '#CCCC00', + '#CCCC33', + '#FF0000', + '#FF0033', + '#FF0066', + '#FF0099', + '#FF00CC', + '#FF00FF', + '#FF3300', + '#FF3333', + '#FF3366', + '#FF3399', + '#FF33CC', + '#FF33FF', + '#FF6600', + '#FF6633', + '#FF9900', + '#FF9933', + '#FFCC00', + '#FFCC33' +]; + +/** + * Currently only WebKit-based Web Inspectors, Firefox >= v31, + * and the Firebug extension (any Firefox version) are known + * to support "%c" CSS customizations. + * + * TODO: add a `localStorage` variable to explicitly enable/disable colors + */ + +// eslint-disable-next-line complexity +function useColors() { + // NB: In an Electron preload script, document will be defined but not fully + // initialized. Since we know we're in Chrome, we'll just detect this case + // explicitly + if (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) { + return true; + } + + // Internet Explorer and Edge do not support colors. + if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) { + return false; + } + + let m; + + // Is webkit? http://stackoverflow.com/a/16459606/376773 + // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632 + // eslint-disable-next-line no-return-assign + return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) || + // Is firebug? http://stackoverflow.com/a/398120/376773 + (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) || + // Is firefox >= v31? + // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages + (typeof navigator !== 'undefined' && navigator.userAgent && (m = navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)) && parseInt(m[1], 10) >= 31) || + // Double check webkit in userAgent just in case we are in a worker + (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)); +} + +/** + * Colorize log arguments if enabled. + * + * @api public + */ + +function formatArgs(args) { + args[0] = (this.useColors ? '%c' : '') + + this.namespace + + (this.useColors ? ' %c' : ' ') + + args[0] + + (this.useColors ? '%c ' : ' ') + + '+' + module.exports.humanize(this.diff); + + if (!this.useColors) { + return; + } + + const c = 'color: ' + this.color; + args.splice(1, 0, c, 'color: inherit'); + + // The final "%c" is somewhat tricky, because there could be other + // arguments passed either before or after the %c, so we need to + // figure out the correct index to insert the CSS into + let index = 0; + let lastC = 0; + args[0].replace(/%[a-zA-Z%]/g, match => { + if (match === '%%') { + return; + } + index++; + if (match === '%c') { + // We only are interested in the *last* %c + // (the user may have provided their own) + lastC = index; + } + }); + + args.splice(lastC, 0, c); +} + +/** + * Invokes `console.debug()` when available. + * No-op when `console.debug` is not a "function". + * If `console.debug` is not available, falls back + * to `console.log`. + * + * @api public + */ +exports.log = console.debug || console.log || (() => {}); + +/** + * Save `namespaces`. + * + * @param {String} namespaces + * @api private + */ +function save(namespaces) { + try { + if (namespaces) { + exports.storage.setItem('debug', namespaces); + } else { + exports.storage.removeItem('debug'); + } + } catch (error) { + // Swallow + // XXX (@Qix-) should we be logging these? + } +} + +/** + * Load `namespaces`. + * + * @return {String} returns the previously persisted debug modes + * @api private + */ +function load() { + let r; + try { + r = exports.storage.getItem('debug') || exports.storage.getItem('DEBUG') ; + } catch (error) { + // Swallow + // XXX (@Qix-) should we be logging these? + } + + // If debug isn't set in LS, and we're in Electron, try to load $DEBUG + if (!r && typeof process !== 'undefined' && 'env' in process) { + r = process.env.DEBUG; + } + + return r; +} + +/** + * Localstorage attempts to return the localstorage. + * + * This is necessary because safari throws + * when a user disables cookies/localstorage + * and you attempt to access it. + * + * @return {LocalStorage} + * @api private + */ + +function localstorage() { + try { + // TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context + // The Browser also has localStorage in the global context. + return localStorage; + } catch (error) { + // Swallow + // XXX (@Qix-) should we be logging these? + } +} + +module.exports = require('./common')(exports); + +const {formatters} = module.exports; + +/** + * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default. + */ + +formatters.j = function (v) { + try { + return JSON.stringify(v); + } catch (error) { + return '[UnexpectedJSONParseError]: ' + error.message; + } +}; diff --git a/server/api/node_modules/@babel/core/node_modules/debug/src/common.js b/server/api/node_modules/@babel/core/node_modules/debug/src/common.js new file mode 100644 index 0000000..141cb57 --- /dev/null +++ b/server/api/node_modules/@babel/core/node_modules/debug/src/common.js @@ -0,0 +1,292 @@ + +/** + * This is the common logic for both the Node.js and web browser + * implementations of `debug()`. + */ + +function setup(env) { + createDebug.debug = createDebug; + createDebug.default = createDebug; + createDebug.coerce = coerce; + createDebug.disable = disable; + createDebug.enable = enable; + createDebug.enabled = enabled; + createDebug.humanize = require('ms'); + createDebug.destroy = destroy; + + Object.keys(env).forEach(key => { + createDebug[key] = env[key]; + }); + + /** + * The currently active debug mode names, and names to skip. + */ + + createDebug.names = []; + createDebug.skips = []; + + /** + * Map of special "%n" handling functions, for the debug "format" argument. + * + * Valid key names are a single, lower or upper-case letter, i.e. "n" and "N". + */ + createDebug.formatters = {}; + + /** + * Selects a color for a debug namespace + * @param {String} namespace The namespace string for the debug instance to be colored + * @return {Number|String} An ANSI color code for the given namespace + * @api private + */ + function selectColor(namespace) { + let hash = 0; + + for (let i = 0; i < namespace.length; i++) { + hash = ((hash << 5) - hash) + namespace.charCodeAt(i); + hash |= 0; // Convert to 32bit integer + } + + return createDebug.colors[Math.abs(hash) % createDebug.colors.length]; + } + createDebug.selectColor = selectColor; + + /** + * Create a debugger with the given `namespace`. + * + * @param {String} namespace + * @return {Function} + * @api public + */ + function createDebug(namespace) { + let prevTime; + let enableOverride = null; + let namespacesCache; + let enabledCache; + + function debug(...args) { + // Disabled? + if (!debug.enabled) { + return; + } + + const self = debug; + + // Set `diff` timestamp + const curr = Number(new Date()); + const ms = curr - (prevTime || curr); + self.diff = ms; + self.prev = prevTime; + self.curr = curr; + prevTime = curr; + + args[0] = createDebug.coerce(args[0]); + + if (typeof args[0] !== 'string') { + // Anything else let's inspect with %O + args.unshift('%O'); + } + + // Apply any `formatters` transformations + let index = 0; + args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => { + // If we encounter an escaped % then don't increase the array index + if (match === '%%') { + return '%'; + } + index++; + const formatter = createDebug.formatters[format]; + if (typeof formatter === 'function') { + const val = args[index]; + match = formatter.call(self, val); + + // Now we need to remove `args[index]` since it's inlined in the `format` + args.splice(index, 1); + index--; + } + return match; + }); + + // Apply env-specific formatting (colors, etc.) + createDebug.formatArgs.call(self, args); + + const logFn = self.log || createDebug.log; + logFn.apply(self, args); + } + + debug.namespace = namespace; + debug.useColors = createDebug.useColors(); + debug.color = createDebug.selectColor(namespace); + debug.extend = extend; + debug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release. + + Object.defineProperty(debug, 'enabled', { + enumerable: true, + configurable: false, + get: () => { + if (enableOverride !== null) { + return enableOverride; + } + if (namespacesCache !== createDebug.namespaces) { + namespacesCache = createDebug.namespaces; + enabledCache = createDebug.enabled(namespace); + } + + return enabledCache; + }, + set: v => { + enableOverride = v; + } + }); + + // Env-specific initialization logic for debug instances + if (typeof createDebug.init === 'function') { + createDebug.init(debug); + } + + return debug; + } + + function extend(namespace, delimiter) { + const newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace); + newDebug.log = this.log; + return newDebug; + } + + /** + * Enables a debug mode by namespaces. This can include modes + * separated by a colon and wildcards. + * + * @param {String} namespaces + * @api public + */ + function enable(namespaces) { + createDebug.save(namespaces); + createDebug.namespaces = namespaces; + + createDebug.names = []; + createDebug.skips = []; + + const split = (typeof namespaces === 'string' ? namespaces : '') + .trim() + .replace(/\s+/g, ',') + .split(',') + .filter(Boolean); + + for (const ns of split) { + if (ns[0] === '-') { + createDebug.skips.push(ns.slice(1)); + } else { + createDebug.names.push(ns); + } + } + } + + /** + * Checks if the given string matches a namespace template, honoring + * asterisks as wildcards. + * + * @param {String} search + * @param {String} template + * @return {Boolean} + */ + function matchesTemplate(search, template) { + let searchIndex = 0; + let templateIndex = 0; + let starIndex = -1; + let matchIndex = 0; + + while (searchIndex < search.length) { + if (templateIndex < template.length && (template[templateIndex] === search[searchIndex] || template[templateIndex] === '*')) { + // Match character or proceed with wildcard + if (template[templateIndex] === '*') { + starIndex = templateIndex; + matchIndex = searchIndex; + templateIndex++; // Skip the '*' + } else { + searchIndex++; + templateIndex++; + } + } else if (starIndex !== -1) { // eslint-disable-line no-negated-condition + // Backtrack to the last '*' and try to match more characters + templateIndex = starIndex + 1; + matchIndex++; + searchIndex = matchIndex; + } else { + return false; // No match + } + } + + // Handle trailing '*' in template + while (templateIndex < template.length && template[templateIndex] === '*') { + templateIndex++; + } + + return templateIndex === template.length; + } + + /** + * Disable debug output. + * + * @return {String} namespaces + * @api public + */ + function disable() { + const namespaces = [ + ...createDebug.names, + ...createDebug.skips.map(namespace => '-' + namespace) + ].join(','); + createDebug.enable(''); + return namespaces; + } + + /** + * Returns true if the given mode name is enabled, false otherwise. + * + * @param {String} name + * @return {Boolean} + * @api public + */ + function enabled(name) { + for (const skip of createDebug.skips) { + if (matchesTemplate(name, skip)) { + return false; + } + } + + for (const ns of createDebug.names) { + if (matchesTemplate(name, ns)) { + return true; + } + } + + return false; + } + + /** + * Coerce `val`. + * + * @param {Mixed} val + * @return {Mixed} + * @api private + */ + function coerce(val) { + if (val instanceof Error) { + return val.stack || val.message; + } + return val; + } + + /** + * XXX DO NOT USE. This is a temporary stub function. + * XXX It WILL be removed in the next major release. + */ + function destroy() { + console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'); + } + + createDebug.enable(createDebug.load()); + + return createDebug; +} + +module.exports = setup; diff --git a/server/api/node_modules/@babel/core/node_modules/debug/src/index.js b/server/api/node_modules/@babel/core/node_modules/debug/src/index.js new file mode 100644 index 0000000..bf4c57f --- /dev/null +++ b/server/api/node_modules/@babel/core/node_modules/debug/src/index.js @@ -0,0 +1,10 @@ +/** + * Detect Electron renderer / nwjs process, which is node, but we should + * treat as a browser. + */ + +if (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) { + module.exports = require('./browser.js'); +} else { + module.exports = require('./node.js'); +} diff --git a/server/api/node_modules/@babel/core/node_modules/debug/src/node.js b/server/api/node_modules/@babel/core/node_modules/debug/src/node.js new file mode 100644 index 0000000..715560a --- /dev/null +++ b/server/api/node_modules/@babel/core/node_modules/debug/src/node.js @@ -0,0 +1,263 @@ +/** + * Module dependencies. + */ + +const tty = require('tty'); +const util = require('util'); + +/** + * This is the Node.js implementation of `debug()`. + */ + +exports.init = init; +exports.log = log; +exports.formatArgs = formatArgs; +exports.save = save; +exports.load = load; +exports.useColors = useColors; +exports.destroy = util.deprecate( + () => {}, + 'Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.' +); + +/** + * Colors. + */ + +exports.colors = [6, 2, 3, 4, 5, 1]; + +try { + // Optional dependency (as in, doesn't need to be installed, NOT like optionalDependencies in package.json) + // eslint-disable-next-line import/no-extraneous-dependencies + const supportsColor = require('supports-color'); + + if (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) { + exports.colors = [ + 20, + 21, + 26, + 27, + 32, + 33, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 56, + 57, + 62, + 63, + 68, + 69, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 92, + 93, + 98, + 99, + 112, + 113, + 128, + 129, + 134, + 135, + 148, + 149, + 160, + 161, + 162, + 163, + 164, + 165, + 166, + 167, + 168, + 169, + 170, + 171, + 172, + 173, + 178, + 179, + 184, + 185, + 196, + 197, + 198, + 199, + 200, + 201, + 202, + 203, + 204, + 205, + 206, + 207, + 208, + 209, + 214, + 215, + 220, + 221 + ]; + } +} catch (error) { + // Swallow - we only care if `supports-color` is available; it doesn't have to be. +} + +/** + * Build up the default `inspectOpts` object from the environment variables. + * + * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js + */ + +exports.inspectOpts = Object.keys(process.env).filter(key => { + return /^debug_/i.test(key); +}).reduce((obj, key) => { + // Camel-case + const prop = key + .substring(6) + .toLowerCase() + .replace(/_([a-z])/g, (_, k) => { + return k.toUpperCase(); + }); + + // Coerce string value into JS value + let val = process.env[key]; + if (/^(yes|on|true|enabled)$/i.test(val)) { + val = true; + } else if (/^(no|off|false|disabled)$/i.test(val)) { + val = false; + } else if (val === 'null') { + val = null; + } else { + val = Number(val); + } + + obj[prop] = val; + return obj; +}, {}); + +/** + * Is stdout a TTY? Colored output is enabled when `true`. + */ + +function useColors() { + return 'colors' in exports.inspectOpts ? + Boolean(exports.inspectOpts.colors) : + tty.isatty(process.stderr.fd); +} + +/** + * Adds ANSI color escape codes if enabled. + * + * @api public + */ + +function formatArgs(args) { + const {namespace: name, useColors} = this; + + if (useColors) { + const c = this.color; + const colorCode = '\u001B[3' + (c < 8 ? c : '8;5;' + c); + const prefix = ` ${colorCode};1m${name} \u001B[0m`; + + args[0] = prefix + args[0].split('\n').join('\n' + prefix); + args.push(colorCode + 'm+' + module.exports.humanize(this.diff) + '\u001B[0m'); + } else { + args[0] = getDate() + name + ' ' + args[0]; + } +} + +function getDate() { + if (exports.inspectOpts.hideDate) { + return ''; + } + return new Date().toISOString() + ' '; +} + +/** + * Invokes `util.formatWithOptions()` with the specified arguments and writes to stderr. + */ + +function log(...args) { + return process.stderr.write(util.formatWithOptions(exports.inspectOpts, ...args) + '\n'); +} + +/** + * Save `namespaces`. + * + * @param {String} namespaces + * @api private + */ +function save(namespaces) { + if (namespaces) { + process.env.DEBUG = namespaces; + } else { + // If you set a process.env field to null or undefined, it gets cast to the + // string 'null' or 'undefined'. Just delete instead. + delete process.env.DEBUG; + } +} + +/** + * Load `namespaces`. + * + * @return {String} returns the previously persisted debug modes + * @api private + */ + +function load() { + return process.env.DEBUG; +} + +/** + * Init logic for `debug` instances. + * + * Create a new `inspectOpts` object in case `useColors` is set + * differently for a particular `debug` instance. + */ + +function init(debug) { + debug.inspectOpts = {}; + + const keys = Object.keys(exports.inspectOpts); + for (let i = 0; i < keys.length; i++) { + debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]]; + } +} + +module.exports = require('./common')(exports); + +const {formatters} = module.exports; + +/** + * Map %o to `util.inspect()`, all on a single line. + */ + +formatters.o = function (v) { + this.inspectOpts.colors = this.useColors; + return util.inspect(v, this.inspectOpts) + .split('\n') + .map(str => str.trim()) + .join(' '); +}; + +/** + * Map %O to `util.inspect()`, allowing multiple lines if needed. + */ + +formatters.O = function (v) { + this.inspectOpts.colors = this.useColors; + return util.inspect(v, this.inspectOpts); +}; diff --git a/server/api/node_modules/@babel/core/node_modules/ms/index.js b/server/api/node_modules/@babel/core/node_modules/ms/index.js new file mode 100644 index 0000000..ea734fb --- /dev/null +++ b/server/api/node_modules/@babel/core/node_modules/ms/index.js @@ -0,0 +1,162 @@ +/** + * Helpers. + */ + +var s = 1000; +var m = s * 60; +var h = m * 60; +var d = h * 24; +var w = d * 7; +var y = d * 365.25; + +/** + * Parse or format the given `val`. + * + * Options: + * + * - `long` verbose formatting [false] + * + * @param {String|Number} val + * @param {Object} [options] + * @throws {Error} throw an error if val is not a non-empty string or a number + * @return {String|Number} + * @api public + */ + +module.exports = function (val, options) { + options = options || {}; + var type = typeof val; + if (type === 'string' && val.length > 0) { + return parse(val); + } else if (type === 'number' && isFinite(val)) { + return options.long ? fmtLong(val) : fmtShort(val); + } + throw new Error( + 'val is not a non-empty string or a valid number. val=' + + JSON.stringify(val) + ); +}; + +/** + * Parse the given `str` and return milliseconds. + * + * @param {String} str + * @return {Number} + * @api private + */ + +function parse(str) { + str = String(str); + if (str.length > 100) { + return; + } + var match = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec( + str + ); + if (!match) { + return; + } + var n = parseFloat(match[1]); + var type = (match[2] || 'ms').toLowerCase(); + switch (type) { + case 'years': + case 'year': + case 'yrs': + case 'yr': + case 'y': + return n * y; + case 'weeks': + case 'week': + case 'w': + return n * w; + case 'days': + case 'day': + case 'd': + return n * d; + case 'hours': + case 'hour': + case 'hrs': + case 'hr': + case 'h': + return n * h; + case 'minutes': + case 'minute': + case 'mins': + case 'min': + case 'm': + return n * m; + case 'seconds': + case 'second': + case 'secs': + case 'sec': + case 's': + return n * s; + case 'milliseconds': + case 'millisecond': + case 'msecs': + case 'msec': + case 'ms': + return n; + default: + return undefined; + } +} + +/** + * Short format for `ms`. + * + * @param {Number} ms + * @return {String} + * @api private + */ + +function fmtShort(ms) { + var msAbs = Math.abs(ms); + if (msAbs >= d) { + return Math.round(ms / d) + 'd'; + } + if (msAbs >= h) { + return Math.round(ms / h) + 'h'; + } + if (msAbs >= m) { + return Math.round(ms / m) + 'm'; + } + if (msAbs >= s) { + return Math.round(ms / s) + 's'; + } + return ms + 'ms'; +} + +/** + * Long format for `ms`. + * + * @param {Number} ms + * @return {String} + * @api private + */ + +function fmtLong(ms) { + var msAbs = Math.abs(ms); + if (msAbs >= d) { + return plural(ms, msAbs, d, 'day'); + } + if (msAbs >= h) { + return plural(ms, msAbs, h, 'hour'); + } + if (msAbs >= m) { + return plural(ms, msAbs, m, 'minute'); + } + if (msAbs >= s) { + return plural(ms, msAbs, s, 'second'); + } + return ms + ' ms'; +} + +/** + * Pluralization helper. + */ + +function plural(ms, msAbs, n, name) { + var isPlural = msAbs >= n * 1.5; + return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : ''); +} diff --git a/server/api/node_modules/@babel/core/node_modules/ms/license.md b/server/api/node_modules/@babel/core/node_modules/ms/license.md new file mode 100644 index 0000000..fa5d39b --- /dev/null +++ b/server/api/node_modules/@babel/core/node_modules/ms/license.md @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2020 Vercel, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/server/api/node_modules/@babel/core/node_modules/ms/package.json b/server/api/node_modules/@babel/core/node_modules/ms/package.json new file mode 100644 index 0000000..4997189 --- /dev/null +++ b/server/api/node_modules/@babel/core/node_modules/ms/package.json @@ -0,0 +1,38 @@ +{ + "name": "ms", + "version": "2.1.3", + "description": "Tiny millisecond conversion utility", + "repository": "vercel/ms", + "main": "./index", + "files": [ + "index.js" + ], + "scripts": { + "precommit": "lint-staged", + "lint": "eslint lib/* bin/*", + "test": "mocha tests.js" + }, + "eslintConfig": { + "extends": "eslint:recommended", + "env": { + "node": true, + "es6": true + } + }, + "lint-staged": { + "*.js": [ + "npm run lint", + "prettier --single-quote --write", + "git add" + ] + }, + "license": "MIT", + "devDependencies": { + "eslint": "4.18.2", + "expect.js": "0.3.1", + "husky": "0.14.3", + "lint-staged": "5.0.0", + "mocha": "4.0.1", + "prettier": "2.0.5" + } +} diff --git a/server/api/node_modules/@babel/core/node_modules/ms/readme.md b/server/api/node_modules/@babel/core/node_modules/ms/readme.md new file mode 100644 index 0000000..0fc1abb --- /dev/null +++ b/server/api/node_modules/@babel/core/node_modules/ms/readme.md @@ -0,0 +1,59 @@ +# ms + +![CI](https://github.com/vercel/ms/workflows/CI/badge.svg) + +Use this package to easily convert various time formats to milliseconds. + +## Examples + +```js +ms('2 days') // 172800000 +ms('1d') // 86400000 +ms('10h') // 36000000 +ms('2.5 hrs') // 9000000 +ms('2h') // 7200000 +ms('1m') // 60000 +ms('5s') // 5000 +ms('1y') // 31557600000 +ms('100') // 100 +ms('-3 days') // -259200000 +ms('-1h') // -3600000 +ms('-200') // -200 +``` + +### Convert from Milliseconds + +```js +ms(60000) // "1m" +ms(2 * 60000) // "2m" +ms(-3 * 60000) // "-3m" +ms(ms('10 hours')) // "10h" +``` + +### Time Format Written-Out + +```js +ms(60000, { long: true }) // "1 minute" +ms(2 * 60000, { long: true }) // "2 minutes" +ms(-3 * 60000, { long: true }) // "-3 minutes" +ms(ms('10 hours'), { long: true }) // "10 hours" +``` + +## Features + +- Works both in [Node.js](https://nodejs.org) and in the browser +- If a number is supplied to `ms`, a string with a unit is returned +- If a string that contains the number is supplied, it returns it as a number (e.g.: it returns `100` for `'100'`) +- If you pass a string with a number and a valid unit, the number of equivalent milliseconds is returned + +## Related Packages + +- [ms.macro](https://github.com/knpwrs/ms.macro) - Run `ms` as a macro at build-time. + +## Caught a Bug? + +1. [Fork](https://help.github.com/articles/fork-a-repo/) this repository to your own GitHub account and then [clone](https://help.github.com/articles/cloning-a-repository/) it to your local device +2. Link the package to the global module directory: `npm link` +3. Within the module you want to test your local development instance of ms, just link it to the dependencies: `npm link ms`. Instead of the default one from npm, Node.js will now use your clone of ms! + +As always, you can run the tests using: `npm test` diff --git a/server/api/node_modules/@babel/core/package.json b/server/api/node_modules/@babel/core/package.json new file mode 100644 index 0000000..181350a --- /dev/null +++ b/server/api/node_modules/@babel/core/package.json @@ -0,0 +1,82 @@ +{ + "name": "@babel/core", + "version": "7.29.0", + "description": "Babel compiler core.", + "main": "./lib/index.js", + "author": "The Babel Team (https://babel.dev/team)", + "license": "MIT", + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "https://github.com/babel/babel.git", + "directory": "packages/babel-core" + }, + "homepage": "https://babel.dev/docs/en/next/babel-core", + "bugs": "https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3A%22pkg%3A%20core%22+is%3Aopen", + "keywords": [ + "6to5", + "babel", + "classes", + "const", + "es6", + "harmony", + "let", + "modules", + "transpile", + "transpiler", + "var", + "babel-core", + "compiler" + ], + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + }, + "browser": { + "./lib/config/files/index.js": "./lib/config/files/index-browser.js", + "./lib/config/resolve-targets.js": "./lib/config/resolve-targets-browser.js", + "./lib/transform-file.js": "./lib/transform-file-browser.js", + "./src/config/files/index.ts": "./src/config/files/index-browser.ts", + "./src/config/resolve-targets.ts": "./src/config/resolve-targets-browser.ts", + "./src/transform-file.ts": "./src/transform-file-browser.ts" + }, + "dependencies": { + "@babel/code-frame": "^7.29.0", + "@babel/generator": "^7.29.0", + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-module-transforms": "^7.28.6", + "@babel/helpers": "^7.28.6", + "@babel/parser": "^7.29.0", + "@babel/template": "^7.28.6", + "@babel/traverse": "^7.29.0", + "@babel/types": "^7.29.0", + "@jridgewell/remapping": "^2.3.5", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "devDependencies": { + "@babel/helper-transform-fixture-test-runner": "^7.28.6", + "@babel/plugin-syntax-flow": "^7.28.6", + "@babel/plugin-transform-flow-strip-types": "^7.27.1", + "@babel/plugin-transform-modules-commonjs": "^7.28.6", + "@babel/preset-env": "^7.29.0", + "@babel/preset-typescript": "^7.28.5", + "@jridgewell/trace-mapping": "^0.3.28", + "@types/convert-source-map": "^2.0.0", + "@types/debug": "^4.1.0", + "@types/resolve": "^1.3.2", + "@types/semver": "^5.4.0", + "rimraf": "^3.0.0", + "ts-node": "^11.0.0-beta.1", + "tsx": "^4.20.3" + }, + "type": "commonjs" +} \ No newline at end of file diff --git a/server/api/node_modules/@babel/core/src/config/files/index-browser.ts b/server/api/node_modules/@babel/core/src/config/files/index-browser.ts new file mode 100644 index 0000000..435c068 --- /dev/null +++ b/server/api/node_modules/@babel/core/src/config/files/index-browser.ts @@ -0,0 +1,115 @@ +/* c8 ignore start */ + +import type { Handler } from "gensync"; + +import type { + ConfigFile, + IgnoreFile, + RelativeConfig, + FilePackageData, +} from "./types.ts"; + +import type { CallerMetadata } from "../validation/options.ts"; + +export type { ConfigFile, IgnoreFile, RelativeConfig, FilePackageData }; + +export function findConfigUpwards( + // eslint-disable-next-line @typescript-eslint/no-unused-vars + rootDir: string, +): string | null { + return null; +} + +// eslint-disable-next-line require-yield +export function* findPackageData(filepath: string): Handler { + return { + filepath, + directories: [], + pkg: null, + isPackage: false, + }; +} + +// eslint-disable-next-line require-yield +export function* findRelativeConfig( + // eslint-disable-next-line @typescript-eslint/no-unused-vars + pkgData: FilePackageData, + // eslint-disable-next-line @typescript-eslint/no-unused-vars + envName: string, + // eslint-disable-next-line @typescript-eslint/no-unused-vars + caller: CallerMetadata | undefined, +): Handler { + return { config: null, ignore: null }; +} + +// eslint-disable-next-line require-yield +export function* findRootConfig( + // eslint-disable-next-line @typescript-eslint/no-unused-vars + dirname: string, + // eslint-disable-next-line @typescript-eslint/no-unused-vars + envName: string, + // eslint-disable-next-line @typescript-eslint/no-unused-vars + caller: CallerMetadata | undefined, +): Handler { + return null; +} + +// eslint-disable-next-line require-yield +export function* loadConfig( + name: string, + dirname: string, + // eslint-disable-next-line @typescript-eslint/no-unused-vars + envName: string, + // eslint-disable-next-line @typescript-eslint/no-unused-vars + caller: CallerMetadata | undefined, +): Handler { + throw new Error(`Cannot load ${name} relative to ${dirname} in a browser`); +} + +// eslint-disable-next-line require-yield +export function* resolveShowConfigPath( + // eslint-disable-next-line @typescript-eslint/no-unused-vars + dirname: string, +): Handler { + return null; +} + +export const ROOT_CONFIG_FILENAMES: string[] = []; + +type Resolved = + | { loader: "require"; filepath: string } + | { loader: "import"; filepath: string }; + +// eslint-disable-next-line @typescript-eslint/no-unused-vars +export function resolvePlugin(name: string, dirname: string): Resolved | null { + return null; +} + +// eslint-disable-next-line @typescript-eslint/no-unused-vars +export function resolvePreset(name: string, dirname: string): Resolved | null { + return null; +} + +export function loadPlugin( + name: string, + dirname: string, +): Handler<{ + filepath: string; + value: unknown; +}> { + throw new Error( + `Cannot load plugin ${name} relative to ${dirname} in a browser`, + ); +} + +export function loadPreset( + name: string, + dirname: string, +): Handler<{ + filepath: string; + value: unknown; +}> { + throw new Error( + `Cannot load preset ${name} relative to ${dirname} in a browser`, + ); +} diff --git a/server/api/node_modules/@babel/core/src/config/files/index.ts b/server/api/node_modules/@babel/core/src/config/files/index.ts new file mode 100644 index 0000000..7b9bf3b --- /dev/null +++ b/server/api/node_modules/@babel/core/src/config/files/index.ts @@ -0,0 +1,30 @@ +type indexBrowserType = typeof import("./index-browser"); +type indexType = typeof import("./index"); + +// Kind of gross, but essentially asserting that the exports of this module are the same as the +// exports of index-browser, since this file may be replaced at bundle time with index-browser. +// eslint-disable-next-line @typescript-eslint/no-unused-expressions +({}) as any as indexBrowserType as indexType; + +export { findPackageData } from "./package.ts"; + +export { + findConfigUpwards, + findRelativeConfig, + findRootConfig, + loadConfig, + resolveShowConfigPath, + ROOT_CONFIG_FILENAMES, +} from "./configuration.ts"; +export type { + ConfigFile, + IgnoreFile, + RelativeConfig, + FilePackageData, +} from "./types.ts"; +export { + loadPlugin, + loadPreset, + resolvePlugin, + resolvePreset, +} from "./plugins.ts"; diff --git a/server/api/node_modules/@babel/core/src/config/resolve-targets-browser.ts b/server/api/node_modules/@babel/core/src/config/resolve-targets-browser.ts new file mode 100644 index 0000000..89e4194 --- /dev/null +++ b/server/api/node_modules/@babel/core/src/config/resolve-targets-browser.ts @@ -0,0 +1,42 @@ +/* c8 ignore start */ + +import type { InputOptions } from "./validation/options.ts"; +import getTargets, { + type InputTargets, +} from "@babel/helper-compilation-targets"; + +import type { Targets } from "@babel/helper-compilation-targets"; + +export function resolveBrowserslistConfigFile( + // eslint-disable-next-line @typescript-eslint/no-unused-vars + browserslistConfigFile: string, + // eslint-disable-next-line @typescript-eslint/no-unused-vars + configFilePath: string, +): string | void { + return undefined; +} + +export function resolveTargets( + options: InputOptions, + // eslint-disable-next-line @typescript-eslint/no-unused-vars + root: string, +): Targets { + const optTargets = options.targets; + let targets: InputTargets; + + if (typeof optTargets === "string" || Array.isArray(optTargets)) { + targets = { browsers: optTargets }; + } else if (optTargets) { + if ("esmodules" in optTargets) { + targets = { ...optTargets, esmodules: "intersect" }; + } else { + // https://github.com/microsoft/TypeScript/issues/17002 + targets = optTargets as InputTargets; + } + } + + return getTargets(targets, { + ignoreBrowserslistConfig: true, + browserslistEnv: options.browserslistEnv, + }); +} diff --git a/server/api/node_modules/@babel/core/src/config/resolve-targets.ts b/server/api/node_modules/@babel/core/src/config/resolve-targets.ts new file mode 100644 index 0000000..4991f77 --- /dev/null +++ b/server/api/node_modules/@babel/core/src/config/resolve-targets.ts @@ -0,0 +1,54 @@ +type browserType = typeof import("./resolve-targets-browser"); +type nodeType = typeof import("./resolve-targets"); + +// Kind of gross, but essentially asserting that the exports of this module are the same as the +// exports of index-browser, since this file may be replaced at bundle time with index-browser. +// eslint-disable-next-line @typescript-eslint/no-unused-expressions +({}) as any as browserType as nodeType; + +import type { InputOptions } from "./validation/options.ts"; +import path from "node:path"; +import getTargets, { + type InputTargets, +} from "@babel/helper-compilation-targets"; + +import type { Targets } from "@babel/helper-compilation-targets"; + +export function resolveBrowserslistConfigFile( + browserslistConfigFile: string, + configFileDir: string, +): string | undefined { + return path.resolve(configFileDir, browserslistConfigFile); +} + +export function resolveTargets(options: InputOptions, root: string): Targets { + const optTargets = options.targets; + let targets: InputTargets; + + if (typeof optTargets === "string" || Array.isArray(optTargets)) { + targets = { browsers: optTargets }; + } else if (optTargets) { + if ("esmodules" in optTargets) { + targets = { ...optTargets, esmodules: "intersect" }; + } else { + // https://github.com/microsoft/TypeScript/issues/17002 + targets = optTargets as InputTargets; + } + } + + const { browserslistConfigFile } = options; + let configFile; + let ignoreBrowserslistConfig = false; + if (typeof browserslistConfigFile === "string") { + configFile = browserslistConfigFile; + } else { + ignoreBrowserslistConfig = browserslistConfigFile === false; + } + + return getTargets(targets, { + ignoreBrowserslistConfig, + configFile, + configPath: root, + browserslistEnv: options.browserslistEnv, + }); +} diff --git a/server/api/node_modules/@babel/core/src/transform-file-browser.ts b/server/api/node_modules/@babel/core/src/transform-file-browser.ts new file mode 100644 index 0000000..0a15ca5 --- /dev/null +++ b/server/api/node_modules/@babel/core/src/transform-file-browser.ts @@ -0,0 +1,33 @@ +/* c8 ignore start */ + +// duplicated from transform-file so we do not have to import anything here +type TransformFile = { + (filename: string, callback: (error: Error, file: null) => void): void; + ( + filename: string, + opts: any, + callback: (error: Error, file: null) => void, + ): void; +}; + +export const transformFile: TransformFile = function transformFile( + filename, + opts, + callback?: (error: Error, file: null) => void, +) { + if (typeof opts === "function") { + callback = opts; + } + + callback(new Error("Transforming files is not supported in browsers"), null); +}; + +export function transformFileSync(): never { + throw new Error("Transforming files is not supported in browsers"); +} + +export function transformFileAsync() { + return Promise.reject( + new Error("Transforming files is not supported in browsers"), + ); +} diff --git a/server/api/node_modules/@babel/core/src/transform-file.ts b/server/api/node_modules/@babel/core/src/transform-file.ts new file mode 100644 index 0000000..10a3140 --- /dev/null +++ b/server/api/node_modules/@babel/core/src/transform-file.ts @@ -0,0 +1,56 @@ +import gensync, { type Handler } from "gensync"; + +import loadConfig from "./config/index.ts"; +import type { InputOptions, ResolvedConfig } from "./config/index.ts"; +import { run } from "./transformation/index.ts"; +import type { FileResult, FileResultCallback } from "./transformation/index.ts"; +import * as fs from "./gensync-utils/fs.ts"; + +type transformFileBrowserType = typeof import("./transform-file-browser"); +type transformFileType = typeof import("./transform-file"); + +// Kind of gross, but essentially asserting that the exports of this module are the same as the +// exports of transform-file-browser, since this file may be replaced at bundle time with +// transform-file-browser. +// eslint-disable-next-line @typescript-eslint/no-unused-expressions +({}) as any as transformFileBrowserType as transformFileType; + +const transformFileRunner = gensync(function* ( + filename: string, + opts?: InputOptions, +): Handler { + const options = { ...opts, filename }; + + const config: ResolvedConfig | null = yield* loadConfig(options); + if (config === null) return null; + + const code = yield* fs.readFile(filename, "utf8"); + return yield* run(config, code); +}); + +// @ts-expect-error TS doesn't detect that this signature is compatible +export function transformFile( + filename: string, + callback: FileResultCallback, +): void; +export function transformFile( + filename: string, + opts: InputOptions | undefined | null, + callback: FileResultCallback, +): void; +export function transformFile( + ...args: Parameters +) { + transformFileRunner.errback(...args); +} + +export function transformFileSync( + ...args: Parameters +) { + return transformFileRunner.sync(...args); +} +export function transformFileAsync( + ...args: Parameters +) { + return transformFileRunner.async(...args); +} diff --git a/server/api/node_modules/@babel/generator/LICENSE b/server/api/node_modules/@babel/generator/LICENSE new file mode 100644 index 0000000..f31575e --- /dev/null +++ b/server/api/node_modules/@babel/generator/LICENSE @@ -0,0 +1,22 @@ +MIT License + +Copyright (c) 2014-present Sebastian McKenzie and other contributors + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/server/api/node_modules/@babel/generator/README.md b/server/api/node_modules/@babel/generator/README.md new file mode 100644 index 0000000..d56149a --- /dev/null +++ b/server/api/node_modules/@babel/generator/README.md @@ -0,0 +1,19 @@ +# @babel/generator + +> Turns an AST into code. + +See our website [@babel/generator](https://babeljs.io/docs/babel-generator) for more information or the [issues](https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3A%22pkg%3A%20generator%22+is%3Aopen) associated with this package. + +## Install + +Using npm: + +```sh +npm install --save-dev @babel/generator +``` + +or using yarn: + +```sh +yarn add @babel/generator --dev +``` diff --git a/server/api/node_modules/@babel/generator/lib/buffer.js b/server/api/node_modules/@babel/generator/lib/buffer.js new file mode 100644 index 0000000..05b5279 --- /dev/null +++ b/server/api/node_modules/@babel/generator/lib/buffer.js @@ -0,0 +1,244 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +const spaceIndents = []; +for (let i = 0; i < 32; i++) { + spaceIndents.push(" ".repeat(i * 2)); +} +class Buffer { + constructor(map, indentChar) { + this._map = null; + this._buf = ""; + this._str = ""; + this._appendCount = 0; + this._last = 0; + this._canMarkIdName = true; + this._indentChar = ""; + this._queuedChar = 0; + this._position = { + line: 1, + column: 0 + }; + this._sourcePosition = { + identifierName: undefined, + identifierNamePos: undefined, + line: undefined, + column: undefined, + filename: undefined + }; + this._map = map; + this._indentChar = indentChar; + } + get() { + const { + _map, + _last + } = this; + if (this._queuedChar !== 32) { + this._flush(); + } + const code = _last === 10 ? (this._buf + this._str).trimRight() : this._buf + this._str; + if (_map === null) { + return { + code: code, + decodedMap: undefined, + map: null, + rawMappings: undefined + }; + } + const result = { + code: code, + decodedMap: _map.getDecoded(), + get __mergedMap() { + return this.map; + }, + get map() { + const resultMap = _map.get(); + result.map = resultMap; + return resultMap; + }, + set map(value) { + Object.defineProperty(result, "map", { + value, + writable: true + }); + }, + get rawMappings() { + const mappings = _map.getRawMappings(); + result.rawMappings = mappings; + return mappings; + }, + set rawMappings(value) { + Object.defineProperty(result, "rawMappings", { + value, + writable: true + }); + } + }; + return result; + } + append(str, maybeNewline) { + this._flush(); + this._append(str, maybeNewline); + } + appendChar(char) { + this._flush(); + this._appendChar(char, 1, true); + } + queue(char) { + this._flush(); + this._queuedChar = char; + } + _flush() { + const queuedChar = this._queuedChar; + if (queuedChar !== 0) { + this._appendChar(queuedChar, 1, true); + this._queuedChar = 0; + } + } + _appendChar(char, repeat, useSourcePos) { + this._last = char; + if (char === -1) { + const indent = repeat >= 64 ? this._indentChar.repeat(repeat) : spaceIndents[repeat / 2]; + this._str += indent; + } else { + this._str += repeat > 1 ? String.fromCharCode(char).repeat(repeat) : String.fromCharCode(char); + } + const isSpace = char === 32; + const position = this._position; + if (char !== 10) { + if (this._map) { + const sourcePos = this._sourcePosition; + if (useSourcePos && sourcePos) { + this._map.mark(position, sourcePos.line, sourcePos.column, isSpace ? undefined : sourcePos.identifierName, isSpace ? undefined : sourcePos.identifierNamePos, sourcePos.filename); + if (!isSpace && this._canMarkIdName) { + sourcePos.identifierName = undefined; + sourcePos.identifierNamePos = undefined; + } + } else { + this._map.mark(position); + } + } + position.column += repeat; + } else { + position.line++; + position.column = 0; + } + } + _append(str, maybeNewline) { + const len = str.length; + const position = this._position; + const sourcePos = this._sourcePosition; + this._last = -1; + if (++this._appendCount > 4096) { + +this._str; + this._buf += this._str; + this._str = str; + this._appendCount = 0; + } else { + this._str += str; + } + const hasMap = this._map !== null; + if (!maybeNewline && !hasMap) { + position.column += len; + return; + } + const { + column, + identifierName, + identifierNamePos, + filename + } = sourcePos; + let line = sourcePos.line; + if ((identifierName != null || identifierNamePos != null) && this._canMarkIdName) { + sourcePos.identifierName = undefined; + sourcePos.identifierNamePos = undefined; + } + let i = str.indexOf("\n"); + let last = 0; + if (hasMap && i !== 0) { + this._map.mark(position, line, column, identifierName, identifierNamePos, filename); + } + while (i !== -1) { + position.line++; + position.column = 0; + last = i + 1; + if (last < len && line !== undefined) { + line++; + if (hasMap) { + this._map.mark(position, line, 0, undefined, undefined, filename); + } + } + i = str.indexOf("\n", last); + } + position.column += len - last; + } + removeLastSemicolon() { + if (this._queuedChar === 59) { + this._queuedChar = 0; + } + } + getLastChar(checkQueue) { + if (!checkQueue) { + return this._last; + } + const queuedChar = this._queuedChar; + return queuedChar !== 0 ? queuedChar : this._last; + } + getNewlineCount() { + return this._queuedChar === 0 && this._last === 10 ? 1 : 0; + } + hasContent() { + return this._last !== 0; + } + exactSource(loc, cb) { + if (!this._map) { + cb(); + return; + } + this.source("start", loc); + const identifierName = loc.identifierName; + const sourcePos = this._sourcePosition; + if (identifierName != null) { + this._canMarkIdName = false; + sourcePos.identifierName = identifierName; + } + cb(); + if (identifierName != null) { + this._canMarkIdName = true; + sourcePos.identifierName = undefined; + sourcePos.identifierNamePos = undefined; + } + this.source("end", loc); + } + source(prop, loc) { + if (!this._map) return; + this._normalizePosition(prop, loc, 0); + } + sourceWithOffset(prop, loc, columnOffset) { + if (!this._map) return; + this._normalizePosition(prop, loc, columnOffset); + } + _normalizePosition(prop, loc, columnOffset) { + this._flush(); + const pos = loc[prop]; + const target = this._sourcePosition; + if (pos) { + target.line = pos.line; + target.column = Math.max(pos.column + columnOffset, 0); + target.filename = loc.filename; + } + } + getCurrentColumn() { + return this._position.column + (this._queuedChar ? 1 : 0); + } + getCurrentLine() { + return this._position.line; + } +} +exports.default = Buffer; + +//# sourceMappingURL=buffer.js.map diff --git a/server/api/node_modules/@babel/generator/lib/buffer.js.map b/server/api/node_modules/@babel/generator/lib/buffer.js.map new file mode 100644 index 0000000..804ea0a --- /dev/null +++ b/server/api/node_modules/@babel/generator/lib/buffer.js.map @@ -0,0 +1 @@ +{"version":3,"names":["spaceIndents","i","push","repeat","Buffer","constructor","map","indentChar","_map","_buf","_str","_appendCount","_last","_canMarkIdName","_indentChar","_queuedChar","_position","line","column","_sourcePosition","identifierName","undefined","identifierNamePos","filename","get","_flush","code","trimRight","decodedMap","rawMappings","result","getDecoded","__mergedMap","resultMap","value","Object","defineProperty","writable","mappings","getRawMappings","append","str","maybeNewline","_append","appendChar","char","_appendChar","queue","queuedChar","useSourcePos","indent","String","fromCharCode","isSpace","position","sourcePos","mark","len","length","hasMap","indexOf","last","removeLastSemicolon","getLastChar","checkQueue","getNewlineCount","hasContent","exactSource","loc","cb","source","prop","_normalizePosition","sourceWithOffset","columnOffset","pos","target","Math","max","getCurrentColumn","getCurrentLine","exports","default"],"sources":["../src/buffer.ts"],"sourcesContent":["import type SourceMap from \"./source-map.ts\";\nimport type { SourceLocation } from \"@babel/types\";\n\n// We inline this package\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport * as charcodes from \"charcodes\";\n\nexport type Loc = SourceLocation;\nexport type Pos = SourceLocation[\"start\"];\n\ntype SourcePosition = {\n line: number | undefined;\n column: number | undefined;\n identifierName: string | undefined;\n identifierNamePos: Pos | undefined;\n filename: string | undefined;\n};\n\nconst spaceIndents: string[] = [];\nfor (let i = 0; i < 32; i++) {\n spaceIndents.push(\" \".repeat(i * 2));\n}\n\nexport default class Buffer {\n constructor(map: SourceMap | null, indentChar: string) {\n this._map = map;\n this._indentChar = indentChar;\n }\n\n _map: SourceMap | null = null;\n _buf = \"\";\n _str = \"\";\n _appendCount = 0;\n _last = 0;\n _canMarkIdName = true;\n _indentChar = \"\";\n _queuedChar: typeof charcodes.space | typeof charcodes.semicolon | 0 = 0;\n\n _position = {\n line: 1,\n column: 0,\n };\n _sourcePosition: SourcePosition = {\n identifierName: undefined,\n identifierNamePos: undefined,\n line: undefined,\n column: undefined,\n filename: undefined,\n };\n\n /**\n * Get the final string output from the buffer, along with the sourcemap if one exists.\n */\n\n get() {\n const { _map, _last } = this;\n if (this._queuedChar !== charcodes.space) {\n this._flush();\n }\n\n // Whatever trim is used here should not execute a regex against the\n // source string since it may be arbitrarily large after all transformations\n const code =\n _last === charcodes.lineFeed\n ? (this._buf + this._str).trimRight()\n : this._buf + this._str;\n\n // Creating objects with getters is expensive.\n if (_map === null) {\n return {\n code: code,\n decodedMap: undefined,\n map: null,\n rawMappings: undefined,\n };\n }\n\n const result = {\n code: code,\n // Decoded sourcemap is free to generate.\n decodedMap: _map.getDecoded(),\n // Used as a marker for backwards compatibility. We moved input map merging\n // into the generator. We cannot merge the input map a second time, so the\n // presence of this field tells us we've already done the work.\n get __mergedMap() {\n return this.map;\n },\n // Encoding the sourcemap is moderately CPU expensive.\n get map() {\n const resultMap = _map.get();\n result.map = resultMap;\n return resultMap;\n },\n set map(value) {\n Object.defineProperty(result, \"map\", { value, writable: true });\n },\n // Retrieving the raw mappings is very memory intensive.\n get rawMappings() {\n const mappings = _map.getRawMappings();\n result.rawMappings = mappings;\n return mappings;\n },\n set rawMappings(value) {\n Object.defineProperty(result, \"rawMappings\", { value, writable: true });\n },\n };\n\n return result;\n }\n\n /**\n * Add a string to the buffer that cannot be reverted.\n */\n\n append(str: string, maybeNewline: boolean): void {\n this._flush();\n this._append(str, maybeNewline);\n }\n\n appendChar(char: number): void {\n this._flush();\n this._appendChar(char, 1, true);\n }\n\n /**\n * Add a string to the buffer than can be reverted.\n */\n queue(char: typeof charcodes.space | typeof charcodes.semicolon): void {\n this._flush();\n this._queuedChar = char;\n }\n\n _flush(): void {\n const queuedChar = this._queuedChar;\n if (queuedChar !== 0) {\n this._appendChar(queuedChar, 1, true);\n this._queuedChar = 0;\n }\n }\n\n _appendChar(char: number, repeat: number, useSourcePos: boolean): void {\n this._last = char;\n\n if (char === -1) {\n const indent =\n repeat >= 64\n ? this._indentChar.repeat(repeat)\n : spaceIndents[repeat / 2];\n this._str += indent;\n } else {\n this._str +=\n repeat > 1\n ? String.fromCharCode(char).repeat(repeat)\n : String.fromCharCode(char);\n }\n\n const isSpace = char === charcodes.space;\n const position = this._position;\n if (char !== charcodes.lineFeed) {\n if (this._map) {\n const sourcePos = this._sourcePosition;\n if (useSourcePos && sourcePos) {\n this._map.mark(\n position,\n sourcePos.line,\n sourcePos.column,\n isSpace ? undefined : sourcePos.identifierName,\n isSpace ? undefined : sourcePos.identifierNamePos,\n sourcePos.filename,\n );\n\n if (!isSpace && this._canMarkIdName) {\n sourcePos.identifierName = undefined;\n sourcePos.identifierNamePos = undefined;\n }\n } else {\n this._map.mark(position);\n }\n }\n\n position.column += repeat;\n } else {\n position.line++;\n position.column = 0;\n }\n }\n\n _append(str: string, maybeNewline: boolean): void {\n const len = str.length;\n const position = this._position;\n const sourcePos = this._sourcePosition;\n\n this._last = -1; /* LAST_CHAR_KINDS.NORMAL */\n\n if (++this._appendCount > 4096) {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n +this._str; // Unexplainable huge performance boost. Ref: https://github.com/davidmarkclements/flatstr License: MIT\n this._buf += this._str;\n this._str = str;\n this._appendCount = 0;\n } else {\n this._str += str;\n }\n\n const hasMap = this._map !== null;\n\n if (!maybeNewline && !hasMap) {\n position.column += len;\n return;\n }\n\n const { column, identifierName, identifierNamePos, filename } = sourcePos;\n let line = sourcePos.line;\n\n if (\n (identifierName != null || identifierNamePos != null) &&\n this._canMarkIdName\n ) {\n sourcePos.identifierName = undefined;\n sourcePos.identifierNamePos = undefined;\n }\n\n // Search for newline chars. We search only for `\\n`, since both `\\r` and\n // `\\r\\n` are normalized to `\\n` during parse. We exclude `\\u2028` and\n // `\\u2029` for performance reasons, they're so uncommon that it's probably\n // ok. It's also unclear how other sourcemap utilities handle them...\n let i = str.indexOf(\"\\n\");\n let last = 0;\n\n // If the string starts with a newline char, then adding a mark is redundant.\n // This catches both \"no newlines\" and \"newline after several chars\".\n if (hasMap && i !== 0) {\n this._map!.mark(\n position,\n line,\n column,\n identifierName,\n identifierNamePos,\n filename,\n );\n }\n\n // Now, find each remaining newline char in the string.\n while (i !== -1) {\n position.line++;\n position.column = 0;\n last = i + 1;\n\n // We mark the start of each line, which happens directly after this newline char\n // unless this is the last char.\n // When manually adding multi-line content (such as a comment), `line` will be `undefined`.\n if (last < len && line !== undefined) {\n line++;\n if (hasMap) {\n this._map!.mark(position, line, 0, undefined, undefined, filename);\n }\n }\n i = str.indexOf(\"\\n\", last);\n }\n position.column += len - last;\n }\n\n removeLastSemicolon(): void {\n if (this._queuedChar === charcodes.semicolon) {\n this._queuedChar = 0;\n }\n }\n\n getLastChar(checkQueue?: boolean): number {\n if (!checkQueue) {\n return this._last;\n }\n const queuedChar = this._queuedChar;\n return queuedChar !== 0 ? queuedChar : this._last;\n }\n\n /**\n * This will only detect at most 1 newline after a call to `flush()`,\n * but this has not been found so far, and an accurate count can be achieved if needed later.\n */\n getNewlineCount(): number {\n return this._queuedChar === 0 && this._last === charcodes.lineFeed ? 1 : 0;\n }\n\n hasContent(): boolean {\n return this._last !== 0 /*|| this._queuedChar !== 0*/;\n }\n\n /**\n * Certain sourcemap usecases expect mappings to be more accurate than\n * Babel's generic sourcemap handling allows. For now, we special-case\n * identifiers to allow for the primary cases to work.\n * The goal of this line is to ensure that the map output from Babel will\n * have an exact range on identifiers in the output code. Without this\n * line, Babel would potentially include some number of trailing tokens\n * that are printed after the identifier, but before another location has\n * been assigned.\n * This allows tooling like Rollup and Webpack to more accurately perform\n * their own transformations. Most importantly, this allows the import/export\n * transformations performed by those tools to loose less information when\n * applying their own transformations on top of the code and map results\n * generated by Babel itself.\n *\n * The primary example of this is the snippet:\n *\n * import mod from \"mod\";\n * mod();\n *\n * With this line, there will be one mapping range over \"mod\" and another\n * over \"();\", where previously it would have been a single mapping.\n */\n exactSource(loc: Loc, cb: () => void) {\n if (!this._map) {\n cb();\n return;\n }\n\n this.source(\"start\", loc);\n const identifierName = loc.identifierName;\n const sourcePos = this._sourcePosition;\n if (identifierName != null) {\n this._canMarkIdName = false;\n sourcePos.identifierName = identifierName;\n }\n cb();\n\n if (identifierName != null) {\n this._canMarkIdName = true;\n sourcePos.identifierName = undefined;\n sourcePos.identifierNamePos = undefined;\n }\n this.source(\"end\", loc);\n }\n\n /**\n * Sets a given position as the current source location so generated code after this call\n * will be given this position in the sourcemap.\n */\n\n source(prop: \"start\" | \"end\", loc: Loc): void {\n if (!this._map) return;\n\n // Since this is called extremely often, we reuse the same _sourcePosition\n // object for the whole lifetime of the buffer.\n this._normalizePosition(prop, loc, 0);\n }\n\n sourceWithOffset(\n prop: \"start\" | \"end\",\n loc: Loc,\n columnOffset: number,\n ): void {\n if (!this._map) return;\n\n this._normalizePosition(prop, loc, columnOffset);\n }\n\n _normalizePosition(prop: \"start\" | \"end\", loc: Loc, columnOffset: number) {\n this._flush();\n\n const pos = loc[prop];\n const target = this._sourcePosition;\n\n if (pos) {\n target.line = pos.line;\n // TODO: Fix https://github.com/babel/babel/issues/15712 in downstream\n target.column = Math.max(pos.column + columnOffset, 0);\n target.filename = loc.filename;\n }\n }\n\n getCurrentColumn(): number {\n return this._position.column + (this._queuedChar ? 1 : 0);\n }\n\n getCurrentLine(): number {\n return this._position.line;\n }\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/generator/lib/generators/base.js b/server/api/node_modules/@babel/generator/lib/generators/base.js new file mode 100644 index 0000000..4768b9b --- /dev/null +++ b/server/api/node_modules/@babel/generator/lib/generators/base.js @@ -0,0 +1,86 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.BlockStatement = BlockStatement; +exports.Directive = Directive; +exports.DirectiveLiteral = DirectiveLiteral; +exports.File = File; +exports.InterpreterDirective = InterpreterDirective; +exports.Placeholder = Placeholder; +exports.Program = Program; +function File(node) { + if (node.program) { + this.print(node.program.interpreter); + } + this.print(node.program); +} +function Program(node) { + var _node$directives; + this.printInnerComments(false); + const directivesLen = (_node$directives = node.directives) == null ? void 0 : _node$directives.length; + if (directivesLen) { + var _node$directives$trai; + const newline = node.body.length ? 2 : 1; + this.printSequence(node.directives, undefined, undefined, newline); + if (!((_node$directives$trai = node.directives[directivesLen - 1].trailingComments) != null && _node$directives$trai.length)) { + this.newline(newline); + } + } + this.printSequence(node.body); +} +function BlockStatement(node) { + var _node$directives2; + this.tokenChar(123); + const oldNoLineTerminatorAfterNode = this.enterDelimited(); + const directivesLen = (_node$directives2 = node.directives) == null ? void 0 : _node$directives2.length; + if (directivesLen) { + var _node$directives$trai2; + const newline = node.body.length ? 2 : 1; + this.printSequence(node.directives, true, true, newline); + if (!((_node$directives$trai2 = node.directives[directivesLen - 1].trailingComments) != null && _node$directives$trai2.length)) { + this.newline(newline); + } + } + this.printSequence(node.body, true, true); + this._noLineTerminatorAfterNode = oldNoLineTerminatorAfterNode; + this.rightBrace(node); +} +function Directive(node) { + this.print(node.value); + this.semicolon(); +} +const unescapedSingleQuoteRE = /(?:^|[^\\])(?:\\\\)*'/; +const unescapedDoubleQuoteRE = /(?:^|[^\\])(?:\\\\)*"/; +function DirectiveLiteral(node) { + const raw = this.getPossibleRaw(node); + if (!this.format.minified && raw !== undefined) { + this.token(raw); + return; + } + const { + value + } = node; + if (!unescapedDoubleQuoteRE.test(value)) { + this.token(`"${value}"`); + } else if (!unescapedSingleQuoteRE.test(value)) { + this.token(`'${value}'`); + } else { + throw new Error("Malformed AST: it is not possible to print a directive containing" + " both unescaped single and double quotes."); + } +} +function InterpreterDirective(node) { + this.token(`#!${node.value}`); + this._newline(); +} +function Placeholder(node) { + this.token("%%"); + this.print(node.name); + this.token("%%"); + if (node.expectedNode === "Statement") { + this.semicolon(); + } +} + +//# sourceMappingURL=base.js.map diff --git a/server/api/node_modules/@babel/generator/lib/generators/base.js.map b/server/api/node_modules/@babel/generator/lib/generators/base.js.map new file mode 100644 index 0000000..1bf7773 --- /dev/null +++ b/server/api/node_modules/@babel/generator/lib/generators/base.js.map @@ -0,0 +1 @@ +{"version":3,"names":["File","node","program","print","interpreter","Program","_node$directives","printInnerComments","directivesLen","directives","length","_node$directives$trai","newline","body","printSequence","undefined","trailingComments","BlockStatement","_node$directives2","token","oldNoLineTerminatorAfterNode","enterDelimited","_node$directives$trai2","_noLineTerminatorAfterNode","rightBrace","Directive","value","semicolon","unescapedSingleQuoteRE","unescapedDoubleQuoteRE","DirectiveLiteral","raw","getPossibleRaw","format","minified","test","Error","InterpreterDirective","_newline","Placeholder","name","expectedNode"],"sources":["../../src/generators/base.ts"],"sourcesContent":["import type Printer from \"../printer.ts\";\nimport type * as t from \"@babel/types\";\n\nexport function File(this: Printer, node: t.File) {\n if (node.program) {\n // Print this here to ensure that Program node 'leadingComments' still\n // get printed after the hashbang.\n this.print(node.program.interpreter);\n }\n\n this.print(node.program);\n}\n\nexport function Program(this: Printer, node: t.Program) {\n // An empty Program doesn't have any inner tokens, so\n // we must explicitly print its inner comments.\n this.printInnerComments(false);\n\n const directivesLen = node.directives?.length;\n if (directivesLen) {\n const newline = node.body.length ? 2 : 1;\n this.printSequence(node.directives, undefined, undefined, newline);\n if (!node.directives[directivesLen - 1].trailingComments?.length) {\n this.newline(newline);\n }\n }\n\n this.printSequence(node.body);\n}\n\nexport function BlockStatement(this: Printer, node: t.BlockStatement) {\n this.token(\"{\");\n const oldNoLineTerminatorAfterNode = this.enterDelimited();\n\n const directivesLen = node.directives?.length;\n if (directivesLen) {\n const newline = node.body.length ? 2 : 1;\n this.printSequence(node.directives, true, true, newline);\n if (!node.directives[directivesLen - 1].trailingComments?.length) {\n this.newline(newline);\n }\n }\n\n this.printSequence(node.body, true, true);\n\n this._noLineTerminatorAfterNode = oldNoLineTerminatorAfterNode;\n this.rightBrace(node);\n}\n\nexport function Directive(this: Printer, node: t.Directive) {\n this.print(node.value);\n this.semicolon();\n}\n\n// These regexes match an even number of \\ followed by a quote\nconst unescapedSingleQuoteRE = /(?:^|[^\\\\])(?:\\\\\\\\)*'/;\nconst unescapedDoubleQuoteRE = /(?:^|[^\\\\])(?:\\\\\\\\)*\"/;\n\nexport function DirectiveLiteral(this: Printer, node: t.DirectiveLiteral) {\n const raw = this.getPossibleRaw(node);\n if (!this.format.minified && raw !== undefined) {\n this.token(raw);\n return;\n }\n\n const { value } = node;\n\n // NOTE: In directives we can't change escapings,\n // because they change the behavior.\n // e.g. \"us\\x65 strict\" (\\x65 is e) is not a \"use strict\" directive.\n\n if (!unescapedDoubleQuoteRE.test(value)) {\n this.token(`\"${value}\"`);\n } else if (!unescapedSingleQuoteRE.test(value)) {\n this.token(`'${value}'`);\n } else {\n throw new Error(\n \"Malformed AST: it is not possible to print a directive containing\" +\n \" both unescaped single and double quotes.\",\n );\n }\n}\n\nexport function InterpreterDirective(\n this: Printer,\n node: t.InterpreterDirective,\n) {\n this.token(`#!${node.value}`);\n this._newline();\n}\n\nexport function Placeholder(this: Printer, node: t.Placeholder) {\n this.token(\"%%\");\n this.print(node.name);\n this.token(\"%%\");\n\n if (node.expectedNode === \"Statement\") {\n this.semicolon();\n }\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/generator/lib/generators/classes.js b/server/api/node_modules/@babel/generator/lib/generators/classes.js new file mode 100644 index 0000000..75272f8 --- /dev/null +++ b/server/api/node_modules/@babel/generator/lib/generators/classes.js @@ -0,0 +1,215 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.ClassAccessorProperty = ClassAccessorProperty; +exports.ClassBody = ClassBody; +exports.ClassExpression = exports.ClassDeclaration = ClassDeclaration; +exports.ClassMethod = ClassMethod; +exports.ClassPrivateMethod = ClassPrivateMethod; +exports.ClassPrivateProperty = ClassPrivateProperty; +exports.ClassProperty = ClassProperty; +exports.StaticBlock = StaticBlock; +exports._classMethodHead = _classMethodHead; +var _t = require("@babel/types"); +var _expressions = require("./expressions.js"); +var _typescript = require("./typescript.js"); +var _flow = require("./flow.js"); +var _methods = require("./methods.js"); +const { + isExportDefaultDeclaration, + isExportNamedDeclaration +} = _t; +function ClassDeclaration(node, parent) { + const inExport = isExportDefaultDeclaration(parent) || isExportNamedDeclaration(parent); + if (!inExport || !_expressions._shouldPrintDecoratorsBeforeExport.call(this, parent)) { + this.printJoin(node.decorators); + } + if (node.declare) { + this.word("declare"); + this.space(); + } + if (node.abstract) { + this.word("abstract"); + this.space(); + } + this.word("class"); + if (node.id) { + this.space(); + this.print(node.id); + } + this.print(node.typeParameters); + if (node.superClass) { + this.space(); + this.word("extends"); + this.space(); + this.print(node.superClass); + this.print(node.superTypeParameters); + } + if (node.implements) { + this.space(); + this.word("implements"); + this.space(); + this.printList(node.implements); + } + this.space(); + this.print(node.body); +} +function ClassBody(node) { + this.tokenChar(123); + if (node.body.length === 0) { + this.tokenChar(125); + } else { + const separator = classBodyEmptySemicolonsPrinter(this, node); + separator == null || separator(-1); + const oldNoLineTerminatorAfterNode = this.enterDelimited(); + this.printJoin(node.body, true, true, separator, true, true); + this._noLineTerminatorAfterNode = oldNoLineTerminatorAfterNode; + if (!this.endsWith(10)) this.newline(); + this.rightBrace(node); + } +} +function classBodyEmptySemicolonsPrinter(printer, node) { + if (!printer.tokenMap || node.start == null || node.end == null) { + return null; + } + const indexes = printer.tokenMap.getIndexes(node); + if (!indexes) return null; + let k = 1; + let occurrenceCount = 0; + let nextLocIndex = 0; + const advanceNextLocIndex = () => { + while (nextLocIndex < node.body.length && node.body[nextLocIndex].start == null) { + nextLocIndex++; + } + }; + advanceNextLocIndex(); + return i => { + if (nextLocIndex <= i) { + nextLocIndex = i + 1; + advanceNextLocIndex(); + } + const end = nextLocIndex === node.body.length ? node.end : node.body[nextLocIndex].start; + let tok; + while (k < indexes.length && printer.tokenMap.matchesOriginal(tok = printer._tokens[indexes[k]], ";") && tok.start < end) { + printer.tokenChar(59, occurrenceCount++); + k++; + } + }; +} +function ClassProperty(node) { + this.printJoin(node.decorators); + if (!node.static && !this.format.preserveFormat) { + var _node$key$loc; + const endLine = (_node$key$loc = node.key.loc) == null || (_node$key$loc = _node$key$loc.end) == null ? void 0 : _node$key$loc.line; + if (endLine) this.catchUp(endLine); + } + _typescript._tsPrintClassMemberModifiers.call(this, node); + if (node.computed) { + this.tokenChar(91); + this.print(node.key); + this.tokenChar(93); + } else { + _flow._variance.call(this, node); + this.print(node.key); + } + if (node.optional) { + this.tokenChar(63); + } + if (node.definite) { + this.tokenChar(33); + } + this.print(node.typeAnnotation); + if (node.value) { + this.space(); + this.tokenChar(61); + this.space(); + this.print(node.value); + } + this.semicolon(); +} +function ClassAccessorProperty(node) { + var _node$key$loc2; + this.printJoin(node.decorators); + const endLine = (_node$key$loc2 = node.key.loc) == null || (_node$key$loc2 = _node$key$loc2.end) == null ? void 0 : _node$key$loc2.line; + if (endLine) this.catchUp(endLine); + _typescript._tsPrintClassMemberModifiers.call(this, node); + this.word("accessor", true); + this.space(); + if (node.computed) { + this.tokenChar(91); + this.print(node.key); + this.tokenChar(93); + } else { + _flow._variance.call(this, node); + this.print(node.key); + } + if (node.optional) { + this.tokenChar(63); + } + if (node.definite) { + this.tokenChar(33); + } + this.print(node.typeAnnotation); + if (node.value) { + this.space(); + this.tokenChar(61); + this.space(); + this.print(node.value); + } + this.semicolon(); +} +function ClassPrivateProperty(node) { + this.printJoin(node.decorators); + _typescript._tsPrintClassMemberModifiers.call(this, node); + this.print(node.key); + if (node.optional) { + this.tokenChar(63); + } + if (node.definite) { + this.tokenChar(33); + } + this.print(node.typeAnnotation); + if (node.value) { + this.space(); + this.tokenChar(61); + this.space(); + this.print(node.value); + } + this.semicolon(); +} +function ClassMethod(node) { + _classMethodHead.call(this, node); + this.space(); + this.print(node.body); +} +function ClassPrivateMethod(node) { + _classMethodHead.call(this, node); + this.space(); + this.print(node.body); +} +function _classMethodHead(node) { + this.printJoin(node.decorators); + if (!this.format.preserveFormat) { + var _node$key$loc3; + const endLine = (_node$key$loc3 = node.key.loc) == null || (_node$key$loc3 = _node$key$loc3.end) == null ? void 0 : _node$key$loc3.line; + if (endLine) this.catchUp(endLine); + } + _typescript._tsPrintClassMemberModifiers.call(this, node); + _methods._methodHead.call(this, node); +} +function StaticBlock(node) { + this.word("static"); + this.space(); + this.tokenChar(123); + if (node.body.length === 0) { + this.tokenChar(125); + } else { + this.newline(); + this.printSequence(node.body, true); + this.rightBrace(node); + } +} + +//# sourceMappingURL=classes.js.map diff --git a/server/api/node_modules/@babel/generator/lib/generators/classes.js.map b/server/api/node_modules/@babel/generator/lib/generators/classes.js.map new file mode 100644 index 0000000..d764d73 --- /dev/null +++ b/server/api/node_modules/@babel/generator/lib/generators/classes.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_t","require","_expressions","_typescript","_flow","_methods","isExportDefaultDeclaration","isExportNamedDeclaration","ClassDeclaration","node","parent","inExport","_shouldPrintDecoratorsBeforeExport","call","printJoin","decorators","declare","word","space","abstract","id","print","typeParameters","superClass","superTypeParameters","implements","printList","body","ClassBody","token","length","separator","classBodyEmptySemicolonsPrinter","oldNoLineTerminatorAfterNode","enterDelimited","_noLineTerminatorAfterNode","endsWith","newline","rightBrace","printer","tokenMap","start","end","indexes","getIndexes","k","occurrenceCount","nextLocIndex","advanceNextLocIndex","i","tok","matchesOriginal","_tokens","tokenChar","ClassProperty","static","format","preserveFormat","_node$key$loc","endLine","key","loc","line","catchUp","_tsPrintClassMemberModifiers","computed","_variance","optional","definite","typeAnnotation","value","semicolon","ClassAccessorProperty","_node$key$loc2","ClassPrivateProperty","ClassMethod","_classMethodHead","ClassPrivateMethod","_node$key$loc3","_methodHead","StaticBlock","printSequence"],"sources":["../../src/generators/classes.ts"],"sourcesContent":["import type Printer from \"../printer.ts\";\nimport {\n isExportDefaultDeclaration,\n isExportNamedDeclaration,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\n\n// We inline this package\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport * as charCodes from \"charcodes\";\nimport { _shouldPrintDecoratorsBeforeExport } from \"./expressions.ts\";\nimport { _tsPrintClassMemberModifiers } from \"./typescript.ts\";\nimport { _variance } from \"./flow.ts\";\nimport { _methodHead } from \"./methods.ts\";\n\nexport function ClassDeclaration(\n this: Printer,\n node: t.ClassDeclaration,\n parent: t.Node,\n) {\n const inExport =\n isExportDefaultDeclaration(parent) || isExportNamedDeclaration(parent);\n\n if (\n !inExport ||\n !_shouldPrintDecoratorsBeforeExport.call(\n this,\n parent as t.ExportDeclaration & { declaration: t.ClassDeclaration },\n )\n ) {\n this.printJoin(node.decorators);\n }\n\n if (node.declare) {\n // TS\n this.word(\"declare\");\n this.space();\n }\n\n if (node.abstract) {\n // TS\n this.word(\"abstract\");\n this.space();\n }\n\n this.word(\"class\");\n\n if (node.id) {\n this.space();\n this.print(node.id);\n }\n\n this.print(node.typeParameters);\n\n if (node.superClass) {\n this.space();\n this.word(\"extends\");\n this.space();\n this.print(node.superClass);\n this.print(\n process.env.BABEL_8_BREAKING\n ? // @ts-ignore(Babel 7 vs Babel 8) Renamed\n node.superTypeArguments\n : // @ts-ignore(Babel 7 vs Babel 8) Renamed\n node.superTypeParameters,\n );\n }\n\n if (node.implements) {\n this.space();\n this.word(\"implements\");\n this.space();\n this.printList(node.implements);\n }\n\n this.space();\n this.print(node.body);\n}\n\nexport { ClassDeclaration as ClassExpression };\n\nexport function ClassBody(this: Printer, node: t.ClassBody) {\n this.token(\"{\");\n if (node.body.length === 0) {\n this.token(\"}\");\n } else {\n const separator = classBodyEmptySemicolonsPrinter(this, node);\n separator?.(-1); // print leading semicolons in preserveFormat mode\n\n const oldNoLineTerminatorAfterNode = this.enterDelimited();\n this.printJoin(node.body, true, true, separator, true, true);\n this._noLineTerminatorAfterNode = oldNoLineTerminatorAfterNode;\n\n if (!this.endsWith(charCodes.lineFeed)) this.newline();\n\n this.rightBrace(node);\n }\n}\n\nfunction classBodyEmptySemicolonsPrinter(printer: Printer, node: t.ClassBody) {\n if (!printer.tokenMap || node.start == null || node.end == null) {\n return null;\n }\n\n // \"empty statements\" in class bodies are not represented in the AST.\n // Print them by checking if there are any ; tokens between the current AST\n // member and the next one.\n\n const indexes = printer.tokenMap.getIndexes(node);\n if (!indexes) return null;\n\n let k = 1; // start from 1 to skip '{'\n\n let occurrenceCount = 0;\n\n let nextLocIndex = 0;\n const advanceNextLocIndex = () => {\n while (\n nextLocIndex < node.body.length &&\n node.body[nextLocIndex].start == null\n ) {\n nextLocIndex++;\n }\n };\n advanceNextLocIndex();\n\n return (i: number) => {\n if (nextLocIndex <= i) {\n nextLocIndex = i + 1;\n advanceNextLocIndex();\n }\n\n const end =\n nextLocIndex === node.body.length\n ? node.end\n : node.body[nextLocIndex].start;\n\n let tok;\n while (\n k < indexes.length &&\n printer.tokenMap!.matchesOriginal(\n (tok = printer._tokens![indexes[k]]),\n \";\",\n ) &&\n tok.start < end!\n ) {\n printer.tokenChar(charCodes.semicolon, occurrenceCount++);\n k++;\n }\n };\n}\n\nexport function ClassProperty(this: Printer, node: t.ClassProperty) {\n this.printJoin(node.decorators);\n\n if (!node.static && !this.format.preserveFormat) {\n // catch up to property key, avoid line break\n // between member TS modifiers and the property key.\n const endLine = node.key.loc?.end?.line;\n if (endLine) this.catchUp(endLine);\n }\n\n _tsPrintClassMemberModifiers.call(this, node);\n\n if (node.computed) {\n this.token(\"[\");\n this.print(node.key);\n this.token(\"]\");\n } else {\n _variance.call(this, node);\n this.print(node.key);\n }\n\n // TS\n if (node.optional) {\n this.token(\"?\");\n }\n if (node.definite) {\n this.token(\"!\");\n }\n\n this.print(node.typeAnnotation);\n if (node.value) {\n this.space();\n this.token(\"=\");\n this.space();\n this.print(node.value);\n }\n this.semicolon();\n}\n\nexport function ClassAccessorProperty(\n this: Printer,\n node: t.ClassAccessorProperty,\n) {\n this.printJoin(node.decorators);\n\n // catch up to property key, avoid line break\n // between member modifiers and the property key.\n const endLine = node.key.loc?.end?.line;\n if (endLine) this.catchUp(endLine);\n\n // TS does not support class accessor property yet\n _tsPrintClassMemberModifiers.call(this, node);\n\n this.word(\"accessor\", true);\n this.space();\n\n if (node.computed) {\n this.token(\"[\");\n this.print(node.key);\n this.token(\"]\");\n } else {\n // Todo: Flow does not support class accessor property yet.\n _variance.call(this, node);\n this.print(node.key);\n }\n\n // TS\n if (node.optional) {\n this.token(\"?\");\n }\n if (node.definite) {\n this.token(\"!\");\n }\n\n this.print(node.typeAnnotation);\n if (node.value) {\n this.space();\n this.token(\"=\");\n this.space();\n this.print(node.value);\n }\n this.semicolon();\n}\n\nexport function ClassPrivateProperty(\n this: Printer,\n node: t.ClassPrivateProperty,\n) {\n this.printJoin(node.decorators);\n _tsPrintClassMemberModifiers.call(this, node);\n this.print(node.key);\n // TS\n if (node.optional) {\n this.token(\"?\");\n }\n if (node.definite) {\n this.token(\"!\");\n }\n this.print(node.typeAnnotation);\n if (node.value) {\n this.space();\n this.token(\"=\");\n this.space();\n this.print(node.value);\n }\n this.semicolon();\n}\n\nexport function ClassMethod(this: Printer, node: t.ClassMethod) {\n _classMethodHead.call(this, node);\n this.space();\n this.print(node.body);\n}\n\nexport function ClassPrivateMethod(this: Printer, node: t.ClassPrivateMethod) {\n _classMethodHead.call(this, node);\n this.space();\n this.print(node.body);\n}\n\nexport function _classMethodHead(\n this: Printer,\n node: t.ClassMethod | t.ClassPrivateMethod | t.TSDeclareMethod,\n) {\n this.printJoin(node.decorators);\n\n if (!this.format.preserveFormat) {\n // catch up to method key, avoid line break\n // between member modifiers/method heads and the method key.\n const endLine = node.key.loc?.end?.line;\n if (endLine) this.catchUp(endLine);\n }\n\n _tsPrintClassMemberModifiers.call(this, node);\n _methodHead.call(this, node);\n}\n\nexport function StaticBlock(this: Printer, node: t.StaticBlock) {\n this.word(\"static\");\n this.space();\n this.token(\"{\");\n if (node.body.length === 0) {\n this.token(\"}\");\n } else {\n this.newline();\n this.printSequence(node.body, true);\n this.rightBrace(node);\n }\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/generator/lib/generators/deprecated.js b/server/api/node_modules/@babel/generator/lib/generators/deprecated.js new file mode 100644 index 0000000..bc1f409 --- /dev/null +++ b/server/api/node_modules/@babel/generator/lib/generators/deprecated.js @@ -0,0 +1,73 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.DecimalLiteral = DecimalLiteral; +exports.Noop = Noop; +exports.RecordExpression = RecordExpression; +exports.TSExpressionWithTypeArguments = TSExpressionWithTypeArguments; +exports.TupleExpression = TupleExpression; +function Noop() {} +function TSExpressionWithTypeArguments(node) { + this.print(node.expression); + this.print(node.typeParameters); +} +function DecimalLiteral(node) { + const raw = this.getPossibleRaw(node); + if (!this.format.minified && raw !== undefined) { + this.word(raw); + return; + } + this.word(node.value + "m"); +} +function RecordExpression(node) { + const props = node.properties; + let startToken; + let endToken; + if (this.format.recordAndTupleSyntaxType === "bar") { + startToken = "{|"; + endToken = "|}"; + } else if (this.format.recordAndTupleSyntaxType !== "hash" && this.format.recordAndTupleSyntaxType != null) { + throw new Error(`The "recordAndTupleSyntaxType" generator option must be "bar" or "hash" (${JSON.stringify(this.format.recordAndTupleSyntaxType)} received).`); + } else { + startToken = "#{"; + endToken = "}"; + } + this.token(startToken); + if (props.length) { + this.space(); + this.printList(props, this.shouldPrintTrailingComma(endToken), true, true); + this.space(); + } + this.token(endToken); +} +function TupleExpression(node) { + const elems = node.elements; + const len = elems.length; + let startToken; + let endToken; + if (this.format.recordAndTupleSyntaxType === "bar") { + startToken = "[|"; + endToken = "|]"; + } else if (this.format.recordAndTupleSyntaxType === "hash") { + startToken = "#["; + endToken = "]"; + } else { + throw new Error(`${this.format.recordAndTupleSyntaxType} is not a valid recordAndTuple syntax type`); + } + this.token(startToken); + for (let i = 0; i < elems.length; i++) { + const elem = elems[i]; + if (elem) { + if (i > 0) this.space(); + this.print(elem); + if (i < len - 1 || this.shouldPrintTrailingComma(endToken)) { + this.token(",", false, i); + } + } + } + this.token(endToken); +} + +//# sourceMappingURL=deprecated.js.map diff --git a/server/api/node_modules/@babel/generator/lib/generators/deprecated.js.map b/server/api/node_modules/@babel/generator/lib/generators/deprecated.js.map new file mode 100644 index 0000000..ceb91e9 --- /dev/null +++ b/server/api/node_modules/@babel/generator/lib/generators/deprecated.js.map @@ -0,0 +1 @@ +{"version":3,"names":["Noop","TSExpressionWithTypeArguments","node","print","expression","typeParameters","DecimalLiteral","raw","getPossibleRaw","format","minified","undefined","word","value","RecordExpression","props","properties","startToken","endToken","recordAndTupleSyntaxType","Error","JSON","stringify","token","length","space","printList","shouldPrintTrailingComma","TupleExpression","elems","elements","len","i","elem"],"sources":["../../src/generators/deprecated.ts"],"sourcesContent":["import type Printer from \"../printer\";\nimport type * as t from \"@babel/types\";\n\nexport type DeprecatedBabel7ASTTypes =\n | \"Noop\"\n | \"TSExpressionWithTypeArguments\"\n | \"DecimalLiteral\"\n | \"RecordExpression\"\n | \"TupleExpression\";\n\nexport function Noop(this: Printer) {}\n\nexport function TSExpressionWithTypeArguments(\n this: Printer,\n // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST\n node: t.TSExpressionWithTypeArguments,\n) {\n this.print(node.expression);\n this.print(node.typeParameters);\n}\n\nexport function DecimalLiteral(this: Printer, node: any) {\n const raw = this.getPossibleRaw(node);\n if (!this.format.minified && raw !== undefined) {\n this.word(raw);\n return;\n }\n this.word(node.value + \"m\");\n}\n\n// @ts-ignore(Babel 7 vs Babel 8) - t.RecordExpression only exists in Babel 7\nexport function RecordExpression(this: Printer, node: t.RecordExpression) {\n const props = node.properties;\n\n let startToken;\n let endToken;\n\n if (this.format.recordAndTupleSyntaxType === \"bar\") {\n startToken = \"{|\";\n endToken = \"|}\";\n } else if (\n this.format.recordAndTupleSyntaxType !== \"hash\" &&\n this.format.recordAndTupleSyntaxType != null\n ) {\n throw new Error(\n `The \"recordAndTupleSyntaxType\" generator option must be \"bar\" or \"hash\" (${JSON.stringify(\n this.format.recordAndTupleSyntaxType,\n )} received).`,\n );\n } else {\n startToken = \"#{\";\n endToken = \"}\";\n }\n\n this.token(startToken);\n\n if (props.length) {\n this.space();\n this.printList(props, this.shouldPrintTrailingComma(endToken), true, true);\n this.space();\n }\n this.token(endToken);\n}\n\n// @ts-ignore(Babel 7 vs Babel 8) - t.TupleExpression only exists in Babel 7\nexport function TupleExpression(this: Printer, node: t.TupleExpression) {\n const elems = node.elements;\n const len = elems.length;\n\n let startToken;\n let endToken;\n if (process.env.BABEL_8_BREAKING) {\n startToken = \"#[\";\n endToken = \"]\";\n } else {\n if (this.format.recordAndTupleSyntaxType === \"bar\") {\n startToken = \"[|\";\n endToken = \"|]\";\n } else if (this.format.recordAndTupleSyntaxType === \"hash\") {\n startToken = \"#[\";\n endToken = \"]\";\n } else {\n throw new Error(\n `${this.format.recordAndTupleSyntaxType} is not a valid recordAndTuple syntax type`,\n );\n }\n }\n\n this.token(startToken);\n\n for (let i = 0; i < elems.length; i++) {\n const elem = elems[i];\n if (elem) {\n if (i > 0) this.space();\n this.print(elem);\n if (i < len - 1 || this.shouldPrintTrailingComma(endToken)) {\n this.token(\",\", false, i);\n }\n }\n }\n\n this.token(endToken);\n}\n"],"mappings":";;;;;;;;;;AAUO,SAASA,IAAIA,CAAA,EAAgB,CAAC;AAE9B,SAASC,6BAA6BA,CAG3CC,IAAqC,EACrC;EACA,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,UAAU,CAAC;EAC3B,IAAI,CAACD,KAAK,CAACD,IAAI,CAACG,cAAc,CAAC;AACjC;AAEO,SAASC,cAAcA,CAAgBJ,IAAS,EAAE;EACvD,MAAMK,GAAG,GAAG,IAAI,CAACC,cAAc,CAACN,IAAI,CAAC;EACrC,IAAI,CAAC,IAAI,CAACO,MAAM,CAACC,QAAQ,IAAIH,GAAG,KAAKI,SAAS,EAAE;IAC9C,IAAI,CAACC,IAAI,CAACL,GAAG,CAAC;IACd;EACF;EACA,IAAI,CAACK,IAAI,CAACV,IAAI,CAACW,KAAK,GAAG,GAAG,CAAC;AAC7B;AAGO,SAASC,gBAAgBA,CAAgBZ,IAAwB,EAAE;EACxE,MAAMa,KAAK,GAAGb,IAAI,CAACc,UAAU;EAE7B,IAAIC,UAAU;EACd,IAAIC,QAAQ;EAEZ,IAAI,IAAI,CAACT,MAAM,CAACU,wBAAwB,KAAK,KAAK,EAAE;IAClDF,UAAU,GAAG,IAAI;IACjBC,QAAQ,GAAG,IAAI;EACjB,CAAC,MAAM,IACL,IAAI,CAACT,MAAM,CAACU,wBAAwB,KAAK,MAAM,IAC/C,IAAI,CAACV,MAAM,CAACU,wBAAwB,IAAI,IAAI,EAC5C;IACA,MAAM,IAAIC,KAAK,CACb,4EAA4EC,IAAI,CAACC,SAAS,CACxF,IAAI,CAACb,MAAM,CAACU,wBACd,CAAC,aACH,CAAC;EACH,CAAC,MAAM;IACLF,UAAU,GAAG,IAAI;IACjBC,QAAQ,GAAG,GAAG;EAChB;EAEA,IAAI,CAACK,KAAK,CAACN,UAAU,CAAC;EAEtB,IAAIF,KAAK,CAACS,MAAM,EAAE;IAChB,IAAI,CAACC,KAAK,CAAC,CAAC;IACZ,IAAI,CAACC,SAAS,CAACX,KAAK,EAAE,IAAI,CAACY,wBAAwB,CAACT,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;IAC1E,IAAI,CAACO,KAAK,CAAC,CAAC;EACd;EACA,IAAI,CAACF,KAAK,CAACL,QAAQ,CAAC;AACtB;AAGO,SAASU,eAAeA,CAAgB1B,IAAuB,EAAE;EACtE,MAAM2B,KAAK,GAAG3B,IAAI,CAAC4B,QAAQ;EAC3B,MAAMC,GAAG,GAAGF,KAAK,CAACL,MAAM;EAExB,IAAIP,UAAU;EACd,IAAIC,QAAQ;EAKV,IAAI,IAAI,CAACT,MAAM,CAACU,wBAAwB,KAAK,KAAK,EAAE;IAClDF,UAAU,GAAG,IAAI;IACjBC,QAAQ,GAAG,IAAI;EACjB,CAAC,MAAM,IAAI,IAAI,CAACT,MAAM,CAACU,wBAAwB,KAAK,MAAM,EAAE;IAC1DF,UAAU,GAAG,IAAI;IACjBC,QAAQ,GAAG,GAAG;EAChB,CAAC,MAAM;IACL,MAAM,IAAIE,KAAK,CACb,GAAG,IAAI,CAACX,MAAM,CAACU,wBAAwB,4CACzC,CAAC;EACH;EAGF,IAAI,CAACI,KAAK,CAACN,UAAU,CAAC;EAEtB,KAAK,IAAIe,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,KAAK,CAACL,MAAM,EAAEQ,CAAC,EAAE,EAAE;IACrC,MAAMC,IAAI,GAAGJ,KAAK,CAACG,CAAC,CAAC;IACrB,IAAIC,IAAI,EAAE;MACR,IAAID,CAAC,GAAG,CAAC,EAAE,IAAI,CAACP,KAAK,CAAC,CAAC;MACvB,IAAI,CAACtB,KAAK,CAAC8B,IAAI,CAAC;MAChB,IAAID,CAAC,GAAGD,GAAG,GAAG,CAAC,IAAI,IAAI,CAACJ,wBAAwB,CAACT,QAAQ,CAAC,EAAE;QAC1D,IAAI,CAACK,KAAK,CAAC,GAAG,EAAE,KAAK,EAAES,CAAC,CAAC;MAC3B;IACF;EACF;EAEA,IAAI,CAACT,KAAK,CAACL,QAAQ,CAAC;AACtB","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/generator/lib/generators/expressions.js b/server/api/node_modules/@babel/generator/lib/generators/expressions.js new file mode 100644 index 0000000..7448795 --- /dev/null +++ b/server/api/node_modules/@babel/generator/lib/generators/expressions.js @@ -0,0 +1,309 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.LogicalExpression = exports.AssignmentExpression = AssignmentExpression; +exports.AssignmentPattern = AssignmentPattern; +exports.AwaitExpression = AwaitExpression; +exports.BinaryExpression = BinaryExpression; +exports.BindExpression = BindExpression; +exports.CallExpression = CallExpression; +exports.ConditionalExpression = ConditionalExpression; +exports.Decorator = Decorator; +exports.DoExpression = DoExpression; +exports.EmptyStatement = EmptyStatement; +exports.ExpressionStatement = ExpressionStatement; +exports.Import = Import; +exports.MemberExpression = MemberExpression; +exports.MetaProperty = MetaProperty; +exports.ModuleExpression = ModuleExpression; +exports.NewExpression = NewExpression; +exports.OptionalCallExpression = OptionalCallExpression; +exports.OptionalMemberExpression = OptionalMemberExpression; +exports.ParenthesizedExpression = ParenthesizedExpression; +exports.PrivateName = PrivateName; +exports.SequenceExpression = SequenceExpression; +exports.Super = Super; +exports.ThisExpression = ThisExpression; +exports.UnaryExpression = UnaryExpression; +exports.UpdateExpression = UpdateExpression; +exports.V8IntrinsicIdentifier = V8IntrinsicIdentifier; +exports.YieldExpression = YieldExpression; +exports._shouldPrintDecoratorsBeforeExport = _shouldPrintDecoratorsBeforeExport; +var _t = require("@babel/types"); +var _index = require("../node/index.js"); +const { + isCallExpression, + isLiteral, + isMemberExpression, + isNewExpression, + isPattern +} = _t; +function UnaryExpression(node) { + const { + operator + } = node; + const firstChar = operator.charCodeAt(0); + if (firstChar >= 97 && firstChar <= 122) { + this.word(operator); + this.space(); + } else { + this.tokenChar(firstChar); + } + this.print(node.argument); +} +function DoExpression(node) { + if (node.async) { + this.word("async", true); + this.space(); + } + this.word("do"); + this.space(); + this.print(node.body); +} +function ParenthesizedExpression(node) { + this.tokenChar(40); + const oldNoLineTerminatorAfterNode = this.enterDelimited(); + this.print(node.expression, undefined, true); + this._noLineTerminatorAfterNode = oldNoLineTerminatorAfterNode; + this.rightParens(node); +} +function UpdateExpression(node) { + if (node.prefix) { + this.token(node.operator, false, 0, true); + this.print(node.argument); + } else { + this.print(node.argument, true); + this.token(node.operator, false, 0, true); + } +} +function ConditionalExpression(node) { + this.print(node.test); + this.space(); + this.tokenChar(63); + this.space(); + this.print(node.consequent); + this.space(); + this.tokenChar(58); + this.space(); + this.print(node.alternate); +} +function NewExpression(node, parent) { + this.word("new"); + this.space(); + this.print(node.callee); + if (this.format.minified && node.arguments.length === 0 && !node.optional && !isCallExpression(parent, { + callee: node + }) && !isMemberExpression(parent) && !isNewExpression(parent)) { + return; + } + this.print(node.typeArguments); + this.print(node.typeParameters); + if (node.optional) { + this.token("?."); + } + if (node.arguments.length === 0 && this.tokenMap && !this.tokenMap.endMatches(node, ")")) { + return; + } + this.tokenChar(40); + const oldNoLineTerminatorAfterNode = this.enterDelimited(); + this.printList(node.arguments, this.shouldPrintTrailingComma(")"), undefined, undefined, undefined, true); + this._noLineTerminatorAfterNode = oldNoLineTerminatorAfterNode; + this.rightParens(node); +} +function SequenceExpression(node) { + this.printList(node.expressions); +} +function ThisExpression() { + this.word("this"); +} +function Super() { + this.word("super"); +} +function _shouldPrintDecoratorsBeforeExport(node) { + if (typeof this.format.decoratorsBeforeExport === "boolean") { + return this.format.decoratorsBeforeExport; + } + return typeof node.start === "number" && node.start === node.declaration.start; +} +function Decorator(node) { + this.tokenChar(64); + const { + expression + } = node; + this.print(expression); + this.newline(); +} +function OptionalMemberExpression(node) { + let { + computed + } = node; + const { + optional, + property + } = node; + this.print(node.object); + if (!computed && isMemberExpression(property)) { + throw new TypeError("Got a MemberExpression for MemberExpression property"); + } + if (isLiteral(property) && typeof property.value === "number") { + computed = true; + } + if (optional) { + this.token("?."); + } + if (computed) { + this.tokenChar(91); + this.print(property); + this.tokenChar(93); + } else { + if (!optional) { + this.tokenChar(46); + } + this.print(property); + } +} +function OptionalCallExpression(node) { + this.print(node.callee); + this.print(node.typeParameters); + if (node.optional) { + this.token("?."); + } + this.print(node.typeArguments); + this.tokenChar(40); + const oldNoLineTerminatorAfterNode = this.enterDelimited(); + this.printList(node.arguments, undefined, undefined, undefined, undefined, true); + this._noLineTerminatorAfterNode = oldNoLineTerminatorAfterNode; + this.rightParens(node); +} +function CallExpression(node) { + this.print(node.callee); + this.print(node.typeArguments); + this.print(node.typeParameters); + this.tokenChar(40); + const oldNoLineTerminatorAfterNode = this.enterDelimited(); + this.printList(node.arguments, this.shouldPrintTrailingComma(")"), undefined, undefined, undefined, true); + this._noLineTerminatorAfterNode = oldNoLineTerminatorAfterNode; + this.rightParens(node); +} +function Import() { + this.word("import"); +} +function AwaitExpression(node) { + this.word("await"); + this.space(); + this.print(node.argument); +} +function YieldExpression(node) { + if (node.delegate) { + this.word("yield", true); + this.tokenChar(42); + if (node.argument) { + this.space(); + this.print(node.argument); + } + } else if (node.argument) { + this.word("yield", true); + this.space(); + this.print(node.argument); + } else { + this.word("yield"); + } +} +function EmptyStatement() { + this.semicolon(true); +} +function ExpressionStatement(node) { + this.tokenContext |= _index.TokenContext.expressionStatement; + this.print(node.expression); + this.semicolon(); +} +function AssignmentPattern(node) { + this.print(node.left); + if (node.left.type === "Identifier" || isPattern(node.left)) { + if (node.left.optional) this.tokenChar(63); + this.print(node.left.typeAnnotation); + } + this.space(); + this.tokenChar(61); + this.space(); + this.print(node.right); +} +function AssignmentExpression(node) { + this.print(node.left); + this.space(); + this.token(node.operator, false, 0, true); + this.space(); + this.print(node.right); +} +function BinaryExpression(node) { + this.print(node.left); + this.space(); + const { + operator + } = node; + if (operator.charCodeAt(0) === 105) { + this.word(operator); + } else { + this.token(operator, false, 0, true); + this.setLastChar(operator.charCodeAt(operator.length - 1)); + } + this.space(); + this.print(node.right); +} +function BindExpression(node) { + this.print(node.object); + this.token("::"); + this.print(node.callee); +} +function MemberExpression(node) { + this.print(node.object); + if (!node.computed && isMemberExpression(node.property)) { + throw new TypeError("Got a MemberExpression for MemberExpression property"); + } + let computed = node.computed; + if (isLiteral(node.property) && typeof node.property.value === "number") { + computed = true; + } + if (computed) { + const oldNoLineTerminatorAfterNode = this.enterDelimited(); + this.tokenChar(91); + this.print(node.property, undefined, true); + this.tokenChar(93); + this._noLineTerminatorAfterNode = oldNoLineTerminatorAfterNode; + } else { + this.tokenChar(46); + this.print(node.property); + } +} +function MetaProperty(node) { + this.print(node.meta); + this.tokenChar(46); + this.print(node.property); +} +function PrivateName(node) { + this.tokenChar(35); + this.print(node.id); +} +function V8IntrinsicIdentifier(node) { + this.tokenChar(37); + this.word(node.name); +} +function ModuleExpression(node) { + this.word("module", true); + this.space(); + this.tokenChar(123); + this.indent(); + const { + body + } = node; + if (body.body.length || body.directives.length) { + this.newline(); + } + this.print(body); + this.dedent(); + this.rightBrace(node); +} + +//# sourceMappingURL=expressions.js.map diff --git a/server/api/node_modules/@babel/generator/lib/generators/expressions.js.map b/server/api/node_modules/@babel/generator/lib/generators/expressions.js.map new file mode 100644 index 0000000..c9c6d85 --- /dev/null +++ b/server/api/node_modules/@babel/generator/lib/generators/expressions.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_t","require","_index","isCallExpression","isLiteral","isMemberExpression","isNewExpression","isPattern","UnaryExpression","node","operator","firstChar","charCodeAt","word","space","tokenChar","print","argument","DoExpression","async","body","ParenthesizedExpression","token","oldNoLineTerminatorAfterNode","enterDelimited","expression","undefined","_noLineTerminatorAfterNode","rightParens","UpdateExpression","prefix","ConditionalExpression","test","consequent","alternate","NewExpression","parent","callee","format","minified","arguments","length","optional","typeArguments","typeParameters","tokenMap","endMatches","printList","shouldPrintTrailingComma","SequenceExpression","expressions","ThisExpression","Super","_shouldPrintDecoratorsBeforeExport","decoratorsBeforeExport","start","declaration","Decorator","newline","OptionalMemberExpression","computed","property","object","TypeError","value","OptionalCallExpression","CallExpression","Import","AwaitExpression","YieldExpression","delegate","EmptyStatement","semicolon","ExpressionStatement","tokenContext","TokenContext","expressionStatement","AssignmentPattern","left","type","typeAnnotation","right","AssignmentExpression","BinaryExpression","setLastChar","BindExpression","MemberExpression","MetaProperty","meta","PrivateName","id","V8IntrinsicIdentifier","name","ModuleExpression","indent","directives","dedent","rightBrace"],"sources":["../../src/generators/expressions.ts"],"sourcesContent":["import type Printer from \"../printer.ts\";\nimport {\n isCallExpression,\n isLiteral,\n isMemberExpression,\n isNewExpression,\n isPattern,\n} from \"@babel/types\";\n// We inline this package\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport * as charCodes from \"charcodes\";\nimport type * as t from \"@babel/types\";\nimport { TokenContext } from \"../node/index.ts\";\n\nexport function UnaryExpression(this: Printer, node: t.UnaryExpression) {\n const { operator } = node;\n const firstChar = operator.charCodeAt(0);\n if (firstChar >= charCodes.lowercaseA && firstChar <= charCodes.lowercaseZ) {\n this.word(operator);\n this.space();\n } else {\n this.tokenChar(firstChar);\n }\n\n this.print(node.argument);\n}\n\nexport function DoExpression(this: Printer, node: t.DoExpression) {\n if (node.async) {\n this.word(\"async\", true);\n this.space();\n }\n this.word(\"do\");\n this.space();\n this.print(node.body);\n}\n\nexport function ParenthesizedExpression(\n this: Printer,\n node: t.ParenthesizedExpression,\n) {\n this.token(\"(\");\n const oldNoLineTerminatorAfterNode = this.enterDelimited();\n this.print(node.expression, undefined, true);\n this._noLineTerminatorAfterNode = oldNoLineTerminatorAfterNode;\n this.rightParens(node);\n}\n\nexport function UpdateExpression(this: Printer, node: t.UpdateExpression) {\n if (node.prefix) {\n this.token(node.operator, false, 0, true);\n this.print(node.argument);\n } else {\n this.print(node.argument, true);\n this.token(node.operator, false, 0, true);\n }\n}\n\nexport function ConditionalExpression(\n this: Printer,\n node: t.ConditionalExpression,\n) {\n this.print(node.test);\n this.space();\n this.token(\"?\");\n this.space();\n this.print(node.consequent);\n this.space();\n this.token(\":\");\n this.space();\n this.print(node.alternate);\n}\n\nexport function NewExpression(\n this: Printer,\n node: t.NewExpression,\n parent: t.Node,\n) {\n this.word(\"new\");\n this.space();\n this.print(node.callee);\n if (\n this.format.minified &&\n node.arguments.length === 0 &&\n // @ts-ignore(Babel 7 vs Babel 8) Removed in Babel 8\n !node.optional &&\n !isCallExpression(parent, { callee: node }) &&\n !isMemberExpression(parent) &&\n !isNewExpression(parent)\n ) {\n return;\n }\n\n this.print(node.typeArguments);\n if (!process.env.BABEL_8_BREAKING) {\n // @ts-ignore(Babel 7 vs Babel 8) Removed in Babel 8\n this.print(node.typeParameters); // Legacy TS AST\n // @ts-ignore(Babel 7 vs Babel 8) Removed in Babel 8\n if (node.optional) {\n this.token(\"?.\");\n }\n }\n\n if (\n node.arguments.length === 0 &&\n this.tokenMap &&\n !this.tokenMap.endMatches(node, \")\")\n ) {\n return;\n }\n\n this.token(\"(\");\n const oldNoLineTerminatorAfterNode = this.enterDelimited();\n this.printList(\n node.arguments,\n this.shouldPrintTrailingComma(\")\"),\n undefined,\n undefined,\n undefined,\n true,\n );\n this._noLineTerminatorAfterNode = oldNoLineTerminatorAfterNode;\n this.rightParens(node);\n}\n\nexport function SequenceExpression(this: Printer, node: t.SequenceExpression) {\n this.printList(node.expressions);\n}\n\nexport function ThisExpression(this: Printer) {\n this.word(\"this\");\n}\n\nexport function Super(this: Printer) {\n this.word(\"super\");\n}\n\nexport function _shouldPrintDecoratorsBeforeExport(\n this: Printer,\n node: t.ExportDeclaration & { declaration: t.ClassDeclaration },\n) {\n if (typeof this.format.decoratorsBeforeExport === \"boolean\") {\n return this.format.decoratorsBeforeExport;\n }\n return (\n typeof node.start === \"number\" && node.start === node.declaration.start\n );\n}\n\nexport function Decorator(this: Printer, node: t.Decorator) {\n this.token(\"@\");\n const { expression } = node;\n this.print(expression);\n this.newline();\n}\n\nexport function OptionalMemberExpression(\n this: Printer,\n node: t.OptionalMemberExpression,\n) {\n let { computed } = node;\n const { optional, property } = node;\n\n this.print(node.object);\n\n if (!computed && isMemberExpression(property)) {\n throw new TypeError(\"Got a MemberExpression for MemberExpression property\");\n }\n\n // @ts-expect-error todo(flow->ts) maybe instead of typeof check specific literal types?\n if (isLiteral(property) && typeof property.value === \"number\") {\n computed = true;\n }\n if (optional) {\n this.token(\"?.\");\n }\n\n if (computed) {\n this.token(\"[\");\n this.print(property);\n this.token(\"]\");\n } else {\n if (!optional) {\n this.token(\".\");\n }\n this.print(property);\n }\n}\n\nexport function OptionalCallExpression(\n this: Printer,\n node: t.OptionalCallExpression,\n) {\n this.print(node.callee);\n\n if (!process.env.BABEL_8_BREAKING) {\n // @ts-ignore(Babel 7 vs Babel 8) Removed in Babel 8\n this.print(node.typeParameters); // legacy TS AST\n }\n\n if (node.optional) {\n this.token(\"?.\");\n }\n\n this.print(node.typeArguments);\n\n this.token(\"(\");\n const oldNoLineTerminatorAfterNode = this.enterDelimited();\n this.printList(\n node.arguments,\n undefined,\n undefined,\n undefined,\n undefined,\n true,\n );\n this._noLineTerminatorAfterNode = oldNoLineTerminatorAfterNode;\n this.rightParens(node);\n}\n\nexport function CallExpression(this: Printer, node: t.CallExpression) {\n this.print(node.callee);\n\n this.print(node.typeArguments);\n if (!process.env.BABEL_8_BREAKING) {\n // @ts-ignore(Babel 7 vs Babel 8) Removed in Babel 8\n this.print(node.typeParameters); // legacy TS AST\n }\n this.token(\"(\");\n const oldNoLineTerminatorAfterNode = this.enterDelimited();\n this.printList(\n node.arguments,\n this.shouldPrintTrailingComma(\")\"),\n undefined,\n undefined,\n undefined,\n true,\n );\n this._noLineTerminatorAfterNode = oldNoLineTerminatorAfterNode;\n this.rightParens(node);\n}\n\nexport function Import(this: Printer) {\n this.word(\"import\");\n}\n\nexport function AwaitExpression(this: Printer, node: t.AwaitExpression) {\n this.word(\"await\");\n this.space();\n this.print(node.argument);\n}\n\nexport function YieldExpression(this: Printer, node: t.YieldExpression) {\n if (node.delegate) {\n this.word(\"yield\", true);\n this.token(\"*\");\n if (node.argument) {\n this.space();\n // line terminators are allowed after yield*\n this.print(node.argument);\n }\n } else if (node.argument) {\n this.word(\"yield\", true);\n this.space();\n this.print(node.argument);\n } else {\n this.word(\"yield\");\n }\n}\n\nexport function EmptyStatement(this: Printer) {\n this.semicolon(true /* force */);\n}\n\nexport function ExpressionStatement(\n this: Printer,\n node: t.ExpressionStatement,\n) {\n this.tokenContext |= TokenContext.expressionStatement;\n this.print(node.expression);\n this.semicolon();\n}\n\nexport function AssignmentPattern(this: Printer, node: t.AssignmentPattern) {\n this.print(node.left);\n if (node.left.type === \"Identifier\" || isPattern(node.left)) {\n if (node.left.optional) this.token(\"?\");\n this.print(node.left.typeAnnotation);\n }\n this.space();\n this.token(\"=\");\n this.space();\n this.print(node.right);\n}\n\nexport function AssignmentExpression(\n this: Printer,\n node: t.AssignmentExpression | t.LogicalExpression,\n) {\n this.print(node.left);\n\n this.space();\n this.token(node.operator, false, 0, true);\n this.space();\n\n this.print(node.right);\n}\n\nexport { AssignmentExpression as LogicalExpression };\n\nexport function BinaryExpression(this: Printer, node: t.BinaryExpression) {\n this.print(node.left);\n\n this.space();\n const { operator } = node;\n if (operator.charCodeAt(0) === charCodes.lowercaseI) {\n this.word(operator);\n } else {\n this.token(operator, false, 0, true);\n this.setLastChar(operator.charCodeAt(operator.length - 1));\n }\n this.space();\n\n this.print(node.right);\n}\n\nexport function BindExpression(this: Printer, node: t.BindExpression) {\n this.print(node.object);\n this.token(\"::\");\n this.print(node.callee);\n}\n\nexport function MemberExpression(this: Printer, node: t.MemberExpression) {\n this.print(node.object);\n\n if (!node.computed && isMemberExpression(node.property)) {\n throw new TypeError(\"Got a MemberExpression for MemberExpression property\");\n }\n\n let computed = node.computed;\n // @ts-expect-error todo(flow->ts) maybe use specific literal types\n if (isLiteral(node.property) && typeof node.property.value === \"number\") {\n computed = true;\n }\n\n if (computed) {\n const oldNoLineTerminatorAfterNode = this.enterDelimited();\n this.token(\"[\");\n this.print(node.property, undefined, true);\n this.token(\"]\");\n this._noLineTerminatorAfterNode = oldNoLineTerminatorAfterNode;\n } else {\n this.token(\".\");\n this.print(node.property);\n }\n}\n\nexport function MetaProperty(this: Printer, node: t.MetaProperty) {\n this.print(node.meta);\n this.token(\".\");\n this.print(node.property);\n}\n\nexport function PrivateName(this: Printer, node: t.PrivateName) {\n this.token(\"#\");\n this.print(node.id);\n}\n\nexport function V8IntrinsicIdentifier(\n this: Printer,\n node: t.V8IntrinsicIdentifier,\n) {\n this.token(\"%\");\n this.word(node.name);\n}\n\nexport function ModuleExpression(this: Printer, node: t.ModuleExpression) {\n this.word(\"module\", true);\n this.space();\n this.token(\"{\");\n this.indent();\n const { body } = node;\n if (body.body.length || body.directives.length) {\n this.newline();\n }\n this.print(body);\n this.dedent();\n this.rightBrace(node);\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/generator/lib/generators/flow.js b/server/api/node_modules/@babel/generator/lib/generators/flow.js new file mode 100644 index 0000000..62445cb --- /dev/null +++ b/server/api/node_modules/@babel/generator/lib/generators/flow.js @@ -0,0 +1,658 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.AnyTypeAnnotation = AnyTypeAnnotation; +exports.ArrayTypeAnnotation = ArrayTypeAnnotation; +exports.BooleanLiteralTypeAnnotation = BooleanLiteralTypeAnnotation; +exports.BooleanTypeAnnotation = BooleanTypeAnnotation; +exports.DeclareClass = DeclareClass; +exports.DeclareExportAllDeclaration = DeclareExportAllDeclaration; +exports.DeclareExportDeclaration = DeclareExportDeclaration; +exports.DeclareFunction = DeclareFunction; +exports.DeclareInterface = DeclareInterface; +exports.DeclareModule = DeclareModule; +exports.DeclareModuleExports = DeclareModuleExports; +exports.DeclareOpaqueType = DeclareOpaqueType; +exports.DeclareTypeAlias = DeclareTypeAlias; +exports.DeclareVariable = DeclareVariable; +exports.DeclaredPredicate = DeclaredPredicate; +exports.EmptyTypeAnnotation = EmptyTypeAnnotation; +exports.EnumBooleanBody = EnumBooleanBody; +exports.EnumBooleanMember = EnumBooleanMember; +exports.EnumDeclaration = EnumDeclaration; +exports.EnumDefaultedMember = EnumDefaultedMember; +exports.EnumNumberBody = EnumNumberBody; +exports.EnumNumberMember = EnumNumberMember; +exports.EnumStringBody = EnumStringBody; +exports.EnumStringMember = EnumStringMember; +exports.EnumSymbolBody = EnumSymbolBody; +exports.ExistsTypeAnnotation = ExistsTypeAnnotation; +exports.FunctionTypeAnnotation = FunctionTypeAnnotation; +exports.FunctionTypeParam = FunctionTypeParam; +exports.IndexedAccessType = IndexedAccessType; +exports.InferredPredicate = InferredPredicate; +exports.InterfaceDeclaration = InterfaceDeclaration; +exports.GenericTypeAnnotation = exports.ClassImplements = exports.InterfaceExtends = InterfaceExtends; +exports.InterfaceTypeAnnotation = InterfaceTypeAnnotation; +exports.IntersectionTypeAnnotation = IntersectionTypeAnnotation; +exports.MixedTypeAnnotation = MixedTypeAnnotation; +exports.NullLiteralTypeAnnotation = NullLiteralTypeAnnotation; +exports.NullableTypeAnnotation = NullableTypeAnnotation; +Object.defineProperty(exports, "NumberLiteralTypeAnnotation", { + enumerable: true, + get: function () { + return _types2.NumericLiteral; + } +}); +exports.NumberTypeAnnotation = NumberTypeAnnotation; +exports.ObjectTypeAnnotation = ObjectTypeAnnotation; +exports.ObjectTypeCallProperty = ObjectTypeCallProperty; +exports.ObjectTypeIndexer = ObjectTypeIndexer; +exports.ObjectTypeInternalSlot = ObjectTypeInternalSlot; +exports.ObjectTypeProperty = ObjectTypeProperty; +exports.ObjectTypeSpreadProperty = ObjectTypeSpreadProperty; +exports.OpaqueType = OpaqueType; +exports.OptionalIndexedAccessType = OptionalIndexedAccessType; +exports.QualifiedTypeIdentifier = QualifiedTypeIdentifier; +Object.defineProperty(exports, "StringLiteralTypeAnnotation", { + enumerable: true, + get: function () { + return _types2.StringLiteral; + } +}); +exports.StringTypeAnnotation = StringTypeAnnotation; +exports.SymbolTypeAnnotation = SymbolTypeAnnotation; +exports.ThisTypeAnnotation = ThisTypeAnnotation; +exports.TupleTypeAnnotation = TupleTypeAnnotation; +exports.TypeAlias = TypeAlias; +exports.TypeAnnotation = TypeAnnotation; +exports.TypeCastExpression = TypeCastExpression; +exports.TypeParameter = TypeParameter; +exports.TypeParameterDeclaration = exports.TypeParameterInstantiation = TypeParameterInstantiation; +exports.TypeofTypeAnnotation = TypeofTypeAnnotation; +exports.UnionTypeAnnotation = UnionTypeAnnotation; +exports.Variance = Variance; +exports.VoidTypeAnnotation = VoidTypeAnnotation; +exports._interfaceish = _interfaceish; +exports._variance = _variance; +var _t = require("@babel/types"); +var _modules = require("./modules.js"); +var _index = require("../node/index.js"); +var _types2 = require("./types.js"); +const { + isDeclareExportDeclaration, + isStatement +} = _t; +function AnyTypeAnnotation() { + this.word("any"); +} +function ArrayTypeAnnotation(node) { + this.print(node.elementType, true); + this.tokenChar(91); + this.tokenChar(93); +} +function BooleanTypeAnnotation() { + this.word("boolean"); +} +function BooleanLiteralTypeAnnotation(node) { + this.word(node.value ? "true" : "false"); +} +function NullLiteralTypeAnnotation() { + this.word("null"); +} +function DeclareClass(node, parent) { + if (!isDeclareExportDeclaration(parent)) { + this.word("declare"); + this.space(); + } + this.word("class"); + this.space(); + _interfaceish.call(this, node); +} +function DeclareFunction(node, parent) { + if (!isDeclareExportDeclaration(parent)) { + this.word("declare"); + this.space(); + } + this.word("function"); + this.space(); + this.print(node.id); + this.print(node.id.typeAnnotation.typeAnnotation); + if (node.predicate) { + this.space(); + this.print(node.predicate); + } + this.semicolon(); +} +function InferredPredicate() { + this.tokenChar(37); + this.word("checks"); +} +function DeclaredPredicate(node) { + this.tokenChar(37); + this.word("checks"); + this.tokenChar(40); + this.print(node.value); + this.tokenChar(41); +} +function DeclareInterface(node) { + this.word("declare"); + this.space(); + InterfaceDeclaration.call(this, node); +} +function DeclareModule(node) { + this.word("declare"); + this.space(); + this.word("module"); + this.space(); + this.print(node.id); + this.space(); + this.print(node.body); +} +function DeclareModuleExports(node) { + this.word("declare"); + this.space(); + this.word("module"); + this.tokenChar(46); + this.word("exports"); + this.print(node.typeAnnotation); +} +function DeclareTypeAlias(node) { + this.word("declare"); + this.space(); + TypeAlias.call(this, node); +} +function DeclareOpaqueType(node, parent) { + if (!isDeclareExportDeclaration(parent)) { + this.word("declare"); + this.space(); + } + OpaqueType.call(this, node); +} +function DeclareVariable(node, parent) { + if (!isDeclareExportDeclaration(parent)) { + this.word("declare"); + this.space(); + } + this.word("var"); + this.space(); + this.print(node.id); + this.print(node.id.typeAnnotation); + this.semicolon(); +} +function DeclareExportDeclaration(node) { + this.word("declare"); + this.space(); + this.word("export"); + this.space(); + if (node.default) { + this.word("default"); + this.space(); + } + FlowExportDeclaration.call(this, node); +} +function DeclareExportAllDeclaration(node) { + this.word("declare"); + this.space(); + _modules.ExportAllDeclaration.call(this, node); +} +function EnumDeclaration(node) { + const { + id, + body + } = node; + this.word("enum"); + this.space(); + this.print(id); + this.print(body); +} +function enumExplicitType(context, name, hasExplicitType) { + if (hasExplicitType) { + context.space(); + context.word("of"); + context.space(); + context.word(name); + } + context.space(); +} +function enumBody(context, node) { + const { + members + } = node; + context.token("{"); + context.indent(); + context.newline(); + for (const member of members) { + context.print(member); + context.newline(); + } + if (node.hasUnknownMembers) { + context.token("..."); + context.newline(); + } + context.dedent(); + context.token("}"); +} +function EnumBooleanBody(node) { + const { + explicitType + } = node; + enumExplicitType(this, "boolean", explicitType); + enumBody(this, node); +} +function EnumNumberBody(node) { + const { + explicitType + } = node; + enumExplicitType(this, "number", explicitType); + enumBody(this, node); +} +function EnumStringBody(node) { + const { + explicitType + } = node; + enumExplicitType(this, "string", explicitType); + enumBody(this, node); +} +function EnumSymbolBody(node) { + enumExplicitType(this, "symbol", true); + enumBody(this, node); +} +function EnumDefaultedMember(node) { + const { + id + } = node; + this.print(id); + this.tokenChar(44); +} +function enumInitializedMember(context, node) { + context.print(node.id); + context.space(); + context.token("="); + context.space(); + context.print(node.init); + context.token(","); +} +function EnumBooleanMember(node) { + enumInitializedMember(this, node); +} +function EnumNumberMember(node) { + enumInitializedMember(this, node); +} +function EnumStringMember(node) { + enumInitializedMember(this, node); +} +function FlowExportDeclaration(node) { + if (node.declaration) { + const declar = node.declaration; + this.print(declar); + if (!isStatement(declar)) this.semicolon(); + } else { + this.tokenChar(123); + if (node.specifiers.length) { + this.space(); + this.printList(node.specifiers); + this.space(); + } + this.tokenChar(125); + if (node.source) { + this.space(); + this.word("from"); + this.space(); + this.print(node.source); + } + this.semicolon(); + } +} +function ExistsTypeAnnotation() { + this.tokenChar(42); +} +function FunctionTypeAnnotation(node, parent) { + this.print(node.typeParameters); + this.tokenChar(40); + if (node.this) { + this.word("this"); + this.tokenChar(58); + this.space(); + this.print(node.this.typeAnnotation); + if (node.params.length || node.rest) { + this.tokenChar(44); + this.space(); + } + } + this.printList(node.params); + if (node.rest) { + if (node.params.length) { + this.tokenChar(44); + this.space(); + } + this.token("..."); + this.print(node.rest); + } + this.tokenChar(41); + const type = parent == null ? void 0 : parent.type; + if (type != null && (type === "ObjectTypeCallProperty" || type === "ObjectTypeInternalSlot" || type === "DeclareFunction" || type === "ObjectTypeProperty" && parent.method)) { + this.tokenChar(58); + } else { + this.space(); + this.token("=>"); + } + this.space(); + this.print(node.returnType); +} +function FunctionTypeParam(node) { + this.print(node.name); + if (node.optional) this.tokenChar(63); + if (node.name) { + this.tokenChar(58); + this.space(); + } + this.print(node.typeAnnotation); +} +function InterfaceExtends(node) { + this.print(node.id); + this.print(node.typeParameters, true); +} +function _interfaceish(node) { + var _node$extends; + this.print(node.id); + this.print(node.typeParameters); + if ((_node$extends = node.extends) != null && _node$extends.length) { + this.space(); + this.word("extends"); + this.space(); + this.printList(node.extends); + } + if (node.type === "DeclareClass") { + var _node$mixins, _node$implements; + if ((_node$mixins = node.mixins) != null && _node$mixins.length) { + this.space(); + this.word("mixins"); + this.space(); + this.printList(node.mixins); + } + if ((_node$implements = node.implements) != null && _node$implements.length) { + this.space(); + this.word("implements"); + this.space(); + this.printList(node.implements); + } + } + this.space(); + this.print(node.body); +} +function _variance(node) { + var _node$variance; + const kind = (_node$variance = node.variance) == null ? void 0 : _node$variance.kind; + if (kind != null) { + if (kind === "plus") { + this.tokenChar(43); + } else if (kind === "minus") { + this.tokenChar(45); + } + } +} +function InterfaceDeclaration(node) { + this.word("interface"); + this.space(); + _interfaceish.call(this, node); +} +function andSeparator(occurrenceCount) { + this.space(); + this.token("&", false, occurrenceCount); + this.space(); +} +function InterfaceTypeAnnotation(node) { + var _node$extends2; + this.word("interface"); + if ((_node$extends2 = node.extends) != null && _node$extends2.length) { + this.space(); + this.word("extends"); + this.space(); + this.printList(node.extends); + } + this.space(); + this.print(node.body); +} +function IntersectionTypeAnnotation(node) { + this.printJoin(node.types, undefined, undefined, andSeparator); +} +function MixedTypeAnnotation() { + this.word("mixed"); +} +function EmptyTypeAnnotation() { + this.word("empty"); +} +function NullableTypeAnnotation(node) { + this.tokenChar(63); + this.print(node.typeAnnotation); +} +function NumberTypeAnnotation() { + this.word("number"); +} +function StringTypeAnnotation() { + this.word("string"); +} +function ThisTypeAnnotation() { + this.word("this"); +} +function TupleTypeAnnotation(node) { + this.tokenChar(91); + this.printList(node.types); + this.tokenChar(93); +} +function TypeofTypeAnnotation(node) { + this.word("typeof"); + this.space(); + this.print(node.argument); +} +function TypeAlias(node) { + this.word("type"); + this.space(); + this.print(node.id); + this.print(node.typeParameters); + this.space(); + this.tokenChar(61); + this.space(); + this.print(node.right); + this.semicolon(); +} +function TypeAnnotation(node, parent) { + this.tokenChar(58); + this.space(); + if (parent.type === "ArrowFunctionExpression") { + this.tokenContext |= _index.TokenContext.arrowFlowReturnType; + } else if (node.optional) { + this.tokenChar(63); + } + this.print(node.typeAnnotation); +} +function TypeParameterInstantiation(node) { + this.tokenChar(60); + this.printList(node.params); + this.tokenChar(62); +} +function TypeParameter(node) { + _variance.call(this, node); + this.word(node.name); + if (node.bound) { + this.print(node.bound); + } + if (node.default) { + this.space(); + this.tokenChar(61); + this.space(); + this.print(node.default); + } +} +function OpaqueType(node) { + this.word("opaque"); + this.space(); + this.word("type"); + this.space(); + this.print(node.id); + this.print(node.typeParameters); + if (node.supertype) { + this.tokenChar(58); + this.space(); + this.print(node.supertype); + } + if (node.impltype) { + this.space(); + this.tokenChar(61); + this.space(); + this.print(node.impltype); + } + this.semicolon(); +} +function ObjectTypeAnnotation(node) { + if (node.exact) { + this.token("{|"); + } else { + this.tokenChar(123); + } + const props = [...node.properties, ...(node.callProperties || []), ...(node.indexers || []), ...(node.internalSlots || [])]; + if (props.length) { + this.newline(); + this.space(); + this.printJoin(props, true, true, () => { + if (props.length !== 1 || node.inexact) { + this.tokenChar(44); + this.space(); + } + }, true); + this.space(); + } + if (node.inexact) { + this.indent(); + this.token("..."); + if (props.length) { + this.newline(); + } + this.dedent(); + } + if (node.exact) { + this.token("|}"); + } else { + this.tokenChar(125); + } +} +function ObjectTypeInternalSlot(node) { + if (node.static) { + this.word("static"); + this.space(); + } + this.tokenChar(91); + this.tokenChar(91); + this.print(node.id); + this.tokenChar(93); + this.tokenChar(93); + if (node.optional) this.tokenChar(63); + if (!node.method) { + this.tokenChar(58); + this.space(); + } + this.print(node.value); +} +function ObjectTypeCallProperty(node) { + if (node.static) { + this.word("static"); + this.space(); + } + this.print(node.value); +} +function ObjectTypeIndexer(node) { + if (node.static) { + this.word("static"); + this.space(); + } + _variance.call(this, node); + this.tokenChar(91); + if (node.id) { + this.print(node.id); + this.tokenChar(58); + this.space(); + } + this.print(node.key); + this.tokenChar(93); + this.tokenChar(58); + this.space(); + this.print(node.value); +} +function ObjectTypeProperty(node) { + if (node.proto) { + this.word("proto"); + this.space(); + } + if (node.static) { + this.word("static"); + this.space(); + } + if (node.kind === "get" || node.kind === "set") { + this.word(node.kind); + this.space(); + } + _variance.call(this, node); + this.print(node.key); + if (node.optional) this.tokenChar(63); + if (!node.method) { + this.tokenChar(58); + this.space(); + } + this.print(node.value); +} +function ObjectTypeSpreadProperty(node) { + this.token("..."); + this.print(node.argument); +} +function QualifiedTypeIdentifier(node) { + this.print(node.qualification); + this.tokenChar(46); + this.print(node.id); +} +function SymbolTypeAnnotation() { + this.word("symbol"); +} +function orSeparator(occurrenceCount) { + this.space(); + this.token("|", false, occurrenceCount); + this.space(); +} +function UnionTypeAnnotation(node) { + this.printJoin(node.types, undefined, undefined, orSeparator); +} +function TypeCastExpression(node) { + this.tokenChar(40); + this.print(node.expression); + this.print(node.typeAnnotation); + this.tokenChar(41); +} +function Variance(node) { + if (node.kind === "plus") { + this.tokenChar(43); + } else { + this.tokenChar(45); + } +} +function VoidTypeAnnotation() { + this.word("void"); +} +function IndexedAccessType(node) { + this.print(node.objectType, true); + this.tokenChar(91); + this.print(node.indexType); + this.tokenChar(93); +} +function OptionalIndexedAccessType(node) { + this.print(node.objectType); + if (node.optional) { + this.token("?."); + } + this.tokenChar(91); + this.print(node.indexType); + this.tokenChar(93); +} + +//# sourceMappingURL=flow.js.map diff --git a/server/api/node_modules/@babel/generator/lib/generators/flow.js.map b/server/api/node_modules/@babel/generator/lib/generators/flow.js.map new file mode 100644 index 0000000..b44691a --- /dev/null +++ b/server/api/node_modules/@babel/generator/lib/generators/flow.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_t","require","_modules","_index","_types2","isDeclareExportDeclaration","isStatement","AnyTypeAnnotation","word","ArrayTypeAnnotation","node","print","elementType","token","BooleanTypeAnnotation","BooleanLiteralTypeAnnotation","value","NullLiteralTypeAnnotation","DeclareClass","parent","space","_interfaceish","call","DeclareFunction","id","typeAnnotation","predicate","semicolon","InferredPredicate","DeclaredPredicate","DeclareInterface","InterfaceDeclaration","DeclareModule","body","DeclareModuleExports","DeclareTypeAlias","TypeAlias","DeclareOpaqueType","OpaqueType","DeclareVariable","DeclareExportDeclaration","default","FlowExportDeclaration","DeclareExportAllDeclaration","ExportAllDeclaration","EnumDeclaration","enumExplicitType","context","name","hasExplicitType","enumBody","members","indent","newline","member","hasUnknownMembers","dedent","EnumBooleanBody","explicitType","EnumNumberBody","EnumStringBody","EnumSymbolBody","EnumDefaultedMember","enumInitializedMember","init","EnumBooleanMember","EnumNumberMember","EnumStringMember","declaration","declar","specifiers","length","printList","source","ExistsTypeAnnotation","FunctionTypeAnnotation","typeParameters","this","params","rest","type","method","returnType","FunctionTypeParam","optional","InterfaceExtends","_node$extends","extends","_node$mixins","_node$implements","mixins","implements","_variance","_node$variance","kind","variance","andSeparator","occurrenceCount","InterfaceTypeAnnotation","_node$extends2","IntersectionTypeAnnotation","printJoin","types","undefined","MixedTypeAnnotation","EmptyTypeAnnotation","NullableTypeAnnotation","NumberTypeAnnotation","StringTypeAnnotation","ThisTypeAnnotation","TupleTypeAnnotation","TypeofTypeAnnotation","argument","right","TypeAnnotation","tokenContext","TokenContext","arrowFlowReturnType","TypeParameterInstantiation","TypeParameter","bound","supertype","impltype","ObjectTypeAnnotation","exact","props","properties","callProperties","indexers","internalSlots","inexact","ObjectTypeInternalSlot","static","ObjectTypeCallProperty","ObjectTypeIndexer","key","ObjectTypeProperty","proto","ObjectTypeSpreadProperty","QualifiedTypeIdentifier","qualification","SymbolTypeAnnotation","orSeparator","UnionTypeAnnotation","TypeCastExpression","expression","Variance","VoidTypeAnnotation","IndexedAccessType","objectType","indexType","OptionalIndexedAccessType"],"sources":["../../src/generators/flow.ts"],"sourcesContent":["import type Printer from \"../printer.ts\";\nimport { isDeclareExportDeclaration, isStatement } from \"@babel/types\";\nimport type * as t from \"@babel/types\";\nimport { ExportAllDeclaration } from \"./modules.ts\";\nimport { TokenContext } from \"../node/index.ts\";\n\nexport function AnyTypeAnnotation(this: Printer) {\n this.word(\"any\");\n}\n\nexport function ArrayTypeAnnotation(\n this: Printer,\n node: t.ArrayTypeAnnotation,\n) {\n this.print(node.elementType, true);\n this.token(\"[\");\n this.token(\"]\");\n}\n\nexport function BooleanTypeAnnotation(this: Printer) {\n this.word(\"boolean\");\n}\n\nexport function BooleanLiteralTypeAnnotation(\n this: Printer,\n node: t.BooleanLiteralTypeAnnotation,\n) {\n this.word(node.value ? \"true\" : \"false\");\n}\n\nexport function NullLiteralTypeAnnotation(this: Printer) {\n this.word(\"null\");\n}\n\nexport function DeclareClass(\n this: Printer,\n node: t.DeclareClass,\n parent: t.Node,\n) {\n if (!isDeclareExportDeclaration(parent)) {\n this.word(\"declare\");\n this.space();\n }\n this.word(\"class\");\n this.space();\n _interfaceish.call(this, node);\n}\n\nexport function DeclareFunction(\n this: Printer,\n node: t.DeclareFunction,\n parent: t.Node,\n) {\n if (!isDeclareExportDeclaration(parent)) {\n this.word(\"declare\");\n this.space();\n }\n this.word(\"function\");\n this.space();\n this.print(node.id);\n // @ts-ignore(Babel 7 vs Babel 8) TODO(Babel 8) Remove this comment, since we'll remove the Noop node\n this.print(node.id.typeAnnotation.typeAnnotation);\n\n if (node.predicate) {\n this.space();\n this.print(node.predicate);\n }\n\n this.semicolon();\n}\n\nexport function InferredPredicate(this: Printer) {\n this.token(\"%\");\n this.word(\"checks\");\n}\n\nexport function DeclaredPredicate(this: Printer, node: t.DeclaredPredicate) {\n this.token(\"%\");\n this.word(\"checks\");\n this.token(\"(\");\n this.print(node.value);\n this.token(\")\");\n}\n\nexport function DeclareInterface(this: Printer, node: t.DeclareInterface) {\n this.word(\"declare\");\n this.space();\n InterfaceDeclaration.call(this, node);\n}\n\nexport function DeclareModule(this: Printer, node: t.DeclareModule) {\n this.word(\"declare\");\n this.space();\n this.word(\"module\");\n this.space();\n this.print(node.id);\n this.space();\n this.print(node.body);\n}\n\nexport function DeclareModuleExports(\n this: Printer,\n node: t.DeclareModuleExports,\n) {\n this.word(\"declare\");\n this.space();\n this.word(\"module\");\n this.token(\".\");\n this.word(\"exports\");\n this.print(node.typeAnnotation);\n}\n\nexport function DeclareTypeAlias(this: Printer, node: t.DeclareTypeAlias) {\n this.word(\"declare\");\n this.space();\n TypeAlias.call(this, node);\n}\n\nexport function DeclareOpaqueType(\n this: Printer,\n node: t.DeclareOpaqueType,\n parent: t.Node,\n) {\n if (!isDeclareExportDeclaration(parent)) {\n this.word(\"declare\");\n this.space();\n }\n OpaqueType.call(this, node);\n}\n\nexport function DeclareVariable(\n this: Printer,\n node: t.DeclareVariable,\n parent: t.Node,\n) {\n if (!isDeclareExportDeclaration(parent)) {\n this.word(\"declare\");\n this.space();\n }\n this.word(\"var\");\n this.space();\n this.print(node.id);\n this.print(node.id.typeAnnotation);\n this.semicolon();\n}\n\nexport function DeclareExportDeclaration(\n this: Printer,\n node: t.DeclareExportDeclaration,\n) {\n this.word(\"declare\");\n this.space();\n this.word(\"export\");\n this.space();\n if (node.default) {\n this.word(\"default\");\n this.space();\n }\n\n FlowExportDeclaration.call(this, node);\n}\n\nexport function DeclareExportAllDeclaration(\n this: Printer,\n node: t.DeclareExportAllDeclaration,\n) {\n this.word(\"declare\");\n this.space();\n ExportAllDeclaration.call(this, node);\n}\n\nexport function EnumDeclaration(this: Printer, node: t.EnumDeclaration) {\n const { id, body } = node;\n this.word(\"enum\");\n this.space();\n this.print(id);\n this.print(body);\n}\n\nfunction enumExplicitType(\n context: Printer,\n name: string,\n hasExplicitType: boolean,\n) {\n if (hasExplicitType) {\n context.space();\n context.word(\"of\");\n context.space();\n context.word(name);\n }\n context.space();\n}\n\nfunction enumBody(context: Printer, node: t.EnumBody) {\n const { members } = node;\n context.token(\"{\");\n context.indent();\n context.newline();\n for (const member of members) {\n context.print(member);\n context.newline();\n }\n if (node.hasUnknownMembers) {\n context.token(\"...\");\n context.newline();\n }\n context.dedent();\n context.token(\"}\");\n}\n\nexport function EnumBooleanBody(this: Printer, node: t.EnumBooleanBody) {\n const { explicitType } = node;\n enumExplicitType(this, \"boolean\", explicitType);\n enumBody(this, node);\n}\n\nexport function EnumNumberBody(this: Printer, node: t.EnumNumberBody) {\n const { explicitType } = node;\n enumExplicitType(this, \"number\", explicitType);\n enumBody(this, node);\n}\n\nexport function EnumStringBody(this: Printer, node: t.EnumStringBody) {\n const { explicitType } = node;\n enumExplicitType(this, \"string\", explicitType);\n enumBody(this, node);\n}\n\nexport function EnumSymbolBody(this: Printer, node: t.EnumSymbolBody) {\n enumExplicitType(this, \"symbol\", true);\n enumBody(this, node);\n}\n\nexport function EnumDefaultedMember(\n this: Printer,\n node: t.EnumDefaultedMember,\n) {\n const { id } = node;\n this.print(id);\n this.token(\",\");\n}\n\nfunction enumInitializedMember(\n context: Printer,\n node: t.EnumBooleanMember | t.EnumNumberMember | t.EnumStringMember,\n) {\n context.print(node.id);\n context.space();\n context.token(\"=\");\n context.space();\n context.print(node.init);\n context.token(\",\");\n}\n\nexport function EnumBooleanMember(this: Printer, node: t.EnumBooleanMember) {\n enumInitializedMember(this, node);\n}\n\nexport function EnumNumberMember(this: Printer, node: t.EnumNumberMember) {\n enumInitializedMember(this, node);\n}\n\nexport function EnumStringMember(this: Printer, node: t.EnumStringMember) {\n enumInitializedMember(this, node);\n}\n\nfunction FlowExportDeclaration(\n this: Printer,\n node: t.DeclareExportDeclaration,\n) {\n if (node.declaration) {\n const declar = node.declaration;\n this.print(declar);\n if (!isStatement(declar)) this.semicolon();\n } else {\n this.token(\"{\");\n if (node.specifiers!.length) {\n this.space();\n this.printList(node.specifiers);\n this.space();\n }\n this.token(\"}\");\n\n if (node.source) {\n this.space();\n this.word(\"from\");\n this.space();\n this.print(node.source);\n }\n\n this.semicolon();\n }\n}\n\nexport function ExistsTypeAnnotation(this: Printer) {\n this.token(\"*\");\n}\n\nexport function FunctionTypeAnnotation(\n this: Printer,\n node: t.FunctionTypeAnnotation,\n parent?: t.Node,\n) {\n this.print(node.typeParameters);\n this.token(\"(\");\n\n if (node.this) {\n this.word(\"this\");\n this.token(\":\");\n this.space();\n this.print(node.this.typeAnnotation);\n if (node.params.length || node.rest) {\n this.token(\",\");\n this.space();\n }\n }\n\n this.printList(node.params);\n\n if (node.rest) {\n if (node.params.length) {\n this.token(\",\");\n this.space();\n }\n this.token(\"...\");\n this.print(node.rest);\n }\n\n this.token(\")\");\n\n // this node type is overloaded, not sure why but it makes it EXTREMELY annoying\n\n const type = parent?.type;\n if (\n type != null &&\n (type === \"ObjectTypeCallProperty\" ||\n type === \"ObjectTypeInternalSlot\" ||\n type === \"DeclareFunction\" ||\n (type === \"ObjectTypeProperty\" && parent.method))\n ) {\n this.token(\":\");\n } else {\n this.space();\n this.token(\"=>\");\n }\n\n this.space();\n this.print(node.returnType);\n}\n\nexport function FunctionTypeParam(this: Printer, node: t.FunctionTypeParam) {\n this.print(node.name);\n if (node.optional) this.token(\"?\");\n if (node.name) {\n this.token(\":\");\n this.space();\n }\n this.print(node.typeAnnotation);\n}\n\nexport function InterfaceExtends(this: Printer, node: t.InterfaceExtends) {\n this.print(node.id);\n this.print(node.typeParameters, true);\n}\n\nexport {\n InterfaceExtends as ClassImplements,\n InterfaceExtends as GenericTypeAnnotation,\n};\n\nexport function _interfaceish(\n this: Printer,\n node: t.InterfaceDeclaration | t.DeclareInterface | t.DeclareClass,\n) {\n this.print(node.id);\n this.print(node.typeParameters);\n if (node.extends?.length) {\n this.space();\n this.word(\"extends\");\n this.space();\n this.printList(node.extends);\n }\n if (node.type === \"DeclareClass\") {\n if (node.mixins?.length) {\n this.space();\n this.word(\"mixins\");\n this.space();\n this.printList(node.mixins);\n }\n if (node.implements?.length) {\n this.space();\n this.word(\"implements\");\n this.space();\n this.printList(node.implements);\n }\n }\n this.space();\n this.print(node.body);\n}\n\nexport function _variance(\n this: Printer,\n node:\n | t.TypeParameter\n | t.ObjectTypeIndexer\n | t.ObjectTypeProperty\n | t.ClassProperty\n | t.ClassPrivateProperty\n | t.ClassAccessorProperty,\n) {\n const kind = node.variance?.kind;\n if (kind != null) {\n if (kind === \"plus\") {\n this.token(\"+\");\n } else if (kind === \"minus\") {\n this.token(\"-\");\n }\n }\n}\n\nexport function InterfaceDeclaration(\n this: Printer,\n node: t.InterfaceDeclaration | t.DeclareInterface,\n) {\n this.word(\"interface\");\n this.space();\n _interfaceish.call(this, node);\n}\n\nfunction andSeparator(this: Printer, occurrenceCount: number) {\n this.space();\n this.token(\"&\", false, occurrenceCount);\n this.space();\n}\n\nexport function InterfaceTypeAnnotation(\n this: Printer,\n node: t.InterfaceTypeAnnotation,\n) {\n this.word(\"interface\");\n if (node.extends?.length) {\n this.space();\n this.word(\"extends\");\n this.space();\n this.printList(node.extends);\n }\n this.space();\n this.print(node.body);\n}\n\nexport function IntersectionTypeAnnotation(\n this: Printer,\n node: t.IntersectionTypeAnnotation,\n) {\n this.printJoin(node.types, undefined, undefined, andSeparator);\n}\n\nexport function MixedTypeAnnotation(this: Printer) {\n this.word(\"mixed\");\n}\n\nexport function EmptyTypeAnnotation(this: Printer) {\n this.word(\"empty\");\n}\n\nexport function NullableTypeAnnotation(\n this: Printer,\n node: t.NullableTypeAnnotation,\n) {\n this.token(\"?\");\n this.print(node.typeAnnotation);\n}\n\nexport {\n NumericLiteral as NumberLiteralTypeAnnotation,\n StringLiteral as StringLiteralTypeAnnotation,\n} from \"./types.ts\";\n\nexport function NumberTypeAnnotation(this: Printer) {\n this.word(\"number\");\n}\n\nexport function StringTypeAnnotation(this: Printer) {\n this.word(\"string\");\n}\n\nexport function ThisTypeAnnotation(this: Printer) {\n this.word(\"this\");\n}\n\nexport function TupleTypeAnnotation(\n this: Printer,\n node: t.TupleTypeAnnotation,\n) {\n this.token(\"[\");\n this.printList(node.types);\n this.token(\"]\");\n}\n\nexport function TypeofTypeAnnotation(\n this: Printer,\n node: t.TypeofTypeAnnotation,\n) {\n this.word(\"typeof\");\n this.space();\n this.print(node.argument);\n}\n\nexport function TypeAlias(\n this: Printer,\n node: t.TypeAlias | t.DeclareTypeAlias,\n) {\n this.word(\"type\");\n this.space();\n this.print(node.id);\n this.print(node.typeParameters);\n this.space();\n this.token(\"=\");\n this.space();\n this.print(node.right);\n this.semicolon();\n}\n\nexport function TypeAnnotation(\n this: Printer,\n node: t.TypeAnnotation,\n parent: t.Node,\n) {\n this.token(\":\");\n this.space();\n if (parent.type === \"ArrowFunctionExpression\") {\n this.tokenContext |= TokenContext.arrowFlowReturnType;\n } else if (\n // @ts-expect-error todo(flow->ts) can this be removed? `.optional` looks to be not existing property\n node.optional\n ) {\n this.token(\"?\");\n }\n this.print(node.typeAnnotation);\n}\n\nexport function TypeParameterInstantiation(\n this: Printer,\n node: t.TypeParameterInstantiation,\n): void {\n this.token(\"<\");\n this.printList(node.params);\n this.token(\">\");\n}\n\nexport { TypeParameterInstantiation as TypeParameterDeclaration };\n\nexport function TypeParameter(this: Printer, node: t.TypeParameter) {\n _variance.call(this, node);\n\n this.word(node.name);\n\n if (node.bound) {\n this.print(node.bound);\n }\n\n if (node.default) {\n this.space();\n this.token(\"=\");\n this.space();\n this.print(node.default);\n }\n}\n\nexport function OpaqueType(\n this: Printer,\n node: t.OpaqueType | t.DeclareOpaqueType,\n) {\n this.word(\"opaque\");\n this.space();\n this.word(\"type\");\n this.space();\n this.print(node.id);\n this.print(node.typeParameters);\n if (node.supertype) {\n this.token(\":\");\n this.space();\n this.print(node.supertype);\n }\n\n if (node.impltype) {\n this.space();\n this.token(\"=\");\n this.space();\n this.print(node.impltype);\n }\n this.semicolon();\n}\n\nexport function ObjectTypeAnnotation(\n this: Printer,\n node: t.ObjectTypeAnnotation,\n) {\n if (node.exact) {\n this.token(\"{|\");\n } else {\n this.token(\"{\");\n }\n\n // TODO: remove the array fallbacks and instead enforce the types to require an array\n const props = [\n ...node.properties,\n ...(node.callProperties || []),\n ...(node.indexers || []),\n ...(node.internalSlots || []),\n ];\n\n if (props.length) {\n this.newline();\n\n this.space();\n\n this.printJoin(\n props,\n true,\n true,\n () => {\n if (props.length !== 1 || node.inexact) {\n this.token(\",\");\n this.space();\n }\n },\n true,\n );\n\n this.space();\n }\n\n if (node.inexact) {\n this.indent();\n this.token(\"...\");\n if (props.length) {\n this.newline();\n }\n this.dedent();\n }\n\n if (node.exact) {\n this.token(\"|}\");\n } else {\n this.token(\"}\");\n }\n}\n\nexport function ObjectTypeInternalSlot(\n this: Printer,\n node: t.ObjectTypeInternalSlot,\n) {\n if (node.static) {\n this.word(\"static\");\n this.space();\n }\n this.token(\"[\");\n this.token(\"[\");\n this.print(node.id);\n this.token(\"]\");\n this.token(\"]\");\n if (node.optional) this.token(\"?\");\n if (!node.method) {\n this.token(\":\");\n this.space();\n }\n this.print(node.value);\n}\n\nexport function ObjectTypeCallProperty(\n this: Printer,\n node: t.ObjectTypeCallProperty,\n) {\n if (node.static) {\n this.word(\"static\");\n this.space();\n }\n this.print(node.value);\n}\n\nexport function ObjectTypeIndexer(this: Printer, node: t.ObjectTypeIndexer) {\n if (node.static) {\n this.word(\"static\");\n this.space();\n }\n _variance.call(this, node);\n this.token(\"[\");\n if (node.id) {\n this.print(node.id);\n this.token(\":\");\n this.space();\n }\n this.print(node.key);\n this.token(\"]\");\n this.token(\":\");\n this.space();\n this.print(node.value);\n}\n\nexport function ObjectTypeProperty(this: Printer, node: t.ObjectTypeProperty) {\n if (node.proto) {\n this.word(\"proto\");\n this.space();\n }\n if (node.static) {\n this.word(\"static\");\n this.space();\n }\n if (node.kind === \"get\" || node.kind === \"set\") {\n this.word(node.kind);\n this.space();\n }\n _variance.call(this, node);\n this.print(node.key);\n if (node.optional) this.token(\"?\");\n if (!node.method) {\n this.token(\":\");\n this.space();\n }\n this.print(node.value);\n}\n\nexport function ObjectTypeSpreadProperty(\n this: Printer,\n node: t.ObjectTypeSpreadProperty,\n) {\n this.token(\"...\");\n this.print(node.argument);\n}\n\nexport function QualifiedTypeIdentifier(\n this: Printer,\n node: t.QualifiedTypeIdentifier,\n) {\n this.print(node.qualification);\n this.token(\".\");\n this.print(node.id);\n}\n\nexport function SymbolTypeAnnotation(this: Printer) {\n this.word(\"symbol\");\n}\n\nfunction orSeparator(this: Printer, occurrenceCount: number) {\n this.space();\n this.token(\"|\", false, occurrenceCount);\n this.space();\n}\n\nexport function UnionTypeAnnotation(\n this: Printer,\n node: t.UnionTypeAnnotation,\n) {\n this.printJoin(node.types, undefined, undefined, orSeparator);\n}\n\nexport function TypeCastExpression(this: Printer, node: t.TypeCastExpression) {\n this.token(\"(\");\n this.print(node.expression);\n this.print(node.typeAnnotation);\n this.token(\")\");\n}\n\nexport function Variance(this: Printer, node: t.Variance) {\n if (node.kind === \"plus\") {\n this.token(\"+\");\n } else {\n this.token(\"-\");\n }\n}\n\nexport function VoidTypeAnnotation(this: Printer) {\n this.word(\"void\");\n}\n\nexport function IndexedAccessType(this: Printer, node: t.IndexedAccessType) {\n this.print(node.objectType, true);\n this.token(\"[\");\n this.print(node.indexType);\n this.token(\"]\");\n}\n\nexport function OptionalIndexedAccessType(\n this: Printer,\n node: t.OptionalIndexedAccessType,\n) {\n this.print(node.objectType);\n if (node.optional) {\n this.token(\"?.\");\n }\n this.token(\"[\");\n this.print(node.indexType);\n this.token(\"]\");\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,IAAAA,EAAA,GAAAC,OAAA;AAEA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AAqdA,IAAAG,OAAA,GAAAH,OAAA;AAGoB;EA3dXI,0BAA0B;EAAEC;AAAW,IAAAN,EAAA;AAKzC,SAASO,iBAAiBA,CAAA,EAAgB;EAC/C,IAAI,CAACC,IAAI,CAAC,KAAK,CAAC;AAClB;AAEO,SAASC,mBAAmBA,CAEjCC,IAA2B,EAC3B;EACA,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,WAAW,EAAE,IAAI,CAAC;EAClC,IAAI,CAACC,SAAK,GAAI,CAAC;EACf,IAAI,CAACA,SAAK,GAAI,CAAC;AACjB;AAEO,SAASC,qBAAqBA,CAAA,EAAgB;EACnD,IAAI,CAACN,IAAI,CAAC,SAAS,CAAC;AACtB;AAEO,SAASO,4BAA4BA,CAE1CL,IAAoC,EACpC;EACA,IAAI,CAACF,IAAI,CAACE,IAAI,CAACM,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC;AAC1C;AAEO,SAASC,yBAAyBA,CAAA,EAAgB;EACvD,IAAI,CAACT,IAAI,CAAC,MAAM,CAAC;AACnB;AAEO,SAASU,YAAYA,CAE1BR,IAAoB,EACpBS,MAAc,EACd;EACA,IAAI,CAACd,0BAA0B,CAACc,MAAM,CAAC,EAAE;IACvC,IAAI,CAACX,IAAI,CAAC,SAAS,CAAC;IACpB,IAAI,CAACY,KAAK,CAAC,CAAC;EACd;EACA,IAAI,CAACZ,IAAI,CAAC,OAAO,CAAC;EAClB,IAAI,CAACY,KAAK,CAAC,CAAC;EACZC,aAAa,CAACC,IAAI,CAAC,IAAI,EAAEZ,IAAI,CAAC;AAChC;AAEO,SAASa,eAAeA,CAE7Bb,IAAuB,EACvBS,MAAc,EACd;EACA,IAAI,CAACd,0BAA0B,CAACc,MAAM,CAAC,EAAE;IACvC,IAAI,CAACX,IAAI,CAAC,SAAS,CAAC;IACpB,IAAI,CAACY,KAAK,CAAC,CAAC;EACd;EACA,IAAI,CAACZ,IAAI,CAAC,UAAU,CAAC;EACrB,IAAI,CAACY,KAAK,CAAC,CAAC;EACZ,IAAI,CAACT,KAAK,CAACD,IAAI,CAACc,EAAE,CAAC;EAEnB,IAAI,CAACb,KAAK,CAACD,IAAI,CAACc,EAAE,CAACC,cAAc,CAACA,cAAc,CAAC;EAEjD,IAAIf,IAAI,CAACgB,SAAS,EAAE;IAClB,IAAI,CAACN,KAAK,CAAC,CAAC;IACZ,IAAI,CAACT,KAAK,CAACD,IAAI,CAACgB,SAAS,CAAC;EAC5B;EAEA,IAAI,CAACC,SAAS,CAAC,CAAC;AAClB;AAEO,SAASC,iBAAiBA,CAAA,EAAgB;EAC/C,IAAI,CAACf,SAAK,GAAI,CAAC;EACf,IAAI,CAACL,IAAI,CAAC,QAAQ,CAAC;AACrB;AAEO,SAASqB,iBAAiBA,CAAgBnB,IAAyB,EAAE;EAC1E,IAAI,CAACG,SAAK,GAAI,CAAC;EACf,IAAI,CAACL,IAAI,CAAC,QAAQ,CAAC;EACnB,IAAI,CAACK,SAAK,GAAI,CAAC;EACf,IAAI,CAACF,KAAK,CAACD,IAAI,CAACM,KAAK,CAAC;EACtB,IAAI,CAACH,SAAK,GAAI,CAAC;AACjB;AAEO,SAASiB,gBAAgBA,CAAgBpB,IAAwB,EAAE;EACxE,IAAI,CAACF,IAAI,CAAC,SAAS,CAAC;EACpB,IAAI,CAACY,KAAK,CAAC,CAAC;EACZW,oBAAoB,CAACT,IAAI,CAAC,IAAI,EAAEZ,IAAI,CAAC;AACvC;AAEO,SAASsB,aAAaA,CAAgBtB,IAAqB,EAAE;EAClE,IAAI,CAACF,IAAI,CAAC,SAAS,CAAC;EACpB,IAAI,CAACY,KAAK,CAAC,CAAC;EACZ,IAAI,CAACZ,IAAI,CAAC,QAAQ,CAAC;EACnB,IAAI,CAACY,KAAK,CAAC,CAAC;EACZ,IAAI,CAACT,KAAK,CAACD,IAAI,CAACc,EAAE,CAAC;EACnB,IAAI,CAACJ,KAAK,CAAC,CAAC;EACZ,IAAI,CAACT,KAAK,CAACD,IAAI,CAACuB,IAAI,CAAC;AACvB;AAEO,SAASC,oBAAoBA,CAElCxB,IAA4B,EAC5B;EACA,IAAI,CAACF,IAAI,CAAC,SAAS,CAAC;EACpB,IAAI,CAACY,KAAK,CAAC,CAAC;EACZ,IAAI,CAACZ,IAAI,CAAC,QAAQ,CAAC;EACnB,IAAI,CAACK,SAAK,GAAI,CAAC;EACf,IAAI,CAACL,IAAI,CAAC,SAAS,CAAC;EACpB,IAAI,CAACG,KAAK,CAACD,IAAI,CAACe,cAAc,CAAC;AACjC;AAEO,SAASU,gBAAgBA,CAAgBzB,IAAwB,EAAE;EACxE,IAAI,CAACF,IAAI,CAAC,SAAS,CAAC;EACpB,IAAI,CAACY,KAAK,CAAC,CAAC;EACZgB,SAAS,CAACd,IAAI,CAAC,IAAI,EAAEZ,IAAI,CAAC;AAC5B;AAEO,SAAS2B,iBAAiBA,CAE/B3B,IAAyB,EACzBS,MAAc,EACd;EACA,IAAI,CAACd,0BAA0B,CAACc,MAAM,CAAC,EAAE;IACvC,IAAI,CAACX,IAAI,CAAC,SAAS,CAAC;IACpB,IAAI,CAACY,KAAK,CAAC,CAAC;EACd;EACAkB,UAAU,CAAChB,IAAI,CAAC,IAAI,EAAEZ,IAAI,CAAC;AAC7B;AAEO,SAAS6B,eAAeA,CAE7B7B,IAAuB,EACvBS,MAAc,EACd;EACA,IAAI,CAACd,0BAA0B,CAACc,MAAM,CAAC,EAAE;IACvC,IAAI,CAACX,IAAI,CAAC,SAAS,CAAC;IACpB,IAAI,CAACY,KAAK,CAAC,CAAC;EACd;EACA,IAAI,CAACZ,IAAI,CAAC,KAAK,CAAC;EAChB,IAAI,CAACY,KAAK,CAAC,CAAC;EACZ,IAAI,CAACT,KAAK,CAACD,IAAI,CAACc,EAAE,CAAC;EACnB,IAAI,CAACb,KAAK,CAACD,IAAI,CAACc,EAAE,CAACC,cAAc,CAAC;EAClC,IAAI,CAACE,SAAS,CAAC,CAAC;AAClB;AAEO,SAASa,wBAAwBA,CAEtC9B,IAAgC,EAChC;EACA,IAAI,CAACF,IAAI,CAAC,SAAS,CAAC;EACpB,IAAI,CAACY,KAAK,CAAC,CAAC;EACZ,IAAI,CAACZ,IAAI,CAAC,QAAQ,CAAC;EACnB,IAAI,CAACY,KAAK,CAAC,CAAC;EACZ,IAAIV,IAAI,CAAC+B,OAAO,EAAE;IAChB,IAAI,CAACjC,IAAI,CAAC,SAAS,CAAC;IACpB,IAAI,CAACY,KAAK,CAAC,CAAC;EACd;EAEAsB,qBAAqB,CAACpB,IAAI,CAAC,IAAI,EAAEZ,IAAI,CAAC;AACxC;AAEO,SAASiC,2BAA2BA,CAEzCjC,IAAmC,EACnC;EACA,IAAI,CAACF,IAAI,CAAC,SAAS,CAAC;EACpB,IAAI,CAACY,KAAK,CAAC,CAAC;EACZwB,6BAAoB,CAACtB,IAAI,CAAC,IAAI,EAAEZ,IAAI,CAAC;AACvC;AAEO,SAASmC,eAAeA,CAAgBnC,IAAuB,EAAE;EACtE,MAAM;IAAEc,EAAE;IAAES;EAAK,CAAC,GAAGvB,IAAI;EACzB,IAAI,CAACF,IAAI,CAAC,MAAM,CAAC;EACjB,IAAI,CAACY,KAAK,CAAC,CAAC;EACZ,IAAI,CAACT,KAAK,CAACa,EAAE,CAAC;EACd,IAAI,CAACb,KAAK,CAACsB,IAAI,CAAC;AAClB;AAEA,SAASa,gBAAgBA,CACvBC,OAAgB,EAChBC,IAAY,EACZC,eAAwB,EACxB;EACA,IAAIA,eAAe,EAAE;IACnBF,OAAO,CAAC3B,KAAK,CAAC,CAAC;IACf2B,OAAO,CAACvC,IAAI,CAAC,IAAI,CAAC;IAClBuC,OAAO,CAAC3B,KAAK,CAAC,CAAC;IACf2B,OAAO,CAACvC,IAAI,CAACwC,IAAI,CAAC;EACpB;EACAD,OAAO,CAAC3B,KAAK,CAAC,CAAC;AACjB;AAEA,SAAS8B,QAAQA,CAACH,OAAgB,EAAErC,IAAgB,EAAE;EACpD,MAAM;IAAEyC;EAAQ,CAAC,GAAGzC,IAAI;EACxBqC,OAAO,CAAClC,KAAK,CAAC,GAAG,CAAC;EAClBkC,OAAO,CAACK,MAAM,CAAC,CAAC;EAChBL,OAAO,CAACM,OAAO,CAAC,CAAC;EACjB,KAAK,MAAMC,MAAM,IAAIH,OAAO,EAAE;IAC5BJ,OAAO,CAACpC,KAAK,CAAC2C,MAAM,CAAC;IACrBP,OAAO,CAACM,OAAO,CAAC,CAAC;EACnB;EACA,IAAI3C,IAAI,CAAC6C,iBAAiB,EAAE;IAC1BR,OAAO,CAAClC,KAAK,CAAC,KAAK,CAAC;IACpBkC,OAAO,CAACM,OAAO,CAAC,CAAC;EACnB;EACAN,OAAO,CAACS,MAAM,CAAC,CAAC;EAChBT,OAAO,CAAClC,KAAK,CAAC,GAAG,CAAC;AACpB;AAEO,SAAS4C,eAAeA,CAAgB/C,IAAuB,EAAE;EACtE,MAAM;IAAEgD;EAAa,CAAC,GAAGhD,IAAI;EAC7BoC,gBAAgB,CAAC,IAAI,EAAE,SAAS,EAAEY,YAAY,CAAC;EAC/CR,QAAQ,CAAC,IAAI,EAAExC,IAAI,CAAC;AACtB;AAEO,SAASiD,cAAcA,CAAgBjD,IAAsB,EAAE;EACpE,MAAM;IAAEgD;EAAa,CAAC,GAAGhD,IAAI;EAC7BoC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAEY,YAAY,CAAC;EAC9CR,QAAQ,CAAC,IAAI,EAAExC,IAAI,CAAC;AACtB;AAEO,SAASkD,cAAcA,CAAgBlD,IAAsB,EAAE;EACpE,MAAM;IAAEgD;EAAa,CAAC,GAAGhD,IAAI;EAC7BoC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAEY,YAAY,CAAC;EAC9CR,QAAQ,CAAC,IAAI,EAAExC,IAAI,CAAC;AACtB;AAEO,SAASmD,cAAcA,CAAgBnD,IAAsB,EAAE;EACpEoC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC;EACtCI,QAAQ,CAAC,IAAI,EAAExC,IAAI,CAAC;AACtB;AAEO,SAASoD,mBAAmBA,CAEjCpD,IAA2B,EAC3B;EACA,MAAM;IAAEc;EAAG,CAAC,GAAGd,IAAI;EACnB,IAAI,CAACC,KAAK,CAACa,EAAE,CAAC;EACd,IAAI,CAACX,SAAK,GAAI,CAAC;AACjB;AAEA,SAASkD,qBAAqBA,CAC5BhB,OAAgB,EAChBrC,IAAmE,EACnE;EACAqC,OAAO,CAACpC,KAAK,CAACD,IAAI,CAACc,EAAE,CAAC;EACtBuB,OAAO,CAAC3B,KAAK,CAAC,CAAC;EACf2B,OAAO,CAAClC,KAAK,CAAC,GAAG,CAAC;EAClBkC,OAAO,CAAC3B,KAAK,CAAC,CAAC;EACf2B,OAAO,CAACpC,KAAK,CAACD,IAAI,CAACsD,IAAI,CAAC;EACxBjB,OAAO,CAAClC,KAAK,CAAC,GAAG,CAAC;AACpB;AAEO,SAASoD,iBAAiBA,CAAgBvD,IAAyB,EAAE;EAC1EqD,qBAAqB,CAAC,IAAI,EAAErD,IAAI,CAAC;AACnC;AAEO,SAASwD,gBAAgBA,CAAgBxD,IAAwB,EAAE;EACxEqD,qBAAqB,CAAC,IAAI,EAAErD,IAAI,CAAC;AACnC;AAEO,SAASyD,gBAAgBA,CAAgBzD,IAAwB,EAAE;EACxEqD,qBAAqB,CAAC,IAAI,EAAErD,IAAI,CAAC;AACnC;AAEA,SAASgC,qBAAqBA,CAE5BhC,IAAgC,EAChC;EACA,IAAIA,IAAI,CAAC0D,WAAW,EAAE;IACpB,MAAMC,MAAM,GAAG3D,IAAI,CAAC0D,WAAW;IAC/B,IAAI,CAACzD,KAAK,CAAC0D,MAAM,CAAC;IAClB,IAAI,CAAC/D,WAAW,CAAC+D,MAAM,CAAC,EAAE,IAAI,CAAC1C,SAAS,CAAC,CAAC;EAC5C,CAAC,MAAM;IACL,IAAI,CAACd,SAAK,IAAI,CAAC;IACf,IAAIH,IAAI,CAAC4D,UAAU,CAAEC,MAAM,EAAE;MAC3B,IAAI,CAACnD,KAAK,CAAC,CAAC;MACZ,IAAI,CAACoD,SAAS,CAAC9D,IAAI,CAAC4D,UAAU,CAAC;MAC/B,IAAI,CAAClD,KAAK,CAAC,CAAC;IACd;IACA,IAAI,CAACP,SAAK,IAAI,CAAC;IAEf,IAAIH,IAAI,CAAC+D,MAAM,EAAE;MACf,IAAI,CAACrD,KAAK,CAAC,CAAC;MACZ,IAAI,CAACZ,IAAI,CAAC,MAAM,CAAC;MACjB,IAAI,CAACY,KAAK,CAAC,CAAC;MACZ,IAAI,CAACT,KAAK,CAACD,IAAI,CAAC+D,MAAM,CAAC;IACzB;IAEA,IAAI,CAAC9C,SAAS,CAAC,CAAC;EAClB;AACF;AAEO,SAAS+C,oBAAoBA,CAAA,EAAgB;EAClD,IAAI,CAAC7D,SAAK,GAAI,CAAC;AACjB;AAEO,SAAS8D,sBAAsBA,CAEpCjE,IAA8B,EAC9BS,MAAe,EACf;EACA,IAAI,CAACR,KAAK,CAACD,IAAI,CAACkE,cAAc,CAAC;EAC/B,IAAI,CAAC/D,SAAK,GAAI,CAAC;EAEf,IAAIH,IAAI,CAACmE,IAAI,EAAE;IACb,IAAI,CAACrE,IAAI,CAAC,MAAM,CAAC;IACjB,IAAI,CAACK,SAAK,GAAI,CAAC;IACf,IAAI,CAACO,KAAK,CAAC,CAAC;IACZ,IAAI,CAACT,KAAK,CAACD,IAAI,CAACmE,IAAI,CAACpD,cAAc,CAAC;IACpC,IAAIf,IAAI,CAACoE,MAAM,CAACP,MAAM,IAAI7D,IAAI,CAACqE,IAAI,EAAE;MACnC,IAAI,CAAClE,SAAK,GAAI,CAAC;MACf,IAAI,CAACO,KAAK,CAAC,CAAC;IACd;EACF;EAEA,IAAI,CAACoD,SAAS,CAAC9D,IAAI,CAACoE,MAAM,CAAC;EAE3B,IAAIpE,IAAI,CAACqE,IAAI,EAAE;IACb,IAAIrE,IAAI,CAACoE,MAAM,CAACP,MAAM,EAAE;MACtB,IAAI,CAAC1D,SAAK,GAAI,CAAC;MACf,IAAI,CAACO,KAAK,CAAC,CAAC;IACd;IACA,IAAI,CAACP,KAAK,CAAC,KAAK,CAAC;IACjB,IAAI,CAACF,KAAK,CAACD,IAAI,CAACqE,IAAI,CAAC;EACvB;EAEA,IAAI,CAAClE,SAAK,GAAI,CAAC;EAIf,MAAMmE,IAAI,GAAG7D,MAAM,oBAANA,MAAM,CAAE6D,IAAI;EACzB,IACEA,IAAI,IAAI,IAAI,KACXA,IAAI,KAAK,wBAAwB,IAChCA,IAAI,KAAK,wBAAwB,IACjCA,IAAI,KAAK,iBAAiB,IACzBA,IAAI,KAAK,oBAAoB,IAAI7D,MAAM,CAAC8D,MAAO,CAAC,EACnD;IACA,IAAI,CAACpE,SAAK,GAAI,CAAC;EACjB,CAAC,MAAM;IACL,IAAI,CAACO,KAAK,CAAC,CAAC;IACZ,IAAI,CAACP,KAAK,CAAC,IAAI,CAAC;EAClB;EAEA,IAAI,CAACO,KAAK,CAAC,CAAC;EACZ,IAAI,CAACT,KAAK,CAACD,IAAI,CAACwE,UAAU,CAAC;AAC7B;AAEO,SAASC,iBAAiBA,CAAgBzE,IAAyB,EAAE;EAC1E,IAAI,CAACC,KAAK,CAACD,IAAI,CAACsC,IAAI,CAAC;EACrB,IAAItC,IAAI,CAAC0E,QAAQ,EAAE,IAAI,CAACvE,SAAK,GAAI,CAAC;EAClC,IAAIH,IAAI,CAACsC,IAAI,EAAE;IACb,IAAI,CAACnC,SAAK,GAAI,CAAC;IACf,IAAI,CAACO,KAAK,CAAC,CAAC;EACd;EACA,IAAI,CAACT,KAAK,CAACD,IAAI,CAACe,cAAc,CAAC;AACjC;AAEO,SAAS4D,gBAAgBA,CAAgB3E,IAAwB,EAAE;EACxE,IAAI,CAACC,KAAK,CAACD,IAAI,CAACc,EAAE,CAAC;EACnB,IAAI,CAACb,KAAK,CAACD,IAAI,CAACkE,cAAc,EAAE,IAAI,CAAC;AACvC;AAOO,SAASvD,aAAaA,CAE3BX,IAAkE,EAClE;EAAA,IAAA4E,aAAA;EACA,IAAI,CAAC3E,KAAK,CAACD,IAAI,CAACc,EAAE,CAAC;EACnB,IAAI,CAACb,KAAK,CAACD,IAAI,CAACkE,cAAc,CAAC;EAC/B,KAAAU,aAAA,GAAI5E,IAAI,CAAC6E,OAAO,aAAZD,aAAA,CAAcf,MAAM,EAAE;IACxB,IAAI,CAACnD,KAAK,CAAC,CAAC;IACZ,IAAI,CAACZ,IAAI,CAAC,SAAS,CAAC;IACpB,IAAI,CAACY,KAAK,CAAC,CAAC;IACZ,IAAI,CAACoD,SAAS,CAAC9D,IAAI,CAAC6E,OAAO,CAAC;EAC9B;EACA,IAAI7E,IAAI,CAACsE,IAAI,KAAK,cAAc,EAAE;IAAA,IAAAQ,YAAA,EAAAC,gBAAA;IAChC,KAAAD,YAAA,GAAI9E,IAAI,CAACgF,MAAM,aAAXF,YAAA,CAAajB,MAAM,EAAE;MACvB,IAAI,CAACnD,KAAK,CAAC,CAAC;MACZ,IAAI,CAACZ,IAAI,CAAC,QAAQ,CAAC;MACnB,IAAI,CAACY,KAAK,CAAC,CAAC;MACZ,IAAI,CAACoD,SAAS,CAAC9D,IAAI,CAACgF,MAAM,CAAC;IAC7B;IACA,KAAAD,gBAAA,GAAI/E,IAAI,CAACiF,UAAU,aAAfF,gBAAA,CAAiBlB,MAAM,EAAE;MAC3B,IAAI,CAACnD,KAAK,CAAC,CAAC;MACZ,IAAI,CAACZ,IAAI,CAAC,YAAY,CAAC;MACvB,IAAI,CAACY,KAAK,CAAC,CAAC;MACZ,IAAI,CAACoD,SAAS,CAAC9D,IAAI,CAACiF,UAAU,CAAC;IACjC;EACF;EACA,IAAI,CAACvE,KAAK,CAAC,CAAC;EACZ,IAAI,CAACT,KAAK,CAACD,IAAI,CAACuB,IAAI,CAAC;AACvB;AAEO,SAAS2D,SAASA,CAEvBlF,IAM2B,EAC3B;EAAA,IAAAmF,cAAA;EACA,MAAMC,IAAI,IAAAD,cAAA,GAAGnF,IAAI,CAACqF,QAAQ,qBAAbF,cAAA,CAAeC,IAAI;EAChC,IAAIA,IAAI,IAAI,IAAI,EAAE;IAChB,IAAIA,IAAI,KAAK,MAAM,EAAE;MACnB,IAAI,CAACjF,SAAK,GAAI,CAAC;IACjB,CAAC,MAAM,IAAIiF,IAAI,KAAK,OAAO,EAAE;MAC3B,IAAI,CAACjF,SAAK,GAAI,CAAC;IACjB;EACF;AACF;AAEO,SAASkB,oBAAoBA,CAElCrB,IAAiD,EACjD;EACA,IAAI,CAACF,IAAI,CAAC,WAAW,CAAC;EACtB,IAAI,CAACY,KAAK,CAAC,CAAC;EACZC,aAAa,CAACC,IAAI,CAAC,IAAI,EAAEZ,IAAI,CAAC;AAChC;AAEA,SAASsF,YAAYA,CAAgBC,eAAuB,EAAE;EAC5D,IAAI,CAAC7E,KAAK,CAAC,CAAC;EACZ,IAAI,CAACP,KAAK,CAAC,GAAG,EAAE,KAAK,EAAEoF,eAAe,CAAC;EACvC,IAAI,CAAC7E,KAAK,CAAC,CAAC;AACd;AAEO,SAAS8E,uBAAuBA,CAErCxF,IAA+B,EAC/B;EAAA,IAAAyF,cAAA;EACA,IAAI,CAAC3F,IAAI,CAAC,WAAW,CAAC;EACtB,KAAA2F,cAAA,GAAIzF,IAAI,CAAC6E,OAAO,aAAZY,cAAA,CAAc5B,MAAM,EAAE;IACxB,IAAI,CAACnD,KAAK,CAAC,CAAC;IACZ,IAAI,CAACZ,IAAI,CAAC,SAAS,CAAC;IACpB,IAAI,CAACY,KAAK,CAAC,CAAC;IACZ,IAAI,CAACoD,SAAS,CAAC9D,IAAI,CAAC6E,OAAO,CAAC;EAC9B;EACA,IAAI,CAACnE,KAAK,CAAC,CAAC;EACZ,IAAI,CAACT,KAAK,CAACD,IAAI,CAACuB,IAAI,CAAC;AACvB;AAEO,SAASmE,0BAA0BA,CAExC1F,IAAkC,EAClC;EACA,IAAI,CAAC2F,SAAS,CAAC3F,IAAI,CAAC4F,KAAK,EAAEC,SAAS,EAAEA,SAAS,EAAEP,YAAY,CAAC;AAChE;AAEO,SAASQ,mBAAmBA,CAAA,EAAgB;EACjD,IAAI,CAAChG,IAAI,CAAC,OAAO,CAAC;AACpB;AAEO,SAASiG,mBAAmBA,CAAA,EAAgB;EACjD,IAAI,CAACjG,IAAI,CAAC,OAAO,CAAC;AACpB;AAEO,SAASkG,sBAAsBA,CAEpChG,IAA8B,EAC9B;EACA,IAAI,CAACG,SAAK,GAAI,CAAC;EACf,IAAI,CAACF,KAAK,CAACD,IAAI,CAACe,cAAc,CAAC;AACjC;AAOO,SAASkF,oBAAoBA,CAAA,EAAgB;EAClD,IAAI,CAACnG,IAAI,CAAC,QAAQ,CAAC;AACrB;AAEO,SAASoG,oBAAoBA,CAAA,EAAgB;EAClD,IAAI,CAACpG,IAAI,CAAC,QAAQ,CAAC;AACrB;AAEO,SAASqG,kBAAkBA,CAAA,EAAgB;EAChD,IAAI,CAACrG,IAAI,CAAC,MAAM,CAAC;AACnB;AAEO,SAASsG,mBAAmBA,CAEjCpG,IAA2B,EAC3B;EACA,IAAI,CAACG,SAAK,GAAI,CAAC;EACf,IAAI,CAAC2D,SAAS,CAAC9D,IAAI,CAAC4F,KAAK,CAAC;EAC1B,IAAI,CAACzF,SAAK,GAAI,CAAC;AACjB;AAEO,SAASkG,oBAAoBA,CAElCrG,IAA4B,EAC5B;EACA,IAAI,CAACF,IAAI,CAAC,QAAQ,CAAC;EACnB,IAAI,CAACY,KAAK,CAAC,CAAC;EACZ,IAAI,CAACT,KAAK,CAACD,IAAI,CAACsG,QAAQ,CAAC;AAC3B;AAEO,SAAS5E,SAASA,CAEvB1B,IAAsC,EACtC;EACA,IAAI,CAACF,IAAI,CAAC,MAAM,CAAC;EACjB,IAAI,CAACY,KAAK,CAAC,CAAC;EACZ,IAAI,CAACT,KAAK,CAACD,IAAI,CAACc,EAAE,CAAC;EACnB,IAAI,CAACb,KAAK,CAACD,IAAI,CAACkE,cAAc,CAAC;EAC/B,IAAI,CAACxD,KAAK,CAAC,CAAC;EACZ,IAAI,CAACP,SAAK,GAAI,CAAC;EACf,IAAI,CAACO,KAAK,CAAC,CAAC;EACZ,IAAI,CAACT,KAAK,CAACD,IAAI,CAACuG,KAAK,CAAC;EACtB,IAAI,CAACtF,SAAS,CAAC,CAAC;AAClB;AAEO,SAASuF,cAAcA,CAE5BxG,IAAsB,EACtBS,MAAc,EACd;EACA,IAAI,CAACN,SAAK,GAAI,CAAC;EACf,IAAI,CAACO,KAAK,CAAC,CAAC;EACZ,IAAID,MAAM,CAAC6D,IAAI,KAAK,yBAAyB,EAAE;IAC7C,IAAI,CAACmC,YAAY,IAAIC,mBAAY,CAACC,mBAAmB;EACvD,CAAC,MAAM,IAEL3G,IAAI,CAAC0E,QAAQ,EACb;IACA,IAAI,CAACvE,SAAK,GAAI,CAAC;EACjB;EACA,IAAI,CAACF,KAAK,CAACD,IAAI,CAACe,cAAc,CAAC;AACjC;AAEO,SAAS6F,0BAA0BA,CAExC5G,IAAkC,EAC5B;EACN,IAAI,CAACG,SAAK,GAAI,CAAC;EACf,IAAI,CAAC2D,SAAS,CAAC9D,IAAI,CAACoE,MAAM,CAAC;EAC3B,IAAI,CAACjE,SAAK,GAAI,CAAC;AACjB;AAIO,SAAS0G,aAAaA,CAAgB7G,IAAqB,EAAE;EAClEkF,SAAS,CAACtE,IAAI,CAAC,IAAI,EAAEZ,IAAI,CAAC;EAE1B,IAAI,CAACF,IAAI,CAACE,IAAI,CAACsC,IAAI,CAAC;EAEpB,IAAItC,IAAI,CAAC8G,KAAK,EAAE;IACd,IAAI,CAAC7G,KAAK,CAACD,IAAI,CAAC8G,KAAK,CAAC;EACxB;EAEA,IAAI9G,IAAI,CAAC+B,OAAO,EAAE;IAChB,IAAI,CAACrB,KAAK,CAAC,CAAC;IACZ,IAAI,CAACP,SAAK,GAAI,CAAC;IACf,IAAI,CAACO,KAAK,CAAC,CAAC;IACZ,IAAI,CAACT,KAAK,CAACD,IAAI,CAAC+B,OAAO,CAAC;EAC1B;AACF;AAEO,SAASH,UAAUA,CAExB5B,IAAwC,EACxC;EACA,IAAI,CAACF,IAAI,CAAC,QAAQ,CAAC;EACnB,IAAI,CAACY,KAAK,CAAC,CAAC;EACZ,IAAI,CAACZ,IAAI,CAAC,MAAM,CAAC;EACjB,IAAI,CAACY,KAAK,CAAC,CAAC;EACZ,IAAI,CAACT,KAAK,CAACD,IAAI,CAACc,EAAE,CAAC;EACnB,IAAI,CAACb,KAAK,CAACD,IAAI,CAACkE,cAAc,CAAC;EAC/B,IAAIlE,IAAI,CAAC+G,SAAS,EAAE;IAClB,IAAI,CAAC5G,SAAK,GAAI,CAAC;IACf,IAAI,CAACO,KAAK,CAAC,CAAC;IACZ,IAAI,CAACT,KAAK,CAACD,IAAI,CAAC+G,SAAS,CAAC;EAC5B;EAEA,IAAI/G,IAAI,CAACgH,QAAQ,EAAE;IACjB,IAAI,CAACtG,KAAK,CAAC,CAAC;IACZ,IAAI,CAACP,SAAK,GAAI,CAAC;IACf,IAAI,CAACO,KAAK,CAAC,CAAC;IACZ,IAAI,CAACT,KAAK,CAACD,IAAI,CAACgH,QAAQ,CAAC;EAC3B;EACA,IAAI,CAAC/F,SAAS,CAAC,CAAC;AAClB;AAEO,SAASgG,oBAAoBA,CAElCjH,IAA4B,EAC5B;EACA,IAAIA,IAAI,CAACkH,KAAK,EAAE;IACd,IAAI,CAAC/G,KAAK,CAAC,IAAI,CAAC;EAClB,CAAC,MAAM;IACL,IAAI,CAACA,SAAK,IAAI,CAAC;EACjB;EAGA,MAAMgH,KAAK,GAAG,CACZ,GAAGnH,IAAI,CAACoH,UAAU,EAClB,IAAIpH,IAAI,CAACqH,cAAc,IAAI,EAAE,CAAC,EAC9B,IAAIrH,IAAI,CAACsH,QAAQ,IAAI,EAAE,CAAC,EACxB,IAAItH,IAAI,CAACuH,aAAa,IAAI,EAAE,CAAC,CAC9B;EAED,IAAIJ,KAAK,CAACtD,MAAM,EAAE;IAChB,IAAI,CAAClB,OAAO,CAAC,CAAC;IAEd,IAAI,CAACjC,KAAK,CAAC,CAAC;IAEZ,IAAI,CAACiF,SAAS,CACZwB,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,MAAM;MACJ,IAAIA,KAAK,CAACtD,MAAM,KAAK,CAAC,IAAI7D,IAAI,CAACwH,OAAO,EAAE;QACtC,IAAI,CAACrH,SAAK,GAAI,CAAC;QACf,IAAI,CAACO,KAAK,CAAC,CAAC;MACd;IACF,CAAC,EACD,IACF,CAAC;IAED,IAAI,CAACA,KAAK,CAAC,CAAC;EACd;EAEA,IAAIV,IAAI,CAACwH,OAAO,EAAE;IAChB,IAAI,CAAC9E,MAAM,CAAC,CAAC;IACb,IAAI,CAACvC,KAAK,CAAC,KAAK,CAAC;IACjB,IAAIgH,KAAK,CAACtD,MAAM,EAAE;MAChB,IAAI,CAAClB,OAAO,CAAC,CAAC;IAChB;IACA,IAAI,CAACG,MAAM,CAAC,CAAC;EACf;EAEA,IAAI9C,IAAI,CAACkH,KAAK,EAAE;IACd,IAAI,CAAC/G,KAAK,CAAC,IAAI,CAAC;EAClB,CAAC,MAAM;IACL,IAAI,CAACA,SAAK,IAAI,CAAC;EACjB;AACF;AAEO,SAASsH,sBAAsBA,CAEpCzH,IAA8B,EAC9B;EACA,IAAIA,IAAI,CAAC0H,MAAM,EAAE;IACf,IAAI,CAAC5H,IAAI,CAAC,QAAQ,CAAC;IACnB,IAAI,CAACY,KAAK,CAAC,CAAC;EACd;EACA,IAAI,CAACP,SAAK,GAAI,CAAC;EACf,IAAI,CAACA,SAAK,GAAI,CAAC;EACf,IAAI,CAACF,KAAK,CAACD,IAAI,CAACc,EAAE,CAAC;EACnB,IAAI,CAACX,SAAK,GAAI,CAAC;EACf,IAAI,CAACA,SAAK,GAAI,CAAC;EACf,IAAIH,IAAI,CAAC0E,QAAQ,EAAE,IAAI,CAACvE,SAAK,GAAI,CAAC;EAClC,IAAI,CAACH,IAAI,CAACuE,MAAM,EAAE;IAChB,IAAI,CAACpE,SAAK,GAAI,CAAC;IACf,IAAI,CAACO,KAAK,CAAC,CAAC;EACd;EACA,IAAI,CAACT,KAAK,CAACD,IAAI,CAACM,KAAK,CAAC;AACxB;AAEO,SAASqH,sBAAsBA,CAEpC3H,IAA8B,EAC9B;EACA,IAAIA,IAAI,CAAC0H,MAAM,EAAE;IACf,IAAI,CAAC5H,IAAI,CAAC,QAAQ,CAAC;IACnB,IAAI,CAACY,KAAK,CAAC,CAAC;EACd;EACA,IAAI,CAACT,KAAK,CAACD,IAAI,CAACM,KAAK,CAAC;AACxB;AAEO,SAASsH,iBAAiBA,CAAgB5H,IAAyB,EAAE;EAC1E,IAAIA,IAAI,CAAC0H,MAAM,EAAE;IACf,IAAI,CAAC5H,IAAI,CAAC,QAAQ,CAAC;IACnB,IAAI,CAACY,KAAK,CAAC,CAAC;EACd;EACAwE,SAAS,CAACtE,IAAI,CAAC,IAAI,EAAEZ,IAAI,CAAC;EAC1B,IAAI,CAACG,SAAK,GAAI,CAAC;EACf,IAAIH,IAAI,CAACc,EAAE,EAAE;IACX,IAAI,CAACb,KAAK,CAACD,IAAI,CAACc,EAAE,CAAC;IACnB,IAAI,CAACX,SAAK,GAAI,CAAC;IACf,IAAI,CAACO,KAAK,CAAC,CAAC;EACd;EACA,IAAI,CAACT,KAAK,CAACD,IAAI,CAAC6H,GAAG,CAAC;EACpB,IAAI,CAAC1H,SAAK,GAAI,CAAC;EACf,IAAI,CAACA,SAAK,GAAI,CAAC;EACf,IAAI,CAACO,KAAK,CAAC,CAAC;EACZ,IAAI,CAACT,KAAK,CAACD,IAAI,CAACM,KAAK,CAAC;AACxB;AAEO,SAASwH,kBAAkBA,CAAgB9H,IAA0B,EAAE;EAC5E,IAAIA,IAAI,CAAC+H,KAAK,EAAE;IACd,IAAI,CAACjI,IAAI,CAAC,OAAO,CAAC;IAClB,IAAI,CAACY,KAAK,CAAC,CAAC;EACd;EACA,IAAIV,IAAI,CAAC0H,MAAM,EAAE;IACf,IAAI,CAAC5H,IAAI,CAAC,QAAQ,CAAC;IACnB,IAAI,CAACY,KAAK,CAAC,CAAC;EACd;EACA,IAAIV,IAAI,CAACoF,IAAI,KAAK,KAAK,IAAIpF,IAAI,CAACoF,IAAI,KAAK,KAAK,EAAE;IAC9C,IAAI,CAACtF,IAAI,CAACE,IAAI,CAACoF,IAAI,CAAC;IACpB,IAAI,CAAC1E,KAAK,CAAC,CAAC;EACd;EACAwE,SAAS,CAACtE,IAAI,CAAC,IAAI,EAAEZ,IAAI,CAAC;EAC1B,IAAI,CAACC,KAAK,CAACD,IAAI,CAAC6H,GAAG,CAAC;EACpB,IAAI7H,IAAI,CAAC0E,QAAQ,EAAE,IAAI,CAACvE,SAAK,GAAI,CAAC;EAClC,IAAI,CAACH,IAAI,CAACuE,MAAM,EAAE;IAChB,IAAI,CAACpE,SAAK,GAAI,CAAC;IACf,IAAI,CAACO,KAAK,CAAC,CAAC;EACd;EACA,IAAI,CAACT,KAAK,CAACD,IAAI,CAACM,KAAK,CAAC;AACxB;AAEO,SAAS0H,wBAAwBA,CAEtChI,IAAgC,EAChC;EACA,IAAI,CAACG,KAAK,CAAC,KAAK,CAAC;EACjB,IAAI,CAACF,KAAK,CAACD,IAAI,CAACsG,QAAQ,CAAC;AAC3B;AAEO,SAAS2B,uBAAuBA,CAErCjI,IAA+B,EAC/B;EACA,IAAI,CAACC,KAAK,CAACD,IAAI,CAACkI,aAAa,CAAC;EAC9B,IAAI,CAAC/H,SAAK,GAAI,CAAC;EACf,IAAI,CAACF,KAAK,CAACD,IAAI,CAACc,EAAE,CAAC;AACrB;AAEO,SAASqH,oBAAoBA,CAAA,EAAgB;EAClD,IAAI,CAACrI,IAAI,CAAC,QAAQ,CAAC;AACrB;AAEA,SAASsI,WAAWA,CAAgB7C,eAAuB,EAAE;EAC3D,IAAI,CAAC7E,KAAK,CAAC,CAAC;EACZ,IAAI,CAACP,KAAK,CAAC,GAAG,EAAE,KAAK,EAAEoF,eAAe,CAAC;EACvC,IAAI,CAAC7E,KAAK,CAAC,CAAC;AACd;AAEO,SAAS2H,mBAAmBA,CAEjCrI,IAA2B,EAC3B;EACA,IAAI,CAAC2F,SAAS,CAAC3F,IAAI,CAAC4F,KAAK,EAAEC,SAAS,EAAEA,SAAS,EAAEuC,WAAW,CAAC;AAC/D;AAEO,SAASE,kBAAkBA,CAAgBtI,IAA0B,EAAE;EAC5E,IAAI,CAACG,SAAK,GAAI,CAAC;EACf,IAAI,CAACF,KAAK,CAACD,IAAI,CAACuI,UAAU,CAAC;EAC3B,IAAI,CAACtI,KAAK,CAACD,IAAI,CAACe,cAAc,CAAC;EAC/B,IAAI,CAACZ,SAAK,GAAI,CAAC;AACjB;AAEO,SAASqI,QAAQA,CAAgBxI,IAAgB,EAAE;EACxD,IAAIA,IAAI,CAACoF,IAAI,KAAK,MAAM,EAAE;IACxB,IAAI,CAACjF,SAAK,GAAI,CAAC;EACjB,CAAC,MAAM;IACL,IAAI,CAACA,SAAK,GAAI,CAAC;EACjB;AACF;AAEO,SAASsI,kBAAkBA,CAAA,EAAgB;EAChD,IAAI,CAAC3I,IAAI,CAAC,MAAM,CAAC;AACnB;AAEO,SAAS4I,iBAAiBA,CAAgB1I,IAAyB,EAAE;EAC1E,IAAI,CAACC,KAAK,CAACD,IAAI,CAAC2I,UAAU,EAAE,IAAI,CAAC;EACjC,IAAI,CAACxI,SAAK,GAAI,CAAC;EACf,IAAI,CAACF,KAAK,CAACD,IAAI,CAAC4I,SAAS,CAAC;EAC1B,IAAI,CAACzI,SAAK,GAAI,CAAC;AACjB;AAEO,SAAS0I,yBAAyBA,CAEvC7I,IAAiC,EACjC;EACA,IAAI,CAACC,KAAK,CAACD,IAAI,CAAC2I,UAAU,CAAC;EAC3B,IAAI3I,IAAI,CAAC0E,QAAQ,EAAE;IACjB,IAAI,CAACvE,KAAK,CAAC,IAAI,CAAC;EAClB;EACA,IAAI,CAACA,SAAK,GAAI,CAAC;EACf,IAAI,CAACF,KAAK,CAACD,IAAI,CAAC4I,SAAS,CAAC;EAC1B,IAAI,CAACzI,SAAK,GAAI,CAAC;AACjB","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/generator/lib/generators/index.js b/server/api/node_modules/@babel/generator/lib/generators/index.js new file mode 100644 index 0000000..331c73f --- /dev/null +++ b/server/api/node_modules/@babel/generator/lib/generators/index.js @@ -0,0 +1,128 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var _templateLiterals = require("./template-literals.js"); +Object.keys(_templateLiterals).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (key in exports && exports[key] === _templateLiterals[key]) return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _templateLiterals[key]; + } + }); +}); +var _expressions = require("./expressions.js"); +Object.keys(_expressions).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (key in exports && exports[key] === _expressions[key]) return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _expressions[key]; + } + }); +}); +var _statements = require("./statements.js"); +Object.keys(_statements).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (key in exports && exports[key] === _statements[key]) return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _statements[key]; + } + }); +}); +var _classes = require("./classes.js"); +Object.keys(_classes).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (key in exports && exports[key] === _classes[key]) return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _classes[key]; + } + }); +}); +var _methods = require("./methods.js"); +Object.keys(_methods).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (key in exports && exports[key] === _methods[key]) return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _methods[key]; + } + }); +}); +var _modules = require("./modules.js"); +Object.keys(_modules).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (key in exports && exports[key] === _modules[key]) return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _modules[key]; + } + }); +}); +var _types = require("./types.js"); +Object.keys(_types).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (key in exports && exports[key] === _types[key]) return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _types[key]; + } + }); +}); +var _flow = require("./flow.js"); +Object.keys(_flow).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (key in exports && exports[key] === _flow[key]) return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _flow[key]; + } + }); +}); +var _base = require("./base.js"); +Object.keys(_base).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (key in exports && exports[key] === _base[key]) return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _base[key]; + } + }); +}); +var _jsx = require("./jsx.js"); +Object.keys(_jsx).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (key in exports && exports[key] === _jsx[key]) return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _jsx[key]; + } + }); +}); +var _typescript = require("./typescript.js"); +Object.keys(_typescript).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (key in exports && exports[key] === _typescript[key]) return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _typescript[key]; + } + }); +}); + +//# sourceMappingURL=index.js.map diff --git a/server/api/node_modules/@babel/generator/lib/generators/index.js.map b/server/api/node_modules/@babel/generator/lib/generators/index.js.map new file mode 100644 index 0000000..e8b0341 --- /dev/null +++ b/server/api/node_modules/@babel/generator/lib/generators/index.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_templateLiterals","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_expressions","_statements","_classes","_methods","_modules","_types","_flow","_base","_jsx","_typescript"],"sources":["../../src/generators/index.ts"],"sourcesContent":["export * from \"./template-literals.ts\";\nexport * from \"./expressions.ts\";\nexport * from \"./statements.ts\";\nexport * from \"./classes.ts\";\nexport * from \"./methods.ts\";\nexport * from \"./modules.ts\";\nexport * from \"./types.ts\";\nexport * from \"./flow.ts\";\nexport * from \"./base.ts\";\nexport * from \"./jsx.ts\";\nexport * from \"./typescript.ts\";\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/generator/lib/generators/jsx.js b/server/api/node_modules/@babel/generator/lib/generators/jsx.js new file mode 100644 index 0000000..be7c512 --- /dev/null +++ b/server/api/node_modules/@babel/generator/lib/generators/jsx.js @@ -0,0 +1,124 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.JSXAttribute = JSXAttribute; +exports.JSXClosingElement = JSXClosingElement; +exports.JSXClosingFragment = JSXClosingFragment; +exports.JSXElement = JSXElement; +exports.JSXEmptyExpression = JSXEmptyExpression; +exports.JSXExpressionContainer = JSXExpressionContainer; +exports.JSXFragment = JSXFragment; +exports.JSXIdentifier = JSXIdentifier; +exports.JSXMemberExpression = JSXMemberExpression; +exports.JSXNamespacedName = JSXNamespacedName; +exports.JSXOpeningElement = JSXOpeningElement; +exports.JSXOpeningFragment = JSXOpeningFragment; +exports.JSXSpreadAttribute = JSXSpreadAttribute; +exports.JSXSpreadChild = JSXSpreadChild; +exports.JSXText = JSXText; +function JSXAttribute(node) { + this.print(node.name); + if (node.value) { + this.tokenChar(61); + this.print(node.value); + } +} +function JSXIdentifier(node) { + this.word(node.name); +} +function JSXNamespacedName(node) { + this.print(node.namespace); + this.tokenChar(58); + this.print(node.name); +} +function JSXMemberExpression(node) { + this.print(node.object); + this.tokenChar(46); + this.print(node.property); +} +function JSXSpreadAttribute(node) { + this.tokenChar(123); + this.token("..."); + this.print(node.argument); + this.rightBrace(node); +} +function JSXExpressionContainer(node) { + this.tokenChar(123); + this.print(node.expression); + this.rightBrace(node); +} +function JSXSpreadChild(node) { + this.tokenChar(123); + this.token("..."); + this.print(node.expression); + this.rightBrace(node); +} +function JSXText(node) { + const raw = this.getPossibleRaw(node); + if (raw !== undefined) { + this.token(raw, true); + } else { + this.token(node.value, true); + } +} +function JSXElement(node) { + const open = node.openingElement; + this.print(open); + if (open.selfClosing) return; + this.indent(); + for (const child of node.children) { + this.print(child); + } + this.dedent(); + this.print(node.closingElement); +} +function spaceSeparator() { + this.space(); +} +function JSXOpeningElement(node) { + this.tokenChar(60); + this.print(node.name); + if (node.typeArguments) { + this.print(node.typeArguments); + } + this.print(node.typeParameters); + if (node.attributes.length > 0) { + this.space(); + this.printJoin(node.attributes, undefined, undefined, spaceSeparator); + } + if (node.selfClosing) { + this.space(); + this.tokenChar(47); + } + this.tokenChar(62); +} +function JSXClosingElement(node) { + this.tokenChar(60); + this.tokenChar(47); + this.print(node.name); + this.tokenChar(62); +} +function JSXEmptyExpression() { + this.printInnerComments(); +} +function JSXFragment(node) { + this.print(node.openingFragment); + this.indent(); + for (const child of node.children) { + this.print(child); + } + this.dedent(); + this.print(node.closingFragment); +} +function JSXOpeningFragment() { + this.tokenChar(60); + this.tokenChar(62); +} +function JSXClosingFragment() { + this.token(" 0) {\n this.space();\n this.printJoin(node.attributes, undefined, undefined, spaceSeparator);\n }\n if (node.selfClosing) {\n this.space();\n this.token(\"/\");\n }\n this.token(\">\");\n}\n\nexport function JSXClosingElement(this: Printer, node: t.JSXClosingElement) {\n this.token(\"<\");\n this.token(\"/\");\n this.print(node.name);\n this.token(\">\");\n}\n\nexport function JSXEmptyExpression(this: Printer) {\n // This node is empty, so forcefully print its inner comments.\n this.printInnerComments();\n}\n\nexport function JSXFragment(this: Printer, node: t.JSXFragment) {\n this.print(node.openingFragment);\n\n this.indent();\n for (const child of node.children) {\n this.print(child);\n }\n this.dedent();\n\n this.print(node.closingFragment);\n}\n\nexport function JSXOpeningFragment(this: Printer) {\n this.token(\"<\");\n this.token(\">\");\n}\n\nexport function JSXClosingFragment(this: Printer) {\n this.token(\"\");\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/generator/lib/generators/methods.js b/server/api/node_modules/@babel/generator/lib/generators/methods.js new file mode 100644 index 0000000..01b90aa --- /dev/null +++ b/server/api/node_modules/@babel/generator/lib/generators/methods.js @@ -0,0 +1,207 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.ArrowFunctionExpression = ArrowFunctionExpression; +exports.FunctionDeclaration = exports.FunctionExpression = FunctionExpression; +exports._functionHead = _functionHead; +exports._methodHead = _methodHead; +exports._param = _param; +exports._parameters = _parameters; +exports._params = _params; +exports._predicate = _predicate; +exports._shouldPrintArrowParamsParens = _shouldPrintArrowParamsParens; +var _t = require("@babel/types"); +var _index = require("../node/index.js"); +const { + isIdentifier +} = _t; +function _params(node, noLineTerminator, idNode, parentNode) { + this.print(node.typeParameters); + if (idNode !== undefined || parentNode !== undefined) { + const nameInfo = _getFuncIdName.call(this, idNode, parentNode); + if (nameInfo) { + this.sourceIdentifierName(nameInfo.name, nameInfo.pos); + } + } + this.tokenChar(40); + _parameters.call(this, node.params, 41); + this.print(node.returnType, noLineTerminator); + this._noLineTerminator = noLineTerminator; +} +function _parameters(parameters, endToken) { + const oldNoLineTerminatorAfterNode = this.enterDelimited(); + const trailingComma = this.shouldPrintTrailingComma(endToken); + const paramLength = parameters.length; + for (let i = 0; i < paramLength; i++) { + _param.call(this, parameters[i]); + if (trailingComma || i < paramLength - 1) { + this.tokenChar(44, i); + this.space(); + } + } + this.tokenChar(endToken); + this._noLineTerminatorAfterNode = oldNoLineTerminatorAfterNode; +} +function _param(parameter) { + this.printJoin(parameter.decorators, undefined, undefined, undefined, undefined, true); + this.print(parameter, undefined, true); + if (parameter.optional) { + this.tokenChar(63); + } + this.print(parameter.typeAnnotation, undefined, true); +} +function _methodHead(node) { + const kind = node.kind; + const key = node.key; + if (kind === "get" || kind === "set") { + this.word(kind); + this.space(); + } + if (node.async) { + this.word("async", true); + this.space(); + } + if (kind === "method" || kind === "init") { + if (node.generator) { + this.tokenChar(42); + } + } + if (node.computed) { + this.tokenChar(91); + this.print(key); + this.tokenChar(93); + } else { + this.print(key); + } + if (node.optional) { + this.tokenChar(63); + } + if (this._buf._map) { + _params.call(this, node, false, node.computed && node.key.type !== "StringLiteral" ? undefined : node.key); + } else { + _params.call(this, node, false); + } +} +function _predicate(node, noLineTerminatorAfter) { + if (node.predicate) { + if (!node.returnType) { + this.tokenChar(58); + } + this.space(); + this.print(node.predicate, noLineTerminatorAfter); + } +} +function _functionHead(node, parent, hasPredicate) { + if (node.async) { + this.word("async"); + if (!this.format.preserveFormat) { + this._innerCommentsState = 0; + } + this.space(); + } + this.word("function"); + if (node.generator) { + if (!this.format.preserveFormat) { + this._innerCommentsState = 0; + } + this.tokenChar(42); + } + this.space(); + if (node.id) { + this.print(node.id); + } + if (this._buf._map) { + _params.call(this, node, false, node.id, parent); + } else { + _params.call(this, node, false); + } + if (hasPredicate) { + _predicate.call(this, node); + } +} +function FunctionExpression(node, parent) { + _functionHead.call(this, node, parent, true); + this.space(); + this.print(node.body); +} +function ArrowFunctionExpression(node, parent) { + if (node.async) { + this.word("async", true); + this.space(); + } + if (_shouldPrintArrowParamsParens.call(this, node)) { + _params.call(this, node, true, undefined, this._buf._map ? parent : undefined); + } else { + this.print(node.params[0], true); + } + _predicate.call(this, node, true); + this.space(); + this.printInnerComments(); + this.token("=>"); + this.space(); + this.tokenContext |= _index.TokenContext.arrowBody; + this.print(node.body); +} +function _shouldPrintArrowParamsParens(node) { + var _firstParam$leadingCo, _firstParam$trailingC; + if (node.params.length !== 1) return true; + if (node.typeParameters || node.returnType || node.predicate) { + return true; + } + const firstParam = node.params[0]; + if (!isIdentifier(firstParam) || firstParam.typeAnnotation || firstParam.optional || (_firstParam$leadingCo = firstParam.leadingComments) != null && _firstParam$leadingCo.length || (_firstParam$trailingC = firstParam.trailingComments) != null && _firstParam$trailingC.length) { + return true; + } + if (this.tokenMap) { + if (node.loc == null) return true; + if (this.tokenMap.findMatching(node, "(") !== null) return true; + const arrowToken = this.tokenMap.findMatching(node, "=>"); + if ((arrowToken == null ? void 0 : arrowToken.loc) == null) return true; + return arrowToken.loc.start.line !== node.loc.start.line; + } + if (this.format.retainLines) return true; + return false; +} +function _getFuncIdName(idNode, parent) { + let id = idNode; + if (!id && parent) { + const parentType = parent.type; + if (parentType === "VariableDeclarator") { + id = parent.id; + } else if (parentType === "AssignmentExpression" || parentType === "AssignmentPattern") { + id = parent.left; + } else if (parentType === "ObjectProperty" || parentType === "ClassProperty") { + if (!parent.computed || parent.key.type === "StringLiteral") { + id = parent.key; + } + } else if (parentType === "ClassPrivateProperty" || parentType === "ClassAccessorProperty") { + id = parent.key; + } + } + if (!id) return; + let nameInfo; + if (id.type === "Identifier") { + var _id$loc, _id$loc2; + nameInfo = { + pos: (_id$loc = id.loc) == null ? void 0 : _id$loc.start, + name: ((_id$loc2 = id.loc) == null ? void 0 : _id$loc2.identifierName) || id.name + }; + } else if (id.type === "PrivateName") { + var _id$loc3; + nameInfo = { + pos: (_id$loc3 = id.loc) == null ? void 0 : _id$loc3.start, + name: "#" + id.id.name + }; + } else if (id.type === "StringLiteral") { + var _id$loc4; + nameInfo = { + pos: (_id$loc4 = id.loc) == null ? void 0 : _id$loc4.start, + name: id.value + }; + } + return nameInfo; +} + +//# sourceMappingURL=methods.js.map diff --git a/server/api/node_modules/@babel/generator/lib/generators/methods.js.map b/server/api/node_modules/@babel/generator/lib/generators/methods.js.map new file mode 100644 index 0000000..d448e32 --- /dev/null +++ b/server/api/node_modules/@babel/generator/lib/generators/methods.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_t","require","_index","isIdentifier","_params","node","noLineTerminator","idNode","parentNode","print","typeParameters","undefined","nameInfo","_getFuncIdName","call","sourceIdentifierName","name","pos","token","_parameters","params","returnType","_noLineTerminator","parameters","endToken","oldNoLineTerminatorAfterNode","enterDelimited","trailingComma","shouldPrintTrailingComma","paramLength","length","i","_param","tokenChar","space","_noLineTerminatorAfterNode","parameter","printJoin","decorators","optional","typeAnnotation","_methodHead","kind","key","word","async","generator","computed","_buf","_map","type","_predicate","noLineTerminatorAfter","predicate","_functionHead","parent","hasPredicate","format","preserveFormat","_innerCommentsState","id","FunctionExpression","body","ArrowFunctionExpression","_shouldPrintArrowParamsParens","printInnerComments","tokenContext","TokenContext","arrowBody","_firstParam$leadingCo","_firstParam$trailingC","firstParam","leadingComments","trailingComments","tokenMap","loc","findMatching","arrowToken","start","line","retainLines","parentType","left","_id$loc","_id$loc2","identifierName","_id$loc3","_id$loc4","value"],"sources":["../../src/generators/methods.ts"],"sourcesContent":["import type Printer from \"../printer.ts\";\nimport type * as t from \"@babel/types\";\nimport { isIdentifier, type ParentMaps } from \"@babel/types\";\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport * as charCodes from \"charcodes\";\nimport { TokenContext } from \"../node/index.ts\";\n\ntype ParentsOf = ParentMaps[T[\"type\"]];\n\nexport function _params(\n this: Printer,\n node: t.Function | t.TSDeclareMethod | t.TSDeclareFunction,\n noLineTerminator: boolean,\n idNode?: t.Expression | t.PrivateName | null,\n parentNode?: ParentsOf,\n) {\n this.print(node.typeParameters);\n\n if (idNode !== undefined || parentNode !== undefined) {\n const nameInfo = _getFuncIdName.call(this, idNode, parentNode);\n if (nameInfo) {\n this.sourceIdentifierName(nameInfo.name, nameInfo.pos);\n }\n }\n\n this.token(\"(\");\n _parameters.call(this, node.params, charCodes.rightParenthesis);\n\n this.print(node.returnType, noLineTerminator);\n\n this._noLineTerminator = noLineTerminator;\n}\n\nexport function _parameters(\n this: Printer,\n parameters: t.Function[\"params\"],\n endToken: number,\n) {\n const oldNoLineTerminatorAfterNode = this.enterDelimited();\n\n const trailingComma = this.shouldPrintTrailingComma(endToken);\n\n const paramLength = parameters.length;\n for (let i = 0; i < paramLength; i++) {\n _param.call(this, parameters[i]);\n\n if (trailingComma || i < paramLength - 1) {\n this.tokenChar(charCodes.comma, i);\n this.space();\n }\n }\n\n this.tokenChar(endToken);\n this._noLineTerminatorAfterNode = oldNoLineTerminatorAfterNode;\n}\n\nexport function _param(\n this: Printer,\n parameter: t.Identifier | t.RestElement | t.Pattern | t.TSParameterProperty,\n) {\n this.printJoin(\n // @ts-expect-error decorators is not in VoidPattern\n parameter.decorators,\n undefined,\n undefined,\n undefined,\n undefined,\n true,\n );\n this.print(parameter, undefined, true);\n if (\n // @ts-expect-error optional is not in TSParameterProperty\n parameter.optional\n ) {\n this.token(\"?\"); // TS / flow\n }\n\n this.print(\n // @ts-expect-error typeAnnotation is not in TSParameterProperty\n parameter.typeAnnotation,\n undefined,\n true,\n ); // TS / flow\n}\n\nexport function _methodHead(this: Printer, node: t.Method | t.TSDeclareMethod) {\n const kind = node.kind;\n const key = node.key;\n\n if (kind === \"get\" || kind === \"set\") {\n this.word(kind);\n this.space();\n }\n\n if (node.async) {\n this.word(\"async\", true);\n this.space();\n }\n\n if (\n kind === \"method\" ||\n // @ts-expect-error Fixme: kind: \"init\" is not defined\n kind === \"init\"\n ) {\n if (node.generator) {\n this.token(\"*\");\n }\n }\n\n if (node.computed) {\n this.token(\"[\");\n this.print(key);\n this.token(\"]\");\n } else {\n this.print(key);\n }\n\n if (\n // @ts-expect-error optional is not in ObjectMethod\n node.optional\n ) {\n // TS\n this.token(\"?\");\n }\n\n if (this._buf._map) {\n _params.call(\n this,\n node,\n false,\n node.computed && node.key.type !== \"StringLiteral\" ? undefined : node.key,\n );\n } else {\n _params.call(this, node, false);\n }\n}\n\nexport function _predicate(\n this: Printer,\n node:\n | t.FunctionDeclaration\n | t.FunctionExpression\n | t.ArrowFunctionExpression,\n noLineTerminatorAfter?: boolean,\n) {\n if (node.predicate) {\n if (!node.returnType) {\n this.token(\":\");\n }\n this.space();\n this.print(node.predicate, noLineTerminatorAfter);\n }\n}\n\nexport function _functionHead(\n this: Printer,\n node: t.FunctionDeclaration | t.FunctionExpression | t.TSDeclareFunction,\n parent: ParentsOf,\n hasPredicate: boolean,\n) {\n if (node.async) {\n this.word(\"async\");\n if (!this.format.preserveFormat) {\n // We prevent inner comments from being printed here,\n // so that they are always consistently printed in the\n // same place regardless of the function type.\n this._innerCommentsState = 0 /* INNER_COMMENT_STATE.DISALLOWED */;\n }\n this.space();\n }\n this.word(\"function\");\n if (node.generator) {\n if (!this.format.preserveFormat) {\n // We prevent inner comments from being printed here,\n // so that they are always consistently printed in the\n // same place regardless of the function type.\n this._innerCommentsState = 0 /* INNER_COMMENT_STATE.DISALLOWED */;\n }\n this.token(\"*\");\n }\n\n this.space();\n if (node.id) {\n this.print(node.id);\n }\n\n if (this._buf._map) {\n _params.call(this, node, false, node.id, parent);\n } else {\n _params.call(this, node, false);\n }\n if (hasPredicate) {\n _predicate.call(this, node as t.FunctionDeclaration | t.FunctionExpression);\n }\n}\n\nexport function FunctionExpression(\n this: Printer,\n node: t.FunctionExpression,\n parent: ParentsOf,\n) {\n _functionHead.call(this, node, parent, true);\n this.space();\n this.print(node.body);\n}\n\nexport { FunctionExpression as FunctionDeclaration };\n\nexport function ArrowFunctionExpression(\n this: Printer,\n node: t.ArrowFunctionExpression,\n parent: ParentsOf,\n) {\n if (node.async) {\n this.word(\"async\", true);\n this.space();\n }\n\n if (_shouldPrintArrowParamsParens.call(this, node)) {\n _params.call(\n this,\n node,\n true,\n undefined,\n this._buf._map ? parent : undefined,\n );\n } else {\n this.print(node.params[0], true);\n }\n\n _predicate.call(this, node, true);\n this.space();\n // When printing (x)/*1*/=>{}, we remove the parentheses\n // and thus there aren't two contiguous inner tokens.\n // We forcefully print inner comments here.\n this.printInnerComments();\n this.token(\"=>\");\n\n this.space();\n\n this.tokenContext |= TokenContext.arrowBody;\n this.print(node.body);\n}\n\n// Try to avoid printing parens in simple cases, but only if we're pretty\n// sure that they aren't needed by type annotations or potential newlines.\nexport function _shouldPrintArrowParamsParens(\n this: Printer,\n node: t.ArrowFunctionExpression,\n): boolean {\n if (node.params.length !== 1) return true;\n\n if (node.typeParameters || node.returnType || node.predicate) {\n return true;\n }\n\n const firstParam = node.params[0];\n if (\n !isIdentifier(firstParam) ||\n firstParam.typeAnnotation ||\n firstParam.optional ||\n // Flow does not support `foo /*: string*/ => {};`\n firstParam.leadingComments?.length ||\n firstParam.trailingComments?.length\n ) {\n return true;\n }\n\n if (this.tokenMap) {\n if (node.loc == null) return true;\n if (this.tokenMap.findMatching(node, \"(\") !== null) return true;\n const arrowToken = this.tokenMap.findMatching(node, \"=>\");\n if (arrowToken?.loc == null) return true;\n return arrowToken.loc.start.line !== node.loc.start.line;\n }\n\n if (this.format.retainLines) return true;\n\n return false;\n}\n\nfunction _getFuncIdName(\n this: Printer,\n idNode: t.Expression | t.PrivateName,\n parent: ParentsOf,\n) {\n let id: t.Expression | t.PrivateName | t.LVal | t.VoidPattern = idNode;\n\n if (!id && parent) {\n const parentType = parent.type;\n\n if (parentType === \"VariableDeclarator\") {\n id = parent.id;\n } else if (\n parentType === \"AssignmentExpression\" ||\n parentType === \"AssignmentPattern\"\n ) {\n id = parent.left;\n } else if (\n parentType === \"ObjectProperty\" ||\n parentType === \"ClassProperty\"\n ) {\n if (!parent.computed || parent.key.type === \"StringLiteral\") {\n id = parent.key;\n }\n } else if (\n parentType === \"ClassPrivateProperty\" ||\n parentType === \"ClassAccessorProperty\"\n ) {\n id = parent.key;\n }\n }\n\n if (!id) return;\n\n let nameInfo;\n\n if (id.type === \"Identifier\") {\n nameInfo = {\n pos: id.loc?.start,\n name: id.loc?.identifierName || id.name,\n };\n } else if (id.type === \"PrivateName\") {\n nameInfo = {\n pos: id.loc?.start,\n name: \"#\" + id.id.name,\n };\n } else if (id.type === \"StringLiteral\") {\n nameInfo = {\n pos: id.loc?.start,\n name: id.value,\n };\n }\n\n return nameInfo;\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/generator/lib/generators/modules.js b/server/api/node_modules/@babel/generator/lib/generators/modules.js new file mode 100644 index 0000000..b787d42 --- /dev/null +++ b/server/api/node_modules/@babel/generator/lib/generators/modules.js @@ -0,0 +1,290 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.ExportAllDeclaration = ExportAllDeclaration; +exports.ExportDefaultDeclaration = ExportDefaultDeclaration; +exports.ExportDefaultSpecifier = ExportDefaultSpecifier; +exports.ExportNamedDeclaration = ExportNamedDeclaration; +exports.ExportNamespaceSpecifier = ExportNamespaceSpecifier; +exports.ExportSpecifier = ExportSpecifier; +exports.ImportAttribute = ImportAttribute; +exports.ImportDeclaration = ImportDeclaration; +exports.ImportDefaultSpecifier = ImportDefaultSpecifier; +exports.ImportExpression = ImportExpression; +exports.ImportNamespaceSpecifier = ImportNamespaceSpecifier; +exports.ImportSpecifier = ImportSpecifier; +exports._printAttributes = _printAttributes; +var _t = require("@babel/types"); +var _index = require("../node/index.js"); +var _expressions = require("./expressions.js"); +const { + isClassDeclaration, + isExportDefaultSpecifier, + isExportNamespaceSpecifier, + isImportDefaultSpecifier, + isImportNamespaceSpecifier, + isStatement +} = _t; +function ImportSpecifier(node) { + if (node.importKind === "type" || node.importKind === "typeof") { + this.word(node.importKind); + this.space(); + } + this.print(node.imported); + if (node.local && node.local.name !== node.imported.name) { + this.space(); + this.word("as"); + this.space(); + this.print(node.local); + } +} +function ImportDefaultSpecifier(node) { + this.print(node.local); +} +function ExportDefaultSpecifier(node) { + this.print(node.exported); +} +function ExportSpecifier(node) { + if (node.exportKind === "type") { + this.word("type"); + this.space(); + } + this.print(node.local); + if (node.exported && node.local.name !== node.exported.name) { + this.space(); + this.word("as"); + this.space(); + this.print(node.exported); + } +} +function ExportNamespaceSpecifier(node) { + this.tokenChar(42); + this.space(); + this.word("as"); + this.space(); + this.print(node.exported); +} +let warningShown = false; +function _printAttributes(node, hasPreviousBrace) { + var _node$extra; + const { + attributes + } = node; + var { + assertions + } = node; + const { + importAttributesKeyword + } = this.format; + if (attributes && !importAttributesKeyword && node.extra && (node.extra.deprecatedAssertSyntax || node.extra.deprecatedWithLegacySyntax) && !warningShown) { + warningShown = true; + console.warn(`\ +You are using import attributes, without specifying the desired output syntax. +Please specify the "importAttributesKeyword" generator option, whose value can be one of: + - "with" : \`import { a } from "b" with { type: "json" };\` + - "assert" : \`import { a } from "b" assert { type: "json" };\` + - "with-legacy" : \`import { a } from "b" with type: "json";\` +`); + } + const useAssertKeyword = importAttributesKeyword === "assert" || !importAttributesKeyword && assertions; + this.word(useAssertKeyword ? "assert" : "with"); + this.space(); + if (!useAssertKeyword && (importAttributesKeyword === "with-legacy" || !importAttributesKeyword && (_node$extra = node.extra) != null && _node$extra.deprecatedWithLegacySyntax)) { + this.printList(attributes || assertions); + return; + } + const occurrenceCount = hasPreviousBrace ? 1 : 0; + this.token("{", undefined, occurrenceCount); + this.space(); + this.printList(attributes || assertions, this.shouldPrintTrailingComma("}")); + this.space(); + this.token("}", undefined, occurrenceCount); +} +function ExportAllDeclaration(node) { + var _node$attributes, _node$assertions; + this.word("export"); + this.space(); + if (node.exportKind === "type") { + this.word("type"); + this.space(); + } + this.tokenChar(42); + this.space(); + this.word("from"); + this.space(); + if ((_node$attributes = node.attributes) != null && _node$attributes.length || (_node$assertions = node.assertions) != null && _node$assertions.length) { + this.print(node.source, true); + this.space(); + _printAttributes.call(this, node, false); + } else { + this.print(node.source); + } + this.semicolon(); +} +function maybePrintDecoratorsBeforeExport(printer, node) { + if (isClassDeclaration(node.declaration) && _expressions._shouldPrintDecoratorsBeforeExport.call(printer, node)) { + printer.printJoin(node.declaration.decorators); + } +} +function ExportNamedDeclaration(node) { + maybePrintDecoratorsBeforeExport(this, node); + this.word("export"); + this.space(); + if (node.declaration) { + const declar = node.declaration; + this.print(declar); + if (!isStatement(declar)) this.semicolon(); + } else { + if (node.exportKind === "type") { + this.word("type"); + this.space(); + } + const specifiers = node.specifiers.slice(0); + let hasSpecial = false; + for (;;) { + const first = specifiers[0]; + if (isExportDefaultSpecifier(first) || isExportNamespaceSpecifier(first)) { + hasSpecial = true; + this.print(specifiers.shift()); + if (specifiers.length) { + this.tokenChar(44); + this.space(); + } + } else { + break; + } + } + let hasBrace = false; + if (specifiers.length || !specifiers.length && !hasSpecial) { + hasBrace = true; + this.tokenChar(123); + if (specifiers.length) { + this.space(); + this.printList(specifiers, this.shouldPrintTrailingComma("}")); + this.space(); + } + this.tokenChar(125); + } + if (node.source) { + var _node$attributes2, _node$assertions2; + this.space(); + this.word("from"); + this.space(); + if ((_node$attributes2 = node.attributes) != null && _node$attributes2.length || (_node$assertions2 = node.assertions) != null && _node$assertions2.length) { + this.print(node.source, true); + this.space(); + _printAttributes.call(this, node, hasBrace); + } else { + this.print(node.source); + } + } + this.semicolon(); + } +} +function ExportDefaultDeclaration(node) { + maybePrintDecoratorsBeforeExport(this, node); + this.word("export"); + this.noIndentInnerCommentsHere(); + this.space(); + this.word("default"); + this.space(); + this.tokenContext |= _index.TokenContext.exportDefault; + const declar = node.declaration; + this.print(declar); + if (!isStatement(declar)) this.semicolon(); +} +function ImportDeclaration(node) { + var _node$attributes3, _node$assertions3; + this.word("import"); + this.space(); + const isTypeKind = node.importKind === "type" || node.importKind === "typeof"; + if (isTypeKind) { + this.noIndentInnerCommentsHere(); + this.word(node.importKind); + this.space(); + } else if (node.module) { + this.noIndentInnerCommentsHere(); + this.word("module"); + this.space(); + } else if (node.phase) { + this.noIndentInnerCommentsHere(); + this.word(node.phase); + this.space(); + } + const specifiers = node.specifiers.slice(0); + const hasSpecifiers = !!specifiers.length; + while (hasSpecifiers) { + const first = specifiers[0]; + if (isImportDefaultSpecifier(first) || isImportNamespaceSpecifier(first)) { + this.print(specifiers.shift()); + if (specifiers.length) { + this.tokenChar(44); + this.space(); + } + } else { + break; + } + } + let hasBrace = false; + if (specifiers.length) { + hasBrace = true; + this.tokenChar(123); + this.space(); + this.printList(specifiers, this.shouldPrintTrailingComma("}")); + this.space(); + this.tokenChar(125); + } else if (isTypeKind && !hasSpecifiers) { + hasBrace = true; + this.tokenChar(123); + this.tokenChar(125); + } + if (hasSpecifiers || isTypeKind) { + this.space(); + this.word("from"); + this.space(); + } + if ((_node$attributes3 = node.attributes) != null && _node$attributes3.length || (_node$assertions3 = node.assertions) != null && _node$assertions3.length) { + this.print(node.source, true); + this.space(); + _printAttributes.call(this, node, hasBrace); + } else { + this.print(node.source); + } + this.semicolon(); +} +function ImportAttribute(node) { + this.print(node.key); + this.tokenChar(58); + this.space(); + this.print(node.value); +} +function ImportNamespaceSpecifier(node) { + this.tokenChar(42); + this.space(); + this.word("as"); + this.space(); + this.print(node.local); +} +function ImportExpression(node) { + this.word("import"); + if (node.phase) { + this.tokenChar(46); + this.word(node.phase); + } + this.tokenChar(40); + const shouldPrintTrailingComma = this.shouldPrintTrailingComma(")"); + this.print(node.source); + if (node.options != null) { + this.tokenChar(44); + this.space(); + this.print(node.options); + } + if (shouldPrintTrailingComma) { + this.tokenChar(44); + } + this.rightParens(node); +} + +//# sourceMappingURL=modules.js.map diff --git a/server/api/node_modules/@babel/generator/lib/generators/modules.js.map b/server/api/node_modules/@babel/generator/lib/generators/modules.js.map new file mode 100644 index 0000000..c642e93 --- /dev/null +++ b/server/api/node_modules/@babel/generator/lib/generators/modules.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_t","require","_index","_expressions","isClassDeclaration","isExportDefaultSpecifier","isExportNamespaceSpecifier","isImportDefaultSpecifier","isImportNamespaceSpecifier","isStatement","ImportSpecifier","node","importKind","word","space","print","imported","local","name","ImportDefaultSpecifier","ExportDefaultSpecifier","exported","ExportSpecifier","exportKind","ExportNamespaceSpecifier","token","warningShown","_printAttributes","hasPreviousBrace","_node$extra","attributes","assertions","importAttributesKeyword","format","extra","deprecatedAssertSyntax","deprecatedWithLegacySyntax","console","warn","useAssertKeyword","printList","occurrenceCount","undefined","shouldPrintTrailingComma","ExportAllDeclaration","_node$attributes","_node$assertions","length","source","call","semicolon","maybePrintDecoratorsBeforeExport","printer","declaration","_shouldPrintDecoratorsBeforeExport","printJoin","decorators","ExportNamedDeclaration","declar","specifiers","slice","hasSpecial","first","shift","hasBrace","_node$attributes2","_node$assertions2","ExportDefaultDeclaration","noIndentInnerCommentsHere","tokenContext","TokenContext","exportDefault","ImportDeclaration","_node$attributes3","_node$assertions3","isTypeKind","module","phase","hasSpecifiers","ImportAttribute","key","value","ImportNamespaceSpecifier","ImportExpression","options","rightParens"],"sources":["../../src/generators/modules.ts"],"sourcesContent":["import type Printer from \"../printer.ts\";\nimport {\n isClassDeclaration,\n isExportDefaultSpecifier,\n isExportNamespaceSpecifier,\n isImportDefaultSpecifier,\n isImportNamespaceSpecifier,\n isStatement,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\nimport { TokenContext } from \"../node/index.ts\";\nimport { _shouldPrintDecoratorsBeforeExport } from \"./expressions.ts\";\n\nexport function ImportSpecifier(this: Printer, node: t.ImportSpecifier) {\n if (node.importKind === \"type\" || node.importKind === \"typeof\") {\n this.word(node.importKind);\n this.space();\n }\n\n this.print(node.imported);\n // @ts-expect-error todo(flow-ts) maybe check node type instead of relying on name to be undefined on t.StringLiteral\n if (node.local && node.local.name !== node.imported.name) {\n this.space();\n this.word(\"as\");\n this.space();\n this.print(node.local);\n }\n}\n\nexport function ImportDefaultSpecifier(\n this: Printer,\n node: t.ImportDefaultSpecifier,\n) {\n this.print(node.local);\n}\n\nexport function ExportDefaultSpecifier(\n this: Printer,\n node: t.ExportDefaultSpecifier,\n) {\n this.print(node.exported);\n}\n\nexport function ExportSpecifier(this: Printer, node: t.ExportSpecifier) {\n if (node.exportKind === \"type\") {\n this.word(\"type\");\n this.space();\n }\n\n this.print(node.local);\n // @ts-expect-error todo(flow-ts) maybe check node type instead of relying on name to be undefined on t.StringLiteral\n if (node.exported && node.local.name !== node.exported.name) {\n this.space();\n this.word(\"as\");\n this.space();\n this.print(node.exported);\n }\n}\n\nexport function ExportNamespaceSpecifier(\n this: Printer,\n node: t.ExportNamespaceSpecifier,\n) {\n this.token(\"*\");\n this.space();\n this.word(\"as\");\n this.space();\n this.print(node.exported);\n}\n\nlet warningShown = false;\n\nexport function _printAttributes(\n this: Printer,\n node: Extract,\n hasPreviousBrace: boolean,\n) {\n const { attributes } = node;\n\n if (!process.env.BABEL_8_BREAKING) {\n // @ts-ignore(Babel 7 vs Babel 8) Removed in Babel 8\n // eslint-disable-next-line no-var\n var { assertions } = node;\n const { importAttributesKeyword } = this.format;\n\n if (\n attributes &&\n !importAttributesKeyword &&\n node.extra &&\n (node.extra.deprecatedAssertSyntax ||\n node.extra.deprecatedWithLegacySyntax) &&\n // In the production build only show the warning once.\n // We want to show it per-usage locally for tests.\n (!process.env.IS_PUBLISH || !warningShown)\n ) {\n warningShown = true;\n console.warn(`\\\nYou are using import attributes, without specifying the desired output syntax.\nPlease specify the \"importAttributesKeyword\" generator option, whose value can be one of:\n - \"with\" : \\`import { a } from \"b\" with { type: \"json\" };\\`\n - \"assert\" : \\`import { a } from \"b\" assert { type: \"json\" };\\`\n - \"with-legacy\" : \\`import { a } from \"b\" with type: \"json\";\\`\n`);\n }\n\n const useAssertKeyword =\n importAttributesKeyword === \"assert\" ||\n (!importAttributesKeyword && assertions);\n\n this.word(useAssertKeyword ? \"assert\" : \"with\");\n this.space();\n\n if (\n !useAssertKeyword &&\n (importAttributesKeyword === \"with-legacy\" ||\n (!importAttributesKeyword && node.extra?.deprecatedWithLegacySyntax))\n ) {\n // with-legacy\n this.printList(attributes || assertions);\n return;\n }\n } else {\n this.word(\"with\");\n this.space();\n }\n\n const occurrenceCount = hasPreviousBrace ? 1 : 0;\n\n this.token(\"{\", undefined, occurrenceCount);\n this.space();\n this.printList(\n process.env.BABEL_8_BREAKING ? attributes : attributes || assertions,\n this.shouldPrintTrailingComma(\"}\"),\n );\n this.space();\n this.token(\"}\", undefined, occurrenceCount);\n}\n\nexport function ExportAllDeclaration(\n this: Printer,\n node: t.ExportAllDeclaration | t.DeclareExportAllDeclaration,\n) {\n this.word(\"export\");\n this.space();\n if (node.exportKind === \"type\") {\n this.word(\"type\");\n this.space();\n }\n this.token(\"*\");\n this.space();\n this.word(\"from\");\n this.space();\n if (\n node.attributes?.length ||\n // @ts-ignore(Babel 7 vs Babel 8) Removed in Babel 8\n (!process.env.BABEL_8_BREAKING && node.assertions?.length)\n ) {\n this.print(node.source, true);\n this.space();\n _printAttributes.call(this, node, false);\n } else {\n this.print(node.source);\n }\n\n this.semicolon();\n}\n\nfunction maybePrintDecoratorsBeforeExport(\n printer: Printer,\n node: t.ExportNamedDeclaration | t.ExportDefaultDeclaration,\n) {\n if (\n isClassDeclaration(node.declaration) &&\n _shouldPrintDecoratorsBeforeExport.call(\n printer,\n node as t.ExportNamedDeclaration & { declaration: t.ClassDeclaration },\n )\n ) {\n printer.printJoin(node.declaration.decorators);\n }\n}\n\nexport function ExportNamedDeclaration(\n this: Printer,\n node: t.ExportNamedDeclaration,\n) {\n maybePrintDecoratorsBeforeExport(this, node);\n\n this.word(\"export\");\n this.space();\n if (node.declaration) {\n const declar = node.declaration;\n this.print(declar);\n if (!isStatement(declar)) this.semicolon();\n } else {\n if (node.exportKind === \"type\") {\n this.word(\"type\");\n this.space();\n }\n\n const specifiers = node.specifiers.slice(0);\n\n // print \"special\" specifiers first\n let hasSpecial = false;\n for (;;) {\n const first = specifiers[0];\n if (\n isExportDefaultSpecifier(first) ||\n isExportNamespaceSpecifier(first)\n ) {\n hasSpecial = true;\n this.print(specifiers.shift());\n if (specifiers.length) {\n this.token(\",\");\n this.space();\n }\n } else {\n break;\n }\n }\n\n let hasBrace = false;\n if (specifiers.length || (!specifiers.length && !hasSpecial)) {\n hasBrace = true;\n this.token(\"{\");\n if (specifiers.length) {\n this.space();\n this.printList(specifiers, this.shouldPrintTrailingComma(\"}\"));\n this.space();\n }\n this.token(\"}\");\n }\n\n if (node.source) {\n this.space();\n this.word(\"from\");\n this.space();\n if (\n node.attributes?.length ||\n // @ts-ignore(Babel 7 vs Babel 8) Removed in Babel 8\n (!process.env.BABEL_8_BREAKING && node.assertions?.length)\n ) {\n this.print(node.source, true);\n this.space();\n _printAttributes.call(this, node, hasBrace);\n } else {\n this.print(node.source);\n }\n }\n\n this.semicolon();\n }\n}\n\nexport function ExportDefaultDeclaration(\n this: Printer,\n node: t.ExportDefaultDeclaration,\n) {\n maybePrintDecoratorsBeforeExport(this, node);\n\n this.word(\"export\");\n this.noIndentInnerCommentsHere();\n this.space();\n this.word(\"default\");\n this.space();\n this.tokenContext |= TokenContext.exportDefault;\n const declar = node.declaration;\n this.print(declar);\n if (!isStatement(declar)) this.semicolon();\n}\n\nexport function ImportDeclaration(this: Printer, node: t.ImportDeclaration) {\n this.word(\"import\");\n this.space();\n\n const isTypeKind = node.importKind === \"type\" || node.importKind === \"typeof\";\n if (isTypeKind) {\n this.noIndentInnerCommentsHere();\n this.word(node.importKind!);\n this.space();\n } else if (node.module) {\n this.noIndentInnerCommentsHere();\n this.word(\"module\");\n this.space();\n } else if (node.phase) {\n this.noIndentInnerCommentsHere();\n this.word(node.phase);\n this.space();\n }\n\n const specifiers = node.specifiers.slice(0);\n const hasSpecifiers = !!specifiers.length;\n // print \"special\" specifiers first. The loop condition is constant,\n // but there is a \"break\" in the body.\n while (hasSpecifiers) {\n const first = specifiers[0];\n if (isImportDefaultSpecifier(first) || isImportNamespaceSpecifier(first)) {\n this.print(specifiers.shift());\n if (specifiers.length) {\n this.token(\",\");\n this.space();\n }\n } else {\n break;\n }\n }\n\n let hasBrace = false;\n if (specifiers.length) {\n hasBrace = true;\n this.token(\"{\");\n this.space();\n this.printList(specifiers, this.shouldPrintTrailingComma(\"}\"));\n this.space();\n this.token(\"}\");\n } else if (isTypeKind && !hasSpecifiers) {\n hasBrace = true;\n this.token(\"{\");\n this.token(\"}\");\n }\n\n if (hasSpecifiers || isTypeKind) {\n this.space();\n this.word(\"from\");\n this.space();\n }\n\n if (\n node.attributes?.length ||\n // @ts-ignore(Babel 7 vs Babel 8) Removed in Babel 8\n (!process.env.BABEL_8_BREAKING && node.assertions?.length)\n ) {\n this.print(node.source, true);\n this.space();\n _printAttributes.call(this, node, hasBrace);\n } else {\n this.print(node.source);\n }\n\n this.semicolon();\n}\n\nexport function ImportAttribute(this: Printer, node: t.ImportAttribute) {\n this.print(node.key);\n this.token(\":\");\n this.space();\n this.print(node.value);\n}\n\nexport function ImportNamespaceSpecifier(\n this: Printer,\n node: t.ImportNamespaceSpecifier,\n) {\n this.token(\"*\");\n this.space();\n this.word(\"as\");\n this.space();\n this.print(node.local);\n}\n\nexport function ImportExpression(this: Printer, node: t.ImportExpression) {\n this.word(\"import\");\n if (node.phase) {\n this.token(\".\");\n this.word(node.phase);\n }\n this.token(\"(\");\n const shouldPrintTrailingComma = this.shouldPrintTrailingComma(\")\");\n this.print(node.source);\n if (node.options != null) {\n this.token(\",\");\n this.space();\n this.print(node.options);\n }\n if (shouldPrintTrailingComma) {\n this.token(\",\");\n }\n this.rightParens(node);\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/generator/lib/generators/statements.js b/server/api/node_modules/@babel/generator/lib/generators/statements.js new file mode 100644 index 0000000..ab139b3 --- /dev/null +++ b/server/api/node_modules/@babel/generator/lib/generators/statements.js @@ -0,0 +1,297 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.BreakStatement = BreakStatement; +exports.CatchClause = CatchClause; +exports.ContinueStatement = ContinueStatement; +exports.DebuggerStatement = DebuggerStatement; +exports.DoWhileStatement = DoWhileStatement; +exports.ForInStatement = ForInStatement; +exports.ForOfStatement = ForOfStatement; +exports.ForStatement = ForStatement; +exports.IfStatement = IfStatement; +exports.LabeledStatement = LabeledStatement; +exports.ReturnStatement = ReturnStatement; +exports.SwitchCase = SwitchCase; +exports.SwitchStatement = SwitchStatement; +exports.ThrowStatement = ThrowStatement; +exports.TryStatement = TryStatement; +exports.VariableDeclaration = VariableDeclaration; +exports.VariableDeclarator = VariableDeclarator; +exports.WhileStatement = WhileStatement; +exports.WithStatement = WithStatement; +var _t = require("@babel/types"); +var _index = require("../node/index.js"); +const { + isFor, + isIfStatement, + isStatement +} = _t; +function WithStatement(node) { + this.word("with"); + this.space(); + this.tokenChar(40); + this.print(node.object); + this.tokenChar(41); + this.printBlock(node.body); +} +function IfStatement(node) { + this.word("if"); + this.space(); + this.tokenChar(40); + this.print(node.test); + this.tokenChar(41); + this.space(); + const needsBlock = node.alternate && isIfStatement(getLastStatement(node.consequent)); + if (needsBlock) { + this.tokenChar(123); + this.newline(); + this.indent(); + } + this.printAndIndentOnComments(node.consequent); + if (needsBlock) { + this.dedent(); + this.newline(); + this.tokenChar(125); + } + if (node.alternate) { + if (this.endsWith(125)) this.space(); + this.word("else"); + this.space(); + this.printAndIndentOnComments(node.alternate); + } +} +function getLastStatement(statement) { + const { + body + } = statement; + if (isStatement(body) === false) { + return statement; + } + return getLastStatement(body); +} +function ForStatement(node) { + this.word("for"); + this.space(); + this.tokenChar(40); + this.tokenContext |= _index.TokenContext.forInitHead | _index.TokenContext.forInOrInitHeadAccumulate; + this.print(node.init); + this.tokenContext = _index.TokenContext.normal; + this.tokenChar(59); + if (node.test) { + this.space(); + this.print(node.test); + } + this.tokenChar(59, 1); + if (node.update) { + this.space(); + this.print(node.update); + } + this.tokenChar(41); + this.printBlock(node.body); +} +function WhileStatement(node) { + this.word("while"); + this.space(); + this.tokenChar(40); + this.print(node.test); + this.tokenChar(41); + this.printBlock(node.body); +} +function ForInStatement(node) { + this.word("for"); + this.space(); + this.noIndentInnerCommentsHere(); + this.tokenChar(40); + this.tokenContext |= _index.TokenContext.forInHead | _index.TokenContext.forInOrInitHeadAccumulate; + this.print(node.left); + this.tokenContext = _index.TokenContext.normal; + this.space(); + this.word("in"); + this.space(); + this.print(node.right); + this.tokenChar(41); + this.printBlock(node.body); +} +function ForOfStatement(node) { + this.word("for"); + this.space(); + if (node.await) { + this.word("await"); + this.space(); + } + this.noIndentInnerCommentsHere(); + this.tokenChar(40); + this.tokenContext |= _index.TokenContext.forOfHead; + this.print(node.left); + this.space(); + this.word("of"); + this.space(); + this.print(node.right); + this.tokenChar(41); + this.printBlock(node.body); +} +function DoWhileStatement(node) { + this.word("do"); + this.space(); + this.print(node.body); + this.space(); + this.word("while"); + this.space(); + this.tokenChar(40); + this.print(node.test); + this.tokenChar(41); + this.semicolon(); +} +function printStatementAfterKeyword(printer, node) { + if (node) { + printer.space(); + printer.printTerminatorless(node); + } + printer.semicolon(); +} +function BreakStatement(node) { + this.word("break"); + printStatementAfterKeyword(this, node.label); +} +function ContinueStatement(node) { + this.word("continue"); + printStatementAfterKeyword(this, node.label); +} +function ReturnStatement(node) { + this.word("return"); + printStatementAfterKeyword(this, node.argument); +} +function ThrowStatement(node) { + this.word("throw"); + printStatementAfterKeyword(this, node.argument); +} +function LabeledStatement(node) { + this.print(node.label); + this.tokenChar(58); + this.space(); + this.print(node.body); +} +function TryStatement(node) { + this.word("try"); + this.space(); + this.print(node.block); + this.space(); + if (node.handlers) { + this.print(node.handlers[0]); + } else { + this.print(node.handler); + } + if (node.finalizer) { + this.space(); + this.word("finally"); + this.space(); + this.print(node.finalizer); + } +} +function CatchClause(node) { + this.word("catch"); + this.space(); + if (node.param) { + this.tokenChar(40); + this.print(node.param); + this.print(node.param.typeAnnotation); + this.tokenChar(41); + this.space(); + } + this.print(node.body); +} +function SwitchStatement(node) { + this.word("switch"); + this.space(); + this.tokenChar(40); + this.print(node.discriminant); + this.tokenChar(41); + this.space(); + this.tokenChar(123); + this.printSequence(node.cases, true); + this.rightBrace(node); +} +function SwitchCase(node) { + if (node.test) { + this.word("case"); + this.space(); + this.print(node.test); + this.tokenChar(58); + } else { + this.word("default"); + this.tokenChar(58); + } + if (node.consequent.length) { + this.newline(); + this.printSequence(node.consequent, true); + } +} +function DebuggerStatement() { + this.word("debugger"); + this.semicolon(); +} +function commaSeparatorWithNewline(occurrenceCount) { + this.tokenChar(44, occurrenceCount); + this.newline(); +} +function VariableDeclaration(node, parent) { + if (node.declare) { + this.word("declare"); + this.space(); + } + const { + kind + } = node; + switch (kind) { + case "await using": + this.word("await"); + this.space(); + case "using": + this.word("using", true); + break; + default: + this.word(kind); + } + this.space(); + let hasInits = false; + if (!isFor(parent)) { + for (const declar of node.declarations) { + if (declar.init) { + hasInits = true; + break; + } + } + } + this.printList(node.declarations, undefined, undefined, node.declarations.length > 1, hasInits ? commaSeparatorWithNewline : undefined); + if (parent != null) { + switch (parent.type) { + case "ForStatement": + if (parent.init === node) { + return; + } + break; + case "ForInStatement": + case "ForOfStatement": + if (parent.left === node) { + return; + } + } + } + this.semicolon(); +} +function VariableDeclarator(node) { + this.print(node.id); + if (node.definite) this.tokenChar(33); + this.print(node.id.typeAnnotation); + if (node.init) { + this.space(); + this.tokenChar(61); + this.space(); + this.print(node.init); + } +} + +//# sourceMappingURL=statements.js.map diff --git a/server/api/node_modules/@babel/generator/lib/generators/statements.js.map b/server/api/node_modules/@babel/generator/lib/generators/statements.js.map new file mode 100644 index 0000000..b01021c --- /dev/null +++ b/server/api/node_modules/@babel/generator/lib/generators/statements.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_t","require","_index","isFor","isIfStatement","isStatement","WithStatement","node","word","space","token","print","object","printBlock","body","IfStatement","test","needsBlock","alternate","getLastStatement","consequent","newline","indent","printAndIndentOnComments","dedent","endsWith","statement","ForStatement","tokenContext","TokenContext","forInitHead","forInOrInitHeadAccumulate","init","normal","tokenChar","update","WhileStatement","ForInStatement","noIndentInnerCommentsHere","forInHead","left","right","ForOfStatement","await","forOfHead","DoWhileStatement","semicolon","printStatementAfterKeyword","printer","printTerminatorless","BreakStatement","label","ContinueStatement","ReturnStatement","argument","ThrowStatement","LabeledStatement","TryStatement","block","handlers","handler","finalizer","CatchClause","param","typeAnnotation","SwitchStatement","discriminant","printSequence","cases","rightBrace","SwitchCase","length","DebuggerStatement","commaSeparatorWithNewline","occurrenceCount","VariableDeclaration","parent","declare","kind","hasInits","declar","declarations","printList","undefined","type","VariableDeclarator","id","definite"],"sources":["../../src/generators/statements.ts"],"sourcesContent":["import type Printer from \"../printer.ts\";\nimport { isFor, isIfStatement, isStatement } from \"@babel/types\";\nimport type * as t from \"@babel/types\";\n\n// We inline this package\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport * as charCodes from \"charcodes\";\nimport { TokenContext } from \"../node/index.ts\";\n\nexport function WithStatement(this: Printer, node: t.WithStatement) {\n this.word(\"with\");\n this.space();\n this.token(\"(\");\n this.print(node.object);\n this.token(\")\");\n this.printBlock(node.body);\n}\n\nexport function IfStatement(this: Printer, node: t.IfStatement) {\n this.word(\"if\");\n this.space();\n this.token(\"(\");\n this.print(node.test);\n this.token(\")\");\n this.space();\n\n const needsBlock =\n node.alternate && isIfStatement(getLastStatement(node.consequent));\n if (needsBlock) {\n this.token(\"{\");\n this.newline();\n this.indent();\n }\n\n this.printAndIndentOnComments(node.consequent);\n\n if (needsBlock) {\n this.dedent();\n this.newline();\n this.token(\"}\");\n }\n\n if (node.alternate) {\n if (this.endsWith(charCodes.rightCurlyBrace)) this.space();\n this.word(\"else\");\n this.space();\n this.printAndIndentOnComments(node.alternate);\n }\n}\n\n// Recursively get the last statement.\nfunction getLastStatement(statement: t.Statement): t.Statement {\n // @ts-expect-error: If statement.body is empty or not a Node, isStatement will return false\n const { body } = statement;\n if (isStatement(body) === false) {\n return statement;\n }\n\n return getLastStatement(body);\n}\n\nexport function ForStatement(this: Printer, node: t.ForStatement) {\n this.word(\"for\");\n this.space();\n this.token(\"(\");\n\n this.tokenContext |=\n TokenContext.forInitHead | TokenContext.forInOrInitHeadAccumulate;\n this.print(node.init);\n this.tokenContext = TokenContext.normal;\n\n this.token(\";\");\n\n if (node.test) {\n this.space();\n this.print(node.test);\n }\n this.tokenChar(charCodes.semicolon, 1);\n\n if (node.update) {\n this.space();\n this.print(node.update);\n }\n\n this.token(\")\");\n this.printBlock(node.body);\n}\n\nexport function WhileStatement(this: Printer, node: t.WhileStatement) {\n this.word(\"while\");\n this.space();\n this.token(\"(\");\n this.print(node.test);\n this.token(\")\");\n this.printBlock(node.body);\n}\n\nexport function ForInStatement(this: Printer, node: t.ForInStatement) {\n this.word(\"for\");\n this.space();\n this.noIndentInnerCommentsHere();\n this.token(\"(\");\n this.tokenContext |=\n TokenContext.forInHead | TokenContext.forInOrInitHeadAccumulate;\n this.print(node.left);\n this.tokenContext = TokenContext.normal;\n this.space();\n this.word(\"in\");\n this.space();\n this.print(node.right);\n this.token(\")\");\n this.printBlock(node.body);\n}\n\nexport function ForOfStatement(this: Printer, node: t.ForOfStatement) {\n this.word(\"for\");\n this.space();\n if (node.await) {\n this.word(\"await\");\n this.space();\n }\n this.noIndentInnerCommentsHere();\n this.token(\"(\");\n this.tokenContext |= TokenContext.forOfHead;\n this.print(node.left);\n this.space();\n this.word(\"of\");\n this.space();\n this.print(node.right);\n this.token(\")\");\n this.printBlock(node.body);\n}\n\nexport function DoWhileStatement(this: Printer, node: t.DoWhileStatement) {\n this.word(\"do\");\n this.space();\n this.print(node.body);\n this.space();\n this.word(\"while\");\n this.space();\n this.token(\"(\");\n this.print(node.test);\n this.token(\")\");\n this.semicolon();\n}\n\nfunction printStatementAfterKeyword(\n printer: Printer,\n node: t.Node | null | undefined,\n) {\n if (node) {\n printer.space();\n printer.printTerminatorless(node);\n }\n\n printer.semicolon();\n}\n\nexport function BreakStatement(this: Printer, node: t.ContinueStatement) {\n this.word(\"break\");\n printStatementAfterKeyword(this, node.label);\n}\n\nexport function ContinueStatement(this: Printer, node: t.ContinueStatement) {\n this.word(\"continue\");\n printStatementAfterKeyword(this, node.label);\n}\n\nexport function ReturnStatement(this: Printer, node: t.ReturnStatement) {\n this.word(\"return\");\n printStatementAfterKeyword(this, node.argument);\n}\n\nexport function ThrowStatement(this: Printer, node: t.ThrowStatement) {\n this.word(\"throw\");\n printStatementAfterKeyword(this, node.argument);\n}\n\nexport function LabeledStatement(this: Printer, node: t.LabeledStatement) {\n this.print(node.label);\n this.token(\":\");\n this.space();\n this.print(node.body);\n}\n\nexport function TryStatement(this: Printer, node: t.TryStatement) {\n this.word(\"try\");\n this.space();\n this.print(node.block);\n this.space();\n\n // Esprima bug puts the catch clause in a `handlers` array.\n // see https://code.google.com/p/esprima/issues/detail?id=433\n // We run into this from regenerator generated ast.\n // @ts-expect-error todo(flow->ts) should ast node type be updated to support this?\n if (node.handlers) {\n // @ts-expect-error todo(flow->ts) should ast node type be updated to support this?\n this.print(node.handlers[0]);\n } else {\n this.print(node.handler);\n }\n\n if (node.finalizer) {\n this.space();\n this.word(\"finally\");\n this.space();\n this.print(node.finalizer);\n }\n}\n\nexport function CatchClause(this: Printer, node: t.CatchClause) {\n this.word(\"catch\");\n this.space();\n if (node.param) {\n this.token(\"(\");\n this.print(node.param);\n this.print(node.param.typeAnnotation);\n this.token(\")\");\n this.space();\n }\n this.print(node.body);\n}\n\nexport function SwitchStatement(this: Printer, node: t.SwitchStatement) {\n this.word(\"switch\");\n this.space();\n this.token(\"(\");\n this.print(node.discriminant);\n this.token(\")\");\n this.space();\n this.token(\"{\");\n\n this.printSequence(node.cases, true);\n\n this.rightBrace(node);\n}\n\nexport function SwitchCase(this: Printer, node: t.SwitchCase) {\n if (node.test) {\n this.word(\"case\");\n this.space();\n this.print(node.test);\n this.token(\":\");\n } else {\n this.word(\"default\");\n this.token(\":\");\n }\n\n if (node.consequent.length) {\n this.newline();\n this.printSequence(node.consequent, true);\n }\n}\n\nexport function DebuggerStatement(this: Printer) {\n this.word(\"debugger\");\n this.semicolon();\n}\n\nfunction commaSeparatorWithNewline(this: Printer, occurrenceCount: number) {\n this.tokenChar(charCodes.comma, occurrenceCount);\n this.newline();\n}\n\nexport function VariableDeclaration(\n this: Printer,\n node: t.VariableDeclaration,\n parent: t.Node,\n) {\n if (node.declare) {\n // TS\n this.word(\"declare\");\n this.space();\n }\n\n const { kind } = node;\n switch (kind) {\n case \"await using\":\n this.word(\"await\");\n this.space();\n // fallthrough\n case \"using\":\n this.word(\"using\", true);\n break;\n default:\n this.word(kind);\n }\n this.space();\n\n let hasInits = false;\n // don't add whitespace to loop heads\n if (!isFor(parent)) {\n for (const declar of node.declarations) {\n if (declar.init) {\n // has an init so let's split it up over multiple lines\n hasInits = true;\n break;\n }\n }\n }\n\n //\n // use a pretty separator when we aren't in compact mode, have initializers and don't have retainLines on\n // this will format declarations like:\n //\n // let foo = \"bar\", bar = \"foo\";\n //\n // into\n //\n // let foo = \"bar\",\n // bar = \"foo\";\n //\n\n this.printList(\n node.declarations,\n undefined,\n undefined,\n node.declarations.length > 1,\n hasInits ? commaSeparatorWithNewline : undefined,\n );\n\n if (parent != null) {\n switch (parent.type) {\n case \"ForStatement\":\n if (parent.init === node) {\n return;\n }\n break;\n case \"ForInStatement\":\n case \"ForOfStatement\":\n if (parent.left === node) {\n return;\n }\n }\n }\n\n this.semicolon();\n}\n\nexport function VariableDeclarator(this: Printer, node: t.VariableDeclarator) {\n this.print(node.id);\n if (node.definite) this.token(\"!\"); // TS\n // @ts-ignore(Babel 7 vs Babel 8) Property 'typeAnnotation' does not exist on type 'MemberExpression'.\n this.print(node.id.typeAnnotation);\n if (node.init) {\n this.space();\n this.token(\"=\");\n this.space();\n this.print(node.init);\n }\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/generator/lib/generators/template-literals.js b/server/api/node_modules/@babel/generator/lib/generators/template-literals.js new file mode 100644 index 0000000..b0c029c --- /dev/null +++ b/server/api/node_modules/@babel/generator/lib/generators/template-literals.js @@ -0,0 +1,38 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.TaggedTemplateExpression = TaggedTemplateExpression; +exports.TemplateElement = TemplateElement; +exports.TemplateLiteral = TemplateLiteral; +exports._printTemplate = _printTemplate; +function TaggedTemplateExpression(node) { + this.print(node.tag); + this.print(node.typeParameters); + this.print(node.quasi); +} +function TemplateElement() { + throw new Error("TemplateElement printing is handled in TemplateLiteral"); +} +function _printTemplate(node, substitutions) { + const quasis = node.quasis; + let partRaw = "`"; + for (let i = 0; i < quasis.length - 1; i++) { + partRaw += quasis[i].value.raw; + this.token(partRaw + "${", true); + this.print(substitutions[i]); + partRaw = "}"; + if (this.tokenMap) { + const token = this.tokenMap.findMatching(node, "}", i); + if (token) this._catchUpTo(token.loc.start); + } + } + partRaw += quasis[quasis.length - 1].value.raw; + this.token(partRaw + "`", true); +} +function TemplateLiteral(node) { + _printTemplate.call(this, node, node.expressions); +} + +//# sourceMappingURL=template-literals.js.map diff --git a/server/api/node_modules/@babel/generator/lib/generators/template-literals.js.map b/server/api/node_modules/@babel/generator/lib/generators/template-literals.js.map new file mode 100644 index 0000000..59fa221 --- /dev/null +++ b/server/api/node_modules/@babel/generator/lib/generators/template-literals.js.map @@ -0,0 +1 @@ +{"version":3,"names":["TaggedTemplateExpression","node","print","tag","typeParameters","quasi","TemplateElement","Error","_printTemplate","substitutions","quasis","partRaw","i","length","value","raw","token","tokenMap","findMatching","_catchUpTo","loc","start","TemplateLiteral","call","expressions"],"sources":["../../src/generators/template-literals.ts"],"sourcesContent":["import type Printer from \"../printer.ts\";\nimport type * as t from \"@babel/types\";\n\nexport function TaggedTemplateExpression(\n this: Printer,\n node: t.TaggedTemplateExpression,\n) {\n this.print(node.tag);\n if (process.env.BABEL_8_BREAKING) {\n // @ts-ignore(Babel 7 vs Babel 8) Babel 8 AST\n this.print(node.typeArguments);\n } else {\n // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST\n this.print(node.typeParameters);\n }\n this.print(node.quasi);\n}\n\nexport function TemplateElement(this: Printer) {\n throw new Error(\"TemplateElement printing is handled in TemplateLiteral\");\n}\n\nexport type TemplateLiteralBase = t.Node & {\n quasis: t.TemplateElement[];\n};\n\nexport function _printTemplate(\n this: Printer,\n node: TemplateLiteralBase,\n substitutions: T[],\n) {\n const quasis = node.quasis;\n let partRaw = \"`\";\n for (let i = 0; i < quasis.length - 1; i++) {\n partRaw += quasis[i].value.raw;\n this.token(partRaw + \"${\", true);\n this.print(substitutions[i]);\n partRaw = \"}\";\n\n // In Babel 7 we have individual tokens for ${ and }, so the automatic\n // catchup logic does not work. Manually look for those tokens.\n if (!process.env.BABEL_8_BREAKING && this.tokenMap) {\n const token = this.tokenMap.findMatching(node, \"}\", i);\n if (token) this._catchUpTo(token.loc.start);\n }\n }\n partRaw += quasis[quasis.length - 1].value.raw;\n this.token(partRaw + \"`\", true);\n}\n\nexport function TemplateLiteral(this: Printer, node: t.TemplateLiteral) {\n _printTemplate.call(this, node, node.expressions);\n}\n"],"mappings":";;;;;;;;;AAGO,SAASA,wBAAwBA,CAEtCC,IAAgC,EAChC;EACA,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,GAAG,CAAC;EAMlB,IAAI,CAACD,KAAK,CAACD,IAAI,CAACG,cAAc,CAAC;EAEjC,IAAI,CAACF,KAAK,CAACD,IAAI,CAACI,KAAK,CAAC;AACxB;AAEO,SAASC,eAAeA,CAAA,EAAgB;EAC7C,MAAM,IAAIC,KAAK,CAAC,wDAAwD,CAAC;AAC3E;AAMO,SAASC,cAAcA,CAE5BP,IAAyB,EACzBQ,aAAkB,EAClB;EACA,MAAMC,MAAM,GAAGT,IAAI,CAACS,MAAM;EAC1B,IAAIC,OAAO,GAAG,GAAG;EACjB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,MAAM,CAACG,MAAM,GAAG,CAAC,EAAED,CAAC,EAAE,EAAE;IAC1CD,OAAO,IAAID,MAAM,CAACE,CAAC,CAAC,CAACE,KAAK,CAACC,GAAG;IAC9B,IAAI,CAACC,KAAK,CAACL,OAAO,GAAG,IAAI,EAAE,IAAI,CAAC;IAChC,IAAI,CAACT,KAAK,CAACO,aAAa,CAACG,CAAC,CAAC,CAAC;IAC5BD,OAAO,GAAG,GAAG;IAIb,IAAqC,IAAI,CAACM,QAAQ,EAAE;MAClD,MAAMD,KAAK,GAAG,IAAI,CAACC,QAAQ,CAACC,YAAY,CAACjB,IAAI,EAAE,GAAG,EAAEW,CAAC,CAAC;MACtD,IAAII,KAAK,EAAE,IAAI,CAACG,UAAU,CAACH,KAAK,CAACI,GAAG,CAACC,KAAK,CAAC;IAC7C;EACF;EACAV,OAAO,IAAID,MAAM,CAACA,MAAM,CAACG,MAAM,GAAG,CAAC,CAAC,CAACC,KAAK,CAACC,GAAG;EAC9C,IAAI,CAACC,KAAK,CAACL,OAAO,GAAG,GAAG,EAAE,IAAI,CAAC;AACjC;AAEO,SAASW,eAAeA,CAAgBrB,IAAuB,EAAE;EACtEO,cAAc,CAACe,IAAI,CAAC,IAAI,EAAEtB,IAAI,EAAEA,IAAI,CAACuB,WAAW,CAAC;AACnD","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/generator/lib/generators/types.js b/server/api/node_modules/@babel/generator/lib/generators/types.js new file mode 100644 index 0000000..cfe9618 --- /dev/null +++ b/server/api/node_modules/@babel/generator/lib/generators/types.js @@ -0,0 +1,183 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.ArgumentPlaceholder = ArgumentPlaceholder; +exports.ArrayPattern = exports.ArrayExpression = ArrayExpression; +exports.BigIntLiteral = BigIntLiteral; +exports.BooleanLiteral = BooleanLiteral; +exports.Identifier = Identifier; +exports.NullLiteral = NullLiteral; +exports.NumericLiteral = NumericLiteral; +exports.ObjectPattern = exports.ObjectExpression = ObjectExpression; +exports.ObjectMethod = ObjectMethod; +exports.ObjectProperty = ObjectProperty; +exports.PipelineBareFunction = PipelineBareFunction; +exports.PipelinePrimaryTopicReference = PipelinePrimaryTopicReference; +exports.PipelineTopicExpression = PipelineTopicExpression; +exports.RegExpLiteral = RegExpLiteral; +exports.SpreadElement = exports.RestElement = RestElement; +exports.StringLiteral = StringLiteral; +exports.TopicReference = TopicReference; +exports.VoidPattern = VoidPattern; +exports._getRawIdentifier = _getRawIdentifier; +var _t = require("@babel/types"); +var _jsesc = require("jsesc"); +var _methods = require("./methods.js"); +const { + isAssignmentPattern, + isIdentifier +} = _t; +let lastRawIdentResult = ""; +function _getRawIdentifier(node) { + const { + name + } = node; + const token = this.tokenMap.find(node, tok => tok.value === name); + if (token) { + lastRawIdentResult = this._originalCode.slice(token.start, token.end); + return lastRawIdentResult; + } + return lastRawIdentResult = node.name; +} +function Identifier(node) { + if (this._buf._map) { + var _node$loc; + this.sourceIdentifierName(((_node$loc = node.loc) == null ? void 0 : _node$loc.identifierName) || node.name); + } + this.word(this.tokenMap ? lastRawIdentResult : node.name); +} +function ArgumentPlaceholder() { + this.tokenChar(63); +} +function RestElement(node) { + this.token("..."); + this.print(node.argument); +} +function ObjectExpression(node) { + const props = node.properties; + this.tokenChar(123); + if (props.length) { + const oldNoLineTerminatorAfterNode = this.enterDelimited(); + this.space(); + this.printList(props, this.shouldPrintTrailingComma("}"), true, true, undefined, true); + this.space(); + this._noLineTerminatorAfterNode = oldNoLineTerminatorAfterNode; + } + this.rightBrace(node); +} +function ObjectMethod(node) { + this.printJoin(node.decorators); + _methods._methodHead.call(this, node); + this.space(); + this.print(node.body); +} +function ObjectProperty(node) { + this.printJoin(node.decorators); + if (node.computed) { + this.tokenChar(91); + this.print(node.key); + this.tokenChar(93); + } else { + if (isAssignmentPattern(node.value) && isIdentifier(node.key) && node.key.name === node.value.left.name) { + this.print(node.value); + return; + } + this.print(node.key); + if (node.shorthand && isIdentifier(node.key) && isIdentifier(node.value) && node.key.name === node.value.name) { + return; + } + } + this.tokenChar(58); + this.space(); + this.print(node.value); +} +function ArrayExpression(node) { + const elems = node.elements; + const len = elems.length; + this.tokenChar(91); + const oldNoLineTerminatorAfterNode = this.enterDelimited(); + for (let i = 0; i < elems.length; i++) { + const elem = elems[i]; + if (elem) { + if (i > 0) this.space(); + this.print(elem, undefined, true); + if (i < len - 1 || this.shouldPrintTrailingComma("]")) { + this.tokenChar(44, i); + } + } else { + this.tokenChar(44, i); + } + } + this._noLineTerminatorAfterNode = oldNoLineTerminatorAfterNode; + this.tokenChar(93); +} +function RegExpLiteral(node) { + this.word(`/${node.pattern}/${node.flags}`, false); +} +function BooleanLiteral(node) { + this.word(node.value ? "true" : "false"); +} +function NullLiteral() { + this.word("null"); +} +function NumericLiteral(node) { + const raw = this.getPossibleRaw(node); + const opts = this.format.jsescOption; + const value = node.value; + const str = value + ""; + if (opts.numbers) { + this.number(_jsesc(value, opts), value); + } else if (raw == null) { + this.number(str, value); + } else if (this.format.minified) { + this.number(raw.length < str.length ? raw : str, value); + } else { + this.number(raw, value); + } +} +function StringLiteral(node) { + const raw = this.getPossibleRaw(node); + if (!this.format.minified && raw !== undefined) { + this.token(raw); + return; + } + const val = _jsesc(node.value, this.format.jsescOption); + this.token(val); +} +function BigIntLiteral(node) { + const raw = this.getPossibleRaw(node); + if (!this.format.minified && raw !== undefined) { + this.word(raw); + return; + } + this.word(node.value + "n"); +} +const validTopicTokenSet = new Set(["^^", "@@", "^", "%", "#"]); +function TopicReference() { + const { + topicToken + } = this.format; + if (validTopicTokenSet.has(topicToken)) { + this.token(topicToken); + } else { + const givenTopicTokenJSON = JSON.stringify(topicToken); + const validTopics = Array.from(validTopicTokenSet, v => JSON.stringify(v)); + throw new Error(`The "topicToken" generator option must be one of ` + `${validTopics.join(", ")} (${givenTopicTokenJSON} received instead).`); + } +} +function PipelineTopicExpression(node) { + this.print(node.expression); +} +function PipelineBareFunction(node) { + this.print(node.callee); +} +function PipelinePrimaryTopicReference() { + this.tokenChar(35); +} +function VoidPattern() { + this.word("void"); +} + +//# sourceMappingURL=types.js.map diff --git a/server/api/node_modules/@babel/generator/lib/generators/types.js.map b/server/api/node_modules/@babel/generator/lib/generators/types.js.map new file mode 100644 index 0000000..9f27ab1 --- /dev/null +++ b/server/api/node_modules/@babel/generator/lib/generators/types.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_t","require","_jsesc","_methods","isAssignmentPattern","isIdentifier","lastRawIdentResult","_getRawIdentifier","node","name","token","tokenMap","find","tok","value","_originalCode","slice","start","end","Identifier","_buf","_map","_node$loc","sourceIdentifierName","loc","identifierName","word","ArgumentPlaceholder","RestElement","print","argument","ObjectExpression","props","properties","length","oldNoLineTerminatorAfterNode","enterDelimited","space","printList","shouldPrintTrailingComma","undefined","_noLineTerminatorAfterNode","rightBrace","ObjectMethod","printJoin","decorators","_methodHead","call","body","ObjectProperty","computed","key","left","shorthand","ArrayExpression","elems","elements","len","i","elem","tokenChar","RegExpLiteral","pattern","flags","BooleanLiteral","NullLiteral","NumericLiteral","raw","getPossibleRaw","opts","format","jsescOption","str","numbers","number","jsesc","minified","StringLiteral","val","BigIntLiteral","validTopicTokenSet","Set","TopicReference","topicToken","has","givenTopicTokenJSON","JSON","stringify","validTopics","Array","from","v","Error","join","PipelineTopicExpression","expression","PipelineBareFunction","callee","PipelinePrimaryTopicReference","VoidPattern"],"sources":["../../src/generators/types.ts"],"sourcesContent":["import type Printer from \"../printer.ts\";\nimport { isAssignmentPattern, isIdentifier } from \"@babel/types\";\nimport type * as t from \"@babel/types\";\nimport jsesc from \"jsesc\";\n// We inline this package\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport * as charCodes from \"charcodes\";\nimport { _methodHead } from \"./methods.ts\";\n\nlet lastRawIdentResult: string = \"\";\nexport function _getRawIdentifier(this: Printer, node: t.Identifier) {\n const { name } = node;\n const token = this.tokenMap!.find(node, tok => tok.value === name);\n if (token) {\n lastRawIdentResult = this._originalCode!.slice(token.start, token.end);\n return lastRawIdentResult;\n }\n return (lastRawIdentResult = node.name);\n}\n\nexport function Identifier(this: Printer, node: t.Identifier) {\n if (this._buf._map) {\n this.sourceIdentifierName(node.loc?.identifierName || node.name);\n }\n\n this.word(this.tokenMap ? lastRawIdentResult : node.name);\n}\n\nexport function ArgumentPlaceholder(this: Printer) {\n this.token(\"?\");\n}\n\nexport function RestElement(this: Printer, node: t.RestElement) {\n this.token(\"...\");\n this.print(node.argument);\n}\n\nexport { RestElement as SpreadElement };\n\nexport function ObjectExpression(this: Printer, node: t.ObjectExpression) {\n const props = node.properties;\n\n this.token(\"{\");\n\n if (props.length) {\n const oldNoLineTerminatorAfterNode = this.enterDelimited();\n this.space();\n this.printList(\n props,\n this.shouldPrintTrailingComma(\"}\"),\n true,\n true,\n undefined,\n true,\n );\n this.space();\n this._noLineTerminatorAfterNode = oldNoLineTerminatorAfterNode;\n }\n\n this.rightBrace(node);\n}\n\nexport { ObjectExpression as ObjectPattern };\n\nexport function ObjectMethod(this: Printer, node: t.ObjectMethod) {\n this.printJoin(node.decorators);\n _methodHead.call(this, node);\n this.space();\n this.print(node.body);\n}\n\nexport function ObjectProperty(this: Printer, node: t.ObjectProperty) {\n this.printJoin(node.decorators);\n\n if (node.computed) {\n this.token(\"[\");\n this.print(node.key);\n this.token(\"]\");\n } else {\n // print `({ foo: foo = 5 } = {})` as `({ foo = 5 } = {});`\n if (\n isAssignmentPattern(node.value) &&\n isIdentifier(node.key) &&\n // @ts-expect-error todo(flow->ts) `.name` does not exist on some types in union\n node.key.name === node.value.left.name\n ) {\n this.print(node.value);\n return;\n }\n\n this.print(node.key);\n\n // shorthand!\n if (\n node.shorthand &&\n isIdentifier(node.key) &&\n isIdentifier(node.value) &&\n node.key.name === node.value.name\n ) {\n return;\n }\n }\n\n this.token(\":\");\n this.space();\n this.print(node.value);\n}\n\nexport function ArrayExpression(this: Printer, node: t.ArrayExpression) {\n const elems = node.elements;\n const len = elems.length;\n\n this.token(\"[\");\n\n const oldNoLineTerminatorAfterNode = this.enterDelimited();\n\n for (let i = 0; i < elems.length; i++) {\n const elem = elems[i];\n if (elem) {\n if (i > 0) this.space();\n this.print(elem, undefined, true);\n if (i < len - 1 || this.shouldPrintTrailingComma(\"]\")) {\n this.tokenChar(charCodes.comma, i);\n }\n } else {\n // If the array expression ends with a hole, that hole\n // will be ignored by the interpreter, but if it ends with\n // two (or more) holes, we need to write out two (or more)\n // commas so that the resulting code is interpreted with\n // both (all) of the holes.\n this.tokenChar(charCodes.comma, i);\n }\n }\n\n this._noLineTerminatorAfterNode = oldNoLineTerminatorAfterNode;\n\n this.token(\"]\");\n}\n\nexport { ArrayExpression as ArrayPattern };\n\nexport function RegExpLiteral(this: Printer, node: t.RegExpLiteral) {\n this.word(`/${node.pattern}/${node.flags}`, false);\n}\n\nexport function BooleanLiteral(this: Printer, node: t.BooleanLiteral) {\n this.word(node.value ? \"true\" : \"false\");\n}\n\nexport function NullLiteral(this: Printer) {\n this.word(\"null\");\n}\n\nexport function NumericLiteral(this: Printer, node: t.NumericLiteral) {\n const raw = this.getPossibleRaw(node);\n const opts = this.format.jsescOption;\n const value = node.value;\n const str = value + \"\";\n if (opts.numbers) {\n this.number(jsesc(value, opts), value);\n } else if (raw == null) {\n this.number(str, value); // normalize\n } else if (this.format.minified) {\n this.number(raw.length < str.length ? raw : str, value);\n } else {\n this.number(raw, value);\n }\n}\n\nexport function StringLiteral(this: Printer, node: t.StringLiteral) {\n const raw = this.getPossibleRaw(node);\n if (!this.format.minified && raw !== undefined) {\n this.token(raw);\n return;\n }\n\n const val = jsesc(node.value, this.format.jsescOption);\n\n this.token(val);\n}\n\nexport function BigIntLiteral(this: Printer, node: t.BigIntLiteral) {\n const raw = this.getPossibleRaw(node);\n if (!this.format.minified && raw !== undefined) {\n this.word(raw);\n return;\n }\n this.word(node.value + \"n\");\n}\n\n// Hack pipe operator\nconst validTopicTokenSet = new Set([\n \"^^\",\n \"@@\",\n \"^\",\n \"%\",\n \"#\",\n]);\nexport function TopicReference(this: Printer) {\n const { topicToken } = this.format;\n\n if (validTopicTokenSet.has(topicToken)) {\n this.token(topicToken!);\n } else {\n const givenTopicTokenJSON = JSON.stringify(topicToken);\n const validTopics = Array.from(validTopicTokenSet, v => JSON.stringify(v));\n throw new Error(\n `The \"topicToken\" generator option must be one of ` +\n `${validTopics.join(\", \")} (${givenTopicTokenJSON} received instead).`,\n );\n }\n}\n\n// Smart-mix pipe operator\nexport function PipelineTopicExpression(\n this: Printer,\n node: t.PipelineTopicExpression,\n) {\n this.print(node.expression);\n}\n\nexport function PipelineBareFunction(\n this: Printer,\n node: t.PipelineBareFunction,\n) {\n this.print(node.callee);\n}\n\nexport function PipelinePrimaryTopicReference(this: Printer) {\n this.token(\"#\");\n}\n\n// discard binding\nexport function VoidPattern(this: Printer) {\n this.word(\"void\");\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/generator/lib/generators/typescript.js b/server/api/node_modules/@babel/generator/lib/generators/typescript.js new file mode 100644 index 0000000..ca9edb8 --- /dev/null +++ b/server/api/node_modules/@babel/generator/lib/generators/typescript.js @@ -0,0 +1,726 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.TSAnyKeyword = TSAnyKeyword; +exports.TSArrayType = TSArrayType; +exports.TSAsExpression = TSAsExpression; +exports.TSBigIntKeyword = TSBigIntKeyword; +exports.TSBooleanKeyword = TSBooleanKeyword; +exports.TSCallSignatureDeclaration = TSCallSignatureDeclaration; +exports.TSInterfaceHeritage = exports.TSClassImplements = TSClassImplements; +exports.TSConditionalType = TSConditionalType; +exports.TSConstructSignatureDeclaration = TSConstructSignatureDeclaration; +exports.TSConstructorType = TSConstructorType; +exports.TSDeclareFunction = TSDeclareFunction; +exports.TSDeclareMethod = TSDeclareMethod; +exports.TSEnumBody = TSEnumBody; +exports.TSEnumDeclaration = TSEnumDeclaration; +exports.TSEnumMember = TSEnumMember; +exports.TSExportAssignment = TSExportAssignment; +exports.TSExternalModuleReference = TSExternalModuleReference; +exports.TSFunctionType = TSFunctionType; +exports.TSImportEqualsDeclaration = TSImportEqualsDeclaration; +exports.TSImportType = TSImportType; +exports.TSIndexSignature = TSIndexSignature; +exports.TSIndexedAccessType = TSIndexedAccessType; +exports.TSInferType = TSInferType; +exports.TSInstantiationExpression = TSInstantiationExpression; +exports.TSInterfaceBody = TSInterfaceBody; +exports.TSInterfaceDeclaration = TSInterfaceDeclaration; +exports.TSIntersectionType = TSIntersectionType; +exports.TSIntrinsicKeyword = TSIntrinsicKeyword; +exports.TSLiteralType = TSLiteralType; +exports.TSMappedType = TSMappedType; +exports.TSMethodSignature = TSMethodSignature; +exports.TSModuleBlock = TSModuleBlock; +exports.TSModuleDeclaration = TSModuleDeclaration; +exports.TSNamedTupleMember = TSNamedTupleMember; +exports.TSNamespaceExportDeclaration = TSNamespaceExportDeclaration; +exports.TSNeverKeyword = TSNeverKeyword; +exports.TSNonNullExpression = TSNonNullExpression; +exports.TSNullKeyword = TSNullKeyword; +exports.TSNumberKeyword = TSNumberKeyword; +exports.TSObjectKeyword = TSObjectKeyword; +exports.TSOptionalType = TSOptionalType; +exports.TSParameterProperty = TSParameterProperty; +exports.TSParenthesizedType = TSParenthesizedType; +exports.TSPropertySignature = TSPropertySignature; +exports.TSQualifiedName = TSQualifiedName; +exports.TSRestType = TSRestType; +exports.TSSatisfiesExpression = TSSatisfiesExpression; +exports.TSStringKeyword = TSStringKeyword; +exports.TSSymbolKeyword = TSSymbolKeyword; +exports.TSTemplateLiteralType = TSTemplateLiteralType; +exports.TSThisType = TSThisType; +exports.TSTupleType = TSTupleType; +exports.TSTypeAliasDeclaration = TSTypeAliasDeclaration; +exports.TSTypeAnnotation = TSTypeAnnotation; +exports.TSTypeAssertion = TSTypeAssertion; +exports.TSTypeLiteral = TSTypeLiteral; +exports.TSTypeOperator = TSTypeOperator; +exports.TSTypeParameter = TSTypeParameter; +exports.TSTypeParameterDeclaration = exports.TSTypeParameterInstantiation = TSTypeParameterInstantiation; +exports.TSTypePredicate = TSTypePredicate; +exports.TSTypeQuery = TSTypeQuery; +exports.TSTypeReference = TSTypeReference; +exports.TSUndefinedKeyword = TSUndefinedKeyword; +exports.TSUnionType = TSUnionType; +exports.TSUnknownKeyword = TSUnknownKeyword; +exports.TSVoidKeyword = TSVoidKeyword; +exports._tsPrintClassMemberModifiers = _tsPrintClassMemberModifiers; +var _methods = require("./methods.js"); +var _classes = require("./classes.js"); +var _templateLiterals = require("./template-literals.js"); +function TSTypeAnnotation(node, parent) { + this.token((parent.type === "TSFunctionType" || parent.type === "TSConstructorType") && parent.typeAnnotation === node ? "=>" : ":"); + this.space(); + if (node.optional) this.tokenChar(63); + this.print(node.typeAnnotation); +} +function TSTypeParameterInstantiation(node, parent) { + this.tokenChar(60); + let printTrailingSeparator = parent.type === "ArrowFunctionExpression" && node.params.length === 1; + if (this.tokenMap && node.start != null && node.end != null) { + printTrailingSeparator && (printTrailingSeparator = !!this.tokenMap.find(node, t => this.tokenMap.matchesOriginal(t, ","))); + printTrailingSeparator || (printTrailingSeparator = this.shouldPrintTrailingComma(">")); + } + this.printList(node.params, printTrailingSeparator); + this.tokenChar(62); +} +function TSTypeParameter(node) { + if (node.const) { + this.word("const"); + this.space(); + } + if (node.in) { + this.word("in"); + this.space(); + } + if (node.out) { + this.word("out"); + this.space(); + } + this.word(node.name); + if (node.constraint) { + this.space(); + this.word("extends"); + this.space(); + this.print(node.constraint); + } + if (node.default) { + this.space(); + this.tokenChar(61); + this.space(); + this.print(node.default); + } +} +function TSParameterProperty(node) { + if (node.accessibility) { + this.word(node.accessibility); + this.space(); + } + if (node.readonly) { + this.word("readonly"); + this.space(); + } + _methods._param.call(this, node.parameter); +} +function TSDeclareFunction(node, parent) { + if (node.declare) { + this.word("declare"); + this.space(); + } + _methods._functionHead.call(this, node, parent, false); + this.semicolon(); +} +function TSDeclareMethod(node) { + _classes._classMethodHead.call(this, node); + this.semicolon(); +} +function TSQualifiedName(node) { + this.print(node.left); + this.tokenChar(46); + this.print(node.right); +} +function TSCallSignatureDeclaration(node) { + tsPrintSignatureDeclarationBase.call(this, node); + maybePrintTrailingCommaOrSemicolon(this, node); +} +function maybePrintTrailingCommaOrSemicolon(printer, node) { + if (!printer.tokenMap || !node.start || !node.end) { + printer.semicolon(); + return; + } + if (printer.tokenMap.endMatches(node, ",")) { + printer.token(","); + } else if (printer.tokenMap.endMatches(node, ";")) { + printer.semicolon(); + } +} +function TSConstructSignatureDeclaration(node) { + this.word("new"); + this.space(); + tsPrintSignatureDeclarationBase.call(this, node); + maybePrintTrailingCommaOrSemicolon(this, node); +} +function TSPropertySignature(node) { + const { + readonly + } = node; + if (readonly) { + this.word("readonly"); + this.space(); + } + tsPrintPropertyOrMethodName.call(this, node); + this.print(node.typeAnnotation); + maybePrintTrailingCommaOrSemicolon(this, node); +} +function tsPrintPropertyOrMethodName(node) { + if (node.computed) { + this.tokenChar(91); + } + this.print(node.key); + if (node.computed) { + this.tokenChar(93); + } + if (node.optional) { + this.tokenChar(63); + } +} +function TSMethodSignature(node) { + const { + kind + } = node; + if (kind === "set" || kind === "get") { + this.word(kind); + this.space(); + } + tsPrintPropertyOrMethodName.call(this, node); + tsPrintSignatureDeclarationBase.call(this, node); + maybePrintTrailingCommaOrSemicolon(this, node); +} +function TSIndexSignature(node) { + const { + readonly, + static: isStatic + } = node; + if (isStatic) { + this.word("static"); + this.space(); + } + if (readonly) { + this.word("readonly"); + this.space(); + } + this.tokenChar(91); + _methods._parameters.call(this, node.parameters, 93); + this.print(node.typeAnnotation); + maybePrintTrailingCommaOrSemicolon(this, node); +} +function TSAnyKeyword() { + this.word("any"); +} +function TSBigIntKeyword() { + this.word("bigint"); +} +function TSUnknownKeyword() { + this.word("unknown"); +} +function TSNumberKeyword() { + this.word("number"); +} +function TSObjectKeyword() { + this.word("object"); +} +function TSBooleanKeyword() { + this.word("boolean"); +} +function TSStringKeyword() { + this.word("string"); +} +function TSSymbolKeyword() { + this.word("symbol"); +} +function TSVoidKeyword() { + this.word("void"); +} +function TSUndefinedKeyword() { + this.word("undefined"); +} +function TSNullKeyword() { + this.word("null"); +} +function TSNeverKeyword() { + this.word("never"); +} +function TSIntrinsicKeyword() { + this.word("intrinsic"); +} +function TSThisType() { + this.word("this"); +} +function TSFunctionType(node) { + tsPrintFunctionOrConstructorType.call(this, node); +} +function TSConstructorType(node) { + if (node.abstract) { + this.word("abstract"); + this.space(); + } + this.word("new"); + this.space(); + tsPrintFunctionOrConstructorType.call(this, node); +} +function tsPrintFunctionOrConstructorType(node) { + const { + typeParameters + } = node; + const parameters = node.parameters; + this.print(typeParameters); + this.tokenChar(40); + _methods._parameters.call(this, parameters, 41); + this.space(); + const returnType = node.typeAnnotation; + this.print(returnType); +} +function TSTypeReference(node) { + const typeArguments = node.typeParameters; + this.print(node.typeName, !!typeArguments); + this.print(typeArguments); +} +function TSTypePredicate(node) { + if (node.asserts) { + this.word("asserts"); + this.space(); + } + this.print(node.parameterName); + if (node.typeAnnotation) { + this.space(); + this.word("is"); + this.space(); + this.print(node.typeAnnotation.typeAnnotation); + } +} +function TSTypeQuery(node) { + this.word("typeof"); + this.space(); + this.print(node.exprName); + const typeArguments = node.typeParameters; + if (typeArguments) { + this.print(typeArguments); + } +} +function TSTypeLiteral(node) { + printBraced(this, node, () => this.printJoin(node.members, true, true, undefined, undefined, true)); +} +function TSArrayType(node) { + this.print(node.elementType, true); + this.tokenChar(91); + this.tokenChar(93); +} +function TSTupleType(node) { + this.tokenChar(91); + this.printList(node.elementTypes, this.shouldPrintTrailingComma("]")); + this.tokenChar(93); +} +function TSOptionalType(node) { + this.print(node.typeAnnotation); + this.tokenChar(63); +} +function TSRestType(node) { + this.token("..."); + this.print(node.typeAnnotation); +} +function TSNamedTupleMember(node) { + this.print(node.label); + if (node.optional) this.tokenChar(63); + this.tokenChar(58); + this.space(); + this.print(node.elementType); +} +function TSUnionType(node) { + tsPrintUnionOrIntersectionType(this, node, "|"); +} +function TSIntersectionType(node) { + tsPrintUnionOrIntersectionType(this, node, "&"); +} +function tsPrintUnionOrIntersectionType(printer, node, sep) { + var _printer$tokenMap; + let hasLeadingToken = 0; + if ((_printer$tokenMap = printer.tokenMap) != null && _printer$tokenMap.startMatches(node, sep)) { + hasLeadingToken = 1; + printer.token(sep); + } + printer.printJoin(node.types, undefined, undefined, function (i) { + this.space(); + this.token(sep, undefined, i + hasLeadingToken); + this.space(); + }); +} +function TSConditionalType(node) { + this.print(node.checkType); + this.space(); + this.word("extends"); + this.space(); + this.print(node.extendsType); + this.space(); + this.tokenChar(63); + this.space(); + this.print(node.trueType); + this.space(); + this.tokenChar(58); + this.space(); + this.print(node.falseType); +} +function TSInferType(node) { + this.word("infer"); + this.print(node.typeParameter); +} +function TSParenthesizedType(node) { + this.tokenChar(40); + this.print(node.typeAnnotation); + this.tokenChar(41); +} +function TSTypeOperator(node) { + this.word(node.operator); + this.space(); + this.print(node.typeAnnotation); +} +function TSIndexedAccessType(node) { + this.print(node.objectType, true); + this.tokenChar(91); + this.print(node.indexType); + this.tokenChar(93); +} +function TSMappedType(node) { + const { + nameType, + optional, + readonly, + typeAnnotation + } = node; + this.tokenChar(123); + const oldNoLineTerminatorAfterNode = this.enterDelimited(); + this.space(); + if (readonly) { + tokenIfPlusMinus(this, readonly); + this.word("readonly"); + this.space(); + } + this.tokenChar(91); + this.word(node.typeParameter.name); + this.space(); + this.word("in"); + this.space(); + this.print(node.typeParameter.constraint, undefined, true); + if (nameType) { + this.space(); + this.word("as"); + this.space(); + this.print(nameType, undefined, true); + } + this.tokenChar(93); + if (optional) { + tokenIfPlusMinus(this, optional); + this.tokenChar(63); + } + if (typeAnnotation) { + this.tokenChar(58); + this.space(); + this.print(typeAnnotation, undefined, true); + } + this.space(); + this._noLineTerminatorAfterNode = oldNoLineTerminatorAfterNode; + this.tokenChar(125); +} +function tokenIfPlusMinus(self, tok) { + if (tok !== true) { + self.token(tok); + } +} +function TSTemplateLiteralType(node) { + _templateLiterals._printTemplate.call(this, node, node.types); +} +function TSLiteralType(node) { + this.print(node.literal); +} +function TSClassImplements(node) { + this.print(node.expression); + this.print(node.typeArguments); +} +function TSInterfaceDeclaration(node) { + const { + declare, + id, + typeParameters, + extends: extendz, + body + } = node; + if (declare) { + this.word("declare"); + this.space(); + } + this.word("interface"); + this.space(); + this.print(id); + this.print(typeParameters); + if (extendz != null && extendz.length) { + this.space(); + this.word("extends"); + this.space(); + this.printList(extendz); + } + this.space(); + this.print(body); +} +function TSInterfaceBody(node) { + printBraced(this, node, () => this.printJoin(node.body, true, true, undefined, undefined, true)); +} +function TSTypeAliasDeclaration(node) { + const { + declare, + id, + typeParameters, + typeAnnotation + } = node; + if (declare) { + this.word("declare"); + this.space(); + } + this.word("type"); + this.space(); + this.print(id); + this.print(typeParameters); + this.space(); + this.tokenChar(61); + this.space(); + this.print(typeAnnotation); + this.semicolon(); +} +function TSAsExpression(node) { + const { + expression, + typeAnnotation + } = node; + this.print(expression, true); + this.space(); + this.word("as"); + this.space(); + this.print(typeAnnotation); +} +function TSSatisfiesExpression(node) { + const { + expression, + typeAnnotation + } = node; + this.print(expression, true); + this.space(); + this.word("satisfies"); + this.space(); + this.print(typeAnnotation); +} +function TSTypeAssertion(node) { + const { + typeAnnotation, + expression + } = node; + this.tokenChar(60); + this.print(typeAnnotation); + this.tokenChar(62); + this.space(); + this.print(expression); +} +function TSInstantiationExpression(node) { + this.print(node.expression); + this.print(node.typeParameters); +} +function TSEnumDeclaration(node) { + const { + declare, + const: isConst, + id + } = node; + if (declare) { + this.word("declare"); + this.space(); + } + if (isConst) { + this.word("const"); + this.space(); + } + this.word("enum"); + this.space(); + this.print(id); + this.space(); + TSEnumBody.call(this, node); +} +function TSEnumBody(node) { + printBraced(this, node, () => { + var _this$shouldPrintTrai; + return this.printList(node.members, (_this$shouldPrintTrai = this.shouldPrintTrailingComma("}")) != null ? _this$shouldPrintTrai : true, true, true, undefined, true); + }); +} +function TSEnumMember(node) { + const { + id, + initializer + } = node; + this.print(id); + if (initializer) { + this.space(); + this.tokenChar(61); + this.space(); + this.print(initializer); + } +} +function TSModuleDeclaration(node) { + const { + declare, + id, + kind + } = node; + if (declare) { + this.word("declare"); + this.space(); + } + if (!node.global) { + this.word(kind != null ? kind : id.type === "Identifier" ? "namespace" : "module"); + this.space(); + } + this.print(id); + if (!node.body) { + this.semicolon(); + return; + } + let body = node.body; + while (body.type === "TSModuleDeclaration") { + this.tokenChar(46); + this.print(body.id); + body = body.body; + } + this.space(); + this.print(body); +} +function TSModuleBlock(node) { + printBraced(this, node, () => this.printSequence(node.body, true, true)); +} +function TSImportType(node) { + const { + qualifier, + options + } = node; + this.word("import"); + this.tokenChar(40); + this.print(node.argument); + if (options) { + this.tokenChar(44); + this.print(options); + } + this.tokenChar(41); + if (qualifier) { + this.tokenChar(46); + this.print(qualifier); + } + const typeArguments = node.typeParameters; + if (typeArguments) { + this.print(typeArguments); + } +} +function TSImportEqualsDeclaration(node) { + const { + id, + moduleReference + } = node; + if (node.isExport) { + this.word("export"); + this.space(); + } + this.word("import"); + this.space(); + this.print(id); + this.space(); + this.tokenChar(61); + this.space(); + this.print(moduleReference); + this.semicolon(); +} +function TSExternalModuleReference(node) { + this.token("require("); + this.print(node.expression); + this.tokenChar(41); +} +function TSNonNullExpression(node) { + this.print(node.expression); + this.tokenChar(33); + this.setLastChar(33); +} +function TSExportAssignment(node) { + this.word("export"); + this.space(); + this.tokenChar(61); + this.space(); + this.print(node.expression); + this.semicolon(); +} +function TSNamespaceExportDeclaration(node) { + this.word("export"); + this.space(); + this.word("as"); + this.space(); + this.word("namespace"); + this.space(); + this.print(node.id); + this.semicolon(); +} +function tsPrintSignatureDeclarationBase(node) { + const { + typeParameters + } = node; + const parameters = node.parameters; + this.print(typeParameters); + this.tokenChar(40); + _methods._parameters.call(this, parameters, 41); + const returnType = node.typeAnnotation; + this.print(returnType); +} +function _tsPrintClassMemberModifiers(node) { + const isPrivateField = node.type === "ClassPrivateProperty"; + const isPublicField = node.type === "ClassAccessorProperty" || node.type === "ClassProperty"; + printModifiersList(this, node, [isPublicField && node.declare && "declare", !isPrivateField && node.accessibility]); + if (node.static) { + this.word("static"); + this.space(); + } + printModifiersList(this, node, [!isPrivateField && node.abstract && "abstract", !isPrivateField && node.override && "override", (isPublicField || isPrivateField) && node.readonly && "readonly"]); +} +function printBraced(printer, node, cb) { + printer.token("{"); + const oldNoLineTerminatorAfterNode = printer.enterDelimited(); + cb(); + printer._noLineTerminatorAfterNode = oldNoLineTerminatorAfterNode; + printer.rightBrace(node); +} +function printModifiersList(printer, node, modifiers) { + var _printer$tokenMap2; + const modifiersSet = new Set(); + for (const modifier of modifiers) { + if (modifier) modifiersSet.add(modifier); + } + (_printer$tokenMap2 = printer.tokenMap) == null || _printer$tokenMap2.find(node, tok => { + if (modifiersSet.has(tok.value)) { + printer.token(tok.value); + printer.space(); + modifiersSet.delete(tok.value); + return modifiersSet.size === 0; + } + return false; + }); + for (const modifier of modifiersSet) { + printer.word(modifier); + printer.space(); + } +} + +//# sourceMappingURL=typescript.js.map diff --git a/server/api/node_modules/@babel/generator/lib/generators/typescript.js.map b/server/api/node_modules/@babel/generator/lib/generators/typescript.js.map new file mode 100644 index 0000000..5e9bd15 --- /dev/null +++ b/server/api/node_modules/@babel/generator/lib/generators/typescript.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_methods","require","_classes","_templateLiterals","TSTypeAnnotation","node","parent","token","type","typeAnnotation","space","optional","print","TSTypeParameterInstantiation","printTrailingSeparator","params","length","tokenMap","start","end","find","t","matchesOriginal","shouldPrintTrailingComma","printList","TSTypeParameter","const","word","in","out","name","constraint","default","TSParameterProperty","accessibility","readonly","_param","call","parameter","TSDeclareFunction","declare","_functionHead","semicolon","TSDeclareMethod","_classMethodHead","TSQualifiedName","left","right","TSCallSignatureDeclaration","tsPrintSignatureDeclarationBase","maybePrintTrailingCommaOrSemicolon","printer","endMatches","TSConstructSignatureDeclaration","TSPropertySignature","tsPrintPropertyOrMethodName","computed","key","TSMethodSignature","kind","TSIndexSignature","static","isStatic","_parameters","parameters","TSAnyKeyword","TSBigIntKeyword","TSUnknownKeyword","TSNumberKeyword","TSObjectKeyword","TSBooleanKeyword","TSStringKeyword","TSSymbolKeyword","TSVoidKeyword","TSUndefinedKeyword","TSNullKeyword","TSNeverKeyword","TSIntrinsicKeyword","TSThisType","TSFunctionType","tsPrintFunctionOrConstructorType","TSConstructorType","abstract","typeParameters","returnType","TSTypeReference","typeArguments","typeName","TSTypePredicate","asserts","parameterName","TSTypeQuery","exprName","TSTypeLiteral","printBraced","printJoin","members","undefined","TSArrayType","elementType","TSTupleType","elementTypes","TSOptionalType","TSRestType","TSNamedTupleMember","label","TSUnionType","tsPrintUnionOrIntersectionType","TSIntersectionType","sep","_printer$tokenMap","hasLeadingToken","startMatches","types","i","TSConditionalType","checkType","extendsType","trueType","falseType","TSInferType","typeParameter","TSParenthesizedType","TSTypeOperator","operator","TSIndexedAccessType","objectType","indexType","TSMappedType","nameType","oldNoLineTerminatorAfterNode","enterDelimited","tokenIfPlusMinus","_noLineTerminatorAfterNode","self","tok","TSTemplateLiteralType","_printTemplate","TSLiteralType","literal","TSClassImplements","expression","TSInterfaceDeclaration","id","extends","extendz","body","TSInterfaceBody","TSTypeAliasDeclaration","TSAsExpression","TSSatisfiesExpression","TSTypeAssertion","TSInstantiationExpression","TSEnumDeclaration","isConst","TSEnumBody","_this$shouldPrintTrai","TSEnumMember","initializer","TSModuleDeclaration","global","TSModuleBlock","printSequence","TSImportType","qualifier","options","argument","TSImportEqualsDeclaration","moduleReference","isExport","TSExternalModuleReference","TSNonNullExpression","setLastChar","TSExportAssignment","TSNamespaceExportDeclaration","_tsPrintClassMemberModifiers","isPrivateField","isPublicField","printModifiersList","override","cb","rightBrace","modifiers","_printer$tokenMap2","modifiersSet","Set","modifier","add","has","value","delete","size"],"sources":["../../src/generators/typescript.ts"],"sourcesContent":["import type Printer from \"../printer.ts\";\nimport type * as t from \"@babel/types\";\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport * as charCodes from \"charcodes\";\nimport { _functionHead, _param, _parameters } from \"./methods.ts\";\nimport { _classMethodHead } from \"./classes.ts\";\nimport { _printTemplate } from \"./template-literals.ts\";\n\nexport function TSTypeAnnotation(\n this: Printer,\n node: t.TSTypeAnnotation,\n parent: t.Node,\n) {\n // TODO(@nicolo-ribaudo): investigate not including => in the range\n // of the return type of an arrow function type\n this.token(\n (parent.type === \"TSFunctionType\" || parent.type === \"TSConstructorType\") &&\n (process.env.BABEL_8_BREAKING\n ? // @ts-ignore(Babel 7 vs Babel 8) Babel 8 AST shape\n parent.returnType\n : // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST shape\n parent.typeAnnotation) === node\n ? \"=>\"\n : \":\",\n );\n this.space();\n // @ts-expect-error todo(flow->ts) can this be removed? `.optional` looks to be not existing property\n if (node.optional) this.token(\"?\");\n this.print(node.typeAnnotation);\n}\n\nexport function TSTypeParameterInstantiation(\n this: Printer,\n node: t.TSTypeParameterInstantiation,\n parent: t.Node,\n): void {\n this.token(\"<\");\n\n let printTrailingSeparator: boolean | null =\n parent.type === \"ArrowFunctionExpression\" && node.params.length === 1;\n if (this.tokenMap && node.start != null && node.end != null) {\n // Only force the trailing comma for pre-existing nodes if they\n // already had a comma (either because they were multi-param, or\n // because they had a trailing comma)\n printTrailingSeparator &&= !!this.tokenMap.find(node, t =>\n this.tokenMap!.matchesOriginal(t, \",\"),\n );\n // Preserve the trailing comma if it was there before\n printTrailingSeparator ||= this.shouldPrintTrailingComma(\">\");\n }\n\n this.printList(node.params, printTrailingSeparator);\n this.token(\">\");\n}\n\nexport { TSTypeParameterInstantiation as TSTypeParameterDeclaration };\n\nexport function TSTypeParameter(this: Printer, node: t.TSTypeParameter) {\n if (node.const) {\n this.word(\"const\");\n this.space();\n }\n\n if (node.in) {\n this.word(\"in\");\n this.space();\n }\n\n if (node.out) {\n this.word(\"out\");\n this.space();\n }\n\n this.word(\n !process.env.BABEL_8_BREAKING\n ? (node.name as unknown as string)\n : (node.name as unknown as t.Identifier).name,\n );\n\n if (node.constraint) {\n this.space();\n this.word(\"extends\");\n this.space();\n this.print(node.constraint);\n }\n\n if (node.default) {\n this.space();\n this.token(\"=\");\n this.space();\n this.print(node.default);\n }\n}\n\nexport function TSParameterProperty(\n this: Printer,\n node: t.TSParameterProperty,\n) {\n if (node.accessibility) {\n this.word(node.accessibility);\n this.space();\n }\n\n if (node.readonly) {\n this.word(\"readonly\");\n this.space();\n }\n\n _param.call(this, node.parameter);\n}\n\nexport function TSDeclareFunction(\n this: Printer,\n node: t.TSDeclareFunction,\n parent: t.ParentMaps[\"TSDeclareFunction\"],\n) {\n if (node.declare) {\n this.word(\"declare\");\n this.space();\n }\n _functionHead.call(this, node, parent, false);\n this.semicolon();\n}\n\nexport function TSDeclareMethod(this: Printer, node: t.TSDeclareMethod) {\n _classMethodHead.call(this, node);\n this.semicolon();\n}\n\nexport function TSQualifiedName(this: Printer, node: t.TSQualifiedName) {\n this.print(node.left);\n this.token(\".\");\n this.print(node.right);\n}\n\nexport function TSCallSignatureDeclaration(\n this: Printer,\n node: t.TSCallSignatureDeclaration,\n) {\n tsPrintSignatureDeclarationBase.call(this, node);\n maybePrintTrailingCommaOrSemicolon(this, node);\n}\n\nfunction maybePrintTrailingCommaOrSemicolon(printer: Printer, node: t.Node) {\n if (!printer.tokenMap || !node.start || !node.end) {\n printer.semicolon();\n return;\n }\n\n if (printer.tokenMap.endMatches(node, \",\")) {\n printer.token(\",\");\n } else if (printer.tokenMap.endMatches(node, \";\")) {\n printer.semicolon();\n }\n}\n\nexport function TSConstructSignatureDeclaration(\n this: Printer,\n node: t.TSConstructSignatureDeclaration,\n) {\n this.word(\"new\");\n this.space();\n tsPrintSignatureDeclarationBase.call(this, node);\n maybePrintTrailingCommaOrSemicolon(this, node);\n}\n\nexport function TSPropertySignature(\n this: Printer,\n node: t.TSPropertySignature,\n) {\n const { readonly } = node;\n if (readonly) {\n this.word(\"readonly\");\n this.space();\n }\n tsPrintPropertyOrMethodName.call(this, node);\n this.print(node.typeAnnotation);\n maybePrintTrailingCommaOrSemicolon(this, node);\n}\n\nfunction tsPrintPropertyOrMethodName(\n this: Printer,\n node: t.TSPropertySignature | t.TSMethodSignature,\n) {\n if (node.computed) {\n this.token(\"[\");\n }\n this.print(node.key);\n if (node.computed) {\n this.token(\"]\");\n }\n if (node.optional) {\n this.token(\"?\");\n }\n}\n\nexport function TSMethodSignature(this: Printer, node: t.TSMethodSignature) {\n const { kind } = node;\n if (kind === \"set\" || kind === \"get\") {\n this.word(kind);\n this.space();\n }\n tsPrintPropertyOrMethodName.call(this, node);\n tsPrintSignatureDeclarationBase.call(this, node);\n maybePrintTrailingCommaOrSemicolon(this, node);\n}\n\nexport function TSIndexSignature(this: Printer, node: t.TSIndexSignature) {\n const { readonly, static: isStatic } = node;\n if (isStatic) {\n this.word(\"static\");\n this.space();\n }\n if (readonly) {\n this.word(\"readonly\");\n this.space();\n }\n this.token(\"[\");\n _parameters.call(this, node.parameters, charCodes.rightSquareBracket);\n this.print(node.typeAnnotation);\n maybePrintTrailingCommaOrSemicolon(this, node);\n}\n\nexport function TSAnyKeyword(this: Printer) {\n this.word(\"any\");\n}\nexport function TSBigIntKeyword(this: Printer) {\n this.word(\"bigint\");\n}\nexport function TSUnknownKeyword(this: Printer) {\n this.word(\"unknown\");\n}\nexport function TSNumberKeyword(this: Printer) {\n this.word(\"number\");\n}\nexport function TSObjectKeyword(this: Printer) {\n this.word(\"object\");\n}\nexport function TSBooleanKeyword(this: Printer) {\n this.word(\"boolean\");\n}\nexport function TSStringKeyword(this: Printer) {\n this.word(\"string\");\n}\nexport function TSSymbolKeyword(this: Printer) {\n this.word(\"symbol\");\n}\nexport function TSVoidKeyword(this: Printer) {\n this.word(\"void\");\n}\nexport function TSUndefinedKeyword(this: Printer) {\n this.word(\"undefined\");\n}\nexport function TSNullKeyword(this: Printer) {\n this.word(\"null\");\n}\nexport function TSNeverKeyword(this: Printer) {\n this.word(\"never\");\n}\nexport function TSIntrinsicKeyword(this: Printer) {\n this.word(\"intrinsic\");\n}\n\nexport function TSThisType(this: Printer) {\n this.word(\"this\");\n}\n\nexport function TSFunctionType(this: Printer, node: t.TSFunctionType) {\n tsPrintFunctionOrConstructorType.call(this, node);\n}\n\nexport function TSConstructorType(this: Printer, node: t.TSConstructorType) {\n if (node.abstract) {\n this.word(\"abstract\");\n this.space();\n }\n this.word(\"new\");\n this.space();\n tsPrintFunctionOrConstructorType.call(this, node);\n}\n\nfunction tsPrintFunctionOrConstructorType(\n this: Printer,\n node: t.TSFunctionType | t.TSConstructorType,\n) {\n const { typeParameters } = node;\n const parameters = process.env.BABEL_8_BREAKING\n ? // @ts-ignore(Babel 7 vs Babel 8) Babel 8 AST shape\n node.params\n : // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST shape\n node.parameters;\n this.print(typeParameters);\n this.token(\"(\");\n _parameters.call(this, parameters, charCodes.rightParenthesis);\n this.space();\n const returnType = process.env.BABEL_8_BREAKING\n ? // @ts-ignore(Babel 7 vs Babel 8) Babel 8 AST shape\n node.returnType\n : // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST shape\n node.typeAnnotation;\n this.print(returnType);\n}\n\nexport function TSTypeReference(this: Printer, node: t.TSTypeReference) {\n const typeArguments = process.env.BABEL_8_BREAKING\n ? // @ts-ignore(Babel 7 vs Babel 8) Babel 8 AST shape\n node.typeArguments\n : // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST shape\n node.typeParameters;\n this.print(node.typeName, !!typeArguments);\n this.print(typeArguments);\n}\n\nexport function TSTypePredicate(this: Printer, node: t.TSTypePredicate) {\n if (node.asserts) {\n this.word(\"asserts\");\n this.space();\n }\n this.print(node.parameterName);\n if (node.typeAnnotation) {\n this.space();\n this.word(\"is\");\n this.space();\n this.print(node.typeAnnotation.typeAnnotation);\n }\n}\n\nexport function TSTypeQuery(this: Printer, node: t.TSTypeQuery) {\n this.word(\"typeof\");\n this.space();\n this.print(node.exprName);\n\n const typeArguments = process.env.BABEL_8_BREAKING\n ? //@ts-ignore(Babel 7 vs Babel 8) Babel 8 AST\n node.typeArguments\n : //@ts-ignore(Babel 7 vs Babel 8) Babel 7 AST\n node.typeParameters;\n if (typeArguments) {\n this.print(typeArguments);\n }\n}\n\nexport function TSTypeLiteral(this: Printer, node: t.TSTypeLiteral) {\n printBraced(this, node, () =>\n this.printJoin(node.members, true, true, undefined, undefined, true),\n );\n}\n\nexport function TSArrayType(this: Printer, node: t.TSArrayType) {\n this.print(node.elementType, true);\n\n this.token(\"[\");\n this.token(\"]\");\n}\n\nexport function TSTupleType(this: Printer, node: t.TSTupleType) {\n this.token(\"[\");\n this.printList(node.elementTypes, this.shouldPrintTrailingComma(\"]\"));\n this.token(\"]\");\n}\n\nexport function TSOptionalType(this: Printer, node: t.TSOptionalType) {\n this.print(node.typeAnnotation);\n this.token(\"?\");\n}\n\nexport function TSRestType(this: Printer, node: t.TSRestType) {\n this.token(\"...\");\n this.print(node.typeAnnotation);\n}\n\nexport function TSNamedTupleMember(this: Printer, node: t.TSNamedTupleMember) {\n this.print(node.label);\n if (node.optional) this.token(\"?\");\n this.token(\":\");\n this.space();\n this.print(node.elementType);\n}\n\nexport function TSUnionType(this: Printer, node: t.TSUnionType) {\n tsPrintUnionOrIntersectionType(this, node, \"|\");\n}\n\nexport function TSIntersectionType(this: Printer, node: t.TSIntersectionType) {\n tsPrintUnionOrIntersectionType(this, node, \"&\");\n}\n\nfunction tsPrintUnionOrIntersectionType(\n printer: Printer,\n node: t.TSUnionType | t.TSIntersectionType,\n sep: \"|\" | \"&\",\n) {\n let hasLeadingToken = 0;\n if (printer.tokenMap?.startMatches(node, sep)) {\n hasLeadingToken = 1;\n printer.token(sep);\n }\n\n printer.printJoin(node.types, undefined, undefined, function (i) {\n this.space();\n this.token(sep, undefined, i + hasLeadingToken);\n this.space();\n });\n}\n\nexport function TSConditionalType(this: Printer, node: t.TSConditionalType) {\n this.print(node.checkType);\n this.space();\n this.word(\"extends\");\n this.space();\n this.print(node.extendsType);\n this.space();\n this.token(\"?\");\n this.space();\n this.print(node.trueType);\n this.space();\n this.token(\":\");\n this.space();\n this.print(node.falseType);\n}\n\nexport function TSInferType(this: Printer, node: t.TSInferType) {\n this.word(\"infer\");\n this.print(node.typeParameter);\n}\n\nexport function TSParenthesizedType(\n this: Printer,\n node: t.TSParenthesizedType,\n) {\n this.token(\"(\");\n this.print(node.typeAnnotation);\n this.token(\")\");\n}\n\nexport function TSTypeOperator(this: Printer, node: t.TSTypeOperator) {\n this.word(node.operator);\n this.space();\n this.print(node.typeAnnotation);\n}\n\nexport function TSIndexedAccessType(\n this: Printer,\n node: t.TSIndexedAccessType,\n) {\n this.print(node.objectType, true);\n this.token(\"[\");\n this.print(node.indexType);\n this.token(\"]\");\n}\n\nexport function TSMappedType(this: Printer, node: t.TSMappedType) {\n const { nameType, optional, readonly, typeAnnotation } = node;\n this.token(\"{\");\n const oldNoLineTerminatorAfterNode = this.enterDelimited();\n this.space();\n if (readonly) {\n tokenIfPlusMinus(this, readonly);\n this.word(\"readonly\");\n this.space();\n }\n\n this.token(\"[\");\n if (process.env.BABEL_8_BREAKING) {\n // @ts-ignore(Babel 7 vs Babel 8) Babel 8 AST shape\n this.word(node.key.name);\n } else {\n // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST shape\n this.word(node.typeParameter.name);\n }\n\n this.space();\n this.word(\"in\");\n this.space();\n if (process.env.BABEL_8_BREAKING) {\n // @ts-ignore(Babel 7 vs Babel 8) Babel 8 AST shape\n this.print(node.constraint, undefined, true);\n } else {\n // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST shape\n this.print(node.typeParameter.constraint, undefined, true);\n }\n\n if (nameType) {\n this.space();\n this.word(\"as\");\n this.space();\n this.print(nameType, undefined, true);\n }\n\n this.token(\"]\");\n\n if (optional) {\n tokenIfPlusMinus(this, optional);\n this.token(\"?\");\n }\n\n if (typeAnnotation) {\n this.token(\":\");\n this.space();\n this.print(typeAnnotation, undefined, true);\n }\n this.space();\n this._noLineTerminatorAfterNode = oldNoLineTerminatorAfterNode;\n this.token(\"}\");\n}\n\nfunction tokenIfPlusMinus(self: Printer, tok: true | \"+\" | \"-\") {\n if (tok !== true) {\n self.token(tok);\n }\n}\n\nexport function TSTemplateLiteralType(\n this: Printer,\n node: t.TSTemplateLiteralType,\n) {\n _printTemplate.call(this, node, node.types);\n}\n\nexport function TSLiteralType(this: Printer, node: t.TSLiteralType) {\n this.print(node.literal);\n}\n\nexport function TSClassImplements(\n this: Printer,\n // TODO(Babel 8): Just use t.TSClassImplements\n node: t.Node & {\n expression: t.TSEntityName;\n typeArguments?: t.TSTypeParameterInstantiation;\n },\n) {\n this.print(node.expression);\n this.print(node.typeArguments);\n}\n\nexport { TSClassImplements as TSInterfaceHeritage };\n\nexport function TSInterfaceDeclaration(\n this: Printer,\n node: t.TSInterfaceDeclaration,\n) {\n const { declare, id, typeParameters, extends: extendz, body } = node;\n if (declare) {\n this.word(\"declare\");\n this.space();\n }\n this.word(\"interface\");\n this.space();\n this.print(id);\n this.print(typeParameters);\n if (extendz?.length) {\n this.space();\n this.word(\"extends\");\n this.space();\n this.printList(extendz);\n }\n this.space();\n this.print(body);\n}\n\nexport function TSInterfaceBody(this: Printer, node: t.TSInterfaceBody) {\n printBraced(this, node, () =>\n this.printJoin(node.body, true, true, undefined, undefined, true),\n );\n}\n\nexport function TSTypeAliasDeclaration(\n this: Printer,\n node: t.TSTypeAliasDeclaration,\n) {\n const { declare, id, typeParameters, typeAnnotation } = node;\n if (declare) {\n this.word(\"declare\");\n this.space();\n }\n this.word(\"type\");\n this.space();\n this.print(id);\n this.print(typeParameters);\n this.space();\n this.token(\"=\");\n this.space();\n this.print(typeAnnotation);\n this.semicolon();\n}\n\nexport function TSAsExpression(this: Printer, node: t.TSAsExpression) {\n const { expression, typeAnnotation } = node;\n this.print(expression, true);\n this.space();\n this.word(\"as\");\n this.space();\n this.print(typeAnnotation);\n}\n\nexport function TSSatisfiesExpression(\n this: Printer,\n node: t.TSSatisfiesExpression,\n) {\n const { expression, typeAnnotation } = node;\n this.print(expression, true);\n this.space();\n this.word(\"satisfies\");\n this.space();\n this.print(typeAnnotation);\n}\n\nexport function TSTypeAssertion(this: Printer, node: t.TSTypeAssertion) {\n const { typeAnnotation, expression } = node;\n this.token(\"<\");\n this.print(typeAnnotation);\n this.token(\">\");\n this.space();\n this.print(expression);\n}\n\nexport function TSInstantiationExpression(\n this: Printer,\n node: t.TSInstantiationExpression,\n) {\n this.print(node.expression);\n if (process.env.BABEL_8_BREAKING) {\n // @ts-ignore(Babel 7 vs Babel 8) Babel 8 AST\n this.print(node.typeArguments);\n } else {\n // @ts-ignore(Babel 7 vs Babel 8) Removed in Babel 8\n this.print(node.typeParameters);\n }\n}\n\nexport function TSEnumDeclaration(this: Printer, node: t.TSEnumDeclaration) {\n const { declare, const: isConst, id } = node;\n if (declare) {\n this.word(\"declare\");\n this.space();\n }\n if (isConst) {\n this.word(\"const\");\n this.space();\n }\n this.word(\"enum\");\n this.space();\n this.print(id);\n this.space();\n\n if (process.env.BABEL_8_BREAKING) {\n // @ts-ignore(Babel 7 vs Babel 8) Babel 8 AST\n this.print(node.body);\n } else {\n // cast to TSEnumBody for Babel 7 AST\n TSEnumBody.call(this, node as unknown as t.TSEnumBody);\n }\n}\n\nexport function TSEnumBody(this: Printer, node: t.TSEnumBody) {\n printBraced(this, node, () =>\n this.printList(\n node.members,\n this.shouldPrintTrailingComma(\"}\") ??\n (process.env.BABEL_8_BREAKING ? false : true),\n true,\n true,\n undefined,\n true,\n ),\n );\n}\n\nexport function TSEnumMember(this: Printer, node: t.TSEnumMember) {\n const { id, initializer } = node;\n this.print(id);\n if (initializer) {\n this.space();\n this.token(\"=\");\n this.space();\n this.print(initializer);\n }\n}\n\nexport function TSModuleDeclaration(\n this: Printer,\n node: t.TSModuleDeclaration,\n) {\n const { declare, id, kind } = node;\n\n if (declare) {\n this.word(\"declare\");\n this.space();\n }\n\n if (process.env.BABEL_8_BREAKING) {\n if (kind !== \"global\") {\n this.word(kind);\n this.space();\n }\n\n this.print(node.id);\n if (!node.body) {\n this.semicolon();\n return;\n }\n this.space();\n this.print(node.body);\n } else {\n // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST shape\n if (!node.global) {\n this.word(kind ?? (id.type === \"Identifier\" ? \"namespace\" : \"module\"));\n this.space();\n }\n\n this.print(id);\n\n if (!node.body) {\n this.semicolon();\n return;\n }\n\n let body = node.body;\n // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST shape\n while (body.type === \"TSModuleDeclaration\") {\n this.token(\".\");\n // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST shape\n this.print(body.id);\n // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST shape\n body = body.body;\n }\n\n this.space();\n this.print(body);\n }\n}\n\nexport function TSModuleBlock(this: Printer, node: t.TSModuleBlock) {\n printBraced(this, node, () => this.printSequence(node.body, true, true));\n}\n\nexport function TSImportType(this: Printer, node: t.TSImportType) {\n const { qualifier, options } = node;\n this.word(\"import\");\n this.token(\"(\");\n this.print(\n //@ts-ignore(Babel 7 vs Babel 8) Babel 8 AST\n process.env.BABEL_8_BREAKING ? node.source : node.argument,\n );\n if (options) {\n this.token(\",\");\n this.print(options);\n }\n this.token(\")\");\n if (qualifier) {\n this.token(\".\");\n this.print(qualifier);\n }\n const typeArguments = process.env.BABEL_8_BREAKING\n ? //@ts-ignore(Babel 7 vs Babel 8) Babel 8 AST\n node.typeArguments\n : //@ts-ignore(Babel 7 vs Babel 8) Babel 7 AST\n node.typeParameters;\n if (typeArguments) {\n this.print(typeArguments);\n }\n}\n\nexport function TSImportEqualsDeclaration(\n this: Printer,\n node: t.TSImportEqualsDeclaration,\n) {\n const { id, moduleReference } = node;\n if (\n !process.env.BABEL_8_BREAKING &&\n // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST\n node.isExport\n ) {\n this.word(\"export\");\n this.space();\n }\n this.word(\"import\");\n this.space();\n this.print(id);\n this.space();\n this.token(\"=\");\n this.space();\n this.print(moduleReference);\n this.semicolon();\n}\n\nexport function TSExternalModuleReference(\n this: Printer,\n node: t.TSExternalModuleReference,\n) {\n this.token(\"require(\");\n this.print(node.expression);\n this.token(\")\");\n}\n\nexport function TSNonNullExpression(\n this: Printer,\n node: t.TSNonNullExpression,\n) {\n this.print(node.expression);\n this.token(\"!\");\n this.setLastChar(charCodes.exclamationMark);\n}\n\nexport function TSExportAssignment(this: Printer, node: t.TSExportAssignment) {\n this.word(\"export\");\n this.space();\n this.token(\"=\");\n this.space();\n this.print(node.expression);\n this.semicolon();\n}\n\nexport function TSNamespaceExportDeclaration(\n this: Printer,\n node: t.TSNamespaceExportDeclaration,\n) {\n this.word(\"export\");\n this.space();\n this.word(\"as\");\n this.space();\n this.word(\"namespace\");\n this.space();\n this.print(node.id);\n this.semicolon();\n}\n\nfunction tsPrintSignatureDeclarationBase(this: Printer, node: any) {\n const { typeParameters } = node;\n const parameters = process.env.BABEL_8_BREAKING\n ? node.params\n : node.parameters;\n this.print(typeParameters);\n this.token(\"(\");\n _parameters.call(this, parameters, charCodes.rightParenthesis);\n const returnType = process.env.BABEL_8_BREAKING\n ? node.returnType\n : node.typeAnnotation;\n this.print(returnType);\n}\n\nexport function _tsPrintClassMemberModifiers(\n this: Printer,\n node:\n | t.ClassProperty\n | t.ClassAccessorProperty\n | t.ClassPrivateProperty\n | t.ClassMethod\n | t.ClassPrivateMethod\n | t.TSDeclareMethod,\n) {\n const isPrivateField = node.type === \"ClassPrivateProperty\";\n const isPublicField =\n node.type === \"ClassAccessorProperty\" || node.type === \"ClassProperty\";\n printModifiersList(this, node, [\n isPublicField && node.declare && \"declare\",\n !isPrivateField && node.accessibility,\n ]);\n if (node.static) {\n this.word(\"static\");\n this.space();\n }\n printModifiersList(this, node, [\n !isPrivateField && node.abstract && \"abstract\",\n !isPrivateField && node.override && \"override\",\n (isPublicField || isPrivateField) && node.readonly && \"readonly\",\n ]);\n}\n\nfunction printBraced(printer: Printer, node: t.Node, cb: () => void) {\n printer.token(\"{\");\n const oldNoLineTerminatorAfterNode = printer.enterDelimited();\n cb();\n printer._noLineTerminatorAfterNode = oldNoLineTerminatorAfterNode;\n printer.rightBrace(node);\n}\n\nfunction printModifiersList(\n printer: Printer,\n node: t.Node,\n modifiers: (string | false | null | undefined)[],\n) {\n const modifiersSet = new Set();\n for (const modifier of modifiers) {\n if (modifier) modifiersSet.add(modifier);\n }\n\n printer.tokenMap?.find(node, tok => {\n if (modifiersSet.has(tok.value)) {\n printer.token(tok.value);\n printer.space();\n modifiersSet.delete(tok.value);\n return modifiersSet.size === 0;\n }\n return false;\n });\n\n for (const modifier of modifiersSet) {\n printer.word(modifier);\n printer.space();\n }\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/generator/lib/index.js b/server/api/node_modules/@babel/generator/lib/index.js new file mode 100644 index 0000000..e8b3bcc --- /dev/null +++ b/server/api/node_modules/@babel/generator/lib/index.js @@ -0,0 +1,108 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +exports.generate = generate; +var _sourceMap = require("./source-map.js"); +var _printer = require("./printer.js"); +function normalizeOptions(code, opts, ast) { + var _opts$recordAndTupleS; + if (opts.experimental_preserveFormat) { + if (typeof code !== "string") { + throw new Error("`experimental_preserveFormat` requires the original `code` to be passed to @babel/generator as a string"); + } + if (!opts.retainLines) { + throw new Error("`experimental_preserveFormat` requires `retainLines` to be set to `true`"); + } + if (opts.compact && opts.compact !== "auto") { + throw new Error("`experimental_preserveFormat` is not compatible with the `compact` option"); + } + if (opts.minified) { + throw new Error("`experimental_preserveFormat` is not compatible with the `minified` option"); + } + if (opts.jsescOption) { + throw new Error("`experimental_preserveFormat` is not compatible with the `jsescOption` option"); + } + if (!Array.isArray(ast.tokens)) { + throw new Error("`experimental_preserveFormat` requires the AST to have attached the token of the input code. Make sure to enable the `tokens: true` parser option."); + } + } + const format = { + auxiliaryCommentBefore: opts.auxiliaryCommentBefore, + auxiliaryCommentAfter: opts.auxiliaryCommentAfter, + shouldPrintComment: opts.shouldPrintComment, + preserveFormat: opts.experimental_preserveFormat, + retainLines: opts.retainLines, + retainFunctionParens: opts.retainFunctionParens, + comments: opts.comments == null || opts.comments, + compact: opts.compact, + minified: opts.minified, + concise: opts.concise, + indent: { + adjustMultilineComment: true, + style: " " + }, + jsescOption: Object.assign({ + quotes: "double", + wrap: true, + minimal: false + }, opts.jsescOption), + topicToken: opts.topicToken + }; + format.decoratorsBeforeExport = opts.decoratorsBeforeExport; + format.jsescOption.json = opts.jsonCompatibleStrings; + format.recordAndTupleSyntaxType = (_opts$recordAndTupleS = opts.recordAndTupleSyntaxType) != null ? _opts$recordAndTupleS : "hash"; + format.importAttributesKeyword = opts.importAttributesKeyword; + if (format.minified) { + format.compact = true; + format.shouldPrintComment = format.shouldPrintComment || (() => format.comments); + } else { + format.shouldPrintComment = format.shouldPrintComment || (value => format.comments || value.includes("@license") || value.includes("@preserve")); + } + if (format.compact === "auto") { + format.compact = typeof code === "string" && code.length > 500000; + if (format.compact) { + console.error("[BABEL] Note: The code generator has deoptimised the styling of " + `${opts.filename} as it exceeds the max of ${"500KB"}.`); + } + } + if (format.compact || format.preserveFormat) { + format.indent.adjustMultilineComment = false; + } + const { + auxiliaryCommentBefore, + auxiliaryCommentAfter, + shouldPrintComment + } = format; + if (auxiliaryCommentBefore && !shouldPrintComment(auxiliaryCommentBefore)) { + format.auxiliaryCommentBefore = undefined; + } + if (auxiliaryCommentAfter && !shouldPrintComment(auxiliaryCommentAfter)) { + format.auxiliaryCommentAfter = undefined; + } + return format; +} +exports.CodeGenerator = class CodeGenerator { + constructor(ast, opts = {}, code) { + this._ast = void 0; + this._format = void 0; + this._map = void 0; + this._ast = ast; + this._format = normalizeOptions(code, opts, ast); + this._map = opts.sourceMaps ? new _sourceMap.default(opts, code) : null; + } + generate() { + const printer = new _printer.default(this._format, this._map); + return printer.generate(this._ast); + } +}; +function generate(ast, opts = {}, code) { + const format = normalizeOptions(code, opts, ast); + const map = opts.sourceMaps ? new _sourceMap.default(opts, code) : null; + const printer = new _printer.default(format, map, ast.tokens, typeof code === "string" ? code : null); + return printer.generate(ast); +} +var _default = exports.default = generate; + +//# sourceMappingURL=index.js.map diff --git a/server/api/node_modules/@babel/generator/lib/index.js.map b/server/api/node_modules/@babel/generator/lib/index.js.map new file mode 100644 index 0000000..e6a7901 --- /dev/null +++ b/server/api/node_modules/@babel/generator/lib/index.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_sourceMap","require","_printer","normalizeOptions","code","opts","ast","_opts$recordAndTupleS","experimental_preserveFormat","Error","retainLines","compact","minified","jsescOption","Array","isArray","tokens","format","auxiliaryCommentBefore","auxiliaryCommentAfter","shouldPrintComment","preserveFormat","retainFunctionParens","comments","concise","indent","adjustMultilineComment","style","Object","assign","quotes","wrap","minimal","topicToken","decoratorsBeforeExport","json","jsonCompatibleStrings","recordAndTupleSyntaxType","importAttributesKeyword","value","includes","length","console","error","filename","undefined","exports","CodeGenerator","constructor","_ast","_format","_map","sourceMaps","SourceMap","generate","printer","Printer","map","_default","default"],"sources":["../src/index.ts"],"sourcesContent":["import SourceMap from \"./source-map.ts\";\nimport Printer from \"./printer.ts\";\nimport type * as t from \"@babel/types\";\nimport type { Opts as jsescOptions } from \"jsesc\";\nimport type { Format } from \"./printer.ts\";\nimport type {\n EncodedSourceMap,\n DecodedSourceMap,\n Mapping,\n} from \"@jridgewell/gen-mapping\";\n\n/**\n * Normalize generator options, setting defaults.\n *\n * - Detects code indentation.\n * - If `opts.compact = \"auto\"` and the code is over 500KB, `compact` will be set to `true`.\n */\n\nfunction normalizeOptions(\n code: string | Record | undefined,\n opts: GeneratorOptions,\n ast: t.Node,\n): Format {\n if (opts.experimental_preserveFormat) {\n if (typeof code !== \"string\") {\n throw new Error(\n \"`experimental_preserveFormat` requires the original `code` to be passed to @babel/generator as a string\",\n );\n }\n if (!opts.retainLines) {\n throw new Error(\n \"`experimental_preserveFormat` requires `retainLines` to be set to `true`\",\n );\n }\n if (opts.compact && opts.compact !== \"auto\") {\n throw new Error(\n \"`experimental_preserveFormat` is not compatible with the `compact` option\",\n );\n }\n if (opts.minified) {\n throw new Error(\n \"`experimental_preserveFormat` is not compatible with the `minified` option\",\n );\n }\n if (opts.jsescOption) {\n throw new Error(\n \"`experimental_preserveFormat` is not compatible with the `jsescOption` option\",\n );\n }\n if (!Array.isArray((ast as any).tokens)) {\n throw new Error(\n \"`experimental_preserveFormat` requires the AST to have attached the token of the input code. Make sure to enable the `tokens: true` parser option.\",\n );\n }\n }\n\n const format: Format = {\n auxiliaryCommentBefore: opts.auxiliaryCommentBefore,\n auxiliaryCommentAfter: opts.auxiliaryCommentAfter,\n // @ts-expect-error define it later\n shouldPrintComment: opts.shouldPrintComment,\n preserveFormat: opts.experimental_preserveFormat,\n retainLines: opts.retainLines,\n retainFunctionParens: opts.retainFunctionParens,\n comments: opts.comments == null || opts.comments,\n compact: opts.compact,\n minified: opts.minified,\n concise: opts.concise,\n indent: {\n adjustMultilineComment: true,\n style: \" \",\n },\n jsescOption: {\n quotes: \"double\",\n wrap: true,\n minimal: process.env.BABEL_8_BREAKING ? true : false,\n ...opts.jsescOption,\n },\n topicToken: opts.topicToken,\n };\n\n if (!process.env.BABEL_8_BREAKING) {\n format.decoratorsBeforeExport = opts.decoratorsBeforeExport;\n format.jsescOption.json = opts.jsonCompatibleStrings;\n format.recordAndTupleSyntaxType = opts.recordAndTupleSyntaxType ?? \"hash\";\n format.importAttributesKeyword = opts.importAttributesKeyword;\n }\n\n if (format.minified) {\n format.compact = true;\n\n format.shouldPrintComment =\n format.shouldPrintComment || (() => format.comments);\n } else {\n format.shouldPrintComment =\n format.shouldPrintComment ||\n (value =>\n format.comments ||\n value.includes(\"@license\") ||\n value.includes(\"@preserve\"));\n }\n\n if (format.compact === \"auto\") {\n format.compact = typeof code === \"string\" && code.length > 500_000; // 500KB\n\n if (format.compact) {\n console.error(\n \"[BABEL] Note: The code generator has deoptimised the styling of \" +\n `${opts.filename} as it exceeds the max of ${\"500KB\"}.`,\n );\n }\n }\n\n if (format.compact || format.preserveFormat) {\n format.indent.adjustMultilineComment = false;\n }\n\n const { auxiliaryCommentBefore, auxiliaryCommentAfter, shouldPrintComment } =\n format;\n\n if (auxiliaryCommentBefore && !shouldPrintComment(auxiliaryCommentBefore)) {\n format.auxiliaryCommentBefore = undefined;\n }\n if (auxiliaryCommentAfter && !shouldPrintComment(auxiliaryCommentAfter)) {\n format.auxiliaryCommentAfter = undefined;\n }\n\n return format;\n}\n\nexport interface GeneratorOptions {\n /**\n * Optional string to add as a block comment at the start of the output file.\n */\n auxiliaryCommentBefore?: string;\n\n /**\n * Optional string to add as a block comment at the end of the output file.\n */\n auxiliaryCommentAfter?: string;\n\n /**\n * Function that takes a comment (as a string) and returns true if the comment should be included in the output.\n * By default, comments are included if `opts.comments` is `true` or if `opts.minified` is `false` and the comment\n * contains `@preserve` or `@license`.\n */\n shouldPrintComment?(comment: string): boolean;\n\n /**\n * Preserve the input code format while printing the transformed code.\n * This is experimental, and may have breaking changes in future\n * patch releases. It will be removed in a future minor release,\n * when it will graduate to stable.\n */\n experimental_preserveFormat?: boolean;\n\n /**\n * Attempt to use the same line numbers in the output code as in the source code (helps preserve stack traces).\n * Defaults to `false`.\n */\n retainLines?: boolean;\n\n /**\n * Retain parens around function expressions (could be used to change engine parsing behavior)\n * Defaults to `false`.\n */\n retainFunctionParens?: boolean;\n\n /**\n * Should comments be included in output? Defaults to `true`.\n */\n comments?: boolean;\n\n /**\n * Set to true to avoid adding whitespace for formatting. Defaults to the value of `opts.minified`.\n */\n compact?: boolean | \"auto\";\n\n /**\n * Should the output be minified. Defaults to `false`.\n */\n minified?: boolean;\n\n /**\n * Set to true to reduce whitespace (but not as much as opts.compact). Defaults to `false`.\n */\n concise?: boolean;\n\n /**\n * Used in warning messages\n */\n filename?: string;\n\n /**\n * Enable generating source maps. Defaults to `false`.\n */\n sourceMaps?: boolean;\n\n inputSourceMap?: any;\n\n /**\n * A root for all relative URLs in the source map.\n */\n sourceRoot?: string;\n\n /**\n * The filename for the source code (i.e. the code in the `code` argument).\n * This will only be used if `code` is a string.\n */\n sourceFileName?: string;\n\n /**\n * Set to true to run jsesc with \"json\": true to print \"\\u00A9\" vs. \"©\";\n * @deprecated use `jsescOptions: { json: true }` instead\n */\n jsonCompatibleStrings?: boolean;\n\n /**\n * Set to true to enable support for experimental decorators syntax before\n * module exports. If not specified, decorators will be printed in the same\n * position as they were in the input source code.\n * @deprecated Removed in Babel 8\n */\n decoratorsBeforeExport?: boolean;\n\n /**\n * Options for outputting jsesc representation.\n */\n jsescOption?: jsescOptions;\n\n /**\n * For use with the recordAndTuple token.\n * @deprecated It will be removed in Babel 8.\n */\n recordAndTupleSyntaxType?: \"bar\" | \"hash\";\n\n /**\n * For use with the Hack-style pipe operator.\n * Changes what token is used for pipe bodies’ topic references.\n */\n topicToken?: \"%\" | \"#\" | \"@@\" | \"^^\" | \"^\";\n\n /**\n * The import attributes syntax style:\n * - \"with\" : `import { a } from \"b\" with { type: \"json\" };`\n * - \"assert\" : `import { a } from \"b\" assert { type: \"json\" };`\n * - \"with-legacy\" : `import { a } from \"b\" with type: \"json\";`\n * @deprecated Removed in Babel 8.\n */\n importAttributesKeyword?: \"with\" | \"assert\" | \"with-legacy\";\n}\n\nexport interface GeneratorResult {\n code: string;\n map: EncodedSourceMap | null;\n decodedMap: DecodedSourceMap | undefined;\n rawMappings: Mapping[] | undefined;\n}\n\nif (!process.env.BABEL_8_BREAKING && !USE_ESM) {\n /**\n * We originally exported the Generator class above, but to make it extra clear that it is a private API,\n * we have moved that to an internal class instance and simplified the interface to the two public methods\n * that we wish to support.\n */\n\n // eslint-disable-next-line no-restricted-globals\n exports.CodeGenerator = class CodeGenerator {\n private _ast: t.Node;\n private _format: Format;\n private _map: SourceMap | null;\n constructor(ast: t.Node, opts: GeneratorOptions = {}, code?: string) {\n this._ast = ast;\n this._format = normalizeOptions(code, opts, ast);\n this._map = opts.sourceMaps ? new SourceMap(opts, code) : null;\n }\n generate(): GeneratorResult {\n const printer = new Printer(this._format, this._map);\n\n return printer.generate(this._ast);\n }\n };\n}\n\n/**\n * Turns an AST into code, maintaining sourcemaps, user preferences, and valid output.\n * @param ast - the abstract syntax tree from which to generate output code.\n * @param opts - used for specifying options for code generation.\n * @param code - the original source code, used for source maps.\n * @returns - an object containing the output code and source map.\n */\nexport function generate(\n ast: t.Node,\n opts: GeneratorOptions = {},\n code?: string | Record,\n): GeneratorResult {\n const format = normalizeOptions(code, opts, ast);\n const map = opts.sourceMaps ? new SourceMap(opts, code) : null;\n\n const printer = new Printer(\n format,\n map,\n (ast as any).tokens,\n typeof code === \"string\" ? code : null,\n );\n\n return printer.generate(ast);\n}\n\nexport default generate;\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/generator/lib/node/index.js b/server/api/node_modules/@babel/generator/lib/node/index.js new file mode 100644 index 0000000..58cb15c --- /dev/null +++ b/server/api/node_modules/@babel/generator/lib/node/index.js @@ -0,0 +1,81 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.TokenContext = void 0; +exports.isLastChild = isLastChild; +exports.parentNeedsParens = parentNeedsParens; +var parens = require("./parentheses.js"); +var _t = require("@babel/types"); +var _nodes = require("../nodes.js"); +const { + VISITOR_KEYS +} = _t; +const TokenContext = exports.TokenContext = { + normal: 0, + expressionStatement: 1, + arrowBody: 2, + exportDefault: 4, + arrowFlowReturnType: 8, + forInitHead: 16, + forInHead: 32, + forOfHead: 64, + forInOrInitHeadAccumulate: 128, + forInOrInitHeadAccumulatePassThroughMask: 128 +}; +for (const type of Object.keys(parens)) { + const func = parens[type]; + if (_nodes.generatorInfosMap.has(type)) { + _nodes.generatorInfosMap.get(type)[2] = func; + } +} +function isOrHasCallExpression(node) { + switch (node.type) { + case "CallExpression": + return true; + case "MemberExpression": + return isOrHasCallExpression(node.object); + } + return false; +} +function parentNeedsParens(node, parent, parentId) { + switch (parentId) { + case 112: + if (parent.callee === node) { + if (isOrHasCallExpression(node)) return true; + } + break; + case 42: + return !isDecoratorMemberExpression(node) && !(node.type === "CallExpression" && isDecoratorMemberExpression(node.callee)) && node.type !== "ParenthesizedExpression"; + } + return false; +} +function isDecoratorMemberExpression(node) { + switch (node.type) { + case "Identifier": + return true; + case "MemberExpression": + return !node.computed && node.property.type === "Identifier" && isDecoratorMemberExpression(node.object); + default: + return false; + } +} +function isLastChild(parent, child) { + const visitorKeys = VISITOR_KEYS[parent.type]; + for (let i = visitorKeys.length - 1; i >= 0; i--) { + const val = parent[visitorKeys[i]]; + if (val === child) { + return true; + } else if (Array.isArray(val)) { + let j = val.length - 1; + while (j >= 0 && val[j] === null) j--; + return j >= 0 && val[j] === child; + } else if (val) { + return false; + } + } + return false; +} + +//# sourceMappingURL=index.js.map diff --git a/server/api/node_modules/@babel/generator/lib/node/index.js.map b/server/api/node_modules/@babel/generator/lib/node/index.js.map new file mode 100644 index 0000000..bae168f --- /dev/null +++ b/server/api/node_modules/@babel/generator/lib/node/index.js.map @@ -0,0 +1 @@ +{"version":3,"names":["parens","require","_t","_nodes","VISITOR_KEYS","TokenContext","exports","normal","expressionStatement","arrowBody","exportDefault","arrowFlowReturnType","forInitHead","forInHead","forOfHead","forInOrInitHeadAccumulate","forInOrInitHeadAccumulatePassThroughMask","type","Object","keys","func","generatorInfosMap","has","get","isOrHasCallExpression","node","object","parentNeedsParens","parent","parentId","callee","isDecoratorMemberExpression","computed","property","isLastChild","child","visitorKeys","i","length","val","Array","isArray","j"],"sources":["../../src/node/index.ts"],"sourcesContent":["import * as parens from \"./parentheses.ts\";\nimport { VISITOR_KEYS } from \"@babel/types\";\nimport type * as t from \"@babel/types\";\n\nimport { generatorInfosMap } from \"../nodes.ts\";\n\nexport const enum TokenContext {\n normal = 0,\n expressionStatement = 1 << 0,\n arrowBody = 1 << 1,\n exportDefault = 1 << 2,\n arrowFlowReturnType = 1 << 3,\n forInitHead = 1 << 4,\n forInHead = 1 << 5,\n forOfHead = 1 << 6,\n // This flag lives across the token boundary, and will\n // be reset after forIn or forInit head is printed\n forInOrInitHeadAccumulate = 1 << 7,\n forInOrInitHeadAccumulatePassThroughMask = 0b10000000,\n}\n\nexport type NodeHandler = (\n node: t.Node,\n // todo:\n // node: K extends keyof typeof t\n // ? Extract\n // : t.Node,\n parent: t.Node,\n parentId: number,\n tokenContext?: number,\n getRawIdentifier?: (node: t.Identifier) => string,\n) => R | undefined;\n\nfor (const type of Object.keys(parens) as (keyof typeof parens)[]) {\n const func = parens[type];\n if (generatorInfosMap.has(type)) {\n generatorInfosMap.get(type)![2] = func;\n }\n}\n\nfunction isOrHasCallExpression(node: t.Node): boolean {\n switch (node.type) {\n case \"CallExpression\":\n return true;\n case \"MemberExpression\":\n return isOrHasCallExpression(node.object);\n }\n return false;\n}\n\nexport function parentNeedsParens(\n node: t.Node,\n parent: any,\n parentId: number,\n): boolean {\n switch (parentId) {\n case __node(\"NewExpression\"):\n if (parent.callee === node) {\n if (isOrHasCallExpression(node)) return true;\n }\n break;\n case __node(\"Decorator\"):\n return (\n !isDecoratorMemberExpression(node) &&\n !(\n node.type === \"CallExpression\" &&\n isDecoratorMemberExpression(node.callee)\n ) &&\n node.type !== \"ParenthesizedExpression\"\n );\n }\n return false;\n}\n\nfunction isDecoratorMemberExpression(node: t.Node): boolean {\n switch (node.type) {\n case \"Identifier\":\n return true;\n case \"MemberExpression\":\n return (\n !node.computed &&\n node.property.type === \"Identifier\" &&\n isDecoratorMemberExpression(node.object)\n );\n default:\n return false;\n }\n}\n\nexport function isLastChild(parent: t.Node, child: t.Node) {\n const visitorKeys = VISITOR_KEYS[parent.type];\n for (let i = visitorKeys.length - 1; i >= 0; i--) {\n const val = (parent as any)[visitorKeys[i]] as t.Node | t.Node[] | null;\n if (val === child) {\n return true;\n } else if (Array.isArray(val)) {\n let j = val.length - 1;\n while (j >= 0 && val[j] === null) j--;\n return j >= 0 && val[j] === child;\n } else if (val) {\n return false;\n }\n }\n return false;\n}\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,EAAA,GAAAD,OAAA;AAGA,IAAAE,MAAA,GAAAF,OAAA;AAAgD;EAHvCG;AAAY,IAAAF,EAAA;AAAA,MAKHG,YAAY,GAAAC,OAAA,CAAAD,YAAA;EAAAE,MAAA;EAAAC,mBAAA;EAAAC,SAAA;EAAAC,aAAA;EAAAC,mBAAA;EAAAC,WAAA;EAAAC,SAAA;EAAAC,SAAA;EAAAC,yBAAA;EAAAC,wCAAA;AAAA;AA2B9B,KAAK,MAAMC,IAAI,IAAIC,MAAM,CAACC,IAAI,CAACnB,MAAM,CAAC,EAA6B;EACjE,MAAMoB,IAAI,GAAGpB,MAAM,CAACiB,IAAI,CAAC;EACzB,IAAII,wBAAiB,CAACC,GAAG,CAACL,IAAI,CAAC,EAAE;IAC/BI,wBAAiB,CAACE,GAAG,CAACN,IAAI,CAAC,CAAE,CAAC,CAAC,GAAGG,IAAI;EACxC;AACF;AAEA,SAASI,qBAAqBA,CAACC,IAAY,EAAW;EACpD,QAAQA,IAAI,CAACR,IAAI;IACf,KAAK,gBAAgB;MACnB,OAAO,IAAI;IACb,KAAK,kBAAkB;MACrB,OAAOO,qBAAqB,CAACC,IAAI,CAACC,MAAM,CAAC;EAC7C;EACA,OAAO,KAAK;AACd;AAEO,SAASC,iBAAiBA,CAC/BF,IAAY,EACZG,MAAW,EACXC,QAAgB,EACP;EACT,QAAQA,QAAQ;IACd;MACE,IAAID,MAAM,CAACE,MAAM,KAAKL,IAAI,EAAE;QAC1B,IAAID,qBAAqB,CAACC,IAAI,CAAC,EAAE,OAAO,IAAI;MAC9C;MACA;IACF;MACE,OACE,CAACM,2BAA2B,CAACN,IAAI,CAAC,IAClC,EACEA,IAAI,CAACR,IAAI,KAAK,gBAAgB,IAC9Bc,2BAA2B,CAACN,IAAI,CAACK,MAAM,CAAC,CACzC,IACDL,IAAI,CAACR,IAAI,KAAK,yBAAyB;EAE7C;EACA,OAAO,KAAK;AACd;AAEA,SAASc,2BAA2BA,CAACN,IAAY,EAAW;EAC1D,QAAQA,IAAI,CAACR,IAAI;IACf,KAAK,YAAY;MACf,OAAO,IAAI;IACb,KAAK,kBAAkB;MACrB,OACE,CAACQ,IAAI,CAACO,QAAQ,IACdP,IAAI,CAACQ,QAAQ,CAAChB,IAAI,KAAK,YAAY,IACnCc,2BAA2B,CAACN,IAAI,CAACC,MAAM,CAAC;IAE5C;MACE,OAAO,KAAK;EAChB;AACF;AAEO,SAASQ,WAAWA,CAACN,MAAc,EAAEO,KAAa,EAAE;EACzD,MAAMC,WAAW,GAAGhC,YAAY,CAACwB,MAAM,CAACX,IAAI,CAAC;EAC7C,KAAK,IAAIoB,CAAC,GAAGD,WAAW,CAACE,MAAM,GAAG,CAAC,EAAED,CAAC,IAAI,CAAC,EAAEA,CAAC,EAAE,EAAE;IAChD,MAAME,GAAG,GAAIX,MAAM,CAASQ,WAAW,CAACC,CAAC,CAAC,CAA6B;IACvE,IAAIE,GAAG,KAAKJ,KAAK,EAAE;MACjB,OAAO,IAAI;IACb,CAAC,MAAM,IAAIK,KAAK,CAACC,OAAO,CAACF,GAAG,CAAC,EAAE;MAC7B,IAAIG,CAAC,GAAGH,GAAG,CAACD,MAAM,GAAG,CAAC;MACtB,OAAOI,CAAC,IAAI,CAAC,IAAIH,GAAG,CAACG,CAAC,CAAC,KAAK,IAAI,EAAEA,CAAC,EAAE;MACrC,OAAOA,CAAC,IAAI,CAAC,IAAIH,GAAG,CAACG,CAAC,CAAC,KAAKP,KAAK;IACnC,CAAC,MAAM,IAAII,GAAG,EAAE;MACd,OAAO,KAAK;IACd;EACF;EACA,OAAO,KAAK;AACd","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/generator/lib/node/parentheses.js b/server/api/node_modules/@babel/generator/lib/node/parentheses.js new file mode 100644 index 0000000..b7e1f4f --- /dev/null +++ b/server/api/node_modules/@babel/generator/lib/node/parentheses.js @@ -0,0 +1,298 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.AssignmentExpression = AssignmentExpression; +exports.BinaryExpression = BinaryExpression; +exports.ClassExpression = ClassExpression; +exports.ArrowFunctionExpression = exports.ConditionalExpression = ConditionalExpression; +exports.DoExpression = DoExpression; +exports.FunctionExpression = FunctionExpression; +exports.FunctionTypeAnnotation = FunctionTypeAnnotation; +exports.Identifier = Identifier; +exports.LogicalExpression = LogicalExpression; +exports.NullableTypeAnnotation = NullableTypeAnnotation; +exports.ObjectExpression = ObjectExpression; +exports.OptionalIndexedAccessType = OptionalIndexedAccessType; +exports.OptionalCallExpression = exports.OptionalMemberExpression = OptionalMemberExpression; +exports.SequenceExpression = SequenceExpression; +exports.TSSatisfiesExpression = exports.TSAsExpression = TSAsExpression; +exports.TSConditionalType = TSConditionalType; +exports.TSConstructorType = exports.TSFunctionType = TSFunctionType; +exports.TSInferType = TSInferType; +exports.TSInstantiationExpression = TSInstantiationExpression; +exports.TSIntersectionType = TSIntersectionType; +exports.SpreadElement = exports.UnaryExpression = exports.TSTypeAssertion = UnaryLike; +exports.TSTypeOperator = TSTypeOperator; +exports.TSUnionType = TSUnionType; +exports.IntersectionTypeAnnotation = exports.UnionTypeAnnotation = UnionTypeAnnotation; +exports.UpdateExpression = UpdateExpression; +exports.AwaitExpression = exports.YieldExpression = YieldExpression; +var _t = require("@babel/types"); +var _index = require("./index.js"); +const { + isMemberExpression, + isOptionalMemberExpression, + isYieldExpression, + isStatement +} = _t; +const PRECEDENCE = new Map([["||", 0], ["??", 1], ["&&", 2], ["|", 3], ["^", 4], ["&", 5], ["==", 6], ["===", 6], ["!=", 6], ["!==", 6], ["<", 7], [">", 7], ["<=", 7], [">=", 7], ["in", 7], ["instanceof", 7], [">>", 8], ["<<", 8], [">>>", 8], ["+", 9], ["-", 9], ["*", 10], ["/", 10], ["%", 10], ["**", 11]]); +function isTSTypeExpression(nodeId) { + return nodeId === 156 || nodeId === 201 || nodeId === 209; +} +const isClassExtendsClause = (node, parent, parentId) => { + return (parentId === 21 || parentId === 22) && parent.superClass === node; +}; +const hasPostfixPart = (node, parent, parentId) => { + switch (parentId) { + case 108: + case 132: + return parent.object === node; + case 17: + case 130: + case 112: + return parent.callee === node; + case 222: + return parent.tag === node; + case 191: + return true; + } + return false; +}; +function NullableTypeAnnotation(node, parent, parentId) { + return parentId === 4; +} +function FunctionTypeAnnotation(node, parent, parentId, tokenContext) { + return (parentId === 239 || parentId === 90 || parentId === 4 || (tokenContext & _index.TokenContext.arrowFlowReturnType) > 0 + ); +} +function UpdateExpression(node, parent, parentId) { + return hasPostfixPart(node, parent, parentId) || isClassExtendsClause(node, parent, parentId); +} +function needsParenBeforeExpressionBrace(tokenContext) { + return (tokenContext & (_index.TokenContext.expressionStatement | _index.TokenContext.arrowBody)) > 0; +} +function ObjectExpression(node, parent, parentId, tokenContext) { + return needsParenBeforeExpressionBrace(tokenContext); +} +function DoExpression(node, parent, parentId, tokenContext) { + return (tokenContext & _index.TokenContext.expressionStatement) > 0 && !node.async; +} +function BinaryLike(node, parent, parentId, nodeType) { + if (isClassExtendsClause(node, parent, parentId)) { + return true; + } + if (hasPostfixPart(node, parent, parentId) || parentId === 238 || parentId === 145 || parentId === 8) { + return true; + } + let parentPos; + switch (parentId) { + case 10: + case 107: + parentPos = PRECEDENCE.get(parent.operator); + break; + case 156: + case 201: + parentPos = 7; + } + if (parentPos !== undefined) { + const nodePos = nodeType === 2 ? 7 : PRECEDENCE.get(node.operator); + if (parentPos > nodePos) return true; + if (parentPos === nodePos && parentId === 10 && (nodePos === 11 ? parent.left === node : parent.right === node)) { + return true; + } + if (nodeType === 1 && parentId === 107 && (nodePos === 1 && parentPos !== 1 || parentPos === 1 && nodePos !== 1)) { + return true; + } + } + return false; +} +function UnionTypeAnnotation(node, parent, parentId) { + switch (parentId) { + case 4: + case 115: + case 90: + case 239: + return true; + } + return false; +} +function OptionalIndexedAccessType(node, parent, parentId) { + return parentId === 84 && parent.objectType === node; +} +function TSAsExpression(node, parent, parentId) { + if ((parentId === 6 || parentId === 7) && parent.left === node) { + return true; + } + if (parentId === 10 && (parent.operator === "|" || parent.operator === "&") && node === parent.left) { + return true; + } + return BinaryLike(node, parent, parentId, 2); +} +function TSConditionalType(node, parent, parentId) { + switch (parentId) { + case 155: + case 195: + case 211: + case 212: + return true; + case 175: + return parent.objectType === node; + case 181: + case 219: + return parent.types[0] === node; + case 161: + return parent.checkType === node || parent.extendsType === node; + } + return false; +} +function TSUnionType(node, parent, parentId) { + switch (parentId) { + case 181: + case 211: + case 155: + case 195: + return true; + case 175: + return parent.objectType === node; + } + return false; +} +function TSIntersectionType(node, parent, parentId) { + return parentId === 211 || TSTypeOperator(node, parent, parentId); +} +function TSInferType(node, parent, parentId) { + if (TSTypeOperator(node, parent, parentId)) { + return true; + } + if ((parentId === 181 || parentId === 219) && node.typeParameter.constraint && parent.types[0] === node) { + return true; + } + return false; +} +function TSTypeOperator(node, parent, parentId) { + switch (parentId) { + case 155: + case 195: + return true; + case 175: + if (parent.objectType === node) { + return true; + } + } + return false; +} +function TSInstantiationExpression(node, parent, parentId) { + switch (parentId) { + case 17: + case 130: + case 112: + case 177: + return (parent.typeParameters + ) != null; + } + return false; +} +function TSFunctionType(node, parent, parentId) { + if (TSUnionType(node, parent, parentId)) return true; + return parentId === 219 || parentId === 161 && (parent.checkType === node || parent.extendsType === node); +} +function BinaryExpression(node, parent, parentId, tokenContext) { + if (BinaryLike(node, parent, parentId, 0)) return true; + return (tokenContext & _index.TokenContext.forInOrInitHeadAccumulate) > 0 && node.operator === "in"; +} +function LogicalExpression(node, parent, parentId) { + return BinaryLike(node, parent, parentId, 1); +} +function SequenceExpression(node, parent, parentId) { + if (parentId === 144 || parentId === 133 || parentId === 108 && parent.property === node || parentId === 132 && parent.property === node || parentId === 224) { + return false; + } + if (parentId === 21) { + return true; + } + if (parentId === 68) { + return parent.right === node; + } + if (parentId === 60) { + return true; + } + return !isStatement(parent); +} +function YieldExpression(node, parent, parentId) { + return parentId === 10 || parentId === 107 || parentId === 238 || parentId === 145 || hasPostfixPart(node, parent, parentId) || parentId === 8 && isYieldExpression(node) || parentId === 28 && node === parent.test || isClassExtendsClause(node, parent, parentId) || isTSTypeExpression(parentId); +} +function ClassExpression(node, parent, parentId, tokenContext) { + return (tokenContext & (_index.TokenContext.expressionStatement | _index.TokenContext.exportDefault)) > 0; +} +function UnaryLike(node, parent, parentId) { + return hasPostfixPart(node, parent, parentId) || parentId === 10 && parent.operator === "**" && parent.left === node || isClassExtendsClause(node, parent, parentId); +} +function FunctionExpression(node, parent, parentId, tokenContext) { + return (tokenContext & (_index.TokenContext.expressionStatement | _index.TokenContext.exportDefault)) > 0; +} +function ConditionalExpression(node, parent, parentId) { + switch (parentId) { + case 238: + case 145: + case 10: + case 107: + case 8: + return true; + case 28: + if (parent.test === node) { + return true; + } + } + if (isTSTypeExpression(parentId)) { + return true; + } + return UnaryLike(node, parent, parentId); +} +function OptionalMemberExpression(node, parent, parentId) { + switch (parentId) { + case 17: + return parent.callee === node; + case 108: + return parent.object === node; + } + return false; +} +function AssignmentExpression(node, parent, parentId, tokenContext) { + if (needsParenBeforeExpressionBrace(tokenContext) && node.left.type === "ObjectPattern") { + return true; + } + return ConditionalExpression(node, parent, parentId); +} +function Identifier(node, parent, parentId, tokenContext, getRawIdentifier) { + var _node$extra; + if (getRawIdentifier && getRawIdentifier(node) !== node.name) { + return false; + } + if (parentId === 6 && (_node$extra = node.extra) != null && _node$extra.parenthesized && parent.left === node) { + const rightType = parent.right.type; + if ((rightType === "FunctionExpression" || rightType === "ClassExpression") && parent.right.id == null) { + return true; + } + } + if (tokenContext & _index.TokenContext.forOfHead || (parentId === 108 || parentId === 132) && tokenContext & (_index.TokenContext.expressionStatement | _index.TokenContext.forInitHead | _index.TokenContext.forInHead)) { + if (node.name === "let") { + const isFollowedByBracket = isMemberExpression(parent, { + object: node, + computed: true + }) || isOptionalMemberExpression(parent, { + object: node, + computed: true, + optional: false + }); + if (isFollowedByBracket && tokenContext & (_index.TokenContext.expressionStatement | _index.TokenContext.forInitHead | _index.TokenContext.forInHead)) { + return true; + } + return (tokenContext & _index.TokenContext.forOfHead) > 0; + } + } + return parentId === 68 && parent.left === node && node.name === "async" && !parent.await; +} + +//# sourceMappingURL=parentheses.js.map diff --git a/server/api/node_modules/@babel/generator/lib/node/parentheses.js.map b/server/api/node_modules/@babel/generator/lib/node/parentheses.js.map new file mode 100644 index 0000000..0120e9c --- /dev/null +++ b/server/api/node_modules/@babel/generator/lib/node/parentheses.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_t","require","_index","isMemberExpression","isOptionalMemberExpression","isYieldExpression","isStatement","PRECEDENCE","Map","isTSTypeExpression","nodeId","isClassExtendsClause","node","parent","parentId","superClass","hasPostfixPart","object","callee","tag","NullableTypeAnnotation","FunctionTypeAnnotation","tokenContext","TokenContext","arrowFlowReturnType","UpdateExpression","needsParenBeforeExpressionBrace","expressionStatement","arrowBody","ObjectExpression","DoExpression","async","BinaryLike","nodeType","parentPos","get","operator","undefined","nodePos","left","right","UnionTypeAnnotation","OptionalIndexedAccessType","objectType","TSAsExpression","TSConditionalType","types","checkType","extendsType","TSUnionType","TSIntersectionType","TSTypeOperator","TSInferType","typeParameter","constraint","TSInstantiationExpression","typeParameters","TSFunctionType","BinaryExpression","forInOrInitHeadAccumulate","LogicalExpression","SequenceExpression","property","YieldExpression","test","ClassExpression","exportDefault","UnaryLike","FunctionExpression","ConditionalExpression","OptionalMemberExpression","AssignmentExpression","type","Identifier","getRawIdentifier","_node$extra","name","extra","parenthesized","rightType","id","forOfHead","forInitHead","forInHead","isFollowedByBracket","computed","optional","await"],"sources":["../../src/node/parentheses.ts"],"sourcesContent":["import {\n isMemberExpression,\n isOptionalMemberExpression,\n isYieldExpression,\n isStatement,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\n\nimport { TokenContext } from \"./index.ts\";\n\nconst PRECEDENCE = new Map([\n [\"||\", 0],\n [\"??\", 1],\n [\"&&\", 2],\n [\"|\", 3],\n [\"^\", 4],\n [\"&\", 5],\n [\"==\", 6],\n [\"===\", 6],\n [\"!=\", 6],\n [\"!==\", 6],\n [\"<\", 7],\n [\">\", 7],\n [\"<=\", 7],\n [\">=\", 7],\n [\"in\", 7],\n [\"instanceof\", 7],\n [\">>\", 8],\n [\"<<\", 8],\n [\">>>\", 8],\n [\"+\", 9],\n [\"-\", 9],\n [\"*\", 10],\n [\"/\", 10],\n [\"%\", 10],\n [\"**\", 11],\n]);\n\nfunction isTSTypeExpression(nodeId: number) {\n return (\n nodeId === __node(\"TSAsExpression\") ||\n nodeId === __node(\"TSSatisfiesExpression\") ||\n nodeId === __node(\"TSTypeAssertion\")\n );\n}\n\nconst isClassExtendsClause = (\n node: t.Node,\n parent: any,\n parentId: number,\n): parent is t.Class => {\n return (\n (parentId === __node(\"ClassDeclaration\") ||\n parentId === __node(\"ClassExpression\")) &&\n parent.superClass === node\n );\n};\n\nconst hasPostfixPart = (node: t.Node, parent: any, parentId: number) => {\n switch (parentId) {\n case __node(\"MemberExpression\"):\n case __node(\"OptionalMemberExpression\"):\n return parent.object === node;\n case __node(\"CallExpression\"):\n case __node(\"OptionalCallExpression\"):\n case __node(\"NewExpression\"):\n return parent.callee === node;\n case __node(\"TaggedTemplateExpression\"):\n return parent.tag === node;\n case __node(\"TSNonNullExpression\"):\n return true;\n }\n\n return false;\n};\n\nexport function NullableTypeAnnotation(\n node: t.NullableTypeAnnotation,\n parent: any,\n parentId: number,\n): boolean {\n return parentId === __node(\"ArrayTypeAnnotation\");\n}\n\nexport function FunctionTypeAnnotation(\n node: t.FunctionTypeAnnotation,\n parent: any,\n parentId: number,\n tokenContext: number,\n): boolean {\n return (\n // (() => A) | (() => B)\n parentId === __node(\"UnionTypeAnnotation\") ||\n // (() => A) & (() => B)\n parentId === __node(\"IntersectionTypeAnnotation\") ||\n // (() => A)[]\n parentId === __node(\"ArrayTypeAnnotation\") ||\n (tokenContext & TokenContext.arrowFlowReturnType) > 0\n );\n}\n\nexport function UpdateExpression(\n node: t.UpdateExpression,\n parent: any,\n parentId: number,\n): boolean {\n return (\n hasPostfixPart(node, parent, parentId) ||\n isClassExtendsClause(node, parent, parentId)\n );\n}\n\nfunction needsParenBeforeExpressionBrace(tokenContext: number) {\n return (\n (tokenContext &\n (TokenContext.expressionStatement | TokenContext.arrowBody)) >\n 0\n );\n}\n\nexport function ObjectExpression(\n node: t.ObjectExpression,\n parent: any,\n parentId: number,\n tokenContext: number,\n): boolean {\n return needsParenBeforeExpressionBrace(tokenContext);\n}\n\nexport function DoExpression(\n node: t.DoExpression,\n parent: any,\n parentId: number,\n tokenContext: number,\n): boolean {\n // `async do` can start an expression statement\n return (tokenContext & TokenContext.expressionStatement) > 0 && !node.async;\n}\n\nconst enum BinaryLikeType {\n Binary = 0,\n Logical = 1,\n TypeScript = 2,\n}\n\nfunction BinaryLike(\n node: t.Binary | t.TSAsExpression | t.TSSatisfiesExpression,\n parent: any,\n parentId: number,\n nodeType: BinaryLikeType,\n): boolean {\n if (isClassExtendsClause(node, parent, parentId)) {\n return true;\n }\n\n if (\n hasPostfixPart(node, parent, parentId) ||\n parentId === __node(\"UnaryExpression\") ||\n parentId === __node(\"SpreadElement\") ||\n parentId === __node(\"AwaitExpression\")\n ) {\n return true;\n }\n let parentPos: number | undefined;\n switch (parentId) {\n case __node(\"BinaryExpression\"):\n case __node(\"LogicalExpression\"):\n parentPos = PRECEDENCE.get(parent.operator);\n break;\n case __node(\"TSAsExpression\"):\n case __node(\"TSSatisfiesExpression\"):\n parentPos = 7; /* in */\n }\n if (parentPos !== undefined) {\n const nodePos =\n nodeType === BinaryLikeType.TypeScript\n ? 7 /* in */\n : PRECEDENCE.get((node as t.Binary).operator)!;\n if (parentPos > nodePos) return true;\n if (\n parentPos === nodePos &&\n parentId === __node(\"BinaryExpression\") &&\n (nodePos === 11 /* ** */ ? parent.left === node : parent.right === node)\n ) {\n return true;\n }\n if (\n nodeType === BinaryLikeType.Logical &&\n parentId === __node(\"LogicalExpression\") &&\n // 1: ??\n ((nodePos === 1 && parentPos !== 1) || (parentPos === 1 && nodePos !== 1))\n ) {\n return true;\n }\n }\n return false;\n}\n\nexport function UnionTypeAnnotation(\n node: t.UnionTypeAnnotation | t.IntersectionTypeAnnotation,\n parent: any,\n parentId: number,\n): boolean {\n switch (parentId) {\n case __node(\"ArrayTypeAnnotation\"):\n case __node(\"NullableTypeAnnotation\"):\n case __node(\"IntersectionTypeAnnotation\"):\n case __node(\"UnionTypeAnnotation\"):\n return true;\n }\n return false;\n}\n\nexport { UnionTypeAnnotation as IntersectionTypeAnnotation };\n\nexport function OptionalIndexedAccessType(\n node: t.OptionalIndexedAccessType,\n parent: any,\n parentId: number,\n): boolean {\n return parentId === __node(\"IndexedAccessType\") && parent.objectType === node;\n}\n\nexport function TSAsExpression(\n node: t.TSAsExpression | t.TSSatisfiesExpression,\n parent: any,\n parentId: number,\n): boolean {\n if (\n (parentId === __node(\"AssignmentExpression\") ||\n parentId === __node(\"AssignmentPattern\")) &&\n parent.left === node\n ) {\n return true;\n }\n if (\n parentId === __node(\"BinaryExpression\") &&\n (parent.operator === \"|\" || parent.operator === \"&\") &&\n node === parent.left\n ) {\n return true;\n }\n return BinaryLike(node, parent, parentId, BinaryLikeType.TypeScript);\n}\n\nexport { TSAsExpression as TSSatisfiesExpression };\n\nexport { UnaryLike as TSTypeAssertion };\n\nexport function TSConditionalType(\n node: t.TSConditionalType,\n parent: any,\n parentId: number,\n): boolean {\n switch (parentId) {\n case __node(\"TSArrayType\"):\n case __node(\"TSOptionalType\"):\n case __node(\"TSTypeOperator\"):\n // for `infer K extends (L extends M ? M : ...)`\n // fallthrough\n case __node(\"TSTypeParameter\"):\n return true;\n case __node(\"TSIndexedAccessType\"):\n return parent.objectType === node;\n case __node(\"TSIntersectionType\"):\n case __node(\"TSUnionType\"):\n return parent.types[0] === node;\n case __node(\"TSConditionalType\"):\n return parent.checkType === node || parent.extendsType === node;\n }\n return false;\n}\n\nexport function TSUnionType(\n node: t.TSUnionType | t.TSFunctionType,\n parent: any,\n parentId: number,\n): boolean {\n switch (parentId) {\n case __node(\"TSIntersectionType\"):\n case __node(\"TSTypeOperator\"):\n case __node(\"TSArrayType\"):\n case __node(\"TSOptionalType\"):\n return true;\n case __node(\"TSIndexedAccessType\"):\n return parent.objectType === node;\n }\n return false;\n}\n\nexport function TSIntersectionType(\n node: t.TSUnionType,\n parent: any,\n parentId: number,\n): boolean {\n return (\n parentId === __node(\"TSTypeOperator\") ||\n TSTypeOperator(node, parent, parentId)\n );\n}\n\nexport function TSInferType(\n node: t.TSInferType,\n parent: any,\n parentId: number,\n): boolean {\n if (TSTypeOperator(node, parent, parentId)) {\n return true;\n }\n if (\n (parentId === __node(\"TSIntersectionType\") ||\n parentId === __node(\"TSUnionType\")) &&\n node.typeParameter.constraint &&\n parent.types[0] === node\n ) {\n return true;\n }\n return false;\n}\n\nexport function TSTypeOperator(\n node: t.TSTypeOperator | t.TSUnionType | t.TSInferType,\n parent: any,\n parentId: number,\n): boolean {\n switch (parentId) {\n case __node(\"TSArrayType\"):\n case __node(\"TSOptionalType\"):\n return true;\n case __node(\"TSIndexedAccessType\"):\n if (parent.objectType === node) {\n return true;\n }\n }\n return false;\n}\n\nexport function TSInstantiationExpression(\n node: t.TSInstantiationExpression,\n parent: any,\n parentId: number,\n) {\n switch (parentId) {\n case __node(\"CallExpression\"):\n case __node(\"OptionalCallExpression\"):\n case __node(\"NewExpression\"):\n case __node(\"TSInstantiationExpression\"):\n return (\n (process.env.BABEL_8_BREAKING\n ? // @ts-ignore(Babel 7 vs Babel 8) Babel 8 AST\n parent.typeArguments\n : // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST\n parent.typeParameters) != null\n );\n }\n\n return false;\n}\n\nexport function TSFunctionType(\n node: t.TSFunctionType,\n parent: any,\n parentId: number,\n): boolean {\n if (TSUnionType(node, parent, parentId)) return true;\n\n return (\n parentId === __node(\"TSUnionType\") ||\n (parentId === __node(\"TSConditionalType\") &&\n (parent.checkType === node || parent.extendsType === node))\n );\n}\n\nexport { TSFunctionType as TSConstructorType };\n\nexport function BinaryExpression(\n node: t.BinaryExpression,\n parent: any,\n parentId: number,\n tokenContext: number,\n): boolean {\n if (BinaryLike(node, parent, parentId, BinaryLikeType.Binary)) return true;\n\n // for ((1 in []);;);\n // for (var x = (1 in []) in 2);\n return (\n (tokenContext & TokenContext.forInOrInitHeadAccumulate) > 0 &&\n node.operator === \"in\"\n );\n}\n\nexport function LogicalExpression(\n node: t.LogicalExpression,\n parent: any,\n parentId: number,\n): boolean {\n return BinaryLike(node, parent, parentId, BinaryLikeType.Logical);\n}\n\nexport function SequenceExpression(\n node: t.SequenceExpression,\n parent: any,\n parentId: number,\n): boolean {\n if (\n parentId === __node(\"SequenceExpression\") ||\n parentId === __node(\"ParenthesizedExpression\") ||\n (parentId === __node(\"MemberExpression\") && parent.property === node) ||\n (parentId === __node(\"OptionalMemberExpression\") &&\n parent.property === node) ||\n parentId === __node(\"TemplateLiteral\")\n ) {\n return false;\n }\n if (parentId === __node(\"ClassDeclaration\")) {\n return true;\n }\n if (parentId === __node(\"ForOfStatement\")) {\n return parent.right === node;\n }\n if (parentId === __node(\"ExportDefaultDeclaration\")) {\n return true;\n }\n\n return !isStatement(parent);\n}\n\nexport function YieldExpression(\n node: t.YieldExpression,\n parent: any,\n parentId: number,\n): boolean {\n return (\n parentId === __node(\"BinaryExpression\") ||\n parentId === __node(\"LogicalExpression\") ||\n parentId === __node(\"UnaryExpression\") ||\n parentId === __node(\"SpreadElement\") ||\n hasPostfixPart(node, parent, parentId) ||\n (parentId === __node(\"AwaitExpression\") && isYieldExpression(node)) ||\n (parentId === __node(\"ConditionalExpression\") && node === parent.test) ||\n isClassExtendsClause(node, parent, parentId) ||\n isTSTypeExpression(parentId)\n );\n}\n\nexport { YieldExpression as AwaitExpression };\n\nexport function ClassExpression(\n node: t.ClassExpression,\n parent: any,\n parentId: number,\n tokenContext: number,\n): boolean {\n return (\n (tokenContext &\n (TokenContext.expressionStatement | TokenContext.exportDefault)) >\n 0\n );\n}\n\nfunction UnaryLike(\n node:\n | t.UnaryLike\n | t.TSTypeAssertion\n | t.ArrowFunctionExpression\n | t.ConditionalExpression\n | t.AssignmentExpression,\n parent: any,\n parentId: number,\n): boolean {\n return (\n hasPostfixPart(node, parent, parentId) ||\n (parentId === __node(\"BinaryExpression\") &&\n parent.operator === \"**\" &&\n parent.left === node) ||\n isClassExtendsClause(node, parent, parentId)\n );\n}\n\nexport { UnaryLike as UnaryExpression, UnaryLike as SpreadElement };\n\nexport function FunctionExpression(\n node: t.FunctionExpression,\n parent: any,\n parentId: number,\n tokenContext: number,\n): boolean {\n return (\n (tokenContext &\n (TokenContext.expressionStatement | TokenContext.exportDefault)) >\n 0\n );\n}\n\nexport function ConditionalExpression(\n node:\n | t.ConditionalExpression\n | t.ArrowFunctionExpression\n | t.AssignmentExpression,\n parent: any,\n parentId: number,\n): boolean {\n switch (parentId) {\n case __node(\"UnaryExpression\"):\n case __node(\"SpreadElement\"):\n case __node(\"BinaryExpression\"):\n case __node(\"LogicalExpression\"):\n case __node(\"AwaitExpression\"):\n return true;\n case __node(\"ConditionalExpression\"):\n if (parent.test === node) {\n return true;\n }\n }\n\n if (isTSTypeExpression(parentId)) {\n return true;\n }\n\n return UnaryLike(node, parent, parentId);\n}\n\nexport { ConditionalExpression as ArrowFunctionExpression };\n\nexport function OptionalMemberExpression(\n node: t.OptionalMemberExpression,\n parent: any,\n parentId: number,\n): boolean {\n switch (parentId) {\n case __node(\"CallExpression\"):\n return parent.callee === node;\n case __node(\"MemberExpression\"):\n return parent.object === node;\n }\n return false;\n}\n\nexport { OptionalMemberExpression as OptionalCallExpression };\n\nexport function AssignmentExpression(\n node: t.AssignmentExpression,\n parent: any,\n parentId: number,\n tokenContext: number,\n): boolean {\n if (\n needsParenBeforeExpressionBrace(tokenContext) &&\n node.left.type === \"ObjectPattern\"\n ) {\n return true;\n }\n return ConditionalExpression(node, parent, parentId);\n}\n\nexport function Identifier(\n node: t.Identifier,\n parent: any,\n parentId: number,\n tokenContext: number,\n getRawIdentifier: (node: t.Identifier) => string,\n): boolean {\n if (getRawIdentifier && getRawIdentifier(node) !== node.name) {\n return false;\n }\n\n // 13.15.2 AssignmentExpression RS: Evaluation\n // (fn) = function () {};\n if (\n parentId === __node(\"AssignmentExpression\") &&\n node.extra?.parenthesized &&\n parent.left === node\n ) {\n const rightType = parent.right.type;\n if (\n (rightType === \"FunctionExpression\" || rightType === \"ClassExpression\") &&\n parent.right.id == null\n ) {\n return true;\n }\n }\n\n // fast path\n if (\n tokenContext & TokenContext.forOfHead ||\n ((parentId === __node(\"MemberExpression\") ||\n parentId === __node(\"OptionalMemberExpression\")) &&\n tokenContext &\n (TokenContext.expressionStatement |\n TokenContext.forInitHead |\n TokenContext.forInHead))\n ) {\n // Non-strict code allows the identifier `let`, but it cannot occur as-is in\n // certain contexts to avoid ambiguity with contextual keyword `let`.\n if (node.name === \"let\") {\n // Some contexts only forbid `let [`, so check if the next token would\n // be the left bracket of a computed member expression.\n const isFollowedByBracket =\n isMemberExpression(parent, {\n object: node,\n computed: true,\n }) ||\n isOptionalMemberExpression(parent, {\n object: node,\n computed: true,\n optional: false,\n });\n if (\n isFollowedByBracket &&\n tokenContext &\n (TokenContext.expressionStatement |\n TokenContext.forInitHead |\n TokenContext.forInHead)\n ) {\n return true;\n }\n return (tokenContext & TokenContext.forOfHead) > 0;\n }\n }\n\n // ECMAScript specifically forbids a for-of loop from starting with the\n // token sequence `for (async of`, because it would be ambiguous with\n // `for (async of => {};;)`, so we need to add extra parentheses.\n return (\n parentId === __node(\"ForOfStatement\") &&\n parent.left === node &&\n node.name === \"async\" &&\n !parent.await\n );\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/generator/lib/nodes.js b/server/api/node_modules/@babel/generator/lib/nodes.js new file mode 100644 index 0000000..8754a38 --- /dev/null +++ b/server/api/node_modules/@babel/generator/lib/nodes.js @@ -0,0 +1,19 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.generatorInfosMap = void 0; +var generatorFunctions = require("./generators/index.js"); +var deprecatedGeneratorFunctions = require("./generators/deprecated.js"); +const generatorInfosMap = exports.generatorInfosMap = new Map(); +let index = 0; +for (const key of Object.keys(generatorFunctions).sort()) { + if (key.startsWith("_")) continue; + generatorInfosMap.set(key, [generatorFunctions[key], index++, undefined]); +} +for (const key of Object.keys(deprecatedGeneratorFunctions)) { + generatorInfosMap.set(key, [deprecatedGeneratorFunctions[key], index++, undefined]); +} + +//# sourceMappingURL=nodes.js.map diff --git a/server/api/node_modules/@babel/generator/lib/nodes.js.map b/server/api/node_modules/@babel/generator/lib/nodes.js.map new file mode 100644 index 0000000..6aa8283 --- /dev/null +++ b/server/api/node_modules/@babel/generator/lib/nodes.js.map @@ -0,0 +1 @@ +{"version":3,"names":["generatorFunctions","require","deprecatedGeneratorFunctions","generatorInfosMap","exports","Map","index","key","Object","keys","sort","startsWith","set","undefined"],"sources":["../src/nodes.ts"],"sourcesContent":["import type * as t from \"@babel/types\";\n\nimport * as generatorFunctions from \"./generators/index.ts\";\nimport * as deprecatedGeneratorFunctions from \"./generators/deprecated.ts\";\nimport type { NodeHandler } from \"./node/index.ts\";\nimport type Printer from \"./printer.ts\";\n\ndeclare global {\n function __node(type: t.Node[\"type\"]): number;\n}\n\nconst generatorInfosMap = new Map<\n string,\n [\n (this: Printer, node: t.Node, parent?: t.Node | null) => void,\n number,\n NodeHandler | undefined,\n ]\n>();\nlet index = 0;\n\nfor (const key of Object.keys(generatorFunctions).sort() as Exclude<\n keyof typeof generatorFunctions,\n `_${string}`\n>[]) {\n if (key.startsWith(\"_\")) continue;\n generatorInfosMap.set(key, [generatorFunctions[key], index++, undefined]);\n}\nif (!process.env.BABEL_8_BREAKING) {\n for (const key of Object.keys(\n deprecatedGeneratorFunctions,\n ) as (keyof typeof deprecatedGeneratorFunctions)[]) {\n generatorInfosMap.set(key, [\n deprecatedGeneratorFunctions[key],\n index++,\n undefined,\n ]);\n }\n}\n\nexport { generatorInfosMap };\n"],"mappings":";;;;;;AAEA,IAAAA,kBAAA,GAAAC,OAAA;AACA,IAAAC,4BAAA,GAAAD,OAAA;AAQA,MAAME,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,GAAG,IAAIE,GAAG,CAO/B,CAAC;AACH,IAAIC,KAAK,GAAG,CAAC;AAEb,KAAK,MAAMC,GAAG,IAAIC,MAAM,CAACC,IAAI,CAACT,kBAAkB,CAAC,CAACU,IAAI,CAAC,CAAC,EAGnD;EACH,IAAIH,GAAG,CAACI,UAAU,CAAC,GAAG,CAAC,EAAE;EACzBR,iBAAiB,CAACS,GAAG,CAACL,GAAG,EAAE,CAACP,kBAAkB,CAACO,GAAG,CAAC,EAAED,KAAK,EAAE,EAAEO,SAAS,CAAC,CAAC;AAC3E;AAEE,KAAK,MAAMN,GAAG,IAAIC,MAAM,CAACC,IAAI,CAC3BP,4BACF,CAAC,EAAmD;EAClDC,iBAAiB,CAACS,GAAG,CAACL,GAAG,EAAE,CACzBL,4BAA4B,CAACK,GAAG,CAAC,EACjCD,KAAK,EAAE,EACPO,SAAS,CACV,CAAC;AACJ","ignoreList":[]} \ No newline at end of file diff --git a/server/api/node_modules/@babel/generator/lib/printer.js b/server/api/node_modules/@babel/generator/lib/printer.js new file mode 100644 index 0000000..ffdd45f --- /dev/null +++ b/server/api/node_modules/@babel/generator/lib/printer.js @@ -0,0 +1,782 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _buffer = require("./buffer.js"); +var _index = require("./node/index.js"); +var _nodes = require("./nodes.js"); +var _t = require("@babel/types"); +var _tokenMap = require("./token-map.js"); +var _types2 = require("./generators/types.js"); +const { + isExpression, + isFunction, + isStatement, + isClassBody, + isTSInterfaceBody, + isTSEnumMember +} = _t; +const SCIENTIFIC_NOTATION = /e/i; +const ZERO_DECIMAL_INTEGER = /\.0+$/; +const HAS_NEWLINE = /[\n\r\u2028\u2029]/; +const HAS_NEWLINE_OR_BlOCK_COMMENT_END = /[\n\r\u2028\u2029]|\*\//; +function commentIsNewline(c) { + return c.type === "CommentLine" || HAS_NEWLINE.test(c.value); +} +class Printer { + constructor(format, map, tokens = null, originalCode = null) { + this.tokenContext = _index.TokenContext.normal; + this._tokens = null; + this._originalCode = null; + this._currentNode = null; + this._currentTypeId = null; + this._indent = 0; + this._indentRepeat = 0; + this._insideAux = false; + this._noLineTerminator = false; + this._noLineTerminatorAfterNode = null; + this._printAuxAfterOnNextUserNode = false; + this._printedComments = new Set(); + this._lastCommentLine = 0; + this._innerCommentsState = 0; + this._flags = 0; + this.tokenMap = null; + this._boundGetRawIdentifier = null; + this._printSemicolonBeforeNextNode = -1; + this._printSemicolonBeforeNextToken = -1; + this.format = format; + this._tokens = tokens; + this._originalCode = originalCode; + this._indentRepeat = format.indent.style.length; + this._inputMap = (map == null ? void 0 : map._inputMap) || null; + this._buf = new _buffer.default(map, format.indent.style[0]); + const { + preserveFormat, + compact, + concise, + retainLines, + retainFunctionParens + } = format; + if (preserveFormat) { + this._flags |= 1; + } + if (compact) { + this._flags |= 2; + } + if (concise) { + this._flags |= 4; + } + if (retainLines) { + this._flags |= 8; + } + if (retainFunctionParens) { + this._flags |= 16; + } + if (format.auxiliaryCommentBefore || format.auxiliaryCommentAfter) { + this._flags |= 32; + } + } + enterDelimited() { + const oldNoLineTerminatorAfterNode = this._noLineTerminatorAfterNode; + if (oldNoLineTerminatorAfterNode !== null) { + this._noLineTerminatorAfterNode = null; + } + return oldNoLineTerminatorAfterNode; + } + generate(ast) { + if (this.format.preserveFormat) { + this.tokenMap = new _tokenMap.TokenMap(ast, this._tokens, this._originalCode); + this._boundGetRawIdentifier = _types2._getRawIdentifier.bind(this); + } + this.print(ast); + this._maybeAddAuxComment(); + return this._buf.get(); + } + indent(flags = this._flags) { + if (flags & (1 | 2 | 4)) { + return; + } + this._indent += this._indentRepeat; + } + dedent(flags = this._flags) { + if (flags & (1 | 2 | 4)) { + return; + } + this._indent -= this._indentRepeat; + } + semicolon(force = false) { + const flags = this._flags; + if (flags & 32) { + this._maybeAddAuxComment(); + } + if (flags & 1) { + const node = this._currentNode; + if (node.start != null && node.end != null) { + if (!this.tokenMap.endMatches(node, ";")) { + this._printSemicolonBeforeNextNode = this._buf.getCurrentLine(); + return; + } + const indexes = this.tokenMap.getIndexes(this._currentNode); + this._catchUpTo(this._tokens[indexes[indexes.length - 1]].loc.start); + } + } + if (force) { + this._appendChar(59); + } else { + this._queue(59); + } + this._noLineTerminator = false; + } + rightBrace(node) { + if (this.format.minified) { + this._buf.removeLastSemicolon(); + } + this.sourceWithOffset("end", node.loc, -1); + this.tokenChar(125); + } + rightParens(node) { + this.sourceWithOffset("end", node.loc, -1); + this.tokenChar(41); + } + space(force = false) { + if (this._flags & (1 | 2)) { + return; + } + if (force) { + this._space(); + } else { + const lastCp = this.getLastChar(true); + if (lastCp !== 0 && lastCp !== 32 && lastCp !== 10) { + this._space(); + } + } + } + word(str, noLineTerminatorAfter = false) { + this.tokenContext &= _index.TokenContext.forInOrInitHeadAccumulatePassThroughMask; + this._maybePrintInnerComments(str); + const flags = this._flags; + if (flags & 32) { + this._maybeAddAuxComment(); + } + if (flags & 1) this._catchUpToCurrentToken(str); + const lastChar = this.getLastChar(); + if (lastChar === -2 || lastChar === -3 || lastChar === 47 && str.charCodeAt(0) === 47) { + this._space(); + } + this._append(str, false); + this.setLastChar(-3); + this._noLineTerminator = noLineTerminatorAfter; + } + number(str, number) { + function isNonDecimalLiteral(str) { + if (str.length > 2 && str.charCodeAt(0) === 48) { + const secondChar = str.charCodeAt(1); + return secondChar === 98 || secondChar === 111 || secondChar === 120; + } + return false; + } + this.word(str); + if (Number.isInteger(number) && !isNonDecimalLiteral(str) && !SCIENTIFIC_NOTATION.test(str) && !ZERO_DECIMAL_INTEGER.test(str) && str.charCodeAt(str.length - 1) !== 46) { + this.setLastChar(-2); + } + } + token(str, maybeNewline = false, occurrenceCount = 0, mayNeedSpace = false) { + this.tokenContext &= _index.TokenContext.forInOrInitHeadAccumulatePassThroughMask; + this._maybePrintInnerComments(str, occurrenceCount); + const flags = this._flags; + if (flags & 32) { + this._maybeAddAuxComment(); + } + if (flags & 1) { + this._catchUpToCurrentToken(str, occurrenceCount); + } + if (mayNeedSpace) { + const strFirst = str.charCodeAt(0); + if ((strFirst === 45 && str === "--" || strFirst === 61) && this.getLastChar() === 33 || strFirst === 43 && this.getLastChar() === 43 || strFirst === 45 && this.getLastChar() === 45 || strFirst === 46 && this.getLastChar() === -2) { + this._space(); + } + } + this._append(str, maybeNewline); + this._noLineTerminator = false; + } + tokenChar(char, occurrenceCount = 0) { + this.tokenContext &= _index.TokenContext.forInOrInitHeadAccumulatePassThroughMask; + this._maybePrintInnerComments(char, occurrenceCount); + const flags = this._flags; + if (flags & 32) { + this._maybeAddAuxComment(); + } + if (flags & 1) { + this._catchUpToCurrentToken(char, occurrenceCount); + } + if (char === 43 && this.getLastChar() === 43 || char === 45 && this.getLastChar() === 45 || char === 46 && this.getLastChar() === -2) { + this._space(); + } + this._appendChar(char); + this._noLineTerminator = false; + } + newline(i = 1, flags = this._flags) { + if (i <= 0) return; + if (flags & (8 | 2)) { + return; + } + if (flags & 4) { + this.space(); + return; + } + if (i > 2) i = 2; + i -= this._buf.getNewlineCount(); + for (let j = 0; j < i; j++) { + this._newline(); + } + } + endsWith(char) { + return this.getLastChar(true) === char; + } + getLastChar(checkQueue) { + return this._buf.getLastChar(checkQueue); + } + setLastChar(char) { + this._buf._last = char; + } + exactSource(loc, cb) { + if (!loc) { + cb(); + return; + } + this._catchUp("start", loc); + this._buf.exactSource(loc, cb); + } + source(prop, loc) { + if (!loc) return; + this._catchUp(prop, loc); + this._buf.source(prop, loc); + } + sourceWithOffset(prop, loc, columnOffset) { + if (!loc || this.format.preserveFormat) return; + this._catchUp(prop, loc); + this._buf.sourceWithOffset(prop, loc, columnOffset); + } + sourceIdentifierName(identifierName, pos) { + if (!this._buf._canMarkIdName) return; + const sourcePosition = this._buf._sourcePosition; + sourcePosition.identifierNamePos = pos; + sourcePosition.identifierName = identifierName; + } + _space() { + this._queue(32); + } + _newline() { + if (this._buf._queuedChar === 32) this._buf._queuedChar = 0; + this._appendChar(10, true); + } + _catchUpToCurrentToken(str, occurrenceCount = 0) { + const token = this.tokenMap.findMatching(this._currentNode, str, occurrenceCount); + if (token) this._catchUpTo(token.loc.start); + if (this._printSemicolonBeforeNextToken !== -1 && this._printSemicolonBeforeNextToken === this._buf.getCurrentLine()) { + this._appendChar(59, true); + } + this._printSemicolonBeforeNextToken = -1; + this._printSemicolonBeforeNextNode = -1; + } + _append(str, maybeNewline) { + this._maybeIndent(); + this._buf.append(str, maybeNewline); + } + _appendChar(char, noIndent) { + if (!noIndent) { + this._maybeIndent(); + } + this._buf.appendChar(char); + } + _queue(char) { + this._buf.queue(char); + this.setLastChar(-1); + } + _maybeIndent() { + const indent = this._shouldIndent(); + if (indent > 0) { + this._buf._appendChar(-1, indent, false); + } + } + _shouldIndent() { + return this.endsWith(10) ? this._indent : 0; + } + catchUp(line) { + if (!this.format.retainLines) return; + const count = line - this._buf.getCurrentLine(); + for (let i = 0; i < count; i++) { + this._newline(); + } + } + _catchUp(prop, loc) { + const flags = this._flags; + if ((flags & 1) === 0) { + if (flags & 8 && loc != null && loc[prop]) { + this.catchUp(loc[prop].line); + } + return; + } + const pos = loc == null ? void 0 : loc[prop]; + if (pos != null) this._catchUpTo(pos); + } + _catchUpTo({ + line, + column, + index + }) { + const count = line - this._buf.getCurrentLine(); + if (count > 0 && this._noLineTerminator) { + return; + } + for (let i = 0; i < count; i++) { + this._newline(); + } + const spacesCount = count > 0 ? column : column - this._buf.getCurrentColumn(); + if (spacesCount > 0) { + const spaces = this._originalCode ? this._originalCode.slice(index - spacesCount, index).replace(/[^\t\x0B\f \xA0\u1680\u2000-\u200A\u202F\u205F\u3000\uFEFF]/gu, " ") : " ".repeat(spacesCount); + this._append(spaces, false); + this.setLastChar(32); + } + } + printTerminatorless(node) { + this._noLineTerminator = true; + this.print(node); + } + print(node, noLineTerminatorAfter = false, resetTokenContext = false, trailingCommentsLineOffset) { + var _node$leadingComments, _node$leadingComments2; + if (!node) return; + this._innerCommentsState = 0; + const { + type, + loc, + extra + } = node; + const flags = this._flags; + let changedFlags = false; + if (node._compact) { + this._flags |= 4; + changedFlags = true; + } + const nodeInfo = _nodes.generatorInfosMap.get(type); + if (nodeInfo === undefined) { + throw new ReferenceError(`unknown node of type ${JSON.stringify(type)} with constructor ${JSON.stringify(node.constructor.name)}`); + } + const [printMethod, nodeId, needsParens] = nodeInfo; + const parent = this._currentNode; + const parentId = this._currentTypeId; + this._currentNode = node; + this._currentTypeId = nodeId; + if (flags & 1) { + this._printSemicolonBeforeNextToken = this._printSemicolonBeforeNextNode; + } + let oldInAux; + if (flags & 32) { + oldInAux = this._insideAux; + this._insideAux = loc == null; + this._maybeAddAuxComment(this._insideAux && !oldInAux); + } + let oldTokenContext = 0; + if (resetTokenContext) { + oldTokenContext = this.tokenContext; + if (oldTokenContext & _index.TokenContext.forInOrInitHeadAccumulate) { + this.tokenContext = 0; + } else { + oldTokenContext = 0; + } + } + const parenthesized = extra != null && extra.parenthesized; + let shouldPrintParens = parenthesized && flags & 1 || parenthesized && flags & 16 && nodeId === 71 || parent && ((0, _index.parentNeedsParens)(node, parent, parentId) || needsParens != null && needsParens(node, parent, parentId, this.tokenContext, flags & 1 ? this._boundGetRawIdentifier : undefined)); + if (!shouldPrintParens && parenthesized && (_node$leadingComments = node.leadingComments) != null && _node$leadingComments.length && node.leadingComments[0].type === "CommentBlock") { + switch (parentId) { + case 65: + case 243: + case 6: + case 143: + break; + case 17: + case 130: + case 112: + if (parent.callee !== node) break; + default: + shouldPrintParens = true; + } + } + let indentParenthesized = false; + if (!shouldPrintParens && this._noLineTerminator && ((_node$leadingComments2 = node.leadingComments) != null && _node$leadingComments2.some(commentIsNewline) || flags & 8 && loc && loc.start.line > this._buf.getCurrentLine())) { + shouldPrintParens = true; + indentParenthesized = true; + } + let oldNoLineTerminatorAfterNode; + if (!shouldPrintParens) { + noLineTerminatorAfter || (noLineTerminatorAfter = !!parent && this._noLineTerminatorAfterNode === parent && (0, _index.isLastChild)(parent, node)); + if (noLineTerminatorAfter) { + var _node$trailingComment; + if ((_node$trailingComment = node.trailingComments) != null && _node$trailingComment.some(commentIsNewline)) { + if (isExpression(node)) shouldPrintParens = true; + } else { + oldNoLineTerminatorAfterNode = this._noLineTerminatorAfterNode; + this._noLineTerminatorAfterNode = node; + } + } + } + if (shouldPrintParens) { + this.tokenChar(40); + if (indentParenthesized) this.indent(); + this._innerCommentsState = 0; + if (!resetTokenContext) { + oldTokenContext = this.tokenContext; + } + if (oldTokenContext & _index.TokenContext.forInOrInitHeadAccumulate) { + this.tokenContext = 0; + } + oldNoLineTerminatorAfterNode = this._noLineTerminatorAfterNode; + this._noLineTerminatorAfterNode = null; + } + this._printLeadingComments(node, parent); + this.exactSource(nodeId === 139 || nodeId === 66 ? null : loc, printMethod.bind(this, node, parent)); + if (shouldPrintParens) { + this._printTrailingComments(node, parent); + if (indentParenthesized) { + this.dedent(); + this.newline(); + } + this.tokenChar(41); + this._noLineTerminator = noLineTerminatorAfter; + } else if (noLineTerminatorAfter && !this._noLineTerminator) { + this._noLineTerminator = true; + this._printTrailingComments(node, parent); + } else { + this._printTrailingComments(node, parent, trailingCommentsLineOffset); + } + if (oldTokenContext) this.tokenContext = oldTokenContext; + this._currentNode = parent; + this._currentTypeId = parentId; + if (changedFlags) { + this._flags = flags; + } + if (flags & 32) { + this._insideAux = oldInAux; + } + if (oldNoLineTerminatorAfterNode != null) { + this._noLineTerminatorAfterNode = oldNoLineTerminatorAfterNode; + } + this._innerCommentsState = 0; + } + _maybeAddAuxComment(enteredPositionlessNode) { + if (enteredPositionlessNode) this._printAuxBeforeComment(); + if (!this._insideAux) this._printAuxAfterComment(); + } + _printAuxBeforeComment() { + if (this._printAuxAfterOnNextUserNode) return; + this._printAuxAfterOnNextUserNode = true; + const comment = this.format.auxiliaryCommentBefore; + if (comment) { + this._printComment({ + type: "CommentBlock", + value: comment + }, 0); + } + } + _printAuxAfterComment() { + if (!this._printAuxAfterOnNextUserNode) return; + this._printAuxAfterOnNextUserNode = false; + const comment = this.format.auxiliaryCommentAfter; + if (comment) { + this._printComment({ + type: "CommentBlock", + value: comment + }, 0); + } + } + getPossibleRaw(node) { + const extra = node.extra; + if ((extra == null ? void 0 : extra.raw) != null && extra.rawValue != null && node.value === extra.rawValue) { + return extra.raw; + } + } + printJoin(nodes, statement, indent, separator, printTrailingSeparator, resetTokenContext, trailingCommentsLineOffset) { + if (!(nodes != null && nodes.length)) return; + const flags = this._flags; + if (indent == null && flags & 8) { + var _nodes$0$loc; + const startLine = (_nodes$0$loc = nodes[0].loc) == null ? void 0 : _nodes$0$loc.start.line; + if (startLine != null && startLine !== this._buf.getCurrentLine()) { + indent = true; + } + } + if (indent) this.indent(flags); + const len = nodes.length; + for (let i = 0; i < len; i++) { + const node = nodes[i]; + if (!node) continue; + if (statement && i === 0 && this._buf.hasContent()) { + this.newline(1, flags); + } + this.print(node, false, resetTokenContext, trailingCommentsLineOffset || 0); + if (separator != null) { + if (i < len - 1) separator.call(this, i, false);else if (printTrailingSeparator) separator.call(this, i, true); + } + if (statement) { + if (i + 1 === len) { + this.newline(1, flags); + } else { + const lastCommentLine = this._lastCommentLine; + if (lastCommentLine > 0) { + var _nodes$loc; + const offset = (((_nodes$loc = nodes[i + 1].loc) == null ? void 0 : _nodes$loc.start.line) || 0) - lastCommentLine; + if (offset >= 0) { + this.newline(offset || 1, flags); + continue; + } + } + this.newline(1, flags); + } + } + } + if (indent) this.dedent(flags); + } + printAndIndentOnComments(node) { + const indent = node.leadingComments && node.leadingComments.length > 0; + if (indent) this.indent(); + this.print(node); + if (indent) this.dedent(); + } + printBlock(body) { + if (body.type !== "EmptyStatement") { + this.space(); + } + this.print(body); + } + _printTrailingComments(node, parent, lineOffset) { + const { + innerComments, + trailingComments + } = node; + if (innerComments != null && innerComments.length) { + this._printComments(2, innerComments, node, parent, lineOffset); + } + if (trailingComments != null && trailingComments.length) { + this._printComments(2, trailingComments, node, parent, lineOffset); + } else { + this._lastCommentLine = 0; + } + } + _printLeadingComments(node, parent) { + const comments = node.leadingComments; + if (!(comments != null && comments.length)) return; + this._printComments(0, comments, node, parent); + } + _maybePrintInnerComments(nextTokenStr, nextTokenOccurrenceCount) { + var _this$tokenMap; + const state = this._innerCommentsState; + switch (state & 3) { + case 0: + this._innerCommentsState = 1 | 4; + return; + case 1: + this.printInnerComments((state & 4) > 0, (_this$tokenMap = this.tokenMap) == null ? void 0 : _this$tokenMap.findMatching(this._currentNode, nextTokenStr, nextTokenOccurrenceCount)); + } + } + printInnerComments(indent = true, nextToken) { + const node = this._currentNode; + const comments = node.innerComments; + if (!(comments != null && comments.length)) { + this._innerCommentsState = 2; + return; + } + const hasSpace = this.endsWith(32); + if (indent) this.indent(); + switch (this._printComments(1, comments, node, undefined, undefined, nextToken)) { + case 2: + this._innerCommentsState = 2; + case 1: + if (hasSpace) this.space(); + } + if (indent) this.dedent(); + } + noIndentInnerCommentsHere() { + this._innerCommentsState &= ~4; + } + printSequence(nodes, indent, resetTokenContext, trailingCommentsLineOffset) { + this.printJoin(nodes, true, indent != null ? indent : false, undefined, undefined, resetTokenContext, trailingCommentsLineOffset); + } + printList(items, printTrailingSeparator, statement, indent, separator, resetTokenContext) { + this.printJoin(items, statement, indent, separator != null ? separator : commaSeparator, printTrailingSeparator, resetTokenContext); + } + shouldPrintTrailingComma(listEnd) { + if (!this.tokenMap) return null; + const listEndIndex = this.tokenMap.findLastIndex(this._currentNode, token => this.tokenMap.matchesOriginal(token, typeof listEnd === "number" ? String.fromCharCode(listEnd) : listEnd)); + if (listEndIndex <= 0) return null; + return this.tokenMap.matchesOriginal(this._tokens[listEndIndex - 1], ","); + } + _shouldPrintComment(comment, nextToken) { + if (comment.ignore) return 0; + if (this._printedComments.has(comment)) return 0; + if (this._noLineTerminator && HAS_NEWLINE_OR_BlOCK_COMMENT_END.test(comment.value)) { + return 2; + } + if (nextToken && this.tokenMap) { + const commentTok = this.tokenMap.find(this._currentNode, token => token.value === comment.value); + if (commentTok && commentTok.start > nextToken.start) { + return 2; + } + } + this._printedComments.add(comment); + if (!this.format.shouldPrintComment(comment.value)) { + return 0; + } + return 1; + } + _printComment(comment, skipNewLines) { + const noLineTerminator = this._noLineTerminator; + const isBlockComment = comment.type === "CommentBlock"; + const printNewLines = isBlockComment && skipNewLines !== 1 && !noLineTerminator; + if (printNewLines && this._buf.hasContent() && skipNewLines !== 2) { + this.newline(1); + } + switch (this.getLastChar(true)) { + case 47: + this._space(); + case 91: + case 123: + case 40: + break; + default: + this.space(); + } + let val; + if (isBlockComment) { + val = `/*${comment.value}*/`; + if (this.format.indent.adjustMultilineComment) { + var _comment$loc; + const offset = (_comment$loc = comment.loc) == null ? void 0 : _comment$loc.start.column; + if (offset) { + const newlineRegex = new RegExp("\\n\\s{1," + offset + "}", "g"); + val = val.replace(newlineRegex, "\n"); + } + if (this._flags & 4) { + val = val.replace(/\n(?!$)/g, `\n`); + } else { + let indentSize = this.format.retainLines ? 0 : this._buf.getCurrentColumn(); + if (this._shouldIndent() || this.format.retainLines) { + indentSize += this._indent; + } + val = val.replace(/\n(?!$)/g, `\n${" ".repeat(indentSize)}`); + } + } + } else if (!noLineTerminator) { + val = `//${comment.value}`; + } else { + val = `/*${comment.value}*/`; + } + this.source("start", comment.loc); + this._append(val, isBlockComment); + if (!isBlockComment && !noLineTerminator) { + this._newline(); + } + if (printNewLines && skipNewLines !== 3) { + this.newline(1); + } + } + _printComments(type, comments, node, parent, lineOffset = 0, nextToken) { + const nodeLoc = node.loc; + const len = comments.length; + let hasLoc = !!nodeLoc; + const nodeStartLine = hasLoc ? nodeLoc.start.line : 0; + const nodeEndLine = hasLoc ? nodeLoc.end.line : 0; + let lastLine = 0; + let leadingCommentNewline = 0; + const { + _noLineTerminator, + _flags + } = this; + for (let i = 0; i < len; i++) { + const comment = comments[i]; + const shouldPrint = this._shouldPrintComment(comment, nextToken); + if (shouldPrint === 2) { + return i === 0 ? 0 : 1; + } + if (hasLoc && comment.loc && shouldPrint === 1) { + const commentStartLine = comment.loc.start.line; + const commentEndLine = comment.loc.end.line; + if (type === 0) { + let offset = 0; + if (i === 0) { + if (this._buf.hasContent() && (comment.type === "CommentLine" || commentStartLine !== commentEndLine)) { + offset = leadingCommentNewline = 1; + } + } else { + offset = commentStartLine - lastLine; + } + lastLine = commentEndLine; + if (offset > 0 && !_noLineTerminator) { + this.newline(offset, _flags); + } + this._printComment(comment, 1); + if (i + 1 === len) { + const count = Math.max(nodeStartLine - lastLine, leadingCommentNewline); + if (count > 0 && !_noLineTerminator) { + this.newline(count, _flags); + } + lastLine = nodeStartLine; + } + } else if (type === 1) { + const offset = commentStartLine - (i === 0 ? nodeStartLine : lastLine); + lastLine = commentEndLine; + if (offset > 0 && !_noLineTerminator) { + this.newline(offset, _flags); + } + this._printComment(comment, 1); + if (i + 1 === len) { + const count = Math.min(1, nodeEndLine - lastLine); + if (count > 0 && !_noLineTerminator) { + this.newline(count, _flags); + } + lastLine = nodeEndLine; + } + } else { + const offset = commentStartLine - (i === 0 ? nodeEndLine - lineOffset : lastLine); + lastLine = commentEndLine; + if (offset > 0 && !_noLineTerminator) { + this.newline(offset, _flags); + } + this._printComment(comment, 1); + } + } else { + hasLoc = false; + if (shouldPrint !== 1) { + continue; + } + if (len === 1) { + const singleLine = comment.loc ? comment.loc.start.line === comment.loc.end.line : !HAS_NEWLINE.test(comment.value); + const shouldSkipNewline = singleLine && !isStatement(node) && !isClassBody(parent) && !isTSInterfaceBody(parent) && !isTSEnumMember(node); + if (type === 0) { + this._printComment(comment, shouldSkipNewline && node.type !== "ObjectExpression" || singleLine && isFunction(parent) && parent.body === node ? 1 : 0); + } else if (shouldSkipNewline && type === 2) { + this._printComment(comment, 1); + } else { + this._printComment(comment, 0); + } + } else if (type === 1 && !(node.type === "ObjectExpression" && node.properties.length > 1) && node.type !== "ClassBody" && node.type !== "TSInterfaceBody") { + this._printComment(comment, i === 0 ? 2 : i === len - 1 ? 3 : 0); + } else { + this._printComment(comment, 0); + } + } + } + if (type === 2 && hasLoc && lastLine) { + this._lastCommentLine = lastLine; + } + return 2; + } +} +var _default = exports.default = Printer; +function commaSeparator(occurrenceCount, last) { + this.tokenChar(44, occurrenceCount); + if (!last) this.space(); +} + +//# sourceMappingURL=printer.js.map diff --git a/server/api/node_modules/@babel/generator/lib/printer.js.map b/server/api/node_modules/@babel/generator/lib/printer.js.map new file mode 100644 index 0000000..1576929 --- /dev/null +++ b/server/api/node_modules/@babel/generator/lib/printer.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_buffer","require","_index","_nodes","_t","_tokenMap","_types2","isExpression","isFunction","isStatement","isClassBody","isTSInterfaceBody","isTSEnumMember","SCIENTIFIC_NOTATION","ZERO_DECIMAL_INTEGER","HAS_NEWLINE","HAS_NEWLINE_OR_BlOCK_COMMENT_END","commentIsNewline","c","type","test","value","Printer","constructor","format","map","tokens","originalCode","tokenContext","TokenContext","normal","_tokens","_originalCode","_currentNode","_currentTypeId","_indent","_indentRepeat","_insideAux","_noLineTerminator","_noLineTerminatorAfterNode","_printAuxAfterOnNextUserNode","_printedComments","Set","_lastCommentLine","_innerCommentsState","_flags","tokenMap","_boundGetRawIdentifier","_printSemicolonBeforeNextNode","_printSemicolonBeforeNextToken","indent","style","length","_inputMap","_buf","Buffer","preserveFormat","compact","concise","retainLines","retainFunctionParens","auxiliaryCommentBefore","auxiliaryCommentAfter","enterDelimited","oldNoLineTerminatorAfterNode","generate","ast","TokenMap","_getRawIdentifier","bind","print","_maybeAddAuxComment","get","flags","dedent","semicolon","force","node","start","end","endMatches","getCurrentLine","indexes","getIndexes","_catchUpTo","loc","_appendChar","_queue","rightBrace","minified","removeLastSemicolon","sourceWithOffset","token","rightParens","space","_space","lastCp","getLastChar","word","str","noLineTerminatorAfter","forInOrInitHeadAccumulatePassThroughMask","_maybePrintInnerComments","_catchUpToCurrentToken","lastChar","charCodeAt","_append","setLastChar","number","isNonDecimalLiteral","secondChar","Number","isInteger","maybeNewline","occurrenceCount","mayNeedSpace","strFirst","tokenChar","char","newline","i","getNewlineCount","j","_newline","endsWith","checkQueue","_last","exactSource","cb","_catchUp","source","prop","columnOffset","sourceIdentifierName","identifierName","pos","_canMarkIdName","sourcePosition","_sourcePosition","identifierNamePos","_queuedChar","findMatching","_maybeIndent","append","noIndent","appendChar","queue","_shouldIndent","catchUp","line","count","column","index","spacesCount","getCurrentColumn","spaces","slice","replace","repeat","printTerminatorless","resetTokenContext","trailingCommentsLineOffset","_node$leadingComments","_node$leadingComments2","extra","changedFlags","_compact","nodeInfo","generatorInfosMap","undefined","ReferenceError","JSON","stringify","name","printMethod","nodeId","needsParens","parent","parentId","oldInAux","oldTokenContext","forInOrInitHeadAccumulate","parenthesized","shouldPrintParens","parentNeedsParens","leadingComments","callee","indentParenthesized","some","isLastChild","_node$trailingComment","trailingComments","_printLeadingComments","_printTrailingComments","enteredPositionlessNode","_printAuxBeforeComment","_printAuxAfterComment","comment","_printComment","getPossibleRaw","raw","rawValue","printJoin","nodes","statement","separator","printTrailingSeparator","_nodes$0$loc","startLine","len","hasContent","call","lastCommentLine","_nodes$loc","offset","printAndIndentOnComments","printBlock","body","lineOffset","innerComments","_printComments","comments","nextTokenStr","nextTokenOccurrenceCount","_this$tokenMap","state","printInnerComments","nextToken","hasSpace","noIndentInnerCommentsHere","printSequence","printList","items","commaSeparator","shouldPrintTrailingComma","listEnd","listEndIndex","findLastIndex","matchesOriginal","String","fromCharCode","_shouldPrintComment","ignore","has","commentTok","find","add","shouldPrintComment","skipNewLines","noLineTerminator","isBlockComment","printNewLines","val","adjustMultilineComment","_comment$loc","newlineRegex","RegExp","indentSize","nodeLoc","hasLoc","nodeStartLine","nodeEndLine","lastLine","leadingCommentNewline","shouldPrint","commentStartLine","commentEndLine","Math","max","min","singleLine","shouldSkipNewline","properties","_default","exports","default","last"],"sources":["../src/printer.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unsafe-enum-comparison */\n\nimport Buffer from \"./buffer.ts\";\nimport type { Loc, Pos } from \"./buffer.ts\";\nimport { isLastChild, parentNeedsParens } from \"./node/index.ts\";\nimport { generatorInfosMap } from \"./nodes.ts\";\nimport type * as t from \"@babel/types\";\nimport {\n isExpression,\n isFunction,\n isStatement,\n isClassBody,\n isTSInterfaceBody,\n isTSEnumMember,\n} from \"@babel/types\";\nimport type { Opts as jsescOptions } from \"jsesc\";\n\nimport { TokenMap } from \"./token-map.ts\";\n\nimport type { GeneratorOptions } from \"./index.ts\";\nimport type SourceMap from \"./source-map.ts\";\nimport type { TraceMap } from \"@jridgewell/trace-mapping\";\nimport type { Token } from \"@babel/parser\";\n\n// We inline this package\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport * as charCodes from \"charcodes\";\n\nconst SCIENTIFIC_NOTATION = /e/i;\nconst ZERO_DECIMAL_INTEGER = /\\.0+$/;\nconst HAS_NEWLINE = /[\\n\\r\\u2028\\u2029]/;\nconst HAS_NEWLINE_OR_BlOCK_COMMENT_END = /[\\n\\r\\u2028\\u2029]|\\*\\//;\n\nfunction commentIsNewline(c: t.Comment) {\n return c.type === \"CommentLine\" || HAS_NEWLINE.test(c.value);\n}\n\nimport { TokenContext } from \"./node/index.ts\";\nimport { _getRawIdentifier } from \"./generators/types.ts\";\n\nconst enum COMMENT_TYPE {\n LEADING,\n INNER,\n TRAILING,\n}\n\nconst enum COMMENT_SKIP_NEWLINE {\n DEFAULT,\n ALL,\n LEADING,\n TRAILING,\n}\n\nconst enum PRINT_COMMENT_HINT {\n SKIP,\n ALLOW,\n DEFER,\n}\n\nconst enum PRINTER_FLAGS {\n EMPTY = 0,\n PRESERVE_FORMAT = 1 << 0,\n COMPACT = 1 << 1,\n CONCISE = 1 << 2,\n RETAIN_LINES = 1 << 3,\n RETAIN_FUNCTION_PARENS = 1 << 4,\n AUX_COMMENTS = 1 << 5,\n}\n\nconst enum LAST_CHAR_KINDS {\n EMPTY = 0,\n NORMAL = -1,\n INTEGER = -2,\n WORD = -3,\n}\n\nconst enum INNER_COMMENTS_STATE {\n DISALLOWED = 0,\n ALLOWED = 1,\n PRINTED = 2,\n\n WITH_INDENT = 4,\n MASK = 3,\n}\n\nconst enum PRINT_COMMENTS_RESULT {\n PRINTED_NONE = 0,\n PRINTED_SOME = 1,\n PRINTED_ALL = 2,\n}\n\nexport type Format = {\n shouldPrintComment: (comment: string) => boolean;\n preserveFormat: boolean | undefined;\n retainLines: boolean | undefined;\n retainFunctionParens: boolean | undefined;\n comments: boolean | undefined;\n auxiliaryCommentBefore: string | undefined;\n auxiliaryCommentAfter: string | undefined;\n compact: boolean | \"auto\" | undefined;\n minified: boolean | undefined;\n concise: boolean | undefined;\n indent: {\n adjustMultilineComment: boolean;\n style: string;\n };\n /**\n * @deprecated Removed in Babel 8, syntax type is always 'hash'\n */\n recordAndTupleSyntaxType?: GeneratorOptions[\"recordAndTupleSyntaxType\"];\n jsescOption: jsescOptions;\n /**\n * @deprecated Removed in Babel 8, use `jsescOption` instead\n */\n jsonCompatibleStrings?: boolean;\n /**\n * For use with the Hack-style pipe operator.\n * Changes what token is used for pipe bodies’ topic references.\n */\n topicToken?: GeneratorOptions[\"topicToken\"];\n /**\n * @deprecated Removed in Babel 8\n */\n decoratorsBeforeExport?: boolean;\n /**\n * The import attributes syntax style:\n * - \"with\" : `import { a } from \"b\" with { type: \"json\" };`\n * - \"assert\" : `import { a } from \"b\" assert { type: \"json\" };`\n * - \"with-legacy\" : `import { a } from \"b\" with type: \"json\";`\n * @deprecated Removed in Babel 8.\n */\n importAttributesKeyword?: \"with\" | \"assert\" | \"with-legacy\";\n};\n\ninterface PrintSequenceOptions {\n statement?: boolean;\n indent?: boolean;\n trailingCommentsLineOffset?: number;\n}\n\ninterface PrintListOptions {\n separator?: (this: Printer, occurrenceCount: number, last: boolean) => void;\n statement?: boolean;\n indent?: boolean;\n printTrailingSeparator?: boolean;\n}\n\nexport type PrintJoinOptions = PrintListOptions & PrintSequenceOptions;\nclass Printer {\n constructor(\n format: Format,\n map: SourceMap | null,\n tokens: Token[] | null = null,\n originalCode: string | null = null,\n ) {\n this.format = format;\n\n this._tokens = tokens;\n this._originalCode = originalCode;\n\n this._indentRepeat = format.indent.style.length;\n\n this._inputMap = map?._inputMap || null;\n\n this._buf = new Buffer(map, format.indent.style[0]);\n\n const {\n preserveFormat,\n compact,\n concise,\n retainLines,\n retainFunctionParens,\n } = format;\n if (preserveFormat) {\n this._flags |= PRINTER_FLAGS.PRESERVE_FORMAT;\n }\n if (compact) {\n this._flags |= PRINTER_FLAGS.COMPACT;\n }\n if (concise) {\n this._flags |= PRINTER_FLAGS.CONCISE;\n }\n if (retainLines) {\n this._flags |= PRINTER_FLAGS.RETAIN_LINES;\n }\n if (retainFunctionParens) {\n this._flags |= PRINTER_FLAGS.RETAIN_FUNCTION_PARENS;\n }\n if (format.auxiliaryCommentBefore || format.auxiliaryCommentAfter) {\n this._flags |= PRINTER_FLAGS.AUX_COMMENTS;\n }\n }\n declare _inputMap: TraceMap | null;\n\n declare format: Format;\n\n enterDelimited() {\n const oldNoLineTerminatorAfterNode = this._noLineTerminatorAfterNode;\n if (oldNoLineTerminatorAfterNode !== null) {\n this._noLineTerminatorAfterNode = null;\n }\n return oldNoLineTerminatorAfterNode;\n }\n\n tokenContext: number = TokenContext.normal;\n\n _tokens: Token[] | null = null;\n _originalCode: string | null = null;\n\n declare _buf: Buffer;\n _currentNode: t.Node | null = null;\n _currentTypeId: number | null = null;\n _indent: number = 0;\n _indentRepeat: number = 0;\n _insideAux: boolean = false;\n _noLineTerminator: boolean = false;\n _noLineTerminatorAfterNode: t.Node | null = null;\n _printAuxAfterOnNextUserNode: boolean = false;\n _printedComments = new Set();\n _lastCommentLine = 0;\n _innerCommentsState = INNER_COMMENTS_STATE.DISALLOWED;\n _flags = PRINTER_FLAGS.EMPTY;\n\n tokenMap: TokenMap | null = null;\n\n _boundGetRawIdentifier: ((node: t.Identifier) => string) | null = null;\n\n generate(ast: t.Node) {\n if (this.format.preserveFormat) {\n this.tokenMap = new TokenMap(ast, this._tokens!, this._originalCode!);\n this._boundGetRawIdentifier = _getRawIdentifier.bind(this);\n }\n this.print(ast);\n this._maybeAddAuxComment();\n\n return this._buf.get();\n }\n\n /**\n * Increment indent size.\n */\n\n indent(flags = this._flags): void {\n if (\n flags &\n (PRINTER_FLAGS.PRESERVE_FORMAT |\n PRINTER_FLAGS.COMPACT |\n PRINTER_FLAGS.CONCISE)\n ) {\n return;\n }\n\n this._indent += this._indentRepeat;\n }\n\n /**\n * Decrement indent size.\n */\n\n dedent(flags = this._flags): void {\n if (\n flags &\n (PRINTER_FLAGS.PRESERVE_FORMAT |\n PRINTER_FLAGS.COMPACT |\n PRINTER_FLAGS.CONCISE)\n ) {\n return;\n }\n\n this._indent -= this._indentRepeat;\n }\n\n /**\n * If the next token is on the same line, we must first print a semicolon.\n * This option is only used in `preserveFormat` node, for semicolons that\n * might have omitted due to them being absent in the original code (thanks\n * to ASI).\n *\n * We need both *NextToken and *NextNode because we only want to insert the\n * semicolon when the next token starts a new node, and not in cases like\n * foo} (where } is not starting a new node). So we first set *NextNode, and\n * then the print() method will move it to *NextToken.\n */\n _printSemicolonBeforeNextNode: number = -1;\n _printSemicolonBeforeNextToken: number = -1;\n\n /**\n * Add a semicolon to the buffer.\n */\n semicolon(force: boolean = false): void {\n const flags = this._flags;\n if (flags & PRINTER_FLAGS.AUX_COMMENTS) {\n this._maybeAddAuxComment();\n }\n if (flags & PRINTER_FLAGS.PRESERVE_FORMAT) {\n const node = this._currentNode!;\n if (node.start != null && node.end != null) {\n if (!this.tokenMap!.endMatches(node, \";\")) {\n // no semicolon\n this._printSemicolonBeforeNextNode = this._buf.getCurrentLine();\n return;\n }\n const indexes = this.tokenMap!.getIndexes(this._currentNode!)!;\n this._catchUpTo(this._tokens![indexes[indexes.length - 1]].loc.start);\n }\n }\n if (force) {\n this._appendChar(charCodes.semicolon);\n } else {\n this._queue(charCodes.semicolon);\n }\n this._noLineTerminator = false;\n }\n\n /**\n * Add a right brace to the buffer.\n */\n\n rightBrace(node: t.Node): void {\n if (this.format.minified) {\n this._buf.removeLastSemicolon();\n }\n this.sourceWithOffset(\"end\", node.loc, -1);\n this.token(\"}\");\n }\n\n rightParens(node: t.Node): void {\n this.sourceWithOffset(\"end\", node.loc, -1);\n this.token(\")\");\n }\n\n /**\n * Add a space to the buffer unless it is compact.\n */\n\n space(force: boolean = false): void {\n if (this._flags & (PRINTER_FLAGS.PRESERVE_FORMAT | PRINTER_FLAGS.COMPACT)) {\n return;\n }\n\n if (force) {\n this._space();\n } else {\n const lastCp = this.getLastChar(true);\n if (\n lastCp !== 0 &&\n lastCp !== charCodes.space &&\n lastCp !== charCodes.lineFeed\n ) {\n this._space();\n }\n }\n }\n\n /**\n * Writes a token that can't be safely parsed without taking whitespace into account.\n */\n\n word(str: string, noLineTerminatorAfter: boolean = false): void {\n this.tokenContext &= TokenContext.forInOrInitHeadAccumulatePassThroughMask;\n\n this._maybePrintInnerComments(str);\n\n const flags = this._flags;\n if (flags & PRINTER_FLAGS.AUX_COMMENTS) {\n this._maybeAddAuxComment();\n }\n\n if (flags & PRINTER_FLAGS.PRESERVE_FORMAT) this._catchUpToCurrentToken(str);\n\n const lastChar = this.getLastChar();\n\n if (\n lastChar === LAST_CHAR_KINDS.INTEGER ||\n lastChar === LAST_CHAR_KINDS.WORD ||\n // prevent concatenating words and creating // comment out of division and regex\n (lastChar === charCodes.slash && str.charCodeAt(0) === charCodes.slash)\n ) {\n this._space();\n }\n this._append(str, false);\n\n this.setLastChar(-3);\n this._noLineTerminator = noLineTerminatorAfter;\n }\n\n /**\n * Writes a number token so that we can validate if it is an integer.\n */\n\n number(str: string, number?: number): void {\n // const NON_DECIMAL_LITERAL = /^0[box]/;\n function isNonDecimalLiteral(str: string) {\n if (str.length > 2 && str.charCodeAt(0) === charCodes.digit0) {\n const secondChar = str.charCodeAt(1);\n return (\n secondChar === charCodes.lowercaseB ||\n secondChar === charCodes.lowercaseO ||\n secondChar === charCodes.lowercaseX\n );\n }\n return false;\n }\n this.word(str);\n\n // Integer tokens need special handling because they cannot have '.'s inserted immediately after them.\n if (\n Number.isInteger(number) &&\n !isNonDecimalLiteral(str) &&\n !SCIENTIFIC_NOTATION.test(str) &&\n !ZERO_DECIMAL_INTEGER.test(str) &&\n str.charCodeAt(str.length - 1) !== charCodes.dot\n ) {\n this.setLastChar(LAST_CHAR_KINDS.INTEGER);\n }\n }\n\n /**\n * Writes a simple token.\n *\n * @param {string} str The string to append.\n * @param {boolean} [maybeNewline=false] Wether `str` might potentially\n * contain a line terminator or not.\n * @param {number} [occurrenceCount=0] The occurrence count of this token in\n * the current node. This is used when printing in `preserveFormat` mode,\n * to know which token we should map to (for example, to disambiguate the\n * commas in an array literal).\n */\n token(\n str: string,\n maybeNewline = false,\n occurrenceCount = 0,\n mayNeedSpace: boolean = false,\n ): void {\n this.tokenContext &= TokenContext.forInOrInitHeadAccumulatePassThroughMask;\n\n this._maybePrintInnerComments(str, occurrenceCount);\n\n const flags = this._flags;\n\n if (flags & PRINTER_FLAGS.AUX_COMMENTS) {\n this._maybeAddAuxComment();\n }\n\n if (flags & PRINTER_FLAGS.PRESERVE_FORMAT) {\n this._catchUpToCurrentToken(str, occurrenceCount);\n }\n\n if (mayNeedSpace) {\n const strFirst = str.charCodeAt(0);\n if (\n // space is mandatory to avoid outputting ` line comment\n const comment = this.skipLineComment(3);\n if (comment !== undefined) {\n this.addComment(comment);\n comments?.push(comment);\n }\n } else {\n break loop;\n }\n } else if (\n ch === charCodes.lessThan &&\n !this.inModule &&\n this.optionFlags & OptionFlags.AnnexB\n ) {\n const pos = this.state.pos;\n if (\n this.input.charCodeAt(pos + 1) === charCodes.exclamationMark &&\n this.input.charCodeAt(pos + 2) === charCodes.dash &&\n this.input.charCodeAt(pos + 3) === charCodes.dash\n ) {\n // ` + * + * For detailed information, see the documentation of `fs.mkdtemp()`. + * + * There is no callback-based version of this API because it is designed for use + * with the `using` syntax. + * + * The optional `options` argument can be a string specifying an encoding, or an + * object with an `encoding` property specifying the character encoding to use. + * @since v24.4.0 + */ + function mkdtempDisposableSync(prefix: string, options?: EncodingOption): DisposableTempDir; + /** + * Reads the contents of a directory. The callback gets two arguments `(err, files)` where `files` is an array of the names of the files in the directory excluding `'.'` and `'..'`. + * + * See the POSIX [`readdir(3)`](http://man7.org/linux/man-pages/man3/readdir.3.html) documentation for more details. + * + * The optional `options` argument can be a string specifying an encoding, or an + * object with an `encoding` property specifying the character encoding to use for + * the filenames passed to the callback. If the `encoding` is set to `'buffer'`, + * the filenames returned will be passed as `Buffer` objects. + * + * If `options.withFileTypes` is set to `true`, the `files` array will contain `fs.Dirent` objects. + * @since v0.1.8 + */ + function readdir( + path: PathLike, + options: + | { + encoding: BufferEncoding | null; + withFileTypes?: false | undefined; + recursive?: boolean | undefined; + } + | BufferEncoding + | undefined + | null, + callback: (err: NodeJS.ErrnoException | null, files: string[]) => void, + ): void; + /** + * Asynchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function readdir( + path: PathLike, + options: + | { + encoding: "buffer"; + withFileTypes?: false | undefined; + recursive?: boolean | undefined; + } + | "buffer", + callback: (err: NodeJS.ErrnoException | null, files: NonSharedBuffer[]) => void, + ): void; + /** + * Asynchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function readdir( + path: PathLike, + options: + | (ObjectEncodingOptions & { + withFileTypes?: false | undefined; + recursive?: boolean | undefined; + }) + | BufferEncoding + | undefined + | null, + callback: (err: NodeJS.ErrnoException | null, files: string[] | NonSharedBuffer[]) => void, + ): void; + /** + * Asynchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + function readdir( + path: PathLike, + callback: (err: NodeJS.ErrnoException | null, files: string[]) => void, + ): void; + /** + * Asynchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options If called with `withFileTypes: true` the result data will be an array of Dirent. + */ + function readdir( + path: PathLike, + options: ObjectEncodingOptions & { + withFileTypes: true; + recursive?: boolean | undefined; + }, + callback: (err: NodeJS.ErrnoException | null, files: Dirent[]) => void, + ): void; + /** + * Asynchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options Must include `withFileTypes: true` and `encoding: 'buffer'`. + */ + function readdir( + path: PathLike, + options: { + encoding: "buffer"; + withFileTypes: true; + recursive?: boolean | undefined; + }, + callback: (err: NodeJS.ErrnoException | null, files: Dirent[]) => void, + ): void; + namespace readdir { + /** + * Asynchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function __promisify__( + path: PathLike, + options?: + | { + encoding: BufferEncoding | null; + withFileTypes?: false | undefined; + recursive?: boolean | undefined; + } + | BufferEncoding + | null, + ): Promise; + /** + * Asynchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function __promisify__( + path: PathLike, + options: + | "buffer" + | { + encoding: "buffer"; + withFileTypes?: false | undefined; + recursive?: boolean | undefined; + }, + ): Promise; + /** + * Asynchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function __promisify__( + path: PathLike, + options?: + | (ObjectEncodingOptions & { + withFileTypes?: false | undefined; + recursive?: boolean | undefined; + }) + | BufferEncoding + | null, + ): Promise; + /** + * Asynchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options If called with `withFileTypes: true` the result data will be an array of Dirent + */ + function __promisify__( + path: PathLike, + options: ObjectEncodingOptions & { + withFileTypes: true; + recursive?: boolean | undefined; + }, + ): Promise; + /** + * Asynchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options Must include `withFileTypes: true` and `encoding: 'buffer'`. + */ + function __promisify__( + path: PathLike, + options: { + encoding: "buffer"; + withFileTypes: true; + recursive?: boolean | undefined; + }, + ): Promise[]>; + } + /** + * Reads the contents of the directory. + * + * See the POSIX [`readdir(3)`](http://man7.org/linux/man-pages/man3/readdir.3.html) documentation for more details. + * + * The optional `options` argument can be a string specifying an encoding, or an + * object with an `encoding` property specifying the character encoding to use for + * the filenames returned. If the `encoding` is set to `'buffer'`, + * the filenames returned will be passed as `Buffer` objects. + * + * If `options.withFileTypes` is set to `true`, the result will contain `fs.Dirent` objects. + * @since v0.1.21 + */ + function readdirSync( + path: PathLike, + options?: + | { + encoding: BufferEncoding | null; + withFileTypes?: false | undefined; + recursive?: boolean | undefined; + } + | BufferEncoding + | null, + ): string[]; + /** + * Synchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function readdirSync( + path: PathLike, + options: + | { + encoding: "buffer"; + withFileTypes?: false | undefined; + recursive?: boolean | undefined; + } + | "buffer", + ): NonSharedBuffer[]; + /** + * Synchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function readdirSync( + path: PathLike, + options?: + | (ObjectEncodingOptions & { + withFileTypes?: false | undefined; + recursive?: boolean | undefined; + }) + | BufferEncoding + | null, + ): string[] | NonSharedBuffer[]; + /** + * Synchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options If called with `withFileTypes: true` the result data will be an array of Dirent. + */ + function readdirSync( + path: PathLike, + options: ObjectEncodingOptions & { + withFileTypes: true; + recursive?: boolean | undefined; + }, + ): Dirent[]; + /** + * Synchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options Must include `withFileTypes: true` and `encoding: 'buffer'`. + */ + function readdirSync( + path: PathLike, + options: { + encoding: "buffer"; + withFileTypes: true; + recursive?: boolean | undefined; + }, + ): Dirent[]; + /** + * Closes the file descriptor. No arguments other than a possible exception are + * given to the completion callback. + * + * Calling `fs.close()` on any file descriptor (`fd`) that is currently in use + * through any other `fs` operation may lead to undefined behavior. + * + * See the POSIX [`close(2)`](http://man7.org/linux/man-pages/man2/close.2.html) documentation for more detail. + * @since v0.0.2 + */ + function close(fd: number, callback?: NoParamCallback): void; + namespace close { + /** + * Asynchronous close(2) - close a file descriptor. + * @param fd A file descriptor. + */ + function __promisify__(fd: number): Promise; + } + /** + * Closes the file descriptor. Returns `undefined`. + * + * Calling `fs.closeSync()` on any file descriptor (`fd`) that is currently in use + * through any other `fs` operation may lead to undefined behavior. + * + * See the POSIX [`close(2)`](http://man7.org/linux/man-pages/man2/close.2.html) documentation for more detail. + * @since v0.1.21 + */ + function closeSync(fd: number): void; + /** + * Asynchronous file open. See the POSIX [`open(2)`](http://man7.org/linux/man-pages/man2/open.2.html) documentation for more details. + * + * `mode` sets the file mode (permission and sticky bits), but only if the file was + * created. On Windows, only the write permission can be manipulated; see {@link chmod}. + * + * The callback gets two arguments `(err, fd)`. + * + * Some characters (`< > : " / \ | ? *`) are reserved under Windows as documented + * by [Naming Files, Paths, and Namespaces](https://docs.microsoft.com/en-us/windows/desktop/FileIO/naming-a-file). Under NTFS, if the filename contains + * a colon, Node.js will open a file system stream, as described by [this MSDN page](https://docs.microsoft.com/en-us/windows/desktop/FileIO/using-streams). + * + * Functions based on `fs.open()` exhibit this behavior as well:`fs.writeFile()`, `fs.readFile()`, etc. + * @since v0.0.2 + * @param [flags='r'] See `support of file system `flags``. + * @param [mode=0o666] + */ + function open( + path: PathLike, + flags: OpenMode | undefined, + mode: Mode | undefined | null, + callback: (err: NodeJS.ErrnoException | null, fd: number) => void, + ): void; + /** + * Asynchronous open(2) - open and possibly create a file. If the file is created, its mode will be `0o666`. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param [flags='r'] See `support of file system `flags``. + */ + function open( + path: PathLike, + flags: OpenMode | undefined, + callback: (err: NodeJS.ErrnoException | null, fd: number) => void, + ): void; + /** + * Asynchronous open(2) - open and possibly create a file. If the file is created, its mode will be `0o666`. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + function open(path: PathLike, callback: (err: NodeJS.ErrnoException | null, fd: number) => void): void; + namespace open { + /** + * Asynchronous open(2) - open and possibly create a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param mode A file mode. If a string is passed, it is parsed as an octal integer. If not supplied, defaults to `0o666`. + */ + function __promisify__(path: PathLike, flags: OpenMode, mode?: Mode | null): Promise; + } + /** + * Returns an integer representing the file descriptor. + * + * For detailed information, see the documentation of the asynchronous version of + * this API: {@link open}. + * @since v0.1.21 + * @param [flags='r'] + * @param [mode=0o666] + */ + function openSync(path: PathLike, flags: OpenMode, mode?: Mode | null): number; + /** + * Change the file system timestamps of the object referenced by `path`. + * + * The `atime` and `mtime` arguments follow these rules: + * + * * Values can be either numbers representing Unix epoch time in seconds, `Date`s, or a numeric string like `'123456789.0'`. + * * If the value can not be converted to a number, or is `NaN`, `Infinity`, or `-Infinity`, an `Error` will be thrown. + * @since v0.4.2 + */ + function utimes(path: PathLike, atime: TimeLike, mtime: TimeLike, callback: NoParamCallback): void; + namespace utimes { + /** + * Asynchronously change file timestamps of the file referenced by the supplied path. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param atime The last access time. If a string is provided, it will be coerced to number. + * @param mtime The last modified time. If a string is provided, it will be coerced to number. + */ + function __promisify__(path: PathLike, atime: TimeLike, mtime: TimeLike): Promise; + } + /** + * Returns `undefined`. + * + * For detailed information, see the documentation of the asynchronous version of + * this API: {@link utimes}. + * @since v0.4.2 + */ + function utimesSync(path: PathLike, atime: TimeLike, mtime: TimeLike): void; + /** + * Change the file system timestamps of the object referenced by the supplied file + * descriptor. See {@link utimes}. + * @since v0.4.2 + */ + function futimes(fd: number, atime: TimeLike, mtime: TimeLike, callback: NoParamCallback): void; + namespace futimes { + /** + * Asynchronously change file timestamps of the file referenced by the supplied file descriptor. + * @param fd A file descriptor. + * @param atime The last access time. If a string is provided, it will be coerced to number. + * @param mtime The last modified time. If a string is provided, it will be coerced to number. + */ + function __promisify__(fd: number, atime: TimeLike, mtime: TimeLike): Promise; + } + /** + * Synchronous version of {@link futimes}. Returns `undefined`. + * @since v0.4.2 + */ + function futimesSync(fd: number, atime: TimeLike, mtime: TimeLike): void; + /** + * Request that all data for the open file descriptor is flushed to the storage + * device. The specific implementation is operating system and device specific. + * Refer to the POSIX [`fsync(2)`](http://man7.org/linux/man-pages/man2/fsync.2.html) documentation for more detail. No arguments other + * than a possible exception are given to the completion callback. + * @since v0.1.96 + */ + function fsync(fd: number, callback: NoParamCallback): void; + namespace fsync { + /** + * Asynchronous fsync(2) - synchronize a file's in-core state with the underlying storage device. + * @param fd A file descriptor. + */ + function __promisify__(fd: number): Promise; + } + /** + * Request that all data for the open file descriptor is flushed to the storage + * device. The specific implementation is operating system and device specific. + * Refer to the POSIX [`fsync(2)`](http://man7.org/linux/man-pages/man2/fsync.2.html) documentation for more detail. Returns `undefined`. + * @since v0.1.96 + */ + function fsyncSync(fd: number): void; + interface WriteOptions { + /** + * @default 0 + */ + offset?: number | undefined; + /** + * @default `buffer.byteLength - offset` + */ + length?: number | undefined; + /** + * @default null + */ + position?: number | null | undefined; + } + /** + * Write `buffer` to the file specified by `fd`. + * + * `offset` determines the part of the buffer to be written, and `length` is + * an integer specifying the number of bytes to write. + * + * `position` refers to the offset from the beginning of the file where this data + * should be written. If `typeof position !== 'number'`, the data will be written + * at the current position. See [`pwrite(2)`](http://man7.org/linux/man-pages/man2/pwrite.2.html). + * + * The callback will be given three arguments `(err, bytesWritten, buffer)` where `bytesWritten` specifies how many _bytes_ were written from `buffer`. + * + * If this method is invoked as its `util.promisify()` ed version, it returns + * a promise for an `Object` with `bytesWritten` and `buffer` properties. + * + * It is unsafe to use `fs.write()` multiple times on the same file without waiting + * for the callback. For this scenario, {@link createWriteStream} is + * recommended. + * + * On Linux, positional writes don't work when the file is opened in append mode. + * The kernel ignores the position argument and always appends the data to + * the end of the file. + * @since v0.0.2 + * @param [offset=0] + * @param [length=buffer.byteLength - offset] + * @param [position='null'] + */ + function write( + fd: number, + buffer: TBuffer, + offset: number | undefined | null, + length: number | undefined | null, + position: number | undefined | null, + callback: (err: NodeJS.ErrnoException | null, written: number, buffer: TBuffer) => void, + ): void; + /** + * Asynchronously writes `buffer` to the file referenced by the supplied file descriptor. + * @param fd A file descriptor. + * @param offset The part of the buffer to be written. If not supplied, defaults to `0`. + * @param length The number of bytes to write. If not supplied, defaults to `buffer.length - offset`. + */ + function write( + fd: number, + buffer: TBuffer, + offset: number | undefined | null, + length: number | undefined | null, + callback: (err: NodeJS.ErrnoException | null, written: number, buffer: TBuffer) => void, + ): void; + /** + * Asynchronously writes `buffer` to the file referenced by the supplied file descriptor. + * @param fd A file descriptor. + * @param offset The part of the buffer to be written. If not supplied, defaults to `0`. + */ + function write( + fd: number, + buffer: TBuffer, + offset: number | undefined | null, + callback: (err: NodeJS.ErrnoException | null, written: number, buffer: TBuffer) => void, + ): void; + /** + * Asynchronously writes `buffer` to the file referenced by the supplied file descriptor. + * @param fd A file descriptor. + */ + function write( + fd: number, + buffer: TBuffer, + callback: (err: NodeJS.ErrnoException | null, written: number, buffer: TBuffer) => void, + ): void; + /** + * Asynchronously writes `buffer` to the file referenced by the supplied file descriptor. + * @param fd A file descriptor. + * @param options An object with the following properties: + * * `offset` The part of the buffer to be written. If not supplied, defaults to `0`. + * * `length` The number of bytes to write. If not supplied, defaults to `buffer.length - offset`. + * * `position` The offset from the beginning of the file where this data should be written. If not supplied, defaults to the current position. + */ + function write( + fd: number, + buffer: TBuffer, + options: WriteOptions, + callback: (err: NodeJS.ErrnoException | null, written: number, buffer: TBuffer) => void, + ): void; + /** + * Asynchronously writes `string` to the file referenced by the supplied file descriptor. + * @param fd A file descriptor. + * @param string A string to write. + * @param position The offset from the beginning of the file where this data should be written. If not supplied, defaults to the current position. + * @param encoding The expected string encoding. + */ + function write( + fd: number, + string: string, + position: number | undefined | null, + encoding: BufferEncoding | undefined | null, + callback: (err: NodeJS.ErrnoException | null, written: number, str: string) => void, + ): void; + /** + * Asynchronously writes `string` to the file referenced by the supplied file descriptor. + * @param fd A file descriptor. + * @param string A string to write. + * @param position The offset from the beginning of the file where this data should be written. If not supplied, defaults to the current position. + */ + function write( + fd: number, + string: string, + position: number | undefined | null, + callback: (err: NodeJS.ErrnoException | null, written: number, str: string) => void, + ): void; + /** + * Asynchronously writes `string` to the file referenced by the supplied file descriptor. + * @param fd A file descriptor. + * @param string A string to write. + */ + function write( + fd: number, + string: string, + callback: (err: NodeJS.ErrnoException | null, written: number, str: string) => void, + ): void; + namespace write { + /** + * Asynchronously writes `buffer` to the file referenced by the supplied file descriptor. + * @param fd A file descriptor. + * @param offset The part of the buffer to be written. If not supplied, defaults to `0`. + * @param length The number of bytes to write. If not supplied, defaults to `buffer.length - offset`. + * @param position The offset from the beginning of the file where this data should be written. If not supplied, defaults to the current position. + */ + function __promisify__( + fd: number, + buffer?: TBuffer, + offset?: number, + length?: number, + position?: number | null, + ): Promise<{ + bytesWritten: number; + buffer: TBuffer; + }>; + /** + * Asynchronously writes `buffer` to the file referenced by the supplied file descriptor. + * @param fd A file descriptor. + * @param options An object with the following properties: + * * `offset` The part of the buffer to be written. If not supplied, defaults to `0`. + * * `length` The number of bytes to write. If not supplied, defaults to `buffer.length - offset`. + * * `position` The offset from the beginning of the file where this data should be written. If not supplied, defaults to the current position. + */ + function __promisify__( + fd: number, + buffer?: TBuffer, + options?: WriteOptions, + ): Promise<{ + bytesWritten: number; + buffer: TBuffer; + }>; + /** + * Asynchronously writes `string` to the file referenced by the supplied file descriptor. + * @param fd A file descriptor. + * @param string A string to write. + * @param position The offset from the beginning of the file where this data should be written. If not supplied, defaults to the current position. + * @param encoding The expected string encoding. + */ + function __promisify__( + fd: number, + string: string, + position?: number | null, + encoding?: BufferEncoding | null, + ): Promise<{ + bytesWritten: number; + buffer: string; + }>; + } + /** + * For detailed information, see the documentation of the asynchronous version of + * this API: {@link write}. + * @since v0.1.21 + * @param [offset=0] + * @param [length=buffer.byteLength - offset] + * @param [position='null'] + * @return The number of bytes written. + */ + function writeSync( + fd: number, + buffer: NodeJS.ArrayBufferView, + offset?: number | null, + length?: number | null, + position?: number | null, + ): number; + /** + * Synchronously writes `string` to the file referenced by the supplied file descriptor, returning the number of bytes written. + * @param fd A file descriptor. + * @param string A string to write. + * @param position The offset from the beginning of the file where this data should be written. If not supplied, defaults to the current position. + * @param encoding The expected string encoding. + */ + function writeSync( + fd: number, + string: string, + position?: number | null, + encoding?: BufferEncoding | null, + ): number; + type ReadPosition = number | bigint; + interface ReadOptions { + /** + * @default 0 + */ + offset?: number | undefined; + /** + * @default `length of buffer` + */ + length?: number | undefined; + /** + * @default null + */ + position?: ReadPosition | null | undefined; + } + interface ReadOptionsWithBuffer extends ReadOptions { + buffer?: T | undefined; + } + /** @deprecated Use `ReadOptions` instead. */ + // TODO: remove in future major + interface ReadSyncOptions extends ReadOptions {} + /** @deprecated Use `ReadOptionsWithBuffer` instead. */ + // TODO: remove in future major + interface ReadAsyncOptions extends ReadOptionsWithBuffer {} + /** + * Read data from the file specified by `fd`. + * + * The callback is given the three arguments, `(err, bytesRead, buffer)`. + * + * If the file is not modified concurrently, the end-of-file is reached when the + * number of bytes read is zero. + * + * If this method is invoked as its `util.promisify()` ed version, it returns + * a promise for an `Object` with `bytesRead` and `buffer` properties. + * @since v0.0.2 + * @param buffer The buffer that the data will be written to. + * @param offset The position in `buffer` to write the data to. + * @param length The number of bytes to read. + * @param position Specifies where to begin reading from in the file. If `position` is `null` or `-1 `, data will be read from the current file position, and the file position will be updated. If + * `position` is an integer, the file position will be unchanged. + */ + function read( + fd: number, + buffer: TBuffer, + offset: number, + length: number, + position: ReadPosition | null, + callback: (err: NodeJS.ErrnoException | null, bytesRead: number, buffer: TBuffer) => void, + ): void; + /** + * Similar to the above `fs.read` function, this version takes an optional `options` object. + * If not otherwise specified in an `options` object, + * `buffer` defaults to `Buffer.alloc(16384)`, + * `offset` defaults to `0`, + * `length` defaults to `buffer.byteLength`, `- offset` as of Node 17.6.0 + * `position` defaults to `null` + * @since v12.17.0, 13.11.0 + */ + function read( + fd: number, + options: ReadOptionsWithBuffer, + callback: (err: NodeJS.ErrnoException | null, bytesRead: number, buffer: TBuffer) => void, + ): void; + function read( + fd: number, + buffer: TBuffer, + options: ReadOptions, + callback: (err: NodeJS.ErrnoException | null, bytesRead: number, buffer: TBuffer) => void, + ): void; + function read( + fd: number, + buffer: TBuffer, + callback: (err: NodeJS.ErrnoException | null, bytesRead: number, buffer: TBuffer) => void, + ): void; + function read( + fd: number, + callback: (err: NodeJS.ErrnoException | null, bytesRead: number, buffer: NonSharedBuffer) => void, + ): void; + namespace read { + /** + * @param fd A file descriptor. + * @param buffer The buffer that the data will be written to. + * @param offset The offset in the buffer at which to start writing. + * @param length The number of bytes to read. + * @param position The offset from the beginning of the file from which data should be read. If `null`, data will be read from the current position. + */ + function __promisify__( + fd: number, + buffer: TBuffer, + offset: number, + length: number, + position: ReadPosition | null, + ): Promise<{ + bytesRead: number; + buffer: TBuffer; + }>; + function __promisify__( + fd: number, + options: ReadOptionsWithBuffer, + ): Promise<{ + bytesRead: number; + buffer: TBuffer; + }>; + function __promisify__(fd: number): Promise<{ + bytesRead: number; + buffer: NonSharedBuffer; + }>; + } + /** + * Returns the number of `bytesRead`. + * + * For detailed information, see the documentation of the asynchronous version of + * this API: {@link read}. + * @since v0.1.21 + * @param [position='null'] + */ + function readSync( + fd: number, + buffer: NodeJS.ArrayBufferView, + offset: number, + length: number, + position: ReadPosition | null, + ): number; + /** + * Similar to the above `fs.readSync` function, this version takes an optional `options` object. + * If no `options` object is specified, it will default with the above values. + */ + function readSync(fd: number, buffer: NodeJS.ArrayBufferView, opts?: ReadOptions): number; + /** + * Asynchronously reads the entire contents of a file. + * + * ```js + * import { readFile } from 'node:fs'; + * + * readFile('/etc/passwd', (err, data) => { + * if (err) throw err; + * console.log(data); + * }); + * ``` + * + * The callback is passed two arguments `(err, data)`, where `data` is the + * contents of the file. + * + * If no encoding is specified, then the raw buffer is returned. + * + * If `options` is a string, then it specifies the encoding: + * + * ```js + * import { readFile } from 'node:fs'; + * + * readFile('/etc/passwd', 'utf8', callback); + * ``` + * + * When the path is a directory, the behavior of `fs.readFile()` and {@link readFileSync} is platform-specific. On macOS, Linux, and Windows, an + * error will be returned. On FreeBSD, a representation of the directory's contents + * will be returned. + * + * ```js + * import { readFile } from 'node:fs'; + * + * // macOS, Linux, and Windows + * readFile('', (err, data) => { + * // => [Error: EISDIR: illegal operation on a directory, read ] + * }); + * + * // FreeBSD + * readFile('', (err, data) => { + * // => null, + * }); + * ``` + * + * It is possible to abort an ongoing request using an `AbortSignal`. If a + * request is aborted the callback is called with an `AbortError`: + * + * ```js + * import { readFile } from 'node:fs'; + * + * const controller = new AbortController(); + * const signal = controller.signal; + * readFile(fileInfo[0].name, { signal }, (err, buf) => { + * // ... + * }); + * // When you want to abort the request + * controller.abort(); + * ``` + * + * The `fs.readFile()` function buffers the entire file. To minimize memory costs, + * when possible prefer streaming via `fs.createReadStream()`. + * + * Aborting an ongoing request does not abort individual operating + * system requests but rather the internal buffering `fs.readFile` performs. + * @since v0.1.29 + * @param path filename or file descriptor + */ + function readFile( + path: PathOrFileDescriptor, + options: + | ({ + encoding?: null | undefined; + flag?: string | undefined; + } & Abortable) + | undefined + | null, + callback: (err: NodeJS.ErrnoException | null, data: NonSharedBuffer) => void, + ): void; + /** + * Asynchronously reads the entire contents of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + * @param options Either the encoding for the result, or an object that contains the encoding and an optional flag. + * If a flag is not provided, it defaults to `'r'`. + */ + function readFile( + path: PathOrFileDescriptor, + options: + | ({ + encoding: BufferEncoding; + flag?: string | undefined; + } & Abortable) + | BufferEncoding, + callback: (err: NodeJS.ErrnoException | null, data: string) => void, + ): void; + /** + * Asynchronously reads the entire contents of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + * @param options Either the encoding for the result, or an object that contains the encoding and an optional flag. + * If a flag is not provided, it defaults to `'r'`. + */ + function readFile( + path: PathOrFileDescriptor, + options: + | (ObjectEncodingOptions & { + flag?: string | undefined; + } & Abortable) + | BufferEncoding + | undefined + | null, + callback: (err: NodeJS.ErrnoException | null, data: string | NonSharedBuffer) => void, + ): void; + /** + * Asynchronously reads the entire contents of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + */ + function readFile( + path: PathOrFileDescriptor, + callback: (err: NodeJS.ErrnoException | null, data: NonSharedBuffer) => void, + ): void; + namespace readFile { + /** + * Asynchronously reads the entire contents of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + * @param options An object that may contain an optional flag. + * If a flag is not provided, it defaults to `'r'`. + */ + function __promisify__( + path: PathOrFileDescriptor, + options?: { + encoding?: null | undefined; + flag?: string | undefined; + } | null, + ): Promise; + /** + * Asynchronously reads the entire contents of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + * @param options Either the encoding for the result, or an object that contains the encoding and an optional flag. + * If a flag is not provided, it defaults to `'r'`. + */ + function __promisify__( + path: PathOrFileDescriptor, + options: + | { + encoding: BufferEncoding; + flag?: string | undefined; + } + | BufferEncoding, + ): Promise; + /** + * Asynchronously reads the entire contents of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + * @param options Either the encoding for the result, or an object that contains the encoding and an optional flag. + * If a flag is not provided, it defaults to `'r'`. + */ + function __promisify__( + path: PathOrFileDescriptor, + options?: + | (ObjectEncodingOptions & { + flag?: string | undefined; + }) + | BufferEncoding + | null, + ): Promise; + } + /** + * Returns the contents of the `path`. + * + * For detailed information, see the documentation of the asynchronous version of + * this API: {@link readFile}. + * + * If the `encoding` option is specified then this function returns a + * string. Otherwise it returns a buffer. + * + * Similar to {@link readFile}, when the path is a directory, the behavior of `fs.readFileSync()` is platform-specific. + * + * ```js + * import { readFileSync } from 'node:fs'; + * + * // macOS, Linux, and Windows + * readFileSync(''); + * // => [Error: EISDIR: illegal operation on a directory, read ] + * + * // FreeBSD + * readFileSync(''); // => + * ``` + * @since v0.1.8 + * @param path filename or file descriptor + */ + function readFileSync( + path: PathOrFileDescriptor, + options?: { + encoding?: null | undefined; + flag?: string | undefined; + } | null, + ): NonSharedBuffer; + /** + * Synchronously reads the entire contents of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + * @param options Either the encoding for the result, or an object that contains the encoding and an optional flag. + * If a flag is not provided, it defaults to `'r'`. + */ + function readFileSync( + path: PathOrFileDescriptor, + options: + | { + encoding: BufferEncoding; + flag?: string | undefined; + } + | BufferEncoding, + ): string; + /** + * Synchronously reads the entire contents of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + * @param options Either the encoding for the result, or an object that contains the encoding and an optional flag. + * If a flag is not provided, it defaults to `'r'`. + */ + function readFileSync( + path: PathOrFileDescriptor, + options?: + | (ObjectEncodingOptions & { + flag?: string | undefined; + }) + | BufferEncoding + | null, + ): string | NonSharedBuffer; + type WriteFileOptions = + | ( + & ObjectEncodingOptions + & Abortable + & { + mode?: Mode | undefined; + flag?: string | undefined; + flush?: boolean | undefined; + } + ) + | BufferEncoding + | null; + /** + * When `file` is a filename, asynchronously writes data to the file, replacing the + * file if it already exists. `data` can be a string or a buffer. + * + * When `file` is a file descriptor, the behavior is similar to calling `fs.write()` directly (which is recommended). See the notes below on using + * a file descriptor. + * + * The `encoding` option is ignored if `data` is a buffer. + * + * The `mode` option only affects the newly created file. See {@link open} for more details. + * + * ```js + * import { writeFile } from 'node:fs'; + * import { Buffer } from 'node:buffer'; + * + * const data = new Uint8Array(Buffer.from('Hello Node.js')); + * writeFile('message.txt', data, (err) => { + * if (err) throw err; + * console.log('The file has been saved!'); + * }); + * ``` + * + * If `options` is a string, then it specifies the encoding: + * + * ```js + * import { writeFile } from 'node:fs'; + * + * writeFile('message.txt', 'Hello Node.js', 'utf8', callback); + * ``` + * + * It is unsafe to use `fs.writeFile()` multiple times on the same file without + * waiting for the callback. For this scenario, {@link createWriteStream} is + * recommended. + * + * Similarly to `fs.readFile` \- `fs.writeFile` is a convenience method that + * performs multiple `write` calls internally to write the buffer passed to it. + * For performance sensitive code consider using {@link createWriteStream}. + * + * It is possible to use an `AbortSignal` to cancel an `fs.writeFile()`. + * Cancelation is "best effort", and some amount of data is likely still + * to be written. + * + * ```js + * import { writeFile } from 'node:fs'; + * import { Buffer } from 'node:buffer'; + * + * const controller = new AbortController(); + * const { signal } = controller; + * const data = new Uint8Array(Buffer.from('Hello Node.js')); + * writeFile('message.txt', data, { signal }, (err) => { + * // When a request is aborted - the callback is called with an AbortError + * }); + * // When the request should be aborted + * controller.abort(); + * ``` + * + * Aborting an ongoing request does not abort individual operating + * system requests but rather the internal buffering `fs.writeFile` performs. + * @since v0.1.29 + * @param file filename or file descriptor + */ + function writeFile( + file: PathOrFileDescriptor, + data: string | NodeJS.ArrayBufferView, + options: WriteFileOptions, + callback: NoParamCallback, + ): void; + /** + * Asynchronously writes data to a file, replacing the file if it already exists. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + * @param data The data to write. If something other than a Buffer or Uint8Array is provided, the value is coerced to a string. + */ + function writeFile( + path: PathOrFileDescriptor, + data: string | NodeJS.ArrayBufferView, + callback: NoParamCallback, + ): void; + namespace writeFile { + /** + * Asynchronously writes data to a file, replacing the file if it already exists. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + * @param data The data to write. If something other than a Buffer or Uint8Array is provided, the value is coerced to a string. + * @param options Either the encoding for the file, or an object optionally specifying the encoding, file mode, and flag. + * If `encoding` is not supplied, the default of `'utf8'` is used. + * If `mode` is not supplied, the default of `0o666` is used. + * If `mode` is a string, it is parsed as an octal integer. + * If `flag` is not supplied, the default of `'w'` is used. + */ + function __promisify__( + path: PathOrFileDescriptor, + data: string | NodeJS.ArrayBufferView, + options?: WriteFileOptions, + ): Promise; + } + /** + * Returns `undefined`. + * + * The `mode` option only affects the newly created file. See {@link open} for more details. + * + * For detailed information, see the documentation of the asynchronous version of + * this API: {@link writeFile}. + * @since v0.1.29 + * @param file filename or file descriptor + */ + function writeFileSync( + file: PathOrFileDescriptor, + data: string | NodeJS.ArrayBufferView, + options?: WriteFileOptions, + ): void; + /** + * Asynchronously append data to a file, creating the file if it does not yet + * exist. `data` can be a string or a `Buffer`. + * + * The `mode` option only affects the newly created file. See {@link open} for more details. + * + * ```js + * import { appendFile } from 'node:fs'; + * + * appendFile('message.txt', 'data to append', (err) => { + * if (err) throw err; + * console.log('The "data to append" was appended to file!'); + * }); + * ``` + * + * If `options` is a string, then it specifies the encoding: + * + * ```js + * import { appendFile } from 'node:fs'; + * + * appendFile('message.txt', 'data to append', 'utf8', callback); + * ``` + * + * The `path` may be specified as a numeric file descriptor that has been opened + * for appending (using `fs.open()` or `fs.openSync()`). The file descriptor will + * not be closed automatically. + * + * ```js + * import { open, close, appendFile } from 'node:fs'; + * + * function closeFd(fd) { + * close(fd, (err) => { + * if (err) throw err; + * }); + * } + * + * open('message.txt', 'a', (err, fd) => { + * if (err) throw err; + * + * try { + * appendFile(fd, 'data to append', 'utf8', (err) => { + * closeFd(fd); + * if (err) throw err; + * }); + * } catch (err) { + * closeFd(fd); + * throw err; + * } + * }); + * ``` + * @since v0.6.7 + * @param path filename or file descriptor + */ + function appendFile( + path: PathOrFileDescriptor, + data: string | Uint8Array, + options: WriteFileOptions, + callback: NoParamCallback, + ): void; + /** + * Asynchronously append data to a file, creating the file if it does not exist. + * @param file A path to a file. If a URL is provided, it must use the `file:` protocol. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + * @param data The data to write. If something other than a Buffer or Uint8Array is provided, the value is coerced to a string. + */ + function appendFile(file: PathOrFileDescriptor, data: string | Uint8Array, callback: NoParamCallback): void; + namespace appendFile { + /** + * Asynchronously append data to a file, creating the file if it does not exist. + * @param file A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + * @param data The data to write. If something other than a Buffer or Uint8Array is provided, the value is coerced to a string. + * @param options Either the encoding for the file, or an object optionally specifying the encoding, file mode, and flag. + * If `encoding` is not supplied, the default of `'utf8'` is used. + * If `mode` is not supplied, the default of `0o666` is used. + * If `mode` is a string, it is parsed as an octal integer. + * If `flag` is not supplied, the default of `'a'` is used. + */ + function __promisify__( + file: PathOrFileDescriptor, + data: string | Uint8Array, + options?: WriteFileOptions, + ): Promise; + } + /** + * Synchronously append data to a file, creating the file if it does not yet + * exist. `data` can be a string or a `Buffer`. + * + * The `mode` option only affects the newly created file. See {@link open} for more details. + * + * ```js + * import { appendFileSync } from 'node:fs'; + * + * try { + * appendFileSync('message.txt', 'data to append'); + * console.log('The "data to append" was appended to file!'); + * } catch (err) { + * // Handle the error + * } + * ``` + * + * If `options` is a string, then it specifies the encoding: + * + * ```js + * import { appendFileSync } from 'node:fs'; + * + * appendFileSync('message.txt', 'data to append', 'utf8'); + * ``` + * + * The `path` may be specified as a numeric file descriptor that has been opened + * for appending (using `fs.open()` or `fs.openSync()`). The file descriptor will + * not be closed automatically. + * + * ```js + * import { openSync, closeSync, appendFileSync } from 'node:fs'; + * + * let fd; + * + * try { + * fd = openSync('message.txt', 'a'); + * appendFileSync(fd, 'data to append', 'utf8'); + * } catch (err) { + * // Handle the error + * } finally { + * if (fd !== undefined) + * closeSync(fd); + * } + * ``` + * @since v0.6.7 + * @param path filename or file descriptor + */ + function appendFileSync( + path: PathOrFileDescriptor, + data: string | Uint8Array, + options?: WriteFileOptions, + ): void; + /** + * Watch for changes on `filename`. The callback `listener` will be called each + * time the file is accessed. + * + * The `options` argument may be omitted. If provided, it should be an object. The `options` object may contain a boolean named `persistent` that indicates + * whether the process should continue to run as long as files are being watched. + * The `options` object may specify an `interval` property indicating how often the + * target should be polled in milliseconds. + * + * The `listener` gets two arguments the current stat object and the previous + * stat object: + * + * ```js + * import { watchFile } from 'node:fs'; + * + * watchFile('message.text', (curr, prev) => { + * console.log(`the current mtime is: ${curr.mtime}`); + * console.log(`the previous mtime was: ${prev.mtime}`); + * }); + * ``` + * + * These stat objects are instances of `fs.Stat`. If the `bigint` option is `true`, + * the numeric values in these objects are specified as `BigInt`s. + * + * To be notified when the file was modified, not just accessed, it is necessary + * to compare `curr.mtimeMs` and `prev.mtimeMs`. + * + * When an `fs.watchFile` operation results in an `ENOENT` error, it + * will invoke the listener once, with all the fields zeroed (or, for dates, the + * Unix Epoch). If the file is created later on, the listener will be called + * again, with the latest stat objects. This is a change in functionality since + * v0.10. + * + * Using {@link watch} is more efficient than `fs.watchFile` and `fs.unwatchFile`. `fs.watch` should be used instead of `fs.watchFile` and `fs.unwatchFile` when possible. + * + * When a file being watched by `fs.watchFile()` disappears and reappears, + * then the contents of `previous` in the second callback event (the file's + * reappearance) will be the same as the contents of `previous` in the first + * callback event (its disappearance). + * + * This happens when: + * + * * the file is deleted, followed by a restore + * * the file is renamed and then renamed a second time back to its original name + * @since v0.1.31 + */ + interface WatchFileOptions { + bigint?: boolean | undefined; + persistent?: boolean | undefined; + interval?: number | undefined; + } + /** + * Watch for changes on `filename`. The callback `listener` will be called each + * time the file is accessed. + * + * The `options` argument may be omitted. If provided, it should be an object. The `options` object may contain a boolean named `persistent` that indicates + * whether the process should continue to run as long as files are being watched. + * The `options` object may specify an `interval` property indicating how often the + * target should be polled in milliseconds. + * + * The `listener` gets two arguments the current stat object and the previous + * stat object: + * + * ```js + * import { watchFile } from 'node:fs'; + * + * watchFile('message.text', (curr, prev) => { + * console.log(`the current mtime is: ${curr.mtime}`); + * console.log(`the previous mtime was: ${prev.mtime}`); + * }); + * ``` + * + * These stat objects are instances of `fs.Stat`. If the `bigint` option is `true`, + * the numeric values in these objects are specified as `BigInt`s. + * + * To be notified when the file was modified, not just accessed, it is necessary + * to compare `curr.mtimeMs` and `prev.mtimeMs`. + * + * When an `fs.watchFile` operation results in an `ENOENT` error, it + * will invoke the listener once, with all the fields zeroed (or, for dates, the + * Unix Epoch). If the file is created later on, the listener will be called + * again, with the latest stat objects. This is a change in functionality since + * v0.10. + * + * Using {@link watch} is more efficient than `fs.watchFile` and `fs.unwatchFile`. `fs.watch` should be used instead of `fs.watchFile` and `fs.unwatchFile` when possible. + * + * When a file being watched by `fs.watchFile()` disappears and reappears, + * then the contents of `previous` in the second callback event (the file's + * reappearance) will be the same as the contents of `previous` in the first + * callback event (its disappearance). + * + * This happens when: + * + * * the file is deleted, followed by a restore + * * the file is renamed and then renamed a second time back to its original name + * @since v0.1.31 + */ + function watchFile( + filename: PathLike, + options: + | (WatchFileOptions & { + bigint?: false | undefined; + }) + | undefined, + listener: StatsListener, + ): StatWatcher; + function watchFile( + filename: PathLike, + options: + | (WatchFileOptions & { + bigint: true; + }) + | undefined, + listener: BigIntStatsListener, + ): StatWatcher; + /** + * Watch for changes on `filename`. The callback `listener` will be called each time the file is accessed. + * @param filename A path to a file or directory. If a URL is provided, it must use the `file:` protocol. + */ + function watchFile(filename: PathLike, listener: StatsListener): StatWatcher; + /** + * Stop watching for changes on `filename`. If `listener` is specified, only that + * particular listener is removed. Otherwise, _all_ listeners are removed, + * effectively stopping watching of `filename`. + * + * Calling `fs.unwatchFile()` with a filename that is not being watched is a + * no-op, not an error. + * + * Using {@link watch} is more efficient than `fs.watchFile()` and `fs.unwatchFile()`. `fs.watch()` should be used instead of `fs.watchFile()` and `fs.unwatchFile()` when possible. + * @since v0.1.31 + * @param listener Optional, a listener previously attached using `fs.watchFile()` + */ + function unwatchFile(filename: PathLike, listener?: StatsListener): void; + function unwatchFile(filename: PathLike, listener?: BigIntStatsListener): void; + type WatchIgnorePredicate = string | RegExp | ((filename: string) => boolean); + interface WatchOptions extends Abortable { + encoding?: BufferEncoding | "buffer" | undefined; + persistent?: boolean | undefined; + recursive?: boolean | undefined; + ignore?: WatchIgnorePredicate | readonly WatchIgnorePredicate[] | undefined; + } + interface WatchOptionsWithBufferEncoding extends WatchOptions { + encoding: "buffer"; + } + interface WatchOptionsWithStringEncoding extends WatchOptions { + encoding?: BufferEncoding | undefined; + } + type WatchEventType = "rename" | "change"; + type WatchListener = (event: WatchEventType, filename: T | null) => void; + type StatsListener = (curr: Stats, prev: Stats) => void; + type BigIntStatsListener = (curr: BigIntStats, prev: BigIntStats) => void; + /** + * Watch for changes on `filename`, where `filename` is either a file or a + * directory. + * + * The second argument is optional. If `options` is provided as a string, it + * specifies the `encoding`. Otherwise `options` should be passed as an object. + * + * The listener callback gets two arguments `(eventType, filename)`. `eventType`is either `'rename'` or `'change'`, and `filename` is the name of the file + * which triggered the event. + * + * On most platforms, `'rename'` is emitted whenever a filename appears or + * disappears in the directory. + * + * The listener callback is attached to the `'change'` event fired by `fs.FSWatcher`, but it is not the same thing as the `'change'` value of `eventType`. + * + * If a `signal` is passed, aborting the corresponding AbortController will close + * the returned `fs.FSWatcher`. + * @since v0.5.10 + * @param listener + */ + function watch( + filename: PathLike, + options?: WatchOptionsWithStringEncoding | BufferEncoding | null, + listener?: WatchListener, + ): FSWatcher; + function watch( + filename: PathLike, + options: WatchOptionsWithBufferEncoding | "buffer", + listener: WatchListener, + ): FSWatcher; + function watch( + filename: PathLike, + options: WatchOptions | BufferEncoding | "buffer" | null, + listener: WatchListener, + ): FSWatcher; + function watch(filename: PathLike, listener: WatchListener): FSWatcher; + /** + * Test whether or not the given path exists by checking with the file system. + * Then call the `callback` argument with either true or false: + * + * ```js + * import { exists } from 'node:fs'; + * + * exists('/etc/passwd', (e) => { + * console.log(e ? 'it exists' : 'no passwd!'); + * }); + * ``` + * + * **The parameters for this callback are not consistent with other Node.js** + * **callbacks.** Normally, the first parameter to a Node.js callback is an `err` parameter, optionally followed by other parameters. The `fs.exists()` callback + * has only one boolean parameter. This is one reason `fs.access()` is recommended + * instead of `fs.exists()`. + * + * Using `fs.exists()` to check for the existence of a file before calling `fs.open()`, `fs.readFile()`, or `fs.writeFile()` is not recommended. Doing + * so introduces a race condition, since other processes may change the file's + * state between the two calls. Instead, user code should open/read/write the + * file directly and handle the error raised if the file does not exist. + * + * **write (NOT RECOMMENDED)** + * + * ```js + * import { exists, open, close } from 'node:fs'; + * + * exists('myfile', (e) => { + * if (e) { + * console.error('myfile already exists'); + * } else { + * open('myfile', 'wx', (err, fd) => { + * if (err) throw err; + * + * try { + * writeMyData(fd); + * } finally { + * close(fd, (err) => { + * if (err) throw err; + * }); + * } + * }); + * } + * }); + * ``` + * + * **write (RECOMMENDED)** + * + * ```js + * import { open, close } from 'node:fs'; + * open('myfile', 'wx', (err, fd) => { + * if (err) { + * if (err.code === 'EEXIST') { + * console.error('myfile already exists'); + * return; + * } + * + * throw err; + * } + * + * try { + * writeMyData(fd); + * } finally { + * close(fd, (err) => { + * if (err) throw err; + * }); + * } + * }); + * ``` + * + * **read (NOT RECOMMENDED)** + * + * ```js + * import { open, close, exists } from 'node:fs'; + * + * exists('myfile', (e) => { + * if (e) { + * open('myfile', 'r', (err, fd) => { + * if (err) throw err; + * + * try { + * readMyData(fd); + * } finally { + * close(fd, (err) => { + * if (err) throw err; + * }); + * } + * }); + * } else { + * console.error('myfile does not exist'); + * } + * }); + * ``` + * + * **read (RECOMMENDED)** + * + * ```js + * import { open, close } from 'node:fs'; + * + * open('myfile', 'r', (err, fd) => { + * if (err) { + * if (err.code === 'ENOENT') { + * console.error('myfile does not exist'); + * return; + * } + * + * throw err; + * } + * + * try { + * readMyData(fd); + * } finally { + * close(fd, (err) => { + * if (err) throw err; + * }); + * } + * }); + * ``` + * + * The "not recommended" examples above check for existence and then use the + * file; the "recommended" examples are better because they use the file directly + * and handle the error, if any. + * + * In general, check for the existence of a file only if the file won't be + * used directly, for example when its existence is a signal from another + * process. + * @since v0.0.2 + * @deprecated Since v1.0.0 - Use {@link stat} or {@link access} instead. + */ + function exists(path: PathLike, callback: (exists: boolean) => void): void; + /** @deprecated */ + namespace exists { + /** + * @param path A path to a file or directory. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + */ + function __promisify__(path: PathLike): Promise; + } + /** + * Returns `true` if the path exists, `false` otherwise. + * + * For detailed information, see the documentation of the asynchronous version of + * this API: {@link exists}. + * + * `fs.exists()` is deprecated, but `fs.existsSync()` is not. The `callback` parameter to `fs.exists()` accepts parameters that are inconsistent with other + * Node.js callbacks. `fs.existsSync()` does not use a callback. + * + * ```js + * import { existsSync } from 'node:fs'; + * + * if (existsSync('/etc/passwd')) + * console.log('The path exists.'); + * ``` + * @since v0.1.21 + */ + function existsSync(path: PathLike): boolean; + namespace constants { + // File Access Constants + /** Constant for fs.access(). File is visible to the calling process. */ + const F_OK: number; + /** Constant for fs.access(). File can be read by the calling process. */ + const R_OK: number; + /** Constant for fs.access(). File can be written by the calling process. */ + const W_OK: number; + /** Constant for fs.access(). File can be executed by the calling process. */ + const X_OK: number; + // File Copy Constants + /** Constant for fs.copyFile. Flag indicating the destination file should not be overwritten if it already exists. */ + const COPYFILE_EXCL: number; + /** + * Constant for fs.copyFile. copy operation will attempt to create a copy-on-write reflink. + * If the underlying platform does not support copy-on-write, then a fallback copy mechanism is used. + */ + const COPYFILE_FICLONE: number; + /** + * Constant for fs.copyFile. Copy operation will attempt to create a copy-on-write reflink. + * If the underlying platform does not support copy-on-write, then the operation will fail with an error. + */ + const COPYFILE_FICLONE_FORCE: number; + // File Open Constants + /** Constant for fs.open(). Flag indicating to open a file for read-only access. */ + const O_RDONLY: number; + /** Constant for fs.open(). Flag indicating to open a file for write-only access. */ + const O_WRONLY: number; + /** Constant for fs.open(). Flag indicating to open a file for read-write access. */ + const O_RDWR: number; + /** Constant for fs.open(). Flag indicating to create the file if it does not already exist. */ + const O_CREAT: number; + /** Constant for fs.open(). Flag indicating that opening a file should fail if the O_CREAT flag is set and the file already exists. */ + const O_EXCL: number; + /** + * Constant for fs.open(). Flag indicating that if path identifies a terminal device, + * opening the path shall not cause that terminal to become the controlling terminal for the process + * (if the process does not already have one). + */ + const O_NOCTTY: number; + /** Constant for fs.open(). Flag indicating that if the file exists and is a regular file, and the file is opened successfully for write access, its length shall be truncated to zero. */ + const O_TRUNC: number; + /** Constant for fs.open(). Flag indicating that data will be appended to the end of the file. */ + const O_APPEND: number; + /** Constant for fs.open(). Flag indicating that the open should fail if the path is not a directory. */ + const O_DIRECTORY: number; + /** + * constant for fs.open(). + * Flag indicating reading accesses to the file system will no longer result in + * an update to the atime information associated with the file. + * This flag is available on Linux operating systems only. + */ + const O_NOATIME: number; + /** Constant for fs.open(). Flag indicating that the open should fail if the path is a symbolic link. */ + const O_NOFOLLOW: number; + /** Constant for fs.open(). Flag indicating that the file is opened for synchronous I/O. */ + const O_SYNC: number; + /** Constant for fs.open(). Flag indicating that the file is opened for synchronous I/O with write operations waiting for data integrity. */ + const O_DSYNC: number; + /** Constant for fs.open(). Flag indicating to open the symbolic link itself rather than the resource it is pointing to. */ + const O_SYMLINK: number; + /** Constant for fs.open(). When set, an attempt will be made to minimize caching effects of file I/O. */ + const O_DIRECT: number; + /** Constant for fs.open(). Flag indicating to open the file in nonblocking mode when possible. */ + const O_NONBLOCK: number; + // File Type Constants + /** Constant for fs.Stats mode property for determining a file's type. Bit mask used to extract the file type code. */ + const S_IFMT: number; + /** Constant for fs.Stats mode property for determining a file's type. File type constant for a regular file. */ + const S_IFREG: number; + /** Constant for fs.Stats mode property for determining a file's type. File type constant for a directory. */ + const S_IFDIR: number; + /** Constant for fs.Stats mode property for determining a file's type. File type constant for a character-oriented device file. */ + const S_IFCHR: number; + /** Constant for fs.Stats mode property for determining a file's type. File type constant for a block-oriented device file. */ + const S_IFBLK: number; + /** Constant for fs.Stats mode property for determining a file's type. File type constant for a FIFO/pipe. */ + const S_IFIFO: number; + /** Constant for fs.Stats mode property for determining a file's type. File type constant for a symbolic link. */ + const S_IFLNK: number; + /** Constant for fs.Stats mode property for determining a file's type. File type constant for a socket. */ + const S_IFSOCK: number; + // File Mode Constants + /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating readable, writable and executable by owner. */ + const S_IRWXU: number; + /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating readable by owner. */ + const S_IRUSR: number; + /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating writable by owner. */ + const S_IWUSR: number; + /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating executable by owner. */ + const S_IXUSR: number; + /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating readable, writable and executable by group. */ + const S_IRWXG: number; + /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating readable by group. */ + const S_IRGRP: number; + /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating writable by group. */ + const S_IWGRP: number; + /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating executable by group. */ + const S_IXGRP: number; + /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating readable, writable and executable by others. */ + const S_IRWXO: number; + /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating readable by others. */ + const S_IROTH: number; + /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating writable by others. */ + const S_IWOTH: number; + /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating executable by others. */ + const S_IXOTH: number; + /** + * When set, a memory file mapping is used to access the file. This flag + * is available on Windows operating systems only. On other operating systems, + * this flag is ignored. + */ + const UV_FS_O_FILEMAP: number; + } + /** + * Tests a user's permissions for the file or directory specified by `path`. + * The `mode` argument is an optional integer that specifies the accessibility + * checks to be performed. `mode` should be either the value `fs.constants.F_OK` or a mask consisting of the bitwise OR of any of `fs.constants.R_OK`, `fs.constants.W_OK`, and `fs.constants.X_OK` + * (e.g.`fs.constants.W_OK | fs.constants.R_OK`). Check `File access constants` for + * possible values of `mode`. + * + * The final argument, `callback`, is a callback function that is invoked with + * a possible error argument. If any of the accessibility checks fail, the error + * argument will be an `Error` object. The following examples check if `package.json` exists, and if it is readable or writable. + * + * ```js + * import { access, constants } from 'node:fs'; + * + * const file = 'package.json'; + * + * // Check if the file exists in the current directory. + * access(file, constants.F_OK, (err) => { + * console.log(`${file} ${err ? 'does not exist' : 'exists'}`); + * }); + * + * // Check if the file is readable. + * access(file, constants.R_OK, (err) => { + * console.log(`${file} ${err ? 'is not readable' : 'is readable'}`); + * }); + * + * // Check if the file is writable. + * access(file, constants.W_OK, (err) => { + * console.log(`${file} ${err ? 'is not writable' : 'is writable'}`); + * }); + * + * // Check if the file is readable and writable. + * access(file, constants.R_OK | constants.W_OK, (err) => { + * console.log(`${file} ${err ? 'is not' : 'is'} readable and writable`); + * }); + * ``` + * + * Do not use `fs.access()` to check for the accessibility of a file before calling `fs.open()`, `fs.readFile()`, or `fs.writeFile()`. Doing + * so introduces a race condition, since other processes may change the file's + * state between the two calls. Instead, user code should open/read/write the + * file directly and handle the error raised if the file is not accessible. + * + * **write (NOT RECOMMENDED)** + * + * ```js + * import { access, open, close } from 'node:fs'; + * + * access('myfile', (err) => { + * if (!err) { + * console.error('myfile already exists'); + * return; + * } + * + * open('myfile', 'wx', (err, fd) => { + * if (err) throw err; + * + * try { + * writeMyData(fd); + * } finally { + * close(fd, (err) => { + * if (err) throw err; + * }); + * } + * }); + * }); + * ``` + * + * **write (RECOMMENDED)** + * + * ```js + * import { open, close } from 'node:fs'; + * + * open('myfile', 'wx', (err, fd) => { + * if (err) { + * if (err.code === 'EEXIST') { + * console.error('myfile already exists'); + * return; + * } + * + * throw err; + * } + * + * try { + * writeMyData(fd); + * } finally { + * close(fd, (err) => { + * if (err) throw err; + * }); + * } + * }); + * ``` + * + * **read (NOT RECOMMENDED)** + * + * ```js + * import { access, open, close } from 'node:fs'; + * access('myfile', (err) => { + * if (err) { + * if (err.code === 'ENOENT') { + * console.error('myfile does not exist'); + * return; + * } + * + * throw err; + * } + * + * open('myfile', 'r', (err, fd) => { + * if (err) throw err; + * + * try { + * readMyData(fd); + * } finally { + * close(fd, (err) => { + * if (err) throw err; + * }); + * } + * }); + * }); + * ``` + * + * **read (RECOMMENDED)** + * + * ```js + * import { open, close } from 'node:fs'; + * + * open('myfile', 'r', (err, fd) => { + * if (err) { + * if (err.code === 'ENOENT') { + * console.error('myfile does not exist'); + * return; + * } + * + * throw err; + * } + * + * try { + * readMyData(fd); + * } finally { + * close(fd, (err) => { + * if (err) throw err; + * }); + * } + * }); + * ``` + * + * The "not recommended" examples above check for accessibility and then use the + * file; the "recommended" examples are better because they use the file directly + * and handle the error, if any. + * + * In general, check for the accessibility of a file only if the file will not be + * used directly, for example when its accessibility is a signal from another + * process. + * + * On Windows, access-control policies (ACLs) on a directory may limit access to + * a file or directory. The `fs.access()` function, however, does not check the + * ACL and therefore may report that a path is accessible even if the ACL restricts + * the user from reading or writing to it. + * @since v0.11.15 + * @param [mode=fs.constants.F_OK] + */ + function access(path: PathLike, mode: number | undefined, callback: NoParamCallback): void; + /** + * Asynchronously tests a user's permissions for the file specified by path. + * @param path A path to a file or directory. If a URL is provided, it must use the `file:` protocol. + */ + function access(path: PathLike, callback: NoParamCallback): void; + namespace access { + /** + * Asynchronously tests a user's permissions for the file specified by path. + * @param path A path to a file or directory. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + */ + function __promisify__(path: PathLike, mode?: number): Promise; + } + /** + * Synchronously tests a user's permissions for the file or directory specified + * by `path`. The `mode` argument is an optional integer that specifies the + * accessibility checks to be performed. `mode` should be either the value `fs.constants.F_OK` or a mask consisting of the bitwise OR of any of `fs.constants.R_OK`, `fs.constants.W_OK`, and + * `fs.constants.X_OK` (e.g.`fs.constants.W_OK | fs.constants.R_OK`). Check `File access constants` for + * possible values of `mode`. + * + * If any of the accessibility checks fail, an `Error` will be thrown. Otherwise, + * the method will return `undefined`. + * + * ```js + * import { accessSync, constants } from 'node:fs'; + * + * try { + * accessSync('etc/passwd', constants.R_OK | constants.W_OK); + * console.log('can read/write'); + * } catch (err) { + * console.error('no access!'); + * } + * ``` + * @since v0.11.15 + * @param [mode=fs.constants.F_OK] + */ + function accessSync(path: PathLike, mode?: number): void; + interface StreamOptions { + flags?: string | undefined; + encoding?: BufferEncoding | undefined; + fd?: number | FileHandle | undefined; + mode?: number | undefined; + autoClose?: boolean | undefined; + emitClose?: boolean | undefined; + start?: number | undefined; + signal?: AbortSignal | null | undefined; + highWaterMark?: number | undefined; + } + interface FSImplementation { + open?: (...args: any[]) => any; + close?: (...args: any[]) => any; + } + interface CreateReadStreamFSImplementation extends FSImplementation { + read: (...args: any[]) => any; + } + interface CreateWriteStreamFSImplementation extends FSImplementation { + write: (...args: any[]) => any; + writev?: (...args: any[]) => any; + } + interface ReadStreamOptions extends StreamOptions { + fs?: CreateReadStreamFSImplementation | null | undefined; + end?: number | undefined; + } + interface WriteStreamOptions extends StreamOptions { + fs?: CreateWriteStreamFSImplementation | null | undefined; + flush?: boolean | undefined; + } + /** + * `options` can include `start` and `end` values to read a range of bytes from + * the file instead of the entire file. Both `start` and `end` are inclusive and + * start counting at 0, allowed values are in the + * \[0, [`Number.MAX_SAFE_INTEGER`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER)\] range. If `fd` is specified and `start` is + * omitted or `undefined`, `fs.createReadStream()` reads sequentially from the + * current file position. The `encoding` can be any one of those accepted by `Buffer`. + * + * If `fd` is specified, `ReadStream` will ignore the `path` argument and will use + * the specified file descriptor. This means that no `'open'` event will be + * emitted. `fd` should be blocking; non-blocking `fd`s should be passed to `net.Socket`. + * + * If `fd` points to a character device that only supports blocking reads + * (such as keyboard or sound card), read operations do not finish until data is + * available. This can prevent the process from exiting and the stream from + * closing naturally. + * + * By default, the stream will emit a `'close'` event after it has been + * destroyed. Set the `emitClose` option to `false` to change this behavior. + * + * By providing the `fs` option, it is possible to override the corresponding `fs` implementations for `open`, `read`, and `close`. When providing the `fs` option, + * an override for `read` is required. If no `fd` is provided, an override for `open` is also required. If `autoClose` is `true`, an override for `close` is + * also required. + * + * ```js + * import { createReadStream } from 'node:fs'; + * + * // Create a stream from some character device. + * const stream = createReadStream('/dev/input/event0'); + * setTimeout(() => { + * stream.close(); // This may not close the stream. + * // Artificially marking end-of-stream, as if the underlying resource had + * // indicated end-of-file by itself, allows the stream to close. + * // This does not cancel pending read operations, and if there is such an + * // operation, the process may still not be able to exit successfully + * // until it finishes. + * stream.push(null); + * stream.read(0); + * }, 100); + * ``` + * + * If `autoClose` is false, then the file descriptor won't be closed, even if + * there's an error. It is the application's responsibility to close it and make + * sure there's no file descriptor leak. If `autoClose` is set to true (default + * behavior), on `'error'` or `'end'` the file descriptor will be closed + * automatically. + * + * `mode` sets the file mode (permission and sticky bits), but only if the + * file was created. + * + * An example to read the last 10 bytes of a file which is 100 bytes long: + * + * ```js + * import { createReadStream } from 'node:fs'; + * + * createReadStream('sample.txt', { start: 90, end: 99 }); + * ``` + * + * If `options` is a string, then it specifies the encoding. + * @since v0.1.31 + */ + function createReadStream(path: PathLike, options?: BufferEncoding | ReadStreamOptions): ReadStream; + /** + * `options` may also include a `start` option to allow writing data at some + * position past the beginning of the file, allowed values are in the + * \[0, [`Number.MAX_SAFE_INTEGER`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER)\] range. Modifying a file rather than + * replacing it may require the `flags` option to be set to `r+` rather than the + * default `w`. The `encoding` can be any one of those accepted by `Buffer`. + * + * If `autoClose` is set to true (default behavior) on `'error'` or `'finish'` the file descriptor will be closed automatically. If `autoClose` is false, + * then the file descriptor won't be closed, even if there's an error. + * It is the application's responsibility to close it and make sure there's no + * file descriptor leak. + * + * By default, the stream will emit a `'close'` event after it has been + * destroyed. Set the `emitClose` option to `false` to change this behavior. + * + * By providing the `fs` option it is possible to override the corresponding `fs` implementations for `open`, `write`, `writev`, and `close`. Overriding `write()` without `writev()` can reduce + * performance as some optimizations (`_writev()`) + * will be disabled. When providing the `fs` option, overrides for at least one of `write` and `writev` are required. If no `fd` option is supplied, an override + * for `open` is also required. If `autoClose` is `true`, an override for `close` is also required. + * + * Like `fs.ReadStream`, if `fd` is specified, `fs.WriteStream` will ignore the `path` argument and will use the specified file descriptor. This means that no `'open'` event will be + * emitted. `fd` should be blocking; non-blocking `fd`s + * should be passed to `net.Socket`. + * + * If `options` is a string, then it specifies the encoding. + * @since v0.1.31 + */ + function createWriteStream(path: PathLike, options?: BufferEncoding | WriteStreamOptions): WriteStream; + /** + * Forces all currently queued I/O operations associated with the file to the + * operating system's synchronized I/O completion state. Refer to the POSIX [`fdatasync(2)`](http://man7.org/linux/man-pages/man2/fdatasync.2.html) documentation for details. No arguments other + * than a possible + * exception are given to the completion callback. + * @since v0.1.96 + */ + function fdatasync(fd: number, callback: NoParamCallback): void; + namespace fdatasync { + /** + * Asynchronous fdatasync(2) - synchronize a file's in-core state with storage device. + * @param fd A file descriptor. + */ + function __promisify__(fd: number): Promise; + } + /** + * Forces all currently queued I/O operations associated with the file to the + * operating system's synchronized I/O completion state. Refer to the POSIX [`fdatasync(2)`](http://man7.org/linux/man-pages/man2/fdatasync.2.html) documentation for details. Returns `undefined`. + * @since v0.1.96 + */ + function fdatasyncSync(fd: number): void; + /** + * Asynchronously copies `src` to `dest`. By default, `dest` is overwritten if it + * already exists. No arguments other than a possible exception are given to the + * callback function. Node.js makes no guarantees about the atomicity of the copy + * operation. If an error occurs after the destination file has been opened for + * writing, Node.js will attempt to remove the destination. + * + * `mode` is an optional integer that specifies the behavior + * of the copy operation. It is possible to create a mask consisting of the bitwise + * OR of two or more values (e.g.`fs.constants.COPYFILE_EXCL | fs.constants.COPYFILE_FICLONE`). + * + * * `fs.constants.COPYFILE_EXCL`: The copy operation will fail if `dest` already + * exists. + * * `fs.constants.COPYFILE_FICLONE`: The copy operation will attempt to create a + * copy-on-write reflink. If the platform does not support copy-on-write, then a + * fallback copy mechanism is used. + * * `fs.constants.COPYFILE_FICLONE_FORCE`: The copy operation will attempt to + * create a copy-on-write reflink. If the platform does not support + * copy-on-write, then the operation will fail. + * + * ```js + * import { copyFile, constants } from 'node:fs'; + * + * function callback(err) { + * if (err) throw err; + * console.log('source.txt was copied to destination.txt'); + * } + * + * // destination.txt will be created or overwritten by default. + * copyFile('source.txt', 'destination.txt', callback); + * + * // By using COPYFILE_EXCL, the operation will fail if destination.txt exists. + * copyFile('source.txt', 'destination.txt', constants.COPYFILE_EXCL, callback); + * ``` + * @since v8.5.0 + * @param src source filename to copy + * @param dest destination filename of the copy operation + * @param [mode=0] modifiers for copy operation. + */ + function copyFile(src: PathLike, dest: PathLike, callback: NoParamCallback): void; + function copyFile(src: PathLike, dest: PathLike, mode: number, callback: NoParamCallback): void; + namespace copyFile { + function __promisify__(src: PathLike, dst: PathLike, mode?: number): Promise; + } + /** + * Synchronously copies `src` to `dest`. By default, `dest` is overwritten if it + * already exists. Returns `undefined`. Node.js makes no guarantees about the + * atomicity of the copy operation. If an error occurs after the destination file + * has been opened for writing, Node.js will attempt to remove the destination. + * + * `mode` is an optional integer that specifies the behavior + * of the copy operation. It is possible to create a mask consisting of the bitwise + * OR of two or more values (e.g.`fs.constants.COPYFILE_EXCL | fs.constants.COPYFILE_FICLONE`). + * + * * `fs.constants.COPYFILE_EXCL`: The copy operation will fail if `dest` already + * exists. + * * `fs.constants.COPYFILE_FICLONE`: The copy operation will attempt to create a + * copy-on-write reflink. If the platform does not support copy-on-write, then a + * fallback copy mechanism is used. + * * `fs.constants.COPYFILE_FICLONE_FORCE`: The copy operation will attempt to + * create a copy-on-write reflink. If the platform does not support + * copy-on-write, then the operation will fail. + * + * ```js + * import { copyFileSync, constants } from 'node:fs'; + * + * // destination.txt will be created or overwritten by default. + * copyFileSync('source.txt', 'destination.txt'); + * console.log('source.txt was copied to destination.txt'); + * + * // By using COPYFILE_EXCL, the operation will fail if destination.txt exists. + * copyFileSync('source.txt', 'destination.txt', constants.COPYFILE_EXCL); + * ``` + * @since v8.5.0 + * @param src source filename to copy + * @param dest destination filename of the copy operation + * @param [mode=0] modifiers for copy operation. + */ + function copyFileSync(src: PathLike, dest: PathLike, mode?: number): void; + /** + * Write an array of `ArrayBufferView`s to the file specified by `fd` using `writev()`. + * + * `position` is the offset from the beginning of the file where this data + * should be written. If `typeof position !== 'number'`, the data will be written + * at the current position. + * + * The callback will be given three arguments: `err`, `bytesWritten`, and `buffers`. `bytesWritten` is how many bytes were written from `buffers`. + * + * If this method is `util.promisify()` ed, it returns a promise for an `Object` with `bytesWritten` and `buffers` properties. + * + * It is unsafe to use `fs.writev()` multiple times on the same file without + * waiting for the callback. For this scenario, use {@link createWriteStream}. + * + * On Linux, positional writes don't work when the file is opened in append mode. + * The kernel ignores the position argument and always appends the data to + * the end of the file. + * @since v12.9.0 + * @param [position='null'] + */ + function writev( + fd: number, + buffers: TBuffers, + cb: (err: NodeJS.ErrnoException | null, bytesWritten: number, buffers: TBuffers) => void, + ): void; + function writev( + fd: number, + buffers: TBuffers, + position: number | null, + cb: (err: NodeJS.ErrnoException | null, bytesWritten: number, buffers: TBuffers) => void, + ): void; + // Providing a default type parameter doesn't provide true BC for userland consumers, but at least suppresses TS2314 + // TODO: remove default in future major version + interface WriteVResult { + bytesWritten: number; + buffers: T; + } + namespace writev { + function __promisify__( + fd: number, + buffers: TBuffers, + position?: number, + ): Promise>; + } + /** + * For detailed information, see the documentation of the asynchronous version of + * this API: {@link writev}. + * @since v12.9.0 + * @param [position='null'] + * @return The number of bytes written. + */ + function writevSync(fd: number, buffers: readonly NodeJS.ArrayBufferView[], position?: number): number; + /** + * Read from a file specified by `fd` and write to an array of `ArrayBufferView`s + * using `readv()`. + * + * `position` is the offset from the beginning of the file from where data + * should be read. If `typeof position !== 'number'`, the data will be read + * from the current position. + * + * The callback will be given three arguments: `err`, `bytesRead`, and `buffers`. `bytesRead` is how many bytes were read from the file. + * + * If this method is invoked as its `util.promisify()` ed version, it returns + * a promise for an `Object` with `bytesRead` and `buffers` properties. + * @since v13.13.0, v12.17.0 + * @param [position='null'] + */ + function readv( + fd: number, + buffers: TBuffers, + cb: (err: NodeJS.ErrnoException | null, bytesRead: number, buffers: TBuffers) => void, + ): void; + function readv( + fd: number, + buffers: TBuffers, + position: number | null, + cb: (err: NodeJS.ErrnoException | null, bytesRead: number, buffers: TBuffers) => void, + ): void; + // Providing a default type parameter doesn't provide true BC for userland consumers, but at least suppresses TS2314 + // TODO: remove default in future major version + interface ReadVResult { + bytesRead: number; + buffers: T; + } + namespace readv { + function __promisify__( + fd: number, + buffers: TBuffers, + position?: number, + ): Promise>; + } + /** + * For detailed information, see the documentation of the asynchronous version of + * this API: {@link readv}. + * @since v13.13.0, v12.17.0 + * @param [position='null'] + * @return The number of bytes read. + */ + function readvSync(fd: number, buffers: readonly NodeJS.ArrayBufferView[], position?: number): number; + + interface OpenAsBlobOptions { + /** + * An optional mime type for the blob. + * + * @default 'undefined' + */ + type?: string | undefined; + } + + /** + * Returns a `Blob` whose data is backed by the given file. + * + * The file must not be modified after the `Blob` is created. Any modifications + * will cause reading the `Blob` data to fail with a `DOMException` error. + * Synchronous stat operations on the file when the `Blob` is created, and before + * each read in order to detect whether the file data has been modified on disk. + * + * ```js + * import { openAsBlob } from 'node:fs'; + * + * const blob = await openAsBlob('the.file.txt'); + * const ab = await blob.arrayBuffer(); + * blob.stream(); + * ``` + * @since v19.8.0 + */ + function openAsBlob(path: PathLike, options?: OpenAsBlobOptions): Promise; + + interface OpenDirOptions { + /** + * @default 'utf8' + */ + encoding?: BufferEncoding | undefined; + /** + * Number of directory entries that are buffered + * internally when reading from the directory. Higher values lead to better + * performance but higher memory usage. + * @default 32 + */ + bufferSize?: number | undefined; + /** + * @default false + */ + recursive?: boolean | undefined; + } + /** + * Synchronously open a directory. See [`opendir(3)`](http://man7.org/linux/man-pages/man3/opendir.3.html). + * + * Creates an `fs.Dir`, which contains all further functions for reading from + * and cleaning up the directory. + * + * The `encoding` option sets the encoding for the `path` while opening the + * directory and subsequent read operations. + * @since v12.12.0 + */ + function opendirSync(path: PathLike, options?: OpenDirOptions): Dir; + /** + * Asynchronously open a directory. See the POSIX [`opendir(3)`](http://man7.org/linux/man-pages/man3/opendir.3.html) documentation for + * more details. + * + * Creates an `fs.Dir`, which contains all further functions for reading from + * and cleaning up the directory. + * + * The `encoding` option sets the encoding for the `path` while opening the + * directory and subsequent read operations. + * @since v12.12.0 + */ + function opendir(path: PathLike, cb: (err: NodeJS.ErrnoException | null, dir: Dir) => void): void; + function opendir( + path: PathLike, + options: OpenDirOptions, + cb: (err: NodeJS.ErrnoException | null, dir: Dir) => void, + ): void; + namespace opendir { + function __promisify__(path: PathLike, options?: OpenDirOptions): Promise; + } + interface BigIntStats extends StatsBase { + atimeNs: bigint; + mtimeNs: bigint; + ctimeNs: bigint; + birthtimeNs: bigint; + } + interface BigIntOptions { + bigint: true; + } + interface StatOptions { + bigint?: boolean | undefined; + } + interface StatSyncOptions extends StatOptions { + throwIfNoEntry?: boolean | undefined; + } + interface CopyOptionsBase { + /** + * Dereference symlinks + * @default false + */ + dereference?: boolean | undefined; + /** + * When `force` is `false`, and the destination + * exists, throw an error. + * @default false + */ + errorOnExist?: boolean | undefined; + /** + * Overwrite existing file or directory. _The copy + * operation will ignore errors if you set this to false and the destination + * exists. Use the `errorOnExist` option to change this behavior. + * @default true + */ + force?: boolean | undefined; + /** + * Modifiers for copy operation. See `mode` flag of {@link copyFileSync()} + */ + mode?: number | undefined; + /** + * When `true` timestamps from `src` will + * be preserved. + * @default false + */ + preserveTimestamps?: boolean | undefined; + /** + * Copy directories recursively. + * @default false + */ + recursive?: boolean | undefined; + /** + * When true, path resolution for symlinks will be skipped + * @default false + */ + verbatimSymlinks?: boolean | undefined; + } + interface CopyOptions extends CopyOptionsBase { + /** + * Function to filter copied files/directories. Return + * `true` to copy the item, `false` to ignore it. + */ + filter?: ((source: string, destination: string) => boolean | Promise) | undefined; + } + interface CopySyncOptions extends CopyOptionsBase { + /** + * Function to filter copied files/directories. Return + * `true` to copy the item, `false` to ignore it. + */ + filter?: ((source: string, destination: string) => boolean) | undefined; + } + /** + * Asynchronously copies the entire directory structure from `src` to `dest`, + * including subdirectories and files. + * + * When copying a directory to another directory, globs are not supported and + * behavior is similar to `cp dir1/ dir2/`. + * @since v16.7.0 + * @experimental + * @param src source path to copy. + * @param dest destination path to copy to. + */ + function cp( + source: string | URL, + destination: string | URL, + callback: (err: NodeJS.ErrnoException | null) => void, + ): void; + function cp( + source: string | URL, + destination: string | URL, + opts: CopyOptions, + callback: (err: NodeJS.ErrnoException | null) => void, + ): void; + /** + * Synchronously copies the entire directory structure from `src` to `dest`, + * including subdirectories and files. + * + * When copying a directory to another directory, globs are not supported and + * behavior is similar to `cp dir1/ dir2/`. + * @since v16.7.0 + * @experimental + * @param src source path to copy. + * @param dest destination path to copy to. + */ + function cpSync(source: string | URL, destination: string | URL, opts?: CopySyncOptions): void; + + // TODO: collapse + interface _GlobOptions { + /** + * Current working directory. + * @default process.cwd() + */ + cwd?: string | URL | undefined; + /** + * `true` if the glob should return paths as `Dirent`s, `false` otherwise. + * @default false + * @since v22.2.0 + */ + withFileTypes?: boolean | undefined; + /** + * Function to filter out files/directories or a + * list of glob patterns to be excluded. If a function is provided, return + * `true` to exclude the item, `false` to include it. + * If a string array is provided, each string should be a glob pattern that + * specifies paths to exclude. Note: Negation patterns (e.g., '!foo.js') are + * not supported. + * @default undefined + */ + exclude?: ((fileName: T) => boolean) | readonly string[] | undefined; + } + interface GlobOptions extends _GlobOptions {} + interface GlobOptionsWithFileTypes extends _GlobOptions { + withFileTypes: true; + } + interface GlobOptionsWithoutFileTypes extends _GlobOptions { + withFileTypes?: false | undefined; + } + + /** + * Retrieves the files matching the specified pattern. + * + * ```js + * import { glob } from 'node:fs'; + * + * glob('*.js', (err, matches) => { + * if (err) throw err; + * console.log(matches); + * }); + * ``` + * @since v22.0.0 + */ + function glob( + pattern: string | readonly string[], + callback: (err: NodeJS.ErrnoException | null, matches: string[]) => void, + ): void; + function glob( + pattern: string | readonly string[], + options: GlobOptionsWithFileTypes, + callback: ( + err: NodeJS.ErrnoException | null, + matches: Dirent[], + ) => void, + ): void; + function glob( + pattern: string | readonly string[], + options: GlobOptionsWithoutFileTypes, + callback: ( + err: NodeJS.ErrnoException | null, + matches: string[], + ) => void, + ): void; + function glob( + pattern: string | readonly string[], + options: GlobOptions, + callback: ( + err: NodeJS.ErrnoException | null, + matches: Dirent[] | string[], + ) => void, + ): void; + /** + * ```js + * import { globSync } from 'node:fs'; + * + * console.log(globSync('*.js')); + * ``` + * @since v22.0.0 + * @returns paths of files that match the pattern. + */ + function globSync(pattern: string | readonly string[]): string[]; + function globSync( + pattern: string | readonly string[], + options: GlobOptionsWithFileTypes, + ): Dirent[]; + function globSync( + pattern: string | readonly string[], + options: GlobOptionsWithoutFileTypes, + ): string[]; + function globSync( + pattern: string | readonly string[], + options: GlobOptions, + ): Dirent[] | string[]; +} +declare module "node:fs" { + export * as promises from "node:fs/promises"; +} +declare module "fs" { + export * from "node:fs"; +} diff --git a/server/api/node_modules/@types/node/fs/promises.d.ts b/server/api/node_modules/@types/node/fs/promises.d.ts new file mode 100644 index 0000000..419112a --- /dev/null +++ b/server/api/node_modules/@types/node/fs/promises.d.ts @@ -0,0 +1,1319 @@ +declare module "node:fs/promises" { + import { NonSharedBuffer } from "node:buffer"; + import { Abortable } from "node:events"; + import { Interface as ReadlineInterface } from "node:readline"; + import { + BigIntStats, + BigIntStatsFs, + BufferEncodingOption, + constants as fsConstants, + CopyOptions, + Dir, + Dirent, + EncodingOption, + GlobOptions, + GlobOptionsWithFileTypes, + GlobOptionsWithoutFileTypes, + MakeDirectoryOptions, + Mode, + ObjectEncodingOptions, + OpenDirOptions, + OpenMode, + PathLike, + ReadOptions, + ReadOptionsWithBuffer, + ReadPosition, + ReadStream, + ReadVResult, + RmOptions, + StatFsOptions, + StatOptions, + Stats, + StatsFs, + TimeLike, + WatchEventType, + WatchOptions as _WatchOptions, + WriteStream, + WriteVResult, + } from "node:fs"; + import { Stream } from "node:stream"; + import { ReadableStream } from "node:stream/web"; + interface FileChangeInfo { + eventType: WatchEventType; + filename: T | null; + } + interface FlagAndOpenMode { + mode?: Mode | undefined; + flag?: OpenMode | undefined; + } + interface FileReadResult { + bytesRead: number; + buffer: T; + } + /** @deprecated This interface will be removed in a future version. Use `import { ReadOptionsWithBuffer } from "node:fs"` instead. */ + interface FileReadOptions { + /** + * @default `Buffer.alloc(0xffff)` + */ + buffer?: T; + /** + * @default 0 + */ + offset?: number | null; + /** + * @default `buffer.byteLength` + */ + length?: number | null; + position?: ReadPosition | null; + } + interface CreateReadStreamOptions extends Abortable { + encoding?: BufferEncoding | null | undefined; + autoClose?: boolean | undefined; + emitClose?: boolean | undefined; + start?: number | undefined; + end?: number | undefined; + highWaterMark?: number | undefined; + } + interface CreateWriteStreamOptions { + encoding?: BufferEncoding | null | undefined; + autoClose?: boolean | undefined; + emitClose?: boolean | undefined; + start?: number | undefined; + highWaterMark?: number | undefined; + flush?: boolean | undefined; + } + interface ReadableWebStreamOptions { + autoClose?: boolean | undefined; + } + // TODO: Add `EventEmitter` close + interface FileHandle { + /** + * The numeric file descriptor managed by the {FileHandle} object. + * @since v10.0.0 + */ + readonly fd: number; + /** + * Alias of `filehandle.writeFile()`. + * + * When operating on file handles, the mode cannot be changed from what it was set + * to with `fsPromises.open()`. Therefore, this is equivalent to `filehandle.writeFile()`. + * @since v10.0.0 + * @return Fulfills with `undefined` upon success. + */ + appendFile( + data: string | Uint8Array, + options?: + | (ObjectEncodingOptions & Abortable) + | BufferEncoding + | null, + ): Promise; + /** + * Changes the ownership of the file. A wrapper for [`chown(2)`](http://man7.org/linux/man-pages/man2/chown.2.html). + * @since v10.0.0 + * @param uid The file's new owner's user id. + * @param gid The file's new group's group id. + * @return Fulfills with `undefined` upon success. + */ + chown(uid: number, gid: number): Promise; + /** + * Modifies the permissions on the file. See [`chmod(2)`](http://man7.org/linux/man-pages/man2/chmod.2.html). + * @since v10.0.0 + * @param mode the file mode bit mask. + * @return Fulfills with `undefined` upon success. + */ + chmod(mode: Mode): Promise; + /** + * Unlike the 16 KiB default `highWaterMark` for a `stream.Readable`, the stream + * returned by this method has a default `highWaterMark` of 64 KiB. + * + * `options` can include `start` and `end` values to read a range of bytes from + * the file instead of the entire file. Both `start` and `end` are inclusive and + * start counting at 0, allowed values are in the + * \[0, [`Number.MAX_SAFE_INTEGER`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER)\] range. If `start` is + * omitted or `undefined`, `filehandle.createReadStream()` reads sequentially from + * the current file position. The `encoding` can be any one of those accepted by `Buffer`. + * + * If the `FileHandle` points to a character device that only supports blocking + * reads (such as keyboard or sound card), read operations do not finish until data + * is available. This can prevent the process from exiting and the stream from + * closing naturally. + * + * By default, the stream will emit a `'close'` event after it has been + * destroyed. Set the `emitClose` option to `false` to change this behavior. + * + * ```js + * import { open } from 'node:fs/promises'; + * + * const fd = await open('/dev/input/event0'); + * // Create a stream from some character device. + * const stream = fd.createReadStream(); + * setTimeout(() => { + * stream.close(); // This may not close the stream. + * // Artificially marking end-of-stream, as if the underlying resource had + * // indicated end-of-file by itself, allows the stream to close. + * // This does not cancel pending read operations, and if there is such an + * // operation, the process may still not be able to exit successfully + * // until it finishes. + * stream.push(null); + * stream.read(0); + * }, 100); + * ``` + * + * If `autoClose` is false, then the file descriptor won't be closed, even if + * there's an error. It is the application's responsibility to close it and make + * sure there's no file descriptor leak. If `autoClose` is set to true (default + * behavior), on `'error'` or `'end'` the file descriptor will be closed + * automatically. + * + * An example to read the last 10 bytes of a file which is 100 bytes long: + * + * ```js + * import { open } from 'node:fs/promises'; + * + * const fd = await open('sample.txt'); + * fd.createReadStream({ start: 90, end: 99 }); + * ``` + * @since v16.11.0 + */ + createReadStream(options?: CreateReadStreamOptions): ReadStream; + /** + * `options` may also include a `start` option to allow writing data at some + * position past the beginning of the file, allowed values are in the + * \[0, [`Number.MAX_SAFE_INTEGER`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER)\] range. Modifying a file rather than + * replacing it may require the `flags` `open` option to be set to `r+` rather than + * the default `r`. The `encoding` can be any one of those accepted by `Buffer`. + * + * If `autoClose` is set to true (default behavior) on `'error'` or `'finish'` the file descriptor will be closed automatically. If `autoClose` is false, + * then the file descriptor won't be closed, even if there's an error. + * It is the application's responsibility to close it and make sure there's no + * file descriptor leak. + * + * By default, the stream will emit a `'close'` event after it has been + * destroyed. Set the `emitClose` option to `false` to change this behavior. + * @since v16.11.0 + */ + createWriteStream(options?: CreateWriteStreamOptions): WriteStream; + /** + * Forces all currently queued I/O operations associated with the file to the + * operating system's synchronized I/O completion state. Refer to the POSIX [`fdatasync(2)`](http://man7.org/linux/man-pages/man2/fdatasync.2.html) documentation for details. + * + * Unlike `filehandle.sync` this method does not flush modified metadata. + * @since v10.0.0 + * @return Fulfills with `undefined` upon success. + */ + datasync(): Promise; + /** + * Request that all data for the open file descriptor is flushed to the storage + * device. The specific implementation is operating system and device specific. + * Refer to the POSIX [`fsync(2)`](http://man7.org/linux/man-pages/man2/fsync.2.html) documentation for more detail. + * @since v10.0.0 + * @return Fulfills with `undefined` upon success. + */ + sync(): Promise; + /** + * Reads data from the file and stores that in the given buffer. + * + * If the file is not modified concurrently, the end-of-file is reached when the + * number of bytes read is zero. + * @since v10.0.0 + * @param buffer A buffer that will be filled with the file data read. + * @param offset The location in the buffer at which to start filling. + * @param length The number of bytes to read. + * @param position The location where to begin reading data from the file. If `null`, data will be read from the current file position, and the position will be updated. If `position` is an + * integer, the current file position will remain unchanged. + * @return Fulfills upon success with an object with two properties: + */ + read( + buffer: T, + offset?: number | null, + length?: number | null, + position?: ReadPosition | null, + ): Promise>; + read( + buffer: T, + options?: ReadOptions, + ): Promise>; + read( + options?: ReadOptionsWithBuffer, + ): Promise>; + /** + * Returns a byte-oriented `ReadableStream` that may be used to read the file's + * contents. + * + * An error will be thrown if this method is called more than once or is called + * after the `FileHandle` is closed or closing. + * + * ```js + * import { + * open, + * } from 'node:fs/promises'; + * + * const file = await open('./some/file/to/read'); + * + * for await (const chunk of file.readableWebStream()) + * console.log(chunk); + * + * await file.close(); + * ``` + * + * While the `ReadableStream` will read the file to completion, it will not + * close the `FileHandle` automatically. User code must still call the`fileHandle.close()` method. + * @since v17.0.0 + */ + readableWebStream(options?: ReadableWebStreamOptions): ReadableStream; + /** + * Asynchronously reads the entire contents of a file. + * + * If `options` is a string, then it specifies the `encoding`. + * + * The `FileHandle` has to support reading. + * + * If one or more `filehandle.read()` calls are made on a file handle and then a `filehandle.readFile()` call is made, the data will be read from the current + * position till the end of the file. It doesn't always read from the beginning + * of the file. + * @since v10.0.0 + * @return Fulfills upon a successful read with the contents of the file. If no encoding is specified (using `options.encoding`), the data is returned as a {Buffer} object. Otherwise, the + * data will be a string. + */ + readFile( + options?: + | ({ encoding?: null | undefined } & Abortable) + | null, + ): Promise; + /** + * Asynchronously reads the entire contents of a file. The underlying file will _not_ be closed automatically. + * The `FileHandle` must have been opened for reading. + */ + readFile( + options: + | ({ encoding: BufferEncoding } & Abortable) + | BufferEncoding, + ): Promise; + /** + * Asynchronously reads the entire contents of a file. The underlying file will _not_ be closed automatically. + * The `FileHandle` must have been opened for reading. + */ + readFile( + options?: + | (ObjectEncodingOptions & Abortable) + | BufferEncoding + | null, + ): Promise; + /** + * Convenience method to create a `readline` interface and stream over the file. + * See `filehandle.createReadStream()` for the options. + * + * ```js + * import { open } from 'node:fs/promises'; + * + * const file = await open('./some/file/to/read'); + * + * for await (const line of file.readLines()) { + * console.log(line); + * } + * ``` + * @since v18.11.0 + */ + readLines(options?: CreateReadStreamOptions): ReadlineInterface; + /** + * @since v10.0.0 + * @return Fulfills with an {fs.Stats} for the file. + */ + stat( + opts?: StatOptions & { + bigint?: false | undefined; + }, + ): Promise; + stat( + opts: StatOptions & { + bigint: true; + }, + ): Promise; + stat(opts?: StatOptions): Promise; + /** + * Truncates the file. + * + * If the file was larger than `len` bytes, only the first `len` bytes will be + * retained in the file. + * + * The following example retains only the first four bytes of the file: + * + * ```js + * import { open } from 'node:fs/promises'; + * + * let filehandle = null; + * try { + * filehandle = await open('temp.txt', 'r+'); + * await filehandle.truncate(4); + * } finally { + * await filehandle?.close(); + * } + * ``` + * + * If the file previously was shorter than `len` bytes, it is extended, and the + * extended part is filled with null bytes (`'\0'`): + * + * If `len` is negative then `0` will be used. + * @since v10.0.0 + * @param [len=0] + * @return Fulfills with `undefined` upon success. + */ + truncate(len?: number): Promise; + /** + * Change the file system timestamps of the object referenced by the `FileHandle` then fulfills the promise with no arguments upon success. + * @since v10.0.0 + */ + utimes(atime: TimeLike, mtime: TimeLike): Promise; + /** + * Asynchronously writes data to a file, replacing the file if it already exists. `data` can be a string, a buffer, an + * [AsyncIterable](https://tc39.github.io/ecma262/#sec-asynciterable-interface), or an + * [Iterable](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#The_iterable_protocol) object. + * The promise is fulfilled with no arguments upon success. + * + * If `options` is a string, then it specifies the `encoding`. + * + * The `FileHandle` has to support writing. + * + * It is unsafe to use `filehandle.writeFile()` multiple times on the same file + * without waiting for the promise to be fulfilled (or rejected). + * + * If one or more `filehandle.write()` calls are made on a file handle and then a`filehandle.writeFile()` call is made, the data will be written from the + * current position till the end of the file. It doesn't always write from the + * beginning of the file. + * @since v10.0.0 + */ + writeFile( + data: string | Uint8Array, + options?: + | (ObjectEncodingOptions & Abortable) + | BufferEncoding + | null, + ): Promise; + /** + * Write `buffer` to the file. + * + * The promise is fulfilled with an object containing two properties: + * + * It is unsafe to use `filehandle.write()` multiple times on the same file + * without waiting for the promise to be fulfilled (or rejected). For this + * scenario, use `filehandle.createWriteStream()`. + * + * On Linux, positional writes do not work when the file is opened in append mode. + * The kernel ignores the position argument and always appends the data to + * the end of the file. + * @since v10.0.0 + * @param offset The start position from within `buffer` where the data to write begins. + * @param [length=buffer.byteLength - offset] The number of bytes from `buffer` to write. + * @param [position='null'] The offset from the beginning of the file where the data from `buffer` should be written. If `position` is not a `number`, the data will be written at the current + * position. See the POSIX pwrite(2) documentation for more detail. + */ + write( + buffer: TBuffer, + offset?: number | null, + length?: number | null, + position?: number | null, + ): Promise<{ + bytesWritten: number; + buffer: TBuffer; + }>; + write( + buffer: TBuffer, + options?: { offset?: number; length?: number; position?: number }, + ): Promise<{ + bytesWritten: number; + buffer: TBuffer; + }>; + write( + data: string, + position?: number | null, + encoding?: BufferEncoding | null, + ): Promise<{ + bytesWritten: number; + buffer: string; + }>; + /** + * Write an array of [ArrayBufferView](https://developer.mozilla.org/en-US/docs/Web/API/ArrayBufferView) s to the file. + * + * The promise is fulfilled with an object containing a two properties: + * + * It is unsafe to call `writev()` multiple times on the same file without waiting + * for the promise to be fulfilled (or rejected). + * + * On Linux, positional writes don't work when the file is opened in append mode. + * The kernel ignores the position argument and always appends the data to + * the end of the file. + * @since v12.9.0 + * @param [position='null'] The offset from the beginning of the file where the data from `buffers` should be written. If `position` is not a `number`, the data will be written at the current + * position. + */ + writev( + buffers: TBuffers, + position?: number, + ): Promise>; + /** + * Read from a file and write to an array of [ArrayBufferView](https://developer.mozilla.org/en-US/docs/Web/API/ArrayBufferView) s + * @since v13.13.0, v12.17.0 + * @param [position='null'] The offset from the beginning of the file where the data should be read from. If `position` is not a `number`, the data will be read from the current position. + * @return Fulfills upon success an object containing two properties: + */ + readv( + buffers: TBuffers, + position?: number, + ): Promise>; + /** + * Closes the file handle after waiting for any pending operation on the handle to + * complete. + * + * ```js + * import { open } from 'node:fs/promises'; + * + * let filehandle; + * try { + * filehandle = await open('thefile.txt', 'r'); + * } finally { + * await filehandle?.close(); + * } + * ``` + * @since v10.0.0 + * @return Fulfills with `undefined` upon success. + */ + close(): Promise; + /** + * Calls `filehandle.close()` and returns a promise that fulfills when the + * filehandle is closed. + * @since v20.4.0, v18.8.0 + */ + [Symbol.asyncDispose](): Promise; + } + const constants: typeof fsConstants; + /** + * Tests a user's permissions for the file or directory specified by `path`. + * The `mode` argument is an optional integer that specifies the accessibility + * checks to be performed. `mode` should be either the value `fs.constants.F_OK` or a mask consisting of the bitwise OR of any of `fs.constants.R_OK`, `fs.constants.W_OK`, and `fs.constants.X_OK` + * (e.g.`fs.constants.W_OK | fs.constants.R_OK`). Check `File access constants` for + * possible values of `mode`. + * + * If the accessibility check is successful, the promise is fulfilled with no + * value. If any of the accessibility checks fail, the promise is rejected + * with an [Error](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error) object. The following example checks if the file`/etc/passwd` can be read and + * written by the current process. + * + * ```js + * import { access, constants } from 'node:fs/promises'; + * + * try { + * await access('/etc/passwd', constants.R_OK | constants.W_OK); + * console.log('can access'); + * } catch { + * console.error('cannot access'); + * } + * ``` + * + * Using `fsPromises.access()` to check for the accessibility of a file before + * calling `fsPromises.open()` is not recommended. Doing so introduces a race + * condition, since other processes may change the file's state between the two + * calls. Instead, user code should open/read/write the file directly and handle + * the error raised if the file is not accessible. + * @since v10.0.0 + * @param [mode=fs.constants.F_OK] + * @return Fulfills with `undefined` upon success. + */ + function access(path: PathLike, mode?: number): Promise; + /** + * Asynchronously copies `src` to `dest`. By default, `dest` is overwritten if it + * already exists. + * + * No guarantees are made about the atomicity of the copy operation. If an + * error occurs after the destination file has been opened for writing, an attempt + * will be made to remove the destination. + * + * ```js + * import { copyFile, constants } from 'node:fs/promises'; + * + * try { + * await copyFile('source.txt', 'destination.txt'); + * console.log('source.txt was copied to destination.txt'); + * } catch { + * console.error('The file could not be copied'); + * } + * + * // By using COPYFILE_EXCL, the operation will fail if destination.txt exists. + * try { + * await copyFile('source.txt', 'destination.txt', constants.COPYFILE_EXCL); + * console.log('source.txt was copied to destination.txt'); + * } catch { + * console.error('The file could not be copied'); + * } + * ``` + * @since v10.0.0 + * @param src source filename to copy + * @param dest destination filename of the copy operation + * @param [mode=0] Optional modifiers that specify the behavior of the copy operation. It is possible to create a mask consisting of the bitwise OR of two or more values (e.g. + * `fs.constants.COPYFILE_EXCL | fs.constants.COPYFILE_FICLONE`) + * @return Fulfills with `undefined` upon success. + */ + function copyFile(src: PathLike, dest: PathLike, mode?: number): Promise; + /** + * Opens a `FileHandle`. + * + * Refer to the POSIX [`open(2)`](http://man7.org/linux/man-pages/man2/open.2.html) documentation for more detail. + * + * Some characters (`< > : " / \ | ? *`) are reserved under Windows as documented + * by [Naming Files, Paths, and Namespaces](https://docs.microsoft.com/en-us/windows/desktop/FileIO/naming-a-file). Under NTFS, if the filename contains + * a colon, Node.js will open a file system stream, as described by [this MSDN page](https://docs.microsoft.com/en-us/windows/desktop/FileIO/using-streams). + * @since v10.0.0 + * @param [flags='r'] See `support of file system `flags``. + * @param [mode=0o666] Sets the file mode (permission and sticky bits) if the file is created. + * @return Fulfills with a {FileHandle} object. + */ + function open(path: PathLike, flags?: string | number, mode?: Mode): Promise; + /** + * Renames `oldPath` to `newPath`. + * @since v10.0.0 + * @return Fulfills with `undefined` upon success. + */ + function rename(oldPath: PathLike, newPath: PathLike): Promise; + /** + * Truncates (shortens or extends the length) of the content at `path` to `len` bytes. + * @since v10.0.0 + * @param [len=0] + * @return Fulfills with `undefined` upon success. + */ + function truncate(path: PathLike, len?: number): Promise; + /** + * Removes the directory identified by `path`. + * + * Using `fsPromises.rmdir()` on a file (not a directory) results in the + * promise being rejected with an `ENOENT` error on Windows and an `ENOTDIR` error on POSIX. + * + * To get a behavior similar to the `rm -rf` Unix command, use `fsPromises.rm()` with options `{ recursive: true, force: true }`. + * @since v10.0.0 + * @return Fulfills with `undefined` upon success. + */ + function rmdir(path: PathLike): Promise; + /** + * Removes files and directories (modeled on the standard POSIX `rm` utility). + * @since v14.14.0 + * @return Fulfills with `undefined` upon success. + */ + function rm(path: PathLike, options?: RmOptions): Promise; + /** + * Asynchronously creates a directory. + * + * The optional `options` argument can be an integer specifying `mode` (permission + * and sticky bits), or an object with a `mode` property and a `recursive` property indicating whether parent directories should be created. Calling `fsPromises.mkdir()` when `path` is a directory + * that exists results in a + * rejection only when `recursive` is false. + * + * ```js + * import { mkdir } from 'node:fs/promises'; + * + * try { + * const projectFolder = new URL('./test/project/', import.meta.url); + * const createDir = await mkdir(projectFolder, { recursive: true }); + * + * console.log(`created ${createDir}`); + * } catch (err) { + * console.error(err.message); + * } + * ``` + * @since v10.0.0 + * @return Upon success, fulfills with `undefined` if `recursive` is `false`, or the first directory path created if `recursive` is `true`. + */ + function mkdir( + path: PathLike, + options: MakeDirectoryOptions & { + recursive: true; + }, + ): Promise; + /** + * Asynchronous mkdir(2) - create a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options Either the file mode, or an object optionally specifying the file mode and whether parent folders + * should be created. If a string is passed, it is parsed as an octal integer. If not specified, defaults to `0o777`. + */ + function mkdir( + path: PathLike, + options?: + | Mode + | (MakeDirectoryOptions & { + recursive?: false | undefined; + }) + | null, + ): Promise; + /** + * Asynchronous mkdir(2) - create a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options Either the file mode, or an object optionally specifying the file mode and whether parent folders + * should be created. If a string is passed, it is parsed as an octal integer. If not specified, defaults to `0o777`. + */ + function mkdir(path: PathLike, options?: Mode | MakeDirectoryOptions | null): Promise; + /** + * Reads the contents of a directory. + * + * The optional `options` argument can be a string specifying an encoding, or an + * object with an `encoding` property specifying the character encoding to use for + * the filenames. If the `encoding` is set to `'buffer'`, the filenames returned + * will be passed as `Buffer` objects. + * + * If `options.withFileTypes` is set to `true`, the returned array will contain `fs.Dirent` objects. + * + * ```js + * import { readdir } from 'node:fs/promises'; + * + * try { + * const files = await readdir(path); + * for (const file of files) + * console.log(file); + * } catch (err) { + * console.error(err); + * } + * ``` + * @since v10.0.0 + * @return Fulfills with an array of the names of the files in the directory excluding `'.'` and `'..'`. + */ + function readdir( + path: PathLike, + options?: + | (ObjectEncodingOptions & { + withFileTypes?: false | undefined; + recursive?: boolean | undefined; + }) + | BufferEncoding + | null, + ): Promise; + /** + * Asynchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function readdir( + path: PathLike, + options: + | { + encoding: "buffer"; + withFileTypes?: false | undefined; + recursive?: boolean | undefined; + } + | "buffer", + ): Promise; + /** + * Asynchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function readdir( + path: PathLike, + options?: + | (ObjectEncodingOptions & { + withFileTypes?: false | undefined; + recursive?: boolean | undefined; + }) + | BufferEncoding + | null, + ): Promise; + /** + * Asynchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options If called with `withFileTypes: true` the result data will be an array of Dirent. + */ + function readdir( + path: PathLike, + options: ObjectEncodingOptions & { + withFileTypes: true; + recursive?: boolean | undefined; + }, + ): Promise; + /** + * Asynchronous readdir(3) - read a directory. + * @param path A path to a directory. If a URL is provided, it must use the `file:` protocol. + * @param options Must include `withFileTypes: true` and `encoding: 'buffer'`. + */ + function readdir( + path: PathLike, + options: { + encoding: "buffer"; + withFileTypes: true; + recursive?: boolean | undefined; + }, + ): Promise[]>; + /** + * Reads the contents of the symbolic link referred to by `path`. See the POSIX [`readlink(2)`](http://man7.org/linux/man-pages/man2/readlink.2.html) documentation for more detail. The promise is + * fulfilled with the`linkString` upon success. + * + * The optional `options` argument can be a string specifying an encoding, or an + * object with an `encoding` property specifying the character encoding to use for + * the link path returned. If the `encoding` is set to `'buffer'`, the link path + * returned will be passed as a `Buffer` object. + * @since v10.0.0 + * @return Fulfills with the `linkString` upon success. + */ + function readlink(path: PathLike, options?: ObjectEncodingOptions | BufferEncoding | null): Promise; + /** + * Asynchronous readlink(2) - read value of a symbolic link. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function readlink(path: PathLike, options: BufferEncodingOption): Promise; + /** + * Asynchronous readlink(2) - read value of a symbolic link. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function readlink( + path: PathLike, + options?: ObjectEncodingOptions | string | null, + ): Promise; + /** + * Creates a symbolic link. + * + * The `type` argument is only used on Windows platforms and can be one of `'dir'`, `'file'`, or `'junction'`. If the `type` argument is not a string, Node.js will + * autodetect `target` type and use `'file'` or `'dir'`. If the `target` does not + * exist, `'file'` will be used. Windows junction points require the destination + * path to be absolute. When using `'junction'`, the `target` argument will + * automatically be normalized to absolute path. Junction points on NTFS volumes + * can only point to directories. + * @since v10.0.0 + * @param [type='null'] + * @return Fulfills with `undefined` upon success. + */ + function symlink(target: PathLike, path: PathLike, type?: string | null): Promise; + /** + * Equivalent to `fsPromises.stat()` unless `path` refers to a symbolic link, + * in which case the link itself is stat-ed, not the file that it refers to. + * Refer to the POSIX [`lstat(2)`](http://man7.org/linux/man-pages/man2/lstat.2.html) document for more detail. + * @since v10.0.0 + * @return Fulfills with the {fs.Stats} object for the given symbolic link `path`. + */ + function lstat( + path: PathLike, + opts?: StatOptions & { + bigint?: false | undefined; + }, + ): Promise; + function lstat( + path: PathLike, + opts: StatOptions & { + bigint: true; + }, + ): Promise; + function lstat(path: PathLike, opts?: StatOptions): Promise; + /** + * @since v10.0.0 + * @return Fulfills with the {fs.Stats} object for the given `path`. + */ + function stat( + path: PathLike, + opts?: StatOptions & { + bigint?: false | undefined; + }, + ): Promise; + function stat( + path: PathLike, + opts: StatOptions & { + bigint: true; + }, + ): Promise; + function stat(path: PathLike, opts?: StatOptions): Promise; + /** + * @since v19.6.0, v18.15.0 + * @return Fulfills with the {fs.StatFs} object for the given `path`. + */ + function statfs( + path: PathLike, + opts?: StatFsOptions & { + bigint?: false | undefined; + }, + ): Promise; + function statfs( + path: PathLike, + opts: StatFsOptions & { + bigint: true; + }, + ): Promise; + function statfs(path: PathLike, opts?: StatFsOptions): Promise; + /** + * Creates a new link from the `existingPath` to the `newPath`. See the POSIX [`link(2)`](http://man7.org/linux/man-pages/man2/link.2.html) documentation for more detail. + * @since v10.0.0 + * @return Fulfills with `undefined` upon success. + */ + function link(existingPath: PathLike, newPath: PathLike): Promise; + /** + * If `path` refers to a symbolic link, then the link is removed without affecting + * the file or directory to which that link refers. If the `path` refers to a file + * path that is not a symbolic link, the file is deleted. See the POSIX [`unlink(2)`](http://man7.org/linux/man-pages/man2/unlink.2.html) documentation for more detail. + * @since v10.0.0 + * @return Fulfills with `undefined` upon success. + */ + function unlink(path: PathLike): Promise; + /** + * Changes the permissions of a file. + * @since v10.0.0 + * @return Fulfills with `undefined` upon success. + */ + function chmod(path: PathLike, mode: Mode): Promise; + /** + * Changes the permissions on a symbolic link. + * + * This method is only implemented on macOS. + * @deprecated Since v10.0.0 + * @return Fulfills with `undefined` upon success. + */ + function lchmod(path: PathLike, mode: Mode): Promise; + /** + * Changes the ownership on a symbolic link. + * @since v10.0.0 + * @return Fulfills with `undefined` upon success. + */ + function lchown(path: PathLike, uid: number, gid: number): Promise; + /** + * Changes the access and modification times of a file in the same way as `fsPromises.utimes()`, with the difference that if the path refers to a + * symbolic link, then the link is not dereferenced: instead, the timestamps of + * the symbolic link itself are changed. + * @since v14.5.0, v12.19.0 + * @return Fulfills with `undefined` upon success. + */ + function lutimes(path: PathLike, atime: TimeLike, mtime: TimeLike): Promise; + /** + * Changes the ownership of a file. + * @since v10.0.0 + * @return Fulfills with `undefined` upon success. + */ + function chown(path: PathLike, uid: number, gid: number): Promise; + /** + * Change the file system timestamps of the object referenced by `path`. + * + * The `atime` and `mtime` arguments follow these rules: + * + * * Values can be either numbers representing Unix epoch time, `Date`s, or a + * numeric string like `'123456789.0'`. + * * If the value can not be converted to a number, or is `NaN`, `Infinity`, or `-Infinity`, an `Error` will be thrown. + * @since v10.0.0 + * @return Fulfills with `undefined` upon success. + */ + function utimes(path: PathLike, atime: TimeLike, mtime: TimeLike): Promise; + /** + * Determines the actual location of `path` using the same semantics as the `fs.realpath.native()` function. + * + * Only paths that can be converted to UTF8 strings are supported. + * + * The optional `options` argument can be a string specifying an encoding, or an + * object with an `encoding` property specifying the character encoding to use for + * the path. If the `encoding` is set to `'buffer'`, the path returned will be + * passed as a `Buffer` object. + * + * On Linux, when Node.js is linked against musl libc, the procfs file system must + * be mounted on `/proc` in order for this function to work. Glibc does not have + * this restriction. + * @since v10.0.0 + * @return Fulfills with the resolved path upon success. + */ + function realpath(path: PathLike, options?: ObjectEncodingOptions | BufferEncoding | null): Promise; + /** + * Asynchronous realpath(3) - return the canonicalized absolute pathname. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function realpath(path: PathLike, options: BufferEncodingOption): Promise; + /** + * Asynchronous realpath(3) - return the canonicalized absolute pathname. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function realpath( + path: PathLike, + options?: ObjectEncodingOptions | BufferEncoding | null, + ): Promise; + /** + * Creates a unique temporary directory. A unique directory name is generated by + * appending six random characters to the end of the provided `prefix`. Due to + * platform inconsistencies, avoid trailing `X` characters in `prefix`. Some + * platforms, notably the BSDs, can return more than six random characters, and + * replace trailing `X` characters in `prefix` with random characters. + * + * The optional `options` argument can be a string specifying an encoding, or an + * object with an `encoding` property specifying the character encoding to use. + * + * ```js + * import { mkdtemp } from 'node:fs/promises'; + * import { join } from 'node:path'; + * import { tmpdir } from 'node:os'; + * + * try { + * await mkdtemp(join(tmpdir(), 'foo-')); + * } catch (err) { + * console.error(err); + * } + * ``` + * + * The `fsPromises.mkdtemp()` method will append the six randomly selected + * characters directly to the `prefix` string. For instance, given a directory `/tmp`, if the intention is to create a temporary directory _within_ `/tmp`, the `prefix` must end with a trailing + * platform-specific path separator + * (`import { sep } from 'node:path'`). + * @since v10.0.0 + * @return Fulfills with a string containing the file system path of the newly created temporary directory. + */ + function mkdtemp(prefix: string, options?: ObjectEncodingOptions | BufferEncoding | null): Promise; + /** + * Asynchronously creates a unique temporary directory. + * Generates six random characters to be appended behind a required `prefix` to create a unique temporary directory. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function mkdtemp(prefix: string, options: BufferEncodingOption): Promise; + /** + * Asynchronously creates a unique temporary directory. + * Generates six random characters to be appended behind a required `prefix` to create a unique temporary directory. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function mkdtemp( + prefix: string, + options?: ObjectEncodingOptions | BufferEncoding | null, + ): Promise; + interface DisposableTempDir extends AsyncDisposable { + /** + * The path of the created directory. + */ + path: string; + /** + * A function which removes the created directory. + */ + remove(): Promise; + /** + * The same as `remove`. + */ + [Symbol.asyncDispose](): Promise; + } + /** + * The resulting Promise holds an async-disposable object whose `path` property + * holds the created directory path. When the object is disposed, the directory + * and its contents will be removed asynchronously if it still exists. If the + * directory cannot be deleted, disposal will throw an error. The object has an + * async `remove()` method which will perform the same task. + * + * Both this function and the disposal function on the resulting object are + * async, so it should be used with `await` + `await using` as in + * `await using dir = await fsPromises.mkdtempDisposable('prefix')`. + * + * + * + * For detailed information, see the documentation of `fsPromises.mkdtemp()`. + * + * The optional `options` argument can be a string specifying an encoding, or an + * object with an `encoding` property specifying the character encoding to use. + * @since v24.4.0 + */ + function mkdtempDisposable(prefix: PathLike, options?: EncodingOption): Promise; + /** + * Asynchronously writes data to a file, replacing the file if it already exists. `data` can be a string, a buffer, an + * [AsyncIterable](https://tc39.github.io/ecma262/#sec-asynciterable-interface), or an + * [Iterable](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#The_iterable_protocol) object. + * + * The `encoding` option is ignored if `data` is a buffer. + * + * If `options` is a string, then it specifies the encoding. + * + * The `mode` option only affects the newly created file. See `fs.open()` for more details. + * + * Any specified `FileHandle` has to support writing. + * + * It is unsafe to use `fsPromises.writeFile()` multiple times on the same file + * without waiting for the promise to be settled. + * + * Similarly to `fsPromises.readFile` \- `fsPromises.writeFile` is a convenience + * method that performs multiple `write` calls internally to write the buffer + * passed to it. For performance sensitive code consider using `fs.createWriteStream()` or `filehandle.createWriteStream()`. + * + * It is possible to use an `AbortSignal` to cancel an `fsPromises.writeFile()`. + * Cancelation is "best effort", and some amount of data is likely still + * to be written. + * + * ```js + * import { writeFile } from 'node:fs/promises'; + * import { Buffer } from 'node:buffer'; + * + * try { + * const controller = new AbortController(); + * const { signal } = controller; + * const data = new Uint8Array(Buffer.from('Hello Node.js')); + * const promise = writeFile('message.txt', data, { signal }); + * + * // Abort the request before the promise settles. + * controller.abort(); + * + * await promise; + * } catch (err) { + * // When a request is aborted - err is an AbortError + * console.error(err); + * } + * ``` + * + * Aborting an ongoing request does not abort individual operating + * system requests but rather the internal buffering `fs.writeFile` performs. + * @since v10.0.0 + * @param file filename or `FileHandle` + * @return Fulfills with `undefined` upon success. + */ + function writeFile( + file: PathLike | FileHandle, + data: + | string + | NodeJS.ArrayBufferView + | Iterable + | AsyncIterable + | Stream, + options?: + | (ObjectEncodingOptions & { + mode?: Mode | undefined; + flag?: OpenMode | undefined; + /** + * If all data is successfully written to the file, and `flush` + * is `true`, `filehandle.sync()` is used to flush the data. + * @default false + */ + flush?: boolean | undefined; + } & Abortable) + | BufferEncoding + | null, + ): Promise; + /** + * Asynchronously append data to a file, creating the file if it does not yet + * exist. `data` can be a string or a `Buffer`. + * + * If `options` is a string, then it specifies the `encoding`. + * + * The `mode` option only affects the newly created file. See `fs.open()` for more details. + * + * The `path` may be specified as a `FileHandle` that has been opened + * for appending (using `fsPromises.open()`). + * @since v10.0.0 + * @param path filename or {FileHandle} + * @return Fulfills with `undefined` upon success. + */ + function appendFile( + path: PathLike | FileHandle, + data: string | Uint8Array, + options?: (ObjectEncodingOptions & FlagAndOpenMode & { flush?: boolean | undefined }) | BufferEncoding | null, + ): Promise; + /** + * Asynchronously reads the entire contents of a file. + * + * If no encoding is specified (using `options.encoding`), the data is returned + * as a `Buffer` object. Otherwise, the data will be a string. + * + * If `options` is a string, then it specifies the encoding. + * + * When the `path` is a directory, the behavior of `fsPromises.readFile()` is + * platform-specific. On macOS, Linux, and Windows, the promise will be rejected + * with an error. On FreeBSD, a representation of the directory's contents will be + * returned. + * + * An example of reading a `package.json` file located in the same directory of the + * running code: + * + * ```js + * import { readFile } from 'node:fs/promises'; + * try { + * const filePath = new URL('./package.json', import.meta.url); + * const contents = await readFile(filePath, { encoding: 'utf8' }); + * console.log(contents); + * } catch (err) { + * console.error(err.message); + * } + * ``` + * + * It is possible to abort an ongoing `readFile` using an `AbortSignal`. If a + * request is aborted the promise returned is rejected with an `AbortError`: + * + * ```js + * import { readFile } from 'node:fs/promises'; + * + * try { + * const controller = new AbortController(); + * const { signal } = controller; + * const promise = readFile(fileName, { signal }); + * + * // Abort the request before the promise settles. + * controller.abort(); + * + * await promise; + * } catch (err) { + * // When a request is aborted - err is an AbortError + * console.error(err); + * } + * ``` + * + * Aborting an ongoing request does not abort individual operating + * system requests but rather the internal buffering `fs.readFile` performs. + * + * Any specified `FileHandle` has to support reading. + * @since v10.0.0 + * @param path filename or `FileHandle` + * @return Fulfills with the contents of the file. + */ + function readFile( + path: PathLike | FileHandle, + options?: + | ({ + encoding?: null | undefined; + flag?: OpenMode | undefined; + } & Abortable) + | null, + ): Promise; + /** + * Asynchronously reads the entire contents of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * If a `FileHandle` is provided, the underlying file will _not_ be closed automatically. + * @param options An object that may contain an optional flag. + * If a flag is not provided, it defaults to `'r'`. + */ + function readFile( + path: PathLike | FileHandle, + options: + | ({ + encoding: BufferEncoding; + flag?: OpenMode | undefined; + } & Abortable) + | BufferEncoding, + ): Promise; + /** + * Asynchronously reads the entire contents of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * If a `FileHandle` is provided, the underlying file will _not_ be closed automatically. + * @param options An object that may contain an optional flag. + * If a flag is not provided, it defaults to `'r'`. + */ + function readFile( + path: PathLike | FileHandle, + options?: + | ( + & ObjectEncodingOptions + & Abortable + & { + flag?: OpenMode | undefined; + } + ) + | BufferEncoding + | null, + ): Promise; + /** + * Asynchronously open a directory for iterative scanning. See the POSIX [`opendir(3)`](http://man7.org/linux/man-pages/man3/opendir.3.html) documentation for more detail. + * + * Creates an `fs.Dir`, which contains all further functions for reading from + * and cleaning up the directory. + * + * The `encoding` option sets the encoding for the `path` while opening the + * directory and subsequent read operations. + * + * Example using async iteration: + * + * ```js + * import { opendir } from 'node:fs/promises'; + * + * try { + * const dir = await opendir('./'); + * for await (const dirent of dir) + * console.log(dirent.name); + * } catch (err) { + * console.error(err); + * } + * ``` + * + * When using the async iterator, the `fs.Dir` object will be automatically + * closed after the iterator exits. + * @since v12.12.0 + * @return Fulfills with an {fs.Dir}. + */ + function opendir(path: PathLike, options?: OpenDirOptions): Promise; + interface WatchOptions extends _WatchOptions { + maxQueue?: number | undefined; + overflow?: "ignore" | "throw" | undefined; + } + interface WatchOptionsWithBufferEncoding extends WatchOptions { + encoding: "buffer"; + } + interface WatchOptionsWithStringEncoding extends WatchOptions { + encoding?: BufferEncoding | undefined; + } + /** + * Returns an async iterator that watches for changes on `filename`, where `filename`is either a file or a directory. + * + * ```js + * import { watch } from 'node:fs/promises'; + * + * const ac = new AbortController(); + * const { signal } = ac; + * setTimeout(() => ac.abort(), 10000); + * + * (async () => { + * try { + * const watcher = watch(__filename, { signal }); + * for await (const event of watcher) + * console.log(event); + * } catch (err) { + * if (err.name === 'AbortError') + * return; + * throw err; + * } + * })(); + * ``` + * + * On most platforms, `'rename'` is emitted whenever a filename appears or + * disappears in the directory. + * + * All the `caveats` for `fs.watch()` also apply to `fsPromises.watch()`. + * @since v15.9.0, v14.18.0 + * @return of objects with the properties: + */ + function watch( + filename: PathLike, + options?: WatchOptionsWithStringEncoding | BufferEncoding, + ): NodeJS.AsyncIterator>; + function watch( + filename: PathLike, + options: WatchOptionsWithBufferEncoding | "buffer", + ): NodeJS.AsyncIterator>; + function watch( + filename: PathLike, + options: WatchOptions | BufferEncoding | "buffer", + ): NodeJS.AsyncIterator>; + /** + * Asynchronously copies the entire directory structure from `src` to `dest`, + * including subdirectories and files. + * + * When copying a directory to another directory, globs are not supported and + * behavior is similar to `cp dir1/ dir2/`. + * @since v16.7.0 + * @experimental + * @param src source path to copy. + * @param dest destination path to copy to. + * @return Fulfills with `undefined` upon success. + */ + function cp(source: string | URL, destination: string | URL, opts?: CopyOptions): Promise; + /** + * ```js + * import { glob } from 'node:fs/promises'; + * + * for await (const entry of glob('*.js')) + * console.log(entry); + * ``` + * @since v22.0.0 + * @returns An AsyncIterator that yields the paths of files + * that match the pattern. + */ + function glob(pattern: string | readonly string[]): NodeJS.AsyncIterator; + function glob( + pattern: string | readonly string[], + options: GlobOptionsWithFileTypes, + ): NodeJS.AsyncIterator; + function glob( + pattern: string | readonly string[], + options: GlobOptionsWithoutFileTypes, + ): NodeJS.AsyncIterator; + function glob( + pattern: string | readonly string[], + options: GlobOptions, + ): NodeJS.AsyncIterator; +} +declare module "fs/promises" { + export * from "node:fs/promises"; +} diff --git a/server/api/node_modules/@types/node/globals.d.ts b/server/api/node_modules/@types/node/globals.d.ts new file mode 100644 index 0000000..36e7f90 --- /dev/null +++ b/server/api/node_modules/@types/node/globals.d.ts @@ -0,0 +1,150 @@ +declare var global: typeof globalThis; + +declare var process: NodeJS.Process; + +interface ErrorConstructor { + /** + * Creates a `.stack` property on `targetObject`, which when accessed returns + * a string representing the location in the code at which + * `Error.captureStackTrace()` was called. + * + * ```js + * const myObject = {}; + * Error.captureStackTrace(myObject); + * myObject.stack; // Similar to `new Error().stack` + * ``` + * + * The first line of the trace will be prefixed with + * `${myObject.name}: ${myObject.message}`. + * + * The optional `constructorOpt` argument accepts a function. If given, all frames + * above `constructorOpt`, including `constructorOpt`, will be omitted from the + * generated stack trace. + * + * The `constructorOpt` argument is useful for hiding implementation + * details of error generation from the user. For instance: + * + * ```js + * function a() { + * b(); + * } + * + * function b() { + * c(); + * } + * + * function c() { + * // Create an error without stack trace to avoid calculating the stack trace twice. + * const { stackTraceLimit } = Error; + * Error.stackTraceLimit = 0; + * const error = new Error(); + * Error.stackTraceLimit = stackTraceLimit; + * + * // Capture the stack trace above function b + * Error.captureStackTrace(error, b); // Neither function c, nor b is included in the stack trace + * throw error; + * } + * + * a(); + * ``` + */ + captureStackTrace(targetObject: object, constructorOpt?: Function): void; + /** + * @see https://v8.dev/docs/stack-trace-api#customizing-stack-traces + */ + prepareStackTrace(err: Error, stackTraces: NodeJS.CallSite[]): any; + /** + * The `Error.stackTraceLimit` property specifies the number of stack frames + * collected by a stack trace (whether generated by `new Error().stack` or + * `Error.captureStackTrace(obj)`). + * + * The default value is `10` but may be set to any valid JavaScript number. Changes + * will affect any stack trace captured _after_ the value has been changed. + * + * If set to a non-number value, or set to a negative number, stack traces will + * not capture any frames. + */ + stackTraceLimit: number; +} + +/** + * Enable this API with the `--expose-gc` CLI flag. + */ +declare var gc: NodeJS.GCFunction | undefined; + +declare namespace NodeJS { + interface CallSite { + getColumnNumber(): number | null; + getEnclosingColumnNumber(): number | null; + getEnclosingLineNumber(): number | null; + getEvalOrigin(): string | undefined; + getFileName(): string | null; + getFunction(): Function | undefined; + getFunctionName(): string | null; + getLineNumber(): number | null; + getMethodName(): string | null; + getPosition(): number; + getPromiseIndex(): number | null; + getScriptHash(): string; + getScriptNameOrSourceURL(): string | null; + getThis(): unknown; + getTypeName(): string | null; + isAsync(): boolean; + isConstructor(): boolean; + isEval(): boolean; + isNative(): boolean; + isPromiseAll(): boolean; + isToplevel(): boolean; + } + + interface ErrnoException extends Error { + errno?: number | undefined; + code?: string | undefined; + path?: string | undefined; + syscall?: string | undefined; + } + + interface RefCounted { + ref(): this; + unref(): this; + } + + interface Dict { + [key: string]: T | undefined; + } + + interface ReadOnlyDict { + readonly [key: string]: T | undefined; + } + + type PartialOptions = { [K in keyof T]?: T[K] | undefined }; + + interface GCFunction { + (minor?: boolean): void; + (options: NodeJS.GCOptions & { execution: "async" }): Promise; + (options: NodeJS.GCOptions): void; + } + + interface GCOptions { + execution?: "sync" | "async" | undefined; + flavor?: "regular" | "last-resort" | undefined; + type?: "major-snapshot" | "major" | "minor" | undefined; + filename?: string | undefined; + } + + /** An iterable iterator returned by the Node.js API. */ + interface Iterator extends IteratorObject { + [Symbol.iterator](): NodeJS.Iterator; + } + + /** An async iterable iterator returned by the Node.js API. */ + interface AsyncIterator extends AsyncIteratorObject { + [Symbol.asyncIterator](): NodeJS.AsyncIterator; + } + + /** The [`BufferSource`](https://webidl.spec.whatwg.org/#BufferSource) type from the Web IDL specification. */ + type BufferSource = NonSharedArrayBufferView | ArrayBuffer; + + /** The [`AllowSharedBufferSource`](https://webidl.spec.whatwg.org/#AllowSharedBufferSource) type from the Web IDL specification. */ + type AllowSharedBufferSource = ArrayBufferView | ArrayBufferLike; +} diff --git a/server/api/node_modules/@types/node/globals.typedarray.d.ts b/server/api/node_modules/@types/node/globals.typedarray.d.ts new file mode 100644 index 0000000..e69dd0c --- /dev/null +++ b/server/api/node_modules/@types/node/globals.typedarray.d.ts @@ -0,0 +1,101 @@ +export {}; // Make this a module + +declare global { + namespace NodeJS { + type TypedArray = + | Uint8Array + | Uint8ClampedArray + | Uint16Array + | Uint32Array + | Int8Array + | Int16Array + | Int32Array + | BigUint64Array + | BigInt64Array + | Float16Array + | Float32Array + | Float64Array; + type ArrayBufferView = + | TypedArray + | DataView; + + // The following aliases are required to allow use of non-shared ArrayBufferViews in @types/node + // while maintaining compatibility with TS <=5.6. + // TODO: remove once @types/node no longer supports TS 5.6, and replace with native types. + /** + * @deprecated This is intended for internal use, and will be removed once `@types/node` no longer supports + * TypeScript versions earlier than 5.7. + */ + type NonSharedUint8Array = Uint8Array; + /** + * @deprecated This is intended for internal use, and will be removed once `@types/node` no longer supports + * TypeScript versions earlier than 5.7. + */ + type NonSharedUint8ClampedArray = Uint8ClampedArray; + /** + * @deprecated This is intended for internal use, and will be removed once `@types/node` no longer supports + * TypeScript versions earlier than 5.7. + */ + type NonSharedUint16Array = Uint16Array; + /** + * @deprecated This is intended for internal use, and will be removed once `@types/node` no longer supports + * TypeScript versions earlier than 5.7. + */ + type NonSharedUint32Array = Uint32Array; + /** + * @deprecated This is intended for internal use, and will be removed once `@types/node` no longer supports + * TypeScript versions earlier than 5.7. + */ + type NonSharedInt8Array = Int8Array; + /** + * @deprecated This is intended for internal use, and will be removed once `@types/node` no longer supports + * TypeScript versions earlier than 5.7. + */ + type NonSharedInt16Array = Int16Array; + /** + * @deprecated This is intended for internal use, and will be removed once `@types/node` no longer supports + * TypeScript versions earlier than 5.7. + */ + type NonSharedInt32Array = Int32Array; + /** + * @deprecated This is intended for internal use, and will be removed once `@types/node` no longer supports + * TypeScript versions earlier than 5.7. + */ + type NonSharedBigUint64Array = BigUint64Array; + /** + * @deprecated This is intended for internal use, and will be removed once `@types/node` no longer supports + * TypeScript versions earlier than 5.7. + */ + type NonSharedBigInt64Array = BigInt64Array; + /** + * @deprecated This is intended for internal use, and will be removed once `@types/node` no longer supports + * TypeScript versions earlier than 5.7. + */ + type NonSharedFloat16Array = Float16Array; + /** + * @deprecated This is intended for internal use, and will be removed once `@types/node` no longer supports + * TypeScript versions earlier than 5.7. + */ + type NonSharedFloat32Array = Float32Array; + /** + * @deprecated This is intended for internal use, and will be removed once `@types/node` no longer supports + * TypeScript versions earlier than 5.7. + */ + type NonSharedFloat64Array = Float64Array; + /** + * @deprecated This is intended for internal use, and will be removed once `@types/node` no longer supports + * TypeScript versions earlier than 5.7. + */ + type NonSharedDataView = DataView; + /** + * @deprecated This is intended for internal use, and will be removed once `@types/node` no longer supports + * TypeScript versions earlier than 5.7. + */ + type NonSharedTypedArray = TypedArray; + /** + * @deprecated This is intended for internal use, and will be removed once `@types/node` no longer supports + * TypeScript versions earlier than 5.7. + */ + type NonSharedArrayBufferView = ArrayBufferView; + } +} diff --git a/server/api/node_modules/@types/node/http.d.ts b/server/api/node_modules/@types/node/http.d.ts new file mode 100644 index 0000000..c2e00e7 --- /dev/null +++ b/server/api/node_modules/@types/node/http.d.ts @@ -0,0 +1,2147 @@ +declare module "node:http" { + import { NonSharedBuffer } from "node:buffer"; + import { LookupOptions } from "node:dns"; + import { EventEmitter } from "node:events"; + import * as net from "node:net"; + import * as stream from "node:stream"; + import { URL } from "node:url"; + // incoming headers will never contain number + interface IncomingHttpHeaders extends NodeJS.Dict { + accept?: string | undefined; + "accept-encoding"?: string | undefined; + "accept-language"?: string | undefined; + "accept-patch"?: string | undefined; + "accept-ranges"?: string | undefined; + "access-control-allow-credentials"?: string | undefined; + "access-control-allow-headers"?: string | undefined; + "access-control-allow-methods"?: string | undefined; + "access-control-allow-origin"?: string | undefined; + "access-control-expose-headers"?: string | undefined; + "access-control-max-age"?: string | undefined; + "access-control-request-headers"?: string | undefined; + "access-control-request-method"?: string | undefined; + age?: string | undefined; + allow?: string | undefined; + "alt-svc"?: string | undefined; + authorization?: string | undefined; + "cache-control"?: string | undefined; + connection?: string | undefined; + "content-disposition"?: string | undefined; + "content-encoding"?: string | undefined; + "content-language"?: string | undefined; + "content-length"?: string | undefined; + "content-location"?: string | undefined; + "content-range"?: string | undefined; + "content-type"?: string | undefined; + cookie?: string | undefined; + date?: string | undefined; + etag?: string | undefined; + expect?: string | undefined; + expires?: string | undefined; + forwarded?: string | undefined; + from?: string | undefined; + host?: string | undefined; + "if-match"?: string | undefined; + "if-modified-since"?: string | undefined; + "if-none-match"?: string | undefined; + "if-unmodified-since"?: string | undefined; + "last-modified"?: string | undefined; + location?: string | undefined; + origin?: string | undefined; + pragma?: string | undefined; + "proxy-authenticate"?: string | undefined; + "proxy-authorization"?: string | undefined; + "public-key-pins"?: string | undefined; + range?: string | undefined; + referer?: string | undefined; + "retry-after"?: string | undefined; + "sec-fetch-site"?: string | undefined; + "sec-fetch-mode"?: string | undefined; + "sec-fetch-user"?: string | undefined; + "sec-fetch-dest"?: string | undefined; + "sec-websocket-accept"?: string | undefined; + "sec-websocket-extensions"?: string | undefined; + "sec-websocket-key"?: string | undefined; + "sec-websocket-protocol"?: string | undefined; + "sec-websocket-version"?: string | undefined; + "set-cookie"?: string[] | undefined; + "strict-transport-security"?: string | undefined; + tk?: string | undefined; + trailer?: string | undefined; + "transfer-encoding"?: string | undefined; + upgrade?: string | undefined; + "user-agent"?: string | undefined; + vary?: string | undefined; + via?: string | undefined; + warning?: string | undefined; + "www-authenticate"?: string | undefined; + } + // outgoing headers allows numbers (as they are converted internally to strings) + type OutgoingHttpHeader = number | string | string[]; + interface OutgoingHttpHeaders extends NodeJS.Dict { + accept?: string | string[] | undefined; + "accept-charset"?: string | string[] | undefined; + "accept-encoding"?: string | string[] | undefined; + "accept-language"?: string | string[] | undefined; + "accept-ranges"?: string | undefined; + "access-control-allow-credentials"?: string | undefined; + "access-control-allow-headers"?: string | undefined; + "access-control-allow-methods"?: string | undefined; + "access-control-allow-origin"?: string | undefined; + "access-control-expose-headers"?: string | undefined; + "access-control-max-age"?: string | undefined; + "access-control-request-headers"?: string | undefined; + "access-control-request-method"?: string | undefined; + age?: string | undefined; + allow?: string | undefined; + authorization?: string | undefined; + "cache-control"?: string | undefined; + "cdn-cache-control"?: string | undefined; + connection?: string | string[] | undefined; + "content-disposition"?: string | undefined; + "content-encoding"?: string | undefined; + "content-language"?: string | undefined; + "content-length"?: string | number | undefined; + "content-location"?: string | undefined; + "content-range"?: string | undefined; + "content-security-policy"?: string | undefined; + "content-security-policy-report-only"?: string | undefined; + "content-type"?: string | undefined; + cookie?: string | string[] | undefined; + dav?: string | string[] | undefined; + dnt?: string | undefined; + date?: string | undefined; + etag?: string | undefined; + expect?: string | undefined; + expires?: string | undefined; + forwarded?: string | undefined; + from?: string | undefined; + host?: string | undefined; + "if-match"?: string | undefined; + "if-modified-since"?: string | undefined; + "if-none-match"?: string | undefined; + "if-range"?: string | undefined; + "if-unmodified-since"?: string | undefined; + "last-modified"?: string | undefined; + link?: string | string[] | undefined; + location?: string | undefined; + "max-forwards"?: string | undefined; + origin?: string | undefined; + pragma?: string | string[] | undefined; + "proxy-authenticate"?: string | string[] | undefined; + "proxy-authorization"?: string | undefined; + "public-key-pins"?: string | undefined; + "public-key-pins-report-only"?: string | undefined; + range?: string | undefined; + referer?: string | undefined; + "referrer-policy"?: string | undefined; + refresh?: string | undefined; + "retry-after"?: string | undefined; + "sec-websocket-accept"?: string | undefined; + "sec-websocket-extensions"?: string | string[] | undefined; + "sec-websocket-key"?: string | undefined; + "sec-websocket-protocol"?: string | string[] | undefined; + "sec-websocket-version"?: string | undefined; + server?: string | undefined; + "set-cookie"?: string | string[] | undefined; + "strict-transport-security"?: string | undefined; + te?: string | undefined; + trailer?: string | undefined; + "transfer-encoding"?: string | undefined; + "user-agent"?: string | undefined; + upgrade?: string | undefined; + "upgrade-insecure-requests"?: string | undefined; + vary?: string | undefined; + via?: string | string[] | undefined; + warning?: string | undefined; + "www-authenticate"?: string | string[] | undefined; + "x-content-type-options"?: string | undefined; + "x-dns-prefetch-control"?: string | undefined; + "x-frame-options"?: string | undefined; + "x-xss-protection"?: string | undefined; + } + interface ClientRequestArgs extends Pick { + _defaultAgent?: Agent | undefined; + agent?: Agent | boolean | undefined; + auth?: string | null | undefined; + createConnection?: + | (( + options: ClientRequestArgs, + oncreate: (err: Error | null, socket: stream.Duplex) => void, + ) => stream.Duplex | null | undefined) + | undefined; + defaultPort?: number | string | undefined; + family?: number | undefined; + headers?: OutgoingHttpHeaders | readonly string[] | undefined; + host?: string | null | undefined; + hostname?: string | null | undefined; + insecureHTTPParser?: boolean | undefined; + localAddress?: string | undefined; + localPort?: number | undefined; + lookup?: net.LookupFunction | undefined; + /** + * @default 16384 + */ + maxHeaderSize?: number | undefined; + method?: string | undefined; + path?: string | null | undefined; + port?: number | string | null | undefined; + protocol?: string | null | undefined; + setDefaultHeaders?: boolean | undefined; + setHost?: boolean | undefined; + signal?: AbortSignal | undefined; + socketPath?: string | undefined; + timeout?: number | undefined; + uniqueHeaders?: Array | undefined; + joinDuplicateHeaders?: boolean | undefined; + } + interface ServerOptions< + Request extends typeof IncomingMessage = typeof IncomingMessage, + Response extends typeof ServerResponse> = typeof ServerResponse, + > { + /** + * Specifies the `IncomingMessage` class to be used. Useful for extending the original `IncomingMessage`. + */ + IncomingMessage?: Request | undefined; + /** + * Specifies the `ServerResponse` class to be used. Useful for extending the original `ServerResponse`. + */ + ServerResponse?: Response | undefined; + /** + * Sets the timeout value in milliseconds for receiving the entire request from the client. + * @see Server.requestTimeout for more information. + * @default 300000 + * @since v18.0.0 + */ + requestTimeout?: number | undefined; + /** + * It joins the field line values of multiple headers in a request with `, ` instead of discarding the duplicates. + * @default false + * @since v18.14.0 + */ + joinDuplicateHeaders?: boolean | undefined; + /** + * The number of milliseconds of inactivity a server needs to wait for additional incoming data, + * after it has finished writing the last response, before a socket will be destroyed. + * @see Server.keepAliveTimeout for more information. + * @default 5000 + * @since v18.0.0 + */ + keepAliveTimeout?: number | undefined; + /** + * An additional buffer time added to the + * `server.keepAliveTimeout` to extend the internal socket timeout. + * @since 24.6.0 + * @default 1000 + */ + keepAliveTimeoutBuffer?: number | undefined; + /** + * Sets the interval value in milliseconds to check for request and headers timeout in incomplete requests. + * @default 30000 + */ + connectionsCheckingInterval?: number | undefined; + /** + * Sets the timeout value in milliseconds for receiving the complete HTTP headers from the client. + * See {@link Server.headersTimeout} for more information. + * @default 60000 + * @since 18.0.0 + */ + headersTimeout?: number | undefined; + /** + * Optionally overrides all `socket`s' `readableHighWaterMark` and `writableHighWaterMark`. + * This affects `highWaterMark` property of both `IncomingMessage` and `ServerResponse`. + * Default: @see stream.getDefaultHighWaterMark(). + * @since v20.1.0 + */ + highWaterMark?: number | undefined; + /** + * Use an insecure HTTP parser that accepts invalid HTTP headers when `true`. + * Using the insecure parser should be avoided. + * See --insecure-http-parser for more information. + * @default false + */ + insecureHTTPParser?: boolean | undefined; + /** + * Optionally overrides the value of `--max-http-header-size` for requests received by + * this server, i.e. the maximum length of request headers in bytes. + * @default 16384 + * @since v13.3.0 + */ + maxHeaderSize?: number | undefined; + /** + * If set to `true`, it disables the use of Nagle's algorithm immediately after a new incoming connection is received. + * @default true + * @since v16.5.0 + */ + noDelay?: boolean | undefined; + /** + * If set to `true`, it forces the server to respond with a 400 (Bad Request) status code + * to any HTTP/1.1 request message that lacks a Host header (as mandated by the specification). + * @default true + * @since 20.0.0 + */ + requireHostHeader?: boolean | undefined; + /** + * If set to `true`, it enables keep-alive functionality on the socket immediately after a new incoming connection is received, + * similarly on what is done in `socket.setKeepAlive([enable][, initialDelay])`. + * @default false + * @since v16.5.0 + */ + keepAlive?: boolean | undefined; + /** + * If set to a positive number, it sets the initial delay before the first keepalive probe is sent on an idle socket. + * @default 0 + * @since v16.5.0 + */ + keepAliveInitialDelay?: number | undefined; + /** + * A list of response headers that should be sent only once. + * If the header's value is an array, the items will be joined using `; `. + */ + uniqueHeaders?: Array | undefined; + /** + * A callback which receives an + * incoming request and returns a boolean, to control which upgrade attempts + * should be accepted. Accepted upgrades will fire an `'upgrade'` event (or + * their sockets will be destroyed, if no listener is registered) while + * rejected upgrades will fire a `'request'` event like any non-upgrade + * request. + * @since v24.9.0 + * @default () => server.listenerCount('upgrade') > 0 + */ + shouldUpgradeCallback?: ((request: InstanceType) => boolean) | undefined; + /** + * If set to `true`, an error is thrown when writing to an HTTP response which does not have a body. + * @default false + * @since v18.17.0, v20.2.0 + */ + rejectNonStandardBodyWrites?: boolean | undefined; + /** + * If set to `true`, requests without `Content-Length` + * or `Transfer-Encoding` headers (indicating no body) will be initialized with an + * already-ended body stream, so they will never emit any stream events + * (like `'data'` or `'end'`). You can use `req.readableEnded` to detect this case. + * @since v25.1.0 + * @default false + */ + optimizeEmptyRequests?: boolean | undefined; + } + type RequestListener< + Request extends typeof IncomingMessage = typeof IncomingMessage, + Response extends typeof ServerResponse> = typeof ServerResponse, + > = (request: InstanceType, response: InstanceType & { req: InstanceType }) => void; + interface ServerEventMap< + Request extends typeof IncomingMessage = typeof IncomingMessage, + Response extends typeof ServerResponse> = typeof ServerResponse, + > extends net.ServerEventMap { + "checkContinue": Parameters>; + "checkExpectation": Parameters>; + "clientError": [exception: Error, socket: stream.Duplex]; + "connect": [request: InstanceType, socket: stream.Duplex, head: NonSharedBuffer]; + "connection": [socket: net.Socket]; + "dropRequest": [request: InstanceType, socket: stream.Duplex]; + "request": Parameters>; + "upgrade": [req: InstanceType, socket: stream.Duplex, head: NonSharedBuffer]; + } + /** + * @since v0.1.17 + */ + class Server< + Request extends typeof IncomingMessage = typeof IncomingMessage, + Response extends typeof ServerResponse> = typeof ServerResponse, + > extends net.Server { + constructor(requestListener?: RequestListener); + constructor(options: ServerOptions, requestListener?: RequestListener); + /** + * Sets the timeout value for sockets, and emits a `'timeout'` event on + * the Server object, passing the socket as an argument, if a timeout + * occurs. + * + * If there is a `'timeout'` event listener on the Server object, then it + * will be called with the timed-out socket as an argument. + * + * By default, the Server does not timeout sockets. However, if a callback + * is assigned to the Server's `'timeout'` event, timeouts must be handled + * explicitly. + * @since v0.9.12 + * @param [msecs=0 (no timeout)] + */ + setTimeout(msecs?: number, callback?: (socket: net.Socket) => void): this; + setTimeout(callback: (socket: net.Socket) => void): this; + /** + * Limits maximum incoming headers count. If set to 0, no limit will be applied. + * @since v0.7.0 + */ + maxHeadersCount: number | null; + /** + * The maximum number of requests socket can handle + * before closing keep alive connection. + * + * A value of `0` will disable the limit. + * + * When the limit is reached it will set the `Connection` header value to `close`, + * but will not actually close the connection, subsequent requests sent + * after the limit is reached will get `503 Service Unavailable` as a response. + * @since v16.10.0 + */ + maxRequestsPerSocket: number | null; + /** + * The number of milliseconds of inactivity before a socket is presumed + * to have timed out. + * + * A value of `0` will disable the timeout behavior on incoming connections. + * + * The socket timeout logic is set up on connection, so changing this + * value only affects new connections to the server, not any existing connections. + * @since v0.9.12 + */ + timeout: number; + /** + * Limit the amount of time the parser will wait to receive the complete HTTP + * headers. + * + * If the timeout expires, the server responds with status 408 without + * forwarding the request to the request listener and then closes the connection. + * + * It must be set to a non-zero value (e.g. 120 seconds) to protect against + * potential Denial-of-Service attacks in case the server is deployed without a + * reverse proxy in front. + * @since v11.3.0, v10.14.0 + */ + headersTimeout: number; + /** + * The number of milliseconds of inactivity a server needs to wait for additional + * incoming data, after it has finished writing the last response, before a socket + * will be destroyed. + * + * This timeout value is combined with the + * `server.keepAliveTimeoutBuffer` option to determine the actual socket + * timeout, calculated as: + * socketTimeout = keepAliveTimeout + keepAliveTimeoutBuffer + * If the server receives new data before the keep-alive timeout has fired, it + * will reset the regular inactivity timeout, i.e., `server.timeout`. + * + * A value of `0` will disable the keep-alive timeout behavior on incoming + * connections. + * A value of `0` makes the HTTP server behave similarly to Node.js versions prior + * to 8.0.0, which did not have a keep-alive timeout. + * + * The socket timeout logic is set up on connection, so changing this value only + * affects new connections to the server, not any existing connections. + * @since v8.0.0 + */ + keepAliveTimeout: number; + /** + * An additional buffer time added to the + * `server.keepAliveTimeout` to extend the internal socket timeout. + * + * This buffer helps reduce connection reset (`ECONNRESET`) errors by increasing + * the socket timeout slightly beyond the advertised keep-alive timeout. + * + * This option applies only to new incoming connections. + * @since v24.6.0 + * @default 1000 + */ + keepAliveTimeoutBuffer: number; + /** + * Sets the timeout value in milliseconds for receiving the entire request from + * the client. + * + * If the timeout expires, the server responds with status 408 without + * forwarding the request to the request listener and then closes the connection. + * + * It must be set to a non-zero value (e.g. 120 seconds) to protect against + * potential Denial-of-Service attacks in case the server is deployed without a + * reverse proxy in front. + * @since v14.11.0 + */ + requestTimeout: number; + /** + * Closes all connections connected to this server. + * @since v18.2.0 + */ + closeAllConnections(): void; + /** + * Closes all connections connected to this server which are not sending a request + * or waiting for a response. + * @since v18.2.0 + */ + closeIdleConnections(): void; + // #region InternalEventEmitter + addListener( + eventName: E, + listener: (...args: ServerEventMap[E]) => void, + ): this; + addListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + emit(eventName: E, ...args: ServerEventMap[E]): boolean; + emit(eventName: string | symbol, ...args: any[]): boolean; + listenerCount( + eventName: E, + listener?: (...args: ServerEventMap[E]) => void, + ): number; + listenerCount(eventName: string | symbol, listener?: (...args: any[]) => void): number; + listeners( + eventName: E, + ): ((...args: ServerEventMap[E]) => void)[]; + listeners(eventName: string | symbol): ((...args: any[]) => void)[]; + off( + eventName: E, + listener: (...args: ServerEventMap[E]) => void, + ): this; + off(eventName: string | symbol, listener: (...args: any[]) => void): this; + on( + eventName: E, + listener: (...args: ServerEventMap[E]) => void, + ): this; + on(eventName: string | symbol, listener: (...args: any[]) => void): this; + once( + eventName: E, + listener: (...args: ServerEventMap[E]) => void, + ): this; + once(eventName: string | symbol, listener: (...args: any[]) => void): this; + prependListener( + eventName: E, + listener: (...args: ServerEventMap[E]) => void, + ): this; + prependListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + prependOnceListener( + eventName: E, + listener: (...args: ServerEventMap[E]) => void, + ): this; + prependOnceListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + rawListeners( + eventName: E, + ): ((...args: ServerEventMap[E]) => void)[]; + rawListeners(eventName: string | symbol): ((...args: any[]) => void)[]; + // eslint-disable-next-line @definitelytyped/no-unnecessary-generics + removeAllListeners(eventName?: E): this; + removeAllListeners(eventName?: string | symbol): this; + removeListener( + eventName: E, + listener: (...args: ServerEventMap[E]) => void, + ): this; + removeListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + // #endregion + } + interface OutgoingMessageEventMap extends stream.WritableEventMap { + "prefinish": []; + } + /** + * This class serves as the parent class of {@link ClientRequest} and {@link ServerResponse}. It is an abstract outgoing message from + * the perspective of the participants of an HTTP transaction. + * @since v0.1.17 + */ + class OutgoingMessage extends stream.Writable { + constructor(); + readonly req: Request; + chunkedEncoding: boolean; + shouldKeepAlive: boolean; + useChunkedEncodingByDefault: boolean; + sendDate: boolean; + /** + * @deprecated Use `writableEnded` instead. + */ + finished: boolean; + /** + * Read-only. `true` if the headers were sent, otherwise `false`. + * @since v0.9.3 + */ + readonly headersSent: boolean; + /** + * Alias of `outgoingMessage.socket`. + * @since v0.3.0 + * @deprecated Since v15.12.0,v14.17.1 - Use `socket` instead. + */ + readonly connection: net.Socket | null; + /** + * Reference to the underlying socket. Usually, users will not want to access + * this property. + * + * After calling `outgoingMessage.end()`, this property will be nulled. + * @since v0.3.0 + */ + readonly socket: net.Socket | null; + /** + * Once a socket is associated with the message and is connected, `socket.setTimeout()` will be called with `msecs` as the first parameter. + * @since v0.9.12 + * @param callback Optional function to be called when a timeout occurs. Same as binding to the `timeout` event. + */ + setTimeout(msecs: number, callback?: () => void): this; + /** + * Sets a single header value. If the header already exists in the to-be-sent + * headers, its value will be replaced. Use an array of strings to send multiple + * headers with the same name. + * @since v0.4.0 + * @param name Header name + * @param value Header value + */ + setHeader(name: string, value: number | string | readonly string[]): this; + /** + * Sets multiple header values for implicit headers. headers must be an instance of + * `Headers` or `Map`, if a header already exists in the to-be-sent headers, its + * value will be replaced. + * + * ```js + * const headers = new Headers({ foo: 'bar' }); + * outgoingMessage.setHeaders(headers); + * ``` + * + * or + * + * ```js + * const headers = new Map([['foo', 'bar']]); + * outgoingMessage.setHeaders(headers); + * ``` + * + * When headers have been set with `outgoingMessage.setHeaders()`, they will be + * merged with any headers passed to `response.writeHead()`, with the headers passed + * to `response.writeHead()` given precedence. + * + * ```js + * // Returns content-type = text/plain + * const server = http.createServer((req, res) => { + * const headers = new Headers({ 'Content-Type': 'text/html' }); + * res.setHeaders(headers); + * res.writeHead(200, { 'Content-Type': 'text/plain' }); + * res.end('ok'); + * }); + * ``` + * + * @since v19.6.0, v18.15.0 + * @param name Header name + * @param value Header value + */ + setHeaders(headers: Headers | Map): this; + /** + * Append a single header value to the header object. + * + * If the value is an array, this is equivalent to calling this method multiple + * times. + * + * If there were no previous values for the header, this is equivalent to calling `outgoingMessage.setHeader(name, value)`. + * + * Depending of the value of `options.uniqueHeaders` when the client request or the + * server were created, this will end up in the header being sent multiple times or + * a single time with values joined using `; `. + * @since v18.3.0, v16.17.0 + * @param name Header name + * @param value Header value + */ + appendHeader(name: string, value: string | readonly string[]): this; + /** + * Gets the value of the HTTP header with the given name. If that header is not + * set, the returned value will be `undefined`. + * @since v0.4.0 + * @param name Name of header + */ + getHeader(name: string): number | string | string[] | undefined; + /** + * Returns a shallow copy of the current outgoing headers. Since a shallow + * copy is used, array values may be mutated without additional calls to + * various header-related HTTP module methods. The keys of the returned + * object are the header names and the values are the respective header + * values. All header names are lowercase. + * + * The object returned by the `outgoingMessage.getHeaders()` method does + * not prototypically inherit from the JavaScript `Object`. This means that + * typical `Object` methods such as `obj.toString()`, `obj.hasOwnProperty()`, + * and others are not defined and will not work. + * + * ```js + * outgoingMessage.setHeader('Foo', 'bar'); + * outgoingMessage.setHeader('Set-Cookie', ['foo=bar', 'bar=baz']); + * + * const headers = outgoingMessage.getHeaders(); + * // headers === { foo: 'bar', 'set-cookie': ['foo=bar', 'bar=baz'] } + * ``` + * @since v7.7.0 + */ + getHeaders(): OutgoingHttpHeaders; + /** + * Returns an array containing the unique names of the current outgoing headers. + * All names are lowercase. + * @since v7.7.0 + */ + getHeaderNames(): string[]; + /** + * Returns `true` if the header identified by `name` is currently set in the + * outgoing headers. The header name is case-insensitive. + * + * ```js + * const hasContentType = outgoingMessage.hasHeader('content-type'); + * ``` + * @since v7.7.0 + */ + hasHeader(name: string): boolean; + /** + * Removes a header that is queued for implicit sending. + * + * ```js + * outgoingMessage.removeHeader('Content-Encoding'); + * ``` + * @since v0.4.0 + * @param name Header name + */ + removeHeader(name: string): void; + /** + * Adds HTTP trailers (headers but at the end of the message) to the message. + * + * Trailers will **only** be emitted if the message is chunked encoded. If not, + * the trailers will be silently discarded. + * + * HTTP requires the `Trailer` header to be sent to emit trailers, + * with a list of header field names in its value, e.g. + * + * ```js + * message.writeHead(200, { 'Content-Type': 'text/plain', + * 'Trailer': 'Content-MD5' }); + * message.write(fileData); + * message.addTrailers({ 'Content-MD5': '7895bf4b8828b55ceaf47747b4bca667' }); + * message.end(); + * ``` + * + * Attempting to set a header field name or value that contains invalid characters + * will result in a `TypeError` being thrown. + * @since v0.3.0 + */ + addTrailers(headers: OutgoingHttpHeaders | ReadonlyArray<[string, string]>): void; + /** + * Flushes the message headers. + * + * For efficiency reason, Node.js normally buffers the message headers + * until `outgoingMessage.end()` is called or the first chunk of message data + * is written. It then tries to pack the headers and data into a single TCP + * packet. + * + * It is usually desired (it saves a TCP round-trip), but not when the first + * data is not sent until possibly much later. `outgoingMessage.flushHeaders()` bypasses the optimization and kickstarts the message. + * @since v1.6.0 + */ + flushHeaders(): void; + // #region InternalEventEmitter + addListener( + eventName: E, + listener: (...args: OutgoingMessageEventMap[E]) => void, + ): this; + addListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + emit(eventName: E, ...args: OutgoingMessageEventMap[E]): boolean; + emit(eventName: string | symbol, ...args: any[]): boolean; + listenerCount( + eventName: E, + listener?: (...args: OutgoingMessageEventMap[E]) => void, + ): number; + listenerCount(eventName: string | symbol, listener?: (...args: any[]) => void): number; + listeners( + eventName: E, + ): ((...args: OutgoingMessageEventMap[E]) => void)[]; + listeners(eventName: string | symbol): ((...args: any[]) => void)[]; + off( + eventName: E, + listener: (...args: OutgoingMessageEventMap[E]) => void, + ): this; + off(eventName: string | symbol, listener: (...args: any[]) => void): this; + on( + eventName: E, + listener: (...args: OutgoingMessageEventMap[E]) => void, + ): this; + on(eventName: string | symbol, listener: (...args: any[]) => void): this; + once( + eventName: E, + listener: (...args: OutgoingMessageEventMap[E]) => void, + ): this; + once(eventName: string | symbol, listener: (...args: any[]) => void): this; + prependListener( + eventName: E, + listener: (...args: OutgoingMessageEventMap[E]) => void, + ): this; + prependListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + prependOnceListener( + eventName: E, + listener: (...args: OutgoingMessageEventMap[E]) => void, + ): this; + prependOnceListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + rawListeners( + eventName: E, + ): ((...args: OutgoingMessageEventMap[E]) => void)[]; + rawListeners(eventName: string | symbol): ((...args: any[]) => void)[]; + // eslint-disable-next-line @definitelytyped/no-unnecessary-generics + removeAllListeners(eventName?: E): this; + removeAllListeners(eventName?: string | symbol): this; + removeListener( + eventName: E, + listener: (...args: OutgoingMessageEventMap[E]) => void, + ): this; + removeListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + // #endregion + } + /** + * This object is created internally by an HTTP server, not by the user. It is + * passed as the second parameter to the `'request'` event. + * @since v0.1.17 + */ + class ServerResponse extends OutgoingMessage { + /** + * When using implicit headers (not calling `response.writeHead()` explicitly), + * this property controls the status code that will be sent to the client when + * the headers get flushed. + * + * ```js + * response.statusCode = 404; + * ``` + * + * After response header was sent to the client, this property indicates the + * status code which was sent out. + * @since v0.4.0 + */ + statusCode: number; + /** + * When using implicit headers (not calling `response.writeHead()` explicitly), + * this property controls the status message that will be sent to the client when + * the headers get flushed. If this is left as `undefined` then the standard + * message for the status code will be used. + * + * ```js + * response.statusMessage = 'Not found'; + * ``` + * + * After response header was sent to the client, this property indicates the + * status message which was sent out. + * @since v0.11.8 + */ + statusMessage: string; + /** + * If set to `true`, Node.js will check whether the `Content-Length` header value and the size of the body, in bytes, are equal. + * Mismatching the `Content-Length` header value will result + * in an `Error` being thrown, identified by `code:``'ERR_HTTP_CONTENT_LENGTH_MISMATCH'`. + * @since v18.10.0, v16.18.0 + */ + strictContentLength: boolean; + constructor(req: Request); + assignSocket(socket: net.Socket): void; + detachSocket(socket: net.Socket): void; + /** + * Sends an HTTP/1.1 100 Continue message to the client, indicating that + * the request body should be sent. See the `'checkContinue'` event on `Server`. + * @since v0.3.0 + */ + writeContinue(callback?: () => void): void; + /** + * Sends an HTTP/1.1 103 Early Hints message to the client with a Link header, + * indicating that the user agent can preload/preconnect the linked resources. + * The `hints` is an object containing the values of headers to be sent with + * early hints message. The optional `callback` argument will be called when + * the response message has been written. + * + * **Example** + * + * ```js + * const earlyHintsLink = '; rel=preload; as=style'; + * response.writeEarlyHints({ + * 'link': earlyHintsLink, + * }); + * + * const earlyHintsLinks = [ + * '; rel=preload; as=style', + * '; rel=preload; as=script', + * ]; + * response.writeEarlyHints({ + * 'link': earlyHintsLinks, + * 'x-trace-id': 'id for diagnostics', + * }); + * + * const earlyHintsCallback = () => console.log('early hints message sent'); + * response.writeEarlyHints({ + * 'link': earlyHintsLinks, + * }, earlyHintsCallback); + * ``` + * @since v18.11.0 + * @param hints An object containing the values of headers + * @param callback Will be called when the response message has been written + */ + writeEarlyHints(hints: Record, callback?: () => void): void; + /** + * Sends a response header to the request. The status code is a 3-digit HTTP + * status code, like `404`. The last argument, `headers`, are the response headers. + * Optionally one can give a human-readable `statusMessage` as the second + * argument. + * + * `headers` may be an `Array` where the keys and values are in the same list. + * It is _not_ a list of tuples. So, the even-numbered offsets are key values, + * and the odd-numbered offsets are the associated values. The array is in the same + * format as `request.rawHeaders`. + * + * Returns a reference to the `ServerResponse`, so that calls can be chained. + * + * ```js + * const body = 'hello world'; + * response + * .writeHead(200, { + * 'Content-Length': Buffer.byteLength(body), + * 'Content-Type': 'text/plain', + * }) + * .end(body); + * ``` + * + * This method must only be called once on a message and it must + * be called before `response.end()` is called. + * + * If `response.write()` or `response.end()` are called before calling + * this, the implicit/mutable headers will be calculated and call this function. + * + * When headers have been set with `response.setHeader()`, they will be merged + * with any headers passed to `response.writeHead()`, with the headers passed + * to `response.writeHead()` given precedence. + * + * If this method is called and `response.setHeader()` has not been called, + * it will directly write the supplied header values onto the network channel + * without caching internally, and the `response.getHeader()` on the header + * will not yield the expected result. If progressive population of headers is + * desired with potential future retrieval and modification, use `response.setHeader()` instead. + * + * ```js + * // Returns content-type = text/plain + * const server = http.createServer((req, res) => { + * res.setHeader('Content-Type', 'text/html'); + * res.setHeader('X-Foo', 'bar'); + * res.writeHead(200, { 'Content-Type': 'text/plain' }); + * res.end('ok'); + * }); + * ``` + * + * `Content-Length` is read in bytes, not characters. Use `Buffer.byteLength()` to determine the length of the body in bytes. Node.js + * will check whether `Content-Length` and the length of the body which has + * been transmitted are equal or not. + * + * Attempting to set a header field name or value that contains invalid characters + * will result in a `Error` being thrown. + * @since v0.1.30 + */ + writeHead( + statusCode: number, + statusMessage?: string, + headers?: OutgoingHttpHeaders | OutgoingHttpHeader[], + ): this; + writeHead(statusCode: number, headers?: OutgoingHttpHeaders | OutgoingHttpHeader[]): this; + /** + * Sends a HTTP/1.1 102 Processing message to the client, indicating that + * the request body should be sent. + * @since v10.0.0 + */ + writeProcessing(callback?: () => void): void; + } + interface InformationEvent { + httpVersion: string; + httpVersionMajor: number; + httpVersionMinor: number; + statusCode: number; + statusMessage: string; + headers: IncomingHttpHeaders; + rawHeaders: string[]; + } + interface ClientRequestEventMap extends stream.WritableEventMap { + /** @deprecated Listen for the `'close'` event instead. */ + "abort": []; + "connect": [response: IncomingMessage, socket: net.Socket, head: NonSharedBuffer]; + "continue": []; + "information": [info: InformationEvent]; + "response": [response: IncomingMessage]; + "socket": [socket: net.Socket]; + "timeout": []; + "upgrade": [response: IncomingMessage, socket: net.Socket, head: NonSharedBuffer]; + } + /** + * This object is created internally and returned from {@link request}. It + * represents an _in-progress_ request whose header has already been queued. The + * header is still mutable using the `setHeader(name, value)`, `getHeader(name)`, `removeHeader(name)` API. The actual header will + * be sent along with the first data chunk or when calling `request.end()`. + * + * To get the response, add a listener for `'response'` to the request object. `'response'` will be emitted from the request object when the response + * headers have been received. The `'response'` event is executed with one + * argument which is an instance of {@link IncomingMessage}. + * + * During the `'response'` event, one can add listeners to the + * response object; particularly to listen for the `'data'` event. + * + * If no `'response'` handler is added, then the response will be + * entirely discarded. However, if a `'response'` event handler is added, + * then the data from the response object **must** be consumed, either by + * calling `response.read()` whenever there is a `'readable'` event, or + * by adding a `'data'` handler, or by calling the `.resume()` method. + * Until the data is consumed, the `'end'` event will not fire. Also, until + * the data is read it will consume memory that can eventually lead to a + * 'process out of memory' error. + * + * For backward compatibility, `res` will only emit `'error'` if there is an `'error'` listener registered. + * + * Set `Content-Length` header to limit the response body size. + * If `response.strictContentLength` is set to `true`, mismatching the `Content-Length` header value will result in an `Error` being thrown, + * identified by `code:``'ERR_HTTP_CONTENT_LENGTH_MISMATCH'`. + * + * `Content-Length` value should be in bytes, not characters. Use `Buffer.byteLength()` to determine the length of the body in bytes. + * @since v0.1.17 + */ + class ClientRequest extends OutgoingMessage { + /** + * The `request.aborted` property will be `true` if the request has + * been aborted. + * @since v0.11.14 + * @deprecated Since v17.0.0, v16.12.0 - Check `destroyed` instead. + */ + aborted: boolean; + /** + * The request host. + * @since v14.5.0, v12.19.0 + */ + host: string; + /** + * The request protocol. + * @since v14.5.0, v12.19.0 + */ + protocol: string; + /** + * When sending request through a keep-alive enabled agent, the underlying socket + * might be reused. But if server closes connection at unfortunate time, client + * may run into a 'ECONNRESET' error. + * + * ```js + * import http from 'node:http'; + * const agent = new http.Agent({ keepAlive: true }); + * + * // Server has a 5 seconds keep-alive timeout by default + * http + * .createServer((req, res) => { + * res.write('hello\n'); + * res.end(); + * }) + * .listen(3000); + * + * setInterval(() => { + * // Adapting a keep-alive agent + * http.get('http://localhost:3000', { agent }, (res) => { + * res.on('data', (data) => { + * // Do nothing + * }); + * }); + * }, 5000); // Sending request on 5s interval so it's easy to hit idle timeout + * ``` + * + * By marking a request whether it reused socket or not, we can do + * automatic error retry base on it. + * + * ```js + * import http from 'node:http'; + * const agent = new http.Agent({ keepAlive: true }); + * + * function retriableRequest() { + * const req = http + * .get('http://localhost:3000', { agent }, (res) => { + * // ... + * }) + * .on('error', (err) => { + * // Check if retry is needed + * if (req.reusedSocket && err.code === 'ECONNRESET') { + * retriableRequest(); + * } + * }); + * } + * + * retriableRequest(); + * ``` + * @since v13.0.0, v12.16.0 + */ + reusedSocket: boolean; + /** + * Limits maximum response headers count. If set to 0, no limit will be applied. + */ + maxHeadersCount: number; + constructor(url: string | URL | ClientRequestArgs, cb?: (res: IncomingMessage) => void); + /** + * The request method. + * @since v0.1.97 + */ + method: string; + /** + * The request path. + * @since v0.4.0 + */ + path: string; + /** + * Marks the request as aborting. Calling this will cause remaining data + * in the response to be dropped and the socket to be destroyed. + * @since v0.3.8 + * @deprecated Since v14.1.0,v13.14.0 - Use `destroy` instead. + */ + abort(): void; + onSocket(socket: net.Socket): void; + /** + * Once a socket is assigned to this request and is connected `socket.setTimeout()` will be called. + * @since v0.5.9 + * @param timeout Milliseconds before a request times out. + * @param callback Optional function to be called when a timeout occurs. Same as binding to the `'timeout'` event. + */ + setTimeout(timeout: number, callback?: () => void): this; + /** + * Once a socket is assigned to this request and is connected `socket.setNoDelay()` will be called. + * @since v0.5.9 + */ + setNoDelay(noDelay?: boolean): void; + /** + * Once a socket is assigned to this request and is connected `socket.setKeepAlive()` will be called. + * @since v0.5.9 + */ + setSocketKeepAlive(enable?: boolean, initialDelay?: number): void; + /** + * Returns an array containing the unique names of the current outgoing raw + * headers. Header names are returned with their exact casing being set. + * + * ```js + * request.setHeader('Foo', 'bar'); + * request.setHeader('Set-Cookie', ['foo=bar', 'bar=baz']); + * + * const headerNames = request.getRawHeaderNames(); + * // headerNames === ['Foo', 'Set-Cookie'] + * ``` + * @since v15.13.0, v14.17.0 + */ + getRawHeaderNames(): string[]; + // #region InternalEventEmitter + addListener( + eventName: E, + listener: (...args: ClientRequestEventMap[E]) => void, + ): this; + addListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + emit(eventName: E, ...args: ClientRequestEventMap[E]): boolean; + emit(eventName: string | symbol, ...args: any[]): boolean; + listenerCount( + eventName: E, + listener?: (...args: ClientRequestEventMap[E]) => void, + ): number; + listenerCount(eventName: string | symbol, listener?: (...args: any[]) => void): number; + listeners(eventName: E): ((...args: ClientRequestEventMap[E]) => void)[]; + listeners(eventName: string | symbol): ((...args: any[]) => void)[]; + off( + eventName: E, + listener: (...args: ClientRequestEventMap[E]) => void, + ): this; + off(eventName: string | symbol, listener: (...args: any[]) => void): this; + on( + eventName: E, + listener: (...args: ClientRequestEventMap[E]) => void, + ): this; + on(eventName: string | symbol, listener: (...args: any[]) => void): this; + once( + eventName: E, + listener: (...args: ClientRequestEventMap[E]) => void, + ): this; + once(eventName: string | symbol, listener: (...args: any[]) => void): this; + prependListener( + eventName: E, + listener: (...args: ClientRequestEventMap[E]) => void, + ): this; + prependListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + prependOnceListener( + eventName: E, + listener: (...args: ClientRequestEventMap[E]) => void, + ): this; + prependOnceListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + rawListeners( + eventName: E, + ): ((...args: ClientRequestEventMap[E]) => void)[]; + rawListeners(eventName: string | symbol): ((...args: any[]) => void)[]; + // eslint-disable-next-line @definitelytyped/no-unnecessary-generics + removeAllListeners(eventName?: E): this; + removeAllListeners(eventName?: string | symbol): this; + removeListener( + eventName: E, + listener: (...args: ClientRequestEventMap[E]) => void, + ): this; + removeListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + // #endregion + } + interface IncomingMessageEventMap extends stream.ReadableEventMap { + /** @deprecated Listen for `'close'` event instead. */ + "aborted": []; + } + /** + * An `IncomingMessage` object is created by {@link Server} or {@link ClientRequest} and passed as the first argument to the `'request'` and `'response'` event respectively. It may be used to + * access response + * status, headers, and data. + * + * Different from its `socket` value which is a subclass of `stream.Duplex`, the `IncomingMessage` itself extends `stream.Readable` and is created separately to + * parse and emit the incoming HTTP headers and payload, as the underlying socket + * may be reused multiple times in case of keep-alive. + * @since v0.1.17 + */ + class IncomingMessage extends stream.Readable { + constructor(socket: net.Socket); + /** + * The `message.aborted` property will be `true` if the request has + * been aborted. + * @since v10.1.0 + * @deprecated Since v17.0.0,v16.12.0 - Check `message.destroyed` from stream.Readable. + */ + aborted: boolean; + /** + * In case of server request, the HTTP version sent by the client. In the case of + * client response, the HTTP version of the connected-to server. + * Probably either `'1.1'` or `'1.0'`. + * + * Also `message.httpVersionMajor` is the first integer and `message.httpVersionMinor` is the second. + * @since v0.1.1 + */ + httpVersion: string; + httpVersionMajor: number; + httpVersionMinor: number; + /** + * The `message.complete` property will be `true` if a complete HTTP message has + * been received and successfully parsed. + * + * This property is particularly useful as a means of determining if a client or + * server fully transmitted a message before a connection was terminated: + * + * ```js + * const req = http.request({ + * host: '127.0.0.1', + * port: 8080, + * method: 'POST', + * }, (res) => { + * res.resume(); + * res.on('end', () => { + * if (!res.complete) + * console.error( + * 'The connection was terminated while the message was still being sent'); + * }); + * }); + * ``` + * @since v0.3.0 + */ + complete: boolean; + /** + * Alias for `message.socket`. + * @since v0.1.90 + * @deprecated Since v16.0.0 - Use `socket`. + */ + connection: net.Socket; + /** + * The `net.Socket` object associated with the connection. + * + * With HTTPS support, use `request.socket.getPeerCertificate()` to obtain the + * client's authentication details. + * + * This property is guaranteed to be an instance of the `net.Socket` class, + * a subclass of `stream.Duplex`, unless the user specified a socket + * type other than `net.Socket` or internally nulled. + * @since v0.3.0 + */ + socket: net.Socket; + /** + * The request/response headers object. + * + * Key-value pairs of header names and values. Header names are lower-cased. + * + * ```js + * // Prints something like: + * // + * // { 'user-agent': 'curl/7.22.0', + * // host: '127.0.0.1:8000', + * // accept: '*' } + * console.log(request.headers); + * ``` + * + * Duplicates in raw headers are handled in the following ways, depending on the + * header name: + * + * * Duplicates of `age`, `authorization`, `content-length`, `content-type`, `etag`, `expires`, `from`, `host`, `if-modified-since`, `if-unmodified-since`, `last-modified`, `location`, + * `max-forwards`, `proxy-authorization`, `referer`, `retry-after`, `server`, or `user-agent` are discarded. + * To allow duplicate values of the headers listed above to be joined, + * use the option `joinDuplicateHeaders` in {@link request} and {@link createServer}. See RFC 9110 Section 5.3 for more + * information. + * * `set-cookie` is always an array. Duplicates are added to the array. + * * For duplicate `cookie` headers, the values are joined together with `; `. + * * For all other headers, the values are joined together with `, `. + * @since v0.1.5 + */ + headers: IncomingHttpHeaders; + /** + * Similar to `message.headers`, but there is no join logic and the values are + * always arrays of strings, even for headers received just once. + * + * ```js + * // Prints something like: + * // + * // { 'user-agent': ['curl/7.22.0'], + * // host: ['127.0.0.1:8000'], + * // accept: ['*'] } + * console.log(request.headersDistinct); + * ``` + * @since v18.3.0, v16.17.0 + */ + headersDistinct: NodeJS.Dict; + /** + * The raw request/response headers list exactly as they were received. + * + * The keys and values are in the same list. It is _not_ a + * list of tuples. So, the even-numbered offsets are key values, and the + * odd-numbered offsets are the associated values. + * + * Header names are not lowercased, and duplicates are not merged. + * + * ```js + * // Prints something like: + * // + * // [ 'user-agent', + * // 'this is invalid because there can be only one', + * // 'User-Agent', + * // 'curl/7.22.0', + * // 'Host', + * // '127.0.0.1:8000', + * // 'ACCEPT', + * // '*' ] + * console.log(request.rawHeaders); + * ``` + * @since v0.11.6 + */ + rawHeaders: string[]; + /** + * The request/response trailers object. Only populated at the `'end'` event. + * @since v0.3.0 + */ + trailers: NodeJS.Dict; + /** + * Similar to `message.trailers`, but there is no join logic and the values are + * always arrays of strings, even for headers received just once. + * Only populated at the `'end'` event. + * @since v18.3.0, v16.17.0 + */ + trailersDistinct: NodeJS.Dict; + /** + * The raw request/response trailer keys and values exactly as they were + * received. Only populated at the `'end'` event. + * @since v0.11.6 + */ + rawTrailers: string[]; + /** + * Calls `message.socket.setTimeout(msecs, callback)`. + * @since v0.5.9 + */ + setTimeout(msecs: number, callback?: () => void): this; + /** + * **Only valid for request obtained from {@link Server}.** + * + * The request method as a string. Read only. Examples: `'GET'`, `'DELETE'`. + * @since v0.1.1 + */ + method?: string | undefined; + /** + * **Only valid for request obtained from {@link Server}.** + * + * Request URL string. This contains only the URL that is present in the actual + * HTTP request. Take the following request: + * + * ```http + * GET /status?name=ryan HTTP/1.1 + * Accept: text/plain + * ``` + * + * To parse the URL into its parts: + * + * ```js + * new URL(`http://${process.env.HOST ?? 'localhost'}${request.url}`); + * ``` + * + * When `request.url` is `'/status?name=ryan'` and `process.env.HOST` is undefined: + * + * ```console + * $ node + * > new URL(`http://${process.env.HOST ?? 'localhost'}${request.url}`); + * URL { + * href: 'http://localhost/status?name=ryan', + * origin: 'http://localhost', + * protocol: 'http:', + * username: '', + * password: '', + * host: 'localhost', + * hostname: 'localhost', + * port: '', + * pathname: '/status', + * search: '?name=ryan', + * searchParams: URLSearchParams { 'name' => 'ryan' }, + * hash: '' + * } + * ``` + * + * Ensure that you set `process.env.HOST` to the server's host name, or consider replacing this part entirely. If using `req.headers.host`, ensure proper + * validation is used, as clients may specify a custom `Host` header. + * @since v0.1.90 + */ + url?: string | undefined; + /** + * **Only valid for response obtained from {@link ClientRequest}.** + * + * The 3-digit HTTP response status code. E.G. `404`. + * @since v0.1.1 + */ + statusCode?: number | undefined; + /** + * **Only valid for response obtained from {@link ClientRequest}.** + * + * The HTTP response status message (reason phrase). E.G. `OK` or `Internal Server Error`. + * @since v0.11.10 + */ + statusMessage?: string | undefined; + /** + * Calls `destroy()` on the socket that received the `IncomingMessage`. If `error` is provided, an `'error'` event is emitted on the socket and `error` is passed + * as an argument to any listeners on the event. + * @since v0.3.0 + */ + destroy(error?: Error): this; + // #region InternalEventEmitter + addListener( + eventName: E, + listener: (...args: IncomingMessageEventMap[E]) => void, + ): this; + addListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + emit(eventName: E, ...args: IncomingMessageEventMap[E]): boolean; + emit(eventName: string | symbol, ...args: any[]): boolean; + listenerCount( + eventName: E, + listener?: (...args: IncomingMessageEventMap[E]) => void, + ): number; + listenerCount(eventName: string | symbol, listener?: (...args: any[]) => void): number; + listeners( + eventName: E, + ): ((...args: IncomingMessageEventMap[E]) => void)[]; + listeners(eventName: string | symbol): ((...args: any[]) => void)[]; + off( + eventName: E, + listener: (...args: IncomingMessageEventMap[E]) => void, + ): this; + off(eventName: string | symbol, listener: (...args: any[]) => void): this; + on( + eventName: E, + listener: (...args: IncomingMessageEventMap[E]) => void, + ): this; + on(eventName: string | symbol, listener: (...args: any[]) => void): this; + once( + eventName: E, + listener: (...args: IncomingMessageEventMap[E]) => void, + ): this; + once(eventName: string | symbol, listener: (...args: any[]) => void): this; + prependListener( + eventName: E, + listener: (...args: IncomingMessageEventMap[E]) => void, + ): this; + prependListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + prependOnceListener( + eventName: E, + listener: (...args: IncomingMessageEventMap[E]) => void, + ): this; + prependOnceListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + rawListeners( + eventName: E, + ): ((...args: IncomingMessageEventMap[E]) => void)[]; + rawListeners(eventName: string | symbol): ((...args: any[]) => void)[]; + // eslint-disable-next-line @definitelytyped/no-unnecessary-generics + removeAllListeners(eventName?: E): this; + removeAllListeners(eventName?: string | symbol): this; + removeListener( + eventName: E, + listener: (...args: IncomingMessageEventMap[E]) => void, + ): this; + removeListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + // #endregion + } + interface ProxyEnv extends NodeJS.ProcessEnv { + HTTP_PROXY?: string | undefined; + HTTPS_PROXY?: string | undefined; + NO_PROXY?: string | undefined; + http_proxy?: string | undefined; + https_proxy?: string | undefined; + no_proxy?: string | undefined; + } + interface AgentOptions extends NodeJS.PartialOptions { + /** + * Keep sockets around in a pool to be used by other requests in the future. Default = false + */ + keepAlive?: boolean | undefined; + /** + * When using HTTP KeepAlive, how often to send TCP KeepAlive packets over sockets being kept alive. Default = 1000. + * Only relevant if keepAlive is set to true. + */ + keepAliveMsecs?: number | undefined; + /** + * Milliseconds to subtract from + * the server-provided `keep-alive: timeout=...` hint when determining socket + * expiration time. This buffer helps ensure the agent closes the socket + * slightly before the server does, reducing the chance of sending a request + * on a socket that’s about to be closed by the server. + * @since v24.7.0 + * @default 1000 + */ + agentKeepAliveTimeoutBuffer?: number | undefined; + /** + * Maximum number of sockets to allow per host. Default for Node 0.10 is 5, default for Node 0.12 is Infinity + */ + maxSockets?: number | undefined; + /** + * Maximum number of sockets allowed for all hosts in total. Each request will use a new socket until the maximum is reached. Default: Infinity. + */ + maxTotalSockets?: number | undefined; + /** + * Maximum number of sockets to leave open in a free state. Only relevant if keepAlive is set to true. Default = 256. + */ + maxFreeSockets?: number | undefined; + /** + * Socket timeout in milliseconds. This will set the timeout after the socket is connected. + */ + timeout?: number | undefined; + /** + * Scheduling strategy to apply when picking the next free socket to use. + * @default `lifo` + */ + scheduling?: "fifo" | "lifo" | undefined; + /** + * Environment variables for proxy configuration. See + * [Built-in Proxy Support](https://nodejs.org/docs/latest-v25.x/api/http.html#built-in-proxy-support) for details. + * @since v24.5.0 + */ + proxyEnv?: ProxyEnv | undefined; + /** + * Default port to use when the port is not specified in requests. + * @since v24.5.0 + */ + defaultPort?: number | undefined; + /** + * The protocol to use for the agent. + * @since v24.5.0 + */ + protocol?: string | undefined; + } + /** + * An `Agent` is responsible for managing connection persistence + * and reuse for HTTP clients. It maintains a queue of pending requests + * for a given host and port, reusing a single socket connection for each + * until the queue is empty, at which time the socket is either destroyed + * or put into a pool where it is kept to be used again for requests to the + * same host and port. Whether it is destroyed or pooled depends on the `keepAlive` `option`. + * + * Pooled connections have TCP Keep-Alive enabled for them, but servers may + * still close idle connections, in which case they will be removed from the + * pool and a new connection will be made when a new HTTP request is made for + * that host and port. Servers may also refuse to allow multiple requests + * over the same connection, in which case the connection will have to be + * remade for every request and cannot be pooled. The `Agent` will still make + * the requests to that server, but each one will occur over a new connection. + * + * When a connection is closed by the client or the server, it is removed + * from the pool. Any unused sockets in the pool will be unrefed so as not + * to keep the Node.js process running when there are no outstanding requests. + * (see `socket.unref()`). + * + * It is good practice, to `destroy()` an `Agent` instance when it is no + * longer in use, because unused sockets consume OS resources. + * + * Sockets are removed from an agent when the socket emits either + * a `'close'` event or an `'agentRemove'` event. When intending to keep one + * HTTP request open for a long time without keeping it in the agent, something + * like the following may be done: + * + * ```js + * http.get(options, (res) => { + * // Do stuff + * }).on('socket', (socket) => { + * socket.emit('agentRemove'); + * }); + * ``` + * + * An agent may also be used for an individual request. By providing `{agent: false}` as an option to the `http.get()` or `http.request()` functions, a one-time use `Agent` with default options + * will be used + * for the client connection. + * + * `agent:false`: + * + * ```js + * http.get({ + * hostname: 'localhost', + * port: 80, + * path: '/', + * agent: false, // Create a new agent just for this one request + * }, (res) => { + * // Do stuff with response + * }); + * ``` + * + * `options` in [`socket.connect()`](https://nodejs.org/docs/latest-v25.x/api/net.html#socketconnectoptions-connectlistener) are also supported. + * + * To configure any of them, a custom {@link Agent} instance must be created. + * + * ```js + * import http from 'node:http'; + * const keepAliveAgent = new http.Agent({ keepAlive: true }); + * options.agent = keepAliveAgent; + * http.request(options, onResponseCallback) + * ``` + * @since v0.3.4 + */ + class Agent extends EventEmitter { + /** + * By default set to 256. For agents with `keepAlive` enabled, this + * sets the maximum number of sockets that will be left open in the free + * state. + * @since v0.11.7 + */ + maxFreeSockets: number; + /** + * By default set to `Infinity`. Determines how many concurrent sockets the agent + * can have open per origin. Origin is the returned value of `agent.getName()`. + * @since v0.3.6 + */ + maxSockets: number; + /** + * By default set to `Infinity`. Determines how many concurrent sockets the agent + * can have open. Unlike `maxSockets`, this parameter applies across all origins. + * @since v14.5.0, v12.19.0 + */ + maxTotalSockets: number; + /** + * An object which contains arrays of sockets currently awaiting use by + * the agent when `keepAlive` is enabled. Do not modify. + * + * Sockets in the `freeSockets` list will be automatically destroyed and + * removed from the array on `'timeout'`. + * @since v0.11.4 + */ + readonly freeSockets: NodeJS.ReadOnlyDict; + /** + * An object which contains arrays of sockets currently in use by the + * agent. Do not modify. + * @since v0.3.6 + */ + readonly sockets: NodeJS.ReadOnlyDict; + /** + * An object which contains queues of requests that have not yet been assigned to + * sockets. Do not modify. + * @since v0.5.9 + */ + readonly requests: NodeJS.ReadOnlyDict; + constructor(opts?: AgentOptions); + /** + * Destroy any sockets that are currently in use by the agent. + * + * It is usually not necessary to do this. However, if using an + * agent with `keepAlive` enabled, then it is best to explicitly shut down + * the agent when it is no longer needed. Otherwise, + * sockets might stay open for quite a long time before the server + * terminates them. + * @since v0.11.4 + */ + destroy(): void; + /** + * Produces a socket/stream to be used for HTTP requests. + * + * By default, this function behaves identically to `net.createConnection()`, + * synchronously returning the created socket. The optional `callback` parameter in the + * signature is **not** used by this default implementation. + * + * However, custom agents may override this method to provide greater flexibility, + * for example, to create sockets asynchronously. When overriding `createConnection`: + * + * 1. **Synchronous socket creation**: The overriding method can return the + * socket/stream directly. + * 2. **Asynchronous socket creation**: The overriding method can accept the `callback` + * and pass the created socket/stream to it (e.g., `callback(null, newSocket)`). + * If an error occurs during socket creation, it should be passed as the first + * argument to the `callback` (e.g., `callback(err)`). + * + * The agent will call the provided `createConnection` function with `options` and + * this internal `callback`. The `callback` provided by the agent has a signature + * of `(err, stream)`. + * @since v0.11.4 + * @param options Options containing connection details. Check + * `net.createConnection` for the format of the options. For custom agents, + * this object is passed to the custom `createConnection` function. + * @param callback (Optional, primarily for custom agents) A function to be + * called by a custom `createConnection` implementation when the socket is + * created, especially for asynchronous operations. + * @returns The created socket. This is returned by the default + * implementation or by a custom synchronous `createConnection` implementation. + * If a custom `createConnection` uses the `callback` for asynchronous + * operation, this return value might not be the primary way to obtain the socket. + */ + createConnection( + options: ClientRequestArgs, + callback?: (err: Error | null, stream: stream.Duplex) => void, + ): stream.Duplex | null | undefined; + /** + * Called when `socket` is detached from a request and could be persisted by the`Agent`. Default behavior is to: + * + * ```js + * socket.setKeepAlive(true, this.keepAliveMsecs); + * socket.unref(); + * return true; + * ``` + * + * This method can be overridden by a particular `Agent` subclass. If this + * method returns a falsy value, the socket will be destroyed instead of persisting + * it for use with the next request. + * + * The `socket` argument can be an instance of `net.Socket`, a subclass of `stream.Duplex`. + * @since v8.1.0 + */ + keepSocketAlive(socket: stream.Duplex): void; + /** + * Called when `socket` is attached to `request` after being persisted because of + * the keep-alive options. Default behavior is to: + * + * ```js + * socket.ref(); + * ``` + * + * This method can be overridden by a particular `Agent` subclass. + * + * The `socket` argument can be an instance of `net.Socket`, a subclass of `stream.Duplex`. + * @since v8.1.0 + */ + reuseSocket(socket: stream.Duplex, request: ClientRequest): void; + /** + * Get a unique name for a set of request options, to determine whether a + * connection can be reused. For an HTTP agent, this returns`host:port:localAddress` or `host:port:localAddress:family`. For an HTTPS agent, + * the name includes the CA, cert, ciphers, and other HTTPS/TLS-specific options + * that determine socket reusability. + * @since v0.11.4 + * @param options A set of options providing information for name generation + */ + getName(options?: ClientRequestArgs): string; + } + const METHODS: string[]; + const STATUS_CODES: { + [errorCode: number]: string | undefined; + [errorCode: string]: string | undefined; + }; + /** + * Returns a new instance of {@link Server}. + * + * The `requestListener` is a function which is automatically + * added to the `'request'` event. + * + * ```js + * import http from 'node:http'; + * + * // Create a local server to receive data from + * const server = http.createServer((req, res) => { + * res.writeHead(200, { 'Content-Type': 'application/json' }); + * res.end(JSON.stringify({ + * data: 'Hello World!', + * })); + * }); + * + * server.listen(8000); + * ``` + * + * ```js + * import http from 'node:http'; + * + * // Create a local server to receive data from + * const server = http.createServer(); + * + * // Listen to the request event + * server.on('request', (request, res) => { + * res.writeHead(200, { 'Content-Type': 'application/json' }); + * res.end(JSON.stringify({ + * data: 'Hello World!', + * })); + * }); + * + * server.listen(8000); + * ``` + * @since v0.1.13 + */ + function createServer< + Request extends typeof IncomingMessage = typeof IncomingMessage, + Response extends typeof ServerResponse> = typeof ServerResponse, + >(requestListener?: RequestListener): Server; + function createServer< + Request extends typeof IncomingMessage = typeof IncomingMessage, + Response extends typeof ServerResponse> = typeof ServerResponse, + >( + options: ServerOptions, + requestListener?: RequestListener, + ): Server; + // although RequestOptions are passed as ClientRequestArgs to ClientRequest directly, + // create interface RequestOptions would make the naming more clear to developers + interface RequestOptions extends ClientRequestArgs {} + /** + * `options` in `socket.connect()` are also supported. + * + * Node.js maintains several connections per server to make HTTP requests. + * This function allows one to transparently issue requests. + * + * `url` can be a string or a `URL` object. If `url` is a + * string, it is automatically parsed with `new URL()`. If it is a `URL` object, it will be automatically converted to an ordinary `options` object. + * + * If both `url` and `options` are specified, the objects are merged, with the `options` properties taking precedence. + * + * The optional `callback` parameter will be added as a one-time listener for + * the `'response'` event. + * + * `http.request()` returns an instance of the {@link ClientRequest} class. The `ClientRequest` instance is a writable stream. If one needs to + * upload a file with a POST request, then write to the `ClientRequest` object. + * + * ```js + * import http from 'node:http'; + * import { Buffer } from 'node:buffer'; + * + * const postData = JSON.stringify({ + * 'msg': 'Hello World!', + * }); + * + * const options = { + * hostname: 'www.google.com', + * port: 80, + * path: '/upload', + * method: 'POST', + * headers: { + * 'Content-Type': 'application/json', + * 'Content-Length': Buffer.byteLength(postData), + * }, + * }; + * + * const req = http.request(options, (res) => { + * console.log(`STATUS: ${res.statusCode}`); + * console.log(`HEADERS: ${JSON.stringify(res.headers)}`); + * res.setEncoding('utf8'); + * res.on('data', (chunk) => { + * console.log(`BODY: ${chunk}`); + * }); + * res.on('end', () => { + * console.log('No more data in response.'); + * }); + * }); + * + * req.on('error', (e) => { + * console.error(`problem with request: ${e.message}`); + * }); + * + * // Write data to request body + * req.write(postData); + * req.end(); + * ``` + * + * In the example `req.end()` was called. With `http.request()` one + * must always call `req.end()` to signify the end of the request - + * even if there is no data being written to the request body. + * + * If any error is encountered during the request (be that with DNS resolution, + * TCP level errors, or actual HTTP parse errors) an `'error'` event is emitted + * on the returned request object. As with all `'error'` events, if no listeners + * are registered the error will be thrown. + * + * There are a few special headers that should be noted. + * + * * Sending a 'Connection: keep-alive' will notify Node.js that the connection to + * the server should be persisted until the next request. + * * Sending a 'Content-Length' header will disable the default chunked encoding. + * * Sending an 'Expect' header will immediately send the request headers. + * Usually, when sending 'Expect: 100-continue', both a timeout and a listener + * for the `'continue'` event should be set. See RFC 2616 Section 8.2.3 for more + * information. + * * Sending an Authorization header will override using the `auth` option + * to compute basic authentication. + * + * Example using a `URL` as `options`: + * + * ```js + * const options = new URL('http://abc:xyz@example.com'); + * + * const req = http.request(options, (res) => { + * // ... + * }); + * ``` + * + * In a successful request, the following events will be emitted in the following + * order: + * + * * `'socket'` + * * `'response'` + * * `'data'` any number of times, on the `res` object + * (`'data'` will not be emitted at all if the response body is empty, for + * instance, in most redirects) + * * `'end'` on the `res` object + * * `'close'` + * + * In the case of a connection error, the following events will be emitted: + * + * * `'socket'` + * * `'error'` + * * `'close'` + * + * In the case of a premature connection close before the response is received, + * the following events will be emitted in the following order: + * + * * `'socket'` + * * `'error'` with an error with message `'Error: socket hang up'` and code `'ECONNRESET'` + * * `'close'` + * + * In the case of a premature connection close after the response is received, + * the following events will be emitted in the following order: + * + * * `'socket'` + * * `'response'` + * * `'data'` any number of times, on the `res` object + * * (connection closed here) + * * `'aborted'` on the `res` object + * * `'close'` + * * `'error'` on the `res` object with an error with message `'Error: aborted'` and code `'ECONNRESET'` + * * `'close'` on the `res` object + * + * If `req.destroy()` is called before a socket is assigned, the following + * events will be emitted in the following order: + * + * * (`req.destroy()` called here) + * * `'error'` with an error with message `'Error: socket hang up'` and code `'ECONNRESET'`, or the error with which `req.destroy()` was called + * * `'close'` + * + * If `req.destroy()` is called before the connection succeeds, the following + * events will be emitted in the following order: + * + * * `'socket'` + * * (`req.destroy()` called here) + * * `'error'` with an error with message `'Error: socket hang up'` and code `'ECONNRESET'`, or the error with which `req.destroy()` was called + * * `'close'` + * + * If `req.destroy()` is called after the response is received, the following + * events will be emitted in the following order: + * + * * `'socket'` + * * `'response'` + * * `'data'` any number of times, on the `res` object + * * (`req.destroy()` called here) + * * `'aborted'` on the `res` object + * * `'close'` + * * `'error'` on the `res` object with an error with message `'Error: aborted'` and code `'ECONNRESET'`, or the error with which `req.destroy()` was called + * * `'close'` on the `res` object + * + * If `req.abort()` is called before a socket is assigned, the following + * events will be emitted in the following order: + * + * * (`req.abort()` called here) + * * `'abort'` + * * `'close'` + * + * If `req.abort()` is called before the connection succeeds, the following + * events will be emitted in the following order: + * + * * `'socket'` + * * (`req.abort()` called here) + * * `'abort'` + * * `'error'` with an error with message `'Error: socket hang up'` and code `'ECONNRESET'` + * * `'close'` + * + * If `req.abort()` is called after the response is received, the following + * events will be emitted in the following order: + * + * * `'socket'` + * * `'response'` + * * `'data'` any number of times, on the `res` object + * * (`req.abort()` called here) + * * `'abort'` + * * `'aborted'` on the `res` object + * * `'error'` on the `res` object with an error with message `'Error: aborted'` and code `'ECONNRESET'`. + * * `'close'` + * * `'close'` on the `res` object + * + * Setting the `timeout` option or using the `setTimeout()` function will + * not abort the request or do anything besides add a `'timeout'` event. + * + * Passing an `AbortSignal` and then calling `abort()` on the corresponding `AbortController` will behave the same way as calling `.destroy()` on the + * request. Specifically, the `'error'` event will be emitted with an error with + * the message `'AbortError: The operation was aborted'`, the code `'ABORT_ERR'` and the `cause`, if one was provided. + * @since v0.3.6 + */ + function request(options: RequestOptions | string | URL, callback?: (res: IncomingMessage) => void): ClientRequest; + function request( + url: string | URL, + options: RequestOptions, + callback?: (res: IncomingMessage) => void, + ): ClientRequest; + /** + * Since most requests are GET requests without bodies, Node.js provides this + * convenience method. The only difference between this method and {@link request} is that it sets the method to GET by default and calls `req.end()` automatically. The callback must take care to + * consume the response + * data for reasons stated in {@link ClientRequest} section. + * + * The `callback` is invoked with a single argument that is an instance of {@link IncomingMessage}. + * + * JSON fetching example: + * + * ```js + * http.get('http://localhost:8000/', (res) => { + * const { statusCode } = res; + * const contentType = res.headers['content-type']; + * + * let error; + * // Any 2xx status code signals a successful response but + * // here we're only checking for 200. + * if (statusCode !== 200) { + * error = new Error('Request Failed.\n' + + * `Status Code: ${statusCode}`); + * } else if (!/^application\/json/.test(contentType)) { + * error = new Error('Invalid content-type.\n' + + * `Expected application/json but received ${contentType}`); + * } + * if (error) { + * console.error(error.message); + * // Consume response data to free up memory + * res.resume(); + * return; + * } + * + * res.setEncoding('utf8'); + * let rawData = ''; + * res.on('data', (chunk) => { rawData += chunk; }); + * res.on('end', () => { + * try { + * const parsedData = JSON.parse(rawData); + * console.log(parsedData); + * } catch (e) { + * console.error(e.message); + * } + * }); + * }).on('error', (e) => { + * console.error(`Got error: ${e.message}`); + * }); + * + * // Create a local server to receive data from + * const server = http.createServer((req, res) => { + * res.writeHead(200, { 'Content-Type': 'application/json' }); + * res.end(JSON.stringify({ + * data: 'Hello World!', + * })); + * }); + * + * server.listen(8000); + * ``` + * @since v0.3.6 + * @param options Accepts the same `options` as {@link request}, with the method set to GET by default. + */ + function get(options: RequestOptions | string | URL, callback?: (res: IncomingMessage) => void): ClientRequest; + function get(url: string | URL, options: RequestOptions, callback?: (res: IncomingMessage) => void): ClientRequest; + /** + * Performs the low-level validations on the provided `name` that are done when `res.setHeader(name, value)` is called. + * + * Passing illegal value as `name` will result in a `TypeError` being thrown, + * identified by `code: 'ERR_INVALID_HTTP_TOKEN'`. + * + * It is not necessary to use this method before passing headers to an HTTP request + * or response. The HTTP module will automatically validate such headers. + * + * Example: + * + * ```js + * import { validateHeaderName } from 'node:http'; + * + * try { + * validateHeaderName(''); + * } catch (err) { + * console.error(err instanceof TypeError); // --> true + * console.error(err.code); // --> 'ERR_INVALID_HTTP_TOKEN' + * console.error(err.message); // --> 'Header name must be a valid HTTP token [""]' + * } + * ``` + * @since v14.3.0 + * @param [label='Header name'] Label for error message. + */ + function validateHeaderName(name: string): void; + /** + * Performs the low-level validations on the provided `value` that are done when `res.setHeader(name, value)` is called. + * + * Passing illegal value as `value` will result in a `TypeError` being thrown. + * + * * Undefined value error is identified by `code: 'ERR_HTTP_INVALID_HEADER_VALUE'`. + * * Invalid value character error is identified by `code: 'ERR_INVALID_CHAR'`. + * + * It is not necessary to use this method before passing headers to an HTTP request + * or response. The HTTP module will automatically validate such headers. + * + * Examples: + * + * ```js + * import { validateHeaderValue } from 'node:http'; + * + * try { + * validateHeaderValue('x-my-header', undefined); + * } catch (err) { + * console.error(err instanceof TypeError); // --> true + * console.error(err.code === 'ERR_HTTP_INVALID_HEADER_VALUE'); // --> true + * console.error(err.message); // --> 'Invalid value "undefined" for header "x-my-header"' + * } + * + * try { + * validateHeaderValue('x-my-header', 'oʊmɪɡə'); + * } catch (err) { + * console.error(err instanceof TypeError); // --> true + * console.error(err.code === 'ERR_INVALID_CHAR'); // --> true + * console.error(err.message); // --> 'Invalid character in header content ["x-my-header"]' + * } + * ``` + * @since v14.3.0 + * @param name Header name + * @param value Header value + */ + function validateHeaderValue(name: string, value: string): void; + /** + * Set the maximum number of idle HTTP parsers. + * @since v18.8.0, v16.18.0 + * @param [max=1000] + */ + function setMaxIdleHTTPParsers(max: number): void; + /** + * Dynamically resets the global configurations to enable built-in proxy support for + * `fetch()` and `http.request()`/`https.request()` at runtime, as an alternative + * to using the `--use-env-proxy` flag or `NODE_USE_ENV_PROXY` environment variable. + * It can also be used to override settings configured from the environment variables. + * + * As this function resets the global configurations, any previously configured + * `http.globalAgent`, `https.globalAgent` or undici global dispatcher would be + * overridden after this function is invoked. It's recommended to invoke it before any + * requests are made and avoid invoking it in the middle of any requests. + * + * See [Built-in Proxy Support](https://nodejs.org/docs/latest-v25.x/api/http.html#built-in-proxy-support) for details on proxy URL formats and `NO_PROXY` + * syntax. + * @since v25.4.0 + * @param proxyEnv An object containing proxy configuration. This accepts the + * same options as the `proxyEnv` option accepted by {@link Agent}. **Default:** + * `process.env`. + * @returns A function that restores the original agent and dispatcher + * settings to the state before this `http.setGlobalProxyFromEnv()` is invoked. + */ + function setGlobalProxyFromEnv(proxyEnv?: ProxyEnv): () => void; + /** + * Global instance of `Agent` which is used as the default for all HTTP client + * requests. Diverges from a default `Agent` configuration by having `keepAlive` + * enabled and a `timeout` of 5 seconds. + * @since v0.5.9 + */ + let globalAgent: Agent; + /** + * Read-only property specifying the maximum allowed size of HTTP headers in bytes. + * Defaults to 16KB. Configurable using the `--max-http-header-size` CLI option. + */ + const maxHeaderSize: number; + /** + * A browser-compatible implementation of `WebSocket`. + * @since v22.5.0 + */ + const WebSocket: typeof import("undici-types").WebSocket; + /** + * @since v22.5.0 + */ + const CloseEvent: typeof import("undici-types").CloseEvent; + /** + * @since v22.5.0 + */ + const MessageEvent: typeof import("undici-types").MessageEvent; +} +declare module "http" { + export * from "node:http"; +} diff --git a/server/api/node_modules/@types/node/http2.d.ts b/server/api/node_modules/@types/node/http2.d.ts new file mode 100644 index 0000000..b2fcc59 --- /dev/null +++ b/server/api/node_modules/@types/node/http2.d.ts @@ -0,0 +1,2470 @@ +declare module "node:http2" { + import { NonSharedBuffer } from "node:buffer"; + import { InternalEventEmitter } from "node:events"; + import * as fs from "node:fs"; + import * as net from "node:net"; + import * as stream from "node:stream"; + import * as tls from "node:tls"; + import * as url from "node:url"; + import { + IncomingHttpHeaders as Http1IncomingHttpHeaders, + IncomingMessage, + OutgoingHttpHeaders, + ServerResponse, + } from "node:http"; + interface IncomingHttpStatusHeader { + ":status"?: number | undefined; + } + interface IncomingHttpHeaders extends Http1IncomingHttpHeaders { + ":path"?: string | undefined; + ":method"?: string | undefined; + ":authority"?: string | undefined; + ":scheme"?: string | undefined; + } + // Http2Stream + interface StreamState { + localWindowSize?: number | undefined; + state?: number | undefined; + localClose?: number | undefined; + remoteClose?: number | undefined; + /** @deprecated */ + sumDependencyWeight?: number | undefined; + /** @deprecated */ + weight?: number | undefined; + } + interface ServerStreamResponseOptions { + endStream?: boolean | undefined; + waitForTrailers?: boolean | undefined; + } + interface StatOptions { + offset: number; + length: number; + } + interface ServerStreamFileResponseOptions { + statCheck?: + | ((stats: fs.Stats, headers: OutgoingHttpHeaders, statOptions: StatOptions) => void) + | undefined; + waitForTrailers?: boolean | undefined; + offset?: number | undefined; + length?: number | undefined; + } + interface ServerStreamFileResponseOptionsWithError extends ServerStreamFileResponseOptions { + onError?: ((err: NodeJS.ErrnoException) => void) | undefined; + } + interface Http2StreamEventMap extends stream.DuplexEventMap { + "aborted": []; + "data": [chunk: string | NonSharedBuffer]; + "frameError": [type: number, code: number, id: number]; + "ready": []; + "streamClosed": [code: number]; + "timeout": []; + "trailers": [trailers: IncomingHttpHeaders, flags: number]; + "wantTrailers": []; + } + interface Http2Stream extends stream.Duplex { + /** + * Set to `true` if the `Http2Stream` instance was aborted abnormally. When set, + * the `'aborted'` event will have been emitted. + * @since v8.4.0 + */ + readonly aborted: boolean; + /** + * This property shows the number of characters currently buffered to be written. + * See `net.Socket.bufferSize` for details. + * @since v11.2.0, v10.16.0 + */ + readonly bufferSize: number; + /** + * Set to `true` if the `Http2Stream` instance has been closed. + * @since v9.4.0 + */ + readonly closed: boolean; + /** + * Set to `true` if the `Http2Stream` instance has been destroyed and is no longer + * usable. + * @since v8.4.0 + */ + readonly destroyed: boolean; + /** + * Set to `true` if the `END_STREAM` flag was set in the request or response + * HEADERS frame received, indicating that no additional data should be received + * and the readable side of the `Http2Stream` will be closed. + * @since v10.11.0 + */ + readonly endAfterHeaders: boolean; + /** + * The numeric stream identifier of this `Http2Stream` instance. Set to `undefined` if the stream identifier has not yet been assigned. + * @since v8.4.0 + */ + readonly id?: number | undefined; + /** + * Set to `true` if the `Http2Stream` instance has not yet been assigned a + * numeric stream identifier. + * @since v9.4.0 + */ + readonly pending: boolean; + /** + * Set to the `RST_STREAM` `error code` reported when the `Http2Stream` is + * destroyed after either receiving an `RST_STREAM` frame from the connected peer, + * calling `http2stream.close()`, or `http2stream.destroy()`. Will be `undefined` if the `Http2Stream` has not been closed. + * @since v8.4.0 + */ + readonly rstCode: number; + /** + * An object containing the outbound headers sent for this `Http2Stream`. + * @since v9.5.0 + */ + readonly sentHeaders: OutgoingHttpHeaders; + /** + * An array of objects containing the outbound informational (additional) headers + * sent for this `Http2Stream`. + * @since v9.5.0 + */ + readonly sentInfoHeaders?: OutgoingHttpHeaders[] | undefined; + /** + * An object containing the outbound trailers sent for this `HttpStream`. + * @since v9.5.0 + */ + readonly sentTrailers?: OutgoingHttpHeaders | undefined; + /** + * A reference to the `Http2Session` instance that owns this `Http2Stream`. The + * value will be `undefined` after the `Http2Stream` instance is destroyed. + * @since v8.4.0 + */ + readonly session: Http2Session | undefined; + /** + * Provides miscellaneous information about the current state of the `Http2Stream`. + * + * A current state of this `Http2Stream`. + * @since v8.4.0 + */ + readonly state: StreamState; + /** + * Closes the `Http2Stream` instance by sending an `RST_STREAM` frame to the + * connected HTTP/2 peer. + * @since v8.4.0 + * @param [code=http2.constants.NGHTTP2_NO_ERROR] Unsigned 32-bit integer identifying the error code. + * @param callback An optional function registered to listen for the `'close'` event. + */ + close(code?: number, callback?: () => void): void; + /** + * @deprecated Priority signaling is no longer supported in Node.js. + */ + priority(options: unknown): void; + /** + * ```js + * import http2 from 'node:http2'; + * const client = http2.connect('http://example.org:8000'); + * const { NGHTTP2_CANCEL } = http2.constants; + * const req = client.request({ ':path': '/' }); + * + * // Cancel the stream if there's no activity after 5 seconds + * req.setTimeout(5000, () => req.close(NGHTTP2_CANCEL)); + * ``` + * @since v8.4.0 + */ + setTimeout(msecs: number, callback?: () => void): void; + /** + * Sends a trailing `HEADERS` frame to the connected HTTP/2 peer. This method + * will cause the `Http2Stream` to be immediately closed and must only be + * called after the `'wantTrailers'` event has been emitted. When sending a + * request or sending a response, the `options.waitForTrailers` option must be set + * in order to keep the `Http2Stream` open after the final `DATA` frame so that + * trailers can be sent. + * + * ```js + * import http2 from 'node:http2'; + * const server = http2.createServer(); + * server.on('stream', (stream) => { + * stream.respond(undefined, { waitForTrailers: true }); + * stream.on('wantTrailers', () => { + * stream.sendTrailers({ xyz: 'abc' }); + * }); + * stream.end('Hello World'); + * }); + * ``` + * + * The HTTP/1 specification forbids trailers from containing HTTP/2 pseudo-header + * fields (e.g. `':method'`, `':path'`, etc). + * @since v10.0.0 + */ + sendTrailers(headers: OutgoingHttpHeaders): void; + // #region InternalEventEmitter + addListener( + eventName: E, + listener: (...args: Http2StreamEventMap[E]) => void, + ): this; + addListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + emit(eventName: E, ...args: Http2StreamEventMap[E]): boolean; + emit(eventName: string | symbol, ...args: any[]): boolean; + listenerCount( + eventName: E, + listener?: (...args: Http2StreamEventMap[E]) => void, + ): number; + listenerCount(eventName: string | symbol, listener?: (...args: any[]) => void): number; + listeners(eventName: E): ((...args: Http2StreamEventMap[E]) => void)[]; + listeners(eventName: string | symbol): ((...args: any[]) => void)[]; + off( + eventName: E, + listener: (...args: Http2StreamEventMap[E]) => void, + ): this; + off(eventName: string | symbol, listener: (...args: any[]) => void): this; + on( + eventName: E, + listener: (...args: Http2StreamEventMap[E]) => void, + ): this; + on(eventName: string | symbol, listener: (...args: any[]) => void): this; + once( + eventName: E, + listener: (...args: Http2StreamEventMap[E]) => void, + ): this; + once(eventName: string | symbol, listener: (...args: any[]) => void): this; + prependListener( + eventName: E, + listener: (...args: Http2StreamEventMap[E]) => void, + ): this; + prependListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + prependOnceListener( + eventName: E, + listener: (...args: Http2StreamEventMap[E]) => void, + ): this; + prependOnceListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + rawListeners(eventName: E): ((...args: Http2StreamEventMap[E]) => void)[]; + rawListeners(eventName: string | symbol): ((...args: any[]) => void)[]; + // eslint-disable-next-line @definitelytyped/no-unnecessary-generics + removeAllListeners(eventName?: E): this; + removeAllListeners(eventName?: string | symbol): this; + removeListener( + eventName: E, + listener: (...args: Http2StreamEventMap[E]) => void, + ): this; + removeListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + // #endregion + } + interface ClientHttp2StreamEventMap extends Http2StreamEventMap { + "continue": []; + "headers": [headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number, rawHeaders: string[]]; + "push": [headers: IncomingHttpHeaders, flags: number]; + "response": [headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number, rawHeaders: string[]]; + } + interface ClientHttp2Stream extends Http2Stream { + // #region InternalEventEmitter + addListener( + eventName: E, + listener: (...args: ClientHttp2StreamEventMap[E]) => void, + ): this; + addListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + emit(eventName: E, ...args: ClientHttp2StreamEventMap[E]): boolean; + emit(eventName: string | symbol, ...args: any[]): boolean; + listenerCount( + eventName: E, + listener?: (...args: ClientHttp2StreamEventMap[E]) => void, + ): number; + listenerCount(eventName: string | symbol, listener?: (...args: any[]) => void): number; + listeners( + eventName: E, + ): ((...args: ClientHttp2StreamEventMap[E]) => void)[]; + listeners(eventName: string | symbol): ((...args: any[]) => void)[]; + off( + eventName: E, + listener: (...args: ClientHttp2StreamEventMap[E]) => void, + ): this; + off(eventName: string | symbol, listener: (...args: any[]) => void): this; + on( + eventName: E, + listener: (...args: ClientHttp2StreamEventMap[E]) => void, + ): this; + on(eventName: string | symbol, listener: (...args: any[]) => void): this; + once( + eventName: E, + listener: (...args: ClientHttp2StreamEventMap[E]) => void, + ): this; + once(eventName: string | symbol, listener: (...args: any[]) => void): this; + prependListener( + eventName: E, + listener: (...args: ClientHttp2StreamEventMap[E]) => void, + ): this; + prependListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + prependOnceListener( + eventName: E, + listener: (...args: ClientHttp2StreamEventMap[E]) => void, + ): this; + prependOnceListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + rawListeners( + eventName: E, + ): ((...args: ClientHttp2StreamEventMap[E]) => void)[]; + rawListeners(eventName: string | symbol): ((...args: any[]) => void)[]; + // eslint-disable-next-line @definitelytyped/no-unnecessary-generics + removeAllListeners(eventName?: E): this; + removeAllListeners(eventName?: string | symbol): this; + removeListener( + eventName: E, + listener: (...args: ClientHttp2StreamEventMap[E]) => void, + ): this; + removeListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + // #endregion + } + interface ServerHttp2Stream extends Http2Stream { + /** + * True if headers were sent, false otherwise (read-only). + * @since v8.4.0 + */ + readonly headersSent: boolean; + /** + * Read-only property mapped to the `SETTINGS_ENABLE_PUSH` flag of the remote + * client's most recent `SETTINGS` frame. Will be `true` if the remote peer + * accepts push streams, `false` otherwise. Settings are the same for every `Http2Stream` in the same `Http2Session`. + * @since v8.4.0 + */ + readonly pushAllowed: boolean; + /** + * Sends an additional informational `HEADERS` frame to the connected HTTP/2 peer. + * @since v8.4.0 + */ + additionalHeaders(headers: OutgoingHttpHeaders): void; + /** + * Initiates a push stream. The callback is invoked with the new `Http2Stream` instance created for the push stream passed as the second argument, or an `Error` passed as the first argument. + * + * ```js + * import http2 from 'node:http2'; + * const server = http2.createServer(); + * server.on('stream', (stream) => { + * stream.respond({ ':status': 200 }); + * stream.pushStream({ ':path': '/' }, (err, pushStream, headers) => { + * if (err) throw err; + * pushStream.respond({ ':status': 200 }); + * pushStream.end('some pushed data'); + * }); + * stream.end('some data'); + * }); + * ``` + * + * Setting the weight of a push stream is not allowed in the `HEADERS` frame. Pass + * a `weight` value to `http2stream.priority` with the `silent` option set to `true` to enable server-side bandwidth balancing between concurrent streams. + * + * Calling `http2stream.pushStream()` from within a pushed stream is not permitted + * and will throw an error. + * @since v8.4.0 + * @param callback Callback that is called once the push stream has been initiated. + */ + pushStream( + headers: OutgoingHttpHeaders, + callback?: (err: Error | null, pushStream: ServerHttp2Stream, headers: OutgoingHttpHeaders) => void, + ): void; + pushStream( + headers: OutgoingHttpHeaders, + options?: Pick, + callback?: (err: Error | null, pushStream: ServerHttp2Stream, headers: OutgoingHttpHeaders) => void, + ): void; + /** + * ```js + * import http2 from 'node:http2'; + * const server = http2.createServer(); + * server.on('stream', (stream) => { + * stream.respond({ ':status': 200 }); + * stream.end('some data'); + * }); + * ``` + * + * Initiates a response. When the `options.waitForTrailers` option is set, the `'wantTrailers'` event + * will be emitted immediately after queuing the last chunk of payload data to be sent. + * The `http2stream.sendTrailers()` method can then be used to send trailing header fields to the peer. + * + * When `options.waitForTrailers` is set, the `Http2Stream` will not automatically + * close when the final `DATA` frame is transmitted. User code must call either `http2stream.sendTrailers()` or `http2stream.close()` to close the `Http2Stream`. + * + * ```js + * import http2 from 'node:http2'; + * const server = http2.createServer(); + * server.on('stream', (stream) => { + * stream.respond({ ':status': 200 }, { waitForTrailers: true }); + * stream.on('wantTrailers', () => { + * stream.sendTrailers({ ABC: 'some value to send' }); + * }); + * stream.end('some data'); + * }); + * ``` + * @since v8.4.0 + */ + respond(headers?: OutgoingHttpHeaders | readonly string[], options?: ServerStreamResponseOptions): void; + /** + * Initiates a response whose data is read from the given file descriptor. No + * validation is performed on the given file descriptor. If an error occurs while + * attempting to read data using the file descriptor, the `Http2Stream` will be + * closed using an `RST_STREAM` frame using the standard `INTERNAL_ERROR` code. + * + * When used, the `Http2Stream` object's `Duplex` interface will be closed + * automatically. + * + * ```js + * import http2 from 'node:http2'; + * import fs from 'node:fs'; + * + * const server = http2.createServer(); + * server.on('stream', (stream) => { + * const fd = fs.openSync('/some/file', 'r'); + * + * const stat = fs.fstatSync(fd); + * const headers = { + * 'content-length': stat.size, + * 'last-modified': stat.mtime.toUTCString(), + * 'content-type': 'text/plain; charset=utf-8', + * }; + * stream.respondWithFD(fd, headers); + * stream.on('close', () => fs.closeSync(fd)); + * }); + * ``` + * + * The optional `options.statCheck` function may be specified to give user code + * an opportunity to set additional content headers based on the `fs.Stat` details + * of the given fd. If the `statCheck` function is provided, the `http2stream.respondWithFD()` method will + * perform an `fs.fstat()` call to collect details on the provided file descriptor. + * + * The `offset` and `length` options may be used to limit the response to a + * specific range subset. This can be used, for instance, to support HTTP Range + * requests. + * + * The file descriptor or `FileHandle` is not closed when the stream is closed, + * so it will need to be closed manually once it is no longer needed. + * Using the same file descriptor concurrently for multiple streams + * is not supported and may result in data loss. Re-using a file descriptor + * after a stream has finished is supported. + * + * When the `options.waitForTrailers` option is set, the `'wantTrailers'` event + * will be emitted immediately after queuing the last chunk of payload data to be + * sent. The `http2stream.sendTrailers()` method can then be used to sent trailing + * header fields to the peer. + * + * When `options.waitForTrailers` is set, the `Http2Stream` will not automatically + * close when the final `DATA` frame is transmitted. User code _must_ call either `http2stream.sendTrailers()` + * or `http2stream.close()` to close the `Http2Stream`. + * + * ```js + * import http2 from 'node:http2'; + * import fs from 'node:fs'; + * + * const server = http2.createServer(); + * server.on('stream', (stream) => { + * const fd = fs.openSync('/some/file', 'r'); + * + * const stat = fs.fstatSync(fd); + * const headers = { + * 'content-length': stat.size, + * 'last-modified': stat.mtime.toUTCString(), + * 'content-type': 'text/plain; charset=utf-8', + * }; + * stream.respondWithFD(fd, headers, { waitForTrailers: true }); + * stream.on('wantTrailers', () => { + * stream.sendTrailers({ ABC: 'some value to send' }); + * }); + * + * stream.on('close', () => fs.closeSync(fd)); + * }); + * ``` + * @since v8.4.0 + * @param fd A readable file descriptor. + */ + respondWithFD( + fd: number | fs.promises.FileHandle, + headers?: OutgoingHttpHeaders, + options?: ServerStreamFileResponseOptions, + ): void; + /** + * Sends a regular file as the response. The `path` must specify a regular file + * or an `'error'` event will be emitted on the `Http2Stream` object. + * + * When used, the `Http2Stream` object's `Duplex` interface will be closed + * automatically. + * + * The optional `options.statCheck` function may be specified to give user code + * an opportunity to set additional content headers based on the `fs.Stat` details + * of the given file: + * + * If an error occurs while attempting to read the file data, the `Http2Stream` will be closed using an + * `RST_STREAM` frame using the standard `INTERNAL_ERROR` code. + * If the `onError` callback is defined, then it will be called. Otherwise, the stream will be destroyed. + * + * Example using a file path: + * + * ```js + * import http2 from 'node:http2'; + * const server = http2.createServer(); + * server.on('stream', (stream) => { + * function statCheck(stat, headers) { + * headers['last-modified'] = stat.mtime.toUTCString(); + * } + * + * function onError(err) { + * // stream.respond() can throw if the stream has been destroyed by + * // the other side. + * try { + * if (err.code === 'ENOENT') { + * stream.respond({ ':status': 404 }); + * } else { + * stream.respond({ ':status': 500 }); + * } + * } catch (err) { + * // Perform actual error handling. + * console.error(err); + * } + * stream.end(); + * } + * + * stream.respondWithFile('/some/file', + * { 'content-type': 'text/plain; charset=utf-8' }, + * { statCheck, onError }); + * }); + * ``` + * + * The `options.statCheck` function may also be used to cancel the send operation + * by returning `false`. For instance, a conditional request may check the stat + * results to determine if the file has been modified to return an appropriate `304` response: + * + * ```js + * import http2 from 'node:http2'; + * const server = http2.createServer(); + * server.on('stream', (stream) => { + * function statCheck(stat, headers) { + * // Check the stat here... + * stream.respond({ ':status': 304 }); + * return false; // Cancel the send operation + * } + * stream.respondWithFile('/some/file', + * { 'content-type': 'text/plain; charset=utf-8' }, + * { statCheck }); + * }); + * ``` + * + * The `content-length` header field will be automatically set. + * + * The `offset` and `length` options may be used to limit the response to a + * specific range subset. This can be used, for instance, to support HTTP Range + * requests. + * + * The `options.onError` function may also be used to handle all the errors + * that could happen before the delivery of the file is initiated. The + * default behavior is to destroy the stream. + * + * When the `options.waitForTrailers` option is set, the `'wantTrailers'` event + * will be emitted immediately after queuing the last chunk of payload data to be + * sent. The `http2stream.sendTrailers()` method can then be used to sent trailing + * header fields to the peer. + * + * When `options.waitForTrailers` is set, the `Http2Stream` will not automatically + * close when the final `DATA` frame is transmitted. User code must call either`http2stream.sendTrailers()` or `http2stream.close()` to close the`Http2Stream`. + * + * ```js + * import http2 from 'node:http2'; + * const server = http2.createServer(); + * server.on('stream', (stream) => { + * stream.respondWithFile('/some/file', + * { 'content-type': 'text/plain; charset=utf-8' }, + * { waitForTrailers: true }); + * stream.on('wantTrailers', () => { + * stream.sendTrailers({ ABC: 'some value to send' }); + * }); + * }); + * ``` + * @since v8.4.0 + */ + respondWithFile( + path: string, + headers?: OutgoingHttpHeaders, + options?: ServerStreamFileResponseOptionsWithError, + ): void; + } + // Http2Session + interface Settings { + headerTableSize?: number | undefined; + enablePush?: boolean | undefined; + initialWindowSize?: number | undefined; + maxFrameSize?: number | undefined; + maxConcurrentStreams?: number | undefined; + maxHeaderListSize?: number | undefined; + enableConnectProtocol?: boolean | undefined; + } + interface ClientSessionRequestOptions { + endStream?: boolean | undefined; + exclusive?: boolean | undefined; + parent?: number | undefined; + waitForTrailers?: boolean | undefined; + signal?: AbortSignal | undefined; + } + interface SessionState { + effectiveLocalWindowSize?: number | undefined; + effectiveRecvDataLength?: number | undefined; + nextStreamID?: number | undefined; + localWindowSize?: number | undefined; + lastProcStreamID?: number | undefined; + remoteWindowSize?: number | undefined; + outboundQueueSize?: number | undefined; + deflateDynamicTableSize?: number | undefined; + inflateDynamicTableSize?: number | undefined; + } + interface Http2SessionEventMap { + "close": []; + "connect": [session: Http2Session, socket: net.Socket | tls.TLSSocket]; + "error": [err: Error]; + "frameError": [type: number, code: number, id: number]; + "goaway": [errorCode: number, lastStreamID: number, opaqueData?: NonSharedBuffer]; + "localSettings": [settings: Settings]; + "ping": [payload: Buffer]; + "remoteSettings": [settings: Settings]; + "stream": [ + stream: Http2Stream, + headers: IncomingHttpHeaders & IncomingHttpStatusHeader, + flags: number, + rawHeaders: string[], + ]; + "timeout": []; + } + interface Http2Session extends InternalEventEmitter { + /** + * Value will be `undefined` if the `Http2Session` is not yet connected to a + * socket, `h2c` if the `Http2Session` is not connected to a `TLSSocket`, or + * will return the value of the connected `TLSSocket`'s own `alpnProtocol` property. + * @since v9.4.0 + */ + readonly alpnProtocol?: string | undefined; + /** + * Will be `true` if this `Http2Session` instance has been closed, otherwise `false`. + * @since v9.4.0 + */ + readonly closed: boolean; + /** + * Will be `true` if this `Http2Session` instance is still connecting, will be set + * to `false` before emitting `connect` event and/or calling the `http2.connect` callback. + * @since v10.0.0 + */ + readonly connecting: boolean; + /** + * Will be `true` if this `Http2Session` instance has been destroyed and must no + * longer be used, otherwise `false`. + * @since v8.4.0 + */ + readonly destroyed: boolean; + /** + * Value is `undefined` if the `Http2Session` session socket has not yet been + * connected, `true` if the `Http2Session` is connected with a `TLSSocket`, + * and `false` if the `Http2Session` is connected to any other kind of socket + * or stream. + * @since v9.4.0 + */ + readonly encrypted?: boolean | undefined; + /** + * A prototype-less object describing the current local settings of this `Http2Session`. + * The local settings are local to _this_`Http2Session` instance. + * @since v8.4.0 + */ + readonly localSettings: Settings; + /** + * If the `Http2Session` is connected to a `TLSSocket`, the `originSet` property + * will return an `Array` of origins for which the `Http2Session` may be + * considered authoritative. + * + * The `originSet` property is only available when using a secure TLS connection. + * @since v9.4.0 + */ + readonly originSet?: string[] | undefined; + /** + * Indicates whether the `Http2Session` is currently waiting for acknowledgment of + * a sent `SETTINGS` frame. Will be `true` after calling the `http2session.settings()` method. + * Will be `false` once all sent `SETTINGS` frames have been acknowledged. + * @since v8.4.0 + */ + readonly pendingSettingsAck: boolean; + /** + * A prototype-less object describing the current remote settings of this`Http2Session`. + * The remote settings are set by the _connected_ HTTP/2 peer. + * @since v8.4.0 + */ + readonly remoteSettings: Settings; + /** + * Returns a `Proxy` object that acts as a `net.Socket` (or `tls.TLSSocket`) but + * limits available methods to ones safe to use with HTTP/2. + * + * `destroy`, `emit`, `end`, `pause`, `read`, `resume`, and `write` will throw + * an error with code `ERR_HTTP2_NO_SOCKET_MANIPULATION`. See `Http2Session and Sockets` for more information. + * + * `setTimeout` method will be called on this `Http2Session`. + * + * All other interactions will be routed directly to the socket. + * @since v8.4.0 + */ + readonly socket: net.Socket | tls.TLSSocket; + /** + * Provides miscellaneous information about the current state of the`Http2Session`. + * + * An object describing the current status of this `Http2Session`. + * @since v8.4.0 + */ + readonly state: SessionState; + /** + * The `http2session.type` will be equal to `http2.constants.NGHTTP2_SESSION_SERVER` if this `Http2Session` instance is a + * server, and `http2.constants.NGHTTP2_SESSION_CLIENT` if the instance is a + * client. + * @since v8.4.0 + */ + readonly type: number; + /** + * Gracefully closes the `Http2Session`, allowing any existing streams to + * complete on their own and preventing new `Http2Stream` instances from being + * created. Once closed, `http2session.destroy()`_might_ be called if there + * are no open `Http2Stream` instances. + * + * If specified, the `callback` function is registered as a handler for the`'close'` event. + * @since v9.4.0 + */ + close(callback?: () => void): void; + /** + * Immediately terminates the `Http2Session` and the associated `net.Socket` or `tls.TLSSocket`. + * + * Once destroyed, the `Http2Session` will emit the `'close'` event. If `error` is not undefined, an `'error'` event will be emitted immediately before the `'close'` event. + * + * If there are any remaining open `Http2Streams` associated with the `Http2Session`, those will also be destroyed. + * @since v8.4.0 + * @param error An `Error` object if the `Http2Session` is being destroyed due to an error. + * @param code The HTTP/2 error code to send in the final `GOAWAY` frame. If unspecified, and `error` is not undefined, the default is `INTERNAL_ERROR`, otherwise defaults to `NO_ERROR`. + */ + destroy(error?: Error, code?: number): void; + /** + * Transmits a `GOAWAY` frame to the connected peer _without_ shutting down the`Http2Session`. + * @since v9.4.0 + * @param code An HTTP/2 error code + * @param lastStreamID The numeric ID of the last processed `Http2Stream` + * @param opaqueData A `TypedArray` or `DataView` instance containing additional data to be carried within the `GOAWAY` frame. + */ + goaway(code?: number, lastStreamID?: number, opaqueData?: NodeJS.ArrayBufferView): void; + /** + * Sends a `PING` frame to the connected HTTP/2 peer. A `callback` function must + * be provided. The method will return `true` if the `PING` was sent, `false` otherwise. + * + * The maximum number of outstanding (unacknowledged) pings is determined by the `maxOutstandingPings` configuration option. The default maximum is 10. + * + * If provided, the `payload` must be a `Buffer`, `TypedArray`, or `DataView` containing 8 bytes of data that will be transmitted with the `PING` and + * returned with the ping acknowledgment. + * + * The callback will be invoked with three arguments: an error argument that will + * be `null` if the `PING` was successfully acknowledged, a `duration` argument + * that reports the number of milliseconds elapsed since the ping was sent and the + * acknowledgment was received, and a `Buffer` containing the 8-byte `PING` payload. + * + * ```js + * session.ping(Buffer.from('abcdefgh'), (err, duration, payload) => { + * if (!err) { + * console.log(`Ping acknowledged in ${duration} milliseconds`); + * console.log(`With payload '${payload.toString()}'`); + * } + * }); + * ``` + * + * If the `payload` argument is not specified, the default payload will be the + * 64-bit timestamp (little endian) marking the start of the `PING` duration. + * @since v8.9.3 + * @param payload Optional ping payload. + */ + ping(callback: (err: Error | null, duration: number, payload: NonSharedBuffer) => void): boolean; + ping( + payload: NodeJS.ArrayBufferView, + callback: (err: Error | null, duration: number, payload: NonSharedBuffer) => void, + ): boolean; + /** + * Calls `ref()` on this `Http2Session` instance's underlying `net.Socket`. + * @since v9.4.0 + */ + ref(): void; + /** + * Sets the local endpoint's window size. + * The `windowSize` is the total window size to set, not + * the delta. + * + * ```js + * import http2 from 'node:http2'; + * + * const server = http2.createServer(); + * const expectedWindowSize = 2 ** 20; + * server.on('connect', (session) => { + * + * // Set local window size to be 2 ** 20 + * session.setLocalWindowSize(expectedWindowSize); + * }); + * ``` + * @since v15.3.0, v14.18.0 + */ + setLocalWindowSize(windowSize: number): void; + /** + * Used to set a callback function that is called when there is no activity on + * the `Http2Session` after `msecs` milliseconds. The given `callback` is + * registered as a listener on the `'timeout'` event. + * @since v8.4.0 + */ + setTimeout(msecs: number, callback?: () => void): void; + /** + * Updates the current local settings for this `Http2Session` and sends a new `SETTINGS` frame to the connected HTTP/2 peer. + * + * Once called, the `http2session.pendingSettingsAck` property will be `true` while the session is waiting for the remote peer to acknowledge the new + * settings. + * + * The new settings will not become effective until the `SETTINGS` acknowledgment + * is received and the `'localSettings'` event is emitted. It is possible to send + * multiple `SETTINGS` frames while acknowledgment is still pending. + * @since v8.4.0 + * @param callback Callback that is called once the session is connected or right away if the session is already connected. + */ + settings( + settings: Settings, + callback?: (err: Error | null, settings: Settings, duration: number) => void, + ): void; + /** + * Calls `unref()` on this `Http2Session`instance's underlying `net.Socket`. + * @since v9.4.0 + */ + unref(): void; + } + interface ClientHttp2SessionEventMap extends Http2SessionEventMap { + "altsvc": [alt: string, origin: string, streamId: number]; + "connect": [session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket]; + "origin": [origins: string[]]; + "stream": [ + stream: ClientHttp2Stream, + headers: IncomingHttpHeaders & IncomingHttpStatusHeader, + flags: number, + rawHeaders: string[], + ]; + } + interface ClientHttp2Session extends Http2Session { + /** + * For HTTP/2 Client `Http2Session` instances only, the `http2session.request()` creates and returns an `Http2Stream` instance that can be used to send an + * HTTP/2 request to the connected server. + * + * When a `ClientHttp2Session` is first created, the socket may not yet be + * connected. if `clienthttp2session.request()` is called during this time, the + * actual request will be deferred until the socket is ready to go. + * If the `session` is closed before the actual request be executed, an `ERR_HTTP2_GOAWAY_SESSION` is thrown. + * + * This method is only available if `http2session.type` is equal to `http2.constants.NGHTTP2_SESSION_CLIENT`. + * + * ```js + * import http2 from 'node:http2'; + * const clientSession = http2.connect('https://localhost:1234'); + * const { + * HTTP2_HEADER_PATH, + * HTTP2_HEADER_STATUS, + * } = http2.constants; + * + * const req = clientSession.request({ [HTTP2_HEADER_PATH]: '/' }); + * req.on('response', (headers) => { + * console.log(headers[HTTP2_HEADER_STATUS]); + * req.on('data', (chunk) => { // .. }); + * req.on('end', () => { // .. }); + * }); + * ``` + * + * When the `options.waitForTrailers` option is set, the `'wantTrailers'` event + * is emitted immediately after queuing the last chunk of payload data to be sent. + * The `http2stream.sendTrailers()` method can then be called to send trailing + * headers to the peer. + * + * When `options.waitForTrailers` is set, the `Http2Stream` will not automatically + * close when the final `DATA` frame is transmitted. User code must call either`http2stream.sendTrailers()` or `http2stream.close()` to close the`Http2Stream`. + * + * When `options.signal` is set with an `AbortSignal` and then `abort` on the + * corresponding `AbortController` is called, the request will emit an `'error'`event with an `AbortError` error. + * + * The `:method` and `:path` pseudo-headers are not specified within `headers`, + * they respectively default to: + * + * * `:method` \= `'GET'` + * * `:path` \= `/` + * @since v8.4.0 + */ + request( + headers?: OutgoingHttpHeaders | readonly string[], + options?: ClientSessionRequestOptions, + ): ClientHttp2Stream; + // #region InternalEventEmitter + addListener( + eventName: E, + listener: (...args: ClientHttp2StreamEventMap[E]) => void, + ): this; + addListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + emit(eventName: E, ...args: ClientHttp2StreamEventMap[E]): boolean; + emit(eventName: string | symbol, ...args: any[]): boolean; + listenerCount( + eventName: E, + listener?: (...args: ClientHttp2StreamEventMap[E]) => void, + ): number; + listenerCount(eventName: string | symbol, listener?: (...args: any[]) => void): number; + listeners( + eventName: E, + ): ((...args: ClientHttp2StreamEventMap[E]) => void)[]; + listeners(eventName: string | symbol): ((...args: any[]) => void)[]; + off( + eventName: E, + listener: (...args: ClientHttp2StreamEventMap[E]) => void, + ): this; + off(eventName: string | symbol, listener: (...args: any[]) => void): this; + on( + eventName: E, + listener: (...args: ClientHttp2StreamEventMap[E]) => void, + ): this; + on(eventName: string | symbol, listener: (...args: any[]) => void): this; + once( + eventName: E, + listener: (...args: ClientHttp2StreamEventMap[E]) => void, + ): this; + once(eventName: string | symbol, listener: (...args: any[]) => void): this; + prependListener( + eventName: E, + listener: (...args: ClientHttp2StreamEventMap[E]) => void, + ): this; + prependListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + prependOnceListener( + eventName: E, + listener: (...args: ClientHttp2StreamEventMap[E]) => void, + ): this; + prependOnceListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + rawListeners( + eventName: E, + ): ((...args: ClientHttp2StreamEventMap[E]) => void)[]; + rawListeners(eventName: string | symbol): ((...args: any[]) => void)[]; + // eslint-disable-next-line @definitelytyped/no-unnecessary-generics + removeAllListeners(eventName?: E): this; + removeAllListeners(eventName?: string | symbol): this; + removeListener( + eventName: E, + listener: (...args: ClientHttp2StreamEventMap[E]) => void, + ): this; + removeListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + // #endregion + } + interface AlternativeServiceOptions { + origin: number | string | url.URL; + } + interface ServerHttp2SessionEventMap< + Http1Request extends typeof IncomingMessage = typeof IncomingMessage, + Http1Response extends typeof ServerResponse> = typeof ServerResponse, + Http2Request extends typeof Http2ServerRequest = typeof Http2ServerRequest, + Http2Response extends typeof Http2ServerResponse> = typeof Http2ServerResponse, + > extends Http2SessionEventMap { + "connect": [ + session: ServerHttp2Session, + socket: net.Socket | tls.TLSSocket, + ]; + "stream": [stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number, rawHeaders: string[]]; + } + interface ServerHttp2Session< + Http1Request extends typeof IncomingMessage = typeof IncomingMessage, + Http1Response extends typeof ServerResponse> = typeof ServerResponse, + Http2Request extends typeof Http2ServerRequest = typeof Http2ServerRequest, + Http2Response extends typeof Http2ServerResponse> = typeof Http2ServerResponse, + > extends Http2Session { + readonly server: + | Http2Server + | Http2SecureServer; + /** + * Submits an `ALTSVC` frame (as defined by [RFC 7838](https://tools.ietf.org/html/rfc7838)) to the connected client. + * + * ```js + * import http2 from 'node:http2'; + * + * const server = http2.createServer(); + * server.on('session', (session) => { + * // Set altsvc for origin https://example.org:80 + * session.altsvc('h2=":8000"', 'https://example.org:80'); + * }); + * + * server.on('stream', (stream) => { + * // Set altsvc for a specific stream + * stream.session.altsvc('h2=":8000"', stream.id); + * }); + * ``` + * + * Sending an `ALTSVC` frame with a specific stream ID indicates that the alternate + * service is associated with the origin of the given `Http2Stream`. + * + * The `alt` and origin string _must_ contain only ASCII bytes and are + * strictly interpreted as a sequence of ASCII bytes. The special value `'clear'`may be passed to clear any previously set alternative service for a given + * domain. + * + * When a string is passed for the `originOrStream` argument, it will be parsed as + * a URL and the origin will be derived. For instance, the origin for the + * HTTP URL `'https://example.org/foo/bar'` is the ASCII string`'https://example.org'`. An error will be thrown if either the given string + * cannot be parsed as a URL or if a valid origin cannot be derived. + * + * A `URL` object, or any object with an `origin` property, may be passed as`originOrStream`, in which case the value of the `origin` property will be + * used. The value of the `origin` property _must_ be a properly serialized + * ASCII origin. + * @since v9.4.0 + * @param alt A description of the alternative service configuration as defined by `RFC 7838`. + * @param originOrStream Either a URL string specifying the origin (or an `Object` with an `origin` property) or the numeric identifier of an active `Http2Stream` as given by the + * `http2stream.id` property. + */ + altsvc(alt: string, originOrStream: number | string | url.URL | AlternativeServiceOptions): void; + /** + * Submits an `ORIGIN` frame (as defined by [RFC 8336](https://tools.ietf.org/html/rfc8336)) to the connected client + * to advertise the set of origins for which the server is capable of providing + * authoritative responses. + * + * ```js + * import http2 from 'node:http2'; + * const options = getSecureOptionsSomehow(); + * const server = http2.createSecureServer(options); + * server.on('stream', (stream) => { + * stream.respond(); + * stream.end('ok'); + * }); + * server.on('session', (session) => { + * session.origin('https://example.com', 'https://example.org'); + * }); + * ``` + * + * When a string is passed as an `origin`, it will be parsed as a URL and the + * origin will be derived. For instance, the origin for the HTTP URL `'https://example.org/foo/bar'` is the ASCII string` 'https://example.org'`. An error will be thrown if either the given + * string + * cannot be parsed as a URL or if a valid origin cannot be derived. + * + * A `URL` object, or any object with an `origin` property, may be passed as + * an `origin`, in which case the value of the `origin` property will be + * used. The value of the `origin` property _must_ be a properly serialized + * ASCII origin. + * + * Alternatively, the `origins` option may be used when creating a new HTTP/2 + * server using the `http2.createSecureServer()` method: + * + * ```js + * import http2 from 'node:http2'; + * const options = getSecureOptionsSomehow(); + * options.origins = ['https://example.com', 'https://example.org']; + * const server = http2.createSecureServer(options); + * server.on('stream', (stream) => { + * stream.respond(); + * stream.end('ok'); + * }); + * ``` + * @since v10.12.0 + * @param origins One or more URL Strings passed as separate arguments. + */ + origin( + ...origins: Array< + | string + | url.URL + | { + origin: string; + } + > + ): void; + // #region InternalEventEmitter + addListener( + eventName: E, + listener: ( + ...args: ServerHttp2SessionEventMap[E] + ) => void, + ): this; + addListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + emit( + eventName: E, + ...args: ServerHttp2SessionEventMap[E] + ): boolean; + emit(eventName: string | symbol, ...args: any[]): boolean; + listenerCount( + eventName: E, + listener?: ( + ...args: ServerHttp2SessionEventMap[E] + ) => void, + ): number; + listenerCount(eventName: string | symbol, listener?: (...args: any[]) => void): number; + listeners( + eventName: E, + ): (( + ...args: ServerHttp2SessionEventMap[E] + ) => void)[]; + listeners(eventName: string | symbol): ((...args: any[]) => void)[]; + off( + eventName: E, + listener: ( + ...args: ServerHttp2SessionEventMap[E] + ) => void, + ): this; + off(eventName: string | symbol, listener: (...args: any[]) => void): this; + on( + eventName: E, + listener: ( + ...args: ServerHttp2SessionEventMap[E] + ) => void, + ): this; + on(eventName: string | symbol, listener: (...args: any[]) => void): this; + once( + eventName: E, + listener: ( + ...args: ServerHttp2SessionEventMap[E] + ) => void, + ): this; + once(eventName: string | symbol, listener: (...args: any[]) => void): this; + prependListener( + eventName: E, + listener: ( + ...args: ServerHttp2SessionEventMap[E] + ) => void, + ): this; + prependListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + prependOnceListener( + eventName: E, + listener: ( + ...args: ServerHttp2SessionEventMap[E] + ) => void, + ): this; + prependOnceListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + rawListeners( + eventName: E, + ): (( + ...args: ServerHttp2SessionEventMap[E] + ) => void)[]; + rawListeners(eventName: string | symbol): ((...args: any[]) => void)[]; + // eslint-disable-next-line @definitelytyped/no-unnecessary-generics + removeAllListeners(eventName?: E): this; + removeAllListeners(eventName?: string | symbol): this; + removeListener( + eventName: E, + listener: ( + ...args: ServerHttp2SessionEventMap[E] + ) => void, + ): this; + removeListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + // #endregion + } + // Http2Server + interface SessionOptions { + /** + * Sets the maximum dynamic table size for deflating header fields. + * @default 4Kib + */ + maxDeflateDynamicTableSize?: number | undefined; + /** + * Sets the maximum number of settings entries per `SETTINGS` frame. + * The minimum value allowed is `1`. + * @default 32 + */ + maxSettings?: number | undefined; + /** + * Sets the maximum memory that the `Http2Session` is permitted to use. + * The value is expressed in terms of number of megabytes, e.g. `1` equal 1 megabyte. + * The minimum value allowed is `1`. + * This is a credit based limit, existing `Http2Stream`s may cause this limit to be exceeded, + * but new `Http2Stream` instances will be rejected while this limit is exceeded. + * The current number of `Http2Stream` sessions, the current memory use of the header compression tables, + * current data queued to be sent, and unacknowledged `PING` and `SETTINGS` frames are all counted towards the current limit. + * @default 10 + */ + maxSessionMemory?: number | undefined; + /** + * Sets the maximum number of header entries. + * This is similar to `server.maxHeadersCount` or `request.maxHeadersCount` in the `node:http` module. + * The minimum value is `1`. + * @default 128 + */ + maxHeaderListPairs?: number | undefined; + /** + * Sets the maximum number of outstanding, unacknowledged pings. + * @default 10 + */ + maxOutstandingPings?: number | undefined; + /** + * Sets the maximum allowed size for a serialized, compressed block of headers. + * Attempts to send headers that exceed this limit will result in + * a `'frameError'` event being emitted and the stream being closed and destroyed. + */ + maxSendHeaderBlockLength?: number | undefined; + /** + * Strategy used for determining the amount of padding to use for `HEADERS` and `DATA` frames. + * @default http2.constants.PADDING_STRATEGY_NONE + */ + paddingStrategy?: number | undefined; + /** + * Sets the maximum number of concurrent streams for the remote peer as if a `SETTINGS` frame had been received. + * Will be overridden if the remote peer sets its own value for `maxConcurrentStreams`. + * @default 100 + */ + peerMaxConcurrentStreams?: number | undefined; + /** + * The initial settings to send to the remote peer upon connection. + */ + settings?: Settings | undefined; + /** + * The array of integer values determines the settings types, + * which are included in the `CustomSettings`-property of the received remoteSettings. + * Please see the `CustomSettings`-property of the `Http2Settings` object for more information, on the allowed setting types. + */ + remoteCustomSettings?: number[] | undefined; + /** + * Specifies a timeout in milliseconds that + * a server should wait when an [`'unknownProtocol'`][] is emitted. If the + * socket has not been destroyed by that time the server will destroy it. + * @default 100000 + */ + unknownProtocolTimeout?: number | undefined; + /** + * If `true`, it turns on strict leading + * and trailing whitespace validation for HTTP/2 header field names and values + * as per [RFC-9113](https://www.rfc-editor.org/rfc/rfc9113.html#section-8.2.1). + * @since v24.2.0 + * @default true + */ + strictFieldWhitespaceValidation?: boolean | undefined; + } + interface ClientSessionOptions extends SessionOptions { + /** + * Sets the maximum number of reserved push streams the client will accept at any given time. + * Once the current number of currently reserved push streams exceeds reaches this limit, + * new push streams sent by the server will be automatically rejected. + * The minimum allowed value is 0. The maximum allowed value is 232-1. + * A negative value sets this option to the maximum allowed value. + * @default 200 + */ + maxReservedRemoteStreams?: number | undefined; + /** + * An optional callback that receives the `URL` instance passed to `connect` and the `options` object, + * and returns any `Duplex` stream that is to be used as the connection for this session. + */ + createConnection?: ((authority: url.URL, option: SessionOptions) => stream.Duplex) | undefined; + /** + * The protocol to connect with, if not set in the `authority`. + * Value may be either `'http:'` or `'https:'`. + * @default 'https:' + */ + protocol?: "http:" | "https:" | undefined; + } + interface ServerSessionOptions< + Http1Request extends typeof IncomingMessage = typeof IncomingMessage, + Http1Response extends typeof ServerResponse> = typeof ServerResponse, + Http2Request extends typeof Http2ServerRequest = typeof Http2ServerRequest, + Http2Response extends typeof Http2ServerResponse> = typeof Http2ServerResponse, + > extends SessionOptions { + streamResetBurst?: number | undefined; + streamResetRate?: number | undefined; + Http1IncomingMessage?: Http1Request | undefined; + Http1ServerResponse?: Http1Response | undefined; + Http2ServerRequest?: Http2Request | undefined; + Http2ServerResponse?: Http2Response | undefined; + } + interface SecureClientSessionOptions extends ClientSessionOptions, tls.ConnectionOptions {} + interface SecureServerSessionOptions< + Http1Request extends typeof IncomingMessage = typeof IncomingMessage, + Http1Response extends typeof ServerResponse> = typeof ServerResponse, + Http2Request extends typeof Http2ServerRequest = typeof Http2ServerRequest, + Http2Response extends typeof Http2ServerResponse> = typeof Http2ServerResponse, + > extends ServerSessionOptions, tls.TlsOptions {} + interface ServerOptions< + Http1Request extends typeof IncomingMessage = typeof IncomingMessage, + Http1Response extends typeof ServerResponse> = typeof ServerResponse, + Http2Request extends typeof Http2ServerRequest = typeof Http2ServerRequest, + Http2Response extends typeof Http2ServerResponse> = typeof Http2ServerResponse, + > extends ServerSessionOptions {} + interface SecureServerOptions< + Http1Request extends typeof IncomingMessage = typeof IncomingMessage, + Http1Response extends typeof ServerResponse> = typeof ServerResponse, + Http2Request extends typeof Http2ServerRequest = typeof Http2ServerRequest, + Http2Response extends typeof Http2ServerResponse> = typeof Http2ServerResponse, + > extends SecureServerSessionOptions { + allowHTTP1?: boolean | undefined; + origins?: string[] | undefined; + } + interface Http2ServerCommon { + setTimeout(msec?: number, callback?: () => void): this; + /** + * Throws ERR_HTTP2_INVALID_SETTING_VALUE for invalid settings values. + * Throws ERR_INVALID_ARG_TYPE for invalid settings argument. + */ + updateSettings(settings: Settings): void; + } + interface Http2ServerEventMap< + Http1Request extends typeof IncomingMessage = typeof IncomingMessage, + Http1Response extends typeof ServerResponse> = typeof ServerResponse, + Http2Request extends typeof Http2ServerRequest = typeof Http2ServerRequest, + Http2Response extends typeof Http2ServerResponse> = typeof Http2ServerResponse, + > extends net.ServerEventMap, Pick { + "checkContinue": [request: InstanceType, response: InstanceType]; + "request": [request: InstanceType, response: InstanceType]; + "session": [session: ServerHttp2Session]; + "sessionError": [err: Error]; + } + interface Http2Server< + Http1Request extends typeof IncomingMessage = typeof IncomingMessage, + Http1Response extends typeof ServerResponse> = typeof ServerResponse, + Http2Request extends typeof Http2ServerRequest = typeof Http2ServerRequest, + Http2Response extends typeof Http2ServerResponse> = typeof Http2ServerResponse, + > extends net.Server, Http2ServerCommon { + // #region InternalEventEmitter + addListener( + eventName: E, + listener: ( + ...args: Http2ServerEventMap[E] + ) => void, + ): this; + addListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + emit( + eventName: E, + ...args: Http2ServerEventMap[E] + ): boolean; + emit(eventName: string | symbol, ...args: any[]): boolean; + listenerCount( + eventName: E, + listener?: ( + ...args: Http2ServerEventMap[E] + ) => void, + ): number; + listenerCount(eventName: string | symbol, listener?: (...args: any[]) => void): number; + listeners( + eventName: E, + ): ((...args: Http2ServerEventMap[E]) => void)[]; + listeners(eventName: string | symbol): ((...args: any[]) => void)[]; + off( + eventName: E, + listener: ( + ...args: Http2ServerEventMap[E] + ) => void, + ): this; + off(eventName: string | symbol, listener: (...args: any[]) => void): this; + on( + eventName: E, + listener: ( + ...args: Http2ServerEventMap[E] + ) => void, + ): this; + on(eventName: string | symbol, listener: (...args: any[]) => void): this; + once( + eventName: E, + listener: ( + ...args: Http2ServerEventMap[E] + ) => void, + ): this; + once(eventName: string | symbol, listener: (...args: any[]) => void): this; + prependListener( + eventName: E, + listener: ( + ...args: Http2ServerEventMap[E] + ) => void, + ): this; + prependListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + prependOnceListener( + eventName: E, + listener: ( + ...args: Http2ServerEventMap[E] + ) => void, + ): this; + prependOnceListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + rawListeners( + eventName: E, + ): ((...args: Http2ServerEventMap[E]) => void)[]; + rawListeners(eventName: string | symbol): ((...args: any[]) => void)[]; + // eslint-disable-next-line @definitelytyped/no-unnecessary-generics + removeAllListeners(eventName?: E): this; + removeAllListeners(eventName?: string | symbol): this; + removeListener( + eventName: E, + listener: ( + ...args: Http2ServerEventMap[E] + ) => void, + ): this; + removeListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + // #endregion + } + interface Http2SecureServerEventMap< + Http1Request extends typeof IncomingMessage = typeof IncomingMessage, + Http1Response extends typeof ServerResponse> = typeof ServerResponse, + Http2Request extends typeof Http2ServerRequest = typeof Http2ServerRequest, + Http2Response extends typeof Http2ServerResponse> = typeof Http2ServerResponse, + > extends tls.ServerEventMap, Http2ServerEventMap { + "unknownProtocol": [socket: tls.TLSSocket]; + } + interface Http2SecureServer< + Http1Request extends typeof IncomingMessage = typeof IncomingMessage, + Http1Response extends typeof ServerResponse> = typeof ServerResponse, + Http2Request extends typeof Http2ServerRequest = typeof Http2ServerRequest, + Http2Response extends typeof Http2ServerResponse> = typeof Http2ServerResponse, + > extends tls.Server, Http2ServerCommon { + // #region InternalEventEmitter + addListener( + eventName: E, + listener: ( + ...args: Http2SecureServerEventMap[E] + ) => void, + ): this; + addListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + emit( + eventName: E, + ...args: Http2SecureServerEventMap[E] + ): boolean; + emit(eventName: string | symbol, ...args: any[]): boolean; + listenerCount( + eventName: E, + listener?: ( + ...args: Http2SecureServerEventMap[E] + ) => void, + ): number; + listenerCount(eventName: string | symbol, listener?: (...args: any[]) => void): number; + listeners( + eventName: E, + ): (( + ...args: Http2SecureServerEventMap[E] + ) => void)[]; + listeners(eventName: string | symbol): ((...args: any[]) => void)[]; + off( + eventName: E, + listener: ( + ...args: Http2SecureServerEventMap[E] + ) => void, + ): this; + off(eventName: string | symbol, listener: (...args: any[]) => void): this; + on( + eventName: E, + listener: ( + ...args: Http2SecureServerEventMap[E] + ) => void, + ): this; + on(eventName: string | symbol, listener: (...args: any[]) => void): this; + once( + eventName: E, + listener: ( + ...args: Http2SecureServerEventMap[E] + ) => void, + ): this; + once(eventName: string | symbol, listener: (...args: any[]) => void): this; + prependListener( + eventName: E, + listener: ( + ...args: Http2SecureServerEventMap[E] + ) => void, + ): this; + prependListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + prependOnceListener( + eventName: E, + listener: ( + ...args: Http2SecureServerEventMap[E] + ) => void, + ): this; + prependOnceListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + rawListeners( + eventName: E, + ): (( + ...args: Http2SecureServerEventMap[E] + ) => void)[]; + rawListeners(eventName: string | symbol): ((...args: any[]) => void)[]; + // eslint-disable-next-line @definitelytyped/no-unnecessary-generics + removeAllListeners(eventName?: E): this; + removeAllListeners(eventName?: string | symbol): this; + removeListener( + eventName: E, + listener: ( + ...args: Http2SecureServerEventMap[E] + ) => void, + ): this; + removeListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + // #endregion + } + interface Http2ServerRequestEventMap extends stream.ReadableEventMap { + "aborted": [hadError: boolean, code: number]; + "data": [chunk: string | NonSharedBuffer]; + } + /** + * A `Http2ServerRequest` object is created by {@link Server} or {@link SecureServer} and passed as the first argument to the `'request'` event. It may be used to access a request status, + * headers, and + * data. + * @since v8.4.0 + */ + class Http2ServerRequest extends stream.Readable { + constructor( + stream: ServerHttp2Stream, + headers: IncomingHttpHeaders, + options: stream.ReadableOptions, + rawHeaders: readonly string[], + ); + /** + * The `request.aborted` property will be `true` if the request has + * been aborted. + * @since v10.1.0 + */ + readonly aborted: boolean; + /** + * The request authority pseudo header field. Because HTTP/2 allows requests + * to set either `:authority` or `host`, this value is derived from `req.headers[':authority']` if present. Otherwise, it is derived from `req.headers['host']`. + * @since v8.4.0 + */ + readonly authority: string; + /** + * See `request.socket`. + * @since v8.4.0 + * @deprecated Since v13.0.0 - Use `socket`. + */ + readonly connection: net.Socket | tls.TLSSocket; + /** + * The `request.complete` property will be `true` if the request has + * been completed, aborted, or destroyed. + * @since v12.10.0 + */ + readonly complete: boolean; + /** + * The request/response headers object. + * + * Key-value pairs of header names and values. Header names are lower-cased. + * + * ```js + * // Prints something like: + * // + * // { 'user-agent': 'curl/7.22.0', + * // host: '127.0.0.1:8000', + * // accept: '*' } + * console.log(request.headers); + * ``` + * + * See `HTTP/2 Headers Object`. + * + * In HTTP/2, the request path, host name, protocol, and method are represented as + * special headers prefixed with the `:` character (e.g. `':path'`). These special + * headers will be included in the `request.headers` object. Care must be taken not + * to inadvertently modify these special headers or errors may occur. For instance, + * removing all headers from the request will cause errors to occur: + * + * ```js + * removeAllHeaders(request.headers); + * assert(request.url); // Fails because the :path header has been removed + * ``` + * @since v8.4.0 + */ + readonly headers: IncomingHttpHeaders; + /** + * In case of server request, the HTTP version sent by the client. In the case of + * client response, the HTTP version of the connected-to server. Returns `'2.0'`. + * + * Also `message.httpVersionMajor` is the first integer and `message.httpVersionMinor` is the second. + * @since v8.4.0 + */ + readonly httpVersion: string; + readonly httpVersionMinor: number; + readonly httpVersionMajor: number; + /** + * The request method as a string. Read-only. Examples: `'GET'`, `'DELETE'`. + * @since v8.4.0 + */ + readonly method: string; + /** + * The raw request/response headers list exactly as they were received. + * + * The keys and values are in the same list. It is _not_ a + * list of tuples. So, the even-numbered offsets are key values, and the + * odd-numbered offsets are the associated values. + * + * Header names are not lowercased, and duplicates are not merged. + * + * ```js + * // Prints something like: + * // + * // [ 'user-agent', + * // 'this is invalid because there can be only one', + * // 'User-Agent', + * // 'curl/7.22.0', + * // 'Host', + * // '127.0.0.1:8000', + * // 'ACCEPT', + * // '*' ] + * console.log(request.rawHeaders); + * ``` + * @since v8.4.0 + */ + readonly rawHeaders: string[]; + /** + * The raw request/response trailer keys and values exactly as they were + * received. Only populated at the `'end'` event. + * @since v8.4.0 + */ + readonly rawTrailers: string[]; + /** + * The request scheme pseudo header field indicating the scheme + * portion of the target URL. + * @since v8.4.0 + */ + readonly scheme: string; + /** + * Returns a `Proxy` object that acts as a `net.Socket` (or `tls.TLSSocket`) but + * applies getters, setters, and methods based on HTTP/2 logic. + * + * `destroyed`, `readable`, and `writable` properties will be retrieved from and + * set on `request.stream`. + * + * `destroy`, `emit`, `end`, `on` and `once` methods will be called on `request.stream`. + * + * `setTimeout` method will be called on `request.stream.session`. + * + * `pause`, `read`, `resume`, and `write` will throw an error with code `ERR_HTTP2_NO_SOCKET_MANIPULATION`. See `Http2Session and Sockets` for + * more information. + * + * All other interactions will be routed directly to the socket. With TLS support, + * use `request.socket.getPeerCertificate()` to obtain the client's + * authentication details. + * @since v8.4.0 + */ + readonly socket: net.Socket | tls.TLSSocket; + /** + * The `Http2Stream` object backing the request. + * @since v8.4.0 + */ + readonly stream: ServerHttp2Stream; + /** + * The request/response trailers object. Only populated at the `'end'` event. + * @since v8.4.0 + */ + readonly trailers: IncomingHttpHeaders; + /** + * Request URL string. This contains only the URL that is present in the actual + * HTTP request. If the request is: + * + * ```http + * GET /status?name=ryan HTTP/1.1 + * Accept: text/plain + * ``` + * + * Then `request.url` will be: + * + * ```js + * '/status?name=ryan' + * ``` + * + * To parse the url into its parts, `new URL()` can be used: + * + * ```console + * $ node + * > new URL('/status?name=ryan', 'http://example.com') + * URL { + * href: 'http://example.com/status?name=ryan', + * origin: 'http://example.com', + * protocol: 'http:', + * username: '', + * password: '', + * host: 'example.com', + * hostname: 'example.com', + * port: '', + * pathname: '/status', + * search: '?name=ryan', + * searchParams: URLSearchParams { 'name' => 'ryan' }, + * hash: '' + * } + * ``` + * @since v8.4.0 + */ + url: string; + /** + * Sets the `Http2Stream`'s timeout value to `msecs`. If a callback is + * provided, then it is added as a listener on the `'timeout'` event on + * the response object. + * + * If no `'timeout'` listener is added to the request, the response, or + * the server, then `Http2Stream`s are destroyed when they time out. If a + * handler is assigned to the request, the response, or the server's `'timeout'`events, timed out sockets must be handled explicitly. + * @since v8.4.0 + */ + setTimeout(msecs: number, callback?: () => void): void; + read(size?: number): Buffer | string | null; + // #region InternalEventEmitter + addListener( + eventName: E, + listener: (...args: Http2ServerRequestEventMap[E]) => void, + ): this; + addListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + emit(eventName: E, ...args: Http2ServerRequestEventMap[E]): boolean; + emit(eventName: string | symbol, ...args: any[]): boolean; + listenerCount( + eventName: E, + listener?: (...args: Http2ServerRequestEventMap[E]) => void, + ): number; + listenerCount(eventName: string | symbol, listener?: (...args: any[]) => void): number; + listeners( + eventName: E, + ): ((...args: Http2ServerRequestEventMap[E]) => void)[]; + listeners(eventName: string | symbol): ((...args: any[]) => void)[]; + off( + eventName: E, + listener: (...args: Http2ServerRequestEventMap[E]) => void, + ): this; + off(eventName: string | symbol, listener: (...args: any[]) => void): this; + on( + eventName: E, + listener: (...args: Http2ServerRequestEventMap[E]) => void, + ): this; + on(eventName: string | symbol, listener: (...args: any[]) => void): this; + once( + eventName: E, + listener: (...args: Http2ServerRequestEventMap[E]) => void, + ): this; + once(eventName: string | symbol, listener: (...args: any[]) => void): this; + prependListener( + eventName: E, + listener: (...args: Http2ServerRequestEventMap[E]) => void, + ): this; + prependListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + prependOnceListener( + eventName: E, + listener: (...args: Http2ServerRequestEventMap[E]) => void, + ): this; + prependOnceListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + rawListeners( + eventName: E, + ): ((...args: Http2ServerRequestEventMap[E]) => void)[]; + rawListeners(eventName: string | symbol): ((...args: any[]) => void)[]; + // eslint-disable-next-line @definitelytyped/no-unnecessary-generics + removeAllListeners(eventName?: E): this; + removeAllListeners(eventName?: string | symbol): this; + removeListener( + eventName: E, + listener: (...args: Http2ServerRequestEventMap[E]) => void, + ): this; + removeListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + // #endregion + } + /** + * This object is created internally by an HTTP server, not by the user. It is + * passed as the second parameter to the `'request'` event. + * @since v8.4.0 + */ + class Http2ServerResponse extends stream.Writable { + constructor(stream: ServerHttp2Stream); + /** + * See `response.socket`. + * @since v8.4.0 + * @deprecated Since v13.0.0 - Use `socket`. + */ + readonly connection: net.Socket | tls.TLSSocket; + /** + * Append a single header value to the header object. + * + * If the value is an array, this is equivalent to calling this method multiple times. + * + * If there were no previous values for the header, this is equivalent to calling {@link setHeader}. + * + * Attempting to set a header field name or value that contains invalid characters will result in a + * [TypeError](https://nodejs.org/docs/latest-v25.x/api/errors.html#class-typeerror) being thrown. + * + * ```js + * // Returns headers including "set-cookie: a" and "set-cookie: b" + * const server = http2.createServer((req, res) => { + * res.setHeader('set-cookie', 'a'); + * res.appendHeader('set-cookie', 'b'); + * res.writeHead(200); + * res.end('ok'); + * }); + * ``` + * @since v20.12.0 + */ + appendHeader(name: string, value: string | string[]): void; + /** + * Boolean value that indicates whether the response has completed. Starts + * as `false`. After `response.end()` executes, the value will be `true`. + * @since v8.4.0 + * @deprecated Since v13.4.0,v12.16.0 - Use `writableEnded`. + */ + readonly finished: boolean; + /** + * True if headers were sent, false otherwise (read-only). + * @since v8.4.0 + */ + readonly headersSent: boolean; + /** + * A reference to the original HTTP2 `request` object. + * @since v15.7.0 + */ + readonly req: Request; + /** + * Returns a `Proxy` object that acts as a `net.Socket` (or `tls.TLSSocket`) but + * applies getters, setters, and methods based on HTTP/2 logic. + * + * `destroyed`, `readable`, and `writable` properties will be retrieved from and + * set on `response.stream`. + * + * `destroy`, `emit`, `end`, `on` and `once` methods will be called on `response.stream`. + * + * `setTimeout` method will be called on `response.stream.session`. + * + * `pause`, `read`, `resume`, and `write` will throw an error with code `ERR_HTTP2_NO_SOCKET_MANIPULATION`. See `Http2Session and Sockets` for + * more information. + * + * All other interactions will be routed directly to the socket. + * + * ```js + * import http2 from 'node:http2'; + * const server = http2.createServer((req, res) => { + * const ip = req.socket.remoteAddress; + * const port = req.socket.remotePort; + * res.end(`Your IP address is ${ip} and your source port is ${port}.`); + * }).listen(3000); + * ``` + * @since v8.4.0 + */ + readonly socket: net.Socket | tls.TLSSocket; + /** + * The `Http2Stream` object backing the response. + * @since v8.4.0 + */ + readonly stream: ServerHttp2Stream; + /** + * When true, the Date header will be automatically generated and sent in + * the response if it is not already present in the headers. Defaults to true. + * + * This should only be disabled for testing; HTTP requires the Date header + * in responses. + * @since v8.4.0 + */ + sendDate: boolean; + /** + * When using implicit headers (not calling `response.writeHead()` explicitly), + * this property controls the status code that will be sent to the client when + * the headers get flushed. + * + * ```js + * response.statusCode = 404; + * ``` + * + * After response header was sent to the client, this property indicates the + * status code which was sent out. + * @since v8.4.0 + */ + statusCode: number; + /** + * Status message is not supported by HTTP/2 (RFC 7540 8.1.2.4). It returns + * an empty string. + * @since v8.4.0 + */ + statusMessage: ""; + /** + * This method adds HTTP trailing headers (a header but at the end of the + * message) to the response. + * + * Attempting to set a header field name or value that contains invalid characters + * will result in a `TypeError` being thrown. + * @since v8.4.0 + */ + addTrailers(trailers: OutgoingHttpHeaders): void; + /** + * This method signals to the server that all of the response headers and body + * have been sent; that server should consider this message complete. + * The method, `response.end()`, MUST be called on each response. + * + * If `data` is specified, it is equivalent to calling `response.write(data, encoding)` followed by `response.end(callback)`. + * + * If `callback` is specified, it will be called when the response stream + * is finished. + * @since v8.4.0 + */ + end(callback?: () => void): this; + end(data: string | Uint8Array, callback?: () => void): this; + end(data: string | Uint8Array, encoding: BufferEncoding, callback?: () => void): this; + /** + * Reads out a header that has already been queued but not sent to the client. + * The name is case-insensitive. + * + * ```js + * const contentType = response.getHeader('content-type'); + * ``` + * @since v8.4.0 + */ + getHeader(name: string): string; + /** + * Returns an array containing the unique names of the current outgoing headers. + * All header names are lowercase. + * + * ```js + * response.setHeader('Foo', 'bar'); + * response.setHeader('Set-Cookie', ['foo=bar', 'bar=baz']); + * + * const headerNames = response.getHeaderNames(); + * // headerNames === ['foo', 'set-cookie'] + * ``` + * @since v8.4.0 + */ + getHeaderNames(): string[]; + /** + * Returns a shallow copy of the current outgoing headers. Since a shallow copy + * is used, array values may be mutated without additional calls to various + * header-related http module methods. The keys of the returned object are the + * header names and the values are the respective header values. All header names + * are lowercase. + * + * The object returned by the `response.getHeaders()` method _does not_ prototypically inherit from the JavaScript `Object`. This means that typical `Object` methods such as `obj.toString()`, + * `obj.hasOwnProperty()`, and others + * are not defined and _will not work_. + * + * ```js + * response.setHeader('Foo', 'bar'); + * response.setHeader('Set-Cookie', ['foo=bar', 'bar=baz']); + * + * const headers = response.getHeaders(); + * // headers === { foo: 'bar', 'set-cookie': ['foo=bar', 'bar=baz'] } + * ``` + * @since v8.4.0 + */ + getHeaders(): OutgoingHttpHeaders; + /** + * Returns `true` if the header identified by `name` is currently set in the + * outgoing headers. The header name matching is case-insensitive. + * + * ```js + * const hasContentType = response.hasHeader('content-type'); + * ``` + * @since v8.4.0 + */ + hasHeader(name: string): boolean; + /** + * Removes a header that has been queued for implicit sending. + * + * ```js + * response.removeHeader('Content-Encoding'); + * ``` + * @since v8.4.0 + */ + removeHeader(name: string): void; + /** + * Sets a single header value for implicit headers. If this header already exists + * in the to-be-sent headers, its value will be replaced. Use an array of strings + * here to send multiple headers with the same name. + * + * ```js + * response.setHeader('Content-Type', 'text/html; charset=utf-8'); + * ``` + * + * or + * + * ```js + * response.setHeader('Set-Cookie', ['type=ninja', 'language=javascript']); + * ``` + * + * Attempting to set a header field name or value that contains invalid characters + * will result in a `TypeError` being thrown. + * + * When headers have been set with `response.setHeader()`, they will be merged + * with any headers passed to `response.writeHead()`, with the headers passed + * to `response.writeHead()` given precedence. + * + * ```js + * // Returns content-type = text/plain + * const server = http2.createServer((req, res) => { + * res.setHeader('Content-Type', 'text/html; charset=utf-8'); + * res.setHeader('X-Foo', 'bar'); + * res.writeHead(200, { 'Content-Type': 'text/plain; charset=utf-8' }); + * res.end('ok'); + * }); + * ``` + * @since v8.4.0 + */ + setHeader(name: string, value: number | string | readonly string[]): void; + /** + * Sets the `Http2Stream`'s timeout value to `msecs`. If a callback is + * provided, then it is added as a listener on the `'timeout'` event on + * the response object. + * + * If no `'timeout'` listener is added to the request, the response, or + * the server, then `Http2Stream` s are destroyed when they time out. If a + * handler is assigned to the request, the response, or the server's `'timeout'` events, timed out sockets must be handled explicitly. + * @since v8.4.0 + */ + setTimeout(msecs: number, callback?: () => void): void; + /** + * If this method is called and `response.writeHead()` has not been called, + * it will switch to implicit header mode and flush the implicit headers. + * + * This sends a chunk of the response body. This method may + * be called multiple times to provide successive parts of the body. + * + * In the `node:http` module, the response body is omitted when the + * request is a HEAD request. Similarly, the `204` and `304` responses _must not_ include a message body. + * + * `chunk` can be a string or a buffer. If `chunk` is a string, + * the second parameter specifies how to encode it into a byte stream. + * By default the `encoding` is `'utf8'`. `callback` will be called when this chunk + * of data is flushed. + * + * This is the raw HTTP body and has nothing to do with higher-level multi-part + * body encodings that may be used. + * + * The first time `response.write()` is called, it will send the buffered + * header information and the first chunk of the body to the client. The second + * time `response.write()` is called, Node.js assumes data will be streamed, + * and sends the new data separately. That is, the response is buffered up to the + * first chunk of the body. + * + * Returns `true` if the entire data was flushed successfully to the kernel + * buffer. Returns `false` if all or part of the data was queued in user memory.`'drain'` will be emitted when the buffer is free again. + * @since v8.4.0 + */ + write(chunk: string | Uint8Array, callback?: (err: Error) => void): boolean; + write(chunk: string | Uint8Array, encoding: BufferEncoding, callback?: (err: Error) => void): boolean; + /** + * Sends a status `100 Continue` to the client, indicating that the request body + * should be sent. See the `'checkContinue'` event on `Http2Server` and `Http2SecureServer`. + * @since v8.4.0 + */ + writeContinue(): void; + /** + * Sends a status `103 Early Hints` to the client with a Link header, + * indicating that the user agent can preload/preconnect the linked resources. + * The `hints` is an object containing the values of headers to be sent with + * early hints message. + * + * **Example** + * + * ```js + * const earlyHintsLink = '; rel=preload; as=style'; + * response.writeEarlyHints({ + * 'link': earlyHintsLink, + * }); + * + * const earlyHintsLinks = [ + * '; rel=preload; as=style', + * '; rel=preload; as=script', + * ]; + * response.writeEarlyHints({ + * 'link': earlyHintsLinks, + * }); + * ``` + * @since v18.11.0 + */ + writeEarlyHints(hints: Record): void; + /** + * Sends a response header to the request. The status code is a 3-digit HTTP + * status code, like `404`. The last argument, `headers`, are the response headers. + * + * Returns a reference to the `Http2ServerResponse`, so that calls can be chained. + * + * For compatibility with `HTTP/1`, a human-readable `statusMessage` may be + * passed as the second argument. However, because the `statusMessage` has no + * meaning within HTTP/2, the argument will have no effect and a process warning + * will be emitted. + * + * ```js + * const body = 'hello world'; + * response.writeHead(200, { + * 'Content-Length': Buffer.byteLength(body), + * 'Content-Type': 'text/plain; charset=utf-8', + * }); + * ``` + * + * `Content-Length` is given in bytes not characters. The`Buffer.byteLength()` API may be used to determine the number of bytes in a + * given encoding. On outbound messages, Node.js does not check if Content-Length + * and the length of the body being transmitted are equal or not. However, when + * receiving messages, Node.js will automatically reject messages when the `Content-Length` does not match the actual payload size. + * + * This method may be called at most one time on a message before `response.end()` is called. + * + * If `response.write()` or `response.end()` are called before calling + * this, the implicit/mutable headers will be calculated and call this function. + * + * When headers have been set with `response.setHeader()`, they will be merged + * with any headers passed to `response.writeHead()`, with the headers passed + * to `response.writeHead()` given precedence. + * + * ```js + * // Returns content-type = text/plain + * const server = http2.createServer((req, res) => { + * res.setHeader('Content-Type', 'text/html; charset=utf-8'); + * res.setHeader('X-Foo', 'bar'); + * res.writeHead(200, { 'Content-Type': 'text/plain; charset=utf-8' }); + * res.end('ok'); + * }); + * ``` + * + * Attempting to set a header field name or value that contains invalid characters + * will result in a `TypeError` being thrown. + * @since v8.4.0 + */ + writeHead(statusCode: number, headers?: OutgoingHttpHeaders | readonly string[]): this; + writeHead(statusCode: number, statusMessage: string, headers?: OutgoingHttpHeaders | readonly string[]): this; + /** + * Call `http2stream.pushStream()` with the given headers, and wrap the + * given `Http2Stream` on a newly created `Http2ServerResponse` as the callback + * parameter if successful. When `Http2ServerRequest` is closed, the callback is + * called with an error `ERR_HTTP2_INVALID_STREAM`. + * @since v8.4.0 + * @param headers An object describing the headers + * @param callback Called once `http2stream.pushStream()` is finished, or either when the attempt to create the pushed `Http2Stream` has failed or has been rejected, or the state of + * `Http2ServerRequest` is closed prior to calling the `http2stream.pushStream()` method + */ + createPushResponse( + headers: OutgoingHttpHeaders, + callback: (err: Error | null, res: Http2ServerResponse) => void, + ): void; + } + namespace constants { + const NGHTTP2_SESSION_SERVER: number; + const NGHTTP2_SESSION_CLIENT: number; + const NGHTTP2_STREAM_STATE_IDLE: number; + const NGHTTP2_STREAM_STATE_OPEN: number; + const NGHTTP2_STREAM_STATE_RESERVED_LOCAL: number; + const NGHTTP2_STREAM_STATE_RESERVED_REMOTE: number; + const NGHTTP2_STREAM_STATE_HALF_CLOSED_LOCAL: number; + const NGHTTP2_STREAM_STATE_HALF_CLOSED_REMOTE: number; + const NGHTTP2_STREAM_STATE_CLOSED: number; + const NGHTTP2_NO_ERROR: number; + const NGHTTP2_PROTOCOL_ERROR: number; + const NGHTTP2_INTERNAL_ERROR: number; + const NGHTTP2_FLOW_CONTROL_ERROR: number; + const NGHTTP2_SETTINGS_TIMEOUT: number; + const NGHTTP2_STREAM_CLOSED: number; + const NGHTTP2_FRAME_SIZE_ERROR: number; + const NGHTTP2_REFUSED_STREAM: number; + const NGHTTP2_CANCEL: number; + const NGHTTP2_COMPRESSION_ERROR: number; + const NGHTTP2_CONNECT_ERROR: number; + const NGHTTP2_ENHANCE_YOUR_CALM: number; + const NGHTTP2_INADEQUATE_SECURITY: number; + const NGHTTP2_HTTP_1_1_REQUIRED: number; + const NGHTTP2_ERR_FRAME_SIZE_ERROR: number; + const NGHTTP2_FLAG_NONE: number; + const NGHTTP2_FLAG_END_STREAM: number; + const NGHTTP2_FLAG_END_HEADERS: number; + const NGHTTP2_FLAG_ACK: number; + const NGHTTP2_FLAG_PADDED: number; + const NGHTTP2_FLAG_PRIORITY: number; + const DEFAULT_SETTINGS_HEADER_TABLE_SIZE: number; + const DEFAULT_SETTINGS_ENABLE_PUSH: number; + const DEFAULT_SETTINGS_INITIAL_WINDOW_SIZE: number; + const DEFAULT_SETTINGS_MAX_FRAME_SIZE: number; + const MAX_MAX_FRAME_SIZE: number; + const MIN_MAX_FRAME_SIZE: number; + const MAX_INITIAL_WINDOW_SIZE: number; + const NGHTTP2_DEFAULT_WEIGHT: number; + const NGHTTP2_SETTINGS_HEADER_TABLE_SIZE: number; + const NGHTTP2_SETTINGS_ENABLE_PUSH: number; + const NGHTTP2_SETTINGS_MAX_CONCURRENT_STREAMS: number; + const NGHTTP2_SETTINGS_INITIAL_WINDOW_SIZE: number; + const NGHTTP2_SETTINGS_MAX_FRAME_SIZE: number; + const NGHTTP2_SETTINGS_MAX_HEADER_LIST_SIZE: number; + const PADDING_STRATEGY_NONE: number; + const PADDING_STRATEGY_MAX: number; + const PADDING_STRATEGY_CALLBACK: number; + const HTTP2_HEADER_STATUS: string; + const HTTP2_HEADER_METHOD: string; + const HTTP2_HEADER_AUTHORITY: string; + const HTTP2_HEADER_SCHEME: string; + const HTTP2_HEADER_PATH: string; + const HTTP2_HEADER_ACCEPT_CHARSET: string; + const HTTP2_HEADER_ACCEPT_ENCODING: string; + const HTTP2_HEADER_ACCEPT_LANGUAGE: string; + const HTTP2_HEADER_ACCEPT_RANGES: string; + const HTTP2_HEADER_ACCEPT: string; + const HTTP2_HEADER_ACCESS_CONTROL_ALLOW_CREDENTIALS: string; + const HTTP2_HEADER_ACCESS_CONTROL_ALLOW_HEADERS: string; + const HTTP2_HEADER_ACCESS_CONTROL_ALLOW_METHODS: string; + const HTTP2_HEADER_ACCESS_CONTROL_ALLOW_ORIGIN: string; + const HTTP2_HEADER_ACCESS_CONTROL_EXPOSE_HEADERS: string; + const HTTP2_HEADER_ACCESS_CONTROL_REQUEST_HEADERS: string; + const HTTP2_HEADER_ACCESS_CONTROL_REQUEST_METHOD: string; + const HTTP2_HEADER_AGE: string; + const HTTP2_HEADER_ALLOW: string; + const HTTP2_HEADER_AUTHORIZATION: string; + const HTTP2_HEADER_CACHE_CONTROL: string; + const HTTP2_HEADER_CONNECTION: string; + const HTTP2_HEADER_CONTENT_DISPOSITION: string; + const HTTP2_HEADER_CONTENT_ENCODING: string; + const HTTP2_HEADER_CONTENT_LANGUAGE: string; + const HTTP2_HEADER_CONTENT_LENGTH: string; + const HTTP2_HEADER_CONTENT_LOCATION: string; + const HTTP2_HEADER_CONTENT_MD5: string; + const HTTP2_HEADER_CONTENT_RANGE: string; + const HTTP2_HEADER_CONTENT_TYPE: string; + const HTTP2_HEADER_COOKIE: string; + const HTTP2_HEADER_DATE: string; + const HTTP2_HEADER_ETAG: string; + const HTTP2_HEADER_EXPECT: string; + const HTTP2_HEADER_EXPIRES: string; + const HTTP2_HEADER_FROM: string; + const HTTP2_HEADER_HOST: string; + const HTTP2_HEADER_IF_MATCH: string; + const HTTP2_HEADER_IF_MODIFIED_SINCE: string; + const HTTP2_HEADER_IF_NONE_MATCH: string; + const HTTP2_HEADER_IF_RANGE: string; + const HTTP2_HEADER_IF_UNMODIFIED_SINCE: string; + const HTTP2_HEADER_LAST_MODIFIED: string; + const HTTP2_HEADER_LINK: string; + const HTTP2_HEADER_LOCATION: string; + const HTTP2_HEADER_MAX_FORWARDS: string; + const HTTP2_HEADER_PREFER: string; + const HTTP2_HEADER_PROXY_AUTHENTICATE: string; + const HTTP2_HEADER_PROXY_AUTHORIZATION: string; + const HTTP2_HEADER_RANGE: string; + const HTTP2_HEADER_REFERER: string; + const HTTP2_HEADER_REFRESH: string; + const HTTP2_HEADER_RETRY_AFTER: string; + const HTTP2_HEADER_SERVER: string; + const HTTP2_HEADER_SET_COOKIE: string; + const HTTP2_HEADER_STRICT_TRANSPORT_SECURITY: string; + const HTTP2_HEADER_TRANSFER_ENCODING: string; + const HTTP2_HEADER_TE: string; + const HTTP2_HEADER_UPGRADE: string; + const HTTP2_HEADER_USER_AGENT: string; + const HTTP2_HEADER_VARY: string; + const HTTP2_HEADER_VIA: string; + const HTTP2_HEADER_WWW_AUTHENTICATE: string; + const HTTP2_HEADER_HTTP2_SETTINGS: string; + const HTTP2_HEADER_KEEP_ALIVE: string; + const HTTP2_HEADER_PROXY_CONNECTION: string; + const HTTP2_METHOD_ACL: string; + const HTTP2_METHOD_BASELINE_CONTROL: string; + const HTTP2_METHOD_BIND: string; + const HTTP2_METHOD_CHECKIN: string; + const HTTP2_METHOD_CHECKOUT: string; + const HTTP2_METHOD_CONNECT: string; + const HTTP2_METHOD_COPY: string; + const HTTP2_METHOD_DELETE: string; + const HTTP2_METHOD_GET: string; + const HTTP2_METHOD_HEAD: string; + const HTTP2_METHOD_LABEL: string; + const HTTP2_METHOD_LINK: string; + const HTTP2_METHOD_LOCK: string; + const HTTP2_METHOD_MERGE: string; + const HTTP2_METHOD_MKACTIVITY: string; + const HTTP2_METHOD_MKCALENDAR: string; + const HTTP2_METHOD_MKCOL: string; + const HTTP2_METHOD_MKREDIRECTREF: string; + const HTTP2_METHOD_MKWORKSPACE: string; + const HTTP2_METHOD_MOVE: string; + const HTTP2_METHOD_OPTIONS: string; + const HTTP2_METHOD_ORDERPATCH: string; + const HTTP2_METHOD_PATCH: string; + const HTTP2_METHOD_POST: string; + const HTTP2_METHOD_PRI: string; + const HTTP2_METHOD_PROPFIND: string; + const HTTP2_METHOD_PROPPATCH: string; + const HTTP2_METHOD_PUT: string; + const HTTP2_METHOD_REBIND: string; + const HTTP2_METHOD_REPORT: string; + const HTTP2_METHOD_SEARCH: string; + const HTTP2_METHOD_TRACE: string; + const HTTP2_METHOD_UNBIND: string; + const HTTP2_METHOD_UNCHECKOUT: string; + const HTTP2_METHOD_UNLINK: string; + const HTTP2_METHOD_UNLOCK: string; + const HTTP2_METHOD_UPDATE: string; + const HTTP2_METHOD_UPDATEREDIRECTREF: string; + const HTTP2_METHOD_VERSION_CONTROL: string; + const HTTP_STATUS_CONTINUE: number; + const HTTP_STATUS_SWITCHING_PROTOCOLS: number; + const HTTP_STATUS_PROCESSING: number; + const HTTP_STATUS_OK: number; + const HTTP_STATUS_CREATED: number; + const HTTP_STATUS_ACCEPTED: number; + const HTTP_STATUS_NON_AUTHORITATIVE_INFORMATION: number; + const HTTP_STATUS_NO_CONTENT: number; + const HTTP_STATUS_RESET_CONTENT: number; + const HTTP_STATUS_PARTIAL_CONTENT: number; + const HTTP_STATUS_MULTI_STATUS: number; + const HTTP_STATUS_ALREADY_REPORTED: number; + const HTTP_STATUS_IM_USED: number; + const HTTP_STATUS_MULTIPLE_CHOICES: number; + const HTTP_STATUS_MOVED_PERMANENTLY: number; + const HTTP_STATUS_FOUND: number; + const HTTP_STATUS_SEE_OTHER: number; + const HTTP_STATUS_NOT_MODIFIED: number; + const HTTP_STATUS_USE_PROXY: number; + const HTTP_STATUS_TEMPORARY_REDIRECT: number; + const HTTP_STATUS_PERMANENT_REDIRECT: number; + const HTTP_STATUS_BAD_REQUEST: number; + const HTTP_STATUS_UNAUTHORIZED: number; + const HTTP_STATUS_PAYMENT_REQUIRED: number; + const HTTP_STATUS_FORBIDDEN: number; + const HTTP_STATUS_NOT_FOUND: number; + const HTTP_STATUS_METHOD_NOT_ALLOWED: number; + const HTTP_STATUS_NOT_ACCEPTABLE: number; + const HTTP_STATUS_PROXY_AUTHENTICATION_REQUIRED: number; + const HTTP_STATUS_REQUEST_TIMEOUT: number; + const HTTP_STATUS_CONFLICT: number; + const HTTP_STATUS_GONE: number; + const HTTP_STATUS_LENGTH_REQUIRED: number; + const HTTP_STATUS_PRECONDITION_FAILED: number; + const HTTP_STATUS_PAYLOAD_TOO_LARGE: number; + const HTTP_STATUS_URI_TOO_LONG: number; + const HTTP_STATUS_UNSUPPORTED_MEDIA_TYPE: number; + const HTTP_STATUS_RANGE_NOT_SATISFIABLE: number; + const HTTP_STATUS_EXPECTATION_FAILED: number; + const HTTP_STATUS_TEAPOT: number; + const HTTP_STATUS_MISDIRECTED_REQUEST: number; + const HTTP_STATUS_UNPROCESSABLE_ENTITY: number; + const HTTP_STATUS_LOCKED: number; + const HTTP_STATUS_FAILED_DEPENDENCY: number; + const HTTP_STATUS_UNORDERED_COLLECTION: number; + const HTTP_STATUS_UPGRADE_REQUIRED: number; + const HTTP_STATUS_PRECONDITION_REQUIRED: number; + const HTTP_STATUS_TOO_MANY_REQUESTS: number; + const HTTP_STATUS_REQUEST_HEADER_FIELDS_TOO_LARGE: number; + const HTTP_STATUS_UNAVAILABLE_FOR_LEGAL_REASONS: number; + const HTTP_STATUS_INTERNAL_SERVER_ERROR: number; + const HTTP_STATUS_NOT_IMPLEMENTED: number; + const HTTP_STATUS_BAD_GATEWAY: number; + const HTTP_STATUS_SERVICE_UNAVAILABLE: number; + const HTTP_STATUS_GATEWAY_TIMEOUT: number; + const HTTP_STATUS_HTTP_VERSION_NOT_SUPPORTED: number; + const HTTP_STATUS_VARIANT_ALSO_NEGOTIATES: number; + const HTTP_STATUS_INSUFFICIENT_STORAGE: number; + const HTTP_STATUS_LOOP_DETECTED: number; + const HTTP_STATUS_BANDWIDTH_LIMIT_EXCEEDED: number; + const HTTP_STATUS_NOT_EXTENDED: number; + const HTTP_STATUS_NETWORK_AUTHENTICATION_REQUIRED: number; + } + /** + * This symbol can be set as a property on the HTTP/2 headers object with + * an array value in order to provide a list of headers considered sensitive. + */ + const sensitiveHeaders: symbol; + /** + * Returns an object containing the default settings for an `Http2Session` instance. This method returns a new object instance every time it is called + * so instances returned may be safely modified for use. + * @since v8.4.0 + */ + function getDefaultSettings(): Settings; + /** + * Returns a `Buffer` instance containing serialized representation of the given + * HTTP/2 settings as specified in the [HTTP/2](https://tools.ietf.org/html/rfc7540) specification. This is intended + * for use with the `HTTP2-Settings` header field. + * + * ```js + * import http2 from 'node:http2'; + * + * const packed = http2.getPackedSettings({ enablePush: false }); + * + * console.log(packed.toString('base64')); + * // Prints: AAIAAAAA + * ``` + * @since v8.4.0 + */ + function getPackedSettings(settings: Settings): NonSharedBuffer; + /** + * Returns a `HTTP/2 Settings Object` containing the deserialized settings from + * the given `Buffer` as generated by `http2.getPackedSettings()`. + * @since v8.4.0 + * @param buf The packed settings. + */ + function getUnpackedSettings(buf: Uint8Array): Settings; + /** + * Returns a `net.Server` instance that creates and manages `Http2Session` instances. + * + * Since there are no browsers known that support [unencrypted HTTP/2](https://http2.github.io/faq/#does-http2-require-encryption), the use of {@link createSecureServer} is necessary when + * communicating + * with browser clients. + * + * ```js + * import http2 from 'node:http2'; + * + * // Create an unencrypted HTTP/2 server. + * // Since there are no browsers known that support + * // unencrypted HTTP/2, the use of `http2.createSecureServer()` + * // is necessary when communicating with browser clients. + * const server = http2.createServer(); + * + * server.on('stream', (stream, headers) => { + * stream.respond({ + * 'content-type': 'text/html; charset=utf-8', + * ':status': 200, + * }); + * stream.end('

Hello World

'); + * }); + * + * server.listen(8000); + * ``` + * @since v8.4.0 + * @param onRequestHandler See `Compatibility API` + */ + function createServer( + onRequestHandler?: (request: Http2ServerRequest, response: Http2ServerResponse) => void, + ): Http2Server; + function createServer< + Http1Request extends typeof IncomingMessage = typeof IncomingMessage, + Http1Response extends typeof ServerResponse> = typeof ServerResponse, + Http2Request extends typeof Http2ServerRequest = typeof Http2ServerRequest, + Http2Response extends typeof Http2ServerResponse> = typeof Http2ServerResponse, + >( + options: ServerOptions, + onRequestHandler?: (request: InstanceType, response: InstanceType) => void, + ): Http2Server; + /** + * Returns a `tls.Server` instance that creates and manages `Http2Session` instances. + * + * ```js + * import http2 from 'node:http2'; + * import fs from 'node:fs'; + * + * const options = { + * key: fs.readFileSync('server-key.pem'), + * cert: fs.readFileSync('server-cert.pem'), + * }; + * + * // Create a secure HTTP/2 server + * const server = http2.createSecureServer(options); + * + * server.on('stream', (stream, headers) => { + * stream.respond({ + * 'content-type': 'text/html; charset=utf-8', + * ':status': 200, + * }); + * stream.end('

Hello World

'); + * }); + * + * server.listen(8443); + * ``` + * @since v8.4.0 + * @param onRequestHandler See `Compatibility API` + */ + function createSecureServer( + onRequestHandler?: (request: Http2ServerRequest, response: Http2ServerResponse) => void, + ): Http2SecureServer; + function createSecureServer< + Http1Request extends typeof IncomingMessage = typeof IncomingMessage, + Http1Response extends typeof ServerResponse> = typeof ServerResponse, + Http2Request extends typeof Http2ServerRequest = typeof Http2ServerRequest, + Http2Response extends typeof Http2ServerResponse> = typeof Http2ServerResponse, + >( + options: SecureServerOptions, + onRequestHandler?: (request: InstanceType, response: InstanceType) => void, + ): Http2SecureServer; + /** + * Returns a `ClientHttp2Session` instance. + * + * ```js + * import http2 from 'node:http2'; + * const client = http2.connect('https://localhost:1234'); + * + * // Use the client + * + * client.close(); + * ``` + * @since v8.4.0 + * @param authority The remote HTTP/2 server to connect to. This must be in the form of a minimal, valid URL with the `http://` or `https://` prefix, host name, and IP port (if a non-default port + * is used). Userinfo (user ID and password), path, querystring, and fragment details in the URL will be ignored. + * @param listener Will be registered as a one-time listener of the {@link 'connect'} event. + */ + function connect( + authority: string | url.URL, + listener: (session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket) => void, + ): ClientHttp2Session; + function connect( + authority: string | url.URL, + options?: ClientSessionOptions | SecureClientSessionOptions, + listener?: (session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket) => void, + ): ClientHttp2Session; + /** + * Create an HTTP/2 server session from an existing socket. + * @param socket A Duplex Stream + * @param options Any `{@link createServer}` options can be provided. + * @since v20.12.0 + */ + function performServerHandshake< + Http1Request extends typeof IncomingMessage = typeof IncomingMessage, + Http1Response extends typeof ServerResponse> = typeof ServerResponse, + Http2Request extends typeof Http2ServerRequest = typeof Http2ServerRequest, + Http2Response extends typeof Http2ServerResponse> = typeof Http2ServerResponse, + >( + socket: stream.Duplex, + options?: ServerOptions, + ): ServerHttp2Session; +} +declare module "node:http2" { + export { OutgoingHttpHeaders } from "node:http"; +} +declare module "http2" { + export * from "node:http2"; +} diff --git a/server/api/node_modules/@types/node/https.d.ts b/server/api/node_modules/@types/node/https.d.ts new file mode 100644 index 0000000..b10aad0 --- /dev/null +++ b/server/api/node_modules/@types/node/https.d.ts @@ -0,0 +1,400 @@ +declare module "node:https" { + import * as http from "node:http"; + import { Duplex } from "node:stream"; + import * as tls from "node:tls"; + import { URL } from "node:url"; + interface ServerOptions< + Request extends typeof http.IncomingMessage = typeof http.IncomingMessage, + Response extends typeof http.ServerResponse> = typeof http.ServerResponse, + > extends http.ServerOptions, tls.TlsOptions {} + interface RequestOptions extends http.RequestOptions, tls.SecureContextOptions { + checkServerIdentity?: + | ((hostname: string, cert: tls.DetailedPeerCertificate) => Error | undefined) + | undefined; + rejectUnauthorized?: boolean | undefined; // Defaults to true + servername?: string | undefined; // SNI TLS Extension + } + interface AgentOptions extends http.AgentOptions, tls.ConnectionOptions { + maxCachedSessions?: number | undefined; + } + /** + * An `Agent` object for HTTPS similar to `http.Agent`. See {@link request} for more information. + * + * Like `http.Agent`, the `createConnection(options[, callback])` method can be overridden + * to customize how TLS connections are established. + * + * > See `agent.createConnection()` for details on overriding this method, + * > including asynchronous socket creation with a callback. + * @since v0.4.5 + */ + class Agent extends http.Agent { + constructor(options?: AgentOptions); + options: AgentOptions; + createConnection( + options: RequestOptions, + callback?: (err: Error | null, stream: Duplex) => void, + ): Duplex | null | undefined; + getName(options?: RequestOptions): string; + } + interface ServerEventMap< + Request extends typeof http.IncomingMessage = typeof http.IncomingMessage, + Response extends typeof http.ServerResponse> = typeof http.ServerResponse, + > extends http.ServerEventMap, tls.ServerEventMap {} + /** + * See `http.Server` for more information. + * @since v0.3.4 + */ + class Server< + Request extends typeof http.IncomingMessage = typeof http.IncomingMessage, + Response extends typeof http.ServerResponse> = typeof http.ServerResponse, + > extends tls.Server { + constructor(requestListener?: http.RequestListener); + constructor( + options: ServerOptions, + requestListener?: http.RequestListener, + ); + /** + * Closes all connections connected to this server. + * @since v18.2.0 + */ + closeAllConnections(): void; + /** + * Closes all connections connected to this server which are not sending a request or waiting for a response. + * @since v18.2.0 + */ + closeIdleConnections(): void; + // #region InternalEventEmitter + addListener( + eventName: E, + listener: (...args: ServerEventMap[E]) => void, + ): this; + addListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + emit(eventName: E, ...args: ServerEventMap[E]): boolean; + emit(eventName: string | symbol, ...args: any[]): boolean; + listenerCount( + eventName: E, + listener?: (...args: ServerEventMap[E]) => void, + ): number; + listenerCount(eventName: string | symbol, listener?: (...args: any[]) => void): number; + listeners( + eventName: E, + ): ((...args: ServerEventMap[E]) => void)[]; + listeners(eventName: string | symbol): ((...args: any[]) => void)[]; + off( + eventName: E, + listener: (...args: ServerEventMap[E]) => void, + ): this; + off(eventName: string | symbol, listener: (...args: any[]) => void): this; + on( + eventName: E, + listener: (...args: ServerEventMap[E]) => void, + ): this; + on(eventName: string | symbol, listener: (...args: any[]) => void): this; + once( + eventName: E, + listener: (...args: ServerEventMap[E]) => void, + ): this; + once(eventName: string | symbol, listener: (...args: any[]) => void): this; + prependListener( + eventName: E, + listener: (...args: ServerEventMap[E]) => void, + ): this; + prependListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + prependOnceListener( + eventName: E, + listener: (...args: ServerEventMap[E]) => void, + ): this; + prependOnceListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + rawListeners( + eventName: E, + ): ((...args: ServerEventMap[E]) => void)[]; + rawListeners(eventName: string | symbol): ((...args: any[]) => void)[]; + // eslint-disable-next-line @definitelytyped/no-unnecessary-generics + removeAllListeners(eventName?: E): this; + removeAllListeners(eventName?: string | symbol): this; + removeListener( + eventName: E, + listener: (...args: ServerEventMap[E]) => void, + ): this; + removeListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + // #endregion + } + interface Server< + Request extends typeof http.IncomingMessage = typeof http.IncomingMessage, + Response extends typeof http.ServerResponse> = typeof http.ServerResponse, + > extends http.Server {} + /** + * ```js + * // curl -k https://localhost:8000/ + * import https from 'node:https'; + * import fs from 'node:fs'; + * + * const options = { + * key: fs.readFileSync('test/fixtures/keys/agent2-key.pem'), + * cert: fs.readFileSync('test/fixtures/keys/agent2-cert.pem'), + * }; + * + * https.createServer(options, (req, res) => { + * res.writeHead(200); + * res.end('hello world\n'); + * }).listen(8000); + * ``` + * + * Or + * + * ```js + * import https from 'node:https'; + * import fs from 'node:fs'; + * + * const options = { + * pfx: fs.readFileSync('test/fixtures/test_cert.pfx'), + * passphrase: 'sample', + * }; + * + * https.createServer(options, (req, res) => { + * res.writeHead(200); + * res.end('hello world\n'); + * }).listen(8000); + * ``` + * @since v0.3.4 + * @param options Accepts `options` from `createServer`, `createSecureContext` and `createServer`. + * @param requestListener A listener to be added to the `'request'` event. + */ + function createServer< + Request extends typeof http.IncomingMessage = typeof http.IncomingMessage, + Response extends typeof http.ServerResponse> = typeof http.ServerResponse, + >(requestListener?: http.RequestListener): Server; + function createServer< + Request extends typeof http.IncomingMessage = typeof http.IncomingMessage, + Response extends typeof http.ServerResponse> = typeof http.ServerResponse, + >( + options: ServerOptions, + requestListener?: http.RequestListener, + ): Server; + /** + * Makes a request to a secure web server. + * + * The following additional `options` from `tls.connect()` are also accepted: `ca`, `cert`, `ciphers`, `clientCertEngine`, `crl`, `dhparam`, `ecdhCurve`, `honorCipherOrder`, `key`, `passphrase`, + * `pfx`, `rejectUnauthorized`, `secureOptions`, `secureProtocol`, `servername`, `sessionIdContext`, `highWaterMark`. + * + * `options` can be an object, a string, or a `URL` object. If `options` is a + * string, it is automatically parsed with `new URL()`. If it is a `URL` object, it will be automatically converted to an ordinary `options` object. + * + * `https.request()` returns an instance of the `http.ClientRequest` class. The `ClientRequest` instance is a writable stream. If one needs to + * upload a file with a POST request, then write to the `ClientRequest` object. + * + * ```js + * import https from 'node:https'; + * + * const options = { + * hostname: 'encrypted.google.com', + * port: 443, + * path: '/', + * method: 'GET', + * }; + * + * const req = https.request(options, (res) => { + * console.log('statusCode:', res.statusCode); + * console.log('headers:', res.headers); + * + * res.on('data', (d) => { + * process.stdout.write(d); + * }); + * }); + * + * req.on('error', (e) => { + * console.error(e); + * }); + * req.end(); + * ``` + * + * Example using options from `tls.connect()`: + * + * ```js + * const options = { + * hostname: 'encrypted.google.com', + * port: 443, + * path: '/', + * method: 'GET', + * key: fs.readFileSync('test/fixtures/keys/agent2-key.pem'), + * cert: fs.readFileSync('test/fixtures/keys/agent2-cert.pem'), + * }; + * options.agent = new https.Agent(options); + * + * const req = https.request(options, (res) => { + * // ... + * }); + * ``` + * + * Alternatively, opt out of connection pooling by not using an `Agent`. + * + * ```js + * const options = { + * hostname: 'encrypted.google.com', + * port: 443, + * path: '/', + * method: 'GET', + * key: fs.readFileSync('test/fixtures/keys/agent2-key.pem'), + * cert: fs.readFileSync('test/fixtures/keys/agent2-cert.pem'), + * agent: false, + * }; + * + * const req = https.request(options, (res) => { + * // ... + * }); + * ``` + * + * Example using a `URL` as `options`: + * + * ```js + * const options = new URL('https://abc:xyz@example.com'); + * + * const req = https.request(options, (res) => { + * // ... + * }); + * ``` + * + * Example pinning on certificate fingerprint, or the public key (similar to`pin-sha256`): + * + * ```js + * import tls from 'node:tls'; + * import https from 'node:https'; + * import crypto from 'node:crypto'; + * + * function sha256(s) { + * return crypto.createHash('sha256').update(s).digest('base64'); + * } + * const options = { + * hostname: 'github.com', + * port: 443, + * path: '/', + * method: 'GET', + * checkServerIdentity: function(host, cert) { + * // Make sure the certificate is issued to the host we are connected to + * const err = tls.checkServerIdentity(host, cert); + * if (err) { + * return err; + * } + * + * // Pin the public key, similar to HPKP pin-sha256 pinning + * const pubkey256 = 'pL1+qb9HTMRZJmuC/bB/ZI9d302BYrrqiVuRyW+DGrU='; + * if (sha256(cert.pubkey) !== pubkey256) { + * const msg = 'Certificate verification error: ' + + * `The public key of '${cert.subject.CN}' ` + + * 'does not match our pinned fingerprint'; + * return new Error(msg); + * } + * + * // Pin the exact certificate, rather than the pub key + * const cert256 = '25:FE:39:32:D9:63:8C:8A:FC:A1:9A:29:87:' + + * 'D8:3E:4C:1D:98:DB:71:E4:1A:48:03:98:EA:22:6A:BD:8B:93:16'; + * if (cert.fingerprint256 !== cert256) { + * const msg = 'Certificate verification error: ' + + * `The certificate of '${cert.subject.CN}' ` + + * 'does not match our pinned fingerprint'; + * return new Error(msg); + * } + * + * // This loop is informational only. + * // Print the certificate and public key fingerprints of all certs in the + * // chain. Its common to pin the public key of the issuer on the public + * // internet, while pinning the public key of the service in sensitive + * // environments. + * do { + * console.log('Subject Common Name:', cert.subject.CN); + * console.log(' Certificate SHA256 fingerprint:', cert.fingerprint256); + * + * hash = crypto.createHash('sha256'); + * console.log(' Public key ping-sha256:', sha256(cert.pubkey)); + * + * lastprint256 = cert.fingerprint256; + * cert = cert.issuerCertificate; + * } while (cert.fingerprint256 !== lastprint256); + * + * }, + * }; + * + * options.agent = new https.Agent(options); + * const req = https.request(options, (res) => { + * console.log('All OK. Server matched our pinned cert or public key'); + * console.log('statusCode:', res.statusCode); + * // Print the HPKP values + * console.log('headers:', res.headers['public-key-pins']); + * + * res.on('data', (d) => {}); + * }); + * + * req.on('error', (e) => { + * console.error(e.message); + * }); + * req.end(); + * ``` + * + * Outputs for example: + * + * ```text + * Subject Common Name: github.com + * Certificate SHA256 fingerprint: 25:FE:39:32:D9:63:8C:8A:FC:A1:9A:29:87:D8:3E:4C:1D:98:DB:71:E4:1A:48:03:98:EA:22:6A:BD:8B:93:16 + * Public key ping-sha256: pL1+qb9HTMRZJmuC/bB/ZI9d302BYrrqiVuRyW+DGrU= + * Subject Common Name: DigiCert SHA2 Extended Validation Server CA + * Certificate SHA256 fingerprint: 40:3E:06:2A:26:53:05:91:13:28:5B:AF:80:A0:D4:AE:42:2C:84:8C:9F:78:FA:D0:1F:C9:4B:C5:B8:7F:EF:1A + * Public key ping-sha256: RRM1dGqnDFsCJXBTHky16vi1obOlCgFFn/yOhI/y+ho= + * Subject Common Name: DigiCert High Assurance EV Root CA + * Certificate SHA256 fingerprint: 74:31:E5:F4:C3:C1:CE:46:90:77:4F:0B:61:E0:54:40:88:3B:A9:A0:1E:D0:0B:A6:AB:D7:80:6E:D3:B1:18:CF + * Public key ping-sha256: WoiWRyIOVNa9ihaBciRSC7XHjliYS9VwUGOIud4PB18= + * All OK. Server matched our pinned cert or public key + * statusCode: 200 + * headers: max-age=0; pin-sha256="WoiWRyIOVNa9ihaBciRSC7XHjliYS9VwUGOIud4PB18="; pin-sha256="RRM1dGqnDFsCJXBTHky16vi1obOlCgFFn/yOhI/y+ho="; + * pin-sha256="k2v657xBsOVe1PQRwOsHsw3bsGT2VzIqz5K+59sNQws="; pin-sha256="K87oWBWM9UZfyddvDfoxL+8lpNyoUB2ptGtn0fv6G2Q="; pin-sha256="IQBnNBEiFuhj+8x6X8XLgh01V9Ic5/V3IRQLNFFc7v4="; + * pin-sha256="iie1VXtL7HzAMF+/PVPR9xzT80kQxdZeJ+zduCB3uj0="; pin-sha256="LvRiGEjRqfzurezaWuj8Wie2gyHMrW5Q06LspMnox7A="; includeSubDomains + * ``` + * @since v0.3.6 + * @param options Accepts all `options` from `request`, with some differences in default values: + */ + function request( + options: RequestOptions | string | URL, + callback?: (res: http.IncomingMessage) => void, + ): http.ClientRequest; + function request( + url: string | URL, + options: RequestOptions, + callback?: (res: http.IncomingMessage) => void, + ): http.ClientRequest; + /** + * Like `http.get()` but for HTTPS. + * + * `options` can be an object, a string, or a `URL` object. If `options` is a + * string, it is automatically parsed with `new URL()`. If it is a `URL` object, it will be automatically converted to an ordinary `options` object. + * + * ```js + * import https from 'node:https'; + * + * https.get('https://encrypted.google.com/', (res) => { + * console.log('statusCode:', res.statusCode); + * console.log('headers:', res.headers); + * + * res.on('data', (d) => { + * process.stdout.write(d); + * }); + * + * }).on('error', (e) => { + * console.error(e); + * }); + * ``` + * @since v0.3.6 + * @param options Accepts the same `options` as {@link request}, with the `method` always set to `GET`. + */ + function get( + options: RequestOptions | string | URL, + callback?: (res: http.IncomingMessage) => void, + ): http.ClientRequest; + function get( + url: string | URL, + options: RequestOptions, + callback?: (res: http.IncomingMessage) => void, + ): http.ClientRequest; + let globalAgent: Agent; +} +declare module "https" { + export * from "node:https"; +} diff --git a/server/api/node_modules/@types/node/index.d.ts b/server/api/node_modules/@types/node/index.d.ts new file mode 100644 index 0000000..08ab4f0 --- /dev/null +++ b/server/api/node_modules/@types/node/index.d.ts @@ -0,0 +1,115 @@ +/** + * License for programmatically and manually incorporated + * documentation aka. `JSDoc` from https://github.com/nodejs/node/tree/master/doc + * + * Copyright Node.js contributors. All rights reserved. + * 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. + */ + +// NOTE: These definitions support Node.js and TypeScript 5.8+. + +// Reference required TypeScript libraries: +/// +/// +/// + +// Iterator definitions required for compatibility with TypeScript <5.6: +/// + +// Definitions for Node.js modules specific to TypeScript 5.7+: +/// +/// + +// Definitions for Node.js modules that are not specific to any version of TypeScript: +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// diff --git a/server/api/node_modules/@types/node/inspector.d.ts b/server/api/node_modules/@types/node/inspector.d.ts new file mode 100644 index 0000000..cf385b7 --- /dev/null +++ b/server/api/node_modules/@types/node/inspector.d.ts @@ -0,0 +1,264 @@ +declare module "node:inspector" { + import { EventEmitter } from "node:events"; + /** + * The `inspector.Session` is used for dispatching messages to the V8 inspector + * back-end and receiving message responses and notifications. + */ + class Session extends EventEmitter { + /** + * Create a new instance of the inspector.Session class. + * The inspector session needs to be connected through `session.connect()` before the messages can be dispatched to the inspector backend. + */ + constructor(); + /** + * Connects a session to the inspector back-end. + */ + connect(): void; + /** + * Connects a session to the inspector back-end. + * An exception will be thrown if this API was not called on a Worker thread. + * @since v12.11.0 + */ + connectToMainThread(): void; + /** + * Immediately close the session. All pending message callbacks will be called with an error. + * `session.connect()` will need to be called to be able to send messages again. + * Reconnected session will lose all inspector state, such as enabled agents or configured breakpoints. + */ + disconnect(): void; + } + /** + * Activate inspector on host and port. Equivalent to `node --inspect=[[host:]port]`, but can be done programmatically after node has + * started. + * + * If wait is `true`, will block until a client has connected to the inspect port + * and flow control has been passed to the debugger client. + * + * See the [security warning](https://nodejs.org/docs/latest-v25.x/api/cli.html#warning-binding-inspector-to-a-public-ipport-combination-is-insecure) + * regarding the `host` parameter usage. + * @param port Port to listen on for inspector connections. Defaults to what was specified on the CLI. + * @param host Host to listen on for inspector connections. Defaults to what was specified on the CLI. + * @param wait Block until a client has connected. Defaults to what was specified on the CLI. + * @returns Disposable that calls `inspector.close()`. + */ + function open(port?: number, host?: string, wait?: boolean): Disposable; + /** + * Deactivate the inspector. Blocks until there are no active connections. + */ + function close(): void; + /** + * Return the URL of the active inspector, or `undefined` if there is none. + * + * ```console + * $ node --inspect -p 'inspector.url()' + * Debugger listening on ws://127.0.0.1:9229/166e272e-7a30-4d09-97ce-f1c012b43c34 + * For help, see: https://nodejs.org/en/docs/inspector + * ws://127.0.0.1:9229/166e272e-7a30-4d09-97ce-f1c012b43c34 + * + * $ node --inspect=localhost:3000 -p 'inspector.url()' + * Debugger listening on ws://localhost:3000/51cf8d0e-3c36-4c59-8efd-54519839e56a + * For help, see: https://nodejs.org/en/docs/inspector + * ws://localhost:3000/51cf8d0e-3c36-4c59-8efd-54519839e56a + * + * $ node -p 'inspector.url()' + * undefined + * ``` + */ + function url(): string | undefined; + /** + * Blocks until a client (existing or connected later) has sent `Runtime.runIfWaitingForDebugger` command. + * + * An exception will be thrown if there is no active inspector. + * @since v12.7.0 + */ + function waitForDebugger(): void; + // These methods are exposed by the V8 inspector console API (inspector/v8-console.h). + // The method signatures differ from those of the Node.js console, and are deliberately + // typed permissively. + interface InspectorConsole { + debug(...data: any[]): void; + error(...data: any[]): void; + info(...data: any[]): void; + log(...data: any[]): void; + warn(...data: any[]): void; + dir(...data: any[]): void; + dirxml(...data: any[]): void; + table(...data: any[]): void; + trace(...data: any[]): void; + group(...data: any[]): void; + groupCollapsed(...data: any[]): void; + groupEnd(...data: any[]): void; + clear(...data: any[]): void; + count(label?: any): void; + countReset(label?: any): void; + assert(value?: any, ...data: any[]): void; + profile(label?: any): void; + profileEnd(label?: any): void; + time(label?: any): void; + timeLog(label?: any): void; + timeStamp(label?: any): void; + } + /** + * An object to send messages to the remote inspector console. + * @since v11.0.0 + */ + const console: InspectorConsole; + // DevTools protocol event broadcast methods + namespace Network { + /** + * This feature is only available with the `--experimental-network-inspection` flag enabled. + * + * Broadcasts the `Network.requestWillBeSent` event to connected frontends. This event indicates that + * the application is about to send an HTTP request. + * @since v22.6.0 + */ + function requestWillBeSent(params: RequestWillBeSentEventDataType): void; + /** + * This feature is only available with the `--experimental-network-inspection` flag enabled. + * + * Broadcasts the `Network.dataReceived` event to connected frontends, or buffers the data if + * `Network.streamResourceContent` command was not invoked for the given request yet. + * + * Also enables `Network.getResponseBody` command to retrieve the response data. + * @since v24.2.0 + */ + function dataReceived(params: DataReceivedEventDataType): void; + /** + * This feature is only available with the `--experimental-network-inspection` flag enabled. + * + * Enables `Network.getRequestPostData` command to retrieve the request data. + * @since v24.3.0 + */ + function dataSent(params: unknown): void; + /** + * This feature is only available with the `--experimental-network-inspection` flag enabled. + * + * Broadcasts the `Network.responseReceived` event to connected frontends. This event indicates that + * HTTP response is available. + * @since v22.6.0 + */ + function responseReceived(params: ResponseReceivedEventDataType): void; + /** + * This feature is only available with the `--experimental-network-inspection` flag enabled. + * + * Broadcasts the `Network.loadingFinished` event to connected frontends. This event indicates that + * HTTP request has finished loading. + * @since v22.6.0 + */ + function loadingFinished(params: LoadingFinishedEventDataType): void; + /** + * This feature is only available with the `--experimental-network-inspection` flag enabled. + * + * Broadcasts the `Network.loadingFailed` event to connected frontends. This event indicates that + * HTTP request has failed to load. + * @since v22.7.0 + */ + function loadingFailed(params: LoadingFailedEventDataType): void; + /** + * This feature is only available with the `--experimental-network-inspection` flag enabled. + * + * Broadcasts the `Network.webSocketCreated` event to connected frontends. This event indicates that + * a WebSocket connection has been initiated. + * @since v24.7.0 + */ + function webSocketCreated(params: WebSocketCreatedEventDataType): void; + /** + * This feature is only available with the `--experimental-network-inspection` flag enabled. + * + * Broadcasts the `Network.webSocketHandshakeResponseReceived` event to connected frontends. + * This event indicates that the WebSocket handshake response has been received. + * @since v24.7.0 + */ + function webSocketHandshakeResponseReceived(params: WebSocketHandshakeResponseReceivedEventDataType): void; + /** + * This feature is only available with the `--experimental-network-inspection` flag enabled. + * + * Broadcasts the `Network.webSocketClosed` event to connected frontends. + * This event indicates that a WebSocket connection has been closed. + * @since v24.7.0 + */ + function webSocketClosed(params: WebSocketClosedEventDataType): void; + } + namespace NetworkResources { + /** + * This feature is only available with the `--experimental-inspector-network-resource` flag enabled. + * + * The inspector.NetworkResources.put method is used to provide a response for a loadNetworkResource + * request issued via the Chrome DevTools Protocol (CDP). + * This is typically triggered when a source map is specified by URL, and a DevTools frontend—such as + * Chrome—requests the resource to retrieve the source map. + * + * This method allows developers to predefine the resource content to be served in response to such CDP requests. + * + * ```js + * const inspector = require('node:inspector'); + * // By preemptively calling put to register the resource, a source map can be resolved when + * // a loadNetworkResource request is made from the frontend. + * async function setNetworkResources() { + * const mapUrl = 'http://localhost:3000/dist/app.js.map'; + * const tsUrl = 'http://localhost:3000/src/app.ts'; + * const distAppJsMap = await fetch(mapUrl).then((res) => res.text()); + * const srcAppTs = await fetch(tsUrl).then((res) => res.text()); + * inspector.NetworkResources.put(mapUrl, distAppJsMap); + * inspector.NetworkResources.put(tsUrl, srcAppTs); + * }; + * setNetworkResources().then(() => { + * require('./dist/app'); + * }); + * ``` + * + * For more details, see the official CDP documentation: [Network.loadNetworkResource](https://chromedevtools.github.io/devtools-protocol/tot/Network/#method-loadNetworkResource) + * @since v24.5.0 + * @experimental + */ + function put(url: string, data: string): void; + } + namespace DOMStorage { + /** + * This feature is only available with the + * `--experimental-storage-inspection` flag enabled. + * + * Broadcasts the `DOMStorage.domStorageItemAdded` event to connected frontends. + * This event indicates that a new item has been added to the storage. + * @since v25.5.0 + */ + function domStorageItemAdded(params: DomStorageItemAddedEventDataType): void; + /** + * This feature is only available with the + * `--experimental-storage-inspection` flag enabled. + * + * Broadcasts the `DOMStorage.domStorageItemRemoved` event to connected frontends. + * This event indicates that an item has been removed from the storage. + * @since v25.5.0 + */ + function domStorageItemRemoved(params: DomStorageItemRemovedEventDataType): void; + /** + * This feature is only available with the + * `--experimental-storage-inspection` flag enabled. + + * Broadcasts the `DOMStorage.domStorageItemUpdated` event to connected frontends. + * This event indicates that a storage item has been updated. + * @since v25.5.0 + */ + function domStorageItemUpdated(params: DomStorageItemUpdatedEventDataType): void; + /** + * This feature is only available with the + * `--experimental-storage-inspection` flag enabled. + * + * Broadcasts the `DOMStorage.domStorageItemsCleared` event to connected + * frontends. This event indicates that all items have been cleared from the + * storage. + * @since v25.5.0 + */ + function domStorageItemsCleared(params: DomStorageItemsClearedEventDataType): void; + /** + * This feature is only available with the + * `--experimental-storage-inspection` flag enabled. + * @since v25.5.0 + */ + function registerStorage(params: unknown): void; + } +} +declare module "inspector" { + export * from "node:inspector"; +} diff --git a/server/api/node_modules/@types/node/inspector.generated.d.ts b/server/api/node_modules/@types/node/inspector.generated.d.ts new file mode 100644 index 0000000..93ae271 --- /dev/null +++ b/server/api/node_modules/@types/node/inspector.generated.d.ts @@ -0,0 +1,4401 @@ +// These definitions are automatically generated by the generate-inspector script. +// Do not edit this file directly. +// See scripts/generate-inspector/README.md for information on how to update the protocol definitions. +// Changes to the module itself should be added to the generator template (scripts/generate-inspector/inspector.d.ts.template). + +declare module "node:inspector" { + interface InspectorNotification { + method: string; + params: T; + } + namespace Schema { + /** + * Description of the protocol domain. + */ + interface Domain { + /** + * Domain name. + */ + name: string; + /** + * Domain version. + */ + version: string; + } + interface GetDomainsReturnType { + /** + * List of supported domains. + */ + domains: Domain[]; + } + } + namespace Runtime { + /** + * Unique script identifier. + */ + type ScriptId = string; + /** + * Unique object identifier. + */ + type RemoteObjectId = string; + /** + * Primitive value which cannot be JSON-stringified. + */ + type UnserializableValue = string; + /** + * Mirror object referencing original JavaScript object. + */ + interface RemoteObject { + /** + * Object type. + */ + type: string; + /** + * Object subtype hint. Specified for object type values only. + */ + subtype?: string | undefined; + /** + * Object class (constructor) name. Specified for object type values only. + */ + className?: string | undefined; + /** + * Remote object value in case of primitive values or JSON values (if it was requested). + */ + value?: any; + /** + * Primitive value which can not be JSON-stringified does not have value, but gets this property. + */ + unserializableValue?: UnserializableValue | undefined; + /** + * String representation of the object. + */ + description?: string | undefined; + /** + * Unique object identifier (for non-primitive values). + */ + objectId?: RemoteObjectId | undefined; + /** + * Preview containing abbreviated property values. Specified for object type values only. + * @experimental + */ + preview?: ObjectPreview | undefined; + /** + * @experimental + */ + customPreview?: CustomPreview | undefined; + } + /** + * @experimental + */ + interface CustomPreview { + header: string; + hasBody: boolean; + formatterObjectId: RemoteObjectId; + bindRemoteObjectFunctionId: RemoteObjectId; + configObjectId?: RemoteObjectId | undefined; + } + /** + * Object containing abbreviated remote object value. + * @experimental + */ + interface ObjectPreview { + /** + * Object type. + */ + type: string; + /** + * Object subtype hint. Specified for object type values only. + */ + subtype?: string | undefined; + /** + * String representation of the object. + */ + description?: string | undefined; + /** + * True iff some of the properties or entries of the original object did not fit. + */ + overflow: boolean; + /** + * List of the properties. + */ + properties: PropertyPreview[]; + /** + * List of the entries. Specified for map and set subtype values only. + */ + entries?: EntryPreview[] | undefined; + } + /** + * @experimental + */ + interface PropertyPreview { + /** + * Property name. + */ + name: string; + /** + * Object type. Accessor means that the property itself is an accessor property. + */ + type: string; + /** + * User-friendly property value string. + */ + value?: string | undefined; + /** + * Nested value preview. + */ + valuePreview?: ObjectPreview | undefined; + /** + * Object subtype hint. Specified for object type values only. + */ + subtype?: string | undefined; + } + /** + * @experimental + */ + interface EntryPreview { + /** + * Preview of the key. Specified for map-like collection entries. + */ + key?: ObjectPreview | undefined; + /** + * Preview of the value. + */ + value: ObjectPreview; + } + /** + * Object property descriptor. + */ + interface PropertyDescriptor { + /** + * Property name or symbol description. + */ + name: string; + /** + * The value associated with the property. + */ + value?: RemoteObject | undefined; + /** + * True if the value associated with the property may be changed (data descriptors only). + */ + writable?: boolean | undefined; + /** + * A function which serves as a getter for the property, or undefined if there is no getter (accessor descriptors only). + */ + get?: RemoteObject | undefined; + /** + * A function which serves as a setter for the property, or undefined if there is no setter (accessor descriptors only). + */ + set?: RemoteObject | undefined; + /** + * True if the type of this property descriptor may be changed and if the property may be deleted from the corresponding object. + */ + configurable: boolean; + /** + * True if this property shows up during enumeration of the properties on the corresponding object. + */ + enumerable: boolean; + /** + * True if the result was thrown during the evaluation. + */ + wasThrown?: boolean | undefined; + /** + * True if the property is owned for the object. + */ + isOwn?: boolean | undefined; + /** + * Property symbol object, if the property is of the symbol type. + */ + symbol?: RemoteObject | undefined; + } + /** + * Object internal property descriptor. This property isn't normally visible in JavaScript code. + */ + interface InternalPropertyDescriptor { + /** + * Conventional property name. + */ + name: string; + /** + * The value associated with the property. + */ + value?: RemoteObject | undefined; + } + /** + * Represents function call argument. Either remote object id objectId, primitive value, unserializable primitive value or neither of (for undefined) them should be specified. + */ + interface CallArgument { + /** + * Primitive value or serializable javascript object. + */ + value?: any; + /** + * Primitive value which can not be JSON-stringified. + */ + unserializableValue?: UnserializableValue | undefined; + /** + * Remote object handle. + */ + objectId?: RemoteObjectId | undefined; + } + /** + * Id of an execution context. + */ + type ExecutionContextId = number; + /** + * Description of an isolated world. + */ + interface ExecutionContextDescription { + /** + * Unique id of the execution context. It can be used to specify in which execution context script evaluation should be performed. + */ + id: ExecutionContextId; + /** + * Execution context origin. + */ + origin: string; + /** + * Human readable name describing given context. + */ + name: string; + /** + * Embedder-specific auxiliary data. + */ + auxData?: object | undefined; + } + /** + * Detailed information about exception (or error) that was thrown during script compilation or execution. + */ + interface ExceptionDetails { + /** + * Exception id. + */ + exceptionId: number; + /** + * Exception text, which should be used together with exception object when available. + */ + text: string; + /** + * Line number of the exception location (0-based). + */ + lineNumber: number; + /** + * Column number of the exception location (0-based). + */ + columnNumber: number; + /** + * Script ID of the exception location. + */ + scriptId?: ScriptId | undefined; + /** + * URL of the exception location, to be used when the script was not reported. + */ + url?: string | undefined; + /** + * JavaScript stack trace if available. + */ + stackTrace?: StackTrace | undefined; + /** + * Exception object if available. + */ + exception?: RemoteObject | undefined; + /** + * Identifier of the context where exception happened. + */ + executionContextId?: ExecutionContextId | undefined; + } + /** + * Number of milliseconds since epoch. + */ + type Timestamp = number; + /** + * Stack entry for runtime errors and assertions. + */ + interface CallFrame { + /** + * JavaScript function name. + */ + functionName: string; + /** + * JavaScript script id. + */ + scriptId: ScriptId; + /** + * JavaScript script name or url. + */ + url: string; + /** + * JavaScript script line number (0-based). + */ + lineNumber: number; + /** + * JavaScript script column number (0-based). + */ + columnNumber: number; + } + /** + * Call frames for assertions or error messages. + */ + interface StackTrace { + /** + * String label of this stack trace. For async traces this may be a name of the function that initiated the async call. + */ + description?: string | undefined; + /** + * JavaScript function name. + */ + callFrames: CallFrame[]; + /** + * Asynchronous JavaScript stack trace that preceded this stack, if available. + */ + parent?: StackTrace | undefined; + /** + * Asynchronous JavaScript stack trace that preceded this stack, if available. + * @experimental + */ + parentId?: StackTraceId | undefined; + } + /** + * Unique identifier of current debugger. + * @experimental + */ + type UniqueDebuggerId = string; + /** + * If debuggerId is set stack trace comes from another debugger and can be resolved there. This allows to track cross-debugger calls. See Runtime.StackTrace and Debugger.paused for usages. + * @experimental + */ + interface StackTraceId { + id: string; + debuggerId?: UniqueDebuggerId | undefined; + } + interface EvaluateParameterType { + /** + * Expression to evaluate. + */ + expression: string; + /** + * Symbolic group name that can be used to release multiple objects. + */ + objectGroup?: string | undefined; + /** + * Determines whether Command Line API should be available during the evaluation. + */ + includeCommandLineAPI?: boolean | undefined; + /** + * In silent mode exceptions thrown during evaluation are not reported and do not pause execution. Overrides setPauseOnException state. + */ + silent?: boolean | undefined; + /** + * Specifies in which execution context to perform evaluation. If the parameter is omitted the evaluation will be performed in the context of the inspected page. + */ + contextId?: ExecutionContextId | undefined; + /** + * Whether the result is expected to be a JSON object that should be sent by value. + */ + returnByValue?: boolean | undefined; + /** + * Whether preview should be generated for the result. + * @experimental + */ + generatePreview?: boolean | undefined; + /** + * Whether execution should be treated as initiated by user in the UI. + */ + userGesture?: boolean | undefined; + /** + * Whether execution should await for resulting value and return once awaited promise is resolved. + */ + awaitPromise?: boolean | undefined; + } + interface AwaitPromiseParameterType { + /** + * Identifier of the promise. + */ + promiseObjectId: RemoteObjectId; + /** + * Whether the result is expected to be a JSON object that should be sent by value. + */ + returnByValue?: boolean | undefined; + /** + * Whether preview should be generated for the result. + */ + generatePreview?: boolean | undefined; + } + interface CallFunctionOnParameterType { + /** + * Declaration of the function to call. + */ + functionDeclaration: string; + /** + * Identifier of the object to call function on. Either objectId or executionContextId should be specified. + */ + objectId?: RemoteObjectId | undefined; + /** + * Call arguments. All call arguments must belong to the same JavaScript world as the target object. + */ + arguments?: CallArgument[] | undefined; + /** + * In silent mode exceptions thrown during evaluation are not reported and do not pause execution. Overrides setPauseOnException state. + */ + silent?: boolean | undefined; + /** + * Whether the result is expected to be a JSON object which should be sent by value. + */ + returnByValue?: boolean | undefined; + /** + * Whether preview should be generated for the result. + * @experimental + */ + generatePreview?: boolean | undefined; + /** + * Whether execution should be treated as initiated by user in the UI. + */ + userGesture?: boolean | undefined; + /** + * Whether execution should await for resulting value and return once awaited promise is resolved. + */ + awaitPromise?: boolean | undefined; + /** + * Specifies execution context which global object will be used to call function on. Either executionContextId or objectId should be specified. + */ + executionContextId?: ExecutionContextId | undefined; + /** + * Symbolic group name that can be used to release multiple objects. If objectGroup is not specified and objectId is, objectGroup will be inherited from object. + */ + objectGroup?: string | undefined; + } + interface GetPropertiesParameterType { + /** + * Identifier of the object to return properties for. + */ + objectId: RemoteObjectId; + /** + * If true, returns properties belonging only to the element itself, not to its prototype chain. + */ + ownProperties?: boolean | undefined; + /** + * If true, returns accessor properties (with getter/setter) only; internal properties are not returned either. + * @experimental + */ + accessorPropertiesOnly?: boolean | undefined; + /** + * Whether preview should be generated for the results. + * @experimental + */ + generatePreview?: boolean | undefined; + } + interface ReleaseObjectParameterType { + /** + * Identifier of the object to release. + */ + objectId: RemoteObjectId; + } + interface ReleaseObjectGroupParameterType { + /** + * Symbolic object group name. + */ + objectGroup: string; + } + interface SetCustomObjectFormatterEnabledParameterType { + enabled: boolean; + } + interface CompileScriptParameterType { + /** + * Expression to compile. + */ + expression: string; + /** + * Source url to be set for the script. + */ + sourceURL: string; + /** + * Specifies whether the compiled script should be persisted. + */ + persistScript: boolean; + /** + * Specifies in which execution context to perform script run. If the parameter is omitted the evaluation will be performed in the context of the inspected page. + */ + executionContextId?: ExecutionContextId | undefined; + } + interface RunScriptParameterType { + /** + * Id of the script to run. + */ + scriptId: ScriptId; + /** + * Specifies in which execution context to perform script run. If the parameter is omitted the evaluation will be performed in the context of the inspected page. + */ + executionContextId?: ExecutionContextId | undefined; + /** + * Symbolic group name that can be used to release multiple objects. + */ + objectGroup?: string | undefined; + /** + * In silent mode exceptions thrown during evaluation are not reported and do not pause execution. Overrides setPauseOnException state. + */ + silent?: boolean | undefined; + /** + * Determines whether Command Line API should be available during the evaluation. + */ + includeCommandLineAPI?: boolean | undefined; + /** + * Whether the result is expected to be a JSON object which should be sent by value. + */ + returnByValue?: boolean | undefined; + /** + * Whether preview should be generated for the result. + */ + generatePreview?: boolean | undefined; + /** + * Whether execution should await for resulting value and return once awaited promise is resolved. + */ + awaitPromise?: boolean | undefined; + } + interface QueryObjectsParameterType { + /** + * Identifier of the prototype to return objects for. + */ + prototypeObjectId: RemoteObjectId; + } + interface GlobalLexicalScopeNamesParameterType { + /** + * Specifies in which execution context to lookup global scope variables. + */ + executionContextId?: ExecutionContextId | undefined; + } + interface EvaluateReturnType { + /** + * Evaluation result. + */ + result: RemoteObject; + /** + * Exception details. + */ + exceptionDetails?: ExceptionDetails | undefined; + } + interface AwaitPromiseReturnType { + /** + * Promise result. Will contain rejected value if promise was rejected. + */ + result: RemoteObject; + /** + * Exception details if stack strace is available. + */ + exceptionDetails?: ExceptionDetails | undefined; + } + interface CallFunctionOnReturnType { + /** + * Call result. + */ + result: RemoteObject; + /** + * Exception details. + */ + exceptionDetails?: ExceptionDetails | undefined; + } + interface GetPropertiesReturnType { + /** + * Object properties. + */ + result: PropertyDescriptor[]; + /** + * Internal object properties (only of the element itself). + */ + internalProperties?: InternalPropertyDescriptor[] | undefined; + /** + * Exception details. + */ + exceptionDetails?: ExceptionDetails | undefined; + } + interface CompileScriptReturnType { + /** + * Id of the script. + */ + scriptId?: ScriptId | undefined; + /** + * Exception details. + */ + exceptionDetails?: ExceptionDetails | undefined; + } + interface RunScriptReturnType { + /** + * Run result. + */ + result: RemoteObject; + /** + * Exception details. + */ + exceptionDetails?: ExceptionDetails | undefined; + } + interface QueryObjectsReturnType { + /** + * Array with objects. + */ + objects: RemoteObject; + } + interface GlobalLexicalScopeNamesReturnType { + names: string[]; + } + interface ExecutionContextCreatedEventDataType { + /** + * A newly created execution context. + */ + context: ExecutionContextDescription; + } + interface ExecutionContextDestroyedEventDataType { + /** + * Id of the destroyed context + */ + executionContextId: ExecutionContextId; + } + interface ExceptionThrownEventDataType { + /** + * Timestamp of the exception. + */ + timestamp: Timestamp; + exceptionDetails: ExceptionDetails; + } + interface ExceptionRevokedEventDataType { + /** + * Reason describing why exception was revoked. + */ + reason: string; + /** + * The id of revoked exception, as reported in exceptionThrown. + */ + exceptionId: number; + } + interface ConsoleAPICalledEventDataType { + /** + * Type of the call. + */ + type: string; + /** + * Call arguments. + */ + args: RemoteObject[]; + /** + * Identifier of the context where the call was made. + */ + executionContextId: ExecutionContextId; + /** + * Call timestamp. + */ + timestamp: Timestamp; + /** + * Stack trace captured when the call was made. + */ + stackTrace?: StackTrace | undefined; + /** + * Console context descriptor for calls on non-default console context (not console.*): 'anonymous#unique-logger-id' for call on unnamed context, 'name#unique-logger-id' for call on named context. + * @experimental + */ + context?: string | undefined; + } + interface InspectRequestedEventDataType { + object: RemoteObject; + hints: object; + } + } + namespace Debugger { + /** + * Breakpoint identifier. + */ + type BreakpointId = string; + /** + * Call frame identifier. + */ + type CallFrameId = string; + /** + * Location in the source code. + */ + interface Location { + /** + * Script identifier as reported in the Debugger.scriptParsed. + */ + scriptId: Runtime.ScriptId; + /** + * Line number in the script (0-based). + */ + lineNumber: number; + /** + * Column number in the script (0-based). + */ + columnNumber?: number | undefined; + } + /** + * Location in the source code. + * @experimental + */ + interface ScriptPosition { + lineNumber: number; + columnNumber: number; + } + /** + * JavaScript call frame. Array of call frames form the call stack. + */ + interface CallFrame { + /** + * Call frame identifier. This identifier is only valid while the virtual machine is paused. + */ + callFrameId: CallFrameId; + /** + * Name of the JavaScript function called on this call frame. + */ + functionName: string; + /** + * Location in the source code. + */ + functionLocation?: Location | undefined; + /** + * Location in the source code. + */ + location: Location; + /** + * JavaScript script name or url. + */ + url: string; + /** + * Scope chain for this call frame. + */ + scopeChain: Scope[]; + /** + * this object for this call frame. + */ + this: Runtime.RemoteObject; + /** + * The value being returned, if the function is at return point. + */ + returnValue?: Runtime.RemoteObject | undefined; + } + /** + * Scope description. + */ + interface Scope { + /** + * Scope type. + */ + type: string; + /** + * Object representing the scope. For global and with scopes it represents the actual object; for the rest of the scopes, it is artificial transient object enumerating scope variables as its properties. + */ + object: Runtime.RemoteObject; + name?: string | undefined; + /** + * Location in the source code where scope starts + */ + startLocation?: Location | undefined; + /** + * Location in the source code where scope ends + */ + endLocation?: Location | undefined; + } + /** + * Search match for resource. + */ + interface SearchMatch { + /** + * Line number in resource content. + */ + lineNumber: number; + /** + * Line with match content. + */ + lineContent: string; + } + interface BreakLocation { + /** + * Script identifier as reported in the Debugger.scriptParsed. + */ + scriptId: Runtime.ScriptId; + /** + * Line number in the script (0-based). + */ + lineNumber: number; + /** + * Column number in the script (0-based). + */ + columnNumber?: number | undefined; + type?: string | undefined; + } + interface SetBreakpointsActiveParameterType { + /** + * New value for breakpoints active state. + */ + active: boolean; + } + interface SetSkipAllPausesParameterType { + /** + * New value for skip pauses state. + */ + skip: boolean; + } + interface SetBreakpointByUrlParameterType { + /** + * Line number to set breakpoint at. + */ + lineNumber: number; + /** + * URL of the resources to set breakpoint on. + */ + url?: string | undefined; + /** + * Regex pattern for the URLs of the resources to set breakpoints on. Either url or urlRegex must be specified. + */ + urlRegex?: string | undefined; + /** + * Script hash of the resources to set breakpoint on. + */ + scriptHash?: string | undefined; + /** + * Offset in the line to set breakpoint at. + */ + columnNumber?: number | undefined; + /** + * Expression to use as a breakpoint condition. When specified, debugger will only stop on the breakpoint if this expression evaluates to true. + */ + condition?: string | undefined; + } + interface SetBreakpointParameterType { + /** + * Location to set breakpoint in. + */ + location: Location; + /** + * Expression to use as a breakpoint condition. When specified, debugger will only stop on the breakpoint if this expression evaluates to true. + */ + condition?: string | undefined; + } + interface RemoveBreakpointParameterType { + breakpointId: BreakpointId; + } + interface GetPossibleBreakpointsParameterType { + /** + * Start of range to search possible breakpoint locations in. + */ + start: Location; + /** + * End of range to search possible breakpoint locations in (excluding). When not specified, end of scripts is used as end of range. + */ + end?: Location | undefined; + /** + * Only consider locations which are in the same (non-nested) function as start. + */ + restrictToFunction?: boolean | undefined; + } + interface ContinueToLocationParameterType { + /** + * Location to continue to. + */ + location: Location; + targetCallFrames?: string | undefined; + } + interface PauseOnAsyncCallParameterType { + /** + * Debugger will pause when async call with given stack trace is started. + */ + parentStackTraceId: Runtime.StackTraceId; + } + interface StepIntoParameterType { + /** + * Debugger will issue additional Debugger.paused notification if any async task is scheduled before next pause. + * @experimental + */ + breakOnAsyncCall?: boolean | undefined; + } + interface GetStackTraceParameterType { + stackTraceId: Runtime.StackTraceId; + } + interface SearchInContentParameterType { + /** + * Id of the script to search in. + */ + scriptId: Runtime.ScriptId; + /** + * String to search for. + */ + query: string; + /** + * If true, search is case sensitive. + */ + caseSensitive?: boolean | undefined; + /** + * If true, treats string parameter as regex. + */ + isRegex?: boolean | undefined; + } + interface SetScriptSourceParameterType { + /** + * Id of the script to edit. + */ + scriptId: Runtime.ScriptId; + /** + * New content of the script. + */ + scriptSource: string; + /** + * If true the change will not actually be applied. Dry run may be used to get result description without actually modifying the code. + */ + dryRun?: boolean | undefined; + } + interface RestartFrameParameterType { + /** + * Call frame identifier to evaluate on. + */ + callFrameId: CallFrameId; + } + interface GetScriptSourceParameterType { + /** + * Id of the script to get source for. + */ + scriptId: Runtime.ScriptId; + } + interface SetPauseOnExceptionsParameterType { + /** + * Pause on exceptions mode. + */ + state: string; + } + interface EvaluateOnCallFrameParameterType { + /** + * Call frame identifier to evaluate on. + */ + callFrameId: CallFrameId; + /** + * Expression to evaluate. + */ + expression: string; + /** + * String object group name to put result into (allows rapid releasing resulting object handles using releaseObjectGroup). + */ + objectGroup?: string | undefined; + /** + * Specifies whether command line API should be available to the evaluated expression, defaults to false. + */ + includeCommandLineAPI?: boolean | undefined; + /** + * In silent mode exceptions thrown during evaluation are not reported and do not pause execution. Overrides setPauseOnException state. + */ + silent?: boolean | undefined; + /** + * Whether the result is expected to be a JSON object that should be sent by value. + */ + returnByValue?: boolean | undefined; + /** + * Whether preview should be generated for the result. + * @experimental + */ + generatePreview?: boolean | undefined; + /** + * Whether to throw an exception if side effect cannot be ruled out during evaluation. + */ + throwOnSideEffect?: boolean | undefined; + } + interface SetVariableValueParameterType { + /** + * 0-based number of scope as was listed in scope chain. Only 'local', 'closure' and 'catch' scope types are allowed. Other scopes could be manipulated manually. + */ + scopeNumber: number; + /** + * Variable name. + */ + variableName: string; + /** + * New variable value. + */ + newValue: Runtime.CallArgument; + /** + * Id of callframe that holds variable. + */ + callFrameId: CallFrameId; + } + interface SetReturnValueParameterType { + /** + * New return value. + */ + newValue: Runtime.CallArgument; + } + interface SetAsyncCallStackDepthParameterType { + /** + * Maximum depth of async call stacks. Setting to 0 will effectively disable collecting async call stacks (default). + */ + maxDepth: number; + } + interface SetBlackboxPatternsParameterType { + /** + * Array of regexps that will be used to check script url for blackbox state. + */ + patterns: string[]; + } + interface SetBlackboxedRangesParameterType { + /** + * Id of the script. + */ + scriptId: Runtime.ScriptId; + positions: ScriptPosition[]; + } + interface EnableReturnType { + /** + * Unique identifier of the debugger. + * @experimental + */ + debuggerId: Runtime.UniqueDebuggerId; + } + interface SetBreakpointByUrlReturnType { + /** + * Id of the created breakpoint for further reference. + */ + breakpointId: BreakpointId; + /** + * List of the locations this breakpoint resolved into upon addition. + */ + locations: Location[]; + } + interface SetBreakpointReturnType { + /** + * Id of the created breakpoint for further reference. + */ + breakpointId: BreakpointId; + /** + * Location this breakpoint resolved into. + */ + actualLocation: Location; + } + interface GetPossibleBreakpointsReturnType { + /** + * List of the possible breakpoint locations. + */ + locations: BreakLocation[]; + } + interface GetStackTraceReturnType { + stackTrace: Runtime.StackTrace; + } + interface SearchInContentReturnType { + /** + * List of search matches. + */ + result: SearchMatch[]; + } + interface SetScriptSourceReturnType { + /** + * New stack trace in case editing has happened while VM was stopped. + */ + callFrames?: CallFrame[] | undefined; + /** + * Whether current call stack was modified after applying the changes. + */ + stackChanged?: boolean | undefined; + /** + * Async stack trace, if any. + */ + asyncStackTrace?: Runtime.StackTrace | undefined; + /** + * Async stack trace, if any. + * @experimental + */ + asyncStackTraceId?: Runtime.StackTraceId | undefined; + /** + * Exception details if any. + */ + exceptionDetails?: Runtime.ExceptionDetails | undefined; + } + interface RestartFrameReturnType { + /** + * New stack trace. + */ + callFrames: CallFrame[]; + /** + * Async stack trace, if any. + */ + asyncStackTrace?: Runtime.StackTrace | undefined; + /** + * Async stack trace, if any. + * @experimental + */ + asyncStackTraceId?: Runtime.StackTraceId | undefined; + } + interface GetScriptSourceReturnType { + /** + * Script source. + */ + scriptSource: string; + } + interface EvaluateOnCallFrameReturnType { + /** + * Object wrapper for the evaluation result. + */ + result: Runtime.RemoteObject; + /** + * Exception details. + */ + exceptionDetails?: Runtime.ExceptionDetails | undefined; + } + interface ScriptParsedEventDataType { + /** + * Identifier of the script parsed. + */ + scriptId: Runtime.ScriptId; + /** + * URL or name of the script parsed (if any). + */ + url: string; + /** + * Line offset of the script within the resource with given URL (for script tags). + */ + startLine: number; + /** + * Column offset of the script within the resource with given URL. + */ + startColumn: number; + /** + * Last line of the script. + */ + endLine: number; + /** + * Length of the last line of the script. + */ + endColumn: number; + /** + * Specifies script creation context. + */ + executionContextId: Runtime.ExecutionContextId; + /** + * Content hash of the script. + */ + hash: string; + /** + * Embedder-specific auxiliary data. + */ + executionContextAuxData?: object | undefined; + /** + * True, if this script is generated as a result of the live edit operation. + * @experimental + */ + isLiveEdit?: boolean | undefined; + /** + * URL of source map associated with script (if any). + */ + sourceMapURL?: string | undefined; + /** + * True, if this script has sourceURL. + */ + hasSourceURL?: boolean | undefined; + /** + * True, if this script is ES6 module. + */ + isModule?: boolean | undefined; + /** + * This script length. + */ + length?: number | undefined; + /** + * JavaScript top stack frame of where the script parsed event was triggered if available. + * @experimental + */ + stackTrace?: Runtime.StackTrace | undefined; + } + interface ScriptFailedToParseEventDataType { + /** + * Identifier of the script parsed. + */ + scriptId: Runtime.ScriptId; + /** + * URL or name of the script parsed (if any). + */ + url: string; + /** + * Line offset of the script within the resource with given URL (for script tags). + */ + startLine: number; + /** + * Column offset of the script within the resource with given URL. + */ + startColumn: number; + /** + * Last line of the script. + */ + endLine: number; + /** + * Length of the last line of the script. + */ + endColumn: number; + /** + * Specifies script creation context. + */ + executionContextId: Runtime.ExecutionContextId; + /** + * Content hash of the script. + */ + hash: string; + /** + * Embedder-specific auxiliary data. + */ + executionContextAuxData?: object | undefined; + /** + * URL of source map associated with script (if any). + */ + sourceMapURL?: string | undefined; + /** + * True, if this script has sourceURL. + */ + hasSourceURL?: boolean | undefined; + /** + * True, if this script is ES6 module. + */ + isModule?: boolean | undefined; + /** + * This script length. + */ + length?: number | undefined; + /** + * JavaScript top stack frame of where the script parsed event was triggered if available. + * @experimental + */ + stackTrace?: Runtime.StackTrace | undefined; + } + interface BreakpointResolvedEventDataType { + /** + * Breakpoint unique identifier. + */ + breakpointId: BreakpointId; + /** + * Actual breakpoint location. + */ + location: Location; + } + interface PausedEventDataType { + /** + * Call stack the virtual machine stopped on. + */ + callFrames: CallFrame[]; + /** + * Pause reason. + */ + reason: string; + /** + * Object containing break-specific auxiliary properties. + */ + data?: object | undefined; + /** + * Hit breakpoints IDs + */ + hitBreakpoints?: string[] | undefined; + /** + * Async stack trace, if any. + */ + asyncStackTrace?: Runtime.StackTrace | undefined; + /** + * Async stack trace, if any. + * @experimental + */ + asyncStackTraceId?: Runtime.StackTraceId | undefined; + /** + * Just scheduled async call will have this stack trace as parent stack during async execution. This field is available only after Debugger.stepInto call with breakOnAsynCall flag. + * @experimental + */ + asyncCallStackTraceId?: Runtime.StackTraceId | undefined; + } + } + namespace Console { + /** + * Console message. + */ + interface ConsoleMessage { + /** + * Message source. + */ + source: string; + /** + * Message severity. + */ + level: string; + /** + * Message text. + */ + text: string; + /** + * URL of the message origin. + */ + url?: string | undefined; + /** + * Line number in the resource that generated this message (1-based). + */ + line?: number | undefined; + /** + * Column number in the resource that generated this message (1-based). + */ + column?: number | undefined; + } + interface MessageAddedEventDataType { + /** + * Console message that has been added. + */ + message: ConsoleMessage; + } + } + namespace Profiler { + /** + * Profile node. Holds callsite information, execution statistics and child nodes. + */ + interface ProfileNode { + /** + * Unique id of the node. + */ + id: number; + /** + * Function location. + */ + callFrame: Runtime.CallFrame; + /** + * Number of samples where this node was on top of the call stack. + */ + hitCount?: number | undefined; + /** + * Child node ids. + */ + children?: number[] | undefined; + /** + * The reason of being not optimized. The function may be deoptimized or marked as don't optimize. + */ + deoptReason?: string | undefined; + /** + * An array of source position ticks. + */ + positionTicks?: PositionTickInfo[] | undefined; + } + /** + * Profile. + */ + interface Profile { + /** + * The list of profile nodes. First item is the root node. + */ + nodes: ProfileNode[]; + /** + * Profiling start timestamp in microseconds. + */ + startTime: number; + /** + * Profiling end timestamp in microseconds. + */ + endTime: number; + /** + * Ids of samples top nodes. + */ + samples?: number[] | undefined; + /** + * Time intervals between adjacent samples in microseconds. The first delta is relative to the profile startTime. + */ + timeDeltas?: number[] | undefined; + } + /** + * Specifies a number of samples attributed to a certain source position. + */ + interface PositionTickInfo { + /** + * Source line number (1-based). + */ + line: number; + /** + * Number of samples attributed to the source line. + */ + ticks: number; + } + /** + * Coverage data for a source range. + */ + interface CoverageRange { + /** + * JavaScript script source offset for the range start. + */ + startOffset: number; + /** + * JavaScript script source offset for the range end. + */ + endOffset: number; + /** + * Collected execution count of the source range. + */ + count: number; + } + /** + * Coverage data for a JavaScript function. + */ + interface FunctionCoverage { + /** + * JavaScript function name. + */ + functionName: string; + /** + * Source ranges inside the function with coverage data. + */ + ranges: CoverageRange[]; + /** + * Whether coverage data for this function has block granularity. + */ + isBlockCoverage: boolean; + } + /** + * Coverage data for a JavaScript script. + */ + interface ScriptCoverage { + /** + * JavaScript script id. + */ + scriptId: Runtime.ScriptId; + /** + * JavaScript script name or url. + */ + url: string; + /** + * Functions contained in the script that has coverage data. + */ + functions: FunctionCoverage[]; + } + interface SetSamplingIntervalParameterType { + /** + * New sampling interval in microseconds. + */ + interval: number; + } + interface StartPreciseCoverageParameterType { + /** + * Collect accurate call counts beyond simple 'covered' or 'not covered'. + */ + callCount?: boolean | undefined; + /** + * Collect block-based coverage. + */ + detailed?: boolean | undefined; + } + interface StopReturnType { + /** + * Recorded profile. + */ + profile: Profile; + } + interface TakePreciseCoverageReturnType { + /** + * Coverage data for the current isolate. + */ + result: ScriptCoverage[]; + } + interface GetBestEffortCoverageReturnType { + /** + * Coverage data for the current isolate. + */ + result: ScriptCoverage[]; + } + interface ConsoleProfileStartedEventDataType { + id: string; + /** + * Location of console.profile(). + */ + location: Debugger.Location; + /** + * Profile title passed as an argument to console.profile(). + */ + title?: string | undefined; + } + interface ConsoleProfileFinishedEventDataType { + id: string; + /** + * Location of console.profileEnd(). + */ + location: Debugger.Location; + profile: Profile; + /** + * Profile title passed as an argument to console.profile(). + */ + title?: string | undefined; + } + } + namespace HeapProfiler { + /** + * Heap snapshot object id. + */ + type HeapSnapshotObjectId = string; + /** + * Sampling Heap Profile node. Holds callsite information, allocation statistics and child nodes. + */ + interface SamplingHeapProfileNode { + /** + * Function location. + */ + callFrame: Runtime.CallFrame; + /** + * Allocations size in bytes for the node excluding children. + */ + selfSize: number; + /** + * Child nodes. + */ + children: SamplingHeapProfileNode[]; + } + /** + * Profile. + */ + interface SamplingHeapProfile { + head: SamplingHeapProfileNode; + } + interface StartTrackingHeapObjectsParameterType { + trackAllocations?: boolean | undefined; + } + interface StopTrackingHeapObjectsParameterType { + /** + * If true 'reportHeapSnapshotProgress' events will be generated while snapshot is being taken when the tracking is stopped. + */ + reportProgress?: boolean | undefined; + } + interface TakeHeapSnapshotParameterType { + /** + * If true 'reportHeapSnapshotProgress' events will be generated while snapshot is being taken. + */ + reportProgress?: boolean | undefined; + } + interface GetObjectByHeapObjectIdParameterType { + objectId: HeapSnapshotObjectId; + /** + * Symbolic group name that can be used to release multiple objects. + */ + objectGroup?: string | undefined; + } + interface AddInspectedHeapObjectParameterType { + /** + * Heap snapshot object id to be accessible by means of $x command line API. + */ + heapObjectId: HeapSnapshotObjectId; + } + interface GetHeapObjectIdParameterType { + /** + * Identifier of the object to get heap object id for. + */ + objectId: Runtime.RemoteObjectId; + } + interface StartSamplingParameterType { + /** + * Average sample interval in bytes. Poisson distribution is used for the intervals. The default value is 32768 bytes. + */ + samplingInterval?: number | undefined; + } + interface GetObjectByHeapObjectIdReturnType { + /** + * Evaluation result. + */ + result: Runtime.RemoteObject; + } + interface GetHeapObjectIdReturnType { + /** + * Id of the heap snapshot object corresponding to the passed remote object id. + */ + heapSnapshotObjectId: HeapSnapshotObjectId; + } + interface StopSamplingReturnType { + /** + * Recorded sampling heap profile. + */ + profile: SamplingHeapProfile; + } + interface GetSamplingProfileReturnType { + /** + * Return the sampling profile being collected. + */ + profile: SamplingHeapProfile; + } + interface AddHeapSnapshotChunkEventDataType { + chunk: string; + } + interface ReportHeapSnapshotProgressEventDataType { + done: number; + total: number; + finished?: boolean | undefined; + } + interface LastSeenObjectIdEventDataType { + lastSeenObjectId: number; + timestamp: number; + } + interface HeapStatsUpdateEventDataType { + /** + * An array of triplets. Each triplet describes a fragment. The first integer is the fragment index, the second integer is a total count of objects for the fragment, the third integer is a total size of the objects for the fragment. + */ + statsUpdate: number[]; + } + } + namespace IO { + type StreamHandle = string; + interface ReadParameterType { + /** + * Handle of the stream to read. + */ + handle: StreamHandle; + /** + * Seek to the specified offset before reading (if not specified, proceed with offset + * following the last read). Some types of streams may only support sequential reads. + */ + offset?: number | undefined; + /** + * Maximum number of bytes to read (left upon the agent discretion if not specified). + */ + size?: number | undefined; + } + interface CloseParameterType { + /** + * Handle of the stream to close. + */ + handle: StreamHandle; + } + interface ReadReturnType { + /** + * Data that were read. + */ + data: string; + /** + * Set if the end-of-file condition occurred while reading. + */ + eof: boolean; + } + } + namespace Network { + /** + * Resource type as it was perceived by the rendering engine. + */ + type ResourceType = string; + /** + * Unique request identifier. + */ + type RequestId = string; + /** + * UTC time in seconds, counted from January 1, 1970. + */ + type TimeSinceEpoch = number; + /** + * Monotonically increasing time in seconds since an arbitrary point in the past. + */ + type MonotonicTime = number; + /** + * Information about the request initiator. + */ + interface Initiator { + /** + * Type of this initiator. + */ + type: string; + /** + * Initiator JavaScript stack trace, set for Script only. + * Requires the Debugger domain to be enabled. + */ + stack?: Runtime.StackTrace | undefined; + /** + * Initiator URL, set for Parser type or for Script type (when script is importing module) or for SignedExchange type. + */ + url?: string | undefined; + /** + * Initiator line number, set for Parser type or for Script type (when script is importing + * module) (0-based). + */ + lineNumber?: number | undefined; + /** + * Initiator column number, set for Parser type or for Script type (when script is importing + * module) (0-based). + */ + columnNumber?: number | undefined; + /** + * Set if another request triggered this request (e.g. preflight). + */ + requestId?: RequestId | undefined; + } + /** + * HTTP request data. + */ + interface Request { + url: string; + method: string; + headers: Headers; + hasPostData: boolean; + } + /** + * HTTP response data. + */ + interface Response { + url: string; + status: number; + statusText: string; + headers: Headers; + mimeType: string; + charset: string; + } + /** + * Request / response headers as keys / values of JSON object. + */ + interface Headers { + } + interface LoadNetworkResourcePageResult { + success: boolean; + stream?: IO.StreamHandle | undefined; + } + /** + * WebSocket response data. + */ + interface WebSocketResponse { + /** + * HTTP response status code. + */ + status: number; + /** + * HTTP response status text. + */ + statusText: string; + /** + * HTTP response headers. + */ + headers: Headers; + } + interface EnableParameterType { + /** + * Buffer size in bytes to use when preserving network payloads (XHRs, etc). + * @experimental + */ + maxTotalBufferSize?: number | undefined; + /** + * Per-resource buffer size in bytes to use when preserving network payloads (XHRs, etc). + * @experimental + */ + maxResourceBufferSize?: number | undefined; + } + interface GetRequestPostDataParameterType { + /** + * Identifier of the network request to get content for. + */ + requestId: RequestId; + } + interface GetResponseBodyParameterType { + /** + * Identifier of the network request to get content for. + */ + requestId: RequestId; + } + interface StreamResourceContentParameterType { + /** + * Identifier of the request to stream. + */ + requestId: RequestId; + } + interface LoadNetworkResourceParameterType { + /** + * URL of the resource to get content for. + */ + url: string; + } + interface GetRequestPostDataReturnType { + /** + * Request body string, omitting files from multipart requests + */ + postData: string; + } + interface GetResponseBodyReturnType { + /** + * Response body. + */ + body: string; + /** + * True, if content was sent as base64. + */ + base64Encoded: boolean; + } + interface StreamResourceContentReturnType { + /** + * Data that has been buffered until streaming is enabled. + */ + bufferedData: string; + } + interface LoadNetworkResourceReturnType { + resource: LoadNetworkResourcePageResult; + } + interface RequestWillBeSentEventDataType { + /** + * Request identifier. + */ + requestId: RequestId; + /** + * Request data. + */ + request: Request; + /** + * Request initiator. + */ + initiator: Initiator; + /** + * Timestamp. + */ + timestamp: MonotonicTime; + /** + * Timestamp. + */ + wallTime: TimeSinceEpoch; + } + interface ResponseReceivedEventDataType { + /** + * Request identifier. + */ + requestId: RequestId; + /** + * Timestamp. + */ + timestamp: MonotonicTime; + /** + * Resource type. + */ + type: ResourceType; + /** + * Response data. + */ + response: Response; + } + interface LoadingFailedEventDataType { + /** + * Request identifier. + */ + requestId: RequestId; + /** + * Timestamp. + */ + timestamp: MonotonicTime; + /** + * Resource type. + */ + type: ResourceType; + /** + * Error message. + */ + errorText: string; + } + interface LoadingFinishedEventDataType { + /** + * Request identifier. + */ + requestId: RequestId; + /** + * Timestamp. + */ + timestamp: MonotonicTime; + } + interface DataReceivedEventDataType { + /** + * Request identifier. + */ + requestId: RequestId; + /** + * Timestamp. + */ + timestamp: MonotonicTime; + /** + * Data chunk length. + */ + dataLength: number; + /** + * Actual bytes received (might be less than dataLength for compressed encodings). + */ + encodedDataLength: number; + /** + * Data that was received. + * @experimental + */ + data?: string | undefined; + } + interface WebSocketCreatedEventDataType { + /** + * Request identifier. + */ + requestId: RequestId; + /** + * WebSocket request URL. + */ + url: string; + /** + * Request initiator. + */ + initiator: Initiator; + } + interface WebSocketClosedEventDataType { + /** + * Request identifier. + */ + requestId: RequestId; + /** + * Timestamp. + */ + timestamp: MonotonicTime; + } + interface WebSocketHandshakeResponseReceivedEventDataType { + /** + * Request identifier. + */ + requestId: RequestId; + /** + * Timestamp. + */ + timestamp: MonotonicTime; + /** + * WebSocket response data. + */ + response: WebSocketResponse; + } + } + namespace NodeRuntime { + interface NotifyWhenWaitingForDisconnectParameterType { + enabled: boolean; + } + } + namespace NodeTracing { + interface TraceConfig { + /** + * Controls how the trace buffer stores data. + */ + recordMode?: string | undefined; + /** + * Included category filters. + */ + includedCategories: string[]; + } + interface StartParameterType { + traceConfig: TraceConfig; + } + interface GetCategoriesReturnType { + /** + * A list of supported tracing categories. + */ + categories: string[]; + } + interface DataCollectedEventDataType { + value: object[]; + } + } + namespace NodeWorker { + type WorkerID = string; + /** + * Unique identifier of attached debugging session. + */ + type SessionID = string; + interface WorkerInfo { + workerId: WorkerID; + type: string; + title: string; + url: string; + } + interface SendMessageToWorkerParameterType { + message: string; + /** + * Identifier of the session. + */ + sessionId: SessionID; + } + interface EnableParameterType { + /** + * Whether to new workers should be paused until the frontend sends `Runtime.runIfWaitingForDebugger` + * message to run them. + */ + waitForDebuggerOnStart: boolean; + } + interface DetachParameterType { + sessionId: SessionID; + } + interface AttachedToWorkerEventDataType { + /** + * Identifier assigned to the session used to send/receive messages. + */ + sessionId: SessionID; + workerInfo: WorkerInfo; + waitingForDebugger: boolean; + } + interface DetachedFromWorkerEventDataType { + /** + * Detached session identifier. + */ + sessionId: SessionID; + } + interface ReceivedMessageFromWorkerEventDataType { + /** + * Identifier of a session which sends a message. + */ + sessionId: SessionID; + message: string; + } + } + namespace Target { + type SessionID = string; + type TargetID = string; + interface TargetInfo { + targetId: TargetID; + type: string; + title: string; + url: string; + attached: boolean; + canAccessOpener: boolean; + } + interface SetAutoAttachParameterType { + autoAttach: boolean; + waitForDebuggerOnStart: boolean; + } + interface TargetCreatedEventDataType { + targetInfo: TargetInfo; + } + interface AttachedToTargetEventDataType { + sessionId: SessionID; + targetInfo: TargetInfo; + waitingForDebugger: boolean; + } + } + namespace DOMStorage { + type SerializedStorageKey = string; + /** + * DOM Storage identifier. + */ + interface StorageId { + /** + * Security origin for the storage. + */ + securityOrigin?: string | undefined; + /** + * Represents a key by which DOM Storage keys its CachedStorageAreas + */ + storageKey?: SerializedStorageKey | undefined; + /** + * Whether the storage is local storage (not session storage). + */ + isLocalStorage: boolean; + } + /** + * DOM Storage item. + */ + type Item = string[]; + interface ClearParameterType { + storageId: StorageId; + } + interface GetDOMStorageItemsParameterType { + storageId: StorageId; + } + interface RemoveDOMStorageItemParameterType { + storageId: StorageId; + key: string; + } + interface SetDOMStorageItemParameterType { + storageId: StorageId; + key: string; + value: string; + } + interface GetDOMStorageItemsReturnType { + entries: Item[]; + } + interface DomStorageItemAddedEventDataType { + storageId: StorageId; + key: string; + newValue: string; + } + interface DomStorageItemRemovedEventDataType { + storageId: StorageId; + key: string; + } + interface DomStorageItemUpdatedEventDataType { + storageId: StorageId; + key: string; + oldValue: string; + newValue: string; + } + interface DomStorageItemsClearedEventDataType { + storageId: StorageId; + } + } + namespace Storage { + type SerializedStorageKey = string; + interface GetStorageKeyParameterType { + frameId?: string | undefined; + } + interface GetStorageKeyReturnType { + storageKey: SerializedStorageKey; + } + } + interface Session { + /** + * Posts a message to the inspector back-end. `callback` will be notified when + * a response is received. `callback` is a function that accepts two optional + * arguments: error and message-specific result. + * + * ```js + * session.post('Runtime.evaluate', { expression: '2 + 2' }, + * (error, { result }) => console.log(result)); + * // Output: { type: 'number', value: 4, description: '4' } + * ``` + * + * The latest version of the V8 inspector protocol is published on the + * [Chrome DevTools Protocol Viewer](https://chromedevtools.github.io/devtools-protocol/v8/). + * + * Node.js inspector supports all the Chrome DevTools Protocol domains declared + * by V8. Chrome DevTools Protocol domain provides an interface for interacting + * with one of the runtime agents used to inspect the application state and listen + * to the run-time events. + */ + post(method: string, callback?: (err: Error | null, params?: object) => void): void; + post(method: string, params?: object, callback?: (err: Error | null, params?: object) => void): void; + /** + * Returns supported domains. + */ + post(method: "Schema.getDomains", callback?: (err: Error | null, params: Schema.GetDomainsReturnType) => void): void; + /** + * Evaluates expression on global object. + */ + post(method: "Runtime.evaluate", params?: Runtime.EvaluateParameterType, callback?: (err: Error | null, params: Runtime.EvaluateReturnType) => void): void; + post(method: "Runtime.evaluate", callback?: (err: Error | null, params: Runtime.EvaluateReturnType) => void): void; + /** + * Add handler to promise with given promise object id. + */ + post(method: "Runtime.awaitPromise", params?: Runtime.AwaitPromiseParameterType, callback?: (err: Error | null, params: Runtime.AwaitPromiseReturnType) => void): void; + post(method: "Runtime.awaitPromise", callback?: (err: Error | null, params: Runtime.AwaitPromiseReturnType) => void): void; + /** + * Calls function with given declaration on the given object. Object group of the result is inherited from the target object. + */ + post(method: "Runtime.callFunctionOn", params?: Runtime.CallFunctionOnParameterType, callback?: (err: Error | null, params: Runtime.CallFunctionOnReturnType) => void): void; + post(method: "Runtime.callFunctionOn", callback?: (err: Error | null, params: Runtime.CallFunctionOnReturnType) => void): void; + /** + * Returns properties of a given object. Object group of the result is inherited from the target object. + */ + post(method: "Runtime.getProperties", params?: Runtime.GetPropertiesParameterType, callback?: (err: Error | null, params: Runtime.GetPropertiesReturnType) => void): void; + post(method: "Runtime.getProperties", callback?: (err: Error | null, params: Runtime.GetPropertiesReturnType) => void): void; + /** + * Releases remote object with given id. + */ + post(method: "Runtime.releaseObject", params?: Runtime.ReleaseObjectParameterType, callback?: (err: Error | null) => void): void; + post(method: "Runtime.releaseObject", callback?: (err: Error | null) => void): void; + /** + * Releases all remote objects that belong to a given group. + */ + post(method: "Runtime.releaseObjectGroup", params?: Runtime.ReleaseObjectGroupParameterType, callback?: (err: Error | null) => void): void; + post(method: "Runtime.releaseObjectGroup", callback?: (err: Error | null) => void): void; + /** + * Tells inspected instance to run if it was waiting for debugger to attach. + */ + post(method: "Runtime.runIfWaitingForDebugger", callback?: (err: Error | null) => void): void; + /** + * Enables reporting of execution contexts creation by means of executionContextCreated event. When the reporting gets enabled the event will be sent immediately for each existing execution context. + */ + post(method: "Runtime.enable", callback?: (err: Error | null) => void): void; + /** + * Disables reporting of execution contexts creation. + */ + post(method: "Runtime.disable", callback?: (err: Error | null) => void): void; + /** + * Discards collected exceptions and console API calls. + */ + post(method: "Runtime.discardConsoleEntries", callback?: (err: Error | null) => void): void; + /** + * @experimental + */ + post(method: "Runtime.setCustomObjectFormatterEnabled", params?: Runtime.SetCustomObjectFormatterEnabledParameterType, callback?: (err: Error | null) => void): void; + post(method: "Runtime.setCustomObjectFormatterEnabled", callback?: (err: Error | null) => void): void; + /** + * Compiles expression. + */ + post(method: "Runtime.compileScript", params?: Runtime.CompileScriptParameterType, callback?: (err: Error | null, params: Runtime.CompileScriptReturnType) => void): void; + post(method: "Runtime.compileScript", callback?: (err: Error | null, params: Runtime.CompileScriptReturnType) => void): void; + /** + * Runs script with given id in a given context. + */ + post(method: "Runtime.runScript", params?: Runtime.RunScriptParameterType, callback?: (err: Error | null, params: Runtime.RunScriptReturnType) => void): void; + post(method: "Runtime.runScript", callback?: (err: Error | null, params: Runtime.RunScriptReturnType) => void): void; + post(method: "Runtime.queryObjects", params?: Runtime.QueryObjectsParameterType, callback?: (err: Error | null, params: Runtime.QueryObjectsReturnType) => void): void; + post(method: "Runtime.queryObjects", callback?: (err: Error | null, params: Runtime.QueryObjectsReturnType) => void): void; + /** + * Returns all let, const and class variables from global scope. + */ + post( + method: "Runtime.globalLexicalScopeNames", + params?: Runtime.GlobalLexicalScopeNamesParameterType, + callback?: (err: Error | null, params: Runtime.GlobalLexicalScopeNamesReturnType) => void + ): void; + post(method: "Runtime.globalLexicalScopeNames", callback?: (err: Error | null, params: Runtime.GlobalLexicalScopeNamesReturnType) => void): void; + /** + * Enables debugger for the given page. Clients should not assume that the debugging has been enabled until the result for this command is received. + */ + post(method: "Debugger.enable", callback?: (err: Error | null, params: Debugger.EnableReturnType) => void): void; + /** + * Disables debugger for given page. + */ + post(method: "Debugger.disable", callback?: (err: Error | null) => void): void; + /** + * Activates / deactivates all breakpoints on the page. + */ + post(method: "Debugger.setBreakpointsActive", params?: Debugger.SetBreakpointsActiveParameterType, callback?: (err: Error | null) => void): void; + post(method: "Debugger.setBreakpointsActive", callback?: (err: Error | null) => void): void; + /** + * Makes page not interrupt on any pauses (breakpoint, exception, dom exception etc). + */ + post(method: "Debugger.setSkipAllPauses", params?: Debugger.SetSkipAllPausesParameterType, callback?: (err: Error | null) => void): void; + post(method: "Debugger.setSkipAllPauses", callback?: (err: Error | null) => void): void; + /** + * Sets JavaScript breakpoint at given location specified either by URL or URL regex. Once this command is issued, all existing parsed scripts will have breakpoints resolved and returned in locations property. Further matching script parsing will result in subsequent breakpointResolved events issued. This logical breakpoint will survive page reloads. + */ + post(method: "Debugger.setBreakpointByUrl", params?: Debugger.SetBreakpointByUrlParameterType, callback?: (err: Error | null, params: Debugger.SetBreakpointByUrlReturnType) => void): void; + post(method: "Debugger.setBreakpointByUrl", callback?: (err: Error | null, params: Debugger.SetBreakpointByUrlReturnType) => void): void; + /** + * Sets JavaScript breakpoint at a given location. + */ + post(method: "Debugger.setBreakpoint", params?: Debugger.SetBreakpointParameterType, callback?: (err: Error | null, params: Debugger.SetBreakpointReturnType) => void): void; + post(method: "Debugger.setBreakpoint", callback?: (err: Error | null, params: Debugger.SetBreakpointReturnType) => void): void; + /** + * Removes JavaScript breakpoint. + */ + post(method: "Debugger.removeBreakpoint", params?: Debugger.RemoveBreakpointParameterType, callback?: (err: Error | null) => void): void; + post(method: "Debugger.removeBreakpoint", callback?: (err: Error | null) => void): void; + /** + * Returns possible locations for breakpoint. scriptId in start and end range locations should be the same. + */ + post( + method: "Debugger.getPossibleBreakpoints", + params?: Debugger.GetPossibleBreakpointsParameterType, + callback?: (err: Error | null, params: Debugger.GetPossibleBreakpointsReturnType) => void + ): void; + post(method: "Debugger.getPossibleBreakpoints", callback?: (err: Error | null, params: Debugger.GetPossibleBreakpointsReturnType) => void): void; + /** + * Continues execution until specific location is reached. + */ + post(method: "Debugger.continueToLocation", params?: Debugger.ContinueToLocationParameterType, callback?: (err: Error | null) => void): void; + post(method: "Debugger.continueToLocation", callback?: (err: Error | null) => void): void; + /** + * @experimental + */ + post(method: "Debugger.pauseOnAsyncCall", params?: Debugger.PauseOnAsyncCallParameterType, callback?: (err: Error | null) => void): void; + post(method: "Debugger.pauseOnAsyncCall", callback?: (err: Error | null) => void): void; + /** + * Steps over the statement. + */ + post(method: "Debugger.stepOver", callback?: (err: Error | null) => void): void; + /** + * Steps into the function call. + */ + post(method: "Debugger.stepInto", params?: Debugger.StepIntoParameterType, callback?: (err: Error | null) => void): void; + post(method: "Debugger.stepInto", callback?: (err: Error | null) => void): void; + /** + * Steps out of the function call. + */ + post(method: "Debugger.stepOut", callback?: (err: Error | null) => void): void; + /** + * Stops on the next JavaScript statement. + */ + post(method: "Debugger.pause", callback?: (err: Error | null) => void): void; + /** + * This method is deprecated - use Debugger.stepInto with breakOnAsyncCall and Debugger.pauseOnAsyncTask instead. Steps into next scheduled async task if any is scheduled before next pause. Returns success when async task is actually scheduled, returns error if no task were scheduled or another scheduleStepIntoAsync was called. + * @experimental + */ + post(method: "Debugger.scheduleStepIntoAsync", callback?: (err: Error | null) => void): void; + /** + * Resumes JavaScript execution. + */ + post(method: "Debugger.resume", callback?: (err: Error | null) => void): void; + /** + * Returns stack trace with given stackTraceId. + * @experimental + */ + post(method: "Debugger.getStackTrace", params?: Debugger.GetStackTraceParameterType, callback?: (err: Error | null, params: Debugger.GetStackTraceReturnType) => void): void; + post(method: "Debugger.getStackTrace", callback?: (err: Error | null, params: Debugger.GetStackTraceReturnType) => void): void; + /** + * Searches for given string in script content. + */ + post(method: "Debugger.searchInContent", params?: Debugger.SearchInContentParameterType, callback?: (err: Error | null, params: Debugger.SearchInContentReturnType) => void): void; + post(method: "Debugger.searchInContent", callback?: (err: Error | null, params: Debugger.SearchInContentReturnType) => void): void; + /** + * Edits JavaScript source live. + */ + post(method: "Debugger.setScriptSource", params?: Debugger.SetScriptSourceParameterType, callback?: (err: Error | null, params: Debugger.SetScriptSourceReturnType) => void): void; + post(method: "Debugger.setScriptSource", callback?: (err: Error | null, params: Debugger.SetScriptSourceReturnType) => void): void; + /** + * Restarts particular call frame from the beginning. + */ + post(method: "Debugger.restartFrame", params?: Debugger.RestartFrameParameterType, callback?: (err: Error | null, params: Debugger.RestartFrameReturnType) => void): void; + post(method: "Debugger.restartFrame", callback?: (err: Error | null, params: Debugger.RestartFrameReturnType) => void): void; + /** + * Returns source for the script with given id. + */ + post(method: "Debugger.getScriptSource", params?: Debugger.GetScriptSourceParameterType, callback?: (err: Error | null, params: Debugger.GetScriptSourceReturnType) => void): void; + post(method: "Debugger.getScriptSource", callback?: (err: Error | null, params: Debugger.GetScriptSourceReturnType) => void): void; + /** + * Defines pause on exceptions state. Can be set to stop on all exceptions, uncaught exceptions or no exceptions. Initial pause on exceptions state is none. + */ + post(method: "Debugger.setPauseOnExceptions", params?: Debugger.SetPauseOnExceptionsParameterType, callback?: (err: Error | null) => void): void; + post(method: "Debugger.setPauseOnExceptions", callback?: (err: Error | null) => void): void; + /** + * Evaluates expression on a given call frame. + */ + post(method: "Debugger.evaluateOnCallFrame", params?: Debugger.EvaluateOnCallFrameParameterType, callback?: (err: Error | null, params: Debugger.EvaluateOnCallFrameReturnType) => void): void; + post(method: "Debugger.evaluateOnCallFrame", callback?: (err: Error | null, params: Debugger.EvaluateOnCallFrameReturnType) => void): void; + /** + * Changes value of variable in a callframe. Object-based scopes are not supported and must be mutated manually. + */ + post(method: "Debugger.setVariableValue", params?: Debugger.SetVariableValueParameterType, callback?: (err: Error | null) => void): void; + post(method: "Debugger.setVariableValue", callback?: (err: Error | null) => void): void; + /** + * Changes return value in top frame. Available only at return break position. + * @experimental + */ + post(method: "Debugger.setReturnValue", params?: Debugger.SetReturnValueParameterType, callback?: (err: Error | null) => void): void; + post(method: "Debugger.setReturnValue", callback?: (err: Error | null) => void): void; + /** + * Enables or disables async call stacks tracking. + */ + post(method: "Debugger.setAsyncCallStackDepth", params?: Debugger.SetAsyncCallStackDepthParameterType, callback?: (err: Error | null) => void): void; + post(method: "Debugger.setAsyncCallStackDepth", callback?: (err: Error | null) => void): void; + /** + * Replace previous blackbox patterns with passed ones. Forces backend to skip stepping/pausing in scripts with url matching one of the patterns. VM will try to leave blackboxed script by performing 'step in' several times, finally resorting to 'step out' if unsuccessful. + * @experimental + */ + post(method: "Debugger.setBlackboxPatterns", params?: Debugger.SetBlackboxPatternsParameterType, callback?: (err: Error | null) => void): void; + post(method: "Debugger.setBlackboxPatterns", callback?: (err: Error | null) => void): void; + /** + * Makes backend skip steps in the script in blackboxed ranges. VM will try leave blacklisted scripts by performing 'step in' several times, finally resorting to 'step out' if unsuccessful. Positions array contains positions where blackbox state is changed. First interval isn't blackboxed. Array should be sorted. + * @experimental + */ + post(method: "Debugger.setBlackboxedRanges", params?: Debugger.SetBlackboxedRangesParameterType, callback?: (err: Error | null) => void): void; + post(method: "Debugger.setBlackboxedRanges", callback?: (err: Error | null) => void): void; + /** + * Enables console domain, sends the messages collected so far to the client by means of the messageAdded notification. + */ + post(method: "Console.enable", callback?: (err: Error | null) => void): void; + /** + * Disables console domain, prevents further console messages from being reported to the client. + */ + post(method: "Console.disable", callback?: (err: Error | null) => void): void; + /** + * Does nothing. + */ + post(method: "Console.clearMessages", callback?: (err: Error | null) => void): void; + post(method: "Profiler.enable", callback?: (err: Error | null) => void): void; + post(method: "Profiler.disable", callback?: (err: Error | null) => void): void; + /** + * Changes CPU profiler sampling interval. Must be called before CPU profiles recording started. + */ + post(method: "Profiler.setSamplingInterval", params?: Profiler.SetSamplingIntervalParameterType, callback?: (err: Error | null) => void): void; + post(method: "Profiler.setSamplingInterval", callback?: (err: Error | null) => void): void; + post(method: "Profiler.start", callback?: (err: Error | null) => void): void; + post(method: "Profiler.stop", callback?: (err: Error | null, params: Profiler.StopReturnType) => void): void; + /** + * Enable precise code coverage. Coverage data for JavaScript executed before enabling precise code coverage may be incomplete. Enabling prevents running optimized code and resets execution counters. + */ + post(method: "Profiler.startPreciseCoverage", params?: Profiler.StartPreciseCoverageParameterType, callback?: (err: Error | null) => void): void; + post(method: "Profiler.startPreciseCoverage", callback?: (err: Error | null) => void): void; + /** + * Disable precise code coverage. Disabling releases unnecessary execution count records and allows executing optimized code. + */ + post(method: "Profiler.stopPreciseCoverage", callback?: (err: Error | null) => void): void; + /** + * Collect coverage data for the current isolate, and resets execution counters. Precise code coverage needs to have started. + */ + post(method: "Profiler.takePreciseCoverage", callback?: (err: Error | null, params: Profiler.TakePreciseCoverageReturnType) => void): void; + /** + * Collect coverage data for the current isolate. The coverage data may be incomplete due to garbage collection. + */ + post(method: "Profiler.getBestEffortCoverage", callback?: (err: Error | null, params: Profiler.GetBestEffortCoverageReturnType) => void): void; + post(method: "HeapProfiler.enable", callback?: (err: Error | null) => void): void; + post(method: "HeapProfiler.disable", callback?: (err: Error | null) => void): void; + post(method: "HeapProfiler.startTrackingHeapObjects", params?: HeapProfiler.StartTrackingHeapObjectsParameterType, callback?: (err: Error | null) => void): void; + post(method: "HeapProfiler.startTrackingHeapObjects", callback?: (err: Error | null) => void): void; + post(method: "HeapProfiler.stopTrackingHeapObjects", params?: HeapProfiler.StopTrackingHeapObjectsParameterType, callback?: (err: Error | null) => void): void; + post(method: "HeapProfiler.stopTrackingHeapObjects", callback?: (err: Error | null) => void): void; + post(method: "HeapProfiler.takeHeapSnapshot", params?: HeapProfiler.TakeHeapSnapshotParameterType, callback?: (err: Error | null) => void): void; + post(method: "HeapProfiler.takeHeapSnapshot", callback?: (err: Error | null) => void): void; + post(method: "HeapProfiler.collectGarbage", callback?: (err: Error | null) => void): void; + post( + method: "HeapProfiler.getObjectByHeapObjectId", + params?: HeapProfiler.GetObjectByHeapObjectIdParameterType, + callback?: (err: Error | null, params: HeapProfiler.GetObjectByHeapObjectIdReturnType) => void + ): void; + post(method: "HeapProfiler.getObjectByHeapObjectId", callback?: (err: Error | null, params: HeapProfiler.GetObjectByHeapObjectIdReturnType) => void): void; + /** + * Enables console to refer to the node with given id via $x (see Command Line API for more details $x functions). + */ + post(method: "HeapProfiler.addInspectedHeapObject", params?: HeapProfiler.AddInspectedHeapObjectParameterType, callback?: (err: Error | null) => void): void; + post(method: "HeapProfiler.addInspectedHeapObject", callback?: (err: Error | null) => void): void; + post(method: "HeapProfiler.getHeapObjectId", params?: HeapProfiler.GetHeapObjectIdParameterType, callback?: (err: Error | null, params: HeapProfiler.GetHeapObjectIdReturnType) => void): void; + post(method: "HeapProfiler.getHeapObjectId", callback?: (err: Error | null, params: HeapProfiler.GetHeapObjectIdReturnType) => void): void; + post(method: "HeapProfiler.startSampling", params?: HeapProfiler.StartSamplingParameterType, callback?: (err: Error | null) => void): void; + post(method: "HeapProfiler.startSampling", callback?: (err: Error | null) => void): void; + post(method: "HeapProfiler.stopSampling", callback?: (err: Error | null, params: HeapProfiler.StopSamplingReturnType) => void): void; + post(method: "HeapProfiler.getSamplingProfile", callback?: (err: Error | null, params: HeapProfiler.GetSamplingProfileReturnType) => void): void; + /** + * Read a chunk of the stream + */ + post(method: "IO.read", params?: IO.ReadParameterType, callback?: (err: Error | null, params: IO.ReadReturnType) => void): void; + post(method: "IO.read", callback?: (err: Error | null, params: IO.ReadReturnType) => void): void; + post(method: "IO.close", params?: IO.CloseParameterType, callback?: (err: Error | null) => void): void; + post(method: "IO.close", callback?: (err: Error | null) => void): void; + /** + * Disables network tracking, prevents network events from being sent to the client. + */ + post(method: "Network.disable", callback?: (err: Error | null) => void): void; + /** + * Enables network tracking, network events will now be delivered to the client. + */ + post(method: "Network.enable", params?: Network.EnableParameterType, callback?: (err: Error | null) => void): void; + post(method: "Network.enable", callback?: (err: Error | null) => void): void; + /** + * Returns post data sent with the request. Returns an error when no data was sent with the request. + */ + post(method: "Network.getRequestPostData", params?: Network.GetRequestPostDataParameterType, callback?: (err: Error | null, params: Network.GetRequestPostDataReturnType) => void): void; + post(method: "Network.getRequestPostData", callback?: (err: Error | null, params: Network.GetRequestPostDataReturnType) => void): void; + /** + * Returns content served for the given request. + */ + post(method: "Network.getResponseBody", params?: Network.GetResponseBodyParameterType, callback?: (err: Error | null, params: Network.GetResponseBodyReturnType) => void): void; + post(method: "Network.getResponseBody", callback?: (err: Error | null, params: Network.GetResponseBodyReturnType) => void): void; + /** + * Enables streaming of the response for the given requestId. + * If enabled, the dataReceived event contains the data that was received during streaming. + * @experimental + */ + post( + method: "Network.streamResourceContent", + params?: Network.StreamResourceContentParameterType, + callback?: (err: Error | null, params: Network.StreamResourceContentReturnType) => void + ): void; + post(method: "Network.streamResourceContent", callback?: (err: Error | null, params: Network.StreamResourceContentReturnType) => void): void; + /** + * Fetches the resource and returns the content. + */ + post(method: "Network.loadNetworkResource", params?: Network.LoadNetworkResourceParameterType, callback?: (err: Error | null, params: Network.LoadNetworkResourceReturnType) => void): void; + post(method: "Network.loadNetworkResource", callback?: (err: Error | null, params: Network.LoadNetworkResourceReturnType) => void): void; + /** + * Enable the NodeRuntime events except by `NodeRuntime.waitingForDisconnect`. + */ + post(method: "NodeRuntime.enable", callback?: (err: Error | null) => void): void; + /** + * Disable NodeRuntime events + */ + post(method: "NodeRuntime.disable", callback?: (err: Error | null) => void): void; + /** + * Enable the `NodeRuntime.waitingForDisconnect`. + */ + post(method: "NodeRuntime.notifyWhenWaitingForDisconnect", params?: NodeRuntime.NotifyWhenWaitingForDisconnectParameterType, callback?: (err: Error | null) => void): void; + post(method: "NodeRuntime.notifyWhenWaitingForDisconnect", callback?: (err: Error | null) => void): void; + /** + * Gets supported tracing categories. + */ + post(method: "NodeTracing.getCategories", callback?: (err: Error | null, params: NodeTracing.GetCategoriesReturnType) => void): void; + /** + * Start trace events collection. + */ + post(method: "NodeTracing.start", params?: NodeTracing.StartParameterType, callback?: (err: Error | null) => void): void; + post(method: "NodeTracing.start", callback?: (err: Error | null) => void): void; + /** + * Stop trace events collection. Remaining collected events will be sent as a sequence of + * dataCollected events followed by tracingComplete event. + */ + post(method: "NodeTracing.stop", callback?: (err: Error | null) => void): void; + /** + * Sends protocol message over session with given id. + */ + post(method: "NodeWorker.sendMessageToWorker", params?: NodeWorker.SendMessageToWorkerParameterType, callback?: (err: Error | null) => void): void; + post(method: "NodeWorker.sendMessageToWorker", callback?: (err: Error | null) => void): void; + /** + * Instructs the inspector to attach to running workers. Will also attach to new workers + * as they start + */ + post(method: "NodeWorker.enable", params?: NodeWorker.EnableParameterType, callback?: (err: Error | null) => void): void; + post(method: "NodeWorker.enable", callback?: (err: Error | null) => void): void; + /** + * Detaches from all running workers and disables attaching to new workers as they are started. + */ + post(method: "NodeWorker.disable", callback?: (err: Error | null) => void): void; + /** + * Detached from the worker with given sessionId. + */ + post(method: "NodeWorker.detach", params?: NodeWorker.DetachParameterType, callback?: (err: Error | null) => void): void; + post(method: "NodeWorker.detach", callback?: (err: Error | null) => void): void; + post(method: "Target.setAutoAttach", params?: Target.SetAutoAttachParameterType, callback?: (err: Error | null) => void): void; + post(method: "Target.setAutoAttach", callback?: (err: Error | null) => void): void; + post(method: "DOMStorage.clear", params?: DOMStorage.ClearParameterType, callback?: (err: Error | null) => void): void; + post(method: "DOMStorage.clear", callback?: (err: Error | null) => void): void; + /** + * Disables storage tracking, prevents storage events from being sent to the client. + */ + post(method: "DOMStorage.disable", callback?: (err: Error | null) => void): void; + /** + * Enables storage tracking, storage events will now be delivered to the client. + */ + post(method: "DOMStorage.enable", callback?: (err: Error | null) => void): void; + post( + method: "DOMStorage.getDOMStorageItems", + params?: DOMStorage.GetDOMStorageItemsParameterType, + callback?: (err: Error | null, params: DOMStorage.GetDOMStorageItemsReturnType) => void + ): void; + post(method: "DOMStorage.getDOMStorageItems", callback?: (err: Error | null, params: DOMStorage.GetDOMStorageItemsReturnType) => void): void; + post(method: "DOMStorage.removeDOMStorageItem", params?: DOMStorage.RemoveDOMStorageItemParameterType, callback?: (err: Error | null) => void): void; + post(method: "DOMStorage.removeDOMStorageItem", callback?: (err: Error | null) => void): void; + post(method: "DOMStorage.setDOMStorageItem", params?: DOMStorage.SetDOMStorageItemParameterType, callback?: (err: Error | null) => void): void; + post(method: "DOMStorage.setDOMStorageItem", callback?: (err: Error | null) => void): void; + /** + * @experimental + */ + post(method: "Storage.getStorageKey", params?: Storage.GetStorageKeyParameterType, callback?: (err: Error | null, params: Storage.GetStorageKeyReturnType) => void): void; + post(method: "Storage.getStorageKey", callback?: (err: Error | null, params: Storage.GetStorageKeyReturnType) => void): void; + addListener(event: string, listener: (...args: any[]) => void): this; + /** + * Emitted when any notification from the V8 Inspector is received. + */ + addListener(event: "inspectorNotification", listener: (message: InspectorNotification) => void): this; + /** + * Issued when new execution context is created. + */ + addListener(event: "Runtime.executionContextCreated", listener: (message: InspectorNotification) => void): this; + /** + * Issued when execution context is destroyed. + */ + addListener(event: "Runtime.executionContextDestroyed", listener: (message: InspectorNotification) => void): this; + /** + * Issued when all executionContexts were cleared in browser + */ + addListener(event: "Runtime.executionContextsCleared", listener: () => void): this; + /** + * Issued when exception was thrown and unhandled. + */ + addListener(event: "Runtime.exceptionThrown", listener: (message: InspectorNotification) => void): this; + /** + * Issued when unhandled exception was revoked. + */ + addListener(event: "Runtime.exceptionRevoked", listener: (message: InspectorNotification) => void): this; + /** + * Issued when console API was called. + */ + addListener(event: "Runtime.consoleAPICalled", listener: (message: InspectorNotification) => void): this; + /** + * Issued when object should be inspected (for example, as a result of inspect() command line API call). + */ + addListener(event: "Runtime.inspectRequested", listener: (message: InspectorNotification) => void): this; + /** + * Fired when virtual machine parses script. This event is also fired for all known and uncollected scripts upon enabling debugger. + */ + addListener(event: "Debugger.scriptParsed", listener: (message: InspectorNotification) => void): this; + /** + * Fired when virtual machine fails to parse the script. + */ + addListener(event: "Debugger.scriptFailedToParse", listener: (message: InspectorNotification) => void): this; + /** + * Fired when breakpoint is resolved to an actual script and location. + */ + addListener(event: "Debugger.breakpointResolved", listener: (message: InspectorNotification) => void): this; + /** + * Fired when the virtual machine stopped on breakpoint or exception or any other stop criteria. + */ + addListener(event: "Debugger.paused", listener: (message: InspectorNotification) => void): this; + /** + * Fired when the virtual machine resumed execution. + */ + addListener(event: "Debugger.resumed", listener: () => void): this; + /** + * Issued when new console message is added. + */ + addListener(event: "Console.messageAdded", listener: (message: InspectorNotification) => void): this; + /** + * Sent when new profile recording is started using console.profile() call. + */ + addListener(event: "Profiler.consoleProfileStarted", listener: (message: InspectorNotification) => void): this; + addListener(event: "Profiler.consoleProfileFinished", listener: (message: InspectorNotification) => void): this; + addListener(event: "HeapProfiler.addHeapSnapshotChunk", listener: (message: InspectorNotification) => void): this; + addListener(event: "HeapProfiler.resetProfiles", listener: () => void): this; + addListener(event: "HeapProfiler.reportHeapSnapshotProgress", listener: (message: InspectorNotification) => void): this; + /** + * If heap objects tracking has been started then backend regularly sends a current value for last seen object id and corresponding timestamp. If the were changes in the heap since last event then one or more heapStatsUpdate events will be sent before a new lastSeenObjectId event. + */ + addListener(event: "HeapProfiler.lastSeenObjectId", listener: (message: InspectorNotification) => void): this; + /** + * If heap objects tracking has been started then backend may send update for one or more fragments + */ + addListener(event: "HeapProfiler.heapStatsUpdate", listener: (message: InspectorNotification) => void): this; + /** + * Fired when page is about to send HTTP request. + */ + addListener(event: "Network.requestWillBeSent", listener: (message: InspectorNotification) => void): this; + /** + * Fired when HTTP response is available. + */ + addListener(event: "Network.responseReceived", listener: (message: InspectorNotification) => void): this; + addListener(event: "Network.loadingFailed", listener: (message: InspectorNotification) => void): this; + addListener(event: "Network.loadingFinished", listener: (message: InspectorNotification) => void): this; + /** + * Fired when data chunk was received over the network. + */ + addListener(event: "Network.dataReceived", listener: (message: InspectorNotification) => void): this; + /** + * Fired upon WebSocket creation. + */ + addListener(event: "Network.webSocketCreated", listener: (message: InspectorNotification) => void): this; + /** + * Fired when WebSocket is closed. + */ + addListener(event: "Network.webSocketClosed", listener: (message: InspectorNotification) => void): this; + /** + * Fired when WebSocket handshake response becomes available. + */ + addListener(event: "Network.webSocketHandshakeResponseReceived", listener: (message: InspectorNotification) => void): this; + /** + * This event is fired instead of `Runtime.executionContextDestroyed` when + * enabled. + * It is fired when the Node process finished all code execution and is + * waiting for all frontends to disconnect. + */ + addListener(event: "NodeRuntime.waitingForDisconnect", listener: () => void): this; + /** + * This event is fired when the runtime is waiting for the debugger. For + * example, when inspector.waitingForDebugger is called + */ + addListener(event: "NodeRuntime.waitingForDebugger", listener: () => void): this; + /** + * Contains an bucket of collected trace events. + */ + addListener(event: "NodeTracing.dataCollected", listener: (message: InspectorNotification) => void): this; + /** + * Signals that tracing is stopped and there is no trace buffers pending flush, all data were + * delivered via dataCollected events. + */ + addListener(event: "NodeTracing.tracingComplete", listener: () => void): this; + /** + * Issued when attached to a worker. + */ + addListener(event: "NodeWorker.attachedToWorker", listener: (message: InspectorNotification) => void): this; + /** + * Issued when detached from the worker. + */ + addListener(event: "NodeWorker.detachedFromWorker", listener: (message: InspectorNotification) => void): this; + /** + * Notifies about a new protocol message received from the session + * (session ID is provided in attachedToWorker notification). + */ + addListener(event: "NodeWorker.receivedMessageFromWorker", listener: (message: InspectorNotification) => void): this; + addListener(event: "Target.targetCreated", listener: (message: InspectorNotification) => void): this; + addListener(event: "Target.attachedToTarget", listener: (message: InspectorNotification) => void): this; + addListener(event: "DOMStorage.domStorageItemAdded", listener: (message: InspectorNotification) => void): this; + addListener(event: "DOMStorage.domStorageItemRemoved", listener: (message: InspectorNotification) => void): this; + addListener(event: "DOMStorage.domStorageItemUpdated", listener: (message: InspectorNotification) => void): this; + addListener(event: "DOMStorage.domStorageItemsCleared", listener: (message: InspectorNotification) => void): this; + emit(event: string | symbol, ...args: any[]): boolean; + emit(event: "inspectorNotification", message: InspectorNotification): boolean; + emit(event: "Runtime.executionContextCreated", message: InspectorNotification): boolean; + emit(event: "Runtime.executionContextDestroyed", message: InspectorNotification): boolean; + emit(event: "Runtime.executionContextsCleared"): boolean; + emit(event: "Runtime.exceptionThrown", message: InspectorNotification): boolean; + emit(event: "Runtime.exceptionRevoked", message: InspectorNotification): boolean; + emit(event: "Runtime.consoleAPICalled", message: InspectorNotification): boolean; + emit(event: "Runtime.inspectRequested", message: InspectorNotification): boolean; + emit(event: "Debugger.scriptParsed", message: InspectorNotification): boolean; + emit(event: "Debugger.scriptFailedToParse", message: InspectorNotification): boolean; + emit(event: "Debugger.breakpointResolved", message: InspectorNotification): boolean; + emit(event: "Debugger.paused", message: InspectorNotification): boolean; + emit(event: "Debugger.resumed"): boolean; + emit(event: "Console.messageAdded", message: InspectorNotification): boolean; + emit(event: "Profiler.consoleProfileStarted", message: InspectorNotification): boolean; + emit(event: "Profiler.consoleProfileFinished", message: InspectorNotification): boolean; + emit(event: "HeapProfiler.addHeapSnapshotChunk", message: InspectorNotification): boolean; + emit(event: "HeapProfiler.resetProfiles"): boolean; + emit(event: "HeapProfiler.reportHeapSnapshotProgress", message: InspectorNotification): boolean; + emit(event: "HeapProfiler.lastSeenObjectId", message: InspectorNotification): boolean; + emit(event: "HeapProfiler.heapStatsUpdate", message: InspectorNotification): boolean; + emit(event: "Network.requestWillBeSent", message: InspectorNotification): boolean; + emit(event: "Network.responseReceived", message: InspectorNotification): boolean; + emit(event: "Network.loadingFailed", message: InspectorNotification): boolean; + emit(event: "Network.loadingFinished", message: InspectorNotification): boolean; + emit(event: "Network.dataReceived", message: InspectorNotification): boolean; + emit(event: "Network.webSocketCreated", message: InspectorNotification): boolean; + emit(event: "Network.webSocketClosed", message: InspectorNotification): boolean; + emit(event: "Network.webSocketHandshakeResponseReceived", message: InspectorNotification): boolean; + emit(event: "NodeRuntime.waitingForDisconnect"): boolean; + emit(event: "NodeRuntime.waitingForDebugger"): boolean; + emit(event: "NodeTracing.dataCollected", message: InspectorNotification): boolean; + emit(event: "NodeTracing.tracingComplete"): boolean; + emit(event: "NodeWorker.attachedToWorker", message: InspectorNotification): boolean; + emit(event: "NodeWorker.detachedFromWorker", message: InspectorNotification): boolean; + emit(event: "NodeWorker.receivedMessageFromWorker", message: InspectorNotification): boolean; + emit(event: "Target.targetCreated", message: InspectorNotification): boolean; + emit(event: "Target.attachedToTarget", message: InspectorNotification): boolean; + emit(event: "DOMStorage.domStorageItemAdded", message: InspectorNotification): boolean; + emit(event: "DOMStorage.domStorageItemRemoved", message: InspectorNotification): boolean; + emit(event: "DOMStorage.domStorageItemUpdated", message: InspectorNotification): boolean; + emit(event: "DOMStorage.domStorageItemsCleared", message: InspectorNotification): boolean; + on(event: string, listener: (...args: any[]) => void): this; + /** + * Emitted when any notification from the V8 Inspector is received. + */ + on(event: "inspectorNotification", listener: (message: InspectorNotification) => void): this; + /** + * Issued when new execution context is created. + */ + on(event: "Runtime.executionContextCreated", listener: (message: InspectorNotification) => void): this; + /** + * Issued when execution context is destroyed. + */ + on(event: "Runtime.executionContextDestroyed", listener: (message: InspectorNotification) => void): this; + /** + * Issued when all executionContexts were cleared in browser + */ + on(event: "Runtime.executionContextsCleared", listener: () => void): this; + /** + * Issued when exception was thrown and unhandled. + */ + on(event: "Runtime.exceptionThrown", listener: (message: InspectorNotification) => void): this; + /** + * Issued when unhandled exception was revoked. + */ + on(event: "Runtime.exceptionRevoked", listener: (message: InspectorNotification) => void): this; + /** + * Issued when console API was called. + */ + on(event: "Runtime.consoleAPICalled", listener: (message: InspectorNotification) => void): this; + /** + * Issued when object should be inspected (for example, as a result of inspect() command line API call). + */ + on(event: "Runtime.inspectRequested", listener: (message: InspectorNotification) => void): this; + /** + * Fired when virtual machine parses script. This event is also fired for all known and uncollected scripts upon enabling debugger. + */ + on(event: "Debugger.scriptParsed", listener: (message: InspectorNotification) => void): this; + /** + * Fired when virtual machine fails to parse the script. + */ + on(event: "Debugger.scriptFailedToParse", listener: (message: InspectorNotification) => void): this; + /** + * Fired when breakpoint is resolved to an actual script and location. + */ + on(event: "Debugger.breakpointResolved", listener: (message: InspectorNotification) => void): this; + /** + * Fired when the virtual machine stopped on breakpoint or exception or any other stop criteria. + */ + on(event: "Debugger.paused", listener: (message: InspectorNotification) => void): this; + /** + * Fired when the virtual machine resumed execution. + */ + on(event: "Debugger.resumed", listener: () => void): this; + /** + * Issued when new console message is added. + */ + on(event: "Console.messageAdded", listener: (message: InspectorNotification) => void): this; + /** + * Sent when new profile recording is started using console.profile() call. + */ + on(event: "Profiler.consoleProfileStarted", listener: (message: InspectorNotification) => void): this; + on(event: "Profiler.consoleProfileFinished", listener: (message: InspectorNotification) => void): this; + on(event: "HeapProfiler.addHeapSnapshotChunk", listener: (message: InspectorNotification) => void): this; + on(event: "HeapProfiler.resetProfiles", listener: () => void): this; + on(event: "HeapProfiler.reportHeapSnapshotProgress", listener: (message: InspectorNotification) => void): this; + /** + * If heap objects tracking has been started then backend regularly sends a current value for last seen object id and corresponding timestamp. If the were changes in the heap since last event then one or more heapStatsUpdate events will be sent before a new lastSeenObjectId event. + */ + on(event: "HeapProfiler.lastSeenObjectId", listener: (message: InspectorNotification) => void): this; + /** + * If heap objects tracking has been started then backend may send update for one or more fragments + */ + on(event: "HeapProfiler.heapStatsUpdate", listener: (message: InspectorNotification) => void): this; + /** + * Fired when page is about to send HTTP request. + */ + on(event: "Network.requestWillBeSent", listener: (message: InspectorNotification) => void): this; + /** + * Fired when HTTP response is available. + */ + on(event: "Network.responseReceived", listener: (message: InspectorNotification) => void): this; + on(event: "Network.loadingFailed", listener: (message: InspectorNotification) => void): this; + on(event: "Network.loadingFinished", listener: (message: InspectorNotification) => void): this; + /** + * Fired when data chunk was received over the network. + */ + on(event: "Network.dataReceived", listener: (message: InspectorNotification) => void): this; + /** + * Fired upon WebSocket creation. + */ + on(event: "Network.webSocketCreated", listener: (message: InspectorNotification) => void): this; + /** + * Fired when WebSocket is closed. + */ + on(event: "Network.webSocketClosed", listener: (message: InspectorNotification) => void): this; + /** + * Fired when WebSocket handshake response becomes available. + */ + on(event: "Network.webSocketHandshakeResponseReceived", listener: (message: InspectorNotification) => void): this; + /** + * This event is fired instead of `Runtime.executionContextDestroyed` when + * enabled. + * It is fired when the Node process finished all code execution and is + * waiting for all frontends to disconnect. + */ + on(event: "NodeRuntime.waitingForDisconnect", listener: () => void): this; + /** + * This event is fired when the runtime is waiting for the debugger. For + * example, when inspector.waitingForDebugger is called + */ + on(event: "NodeRuntime.waitingForDebugger", listener: () => void): this; + /** + * Contains an bucket of collected trace events. + */ + on(event: "NodeTracing.dataCollected", listener: (message: InspectorNotification) => void): this; + /** + * Signals that tracing is stopped and there is no trace buffers pending flush, all data were + * delivered via dataCollected events. + */ + on(event: "NodeTracing.tracingComplete", listener: () => void): this; + /** + * Issued when attached to a worker. + */ + on(event: "NodeWorker.attachedToWorker", listener: (message: InspectorNotification) => void): this; + /** + * Issued when detached from the worker. + */ + on(event: "NodeWorker.detachedFromWorker", listener: (message: InspectorNotification) => void): this; + /** + * Notifies about a new protocol message received from the session + * (session ID is provided in attachedToWorker notification). + */ + on(event: "NodeWorker.receivedMessageFromWorker", listener: (message: InspectorNotification) => void): this; + on(event: "Target.targetCreated", listener: (message: InspectorNotification) => void): this; + on(event: "Target.attachedToTarget", listener: (message: InspectorNotification) => void): this; + on(event: "DOMStorage.domStorageItemAdded", listener: (message: InspectorNotification) => void): this; + on(event: "DOMStorage.domStorageItemRemoved", listener: (message: InspectorNotification) => void): this; + on(event: "DOMStorage.domStorageItemUpdated", listener: (message: InspectorNotification) => void): this; + on(event: "DOMStorage.domStorageItemsCleared", listener: (message: InspectorNotification) => void): this; + once(event: string, listener: (...args: any[]) => void): this; + /** + * Emitted when any notification from the V8 Inspector is received. + */ + once(event: "inspectorNotification", listener: (message: InspectorNotification) => void): this; + /** + * Issued when new execution context is created. + */ + once(event: "Runtime.executionContextCreated", listener: (message: InspectorNotification) => void): this; + /** + * Issued when execution context is destroyed. + */ + once(event: "Runtime.executionContextDestroyed", listener: (message: InspectorNotification) => void): this; + /** + * Issued when all executionContexts were cleared in browser + */ + once(event: "Runtime.executionContextsCleared", listener: () => void): this; + /** + * Issued when exception was thrown and unhandled. + */ + once(event: "Runtime.exceptionThrown", listener: (message: InspectorNotification) => void): this; + /** + * Issued when unhandled exception was revoked. + */ + once(event: "Runtime.exceptionRevoked", listener: (message: InspectorNotification) => void): this; + /** + * Issued when console API was called. + */ + once(event: "Runtime.consoleAPICalled", listener: (message: InspectorNotification) => void): this; + /** + * Issued when object should be inspected (for example, as a result of inspect() command line API call). + */ + once(event: "Runtime.inspectRequested", listener: (message: InspectorNotification) => void): this; + /** + * Fired when virtual machine parses script. This event is also fired for all known and uncollected scripts upon enabling debugger. + */ + once(event: "Debugger.scriptParsed", listener: (message: InspectorNotification) => void): this; + /** + * Fired when virtual machine fails to parse the script. + */ + once(event: "Debugger.scriptFailedToParse", listener: (message: InspectorNotification) => void): this; + /** + * Fired when breakpoint is resolved to an actual script and location. + */ + once(event: "Debugger.breakpointResolved", listener: (message: InspectorNotification) => void): this; + /** + * Fired when the virtual machine stopped on breakpoint or exception or any other stop criteria. + */ + once(event: "Debugger.paused", listener: (message: InspectorNotification) => void): this; + /** + * Fired when the virtual machine resumed execution. + */ + once(event: "Debugger.resumed", listener: () => void): this; + /** + * Issued when new console message is added. + */ + once(event: "Console.messageAdded", listener: (message: InspectorNotification) => void): this; + /** + * Sent when new profile recording is started using console.profile() call. + */ + once(event: "Profiler.consoleProfileStarted", listener: (message: InspectorNotification) => void): this; + once(event: "Profiler.consoleProfileFinished", listener: (message: InspectorNotification) => void): this; + once(event: "HeapProfiler.addHeapSnapshotChunk", listener: (message: InspectorNotification) => void): this; + once(event: "HeapProfiler.resetProfiles", listener: () => void): this; + once(event: "HeapProfiler.reportHeapSnapshotProgress", listener: (message: InspectorNotification) => void): this; + /** + * If heap objects tracking has been started then backend regularly sends a current value for last seen object id and corresponding timestamp. If the were changes in the heap since last event then one or more heapStatsUpdate events will be sent before a new lastSeenObjectId event. + */ + once(event: "HeapProfiler.lastSeenObjectId", listener: (message: InspectorNotification) => void): this; + /** + * If heap objects tracking has been started then backend may send update for one or more fragments + */ + once(event: "HeapProfiler.heapStatsUpdate", listener: (message: InspectorNotification) => void): this; + /** + * Fired when page is about to send HTTP request. + */ + once(event: "Network.requestWillBeSent", listener: (message: InspectorNotification) => void): this; + /** + * Fired when HTTP response is available. + */ + once(event: "Network.responseReceived", listener: (message: InspectorNotification) => void): this; + once(event: "Network.loadingFailed", listener: (message: InspectorNotification) => void): this; + once(event: "Network.loadingFinished", listener: (message: InspectorNotification) => void): this; + /** + * Fired when data chunk was received over the network. + */ + once(event: "Network.dataReceived", listener: (message: InspectorNotification) => void): this; + /** + * Fired upon WebSocket creation. + */ + once(event: "Network.webSocketCreated", listener: (message: InspectorNotification) => void): this; + /** + * Fired when WebSocket is closed. + */ + once(event: "Network.webSocketClosed", listener: (message: InspectorNotification) => void): this; + /** + * Fired when WebSocket handshake response becomes available. + */ + once(event: "Network.webSocketHandshakeResponseReceived", listener: (message: InspectorNotification) => void): this; + /** + * This event is fired instead of `Runtime.executionContextDestroyed` when + * enabled. + * It is fired when the Node process finished all code execution and is + * waiting for all frontends to disconnect. + */ + once(event: "NodeRuntime.waitingForDisconnect", listener: () => void): this; + /** + * This event is fired when the runtime is waiting for the debugger. For + * example, when inspector.waitingForDebugger is called + */ + once(event: "NodeRuntime.waitingForDebugger", listener: () => void): this; + /** + * Contains an bucket of collected trace events. + */ + once(event: "NodeTracing.dataCollected", listener: (message: InspectorNotification) => void): this; + /** + * Signals that tracing is stopped and there is no trace buffers pending flush, all data were + * delivered via dataCollected events. + */ + once(event: "NodeTracing.tracingComplete", listener: () => void): this; + /** + * Issued when attached to a worker. + */ + once(event: "NodeWorker.attachedToWorker", listener: (message: InspectorNotification) => void): this; + /** + * Issued when detached from the worker. + */ + once(event: "NodeWorker.detachedFromWorker", listener: (message: InspectorNotification) => void): this; + /** + * Notifies about a new protocol message received from the session + * (session ID is provided in attachedToWorker notification). + */ + once(event: "NodeWorker.receivedMessageFromWorker", listener: (message: InspectorNotification) => void): this; + once(event: "Target.targetCreated", listener: (message: InspectorNotification) => void): this; + once(event: "Target.attachedToTarget", listener: (message: InspectorNotification) => void): this; + once(event: "DOMStorage.domStorageItemAdded", listener: (message: InspectorNotification) => void): this; + once(event: "DOMStorage.domStorageItemRemoved", listener: (message: InspectorNotification) => void): this; + once(event: "DOMStorage.domStorageItemUpdated", listener: (message: InspectorNotification) => void): this; + once(event: "DOMStorage.domStorageItemsCleared", listener: (message: InspectorNotification) => void): this; + prependListener(event: string, listener: (...args: any[]) => void): this; + /** + * Emitted when any notification from the V8 Inspector is received. + */ + prependListener(event: "inspectorNotification", listener: (message: InspectorNotification) => void): this; + /** + * Issued when new execution context is created. + */ + prependListener(event: "Runtime.executionContextCreated", listener: (message: InspectorNotification) => void): this; + /** + * Issued when execution context is destroyed. + */ + prependListener(event: "Runtime.executionContextDestroyed", listener: (message: InspectorNotification) => void): this; + /** + * Issued when all executionContexts were cleared in browser + */ + prependListener(event: "Runtime.executionContextsCleared", listener: () => void): this; + /** + * Issued when exception was thrown and unhandled. + */ + prependListener(event: "Runtime.exceptionThrown", listener: (message: InspectorNotification) => void): this; + /** + * Issued when unhandled exception was revoked. + */ + prependListener(event: "Runtime.exceptionRevoked", listener: (message: InspectorNotification) => void): this; + /** + * Issued when console API was called. + */ + prependListener(event: "Runtime.consoleAPICalled", listener: (message: InspectorNotification) => void): this; + /** + * Issued when object should be inspected (for example, as a result of inspect() command line API call). + */ + prependListener(event: "Runtime.inspectRequested", listener: (message: InspectorNotification) => void): this; + /** + * Fired when virtual machine parses script. This event is also fired for all known and uncollected scripts upon enabling debugger. + */ + prependListener(event: "Debugger.scriptParsed", listener: (message: InspectorNotification) => void): this; + /** + * Fired when virtual machine fails to parse the script. + */ + prependListener(event: "Debugger.scriptFailedToParse", listener: (message: InspectorNotification) => void): this; + /** + * Fired when breakpoint is resolved to an actual script and location. + */ + prependListener(event: "Debugger.breakpointResolved", listener: (message: InspectorNotification) => void): this; + /** + * Fired when the virtual machine stopped on breakpoint or exception or any other stop criteria. + */ + prependListener(event: "Debugger.paused", listener: (message: InspectorNotification) => void): this; + /** + * Fired when the virtual machine resumed execution. + */ + prependListener(event: "Debugger.resumed", listener: () => void): this; + /** + * Issued when new console message is added. + */ + prependListener(event: "Console.messageAdded", listener: (message: InspectorNotification) => void): this; + /** + * Sent when new profile recording is started using console.profile() call. + */ + prependListener(event: "Profiler.consoleProfileStarted", listener: (message: InspectorNotification) => void): this; + prependListener(event: "Profiler.consoleProfileFinished", listener: (message: InspectorNotification) => void): this; + prependListener(event: "HeapProfiler.addHeapSnapshotChunk", listener: (message: InspectorNotification) => void): this; + prependListener(event: "HeapProfiler.resetProfiles", listener: () => void): this; + prependListener(event: "HeapProfiler.reportHeapSnapshotProgress", listener: (message: InspectorNotification) => void): this; + /** + * If heap objects tracking has been started then backend regularly sends a current value for last seen object id and corresponding timestamp. If the were changes in the heap since last event then one or more heapStatsUpdate events will be sent before a new lastSeenObjectId event. + */ + prependListener(event: "HeapProfiler.lastSeenObjectId", listener: (message: InspectorNotification) => void): this; + /** + * If heap objects tracking has been started then backend may send update for one or more fragments + */ + prependListener(event: "HeapProfiler.heapStatsUpdate", listener: (message: InspectorNotification) => void): this; + /** + * Fired when page is about to send HTTP request. + */ + prependListener(event: "Network.requestWillBeSent", listener: (message: InspectorNotification) => void): this; + /** + * Fired when HTTP response is available. + */ + prependListener(event: "Network.responseReceived", listener: (message: InspectorNotification) => void): this; + prependListener(event: "Network.loadingFailed", listener: (message: InspectorNotification) => void): this; + prependListener(event: "Network.loadingFinished", listener: (message: InspectorNotification) => void): this; + /** + * Fired when data chunk was received over the network. + */ + prependListener(event: "Network.dataReceived", listener: (message: InspectorNotification) => void): this; + /** + * Fired upon WebSocket creation. + */ + prependListener(event: "Network.webSocketCreated", listener: (message: InspectorNotification) => void): this; + /** + * Fired when WebSocket is closed. + */ + prependListener(event: "Network.webSocketClosed", listener: (message: InspectorNotification) => void): this; + /** + * Fired when WebSocket handshake response becomes available. + */ + prependListener(event: "Network.webSocketHandshakeResponseReceived", listener: (message: InspectorNotification) => void): this; + /** + * This event is fired instead of `Runtime.executionContextDestroyed` when + * enabled. + * It is fired when the Node process finished all code execution and is + * waiting for all frontends to disconnect. + */ + prependListener(event: "NodeRuntime.waitingForDisconnect", listener: () => void): this; + /** + * This event is fired when the runtime is waiting for the debugger. For + * example, when inspector.waitingForDebugger is called + */ + prependListener(event: "NodeRuntime.waitingForDebugger", listener: () => void): this; + /** + * Contains an bucket of collected trace events. + */ + prependListener(event: "NodeTracing.dataCollected", listener: (message: InspectorNotification) => void): this; + /** + * Signals that tracing is stopped and there is no trace buffers pending flush, all data were + * delivered via dataCollected events. + */ + prependListener(event: "NodeTracing.tracingComplete", listener: () => void): this; + /** + * Issued when attached to a worker. + */ + prependListener(event: "NodeWorker.attachedToWorker", listener: (message: InspectorNotification) => void): this; + /** + * Issued when detached from the worker. + */ + prependListener(event: "NodeWorker.detachedFromWorker", listener: (message: InspectorNotification) => void): this; + /** + * Notifies about a new protocol message received from the session + * (session ID is provided in attachedToWorker notification). + */ + prependListener(event: "NodeWorker.receivedMessageFromWorker", listener: (message: InspectorNotification) => void): this; + prependListener(event: "Target.targetCreated", listener: (message: InspectorNotification) => void): this; + prependListener(event: "Target.attachedToTarget", listener: (message: InspectorNotification) => void): this; + prependListener(event: "DOMStorage.domStorageItemAdded", listener: (message: InspectorNotification) => void): this; + prependListener(event: "DOMStorage.domStorageItemRemoved", listener: (message: InspectorNotification) => void): this; + prependListener(event: "DOMStorage.domStorageItemUpdated", listener: (message: InspectorNotification) => void): this; + prependListener(event: "DOMStorage.domStorageItemsCleared", listener: (message: InspectorNotification) => void): this; + prependOnceListener(event: string, listener: (...args: any[]) => void): this; + /** + * Emitted when any notification from the V8 Inspector is received. + */ + prependOnceListener(event: "inspectorNotification", listener: (message: InspectorNotification) => void): this; + /** + * Issued when new execution context is created. + */ + prependOnceListener(event: "Runtime.executionContextCreated", listener: (message: InspectorNotification) => void): this; + /** + * Issued when execution context is destroyed. + */ + prependOnceListener(event: "Runtime.executionContextDestroyed", listener: (message: InspectorNotification) => void): this; + /** + * Issued when all executionContexts were cleared in browser + */ + prependOnceListener(event: "Runtime.executionContextsCleared", listener: () => void): this; + /** + * Issued when exception was thrown and unhandled. + */ + prependOnceListener(event: "Runtime.exceptionThrown", listener: (message: InspectorNotification) => void): this; + /** + * Issued when unhandled exception was revoked. + */ + prependOnceListener(event: "Runtime.exceptionRevoked", listener: (message: InspectorNotification) => void): this; + /** + * Issued when console API was called. + */ + prependOnceListener(event: "Runtime.consoleAPICalled", listener: (message: InspectorNotification) => void): this; + /** + * Issued when object should be inspected (for example, as a result of inspect() command line API call). + */ + prependOnceListener(event: "Runtime.inspectRequested", listener: (message: InspectorNotification) => void): this; + /** + * Fired when virtual machine parses script. This event is also fired for all known and uncollected scripts upon enabling debugger. + */ + prependOnceListener(event: "Debugger.scriptParsed", listener: (message: InspectorNotification) => void): this; + /** + * Fired when virtual machine fails to parse the script. + */ + prependOnceListener(event: "Debugger.scriptFailedToParse", listener: (message: InspectorNotification) => void): this; + /** + * Fired when breakpoint is resolved to an actual script and location. + */ + prependOnceListener(event: "Debugger.breakpointResolved", listener: (message: InspectorNotification) => void): this; + /** + * Fired when the virtual machine stopped on breakpoint or exception or any other stop criteria. + */ + prependOnceListener(event: "Debugger.paused", listener: (message: InspectorNotification) => void): this; + /** + * Fired when the virtual machine resumed execution. + */ + prependOnceListener(event: "Debugger.resumed", listener: () => void): this; + /** + * Issued when new console message is added. + */ + prependOnceListener(event: "Console.messageAdded", listener: (message: InspectorNotification) => void): this; + /** + * Sent when new profile recording is started using console.profile() call. + */ + prependOnceListener(event: "Profiler.consoleProfileStarted", listener: (message: InspectorNotification) => void): this; + prependOnceListener(event: "Profiler.consoleProfileFinished", listener: (message: InspectorNotification) => void): this; + prependOnceListener(event: "HeapProfiler.addHeapSnapshotChunk", listener: (message: InspectorNotification) => void): this; + prependOnceListener(event: "HeapProfiler.resetProfiles", listener: () => void): this; + prependOnceListener(event: "HeapProfiler.reportHeapSnapshotProgress", listener: (message: InspectorNotification) => void): this; + /** + * If heap objects tracking has been started then backend regularly sends a current value for last seen object id and corresponding timestamp. If the were changes in the heap since last event then one or more heapStatsUpdate events will be sent before a new lastSeenObjectId event. + */ + prependOnceListener(event: "HeapProfiler.lastSeenObjectId", listener: (message: InspectorNotification) => void): this; + /** + * If heap objects tracking has been started then backend may send update for one or more fragments + */ + prependOnceListener(event: "HeapProfiler.heapStatsUpdate", listener: (message: InspectorNotification) => void): this; + /** + * Fired when page is about to send HTTP request. + */ + prependOnceListener(event: "Network.requestWillBeSent", listener: (message: InspectorNotification) => void): this; + /** + * Fired when HTTP response is available. + */ + prependOnceListener(event: "Network.responseReceived", listener: (message: InspectorNotification) => void): this; + prependOnceListener(event: "Network.loadingFailed", listener: (message: InspectorNotification) => void): this; + prependOnceListener(event: "Network.loadingFinished", listener: (message: InspectorNotification) => void): this; + /** + * Fired when data chunk was received over the network. + */ + prependOnceListener(event: "Network.dataReceived", listener: (message: InspectorNotification) => void): this; + /** + * Fired upon WebSocket creation. + */ + prependOnceListener(event: "Network.webSocketCreated", listener: (message: InspectorNotification) => void): this; + /** + * Fired when WebSocket is closed. + */ + prependOnceListener(event: "Network.webSocketClosed", listener: (message: InspectorNotification) => void): this; + /** + * Fired when WebSocket handshake response becomes available. + */ + prependOnceListener(event: "Network.webSocketHandshakeResponseReceived", listener: (message: InspectorNotification) => void): this; + /** + * This event is fired instead of `Runtime.executionContextDestroyed` when + * enabled. + * It is fired when the Node process finished all code execution and is + * waiting for all frontends to disconnect. + */ + prependOnceListener(event: "NodeRuntime.waitingForDisconnect", listener: () => void): this; + /** + * This event is fired when the runtime is waiting for the debugger. For + * example, when inspector.waitingForDebugger is called + */ + prependOnceListener(event: "NodeRuntime.waitingForDebugger", listener: () => void): this; + /** + * Contains an bucket of collected trace events. + */ + prependOnceListener(event: "NodeTracing.dataCollected", listener: (message: InspectorNotification) => void): this; + /** + * Signals that tracing is stopped and there is no trace buffers pending flush, all data were + * delivered via dataCollected events. + */ + prependOnceListener(event: "NodeTracing.tracingComplete", listener: () => void): this; + /** + * Issued when attached to a worker. + */ + prependOnceListener(event: "NodeWorker.attachedToWorker", listener: (message: InspectorNotification) => void): this; + /** + * Issued when detached from the worker. + */ + prependOnceListener(event: "NodeWorker.detachedFromWorker", listener: (message: InspectorNotification) => void): this; + /** + * Notifies about a new protocol message received from the session + * (session ID is provided in attachedToWorker notification). + */ + prependOnceListener(event: "NodeWorker.receivedMessageFromWorker", listener: (message: InspectorNotification) => void): this; + prependOnceListener(event: "Target.targetCreated", listener: (message: InspectorNotification) => void): this; + prependOnceListener(event: "Target.attachedToTarget", listener: (message: InspectorNotification) => void): this; + prependOnceListener(event: "DOMStorage.domStorageItemAdded", listener: (message: InspectorNotification) => void): this; + prependOnceListener(event: "DOMStorage.domStorageItemRemoved", listener: (message: InspectorNotification) => void): this; + prependOnceListener(event: "DOMStorage.domStorageItemUpdated", listener: (message: InspectorNotification) => void): this; + prependOnceListener(event: "DOMStorage.domStorageItemsCleared", listener: (message: InspectorNotification) => void): this; + } +} +declare module "node:inspector/promises" { + export { + Schema, + Runtime, + Debugger, + Console, + Profiler, + HeapProfiler, + IO, + Network, + NodeRuntime, + NodeTracing, + NodeWorker, + Target, + DOMStorage, + Storage, + } from 'inspector'; +} +declare module "node:inspector/promises" { + import { + InspectorNotification, + Schema, + Runtime, + Debugger, + Console, + Profiler, + HeapProfiler, + IO, + Network, + NodeRuntime, + NodeTracing, + NodeWorker, + Target, + DOMStorage, + Storage, + } from "inspector"; + /** + * The `inspector.Session` is used for dispatching messages to the V8 inspector + * back-end and receiving message responses and notifications. + * @since v19.0.0 + */ + interface Session { + /** + * Posts a message to the inspector back-end. + * + * ```js + * import { Session } from 'node:inspector/promises'; + * try { + * const session = new Session(); + * session.connect(); + * const result = await session.post('Runtime.evaluate', { expression: '2 + 2' }); + * console.log(result); + * } catch (error) { + * console.error(error); + * } + * // Output: { result: { type: 'number', value: 4, description: '4' } } + * ``` + * + * The latest version of the V8 inspector protocol is published on the + * [Chrome DevTools Protocol Viewer](https://chromedevtools.github.io/devtools-protocol/v8/). + * + * Node.js inspector supports all the Chrome DevTools Protocol domains declared + * by V8. Chrome DevTools Protocol domain provides an interface for interacting + * with one of the runtime agents used to inspect the application state and listen + * to the run-time events. + */ + post(method: string, params?: object): Promise; + /** + * Returns supported domains. + */ + post(method: "Schema.getDomains"): Promise; + /** + * Evaluates expression on global object. + */ + post(method: "Runtime.evaluate", params?: Runtime.EvaluateParameterType): Promise; + /** + * Add handler to promise with given promise object id. + */ + post(method: "Runtime.awaitPromise", params?: Runtime.AwaitPromiseParameterType): Promise; + /** + * Calls function with given declaration on the given object. Object group of the result is inherited from the target object. + */ + post(method: "Runtime.callFunctionOn", params?: Runtime.CallFunctionOnParameterType): Promise; + /** + * Returns properties of a given object. Object group of the result is inherited from the target object. + */ + post(method: "Runtime.getProperties", params?: Runtime.GetPropertiesParameterType): Promise; + /** + * Releases remote object with given id. + */ + post(method: "Runtime.releaseObject", params?: Runtime.ReleaseObjectParameterType): Promise; + /** + * Releases all remote objects that belong to a given group. + */ + post(method: "Runtime.releaseObjectGroup", params?: Runtime.ReleaseObjectGroupParameterType): Promise; + /** + * Tells inspected instance to run if it was waiting for debugger to attach. + */ + post(method: "Runtime.runIfWaitingForDebugger"): Promise; + /** + * Enables reporting of execution contexts creation by means of executionContextCreated event. When the reporting gets enabled the event will be sent immediately for each existing execution context. + */ + post(method: "Runtime.enable"): Promise; + /** + * Disables reporting of execution contexts creation. + */ + post(method: "Runtime.disable"): Promise; + /** + * Discards collected exceptions and console API calls. + */ + post(method: "Runtime.discardConsoleEntries"): Promise; + /** + * @experimental + */ + post(method: "Runtime.setCustomObjectFormatterEnabled", params?: Runtime.SetCustomObjectFormatterEnabledParameterType): Promise; + /** + * Compiles expression. + */ + post(method: "Runtime.compileScript", params?: Runtime.CompileScriptParameterType): Promise; + /** + * Runs script with given id in a given context. + */ + post(method: "Runtime.runScript", params?: Runtime.RunScriptParameterType): Promise; + post(method: "Runtime.queryObjects", params?: Runtime.QueryObjectsParameterType): Promise; + /** + * Returns all let, const and class variables from global scope. + */ + post(method: "Runtime.globalLexicalScopeNames", params?: Runtime.GlobalLexicalScopeNamesParameterType): Promise; + /** + * Enables debugger for the given page. Clients should not assume that the debugging has been enabled until the result for this command is received. + */ + post(method: "Debugger.enable"): Promise; + /** + * Disables debugger for given page. + */ + post(method: "Debugger.disable"): Promise; + /** + * Activates / deactivates all breakpoints on the page. + */ + post(method: "Debugger.setBreakpointsActive", params?: Debugger.SetBreakpointsActiveParameterType): Promise; + /** + * Makes page not interrupt on any pauses (breakpoint, exception, dom exception etc). + */ + post(method: "Debugger.setSkipAllPauses", params?: Debugger.SetSkipAllPausesParameterType): Promise; + /** + * Sets JavaScript breakpoint at given location specified either by URL or URL regex. Once this command is issued, all existing parsed scripts will have breakpoints resolved and returned in locations property. Further matching script parsing will result in subsequent breakpointResolved events issued. This logical breakpoint will survive page reloads. + */ + post(method: "Debugger.setBreakpointByUrl", params?: Debugger.SetBreakpointByUrlParameterType): Promise; + /** + * Sets JavaScript breakpoint at a given location. + */ + post(method: "Debugger.setBreakpoint", params?: Debugger.SetBreakpointParameterType): Promise; + /** + * Removes JavaScript breakpoint. + */ + post(method: "Debugger.removeBreakpoint", params?: Debugger.RemoveBreakpointParameterType): Promise; + /** + * Returns possible locations for breakpoint. scriptId in start and end range locations should be the same. + */ + post(method: "Debugger.getPossibleBreakpoints", params?: Debugger.GetPossibleBreakpointsParameterType): Promise; + /** + * Continues execution until specific location is reached. + */ + post(method: "Debugger.continueToLocation", params?: Debugger.ContinueToLocationParameterType): Promise; + /** + * @experimental + */ + post(method: "Debugger.pauseOnAsyncCall", params?: Debugger.PauseOnAsyncCallParameterType): Promise; + /** + * Steps over the statement. + */ + post(method: "Debugger.stepOver"): Promise; + /** + * Steps into the function call. + */ + post(method: "Debugger.stepInto", params?: Debugger.StepIntoParameterType): Promise; + /** + * Steps out of the function call. + */ + post(method: "Debugger.stepOut"): Promise; + /** + * Stops on the next JavaScript statement. + */ + post(method: "Debugger.pause"): Promise; + /** + * This method is deprecated - use Debugger.stepInto with breakOnAsyncCall and Debugger.pauseOnAsyncTask instead. Steps into next scheduled async task if any is scheduled before next pause. Returns success when async task is actually scheduled, returns error if no task were scheduled or another scheduleStepIntoAsync was called. + * @experimental + */ + post(method: "Debugger.scheduleStepIntoAsync"): Promise; + /** + * Resumes JavaScript execution. + */ + post(method: "Debugger.resume"): Promise; + /** + * Returns stack trace with given stackTraceId. + * @experimental + */ + post(method: "Debugger.getStackTrace", params?: Debugger.GetStackTraceParameterType): Promise; + /** + * Searches for given string in script content. + */ + post(method: "Debugger.searchInContent", params?: Debugger.SearchInContentParameterType): Promise; + /** + * Edits JavaScript source live. + */ + post(method: "Debugger.setScriptSource", params?: Debugger.SetScriptSourceParameterType): Promise; + /** + * Restarts particular call frame from the beginning. + */ + post(method: "Debugger.restartFrame", params?: Debugger.RestartFrameParameterType): Promise; + /** + * Returns source for the script with given id. + */ + post(method: "Debugger.getScriptSource", params?: Debugger.GetScriptSourceParameterType): Promise; + /** + * Defines pause on exceptions state. Can be set to stop on all exceptions, uncaught exceptions or no exceptions. Initial pause on exceptions state is none. + */ + post(method: "Debugger.setPauseOnExceptions", params?: Debugger.SetPauseOnExceptionsParameterType): Promise; + /** + * Evaluates expression on a given call frame. + */ + post(method: "Debugger.evaluateOnCallFrame", params?: Debugger.EvaluateOnCallFrameParameterType): Promise; + /** + * Changes value of variable in a callframe. Object-based scopes are not supported and must be mutated manually. + */ + post(method: "Debugger.setVariableValue", params?: Debugger.SetVariableValueParameterType): Promise; + /** + * Changes return value in top frame. Available only at return break position. + * @experimental + */ + post(method: "Debugger.setReturnValue", params?: Debugger.SetReturnValueParameterType): Promise; + /** + * Enables or disables async call stacks tracking. + */ + post(method: "Debugger.setAsyncCallStackDepth", params?: Debugger.SetAsyncCallStackDepthParameterType): Promise; + /** + * Replace previous blackbox patterns with passed ones. Forces backend to skip stepping/pausing in scripts with url matching one of the patterns. VM will try to leave blackboxed script by performing 'step in' several times, finally resorting to 'step out' if unsuccessful. + * @experimental + */ + post(method: "Debugger.setBlackboxPatterns", params?: Debugger.SetBlackboxPatternsParameterType): Promise; + /** + * Makes backend skip steps in the script in blackboxed ranges. VM will try leave blacklisted scripts by performing 'step in' several times, finally resorting to 'step out' if unsuccessful. Positions array contains positions where blackbox state is changed. First interval isn't blackboxed. Array should be sorted. + * @experimental + */ + post(method: "Debugger.setBlackboxedRanges", params?: Debugger.SetBlackboxedRangesParameterType): Promise; + /** + * Enables console domain, sends the messages collected so far to the client by means of the messageAdded notification. + */ + post(method: "Console.enable"): Promise; + /** + * Disables console domain, prevents further console messages from being reported to the client. + */ + post(method: "Console.disable"): Promise; + /** + * Does nothing. + */ + post(method: "Console.clearMessages"): Promise; + post(method: "Profiler.enable"): Promise; + post(method: "Profiler.disable"): Promise; + /** + * Changes CPU profiler sampling interval. Must be called before CPU profiles recording started. + */ + post(method: "Profiler.setSamplingInterval", params?: Profiler.SetSamplingIntervalParameterType): Promise; + post(method: "Profiler.start"): Promise; + post(method: "Profiler.stop"): Promise; + /** + * Enable precise code coverage. Coverage data for JavaScript executed before enabling precise code coverage may be incomplete. Enabling prevents running optimized code and resets execution counters. + */ + post(method: "Profiler.startPreciseCoverage", params?: Profiler.StartPreciseCoverageParameterType): Promise; + /** + * Disable precise code coverage. Disabling releases unnecessary execution count records and allows executing optimized code. + */ + post(method: "Profiler.stopPreciseCoverage"): Promise; + /** + * Collect coverage data for the current isolate, and resets execution counters. Precise code coverage needs to have started. + */ + post(method: "Profiler.takePreciseCoverage"): Promise; + /** + * Collect coverage data for the current isolate. The coverage data may be incomplete due to garbage collection. + */ + post(method: "Profiler.getBestEffortCoverage"): Promise; + post(method: "HeapProfiler.enable"): Promise; + post(method: "HeapProfiler.disable"): Promise; + post(method: "HeapProfiler.startTrackingHeapObjects", params?: HeapProfiler.StartTrackingHeapObjectsParameterType): Promise; + post(method: "HeapProfiler.stopTrackingHeapObjects", params?: HeapProfiler.StopTrackingHeapObjectsParameterType): Promise; + post(method: "HeapProfiler.takeHeapSnapshot", params?: HeapProfiler.TakeHeapSnapshotParameterType): Promise; + post(method: "HeapProfiler.collectGarbage"): Promise; + post(method: "HeapProfiler.getObjectByHeapObjectId", params?: HeapProfiler.GetObjectByHeapObjectIdParameterType): Promise; + /** + * Enables console to refer to the node with given id via $x (see Command Line API for more details $x functions). + */ + post(method: "HeapProfiler.addInspectedHeapObject", params?: HeapProfiler.AddInspectedHeapObjectParameterType): Promise; + post(method: "HeapProfiler.getHeapObjectId", params?: HeapProfiler.GetHeapObjectIdParameterType): Promise; + post(method: "HeapProfiler.startSampling", params?: HeapProfiler.StartSamplingParameterType): Promise; + post(method: "HeapProfiler.stopSampling"): Promise; + post(method: "HeapProfiler.getSamplingProfile"): Promise; + /** + * Read a chunk of the stream + */ + post(method: "IO.read", params?: IO.ReadParameterType): Promise; + post(method: "IO.close", params?: IO.CloseParameterType): Promise; + /** + * Disables network tracking, prevents network events from being sent to the client. + */ + post(method: "Network.disable"): Promise; + /** + * Enables network tracking, network events will now be delivered to the client. + */ + post(method: "Network.enable", params?: Network.EnableParameterType): Promise; + /** + * Returns post data sent with the request. Returns an error when no data was sent with the request. + */ + post(method: "Network.getRequestPostData", params?: Network.GetRequestPostDataParameterType): Promise; + /** + * Returns content served for the given request. + */ + post(method: "Network.getResponseBody", params?: Network.GetResponseBodyParameterType): Promise; + /** + * Enables streaming of the response for the given requestId. + * If enabled, the dataReceived event contains the data that was received during streaming. + * @experimental + */ + post(method: "Network.streamResourceContent", params?: Network.StreamResourceContentParameterType): Promise; + /** + * Fetches the resource and returns the content. + */ + post(method: "Network.loadNetworkResource", params?: Network.LoadNetworkResourceParameterType): Promise; + /** + * Enable the NodeRuntime events except by `NodeRuntime.waitingForDisconnect`. + */ + post(method: "NodeRuntime.enable"): Promise; + /** + * Disable NodeRuntime events + */ + post(method: "NodeRuntime.disable"): Promise; + /** + * Enable the `NodeRuntime.waitingForDisconnect`. + */ + post(method: "NodeRuntime.notifyWhenWaitingForDisconnect", params?: NodeRuntime.NotifyWhenWaitingForDisconnectParameterType): Promise; + /** + * Gets supported tracing categories. + */ + post(method: "NodeTracing.getCategories"): Promise; + /** + * Start trace events collection. + */ + post(method: "NodeTracing.start", params?: NodeTracing.StartParameterType): Promise; + /** + * Stop trace events collection. Remaining collected events will be sent as a sequence of + * dataCollected events followed by tracingComplete event. + */ + post(method: "NodeTracing.stop"): Promise; + /** + * Sends protocol message over session with given id. + */ + post(method: "NodeWorker.sendMessageToWorker", params?: NodeWorker.SendMessageToWorkerParameterType): Promise; + /** + * Instructs the inspector to attach to running workers. Will also attach to new workers + * as they start + */ + post(method: "NodeWorker.enable", params?: NodeWorker.EnableParameterType): Promise; + /** + * Detaches from all running workers and disables attaching to new workers as they are started. + */ + post(method: "NodeWorker.disable"): Promise; + /** + * Detached from the worker with given sessionId. + */ + post(method: "NodeWorker.detach", params?: NodeWorker.DetachParameterType): Promise; + post(method: "Target.setAutoAttach", params?: Target.SetAutoAttachParameterType): Promise; + post(method: "DOMStorage.clear", params?: DOMStorage.ClearParameterType): Promise; + /** + * Disables storage tracking, prevents storage events from being sent to the client. + */ + post(method: "DOMStorage.disable"): Promise; + /** + * Enables storage tracking, storage events will now be delivered to the client. + */ + post(method: "DOMStorage.enable"): Promise; + post(method: "DOMStorage.getDOMStorageItems", params?: DOMStorage.GetDOMStorageItemsParameterType): Promise; + post(method: "DOMStorage.removeDOMStorageItem", params?: DOMStorage.RemoveDOMStorageItemParameterType): Promise; + post(method: "DOMStorage.setDOMStorageItem", params?: DOMStorage.SetDOMStorageItemParameterType): Promise; + /** + * @experimental + */ + post(method: "Storage.getStorageKey", params?: Storage.GetStorageKeyParameterType): Promise; + addListener(event: string, listener: (...args: any[]) => void): this; + /** + * Emitted when any notification from the V8 Inspector is received. + */ + addListener(event: "inspectorNotification", listener: (message: InspectorNotification) => void): this; + /** + * Issued when new execution context is created. + */ + addListener(event: "Runtime.executionContextCreated", listener: (message: InspectorNotification) => void): this; + /** + * Issued when execution context is destroyed. + */ + addListener(event: "Runtime.executionContextDestroyed", listener: (message: InspectorNotification) => void): this; + /** + * Issued when all executionContexts were cleared in browser + */ + addListener(event: "Runtime.executionContextsCleared", listener: () => void): this; + /** + * Issued when exception was thrown and unhandled. + */ + addListener(event: "Runtime.exceptionThrown", listener: (message: InspectorNotification) => void): this; + /** + * Issued when unhandled exception was revoked. + */ + addListener(event: "Runtime.exceptionRevoked", listener: (message: InspectorNotification) => void): this; + /** + * Issued when console API was called. + */ + addListener(event: "Runtime.consoleAPICalled", listener: (message: InspectorNotification) => void): this; + /** + * Issued when object should be inspected (for example, as a result of inspect() command line API call). + */ + addListener(event: "Runtime.inspectRequested", listener: (message: InspectorNotification) => void): this; + /** + * Fired when virtual machine parses script. This event is also fired for all known and uncollected scripts upon enabling debugger. + */ + addListener(event: "Debugger.scriptParsed", listener: (message: InspectorNotification) => void): this; + /** + * Fired when virtual machine fails to parse the script. + */ + addListener(event: "Debugger.scriptFailedToParse", listener: (message: InspectorNotification) => void): this; + /** + * Fired when breakpoint is resolved to an actual script and location. + */ + addListener(event: "Debugger.breakpointResolved", listener: (message: InspectorNotification) => void): this; + /** + * Fired when the virtual machine stopped on breakpoint or exception or any other stop criteria. + */ + addListener(event: "Debugger.paused", listener: (message: InspectorNotification) => void): this; + /** + * Fired when the virtual machine resumed execution. + */ + addListener(event: "Debugger.resumed", listener: () => void): this; + /** + * Issued when new console message is added. + */ + addListener(event: "Console.messageAdded", listener: (message: InspectorNotification) => void): this; + /** + * Sent when new profile recording is started using console.profile() call. + */ + addListener(event: "Profiler.consoleProfileStarted", listener: (message: InspectorNotification) => void): this; + addListener(event: "Profiler.consoleProfileFinished", listener: (message: InspectorNotification) => void): this; + addListener(event: "HeapProfiler.addHeapSnapshotChunk", listener: (message: InspectorNotification) => void): this; + addListener(event: "HeapProfiler.resetProfiles", listener: () => void): this; + addListener(event: "HeapProfiler.reportHeapSnapshotProgress", listener: (message: InspectorNotification) => void): this; + /** + * If heap objects tracking has been started then backend regularly sends a current value for last seen object id and corresponding timestamp. If the were changes in the heap since last event then one or more heapStatsUpdate events will be sent before a new lastSeenObjectId event. + */ + addListener(event: "HeapProfiler.lastSeenObjectId", listener: (message: InspectorNotification) => void): this; + /** + * If heap objects tracking has been started then backend may send update for one or more fragments + */ + addListener(event: "HeapProfiler.heapStatsUpdate", listener: (message: InspectorNotification) => void): this; + /** + * Fired when page is about to send HTTP request. + */ + addListener(event: "Network.requestWillBeSent", listener: (message: InspectorNotification) => void): this; + /** + * Fired when HTTP response is available. + */ + addListener(event: "Network.responseReceived", listener: (message: InspectorNotification) => void): this; + addListener(event: "Network.loadingFailed", listener: (message: InspectorNotification) => void): this; + addListener(event: "Network.loadingFinished", listener: (message: InspectorNotification) => void): this; + /** + * Fired when data chunk was received over the network. + */ + addListener(event: "Network.dataReceived", listener: (message: InspectorNotification) => void): this; + /** + * Fired upon WebSocket creation. + */ + addListener(event: "Network.webSocketCreated", listener: (message: InspectorNotification) => void): this; + /** + * Fired when WebSocket is closed. + */ + addListener(event: "Network.webSocketClosed", listener: (message: InspectorNotification) => void): this; + /** + * Fired when WebSocket handshake response becomes available. + */ + addListener(event: "Network.webSocketHandshakeResponseReceived", listener: (message: InspectorNotification) => void): this; + /** + * This event is fired instead of `Runtime.executionContextDestroyed` when + * enabled. + * It is fired when the Node process finished all code execution and is + * waiting for all frontends to disconnect. + */ + addListener(event: "NodeRuntime.waitingForDisconnect", listener: () => void): this; + /** + * This event is fired when the runtime is waiting for the debugger. For + * example, when inspector.waitingForDebugger is called + */ + addListener(event: "NodeRuntime.waitingForDebugger", listener: () => void): this; + /** + * Contains an bucket of collected trace events. + */ + addListener(event: "NodeTracing.dataCollected", listener: (message: InspectorNotification) => void): this; + /** + * Signals that tracing is stopped and there is no trace buffers pending flush, all data were + * delivered via dataCollected events. + */ + addListener(event: "NodeTracing.tracingComplete", listener: () => void): this; + /** + * Issued when attached to a worker. + */ + addListener(event: "NodeWorker.attachedToWorker", listener: (message: InspectorNotification) => void): this; + /** + * Issued when detached from the worker. + */ + addListener(event: "NodeWorker.detachedFromWorker", listener: (message: InspectorNotification) => void): this; + /** + * Notifies about a new protocol message received from the session + * (session ID is provided in attachedToWorker notification). + */ + addListener(event: "NodeWorker.receivedMessageFromWorker", listener: (message: InspectorNotification) => void): this; + addListener(event: "Target.targetCreated", listener: (message: InspectorNotification) => void): this; + addListener(event: "Target.attachedToTarget", listener: (message: InspectorNotification) => void): this; + addListener(event: "DOMStorage.domStorageItemAdded", listener: (message: InspectorNotification) => void): this; + addListener(event: "DOMStorage.domStorageItemRemoved", listener: (message: InspectorNotification) => void): this; + addListener(event: "DOMStorage.domStorageItemUpdated", listener: (message: InspectorNotification) => void): this; + addListener(event: "DOMStorage.domStorageItemsCleared", listener: (message: InspectorNotification) => void): this; + emit(event: string | symbol, ...args: any[]): boolean; + emit(event: "inspectorNotification", message: InspectorNotification): boolean; + emit(event: "Runtime.executionContextCreated", message: InspectorNotification): boolean; + emit(event: "Runtime.executionContextDestroyed", message: InspectorNotification): boolean; + emit(event: "Runtime.executionContextsCleared"): boolean; + emit(event: "Runtime.exceptionThrown", message: InspectorNotification): boolean; + emit(event: "Runtime.exceptionRevoked", message: InspectorNotification): boolean; + emit(event: "Runtime.consoleAPICalled", message: InspectorNotification): boolean; + emit(event: "Runtime.inspectRequested", message: InspectorNotification): boolean; + emit(event: "Debugger.scriptParsed", message: InspectorNotification): boolean; + emit(event: "Debugger.scriptFailedToParse", message: InspectorNotification): boolean; + emit(event: "Debugger.breakpointResolved", message: InspectorNotification): boolean; + emit(event: "Debugger.paused", message: InspectorNotification): boolean; + emit(event: "Debugger.resumed"): boolean; + emit(event: "Console.messageAdded", message: InspectorNotification): boolean; + emit(event: "Profiler.consoleProfileStarted", message: InspectorNotification): boolean; + emit(event: "Profiler.consoleProfileFinished", message: InspectorNotification): boolean; + emit(event: "HeapProfiler.addHeapSnapshotChunk", message: InspectorNotification): boolean; + emit(event: "HeapProfiler.resetProfiles"): boolean; + emit(event: "HeapProfiler.reportHeapSnapshotProgress", message: InspectorNotification): boolean; + emit(event: "HeapProfiler.lastSeenObjectId", message: InspectorNotification): boolean; + emit(event: "HeapProfiler.heapStatsUpdate", message: InspectorNotification): boolean; + emit(event: "Network.requestWillBeSent", message: InspectorNotification): boolean; + emit(event: "Network.responseReceived", message: InspectorNotification): boolean; + emit(event: "Network.loadingFailed", message: InspectorNotification): boolean; + emit(event: "Network.loadingFinished", message: InspectorNotification): boolean; + emit(event: "Network.dataReceived", message: InspectorNotification): boolean; + emit(event: "Network.webSocketCreated", message: InspectorNotification): boolean; + emit(event: "Network.webSocketClosed", message: InspectorNotification): boolean; + emit(event: "Network.webSocketHandshakeResponseReceived", message: InspectorNotification): boolean; + emit(event: "NodeRuntime.waitingForDisconnect"): boolean; + emit(event: "NodeRuntime.waitingForDebugger"): boolean; + emit(event: "NodeTracing.dataCollected", message: InspectorNotification): boolean; + emit(event: "NodeTracing.tracingComplete"): boolean; + emit(event: "NodeWorker.attachedToWorker", message: InspectorNotification): boolean; + emit(event: "NodeWorker.detachedFromWorker", message: InspectorNotification): boolean; + emit(event: "NodeWorker.receivedMessageFromWorker", message: InspectorNotification): boolean; + emit(event: "Target.targetCreated", message: InspectorNotification): boolean; + emit(event: "Target.attachedToTarget", message: InspectorNotification): boolean; + emit(event: "DOMStorage.domStorageItemAdded", message: InspectorNotification): boolean; + emit(event: "DOMStorage.domStorageItemRemoved", message: InspectorNotification): boolean; + emit(event: "DOMStorage.domStorageItemUpdated", message: InspectorNotification): boolean; + emit(event: "DOMStorage.domStorageItemsCleared", message: InspectorNotification): boolean; + on(event: string, listener: (...args: any[]) => void): this; + /** + * Emitted when any notification from the V8 Inspector is received. + */ + on(event: "inspectorNotification", listener: (message: InspectorNotification) => void): this; + /** + * Issued when new execution context is created. + */ + on(event: "Runtime.executionContextCreated", listener: (message: InspectorNotification) => void): this; + /** + * Issued when execution context is destroyed. + */ + on(event: "Runtime.executionContextDestroyed", listener: (message: InspectorNotification) => void): this; + /** + * Issued when all executionContexts were cleared in browser + */ + on(event: "Runtime.executionContextsCleared", listener: () => void): this; + /** + * Issued when exception was thrown and unhandled. + */ + on(event: "Runtime.exceptionThrown", listener: (message: InspectorNotification) => void): this; + /** + * Issued when unhandled exception was revoked. + */ + on(event: "Runtime.exceptionRevoked", listener: (message: InspectorNotification) => void): this; + /** + * Issued when console API was called. + */ + on(event: "Runtime.consoleAPICalled", listener: (message: InspectorNotification) => void): this; + /** + * Issued when object should be inspected (for example, as a result of inspect() command line API call). + */ + on(event: "Runtime.inspectRequested", listener: (message: InspectorNotification) => void): this; + /** + * Fired when virtual machine parses script. This event is also fired for all known and uncollected scripts upon enabling debugger. + */ + on(event: "Debugger.scriptParsed", listener: (message: InspectorNotification) => void): this; + /** + * Fired when virtual machine fails to parse the script. + */ + on(event: "Debugger.scriptFailedToParse", listener: (message: InspectorNotification) => void): this; + /** + * Fired when breakpoint is resolved to an actual script and location. + */ + on(event: "Debugger.breakpointResolved", listener: (message: InspectorNotification) => void): this; + /** + * Fired when the virtual machine stopped on breakpoint or exception or any other stop criteria. + */ + on(event: "Debugger.paused", listener: (message: InspectorNotification) => void): this; + /** + * Fired when the virtual machine resumed execution. + */ + on(event: "Debugger.resumed", listener: () => void): this; + /** + * Issued when new console message is added. + */ + on(event: "Console.messageAdded", listener: (message: InspectorNotification) => void): this; + /** + * Sent when new profile recording is started using console.profile() call. + */ + on(event: "Profiler.consoleProfileStarted", listener: (message: InspectorNotification) => void): this; + on(event: "Profiler.consoleProfileFinished", listener: (message: InspectorNotification) => void): this; + on(event: "HeapProfiler.addHeapSnapshotChunk", listener: (message: InspectorNotification) => void): this; + on(event: "HeapProfiler.resetProfiles", listener: () => void): this; + on(event: "HeapProfiler.reportHeapSnapshotProgress", listener: (message: InspectorNotification) => void): this; + /** + * If heap objects tracking has been started then backend regularly sends a current value for last seen object id and corresponding timestamp. If the were changes in the heap since last event then one or more heapStatsUpdate events will be sent before a new lastSeenObjectId event. + */ + on(event: "HeapProfiler.lastSeenObjectId", listener: (message: InspectorNotification) => void): this; + /** + * If heap objects tracking has been started then backend may send update for one or more fragments + */ + on(event: "HeapProfiler.heapStatsUpdate", listener: (message: InspectorNotification) => void): this; + /** + * Fired when page is about to send HTTP request. + */ + on(event: "Network.requestWillBeSent", listener: (message: InspectorNotification) => void): this; + /** + * Fired when HTTP response is available. + */ + on(event: "Network.responseReceived", listener: (message: InspectorNotification) => void): this; + on(event: "Network.loadingFailed", listener: (message: InspectorNotification) => void): this; + on(event: "Network.loadingFinished", listener: (message: InspectorNotification) => void): this; + /** + * Fired when data chunk was received over the network. + */ + on(event: "Network.dataReceived", listener: (message: InspectorNotification) => void): this; + /** + * Fired upon WebSocket creation. + */ + on(event: "Network.webSocketCreated", listener: (message: InspectorNotification) => void): this; + /** + * Fired when WebSocket is closed. + */ + on(event: "Network.webSocketClosed", listener: (message: InspectorNotification) => void): this; + /** + * Fired when WebSocket handshake response becomes available. + */ + on(event: "Network.webSocketHandshakeResponseReceived", listener: (message: InspectorNotification) => void): this; + /** + * This event is fired instead of `Runtime.executionContextDestroyed` when + * enabled. + * It is fired when the Node process finished all code execution and is + * waiting for all frontends to disconnect. + */ + on(event: "NodeRuntime.waitingForDisconnect", listener: () => void): this; + /** + * This event is fired when the runtime is waiting for the debugger. For + * example, when inspector.waitingForDebugger is called + */ + on(event: "NodeRuntime.waitingForDebugger", listener: () => void): this; + /** + * Contains an bucket of collected trace events. + */ + on(event: "NodeTracing.dataCollected", listener: (message: InspectorNotification) => void): this; + /** + * Signals that tracing is stopped and there is no trace buffers pending flush, all data were + * delivered via dataCollected events. + */ + on(event: "NodeTracing.tracingComplete", listener: () => void): this; + /** + * Issued when attached to a worker. + */ + on(event: "NodeWorker.attachedToWorker", listener: (message: InspectorNotification) => void): this; + /** + * Issued when detached from the worker. + */ + on(event: "NodeWorker.detachedFromWorker", listener: (message: InspectorNotification) => void): this; + /** + * Notifies about a new protocol message received from the session + * (session ID is provided in attachedToWorker notification). + */ + on(event: "NodeWorker.receivedMessageFromWorker", listener: (message: InspectorNotification) => void): this; + on(event: "Target.targetCreated", listener: (message: InspectorNotification) => void): this; + on(event: "Target.attachedToTarget", listener: (message: InspectorNotification) => void): this; + on(event: "DOMStorage.domStorageItemAdded", listener: (message: InspectorNotification) => void): this; + on(event: "DOMStorage.domStorageItemRemoved", listener: (message: InspectorNotification) => void): this; + on(event: "DOMStorage.domStorageItemUpdated", listener: (message: InspectorNotification) => void): this; + on(event: "DOMStorage.domStorageItemsCleared", listener: (message: InspectorNotification) => void): this; + once(event: string, listener: (...args: any[]) => void): this; + /** + * Emitted when any notification from the V8 Inspector is received. + */ + once(event: "inspectorNotification", listener: (message: InspectorNotification) => void): this; + /** + * Issued when new execution context is created. + */ + once(event: "Runtime.executionContextCreated", listener: (message: InspectorNotification) => void): this; + /** + * Issued when execution context is destroyed. + */ + once(event: "Runtime.executionContextDestroyed", listener: (message: InspectorNotification) => void): this; + /** + * Issued when all executionContexts were cleared in browser + */ + once(event: "Runtime.executionContextsCleared", listener: () => void): this; + /** + * Issued when exception was thrown and unhandled. + */ + once(event: "Runtime.exceptionThrown", listener: (message: InspectorNotification) => void): this; + /** + * Issued when unhandled exception was revoked. + */ + once(event: "Runtime.exceptionRevoked", listener: (message: InspectorNotification) => void): this; + /** + * Issued when console API was called. + */ + once(event: "Runtime.consoleAPICalled", listener: (message: InspectorNotification) => void): this; + /** + * Issued when object should be inspected (for example, as a result of inspect() command line API call). + */ + once(event: "Runtime.inspectRequested", listener: (message: InspectorNotification) => void): this; + /** + * Fired when virtual machine parses script. This event is also fired for all known and uncollected scripts upon enabling debugger. + */ + once(event: "Debugger.scriptParsed", listener: (message: InspectorNotification) => void): this; + /** + * Fired when virtual machine fails to parse the script. + */ + once(event: "Debugger.scriptFailedToParse", listener: (message: InspectorNotification) => void): this; + /** + * Fired when breakpoint is resolved to an actual script and location. + */ + once(event: "Debugger.breakpointResolved", listener: (message: InspectorNotification) => void): this; + /** + * Fired when the virtual machine stopped on breakpoint or exception or any other stop criteria. + */ + once(event: "Debugger.paused", listener: (message: InspectorNotification) => void): this; + /** + * Fired when the virtual machine resumed execution. + */ + once(event: "Debugger.resumed", listener: () => void): this; + /** + * Issued when new console message is added. + */ + once(event: "Console.messageAdded", listener: (message: InspectorNotification) => void): this; + /** + * Sent when new profile recording is started using console.profile() call. + */ + once(event: "Profiler.consoleProfileStarted", listener: (message: InspectorNotification) => void): this; + once(event: "Profiler.consoleProfileFinished", listener: (message: InspectorNotification) => void): this; + once(event: "HeapProfiler.addHeapSnapshotChunk", listener: (message: InspectorNotification) => void): this; + once(event: "HeapProfiler.resetProfiles", listener: () => void): this; + once(event: "HeapProfiler.reportHeapSnapshotProgress", listener: (message: InspectorNotification) => void): this; + /** + * If heap objects tracking has been started then backend regularly sends a current value for last seen object id and corresponding timestamp. If the were changes in the heap since last event then one or more heapStatsUpdate events will be sent before a new lastSeenObjectId event. + */ + once(event: "HeapProfiler.lastSeenObjectId", listener: (message: InspectorNotification) => void): this; + /** + * If heap objects tracking has been started then backend may send update for one or more fragments + */ + once(event: "HeapProfiler.heapStatsUpdate", listener: (message: InspectorNotification) => void): this; + /** + * Fired when page is about to send HTTP request. + */ + once(event: "Network.requestWillBeSent", listener: (message: InspectorNotification) => void): this; + /** + * Fired when HTTP response is available. + */ + once(event: "Network.responseReceived", listener: (message: InspectorNotification) => void): this; + once(event: "Network.loadingFailed", listener: (message: InspectorNotification) => void): this; + once(event: "Network.loadingFinished", listener: (message: InspectorNotification) => void): this; + /** + * Fired when data chunk was received over the network. + */ + once(event: "Network.dataReceived", listener: (message: InspectorNotification) => void): this; + /** + * Fired upon WebSocket creation. + */ + once(event: "Network.webSocketCreated", listener: (message: InspectorNotification) => void): this; + /** + * Fired when WebSocket is closed. + */ + once(event: "Network.webSocketClosed", listener: (message: InspectorNotification) => void): this; + /** + * Fired when WebSocket handshake response becomes available. + */ + once(event: "Network.webSocketHandshakeResponseReceived", listener: (message: InspectorNotification) => void): this; + /** + * This event is fired instead of `Runtime.executionContextDestroyed` when + * enabled. + * It is fired when the Node process finished all code execution and is + * waiting for all frontends to disconnect. + */ + once(event: "NodeRuntime.waitingForDisconnect", listener: () => void): this; + /** + * This event is fired when the runtime is waiting for the debugger. For + * example, when inspector.waitingForDebugger is called + */ + once(event: "NodeRuntime.waitingForDebugger", listener: () => void): this; + /** + * Contains an bucket of collected trace events. + */ + once(event: "NodeTracing.dataCollected", listener: (message: InspectorNotification) => void): this; + /** + * Signals that tracing is stopped and there is no trace buffers pending flush, all data were + * delivered via dataCollected events. + */ + once(event: "NodeTracing.tracingComplete", listener: () => void): this; + /** + * Issued when attached to a worker. + */ + once(event: "NodeWorker.attachedToWorker", listener: (message: InspectorNotification) => void): this; + /** + * Issued when detached from the worker. + */ + once(event: "NodeWorker.detachedFromWorker", listener: (message: InspectorNotification) => void): this; + /** + * Notifies about a new protocol message received from the session + * (session ID is provided in attachedToWorker notification). + */ + once(event: "NodeWorker.receivedMessageFromWorker", listener: (message: InspectorNotification) => void): this; + once(event: "Target.targetCreated", listener: (message: InspectorNotification) => void): this; + once(event: "Target.attachedToTarget", listener: (message: InspectorNotification) => void): this; + once(event: "DOMStorage.domStorageItemAdded", listener: (message: InspectorNotification) => void): this; + once(event: "DOMStorage.domStorageItemRemoved", listener: (message: InspectorNotification) => void): this; + once(event: "DOMStorage.domStorageItemUpdated", listener: (message: InspectorNotification) => void): this; + once(event: "DOMStorage.domStorageItemsCleared", listener: (message: InspectorNotification) => void): this; + prependListener(event: string, listener: (...args: any[]) => void): this; + /** + * Emitted when any notification from the V8 Inspector is received. + */ + prependListener(event: "inspectorNotification", listener: (message: InspectorNotification) => void): this; + /** + * Issued when new execution context is created. + */ + prependListener(event: "Runtime.executionContextCreated", listener: (message: InspectorNotification) => void): this; + /** + * Issued when execution context is destroyed. + */ + prependListener(event: "Runtime.executionContextDestroyed", listener: (message: InspectorNotification) => void): this; + /** + * Issued when all executionContexts were cleared in browser + */ + prependListener(event: "Runtime.executionContextsCleared", listener: () => void): this; + /** + * Issued when exception was thrown and unhandled. + */ + prependListener(event: "Runtime.exceptionThrown", listener: (message: InspectorNotification) => void): this; + /** + * Issued when unhandled exception was revoked. + */ + prependListener(event: "Runtime.exceptionRevoked", listener: (message: InspectorNotification) => void): this; + /** + * Issued when console API was called. + */ + prependListener(event: "Runtime.consoleAPICalled", listener: (message: InspectorNotification) => void): this; + /** + * Issued when object should be inspected (for example, as a result of inspect() command line API call). + */ + prependListener(event: "Runtime.inspectRequested", listener: (message: InspectorNotification) => void): this; + /** + * Fired when virtual machine parses script. This event is also fired for all known and uncollected scripts upon enabling debugger. + */ + prependListener(event: "Debugger.scriptParsed", listener: (message: InspectorNotification) => void): this; + /** + * Fired when virtual machine fails to parse the script. + */ + prependListener(event: "Debugger.scriptFailedToParse", listener: (message: InspectorNotification) => void): this; + /** + * Fired when breakpoint is resolved to an actual script and location. + */ + prependListener(event: "Debugger.breakpointResolved", listener: (message: InspectorNotification) => void): this; + /** + * Fired when the virtual machine stopped on breakpoint or exception or any other stop criteria. + */ + prependListener(event: "Debugger.paused", listener: (message: InspectorNotification) => void): this; + /** + * Fired when the virtual machine resumed execution. + */ + prependListener(event: "Debugger.resumed", listener: () => void): this; + /** + * Issued when new console message is added. + */ + prependListener(event: "Console.messageAdded", listener: (message: InspectorNotification) => void): this; + /** + * Sent when new profile recording is started using console.profile() call. + */ + prependListener(event: "Profiler.consoleProfileStarted", listener: (message: InspectorNotification) => void): this; + prependListener(event: "Profiler.consoleProfileFinished", listener: (message: InspectorNotification) => void): this; + prependListener(event: "HeapProfiler.addHeapSnapshotChunk", listener: (message: InspectorNotification) => void): this; + prependListener(event: "HeapProfiler.resetProfiles", listener: () => void): this; + prependListener(event: "HeapProfiler.reportHeapSnapshotProgress", listener: (message: InspectorNotification) => void): this; + /** + * If heap objects tracking has been started then backend regularly sends a current value for last seen object id and corresponding timestamp. If the were changes in the heap since last event then one or more heapStatsUpdate events will be sent before a new lastSeenObjectId event. + */ + prependListener(event: "HeapProfiler.lastSeenObjectId", listener: (message: InspectorNotification) => void): this; + /** + * If heap objects tracking has been started then backend may send update for one or more fragments + */ + prependListener(event: "HeapProfiler.heapStatsUpdate", listener: (message: InspectorNotification) => void): this; + /** + * Fired when page is about to send HTTP request. + */ + prependListener(event: "Network.requestWillBeSent", listener: (message: InspectorNotification) => void): this; + /** + * Fired when HTTP response is available. + */ + prependListener(event: "Network.responseReceived", listener: (message: InspectorNotification) => void): this; + prependListener(event: "Network.loadingFailed", listener: (message: InspectorNotification) => void): this; + prependListener(event: "Network.loadingFinished", listener: (message: InspectorNotification) => void): this; + /** + * Fired when data chunk was received over the network. + */ + prependListener(event: "Network.dataReceived", listener: (message: InspectorNotification) => void): this; + /** + * Fired upon WebSocket creation. + */ + prependListener(event: "Network.webSocketCreated", listener: (message: InspectorNotification) => void): this; + /** + * Fired when WebSocket is closed. + */ + prependListener(event: "Network.webSocketClosed", listener: (message: InspectorNotification) => void): this; + /** + * Fired when WebSocket handshake response becomes available. + */ + prependListener(event: "Network.webSocketHandshakeResponseReceived", listener: (message: InspectorNotification) => void): this; + /** + * This event is fired instead of `Runtime.executionContextDestroyed` when + * enabled. + * It is fired when the Node process finished all code execution and is + * waiting for all frontends to disconnect. + */ + prependListener(event: "NodeRuntime.waitingForDisconnect", listener: () => void): this; + /** + * This event is fired when the runtime is waiting for the debugger. For + * example, when inspector.waitingForDebugger is called + */ + prependListener(event: "NodeRuntime.waitingForDebugger", listener: () => void): this; + /** + * Contains an bucket of collected trace events. + */ + prependListener(event: "NodeTracing.dataCollected", listener: (message: InspectorNotification) => void): this; + /** + * Signals that tracing is stopped and there is no trace buffers pending flush, all data were + * delivered via dataCollected events. + */ + prependListener(event: "NodeTracing.tracingComplete", listener: () => void): this; + /** + * Issued when attached to a worker. + */ + prependListener(event: "NodeWorker.attachedToWorker", listener: (message: InspectorNotification) => void): this; + /** + * Issued when detached from the worker. + */ + prependListener(event: "NodeWorker.detachedFromWorker", listener: (message: InspectorNotification) => void): this; + /** + * Notifies about a new protocol message received from the session + * (session ID is provided in attachedToWorker notification). + */ + prependListener(event: "NodeWorker.receivedMessageFromWorker", listener: (message: InspectorNotification) => void): this; + prependListener(event: "Target.targetCreated", listener: (message: InspectorNotification) => void): this; + prependListener(event: "Target.attachedToTarget", listener: (message: InspectorNotification) => void): this; + prependListener(event: "DOMStorage.domStorageItemAdded", listener: (message: InspectorNotification) => void): this; + prependListener(event: "DOMStorage.domStorageItemRemoved", listener: (message: InspectorNotification) => void): this; + prependListener(event: "DOMStorage.domStorageItemUpdated", listener: (message: InspectorNotification) => void): this; + prependListener(event: "DOMStorage.domStorageItemsCleared", listener: (message: InspectorNotification) => void): this; + prependOnceListener(event: string, listener: (...args: any[]) => void): this; + /** + * Emitted when any notification from the V8 Inspector is received. + */ + prependOnceListener(event: "inspectorNotification", listener: (message: InspectorNotification) => void): this; + /** + * Issued when new execution context is created. + */ + prependOnceListener(event: "Runtime.executionContextCreated", listener: (message: InspectorNotification) => void): this; + /** + * Issued when execution context is destroyed. + */ + prependOnceListener(event: "Runtime.executionContextDestroyed", listener: (message: InspectorNotification) => void): this; + /** + * Issued when all executionContexts were cleared in browser + */ + prependOnceListener(event: "Runtime.executionContextsCleared", listener: () => void): this; + /** + * Issued when exception was thrown and unhandled. + */ + prependOnceListener(event: "Runtime.exceptionThrown", listener: (message: InspectorNotification) => void): this; + /** + * Issued when unhandled exception was revoked. + */ + prependOnceListener(event: "Runtime.exceptionRevoked", listener: (message: InspectorNotification) => void): this; + /** + * Issued when console API was called. + */ + prependOnceListener(event: "Runtime.consoleAPICalled", listener: (message: InspectorNotification) => void): this; + /** + * Issued when object should be inspected (for example, as a result of inspect() command line API call). + */ + prependOnceListener(event: "Runtime.inspectRequested", listener: (message: InspectorNotification) => void): this; + /** + * Fired when virtual machine parses script. This event is also fired for all known and uncollected scripts upon enabling debugger. + */ + prependOnceListener(event: "Debugger.scriptParsed", listener: (message: InspectorNotification) => void): this; + /** + * Fired when virtual machine fails to parse the script. + */ + prependOnceListener(event: "Debugger.scriptFailedToParse", listener: (message: InspectorNotification) => void): this; + /** + * Fired when breakpoint is resolved to an actual script and location. + */ + prependOnceListener(event: "Debugger.breakpointResolved", listener: (message: InspectorNotification) => void): this; + /** + * Fired when the virtual machine stopped on breakpoint or exception or any other stop criteria. + */ + prependOnceListener(event: "Debugger.paused", listener: (message: InspectorNotification) => void): this; + /** + * Fired when the virtual machine resumed execution. + */ + prependOnceListener(event: "Debugger.resumed", listener: () => void): this; + /** + * Issued when new console message is added. + */ + prependOnceListener(event: "Console.messageAdded", listener: (message: InspectorNotification) => void): this; + /** + * Sent when new profile recording is started using console.profile() call. + */ + prependOnceListener(event: "Profiler.consoleProfileStarted", listener: (message: InspectorNotification) => void): this; + prependOnceListener(event: "Profiler.consoleProfileFinished", listener: (message: InspectorNotification) => void): this; + prependOnceListener(event: "HeapProfiler.addHeapSnapshotChunk", listener: (message: InspectorNotification) => void): this; + prependOnceListener(event: "HeapProfiler.resetProfiles", listener: () => void): this; + prependOnceListener(event: "HeapProfiler.reportHeapSnapshotProgress", listener: (message: InspectorNotification) => void): this; + /** + * If heap objects tracking has been started then backend regularly sends a current value for last seen object id and corresponding timestamp. If the were changes in the heap since last event then one or more heapStatsUpdate events will be sent before a new lastSeenObjectId event. + */ + prependOnceListener(event: "HeapProfiler.lastSeenObjectId", listener: (message: InspectorNotification) => void): this; + /** + * If heap objects tracking has been started then backend may send update for one or more fragments + */ + prependOnceListener(event: "HeapProfiler.heapStatsUpdate", listener: (message: InspectorNotification) => void): this; + /** + * Fired when page is about to send HTTP request. + */ + prependOnceListener(event: "Network.requestWillBeSent", listener: (message: InspectorNotification) => void): this; + /** + * Fired when HTTP response is available. + */ + prependOnceListener(event: "Network.responseReceived", listener: (message: InspectorNotification) => void): this; + prependOnceListener(event: "Network.loadingFailed", listener: (message: InspectorNotification) => void): this; + prependOnceListener(event: "Network.loadingFinished", listener: (message: InspectorNotification) => void): this; + /** + * Fired when data chunk was received over the network. + */ + prependOnceListener(event: "Network.dataReceived", listener: (message: InspectorNotification) => void): this; + /** + * Fired upon WebSocket creation. + */ + prependOnceListener(event: "Network.webSocketCreated", listener: (message: InspectorNotification) => void): this; + /** + * Fired when WebSocket is closed. + */ + prependOnceListener(event: "Network.webSocketClosed", listener: (message: InspectorNotification) => void): this; + /** + * Fired when WebSocket handshake response becomes available. + */ + prependOnceListener(event: "Network.webSocketHandshakeResponseReceived", listener: (message: InspectorNotification) => void): this; + /** + * This event is fired instead of `Runtime.executionContextDestroyed` when + * enabled. + * It is fired when the Node process finished all code execution and is + * waiting for all frontends to disconnect. + */ + prependOnceListener(event: "NodeRuntime.waitingForDisconnect", listener: () => void): this; + /** + * This event is fired when the runtime is waiting for the debugger. For + * example, when inspector.waitingForDebugger is called + */ + prependOnceListener(event: "NodeRuntime.waitingForDebugger", listener: () => void): this; + /** + * Contains an bucket of collected trace events. + */ + prependOnceListener(event: "NodeTracing.dataCollected", listener: (message: InspectorNotification) => void): this; + /** + * Signals that tracing is stopped and there is no trace buffers pending flush, all data were + * delivered via dataCollected events. + */ + prependOnceListener(event: "NodeTracing.tracingComplete", listener: () => void): this; + /** + * Issued when attached to a worker. + */ + prependOnceListener(event: "NodeWorker.attachedToWorker", listener: (message: InspectorNotification) => void): this; + /** + * Issued when detached from the worker. + */ + prependOnceListener(event: "NodeWorker.detachedFromWorker", listener: (message: InspectorNotification) => void): this; + /** + * Notifies about a new protocol message received from the session + * (session ID is provided in attachedToWorker notification). + */ + prependOnceListener(event: "NodeWorker.receivedMessageFromWorker", listener: (message: InspectorNotification) => void): this; + prependOnceListener(event: "Target.targetCreated", listener: (message: InspectorNotification) => void): this; + prependOnceListener(event: "Target.attachedToTarget", listener: (message: InspectorNotification) => void): this; + prependOnceListener(event: "DOMStorage.domStorageItemAdded", listener: (message: InspectorNotification) => void): this; + prependOnceListener(event: "DOMStorage.domStorageItemRemoved", listener: (message: InspectorNotification) => void): this; + prependOnceListener(event: "DOMStorage.domStorageItemUpdated", listener: (message: InspectorNotification) => void): this; + prependOnceListener(event: "DOMStorage.domStorageItemsCleared", listener: (message: InspectorNotification) => void): this; + } +} diff --git a/server/api/node_modules/@types/node/inspector/promises.d.ts b/server/api/node_modules/@types/node/inspector/promises.d.ts new file mode 100644 index 0000000..e75ff20 --- /dev/null +++ b/server/api/node_modules/@types/node/inspector/promises.d.ts @@ -0,0 +1,35 @@ +declare module "node:inspector/promises" { + import { EventEmitter } from "node:events"; + export { close, console, NetworkResources, open, url, waitForDebugger } from "node:inspector"; + /** + * The `inspector.Session` is used for dispatching messages to the V8 inspector + * back-end and receiving message responses and notifications. + * @since v19.0.0 + */ + export class Session extends EventEmitter { + /** + * Create a new instance of the inspector.Session class. + * The inspector session needs to be connected through `session.connect()` before the messages can be dispatched to the inspector backend. + */ + constructor(); + /** + * Connects a session to the inspector back-end. + */ + connect(): void; + /** + * Connects a session to the inspector back-end. + * An exception will be thrown if this API was not called on a Worker thread. + * @since v12.11.0 + */ + connectToMainThread(): void; + /** + * Immediately close the session. All pending message callbacks will be called with an error. + * `session.connect()` will need to be called to be able to send messages again. + * Reconnected session will lose all inspector state, such as enabled agents or configured breakpoints. + */ + disconnect(): void; + } +} +declare module "inspector/promises" { + export * from "node:inspector/promises"; +} diff --git a/server/api/node_modules/@types/node/module.d.ts b/server/api/node_modules/@types/node/module.d.ts new file mode 100644 index 0000000..7f61a67 --- /dev/null +++ b/server/api/node_modules/@types/node/module.d.ts @@ -0,0 +1,754 @@ +declare module "node:module" { + import { URL } from "node:url"; + class Module { + constructor(id: string, parent?: Module); + } + interface Module extends NodeJS.Module {} + namespace Module { + export { Module }; + } + namespace Module { + /** + * A list of the names of all modules provided by Node.js. Can be used to verify + * if a module is maintained by a third party or not. + * + * Note: the list doesn't contain prefix-only modules like `node:test`. + * @since v9.3.0, v8.10.0, v6.13.0 + */ + const builtinModules: readonly string[]; + /** + * @since v12.2.0 + * @param path Filename to be used to construct the require + * function. Must be a file URL object, file URL string, or absolute path + * string. + */ + function createRequire(path: string | URL): NodeJS.Require; + namespace constants { + /** + * The following constants are returned as the `status` field in the object returned by + * {@link enableCompileCache} to indicate the result of the attempt to enable the + * [module compile cache](https://nodejs.org/docs/latest-v25.x/api/module.html#module-compile-cache). + * @since v22.8.0 + */ + namespace compileCacheStatus { + /** + * Node.js has enabled the compile cache successfully. The directory used to store the + * compile cache will be returned in the `directory` field in the + * returned object. + */ + const ENABLED: number; + /** + * The compile cache has already been enabled before, either by a previous call to + * {@link enableCompileCache}, or by the `NODE_COMPILE_CACHE=dir` + * environment variable. The directory used to store the + * compile cache will be returned in the `directory` field in the + * returned object. + */ + const ALREADY_ENABLED: number; + /** + * Node.js fails to enable the compile cache. This can be caused by the lack of + * permission to use the specified directory, or various kinds of file system errors. + * The detail of the failure will be returned in the `message` field in the + * returned object. + */ + const FAILED: number; + /** + * Node.js cannot enable the compile cache because the environment variable + * `NODE_DISABLE_COMPILE_CACHE=1` has been set. + */ + const DISABLED: number; + } + } + interface EnableCompileCacheOptions { + /** + * Optional. Directory to store the compile cache. If not specified, + * the directory specified by the `NODE_COMPILE_CACHE=dir` environment variable + * will be used if it's set, or `path.join(os.tmpdir(), 'node-compile-cache')` + * otherwise. + * @since v25.0.0 + */ + directory?: string | undefined; + /** + * Optional. If `true`, enables portable compile cache so that + * the cache can be reused even if the project directory is moved. This is a best-effort + * feature. If not specified, it will depend on whether the environment variable + * `NODE_COMPILE_CACHE_PORTABLE=1` is set. + * @since v25.0.0 + */ + portable?: boolean | undefined; + } + interface EnableCompileCacheResult { + /** + * One of the {@link constants.compileCacheStatus} + */ + status: number; + /** + * If Node.js cannot enable the compile cache, this contains + * the error message. Only set if `status` is `module.constants.compileCacheStatus.FAILED`. + */ + message?: string; + /** + * If the compile cache is enabled, this contains the directory + * where the compile cache is stored. Only set if `status` is + * `module.constants.compileCacheStatus.ENABLED` or + * `module.constants.compileCacheStatus.ALREADY_ENABLED`. + */ + directory?: string; + } + /** + * Enable [module compile cache](https://nodejs.org/docs/latest-v25.x/api/module.html#module-compile-cache) + * in the current Node.js instance. + * + * For general use cases, it's recommended to call `module.enableCompileCache()` without + * specifying the `options.directory`, so that the directory can be overridden by the + * `NODE_COMPILE_CACHE` environment variable when necessary. + * + * Since compile cache is supposed to be a optimization that is not mission critical, this + * method is designed to not throw any exception when the compile cache cannot be enabled. + * Instead, it will return an object containing an error message in the `message` field to + * aid debugging. If compile cache is enabled successfully, the `directory` field in the + * returned object contains the path to the directory where the compile cache is stored. The + * `status` field in the returned object would be one of the `module.constants.compileCacheStatus` + * values to indicate the result of the attempt to enable the + * [module compile cache](https://nodejs.org/docs/latest-v25.x/api/module.html#module-compile-cache). + * + * This method only affects the current Node.js instance. To enable it in child worker threads, + * either call this method in child worker threads too, or set the + * `process.env.NODE_COMPILE_CACHE` value to compile cache directory so the behavior can + * be inherited into the child workers. The directory can be obtained either from the + * `directory` field returned by this method, or with {@link getCompileCacheDir}. + * @since v22.8.0 + * @param options Optional. If a string is passed, it is considered to be `options.directory`. + */ + function enableCompileCache(options?: string | EnableCompileCacheOptions): EnableCompileCacheResult; + /** + * Flush the [module compile cache](https://nodejs.org/docs/latest-v25.x/api/module.html#module-compile-cache) + * accumulated from modules already loaded + * in the current Node.js instance to disk. This returns after all the flushing + * file system operations come to an end, no matter they succeed or not. If there + * are any errors, this will fail silently, since compile cache misses should not + * interfere with the actual operation of the application. + * @since v22.10.0 + */ + function flushCompileCache(): void; + /** + * @since v22.8.0 + * @return Path to the [module compile cache](https://nodejs.org/docs/latest-v25.x/api/module.html#module-compile-cache) + * directory if it is enabled, or `undefined` otherwise. + */ + function getCompileCacheDir(): string | undefined; + /** + * ```text + * /path/to/project + * ├ packages/ + * ├ bar/ + * ├ bar.js + * └ package.json // name = '@foo/bar' + * └ qux/ + * ├ node_modules/ + * └ some-package/ + * └ package.json // name = 'some-package' + * ├ qux.js + * └ package.json // name = '@foo/qux' + * ├ main.js + * └ package.json // name = '@foo' + * ``` + * ```js + * // /path/to/project/packages/bar/bar.js + * import { findPackageJSON } from 'node:module'; + * + * findPackageJSON('..', import.meta.url); + * // '/path/to/project/package.json' + * // Same result when passing an absolute specifier instead: + * findPackageJSON(new URL('../', import.meta.url)); + * findPackageJSON(import.meta.resolve('../')); + * + * findPackageJSON('some-package', import.meta.url); + * // '/path/to/project/packages/bar/node_modules/some-package/package.json' + * // When passing an absolute specifier, you might get a different result if the + * // resolved module is inside a subfolder that has nested `package.json`. + * findPackageJSON(import.meta.resolve('some-package')); + * // '/path/to/project/packages/bar/node_modules/some-package/some-subfolder/package.json' + * + * findPackageJSON('@foo/qux', import.meta.url); + * // '/path/to/project/packages/qux/package.json' + * ``` + * @since v22.14.0 + * @param specifier The specifier for the module whose `package.json` to + * retrieve. When passing a _bare specifier_, the `package.json` at the root of + * the package is returned. When passing a _relative specifier_ or an _absolute specifier_, + * the closest parent `package.json` is returned. + * @param base The absolute location (`file:` URL string or FS path) of the + * containing module. For CJS, use `__filename` (not `__dirname`!); for ESM, use + * `import.meta.url`. You do not need to pass it if `specifier` is an _absolute specifier_. + * @returns A path if the `package.json` is found. When `startLocation` + * is a package, the package's root `package.json`; when a relative or unresolved, the closest + * `package.json` to the `startLocation`. + */ + function findPackageJSON(specifier: string | URL, base?: string | URL): string | undefined; + /** + * @since v18.6.0, v16.17.0 + */ + function isBuiltin(moduleName: string): boolean; + interface RegisterOptions { + /** + * If you want to resolve `specifier` relative to a + * base URL, such as `import.meta.url`, you can pass that URL here. This + * property is ignored if the `parentURL` is supplied as the second argument. + * @default 'data:' + */ + parentURL?: string | URL | undefined; + /** + * Any arbitrary, cloneable JavaScript value to pass into the + * {@link initialize} hook. + */ + data?: Data | undefined; + /** + * [Transferable objects](https://nodejs.org/docs/latest-v25.x/api/worker_threads.html#portpostmessagevalue-transferlist) + * to be passed into the `initialize` hook. + */ + transferList?: any[] | undefined; + } + /* eslint-disable @definitelytyped/no-unnecessary-generics */ + /** + * Register a module that exports hooks that customize Node.js module + * resolution and loading behavior. See + * [Customization hooks](https://nodejs.org/docs/latest-v25.x/api/module.html#customization-hooks). + * + * This feature requires `--allow-worker` if used with the + * [Permission Model](https://nodejs.org/docs/latest-v25.x/api/permissions.html#permission-model). + * @since v20.6.0, v18.19.0 + * @param specifier Customization hooks to be registered; this should be + * the same string that would be passed to `import()`, except that if it is + * relative, it is resolved relative to `parentURL`. + * @param parentURL f you want to resolve `specifier` relative to a base + * URL, such as `import.meta.url`, you can pass that URL here. + */ + function register( + specifier: string | URL, + parentURL?: string | URL, + options?: RegisterOptions, + ): void; + function register(specifier: string | URL, options?: RegisterOptions): void; + interface RegisterHooksOptions { + /** + * See [load hook](https://nodejs.org/docs/latest-v25.x/api/module.html#loadurl-context-nextload). + * @default undefined + */ + load?: LoadHookSync | undefined; + /** + * See [resolve hook](https://nodejs.org/docs/latest-v25.x/api/module.html#resolvespecifier-context-nextresolve). + * @default undefined + */ + resolve?: ResolveHookSync | undefined; + } + interface ModuleHooks { + /** + * Deregister the hook instance. + */ + deregister(): void; + } + /** + * Register [hooks](https://nodejs.org/docs/latest-v25.x/api/module.html#customization-hooks) + * that customize Node.js module resolution and loading behavior. + * @since v22.15.0 + * @experimental + */ + function registerHooks(options: RegisterHooksOptions): ModuleHooks; + interface StripTypeScriptTypesOptions { + /** + * Possible values are: + * * `'strip'` Only strip type annotations without performing the transformation of TypeScript features. + * * `'transform'` Strip type annotations and transform TypeScript features to JavaScript. + * @default 'strip' + */ + mode?: "strip" | "transform" | undefined; + /** + * Only when `mode` is `'transform'`, if `true`, a source map + * will be generated for the transformed code. + * @default false + */ + sourceMap?: boolean | undefined; + /** + * Specifies the source url used in the source map. + */ + sourceUrl?: string | undefined; + } + /** + * `module.stripTypeScriptTypes()` removes type annotations from TypeScript code. It + * can be used to strip type annotations from TypeScript code before running it + * with `vm.runInContext()` or `vm.compileFunction()`. + * By default, it will throw an error if the code contains TypeScript features + * that require transformation such as `Enums`, + * see [type-stripping](https://nodejs.org/docs/latest-v25.x/api/typescript.md#type-stripping) for more information. + * When mode is `'transform'`, it also transforms TypeScript features to JavaScript, + * see [transform TypeScript features](https://nodejs.org/docs/latest-v25.x/api/typescript.md#typescript-features) for more information. + * When mode is `'strip'`, source maps are not generated, because locations are preserved. + * If `sourceMap` is provided, when mode is `'strip'`, an error will be thrown. + * + * _WARNING_: The output of this function should not be considered stable across Node.js versions, + * due to changes in the TypeScript parser. + * + * ```js + * import { stripTypeScriptTypes } from 'node:module'; + * const code = 'const a: number = 1;'; + * const strippedCode = stripTypeScriptTypes(code); + * console.log(strippedCode); + * // Prints: const a = 1; + * ``` + * + * If `sourceUrl` is provided, it will be used appended as a comment at the end of the output: + * + * ```js + * import { stripTypeScriptTypes } from 'node:module'; + * const code = 'const a: number = 1;'; + * const strippedCode = stripTypeScriptTypes(code, { mode: 'strip', sourceUrl: 'source.ts' }); + * console.log(strippedCode); + * // Prints: const a = 1\n\n//# sourceURL=source.ts; + * ``` + * + * When `mode` is `'transform'`, the code is transformed to JavaScript: + * + * ```js + * import { stripTypeScriptTypes } from 'node:module'; + * const code = ` + * namespace MathUtil { + * export const add = (a: number, b: number) => a + b; + * }`; + * const strippedCode = stripTypeScriptTypes(code, { mode: 'transform', sourceMap: true }); + * console.log(strippedCode); + * // Prints: + * // var MathUtil; + * // (function(MathUtil) { + * // MathUtil.add = (a, b)=>a + b; + * // })(MathUtil || (MathUtil = {})); + * // # sourceMappingURL=data:application/json;base64, ... + * ``` + * @since v22.13.0 + * @param code The code to strip type annotations from. + * @returns The code with type annotations stripped. + */ + function stripTypeScriptTypes(code: string, options?: StripTypeScriptTypesOptions): string; + /* eslint-enable @definitelytyped/no-unnecessary-generics */ + /** + * The `module.syncBuiltinESMExports()` method updates all the live bindings for + * builtin `ES Modules` to match the properties of the `CommonJS` exports. It + * does not add or remove exported names from the `ES Modules`. + * + * ```js + * import fs from 'node:fs'; + * import assert from 'node:assert'; + * import { syncBuiltinESMExports } from 'node:module'; + * + * fs.readFile = newAPI; + * + * delete fs.readFileSync; + * + * function newAPI() { + * // ... + * } + * + * fs.newAPI = newAPI; + * + * syncBuiltinESMExports(); + * + * import('node:fs').then((esmFS) => { + * // It syncs the existing readFile property with the new value + * assert.strictEqual(esmFS.readFile, newAPI); + * // readFileSync has been deleted from the required fs + * assert.strictEqual('readFileSync' in fs, false); + * // syncBuiltinESMExports() does not remove readFileSync from esmFS + * assert.strictEqual('readFileSync' in esmFS, true); + * // syncBuiltinESMExports() does not add names + * assert.strictEqual(esmFS.newAPI, undefined); + * }); + * ``` + * @since v12.12.0 + */ + function syncBuiltinESMExports(): void; + interface ImportAttributes extends NodeJS.Dict { + type?: string | undefined; + } + type ImportPhase = "source" | "evaluation"; + type ModuleFormat = + | "addon" + | "builtin" + | "commonjs" + | "commonjs-typescript" + | "json" + | "module" + | "module-typescript" + | "wasm"; + type ModuleSource = string | ArrayBuffer | NodeJS.TypedArray; + type InitializeHook = (data: Data) => void | Promise; + interface ResolveHookContext { + conditions: string[]; + importAttributes: ImportAttributes; + parentURL: string | undefined; + } + interface ResolveFnOutput { + format?: string | null | undefined; + importAttributes?: ImportAttributes | undefined; + shortCircuit?: boolean | undefined; + url: string; + } + type ResolveHook = ( + specifier: string, + context: ResolveHookContext, + nextResolve: ( + specifier: string, + context?: Partial, + ) => ResolveFnOutput | Promise, + ) => ResolveFnOutput | Promise; + type ResolveHookSync = ( + specifier: string, + context: ResolveHookContext, + nextResolve: ( + specifier: string, + context?: Partial, + ) => ResolveFnOutput, + ) => ResolveFnOutput; + interface LoadHookContext { + conditions: string[]; + format: string | null | undefined; + importAttributes: ImportAttributes; + } + interface LoadFnOutput { + format: string | null | undefined; + shortCircuit?: boolean | undefined; + source?: ModuleSource | undefined; + } + type LoadHook = ( + url: string, + context: LoadHookContext, + nextLoad: ( + url: string, + context?: Partial, + ) => LoadFnOutput | Promise, + ) => LoadFnOutput | Promise; + type LoadHookSync = ( + url: string, + context: LoadHookContext, + nextLoad: ( + url: string, + context?: Partial, + ) => LoadFnOutput, + ) => LoadFnOutput; + interface SourceMapsSupport { + /** + * If the source maps support is enabled + */ + enabled: boolean; + /** + * If the support is enabled for files in `node_modules`. + */ + nodeModules: boolean; + /** + * If the support is enabled for generated code from `eval` or `new Function`. + */ + generatedCode: boolean; + } + /** + * This method returns whether the [Source Map v3](https://tc39.es/ecma426/) support for stack + * traces is enabled. + * @since v23.7.0, v22.14.0 + */ + function getSourceMapsSupport(): SourceMapsSupport; + /** + * `path` is the resolved path for the file for which a corresponding source map + * should be fetched. + * @since v13.7.0, v12.17.0 + * @return Returns `module.SourceMap` if a source map is found, `undefined` otherwise. + */ + function findSourceMap(path: string): SourceMap | undefined; + interface SetSourceMapsSupportOptions { + /** + * If enabling the support for files in `node_modules`. + * @default false + */ + nodeModules?: boolean | undefined; + /** + * If enabling the support for generated code from `eval` or `new Function`. + * @default false + */ + generatedCode?: boolean | undefined; + } + /** + * This function enables or disables the [Source Map v3](https://tc39.es/ecma426/) support for + * stack traces. + * + * It provides same features as launching Node.js process with commandline options + * `--enable-source-maps`, with additional options to alter the support for files + * in `node_modules` or generated codes. + * + * Only source maps in JavaScript files that are loaded after source maps has been + * enabled will be parsed and loaded. Preferably, use the commandline options + * `--enable-source-maps` to avoid losing track of source maps of modules loaded + * before this API call. + * @since v23.7.0, v22.14.0 + */ + function setSourceMapsSupport(enabled: boolean, options?: SetSourceMapsSupportOptions): void; + interface SourceMapConstructorOptions { + /** + * @since v21.0.0, v20.5.0 + */ + lineLengths?: readonly number[] | undefined; + } + interface SourceMapPayload { + file: string; + version: number; + sources: string[]; + sourcesContent: string[]; + names: string[]; + mappings: string; + sourceRoot: string; + } + interface SourceMapping { + generatedLine: number; + generatedColumn: number; + originalSource: string; + originalLine: number; + originalColumn: number; + } + interface SourceOrigin { + /** + * The name of the range in the source map, if one was provided + */ + name: string | undefined; + /** + * The file name of the original source, as reported in the SourceMap + */ + fileName: string; + /** + * The 1-indexed lineNumber of the corresponding call site in the original source + */ + lineNumber: number; + /** + * The 1-indexed columnNumber of the corresponding call site in the original source + */ + columnNumber: number; + } + /** + * @since v13.7.0, v12.17.0 + */ + class SourceMap { + constructor(payload: SourceMapPayload, options?: SourceMapConstructorOptions); + /** + * Getter for the payload used to construct the `SourceMap` instance. + */ + readonly payload: SourceMapPayload; + /** + * Given a line offset and column offset in the generated source + * file, returns an object representing the SourceMap range in the + * original file if found, or an empty object if not. + * + * The object returned contains the following keys: + * + * The returned value represents the raw range as it appears in the + * SourceMap, based on zero-indexed offsets, _not_ 1-indexed line and + * column numbers as they appear in Error messages and CallSite + * objects. + * + * To get the corresponding 1-indexed line and column numbers from a + * lineNumber and columnNumber as they are reported by Error stacks + * and CallSite objects, use `sourceMap.findOrigin(lineNumber, columnNumber)` + * @param lineOffset The zero-indexed line number offset in the generated source + * @param columnOffset The zero-indexed column number offset in the generated source + */ + findEntry(lineOffset: number, columnOffset: number): SourceMapping | {}; + /** + * Given a 1-indexed `lineNumber` and `columnNumber` from a call site in the generated source, + * find the corresponding call site location in the original source. + * + * If the `lineNumber` and `columnNumber` provided are not found in any source map, + * then an empty object is returned. + * @param lineNumber The 1-indexed line number of the call site in the generated source + * @param columnNumber The 1-indexed column number of the call site in the generated source + */ + findOrigin(lineNumber: number, columnNumber: number): SourceOrigin | {}; + } + function runMain(main?: string): void; + function wrap(script: string): string; + } + global { + namespace NodeJS { + interface Module { + /** + * The module objects required for the first time by this one. + * @since v0.1.16 + */ + children: Module[]; + /** + * The `module.exports` object is created by the `Module` system. Sometimes this is + * not acceptable; many want their module to be an instance of some class. To do + * this, assign the desired export object to `module.exports`. + * @since v0.1.16 + */ + exports: any; + /** + * The fully resolved filename of the module. + * @since v0.1.16 + */ + filename: string; + /** + * The identifier for the module. Typically this is the fully resolved + * filename. + * @since v0.1.16 + */ + id: string; + /** + * `true` if the module is running during the Node.js preload + * phase. + * @since v15.4.0, v14.17.0 + */ + isPreloading: boolean; + /** + * Whether or not the module is done loading, or is in the process of + * loading. + * @since v0.1.16 + */ + loaded: boolean; + /** + * The module that first required this one, or `null` if the current module is the + * entry point of the current process, or `undefined` if the module was loaded by + * something that is not a CommonJS module (e.g. REPL or `import`). + * @since v0.1.16 + * @deprecated Please use `require.main` and `module.children` instead. + */ + parent: Module | null | undefined; + /** + * The directory name of the module. This is usually the same as the + * `path.dirname()` of the `module.id`. + * @since v11.14.0 + */ + path: string; + /** + * The search paths for the module. + * @since v0.4.0 + */ + paths: string[]; + /** + * The `module.require()` method provides a way to load a module as if + * `require()` was called from the original module. + * @since v0.5.1 + */ + require(id: string): any; + } + interface Require { + /** + * Used to import modules, `JSON`, and local files. + * @since v0.1.13 + */ + (id: string): any; + /** + * Modules are cached in this object when they are required. By deleting a key + * value from this object, the next `require` will reload the module. + * This does not apply to + * [native addons](https://nodejs.org/docs/latest-v25.x/api/addons.html), + * for which reloading will result in an error. + * @since v0.3.0 + */ + cache: Dict; + /** + * Instruct `require` on how to handle certain file extensions. + * @since v0.3.0 + * @deprecated + */ + extensions: RequireExtensions; + /** + * The `Module` object representing the entry script loaded when the Node.js + * process launched, or `undefined` if the entry point of the program is not a + * CommonJS module. + * @since v0.1.17 + */ + main: Module | undefined; + /** + * @since v0.3.0 + */ + resolve: RequireResolve; + } + /** @deprecated */ + interface RequireExtensions extends Dict<(module: Module, filename: string) => any> { + ".js": (module: Module, filename: string) => any; + ".json": (module: Module, filename: string) => any; + ".node": (module: Module, filename: string) => any; + } + interface RequireResolveOptions { + /** + * Paths to resolve module location from. If present, these + * paths are used instead of the default resolution paths, with the exception + * of + * [GLOBAL\_FOLDERS](https://nodejs.org/docs/latest-v25.x/api/modules.html#loading-from-the-global-folders) + * like `$HOME/.node_modules`, which are + * always included. Each of these paths is used as a starting point for + * the module resolution algorithm, meaning that the `node_modules` hierarchy + * is checked from this location. + * @since v8.9.0 + */ + paths?: string[] | undefined; + } + interface RequireResolve { + /** + * Use the internal `require()` machinery to look up the location of a module, + * but rather than loading the module, just return the resolved filename. + * + * If the module can not be found, a `MODULE_NOT_FOUND` error is thrown. + * @since v0.3.0 + * @param request The module path to resolve. + */ + (request: string, options?: RequireResolveOptions): string; + /** + * Returns an array containing the paths searched during resolution of `request` or + * `null` if the `request` string references a core module, for example `http` or + * `fs`. + * @since v8.9.0 + * @param request The module path whose lookup paths are being retrieved. + */ + paths(request: string): string[] | null; + } + } + /** + * The directory name of the current module. This is the same as the + * `path.dirname()` of the `__filename`. + * @since v0.1.27 + */ + var __dirname: string; + /** + * The file name of the current module. This is the current module file's absolute + * path with symlinks resolved. + * + * For a main program this is not necessarily the same as the file name used in the + * command line. + * @since v0.0.1 + */ + var __filename: string; + /** + * The `exports` variable is available within a module's file-level scope, and is + * assigned the value of `module.exports` before the module is evaluated. + * @since v0.1.16 + */ + var exports: NodeJS.Module["exports"]; + /** + * A reference to the current module. + * @since v0.1.16 + */ + var module: NodeJS.Module; + /** + * @since v0.1.13 + */ + var require: NodeJS.Require; + // Global-scope aliases for backwards compatibility with @types/node <13.0.x + // TODO: consider removing in a future major version update + /** @deprecated Use `NodeJS.Module` instead. */ + interface NodeModule extends NodeJS.Module {} + /** @deprecated Use `NodeJS.Require` instead. */ + interface NodeRequire extends NodeJS.Require {} + /** @deprecated Use `NodeJS.RequireResolve` instead. */ + interface RequireResolve extends NodeJS.RequireResolve {} + } + export = Module; +} +declare module "module" { + import module = require("node:module"); + export = module; +} diff --git a/server/api/node_modules/@types/node/net.d.ts b/server/api/node_modules/@types/node/net.d.ts new file mode 100644 index 0000000..bb6d3a3 --- /dev/null +++ b/server/api/node_modules/@types/node/net.d.ts @@ -0,0 +1,970 @@ +declare module "node:net" { + import { NonSharedBuffer } from "node:buffer"; + import * as dns from "node:dns"; + import { Abortable, EventEmitter, InternalEventEmitter } from "node:events"; + import * as stream from "node:stream"; + type LookupFunction = ( + hostname: string, + options: dns.LookupOptions, + callback: (err: NodeJS.ErrnoException | null, address: string | dns.LookupAddress[], family?: number) => void, + ) => void; + interface AddressInfo { + address: string; + family: string; + port: number; + } + interface SocketConstructorOpts { + fd?: number | undefined; + allowHalfOpen?: boolean | undefined; + onread?: OnReadOpts | undefined; + readable?: boolean | undefined; + writable?: boolean | undefined; + signal?: AbortSignal | undefined; + noDelay?: boolean | undefined; + keepAlive?: boolean | undefined; + keepAliveInitialDelay?: number | undefined; + blockList?: BlockList | undefined; + typeOfService?: number | undefined; + } + interface OnReadOpts { + buffer: Uint8Array | (() => Uint8Array); + /** + * This function is called for every chunk of incoming data. + * Two arguments are passed to it: the number of bytes written to `buffer` and a reference to `buffer`. + * Return `false` from this function to implicitly `pause()` the socket. + */ + callback(bytesWritten: number, buffer: Uint8Array): boolean; + } + interface TcpSocketConnectOpts { + port: number; + host?: string | undefined; + localAddress?: string | undefined; + localPort?: number | undefined; + hints?: number | undefined; + family?: number | undefined; + lookup?: LookupFunction | undefined; + /** + * @since v18.13.0 + */ + autoSelectFamily?: boolean | undefined; + /** + * @since v18.13.0 + */ + autoSelectFamilyAttemptTimeout?: number | undefined; + } + interface IpcSocketConnectOpts { + path: string; + } + type SocketConnectOpts = TcpSocketConnectOpts | IpcSocketConnectOpts; + type SocketReadyState = "opening" | "open" | "readOnly" | "writeOnly" | "closed"; + interface SocketEventMap extends Omit { + "close": [hadError: boolean]; + "connect": []; + "connectionAttempt": [ip: string, port: number, family: number]; + "connectionAttemptFailed": [ip: string, port: number, family: number, error: Error]; + "connectionAttemptTimeout": [ip: string, port: number, family: number]; + "data": [data: string | NonSharedBuffer]; + "lookup": [err: Error | null, address: string, family: number | null, host: string]; + "ready": []; + "timeout": []; + } + /** + * This class is an abstraction of a TCP socket or a streaming `IPC` endpoint + * (uses named pipes on Windows, and Unix domain sockets otherwise). It is also + * an `EventEmitter`. + * + * A `net.Socket` can be created by the user and used directly to interact with + * a server. For example, it is returned by {@link createConnection}, + * so the user can use it to talk to the server. + * + * It can also be created by Node.js and passed to the user when a connection + * is received. For example, it is passed to the listeners of a `'connection'` event emitted on a {@link Server}, so the user can use + * it to interact with the client. + * @since v0.3.4 + */ + class Socket extends stream.Duplex { + constructor(options?: SocketConstructorOpts); + /** + * Destroys the socket after all data is written. If the `finish` event was already emitted the socket is destroyed immediately. + * If the socket is still writable it implicitly calls `socket.end()`. + * @since v0.3.4 + */ + destroySoon(): void; + /** + * Sends data on the socket. The second parameter specifies the encoding in the + * case of a string. It defaults to UTF8 encoding. + * + * Returns `true` if the entire data was flushed successfully to the kernel + * buffer. Returns `false` if all or part of the data was queued in user memory.`'drain'` will be emitted when the buffer is again free. + * + * The optional `callback` parameter will be executed when the data is finally + * written out, which may not be immediately. + * + * See `Writable` stream `write()` method for more + * information. + * @since v0.1.90 + */ + write(buffer: Uint8Array | string, cb?: (err?: Error | null) => void): boolean; + /** + * Sends data on the socket, with an explicit encoding for string data. + * @see {@link Socket.write} for full details. + * @since v0.1.90 + * @param [encoding='utf8'] Only used when data is `string`. + */ + write(str: Uint8Array | string, encoding?: BufferEncoding, cb?: (err?: Error | null) => void): boolean; + /** + * Initiate a connection on a given socket. + * + * Possible signatures: + * + * * `socket.connect(options[, connectListener])` + * * `socket.connect(path[, connectListener])` for `IPC` connections. + * * `socket.connect(port[, host][, connectListener])` for TCP connections. + * * Returns: `net.Socket` The socket itself. + * + * This function is asynchronous. When the connection is established, the `'connect'` event will be emitted. If there is a problem connecting, + * instead of a `'connect'` event, an `'error'` event will be emitted with + * the error passed to the `'error'` listener. + * The last parameter `connectListener`, if supplied, will be added as a listener + * for the `'connect'` event **once**. + * + * This function should only be used for reconnecting a socket after`'close'` has been emitted or otherwise it may lead to undefined + * behavior. + */ + connect(options: SocketConnectOpts, connectionListener?: () => void): this; + connect(port: number, host: string, connectionListener?: () => void): this; + connect(port: number, connectionListener?: () => void): this; + connect(path: string, connectionListener?: () => void): this; + /** + * Set the encoding for the socket as a `Readable Stream`. See `readable.setEncoding()` for more information. + * @since v0.1.90 + * @return The socket itself. + */ + setEncoding(encoding?: BufferEncoding): this; + /** + * Pauses the reading of data. That is, `'data'` events will not be emitted. + * Useful to throttle back an upload. + * @return The socket itself. + */ + pause(): this; + /** + * Close the TCP connection by sending an RST packet and destroy the stream. + * If this TCP socket is in connecting status, it will send an RST packet and destroy this TCP socket once it is connected. + * Otherwise, it will call `socket.destroy` with an `ERR_SOCKET_CLOSED` Error. + * If this is not a TCP socket (for example, a pipe), calling this method will immediately throw an `ERR_INVALID_HANDLE_TYPE` Error. + * @since v18.3.0, v16.17.0 + */ + resetAndDestroy(): this; + /** + * Resumes reading after a call to `socket.pause()`. + * @return The socket itself. + */ + resume(): this; + /** + * Sets the socket to timeout after `timeout` milliseconds of inactivity on + * the socket. By default `net.Socket` do not have a timeout. + * + * When an idle timeout is triggered the socket will receive a `'timeout'` event but the connection will not be severed. The user must manually call `socket.end()` or `socket.destroy()` to + * end the connection. + * + * ```js + * socket.setTimeout(3000); + * socket.on('timeout', () => { + * console.log('socket timeout'); + * socket.end(); + * }); + * ``` + * + * If `timeout` is 0, then the existing idle timeout is disabled. + * + * The optional `callback` parameter will be added as a one-time listener for the `'timeout'` event. + * @since v0.1.90 + * @return The socket itself. + */ + setTimeout(timeout: number, callback?: () => void): this; + /** + * Enable/disable the use of Nagle's algorithm. + * + * When a TCP connection is created, it will have Nagle's algorithm enabled. + * + * Nagle's algorithm delays data before it is sent via the network. It attempts + * to optimize throughput at the expense of latency. + * + * Passing `true` for `noDelay` or not passing an argument will disable Nagle's + * algorithm for the socket. Passing `false` for `noDelay` will enable Nagle's + * algorithm. + * @since v0.1.90 + * @param [noDelay=true] + * @return The socket itself. + */ + setNoDelay(noDelay?: boolean): this; + /** + * Enable/disable keep-alive functionality, and optionally set the initial + * delay before the first keepalive probe is sent on an idle socket. + * + * Set `initialDelay` (in milliseconds) to set the delay between the last + * data packet received and the first keepalive probe. Setting `0` for`initialDelay` will leave the value unchanged from the default + * (or previous) setting. + * + * Enabling the keep-alive functionality will set the following socket options: + * + * * `SO_KEEPALIVE=1` + * * `TCP_KEEPIDLE=initialDelay` + * * `TCP_KEEPCNT=10` + * * `TCP_KEEPINTVL=1` + * @since v0.1.92 + * @param [enable=false] + * @param [initialDelay=0] + * @return The socket itself. + */ + setKeepAlive(enable?: boolean, initialDelay?: number): this; + /** + * Returns the current Type of Service (TOS) field for IPv4 packets or Traffic + * Class for IPv6 packets for this socket. + * + * `setTypeOfService()` may be called before the socket is connected; the value + * will be cached and applied when the socket establishes a connection. + * `getTypeOfService()` will return the currently set value even before connection. + * + * On some platforms (e.g., Linux), certain TOS/ECN bits may be masked or ignored, + * and behavior can differ between IPv4 and IPv6 or dual-stack sockets. Callers + * should verify platform-specific semantics. + * @since v25.6.0 + * @returns The current TOS value. + */ + getTypeOfService(): number; + /** + * Sets the Type of Service (TOS) field for IPv4 packets or Traffic Class for IPv6 + * Packets sent from this socket. This can be used to prioritize network traffic. + * + * `setTypeOfService()` may be called before the socket is connected; the value + * will be cached and applied when the socket establishes a connection. + * `getTypeOfService()` will return the currently set value even before connection. + * + * On some platforms (e.g., Linux), certain TOS/ECN bits may be masked or ignored, + * and behavior can differ between IPv4 and IPv6 or dual-stack sockets. Callers + * should verify platform-specific semantics. + * @since v25.6.0 + * @param tos The TOS value to set (0-255). + * @returns The socket itself. + */ + setTypeOfService(tos: number): this; + /** + * Returns the bound `address`, the address `family` name and `port` of the + * socket as reported by the operating system:`{ port: 12346, family: 'IPv4', address: '127.0.0.1' }` + * @since v0.1.90 + */ + address(): AddressInfo | {}; + /** + * Calling `unref()` on a socket will allow the program to exit if this is the only + * active socket in the event system. If the socket is already `unref`ed calling`unref()` again will have no effect. + * @since v0.9.1 + * @return The socket itself. + */ + unref(): this; + /** + * Opposite of `unref()`, calling `ref()` on a previously `unref`ed socket will _not_ let the program exit if it's the only socket left (the default behavior). + * If the socket is `ref`ed calling `ref` again will have no effect. + * @since v0.9.1 + * @return The socket itself. + */ + ref(): this; + /** + * This property is only present if the family autoselection algorithm is enabled in `socket.connect(options)` + * and it is an array of the addresses that have been attempted. + * + * Each address is a string in the form of `$IP:$PORT`. + * If the connection was successful, then the last address is the one that the socket is currently connected to. + * @since v19.4.0 + */ + readonly autoSelectFamilyAttemptedAddresses: string[]; + /** + * This property shows the number of characters buffered for writing. The buffer + * may contain strings whose length after encoding is not yet known. So this number + * is only an approximation of the number of bytes in the buffer. + * + * `net.Socket` has the property that `socket.write()` always works. This is to + * help users get up and running quickly. The computer cannot always keep up + * with the amount of data that is written to a socket. The network connection + * simply might be too slow. Node.js will internally queue up the data written to a + * socket and send it out over the wire when it is possible. + * + * The consequence of this internal buffering is that memory may grow. + * Users who experience large or growing `bufferSize` should attempt to + * "throttle" the data flows in their program with `socket.pause()` and `socket.resume()`. + * @since v0.3.8 + * @deprecated Since v14.6.0 - Use `writableLength` instead. + */ + readonly bufferSize: number; + /** + * The amount of received bytes. + * @since v0.5.3 + */ + readonly bytesRead: number; + /** + * The amount of bytes sent. + * @since v0.5.3 + */ + readonly bytesWritten: number; + /** + * If `true`, `socket.connect(options[, connectListener])` was + * called and has not yet finished. It will stay `true` until the socket becomes + * connected, then it is set to `false` and the `'connect'` event is emitted. Note + * that the `socket.connect(options[, connectListener])` callback is a listener for the `'connect'` event. + * @since v6.1.0 + */ + readonly connecting: boolean; + /** + * This is `true` if the socket is not connected yet, either because `.connect()`has not yet been called or because it is still in the process of connecting + * (see `socket.connecting`). + * @since v11.2.0, v10.16.0 + */ + readonly pending: boolean; + /** + * See `writable.destroyed` for further details. + */ + readonly destroyed: boolean; + /** + * The string representation of the local IP address the remote client is + * connecting on. For example, in a server listening on `'0.0.0.0'`, if a client + * connects on `'192.168.1.1'`, the value of `socket.localAddress` would be`'192.168.1.1'`. + * @since v0.9.6 + */ + readonly localAddress?: string; + /** + * The numeric representation of the local port. For example, `80` or `21`. + * @since v0.9.6 + */ + readonly localPort?: number; + /** + * The string representation of the local IP family. `'IPv4'` or `'IPv6'`. + * @since v18.8.0, v16.18.0 + */ + readonly localFamily?: string; + /** + * This property represents the state of the connection as a string. + * + * * If the stream is connecting `socket.readyState` is `opening`. + * * If the stream is readable and writable, it is `open`. + * * If the stream is readable and not writable, it is `readOnly`. + * * If the stream is not readable and writable, it is `writeOnly`. + * @since v0.5.0 + */ + readonly readyState: SocketReadyState; + /** + * The string representation of the remote IP address. For example,`'74.125.127.100'` or `'2001:4860:a005::68'`. Value may be `undefined` if + * the socket is destroyed (for example, if the client disconnected). + * @since v0.5.10 + */ + readonly remoteAddress: string | undefined; + /** + * The string representation of the remote IP family. `'IPv4'` or `'IPv6'`. Value may be `undefined` if + * the socket is destroyed (for example, if the client disconnected). + * @since v0.11.14 + */ + readonly remoteFamily: string | undefined; + /** + * The numeric representation of the remote port. For example, `80` or `21`. Value may be `undefined` if + * the socket is destroyed (for example, if the client disconnected). + * @since v0.5.10 + */ + readonly remotePort: number | undefined; + /** + * The socket timeout in milliseconds as set by `socket.setTimeout()`. + * It is `undefined` if a timeout has not been set. + * @since v10.7.0 + */ + readonly timeout?: number; + /** + * Half-closes the socket. i.e., it sends a FIN packet. It is possible the + * server will still send some data. + * + * See `writable.end()` for further details. + * @since v0.1.90 + * @param callback Optional callback for when the socket is finished. + * @return The socket itself. + */ + end(callback?: () => void): this; + /** + * Half-closes the socket, with one final chunk of data. + * @see {@link Socket.end} for full details. + * @since v0.1.90 + * @param callback Optional callback for when the socket is finished. + * @return The socket itself. + */ + end(buffer: Uint8Array | string, callback?: () => void): this; + /** + * Half-closes the socket, with one final chunk of data. + * @see {@link Socket.end} for full details. + * @since v0.1.90 + * @param [encoding='utf8'] Only used when data is `string`. + * @param callback Optional callback for when the socket is finished. + * @return The socket itself. + */ + end(str: Uint8Array | string, encoding?: BufferEncoding, callback?: () => void): this; + // #region InternalEventEmitter + addListener(eventName: E, listener: (...args: SocketEventMap[E]) => void): this; + addListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + emit(eventName: E, ...args: SocketEventMap[E]): boolean; + emit(eventName: string | symbol, ...args: any[]): boolean; + listenerCount( + eventName: E, + listener?: (...args: SocketEventMap[E]) => void, + ): number; + listenerCount(eventName: string | symbol, listener?: (...args: any[]) => void): number; + listeners(eventName: E): ((...args: SocketEventMap[E]) => void)[]; + listeners(eventName: string | symbol): ((...args: any[]) => void)[]; + off(eventName: E, listener: (...args: SocketEventMap[E]) => void): this; + off(eventName: string | symbol, listener: (...args: any[]) => void): this; + on(eventName: E, listener: (...args: SocketEventMap[E]) => void): this; + on(eventName: string | symbol, listener: (...args: any[]) => void): this; + once(eventName: E, listener: (...args: SocketEventMap[E]) => void): this; + once(eventName: string | symbol, listener: (...args: any[]) => void): this; + prependListener( + eventName: E, + listener: (...args: SocketEventMap[E]) => void, + ): this; + prependListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + prependOnceListener( + eventName: E, + listener: (...args: SocketEventMap[E]) => void, + ): this; + prependOnceListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + rawListeners(eventName: E): ((...args: SocketEventMap[E]) => void)[]; + rawListeners(eventName: string | symbol): ((...args: any[]) => void)[]; + // eslint-disable-next-line @definitelytyped/no-unnecessary-generics + removeAllListeners(eventName?: E): this; + removeAllListeners(eventName?: string | symbol): this; + removeListener( + eventName: E, + listener: (...args: SocketEventMap[E]) => void, + ): this; + removeListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + // #endregion + } + interface ListenOptions extends Abortable { + backlog?: number | undefined; + exclusive?: boolean | undefined; + host?: string | undefined; + /** + * @default false + */ + ipv6Only?: boolean | undefined; + reusePort?: boolean | undefined; + path?: string | undefined; + port?: number | undefined; + readableAll?: boolean | undefined; + writableAll?: boolean | undefined; + } + interface ServerOpts { + /** + * Indicates whether half-opened TCP connections are allowed. + * @default false + */ + allowHalfOpen?: boolean | undefined; + /** + * Indicates whether the socket should be paused on incoming connections. + * @default false + */ + pauseOnConnect?: boolean | undefined; + /** + * If set to `true`, it disables the use of Nagle's algorithm immediately after a new incoming connection is received. + * @default false + * @since v16.5.0 + */ + noDelay?: boolean | undefined; + /** + * If set to `true`, it enables keep-alive functionality on the socket immediately after a new incoming connection is received, + * similarly on what is done in `socket.setKeepAlive([enable][, initialDelay])`. + * @default false + * @since v16.5.0 + */ + keepAlive?: boolean | undefined; + /** + * If set to a positive number, it sets the initial delay before the first keepalive probe is sent on an idle socket. + * @default 0 + * @since v16.5.0 + */ + keepAliveInitialDelay?: number | undefined; + /** + * Optionally overrides all `net.Socket`s' `readableHighWaterMark` and `writableHighWaterMark`. + * @default See [stream.getDefaultHighWaterMark()](https://nodejs.org/docs/latest-v25.x/api/stream.html#streamgetdefaulthighwatermarkobjectmode). + * @since v18.17.0, v20.1.0 + */ + highWaterMark?: number | undefined; + /** + * `blockList` can be used for disabling inbound + * access to specific IP addresses, IP ranges, or IP subnets. This does not + * work if the server is behind a reverse proxy, NAT, etc. because the address + * checked against the block list is the address of the proxy, or the one + * specified by the NAT. + * @since v22.13.0 + */ + blockList?: BlockList | undefined; + } + interface DropArgument { + localAddress?: string; + localPort?: number; + localFamily?: string; + remoteAddress?: string; + remotePort?: number; + remoteFamily?: string; + } + interface ServerEventMap { + "close": []; + "connection": [socket: Socket]; + "error": [err: Error]; + "listening": []; + "drop": [data?: DropArgument]; + } + /** + * This class is used to create a TCP or `IPC` server. + * @since v0.1.90 + */ + class Server implements EventEmitter { + constructor(connectionListener?: (socket: Socket) => void); + constructor(options?: ServerOpts, connectionListener?: (socket: Socket) => void); + /** + * Start a server listening for connections. A `net.Server` can be a TCP or + * an `IPC` server depending on what it listens to. + * + * Possible signatures: + * + * * `server.listen(handle[, backlog][, callback])` + * * `server.listen(options[, callback])` + * * `server.listen(path[, backlog][, callback])` for `IPC` servers + * * `server.listen([port[, host[, backlog]]][, callback])` for TCP servers + * + * This function is asynchronous. When the server starts listening, the `'listening'` event will be emitted. The last parameter `callback`will be added as a listener for the `'listening'` + * event. + * + * All `listen()` methods can take a `backlog` parameter to specify the maximum + * length of the queue of pending connections. The actual length will be determined + * by the OS through sysctl settings such as `tcp_max_syn_backlog` and `somaxconn` on Linux. The default value of this parameter is 511 (not 512). + * + * All {@link Socket} are set to `SO_REUSEADDR` (see [`socket(7)`](https://man7.org/linux/man-pages/man7/socket.7.html) for + * details). + * + * The `server.listen()` method can be called again if and only if there was an + * error during the first `server.listen()` call or `server.close()` has been + * called. Otherwise, an `ERR_SERVER_ALREADY_LISTEN` error will be thrown. + * + * One of the most common errors raised when listening is `EADDRINUSE`. + * This happens when another server is already listening on the requested`port`/`path`/`handle`. One way to handle this would be to retry + * after a certain amount of time: + * + * ```js + * server.on('error', (e) => { + * if (e.code === 'EADDRINUSE') { + * console.error('Address in use, retrying...'); + * setTimeout(() => { + * server.close(); + * server.listen(PORT, HOST); + * }, 1000); + * } + * }); + * ``` + */ + listen(port?: number, hostname?: string, backlog?: number, listeningListener?: () => void): this; + listen(port?: number, hostname?: string, listeningListener?: () => void): this; + listen(port?: number, backlog?: number, listeningListener?: () => void): this; + listen(port?: number, listeningListener?: () => void): this; + listen(path: string, backlog?: number, listeningListener?: () => void): this; + listen(path: string, listeningListener?: () => void): this; + listen(options: ListenOptions, listeningListener?: () => void): this; + listen(handle: any, backlog?: number, listeningListener?: () => void): this; + listen(handle: any, listeningListener?: () => void): this; + /** + * Stops the server from accepting new connections and keeps existing + * connections. This function is asynchronous, the server is finally closed + * when all connections are ended and the server emits a `'close'` event. + * The optional `callback` will be called once the `'close'` event occurs. Unlike + * that event, it will be called with an `Error` as its only argument if the server + * was not open when it was closed. + * @since v0.1.90 + * @param callback Called when the server is closed. + */ + close(callback?: (err?: Error) => void): this; + /** + * Returns the bound `address`, the address `family` name, and `port` of the server + * as reported by the operating system if listening on an IP socket + * (useful to find which port was assigned when getting an OS-assigned address):`{ port: 12346, family: 'IPv4', address: '127.0.0.1' }`. + * + * For a server listening on a pipe or Unix domain socket, the name is returned + * as a string. + * + * ```js + * const server = net.createServer((socket) => { + * socket.end('goodbye\n'); + * }).on('error', (err) => { + * // Handle errors here. + * throw err; + * }); + * + * // Grab an arbitrary unused port. + * server.listen(() => { + * console.log('opened server on', server.address()); + * }); + * ``` + * + * `server.address()` returns `null` before the `'listening'` event has been + * emitted or after calling `server.close()`. + * @since v0.1.90 + */ + address(): AddressInfo | string | null; + /** + * Asynchronously get the number of concurrent connections on the server. Works + * when sockets were sent to forks. + * + * Callback should take two arguments `err` and `count`. + * @since v0.9.7 + */ + getConnections(cb: (error: Error | null, count: number) => void): this; + /** + * Opposite of `unref()`, calling `ref()` on a previously `unref`ed server will _not_ let the program exit if it's the only server left (the default behavior). + * If the server is `ref`ed calling `ref()` again will have no effect. + * @since v0.9.1 + */ + ref(): this; + /** + * Calling `unref()` on a server will allow the program to exit if this is the only + * active server in the event system. If the server is already `unref`ed calling`unref()` again will have no effect. + * @since v0.9.1 + */ + unref(): this; + /** + * Set this property to reject connections when the server's connection count gets + * high. + * + * It is not recommended to use this option once a socket has been sent to a child + * with `child_process.fork()`. + * @since v0.2.0 + */ + maxConnections: number; + connections: number; + /** + * Indicates whether or not the server is listening for connections. + * @since v5.7.0 + */ + readonly listening: boolean; + /** + * Calls {@link Server.close()} and returns a promise that fulfills when the server has closed. + * @since v20.5.0 + */ + [Symbol.asyncDispose](): Promise; + } + interface Server extends InternalEventEmitter {} + type IPVersion = "ipv4" | "ipv6"; + /** + * The `BlockList` object can be used with some network APIs to specify rules for + * disabling inbound or outbound access to specific IP addresses, IP ranges, or + * IP subnets. + * @since v15.0.0, v14.18.0 + */ + class BlockList { + /** + * Adds a rule to block the given IP address. + * @since v15.0.0, v14.18.0 + * @param address An IPv4 or IPv6 address. + * @param [type='ipv4'] Either `'ipv4'` or `'ipv6'`. + */ + addAddress(address: string, type?: IPVersion): void; + addAddress(address: SocketAddress): void; + /** + * Adds a rule to block a range of IP addresses from `start` (inclusive) to`end` (inclusive). + * @since v15.0.0, v14.18.0 + * @param start The starting IPv4 or IPv6 address in the range. + * @param end The ending IPv4 or IPv6 address in the range. + * @param [type='ipv4'] Either `'ipv4'` or `'ipv6'`. + */ + addRange(start: string, end: string, type?: IPVersion): void; + addRange(start: SocketAddress, end: SocketAddress): void; + /** + * Adds a rule to block a range of IP addresses specified as a subnet mask. + * @since v15.0.0, v14.18.0 + * @param net The network IPv4 or IPv6 address. + * @param prefix The number of CIDR prefix bits. For IPv4, this must be a value between `0` and `32`. For IPv6, this must be between `0` and `128`. + * @param [type='ipv4'] Either `'ipv4'` or `'ipv6'`. + */ + addSubnet(net: SocketAddress, prefix: number): void; + addSubnet(net: string, prefix: number, type?: IPVersion): void; + /** + * Returns `true` if the given IP address matches any of the rules added to the`BlockList`. + * + * ```js + * const blockList = new net.BlockList(); + * blockList.addAddress('123.123.123.123'); + * blockList.addRange('10.0.0.1', '10.0.0.10'); + * blockList.addSubnet('8592:757c:efae:4e45::', 64, 'ipv6'); + * + * console.log(blockList.check('123.123.123.123')); // Prints: true + * console.log(blockList.check('10.0.0.3')); // Prints: true + * console.log(blockList.check('222.111.111.222')); // Prints: false + * + * // IPv6 notation for IPv4 addresses works: + * console.log(blockList.check('::ffff:7b7b:7b7b', 'ipv6')); // Prints: true + * console.log(blockList.check('::ffff:123.123.123.123', 'ipv6')); // Prints: true + * ``` + * @since v15.0.0, v14.18.0 + * @param address The IP address to check + * @param [type='ipv4'] Either `'ipv4'` or `'ipv6'`. + */ + check(address: SocketAddress): boolean; + check(address: string, type?: IPVersion): boolean; + /** + * The list of rules added to the blocklist. + * @since v15.0.0, v14.18.0 + */ + rules: readonly string[]; + /** + * Returns `true` if the `value` is a `net.BlockList`. + * @since v22.13.0 + * @param value Any JS value + */ + static isBlockList(value: unknown): value is BlockList; + /** + * ```js + * const blockList = new net.BlockList(); + * const data = [ + * 'Subnet: IPv4 192.168.1.0/24', + * 'Address: IPv4 10.0.0.5', + * 'Range: IPv4 192.168.2.1-192.168.2.10', + * 'Range: IPv4 10.0.0.1-10.0.0.10', + * ]; + * blockList.fromJSON(data); + * blockList.fromJSON(JSON.stringify(data)); + * ``` + * @since v24.5.0 + * @experimental + */ + fromJSON(data: string | readonly string[]): void; + /** + * @since v24.5.0 + * @experimental + */ + toJSON(): readonly string[]; + } + interface TcpNetConnectOpts extends TcpSocketConnectOpts, SocketConstructorOpts { + timeout?: number | undefined; + } + interface IpcNetConnectOpts extends IpcSocketConnectOpts, SocketConstructorOpts { + timeout?: number | undefined; + } + type NetConnectOpts = TcpNetConnectOpts | IpcNetConnectOpts; + /** + * Creates a new TCP or `IPC` server. + * + * If `allowHalfOpen` is set to `true`, when the other end of the socket + * signals the end of transmission, the server will only send back the end of + * transmission when `socket.end()` is explicitly called. For example, in the + * context of TCP, when a FIN packed is received, a FIN packed is sent + * back only when `socket.end()` is explicitly called. Until then the + * connection is half-closed (non-readable but still writable). See `'end'` event and [RFC 1122](https://tools.ietf.org/html/rfc1122) (section 4.2.2.13) for more information. + * + * If `pauseOnConnect` is set to `true`, then the socket associated with each + * incoming connection will be paused, and no data will be read from its handle. + * This allows connections to be passed between processes without any data being + * read by the original process. To begin reading data from a paused socket, call `socket.resume()`. + * + * The server can be a TCP server or an `IPC` server, depending on what it `listen()` to. + * + * Here is an example of a TCP echo server which listens for connections + * on port 8124: + * + * ```js + * import net from 'node:net'; + * const server = net.createServer((c) => { + * // 'connection' listener. + * console.log('client connected'); + * c.on('end', () => { + * console.log('client disconnected'); + * }); + * c.write('hello\r\n'); + * c.pipe(c); + * }); + * server.on('error', (err) => { + * throw err; + * }); + * server.listen(8124, () => { + * console.log('server bound'); + * }); + * ``` + * + * Test this by using `telnet`: + * + * ```bash + * telnet localhost 8124 + * ``` + * + * To listen on the socket `/tmp/echo.sock`: + * + * ```js + * server.listen('/tmp/echo.sock', () => { + * console.log('server bound'); + * }); + * ``` + * + * Use `nc` to connect to a Unix domain socket server: + * + * ```bash + * nc -U /tmp/echo.sock + * ``` + * @since v0.5.0 + * @param connectionListener Automatically set as a listener for the {@link 'connection'} event. + */ + function createServer(connectionListener?: (socket: Socket) => void): Server; + function createServer(options?: ServerOpts, connectionListener?: (socket: Socket) => void): Server; + /** + * Aliases to {@link createConnection}. + * + * Possible signatures: + * + * * {@link connect} + * * {@link connect} for `IPC` connections. + * * {@link connect} for TCP connections. + */ + function connect(options: NetConnectOpts, connectionListener?: () => void): Socket; + function connect(port: number, host?: string, connectionListener?: () => void): Socket; + function connect(path: string, connectionListener?: () => void): Socket; + /** + * A factory function, which creates a new {@link Socket}, + * immediately initiates connection with `socket.connect()`, + * then returns the `net.Socket` that starts the connection. + * + * When the connection is established, a `'connect'` event will be emitted + * on the returned socket. The last parameter `connectListener`, if supplied, + * will be added as a listener for the `'connect'` event **once**. + * + * Possible signatures: + * + * * {@link createConnection} + * * {@link createConnection} for `IPC` connections. + * * {@link createConnection} for TCP connections. + * + * The {@link connect} function is an alias to this function. + */ + function createConnection(options: NetConnectOpts, connectionListener?: () => void): Socket; + function createConnection(port: number, host?: string, connectionListener?: () => void): Socket; + function createConnection(path: string, connectionListener?: () => void): Socket; + /** + * Gets the current default value of the `autoSelectFamily` option of `socket.connect(options)`. + * The initial default value is `true`, unless the command line option`--no-network-family-autoselection` is provided. + * @since v19.4.0 + */ + function getDefaultAutoSelectFamily(): boolean; + /** + * Sets the default value of the `autoSelectFamily` option of `socket.connect(options)`. + * @param value The new default value. + * The initial default value is `true`, unless the command line option + * `--no-network-family-autoselection` is provided. + * @since v19.4.0 + */ + function setDefaultAutoSelectFamily(value: boolean): void; + /** + * Gets the current default value of the `autoSelectFamilyAttemptTimeout` option of `socket.connect(options)`. + * The initial default value is `500` or the value specified via the command line option `--network-family-autoselection-attempt-timeout`. + * @returns The current default value of the `autoSelectFamilyAttemptTimeout` option. + * @since v19.8.0, v18.8.0 + */ + function getDefaultAutoSelectFamilyAttemptTimeout(): number; + /** + * Sets the default value of the `autoSelectFamilyAttemptTimeout` option of `socket.connect(options)`. + * @param value The new default value, which must be a positive number. If the number is less than `10`, the value `10` is used instead. The initial default value is `250` or the value specified via the command line + * option `--network-family-autoselection-attempt-timeout`. + * @since v19.8.0, v18.8.0 + */ + function setDefaultAutoSelectFamilyAttemptTimeout(value: number): void; + /** + * Returns `6` if `input` is an IPv6 address. Returns `4` if `input` is an IPv4 + * address in [dot-decimal notation](https://en.wikipedia.org/wiki/Dot-decimal_notation) with no leading zeroes. Otherwise, returns`0`. + * + * ```js + * net.isIP('::1'); // returns 6 + * net.isIP('127.0.0.1'); // returns 4 + * net.isIP('127.000.000.001'); // returns 0 + * net.isIP('127.0.0.1/24'); // returns 0 + * net.isIP('fhqwhgads'); // returns 0 + * ``` + * @since v0.3.0 + */ + function isIP(input: string): number; + /** + * Returns `true` if `input` is an IPv4 address in [dot-decimal notation](https://en.wikipedia.org/wiki/Dot-decimal_notation) with no + * leading zeroes. Otherwise, returns `false`. + * + * ```js + * net.isIPv4('127.0.0.1'); // returns true + * net.isIPv4('127.000.000.001'); // returns false + * net.isIPv4('127.0.0.1/24'); // returns false + * net.isIPv4('fhqwhgads'); // returns false + * ``` + * @since v0.3.0 + */ + function isIPv4(input: string): boolean; + /** + * Returns `true` if `input` is an IPv6 address. Otherwise, returns `false`. + * + * ```js + * net.isIPv6('::1'); // returns true + * net.isIPv6('fhqwhgads'); // returns false + * ``` + * @since v0.3.0 + */ + function isIPv6(input: string): boolean; + interface SocketAddressInitOptions { + /** + * The network address as either an IPv4 or IPv6 string. + * @default 127.0.0.1 + */ + address?: string | undefined; + /** + * @default `'ipv4'` + */ + family?: IPVersion | undefined; + /** + * An IPv6 flow-label used only if `family` is `'ipv6'`. + * @default 0 + */ + flowlabel?: number | undefined; + /** + * An IP port. + * @default 0 + */ + port?: number | undefined; + } + /** + * @since v15.14.0, v14.18.0 + */ + class SocketAddress { + constructor(options: SocketAddressInitOptions); + /** + * Either \`'ipv4'\` or \`'ipv6'\`. + * @since v15.14.0, v14.18.0 + */ + readonly address: string; + /** + * Either \`'ipv4'\` or \`'ipv6'\`. + * @since v15.14.0, v14.18.0 + */ + readonly family: IPVersion; + /** + * @since v15.14.0, v14.18.0 + */ + readonly port: number; + /** + * @since v15.14.0, v14.18.0 + */ + readonly flowlabel: number; + /** + * @since v22.13.0 + * @param input An input string containing an IP address and optional port, + * e.g. `123.1.2.3:1234` or `[1::1]:1234`. + * @returns Returns a `SocketAddress` if parsing was successful. + * Otherwise returns `undefined`. + */ + static parse(input: string): SocketAddress | undefined; + } +} +declare module "net" { + export * from "node:net"; +} diff --git a/server/api/node_modules/@types/node/os.d.ts b/server/api/node_modules/@types/node/os.d.ts new file mode 100644 index 0000000..562c463 --- /dev/null +++ b/server/api/node_modules/@types/node/os.d.ts @@ -0,0 +1,498 @@ +declare module "node:os" { + import { NonSharedBuffer } from "buffer"; + interface CpuInfo { + model: string; + speed: number; + times: { + /** The number of milliseconds the CPU has spent in user mode. */ + user: number; + /** The number of milliseconds the CPU has spent in nice mode. */ + nice: number; + /** The number of milliseconds the CPU has spent in sys mode. */ + sys: number; + /** The number of milliseconds the CPU has spent in idle mode. */ + idle: number; + /** The number of milliseconds the CPU has spent in irq mode. */ + irq: number; + }; + } + interface NetworkInterfaceBase { + address: string; + netmask: string; + mac: string; + internal: boolean; + cidr: string | null; + scopeid?: number; + } + interface NetworkInterfaceInfoIPv4 extends NetworkInterfaceBase { + family: "IPv4"; + } + interface NetworkInterfaceInfoIPv6 extends NetworkInterfaceBase { + family: "IPv6"; + scopeid: number; + } + interface UserInfo { + username: T; + uid: number; + gid: number; + shell: T | null; + homedir: T; + } + type NetworkInterfaceInfo = NetworkInterfaceInfoIPv4 | NetworkInterfaceInfoIPv6; + /** + * Returns the host name of the operating system as a string. + * @since v0.3.3 + */ + function hostname(): string; + /** + * Returns an array containing the 1, 5, and 15 minute load averages. + * + * The load average is a measure of system activity calculated by the operating + * system and expressed as a fractional number. + * + * The load average is a Unix-specific concept. On Windows, the return value is + * always `[0, 0, 0]`. + * @since v0.3.3 + */ + function loadavg(): number[]; + /** + * Returns the system uptime in number of seconds. + * @since v0.3.3 + */ + function uptime(): number; + /** + * Returns the amount of free system memory in bytes as an integer. + * @since v0.3.3 + */ + function freemem(): number; + /** + * Returns the total amount of system memory in bytes as an integer. + * @since v0.3.3 + */ + function totalmem(): number; + /** + * Returns an array of objects containing information about each logical CPU core. + * The array will be empty if no CPU information is available, such as if the `/proc` file system is unavailable. + * + * The properties included on each object include: + * + * ```js + * [ + * { + * model: 'Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz', + * speed: 2926, + * times: { + * user: 252020, + * nice: 0, + * sys: 30340, + * idle: 1070356870, + * irq: 0, + * }, + * }, + * { + * model: 'Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz', + * speed: 2926, + * times: { + * user: 306960, + * nice: 0, + * sys: 26980, + * idle: 1071569080, + * irq: 0, + * }, + * }, + * { + * model: 'Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz', + * speed: 2926, + * times: { + * user: 248450, + * nice: 0, + * sys: 21750, + * idle: 1070919370, + * irq: 0, + * }, + * }, + * { + * model: 'Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz', + * speed: 2926, + * times: { + * user: 256880, + * nice: 0, + * sys: 19430, + * idle: 1070905480, + * irq: 20, + * }, + * }, + * ] + * ``` + * + * `nice` values are POSIX-only. On Windows, the `nice` values of all processors + * are always 0. + * + * `os.cpus().length` should not be used to calculate the amount of parallelism + * available to an application. Use {@link availableParallelism} for this purpose. + * @since v0.3.3 + */ + function cpus(): CpuInfo[]; + /** + * Returns an estimate of the default amount of parallelism a program should use. + * Always returns a value greater than zero. + * + * This function is a small wrapper about libuv's [`uv_available_parallelism()`](https://docs.libuv.org/en/v1.x/misc.html#c.uv_available_parallelism). + * @since v19.4.0, v18.14.0 + */ + function availableParallelism(): number; + /** + * Returns the operating system name as returned by [`uname(3)`](https://linux.die.net/man/3/uname). For example, it + * returns `'Linux'` on Linux, `'Darwin'` on macOS, and `'Windows_NT'` on Windows. + * + * See [https://en.wikipedia.org/wiki/Uname#Examples](https://en.wikipedia.org/wiki/Uname#Examples) for additional information + * about the output of running [`uname(3)`](https://linux.die.net/man/3/uname) on various operating systems. + * @since v0.3.3 + */ + function type(): string; + /** + * Returns the operating system as a string. + * + * On POSIX systems, the operating system release is determined by calling [`uname(3)`](https://linux.die.net/man/3/uname). On Windows, `GetVersionExW()` is used. See + * [https://en.wikipedia.org/wiki/Uname#Examples](https://en.wikipedia.org/wiki/Uname#Examples) for more information. + * @since v0.3.3 + */ + function release(): string; + /** + * Returns an object containing network interfaces that have been assigned a + * network address. + * + * Each key on the returned object identifies a network interface. The associated + * value is an array of objects that each describe an assigned network address. + * + * The properties available on the assigned network address object include: + * + * ```js + * { + * lo: [ + * { + * address: '127.0.0.1', + * netmask: '255.0.0.0', + * family: 'IPv4', + * mac: '00:00:00:00:00:00', + * internal: true, + * cidr: '127.0.0.1/8' + * }, + * { + * address: '::1', + * netmask: 'ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff', + * family: 'IPv6', + * mac: '00:00:00:00:00:00', + * scopeid: 0, + * internal: true, + * cidr: '::1/128' + * } + * ], + * eth0: [ + * { + * address: '192.168.1.108', + * netmask: '255.255.255.0', + * family: 'IPv4', + * mac: '01:02:03:0a:0b:0c', + * internal: false, + * cidr: '192.168.1.108/24' + * }, + * { + * address: 'fe80::a00:27ff:fe4e:66a1', + * netmask: 'ffff:ffff:ffff:ffff::', + * family: 'IPv6', + * mac: '01:02:03:0a:0b:0c', + * scopeid: 1, + * internal: false, + * cidr: 'fe80::a00:27ff:fe4e:66a1/64' + * } + * ] + * } + * ``` + * @since v0.6.0 + */ + function networkInterfaces(): NodeJS.Dict; + /** + * Returns the string path of the current user's home directory. + * + * On POSIX, it uses the `$HOME` environment variable if defined. Otherwise it + * uses the [effective UID](https://en.wikipedia.org/wiki/User_identifier#Effective_user_ID) to look up the user's home directory. + * + * On Windows, it uses the `USERPROFILE` environment variable if defined. + * Otherwise it uses the path to the profile directory of the current user. + * @since v2.3.0 + */ + function homedir(): string; + interface UserInfoOptions { + encoding?: BufferEncoding | "buffer" | undefined; + } + interface UserInfoOptionsWithBufferEncoding extends UserInfoOptions { + encoding: "buffer"; + } + interface UserInfoOptionsWithStringEncoding extends UserInfoOptions { + encoding?: BufferEncoding | undefined; + } + /** + * Returns information about the currently effective user. On POSIX platforms, + * this is typically a subset of the password file. The returned object includes + * the `username`, `uid`, `gid`, `shell`, and `homedir`. On Windows, the `uid` and `gid` fields are `-1`, and `shell` is `null`. + * + * The value of `homedir` returned by `os.userInfo()` is provided by the operating + * system. This differs from the result of `os.homedir()`, which queries + * environment variables for the home directory before falling back to the + * operating system response. + * + * Throws a [`SystemError`](https://nodejs.org/docs/latest-v25.x/api/errors.html#class-systemerror) if a user has no `username` or `homedir`. + * @since v6.0.0 + */ + function userInfo(options?: UserInfoOptionsWithStringEncoding): UserInfo; + function userInfo(options: UserInfoOptionsWithBufferEncoding): UserInfo; + function userInfo(options: UserInfoOptions): UserInfo; + type SignalConstants = { + [key in NodeJS.Signals]: number; + }; + namespace constants { + const UV_UDP_REUSEADDR: number; + namespace signals {} + const signals: SignalConstants; + namespace errno { + const E2BIG: number; + const EACCES: number; + const EADDRINUSE: number; + const EADDRNOTAVAIL: number; + const EAFNOSUPPORT: number; + const EAGAIN: number; + const EALREADY: number; + const EBADF: number; + const EBADMSG: number; + const EBUSY: number; + const ECANCELED: number; + const ECHILD: number; + const ECONNABORTED: number; + const ECONNREFUSED: number; + const ECONNRESET: number; + const EDEADLK: number; + const EDESTADDRREQ: number; + const EDOM: number; + const EDQUOT: number; + const EEXIST: number; + const EFAULT: number; + const EFBIG: number; + const EHOSTUNREACH: number; + const EIDRM: number; + const EILSEQ: number; + const EINPROGRESS: number; + const EINTR: number; + const EINVAL: number; + const EIO: number; + const EISCONN: number; + const EISDIR: number; + const ELOOP: number; + const EMFILE: number; + const EMLINK: number; + const EMSGSIZE: number; + const EMULTIHOP: number; + const ENAMETOOLONG: number; + const ENETDOWN: number; + const ENETRESET: number; + const ENETUNREACH: number; + const ENFILE: number; + const ENOBUFS: number; + const ENODATA: number; + const ENODEV: number; + const ENOENT: number; + const ENOEXEC: number; + const ENOLCK: number; + const ENOLINK: number; + const ENOMEM: number; + const ENOMSG: number; + const ENOPROTOOPT: number; + const ENOSPC: number; + const ENOSR: number; + const ENOSTR: number; + const ENOSYS: number; + const ENOTCONN: number; + const ENOTDIR: number; + const ENOTEMPTY: number; + const ENOTSOCK: number; + const ENOTSUP: number; + const ENOTTY: number; + const ENXIO: number; + const EOPNOTSUPP: number; + const EOVERFLOW: number; + const EPERM: number; + const EPIPE: number; + const EPROTO: number; + const EPROTONOSUPPORT: number; + const EPROTOTYPE: number; + const ERANGE: number; + const EROFS: number; + const ESPIPE: number; + const ESRCH: number; + const ESTALE: number; + const ETIME: number; + const ETIMEDOUT: number; + const ETXTBSY: number; + const EWOULDBLOCK: number; + const EXDEV: number; + const WSAEINTR: number; + const WSAEBADF: number; + const WSAEACCES: number; + const WSAEFAULT: number; + const WSAEINVAL: number; + const WSAEMFILE: number; + const WSAEWOULDBLOCK: number; + const WSAEINPROGRESS: number; + const WSAEALREADY: number; + const WSAENOTSOCK: number; + const WSAEDESTADDRREQ: number; + const WSAEMSGSIZE: number; + const WSAEPROTOTYPE: number; + const WSAENOPROTOOPT: number; + const WSAEPROTONOSUPPORT: number; + const WSAESOCKTNOSUPPORT: number; + const WSAEOPNOTSUPP: number; + const WSAEPFNOSUPPORT: number; + const WSAEAFNOSUPPORT: number; + const WSAEADDRINUSE: number; + const WSAEADDRNOTAVAIL: number; + const WSAENETDOWN: number; + const WSAENETUNREACH: number; + const WSAENETRESET: number; + const WSAECONNABORTED: number; + const WSAECONNRESET: number; + const WSAENOBUFS: number; + const WSAEISCONN: number; + const WSAENOTCONN: number; + const WSAESHUTDOWN: number; + const WSAETOOMANYREFS: number; + const WSAETIMEDOUT: number; + const WSAECONNREFUSED: number; + const WSAELOOP: number; + const WSAENAMETOOLONG: number; + const WSAEHOSTDOWN: number; + const WSAEHOSTUNREACH: number; + const WSAENOTEMPTY: number; + const WSAEPROCLIM: number; + const WSAEUSERS: number; + const WSAEDQUOT: number; + const WSAESTALE: number; + const WSAEREMOTE: number; + const WSASYSNOTREADY: number; + const WSAVERNOTSUPPORTED: number; + const WSANOTINITIALISED: number; + const WSAEDISCON: number; + const WSAENOMORE: number; + const WSAECANCELLED: number; + const WSAEINVALIDPROCTABLE: number; + const WSAEINVALIDPROVIDER: number; + const WSAEPROVIDERFAILEDINIT: number; + const WSASYSCALLFAILURE: number; + const WSASERVICE_NOT_FOUND: number; + const WSATYPE_NOT_FOUND: number; + const WSA_E_NO_MORE: number; + const WSA_E_CANCELLED: number; + const WSAEREFUSED: number; + } + namespace dlopen { + const RTLD_LAZY: number; + const RTLD_NOW: number; + const RTLD_GLOBAL: number; + const RTLD_LOCAL: number; + const RTLD_DEEPBIND: number; + } + namespace priority { + const PRIORITY_LOW: number; + const PRIORITY_BELOW_NORMAL: number; + const PRIORITY_NORMAL: number; + const PRIORITY_ABOVE_NORMAL: number; + const PRIORITY_HIGH: number; + const PRIORITY_HIGHEST: number; + } + } + const devNull: string; + /** + * The operating system-specific end-of-line marker. + * * `\n` on POSIX + * * `\r\n` on Windows + */ + const EOL: string; + /** + * Returns the operating system CPU architecture for which the Node.js binary was + * compiled. Possible values are `'arm'`, `'arm64'`, `'ia32'`, `'loong64'`, + * `'mips'`, `'mipsel'`, `'ppc64'`, `'riscv64'`, `'s390x'`, and `'x64'`. + * + * The return value is equivalent to [process.arch](https://nodejs.org/docs/latest-v25.x/api/process.html#processarch). + * @since v0.5.0 + */ + function arch(): NodeJS.Architecture; + /** + * Returns a string identifying the kernel version. + * + * On POSIX systems, the operating system release is determined by calling [`uname(3)`](https://linux.die.net/man/3/uname). On Windows, `RtlGetVersion()` is used, and if it is not + * available, `GetVersionExW()` will be used. See [https://en.wikipedia.org/wiki/Uname#Examples](https://en.wikipedia.org/wiki/Uname#Examples) for more information. + * @since v13.11.0, v12.17.0 + */ + function version(): string; + /** + * Returns a string identifying the operating system platform for which + * the Node.js binary was compiled. The value is set at compile time. + * Possible values are `'aix'`, `'darwin'`, `'freebsd'`, `'linux'`, `'openbsd'`, `'sunos'`, and `'win32'`. + * + * The return value is equivalent to `process.platform`. + * + * The value `'android'` may also be returned if Node.js is built on the Android + * operating system. [Android support is experimental](https://github.com/nodejs/node/blob/HEAD/BUILDING.md#androidandroid-based-devices-eg-firefox-os). + * @since v0.5.0 + */ + function platform(): NodeJS.Platform; + /** + * Returns the machine type as a string, such as `arm`, `arm64`, `aarch64`, + * `mips`, `mips64`, `ppc64`, `ppc64le`, `s390x`, `i386`, `i686`, `x86_64`. + * + * On POSIX systems, the machine type is determined by calling [`uname(3)`](https://linux.die.net/man/3/uname). On Windows, `RtlGetVersion()` is used, and if it is not + * available, `GetVersionExW()` will be used. See [https://en.wikipedia.org/wiki/Uname#Examples](https://en.wikipedia.org/wiki/Uname#Examples) for more information. + * @since v18.9.0, v16.18.0 + */ + function machine(): string; + /** + * Returns the operating system's default directory for temporary files as a + * string. + * @since v0.9.9 + */ + function tmpdir(): string; + /** + * Returns a string identifying the endianness of the CPU for which the Node.js + * binary was compiled. + * + * Possible values are `'BE'` for big endian and `'LE'` for little endian. + * @since v0.9.4 + */ + function endianness(): "BE" | "LE"; + /** + * Returns the scheduling priority for the process specified by `pid`. If `pid` is + * not provided or is `0`, the priority of the current process is returned. + * @since v10.10.0 + * @param [pid=0] The process ID to retrieve scheduling priority for. + */ + function getPriority(pid?: number): number; + /** + * Attempts to set the scheduling priority for the process specified by `pid`. If `pid` is not provided or is `0`, the process ID of the current process is used. + * + * The `priority` input must be an integer between `-20` (high priority) and `19` (low priority). Due to differences between Unix priority levels and Windows + * priority classes, `priority` is mapped to one of six priority constants in `os.constants.priority`. When retrieving a process priority level, this range + * mapping may cause the return value to be slightly different on Windows. To avoid + * confusion, set `priority` to one of the priority constants. + * + * On Windows, setting priority to `PRIORITY_HIGHEST` requires elevated user + * privileges. Otherwise the set priority will be silently reduced to `PRIORITY_HIGH`. + * @since v10.10.0 + * @param [pid=0] The process ID to set scheduling priority for. + * @param priority The scheduling priority to assign to the process. + */ + function setPriority(priority: number): void; + function setPriority(pid: number, priority: number): void; +} +declare module "os" { + export * from "node:os"; +} diff --git a/server/api/node_modules/@types/node/package.json b/server/api/node_modules/@types/node/package.json new file mode 100644 index 0000000..83b0e0a --- /dev/null +++ b/server/api/node_modules/@types/node/package.json @@ -0,0 +1,155 @@ +{ + "name": "@types/node", + "version": "25.6.0", + "description": "TypeScript definitions for node", + "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node", + "license": "MIT", + "contributors": [ + { + "name": "Microsoft TypeScript", + "githubUsername": "Microsoft", + "url": "https://github.com/Microsoft" + }, + { + "name": "Alberto Schiabel", + "githubUsername": "jkomyno", + "url": "https://github.com/jkomyno" + }, + { + "name": "Andrew Makarov", + "githubUsername": "r3nya", + "url": "https://github.com/r3nya" + }, + { + "name": "Benjamin Toueg", + "githubUsername": "btoueg", + "url": "https://github.com/btoueg" + }, + { + "name": "David Junger", + "githubUsername": "touffy", + "url": "https://github.com/touffy" + }, + { + "name": "Mohsen Azimi", + "githubUsername": "mohsen1", + "url": "https://github.com/mohsen1" + }, + { + "name": "Nikita Galkin", + "githubUsername": "galkin", + "url": "https://github.com/galkin" + }, + { + "name": "Sebastian Silbermann", + "githubUsername": "eps1lon", + "url": "https://github.com/eps1lon" + }, + { + "name": "Wilco Bakker", + "githubUsername": "WilcoBakker", + "url": "https://github.com/WilcoBakker" + }, + { + "name": "Marcin Kopacz", + "githubUsername": "chyzwar", + "url": "https://github.com/chyzwar" + }, + { + "name": "Trivikram Kamat", + "githubUsername": "trivikr", + "url": "https://github.com/trivikr" + }, + { + "name": "Junxiao Shi", + "githubUsername": "yoursunny", + "url": "https://github.com/yoursunny" + }, + { + "name": "Ilia Baryshnikov", + "githubUsername": "qwelias", + "url": "https://github.com/qwelias" + }, + { + "name": "ExE Boss", + "githubUsername": "ExE-Boss", + "url": "https://github.com/ExE-Boss" + }, + { + "name": "Piotr Błażejewicz", + "githubUsername": "peterblazejewicz", + "url": "https://github.com/peterblazejewicz" + }, + { + "name": "Anna Henningsen", + "githubUsername": "addaleax", + "url": "https://github.com/addaleax" + }, + { + "name": "Victor Perin", + "githubUsername": "victorperin", + "url": "https://github.com/victorperin" + }, + { + "name": "NodeJS Contributors", + "githubUsername": "NodeJS", + "url": "https://github.com/NodeJS" + }, + { + "name": "Linus Unnebäck", + "githubUsername": "LinusU", + "url": "https://github.com/LinusU" + }, + { + "name": "wafuwafu13", + "githubUsername": "wafuwafu13", + "url": "https://github.com/wafuwafu13" + }, + { + "name": "Matteo Collina", + "githubUsername": "mcollina", + "url": "https://github.com/mcollina" + }, + { + "name": "Dmitry Semigradsky", + "githubUsername": "Semigradsky", + "url": "https://github.com/Semigradsky" + }, + { + "name": "René", + "githubUsername": "Renegade334", + "url": "https://github.com/Renegade334" + }, + { + "name": "Yagiz Nizipli", + "githubUsername": "anonrig", + "url": "https://github.com/anonrig" + } + ], + "main": "", + "types": "index.d.ts", + "typesVersions": { + "<=5.6": { + "*": [ + "ts5.6/*" + ] + }, + "<=5.7": { + "*": [ + "ts5.7/*" + ] + } + }, + "repository": { + "type": "git", + "url": "https://github.com/DefinitelyTyped/DefinitelyTyped.git", + "directory": "types/node" + }, + "scripts": {}, + "dependencies": { + "undici-types": "~7.19.0" + }, + "peerDependencies": {}, + "typesPublisherContentHash": "753bd9272f1c86686cc2d1bb435a7f033157f700201f64f0319742347e1ca060", + "typeScriptVersion": "5.3" +} \ No newline at end of file diff --git a/server/api/node_modules/@types/node/path.d.ts b/server/api/node_modules/@types/node/path.d.ts new file mode 100644 index 0000000..ae8fd97 --- /dev/null +++ b/server/api/node_modules/@types/node/path.d.ts @@ -0,0 +1,178 @@ +declare module "node:path" { + namespace path { + /** + * A parsed path object generated by path.parse() or consumed by path.format(). + */ + interface ParsedPath { + /** + * The root of the path such as '/' or 'c:\' + */ + root: string; + /** + * The full directory path such as '/home/user/dir' or 'c:\path\dir' + */ + dir: string; + /** + * The file name including extension (if any) such as 'index.html' + */ + base: string; + /** + * The file extension (if any) such as '.html' + */ + ext: string; + /** + * The file name without extension (if any) such as 'index' + */ + name: string; + } + interface FormatInputPathObject { + /** + * The root of the path such as '/' or 'c:\' + */ + root?: string | undefined; + /** + * The full directory path such as '/home/user/dir' or 'c:\path\dir' + */ + dir?: string | undefined; + /** + * The file name including extension (if any) such as 'index.html' + */ + base?: string | undefined; + /** + * The file extension (if any) such as '.html' + */ + ext?: string | undefined; + /** + * The file name without extension (if any) such as 'index' + */ + name?: string | undefined; + } + /** + * Normalize a string path, reducing '..' and '.' parts. + * When multiple slashes are found, they're replaced by a single one; when the path contains a trailing slash, it is preserved. On Windows backslashes are used. If the path is a zero-length string, '.' is returned, representing the current working directory. + * + * @param path string path to normalize. + * @throws {TypeError} if `path` is not a string. + */ + function normalize(path: string): string; + /** + * Join all arguments together and normalize the resulting path. + * + * @param paths paths to join. + * @throws {TypeError} if any of the path segments is not a string. + */ + function join(...paths: string[]): string; + /** + * The right-most parameter is considered {to}. Other parameters are considered an array of {from}. + * + * Starting from leftmost {from} parameter, resolves {to} to an absolute path. + * + * If {to} isn't already absolute, {from} arguments are prepended in right to left order, + * until an absolute path is found. If after using all {from} paths still no absolute path is found, + * the current working directory is used as well. The resulting path is normalized, + * and trailing slashes are removed unless the path gets resolved to the root directory. + * + * @param paths A sequence of paths or path segments. + * @throws {TypeError} if any of the arguments is not a string. + */ + function resolve(...paths: string[]): string; + /** + * The `path.matchesGlob()` method determines if `path` matches the `pattern`. + * @param path The path to glob-match against. + * @param pattern The glob to check the path against. + * @returns Whether or not the `path` matched the `pattern`. + * @throws {TypeError} if `path` or `pattern` are not strings. + * @since v22.5.0 + */ + function matchesGlob(path: string, pattern: string): boolean; + /** + * Determines whether {path} is an absolute path. An absolute path will always resolve to the same location, regardless of the working directory. + * + * If the given {path} is a zero-length string, `false` will be returned. + * + * @param path path to test. + * @throws {TypeError} if `path` is not a string. + */ + function isAbsolute(path: string): boolean; + /** + * Solve the relative path from {from} to {to} based on the current working directory. + * At times we have two absolute paths, and we need to derive the relative path from one to the other. This is actually the reverse transform of path.resolve. + * + * @throws {TypeError} if either `from` or `to` is not a string. + */ + function relative(from: string, to: string): string; + /** + * Return the directory name of a path. Similar to the Unix dirname command. + * + * @param path the path to evaluate. + * @throws {TypeError} if `path` is not a string. + */ + function dirname(path: string): string; + /** + * Return the last portion of a path. Similar to the Unix basename command. + * Often used to extract the file name from a fully qualified path. + * + * @param path the path to evaluate. + * @param suffix optionally, an extension to remove from the result. + * @throws {TypeError} if `path` is not a string or if `ext` is given and is not a string. + */ + function basename(path: string, suffix?: string): string; + /** + * Return the extension of the path, from the last '.' to end of string in the last portion of the path. + * If there is no '.' in the last portion of the path or the first character of it is '.', then it returns an empty string. + * + * @param path the path to evaluate. + * @throws {TypeError} if `path` is not a string. + */ + function extname(path: string): string; + /** + * The platform-specific file separator. '\\' or '/'. + */ + const sep: "\\" | "/"; + /** + * The platform-specific file delimiter. ';' or ':'. + */ + const delimiter: ";" | ":"; + /** + * Returns an object from a path string - the opposite of format(). + * + * @param path path to evaluate. + * @throws {TypeError} if `path` is not a string. + */ + function parse(path: string): ParsedPath; + /** + * Returns a path string from an object - the opposite of parse(). + * + * @param pathObject path to evaluate. + */ + function format(pathObject: FormatInputPathObject): string; + /** + * On Windows systems only, returns an equivalent namespace-prefixed path for the given path. + * If path is not a string, path will be returned without modifications. + * This method is meaningful only on Windows system. + * On POSIX systems, the method is non-operational and always returns path without modifications. + */ + function toNamespacedPath(path: string): string; + } + namespace path { + export { + /** + * The `path.posix` property provides access to POSIX specific implementations of the `path` methods. + * + * The API is accessible via `require('node:path').posix` or `require('node:path/posix')`. + */ + path as posix, + /** + * The `path.win32` property provides access to Windows-specific implementations of the `path` methods. + * + * The API is accessible via `require('node:path').win32` or `require('node:path/win32')`. + */ + path as win32, + }; + } + export = path; +} +declare module "path" { + import path = require("node:path"); + export = path; +} diff --git a/server/api/node_modules/@types/node/path/posix.d.ts b/server/api/node_modules/@types/node/path/posix.d.ts new file mode 100644 index 0000000..d60f629 --- /dev/null +++ b/server/api/node_modules/@types/node/path/posix.d.ts @@ -0,0 +1,8 @@ +declare module "node:path/posix" { + import path = require("node:path"); + export = path.posix; +} +declare module "path/posix" { + import path = require("path"); + export = path.posix; +} diff --git a/server/api/node_modules/@types/node/path/win32.d.ts b/server/api/node_modules/@types/node/path/win32.d.ts new file mode 100644 index 0000000..e6aa9fa --- /dev/null +++ b/server/api/node_modules/@types/node/path/win32.d.ts @@ -0,0 +1,8 @@ +declare module "node:path/win32" { + import path = require("node:path"); + export = path.win32; +} +declare module "path/win32" { + import path = require("path"); + export = path.win32; +} diff --git a/server/api/node_modules/@types/node/perf_hooks.d.ts b/server/api/node_modules/@types/node/perf_hooks.d.ts new file mode 100644 index 0000000..46e725c --- /dev/null +++ b/server/api/node_modules/@types/node/perf_hooks.d.ts @@ -0,0 +1,612 @@ +declare module "node:perf_hooks" { + import { InternalEventTargetEventProperties } from "node:events"; + // #region web types + type EntryType = + | "dns" // Node.js only + | "function" // Node.js only + | "gc" // Node.js only + | "http2" // Node.js only + | "http" // Node.js only + | "mark" // available on the Web + | "measure" // available on the Web + | "net" // Node.js only + | "node" // Node.js only + | "resource"; // available on the Web + interface ConnectionTimingInfo { + domainLookupStartTime: number; + domainLookupEndTime: number; + connectionStartTime: number; + connectionEndTime: number; + secureConnectionStartTime: number; + ALPNNegotiatedProtocol: string; + } + interface FetchTimingInfo { + startTime: number; + redirectStartTime: number; + redirectEndTime: number; + postRedirectStartTime: number; + finalServiceWorkerStartTime: number; + finalNetworkRequestStartTime: number; + finalNetworkResponseStartTime: number; + endTime: number; + finalConnectionTimingInfo: ConnectionTimingInfo | null; + encodedBodySize: number; + decodedBodySize: number; + } + type PerformanceEntryList = PerformanceEntry[]; + interface PerformanceMarkOptions { + detail?: any; + startTime?: number; + } + interface PerformanceMeasureOptions { + detail?: any; + duration?: number; + end?: string | number; + start?: string | number; + } + interface PerformanceObserverCallback { + (entries: PerformanceObserverEntryList, observer: PerformanceObserver): void; + } + interface PerformanceObserverInit { + buffered?: boolean; + entryTypes?: EntryType[]; + type?: EntryType; + } + // TODO: remove in next major + /** @deprecated Use `TimerifyOptions` instead. */ + interface PerformanceTimerifyOptions extends TimerifyOptions {} + interface PerformanceEventMap { + "resourcetimingbufferfull": Event; + } + interface Performance extends EventTarget, InternalEventTargetEventProperties { + readonly nodeTiming: PerformanceNodeTiming; + readonly timeOrigin: number; + clearMarks(markName?: string): void; + clearMeasures(measureName?: string): void; + clearResourceTimings(resourceTimingName?: string): void; + getEntries(): PerformanceEntryList; + getEntriesByName(name: string, type?: EntryType): PerformanceEntryList; + getEntriesByType(type: EntryType): PerformanceEntryList; + mark(markName: string, markOptions?: PerformanceMarkOptions): PerformanceMark; + markResourceTiming( + timingInfo: FetchTimingInfo, + requestedUrl: string, + initiatorType: string, + global: unknown, + cacheMode: string, + bodyInfo: unknown, + responseStatus: number, + deliveryType?: string, + ): PerformanceResourceTiming; + measure(measureName: string, startMark?: string, endMark?: string): PerformanceMeasure; + measure(measureName: string, options: PerformanceMeasureOptions, endMark?: string): PerformanceMeasure; + now(): number; + setResourceTimingBufferSize(maxSize: number): void; + toJSON(): any; + addEventListener( + type: K, + listener: (ev: PerformanceEventMap[K]) => void, + options?: AddEventListenerOptions | boolean, + ): void; + addEventListener( + type: string, + listener: EventListener | EventListenerObject, + options?: AddEventListenerOptions | boolean, + ): void; + removeEventListener( + type: K, + listener: (ev: PerformanceEventMap[K]) => void, + options?: EventListenerOptions | boolean, + ): void; + removeEventListener( + type: string, + listener: EventListener | EventListenerObject, + options?: EventListenerOptions | boolean, + ): void; + /** + * This is an alias of `perf_hooks.eventLoopUtilization()`. + * + * _This property is an extension by Node.js. It is not available in Web browsers._ + * @since v14.10.0, v12.19.0 + * @param utilization1 The result of a previous call to + * `eventLoopUtilization()`. + * @param utilization2 The result of a previous call to + * `eventLoopUtilization()` prior to `utilization1`. + */ + eventLoopUtilization( + utilization1?: EventLoopUtilization, + utilization2?: EventLoopUtilization, + ): EventLoopUtilization; + /** + * This is an alias of `perf_hooks.timerify()`. + * + * _This property is an extension by Node.js. It is not available in Web browsers._ + * @since v8.5.0 + */ + timerify any>(fn: T, options?: TimerifyOptions): T; + } + var Performance: { + prototype: Performance; + new(): Performance; + }; + interface PerformanceEntry { + readonly duration: number; + readonly entryType: EntryType; + readonly name: string; + readonly startTime: number; + toJSON(): any; + } + var PerformanceEntry: { + prototype: PerformanceEntry; + new(): PerformanceEntry; + }; + interface PerformanceMark extends PerformanceEntry { + readonly detail: any; + readonly entryType: "mark"; + } + var PerformanceMark: { + prototype: PerformanceMark; + new(markName: string, markOptions?: PerformanceMarkOptions): PerformanceMark; + }; + interface PerformanceMeasure extends PerformanceEntry { + readonly detail: any; + readonly entryType: "measure"; + } + var PerformanceMeasure: { + prototype: PerformanceMeasure; + new(): PerformanceMeasure; + }; + interface PerformanceObserver { + disconnect(): void; + observe(options: PerformanceObserverInit): void; + takeRecords(): PerformanceEntryList; + } + var PerformanceObserver: { + prototype: PerformanceObserver; + new(callback: PerformanceObserverCallback): PerformanceObserver; + readonly supportedEntryTypes: readonly EntryType[]; + }; + interface PerformanceObserverEntryList { + getEntries(): PerformanceEntryList; + getEntriesByName(name: string, type?: EntryType): PerformanceEntryList; + getEntriesByType(type: EntryType): PerformanceEntryList; + } + var PerformanceObserverEntryList: { + prototype: PerformanceObserverEntryList; + new(): PerformanceObserverEntryList; + }; + interface PerformanceResourceTiming extends PerformanceEntry { + readonly connectEnd: number; + readonly connectStart: number; + readonly decodedBodySize: number; + readonly domainLookupEnd: number; + readonly domainLookupStart: number; + readonly encodedBodySize: number; + readonly entryType: "resource"; + readonly fetchStart: number; + readonly initiatorType: string; + readonly nextHopProtocol: string; + readonly redirectEnd: number; + readonly redirectStart: number; + readonly requestStart: number; + readonly responseEnd: number; + readonly responseStart: number; + readonly responseStatus: number; + readonly secureConnectionStart: number; + readonly transferSize: number; + readonly workerStart: number; + toJSON(): any; + } + var PerformanceResourceTiming: { + prototype: PerformanceResourceTiming; + new(): PerformanceResourceTiming; + }; + var performance: Performance; + // #endregion + /** + * _This class is an extension by Node.js. It is not available in Web browsers._ + * + * Provides detailed Node.js timing data. + * + * The constructor of this class is not exposed to users directly. + * @since v19.0.0 + */ + class PerformanceNodeEntry extends PerformanceEntry { + /** + * Additional detail specific to the `entryType`. + * @since v16.0.0 + */ + readonly detail: any; + readonly entryType: "dns" | "function" | "gc" | "http2" | "http" | "net" | "node"; + } + interface UVMetrics { + /** + * Number of event loop iterations. + */ + readonly loopCount: number; + /** + * Number of events that have been processed by the event handler. + */ + readonly events: number; + /** + * Number of events that were waiting to be processed when the event provider was called. + */ + readonly eventsWaiting: number; + } + /** + * _This property is an extension by Node.js. It is not available in Web browsers._ + * + * Provides timing details for Node.js itself. The constructor of this class + * is not exposed to users. + * @since v8.5.0 + */ + interface PerformanceNodeTiming extends PerformanceEntry { + /** + * The high resolution millisecond timestamp at which the Node.js process + * completed bootstrapping. If bootstrapping has not yet finished, the property + * has the value of -1. + * @since v8.5.0 + */ + readonly bootstrapComplete: number; + readonly entryType: "node"; + /** + * The high resolution millisecond timestamp at which the Node.js environment was + * initialized. + * @since v8.5.0 + */ + readonly environment: number; + /** + * The high resolution millisecond timestamp of the amount of time the event loop + * has been idle within the event loop's event provider (e.g. `epoll_wait`). This + * does not take CPU usage into consideration. If the event loop has not yet + * started (e.g., in the first tick of the main script), the property has the + * value of 0. + * @since v14.10.0, v12.19.0 + */ + readonly idleTime: number; + /** + * The high resolution millisecond timestamp at which the Node.js event loop + * exited. If the event loop has not yet exited, the property has the value of -1\. + * It can only have a value of not -1 in a handler of the `'exit'` event. + * @since v8.5.0 + */ + readonly loopExit: number; + /** + * The high resolution millisecond timestamp at which the Node.js event loop + * started. If the event loop has not yet started (e.g., in the first tick of the + * main script), the property has the value of -1. + * @since v8.5.0 + */ + readonly loopStart: number; + /** + * The high resolution millisecond timestamp at which the Node.js process was initialized. + * @since v8.5.0 + */ + readonly nodeStart: number; + /** + * This is a wrapper to the `uv_metrics_info` function. + * It returns the current set of event loop metrics. + * + * It is recommended to use this property inside a function whose execution was + * scheduled using `setImmediate` to avoid collecting metrics before finishing all + * operations scheduled during the current loop iteration. + * @since v22.8.0, v20.18.0 + */ + readonly uvMetricsInfo: UVMetrics; + /** + * The high resolution millisecond timestamp at which the V8 platform was + * initialized. + * @since v8.5.0 + */ + readonly v8Start: number; + } + namespace constants { + const NODE_PERFORMANCE_GC_MAJOR: number; + const NODE_PERFORMANCE_GC_MINOR: number; + const NODE_PERFORMANCE_GC_INCREMENTAL: number; + const NODE_PERFORMANCE_GC_WEAKCB: number; + const NODE_PERFORMANCE_GC_FLAGS_NO: number; + const NODE_PERFORMANCE_GC_FLAGS_CONSTRUCT_RETAINED: number; + const NODE_PERFORMANCE_GC_FLAGS_FORCED: number; + const NODE_PERFORMANCE_GC_FLAGS_SYNCHRONOUS_PHANTOM_PROCESSING: number; + const NODE_PERFORMANCE_GC_FLAGS_ALL_AVAILABLE_GARBAGE: number; + const NODE_PERFORMANCE_GC_FLAGS_ALL_EXTERNAL_MEMORY: number; + const NODE_PERFORMANCE_GC_FLAGS_SCHEDULE_IDLE: number; + } + interface EventLoopMonitorOptions { + /** + * The sampling rate in milliseconds. + * Must be greater than zero. + * @default 10 + */ + resolution?: number | undefined; + } + interface Histogram { + /** + * The number of samples recorded by the histogram. + * @since v17.4.0, v16.14.0 + */ + readonly count: number; + /** + * The number of samples recorded by the histogram. + * v17.4.0, v16.14.0 + */ + readonly countBigInt: bigint; + /** + * The number of times the event loop delay exceeded the maximum 1 hour event + * loop delay threshold. + * @since v11.10.0 + */ + readonly exceeds: number; + /** + * The number of times the event loop delay exceeded the maximum 1 hour event loop delay threshold. + * @since v17.4.0, v16.14.0 + */ + readonly exceedsBigInt: bigint; + /** + * The maximum recorded event loop delay. + * @since v11.10.0 + */ + readonly max: number; + /** + * The maximum recorded event loop delay. + * v17.4.0, v16.14.0 + */ + readonly maxBigInt: number; + /** + * The mean of the recorded event loop delays. + * @since v11.10.0 + */ + readonly mean: number; + /** + * The minimum recorded event loop delay. + * @since v11.10.0 + */ + readonly min: number; + /** + * The minimum recorded event loop delay. + * v17.4.0, v16.14.0 + */ + readonly minBigInt: bigint; + /** + * Returns the value at the given percentile. + * @since v11.10.0 + * @param percentile A percentile value in the range (0, 100]. + */ + percentile(percentile: number): number; + /** + * Returns the value at the given percentile. + * @since v17.4.0, v16.14.0 + * @param percentile A percentile value in the range (0, 100]. + */ + percentileBigInt(percentile: number): bigint; + /** + * Returns a `Map` object detailing the accumulated percentile distribution. + * @since v11.10.0 + */ + readonly percentiles: Map; + /** + * Returns a `Map` object detailing the accumulated percentile distribution. + * @since v17.4.0, v16.14.0 + */ + readonly percentilesBigInt: Map; + /** + * Resets the collected histogram data. + * @since v11.10.0 + */ + reset(): void; + /** + * The standard deviation of the recorded event loop delays. + * @since v11.10.0 + */ + readonly stddev: number; + } + interface IntervalHistogram extends Histogram { + /** + * Enables the update interval timer. Returns `true` if the timer was + * started, `false` if it was already started. + * @since v11.10.0 + */ + enable(): boolean; + /** + * Disables the update interval timer. Returns `true` if the timer was + * stopped, `false` if it was already stopped. + * @since v11.10.0 + */ + disable(): boolean; + /** + * Disables the update interval timer when the histogram is disposed. + * + * ```js + * const { monitorEventLoopDelay } = require('node:perf_hooks'); + * { + * using hist = monitorEventLoopDelay({ resolution: 20 }); + * hist.enable(); + * // The histogram will be disabled when the block is exited. + * } + * ``` + * @since v24.2.0 + */ + [Symbol.dispose](): void; + } + interface RecordableHistogram extends Histogram { + /** + * @since v15.9.0, v14.18.0 + * @param val The amount to record in the histogram. + */ + record(val: number | bigint): void; + /** + * Calculates the amount of time (in nanoseconds) that has passed since the + * previous call to `recordDelta()` and records that amount in the histogram. + * @since v15.9.0, v14.18.0 + */ + recordDelta(): void; + /** + * Adds the values from `other` to this histogram. + * @since v17.4.0, v16.14.0 + */ + add(other: RecordableHistogram): void; + } + interface EventLoopUtilization { + idle: number; + active: number; + utilization: number; + } + /** + * The `eventLoopUtilization()` function returns an object that contains the + * cumulative duration of time the event loop has been both idle and active as a + * high resolution milliseconds timer. The `utilization` value is the calculated + * Event Loop Utilization (ELU). + * + * If bootstrapping has not yet finished on the main thread the properties have + * the value of `0`. The ELU is immediately available on [Worker threads](https://nodejs.org/docs/latest-v25.x/api/worker_threads.html#worker-threads) since + * bootstrap happens within the event loop. + * + * Both `utilization1` and `utilization2` are optional parameters. + * + * If `utilization1` is passed, then the delta between the current call's `active` + * and `idle` times, as well as the corresponding `utilization` value are + * calculated and returned (similar to `process.hrtime()`). + * + * If `utilization1` and `utilization2` are both passed, then the delta is + * calculated between the two arguments. This is a convenience option because, + * unlike `process.hrtime()`, calculating the ELU is more complex than a + * single subtraction. + * + * ELU is similar to CPU utilization, except that it only measures event loop + * statistics and not CPU usage. It represents the percentage of time the event + * loop has spent outside the event loop's event provider (e.g. `epoll_wait`). + * No other CPU idle time is taken into consideration. The following is an example + * of how a mostly idle process will have a high ELU. + * + * ```js + * import { eventLoopUtilization } from 'node:perf_hooks'; + * import { spawnSync } from 'node:child_process'; + * + * setImmediate(() => { + * const elu = eventLoopUtilization(); + * spawnSync('sleep', ['5']); + * console.log(eventLoopUtilization(elu).utilization); + * }); + * ``` + * + * Although the CPU is mostly idle while running this script, the value of + * `utilization` is `1`. This is because the call to + * `child_process.spawnSync()` blocks the event loop from proceeding. + * + * Passing in a user-defined object instead of the result of a previous call to + * `eventLoopUtilization()` will lead to undefined behavior. The return values + * are not guaranteed to reflect any correct state of the event loop. + * @since v25.2.0 + * @param utilization1 The result of a previous call to + * `eventLoopUtilization()`. + * @param utilization2 The result of a previous call to + * `eventLoopUtilization()` prior to `utilization1`. + */ + function eventLoopUtilization( + utilization1?: EventLoopUtilization, + utilization2?: EventLoopUtilization, + ): EventLoopUtilization; + /** + * _This property is an extension by Node.js. It is not available in Web browsers._ + * + * Creates an `IntervalHistogram` object that samples and reports the event loop + * delay over time. The delays will be reported in nanoseconds. + * + * Using a timer to detect approximate event loop delay works because the + * execution of timers is tied specifically to the lifecycle of the libuv + * event loop. That is, a delay in the loop will cause a delay in the execution + * of the timer, and those delays are specifically what this API is intended to + * detect. + * + * ```js + * import { monitorEventLoopDelay } from 'node:perf_hooks'; + * const h = monitorEventLoopDelay({ resolution: 20 }); + * h.enable(); + * // Do something. + * h.disable(); + * console.log(h.min); + * console.log(h.max); + * console.log(h.mean); + * console.log(h.stddev); + * console.log(h.percentiles); + * console.log(h.percentile(50)); + * console.log(h.percentile(99)); + * ``` + * @since v11.10.0 + */ + function monitorEventLoopDelay(options?: EventLoopMonitorOptions): IntervalHistogram; + interface TimerifyOptions { + /** + * A histogram object created using + * `perf_hooks.createHistogram()` that will record runtime durations in + * nanoseconds. + */ + histogram?: RecordableHistogram | undefined; + } + /** + * _This property is an extension by Node.js. It is not available in Web browsers._ + * + * Wraps a function within a new function that measures the running time of the + * wrapped function. A `PerformanceObserver` must be subscribed to the `'function'` + * event type in order for the timing details to be accessed. + * + * ```js + * import { timerify, performance, PerformanceObserver } from 'node:perf_hooks'; + * + * function someFunction() { + * console.log('hello world'); + * } + * + * const wrapped = timerify(someFunction); + * + * const obs = new PerformanceObserver((list) => { + * console.log(list.getEntries()[0].duration); + * + * performance.clearMarks(); + * performance.clearMeasures(); + * obs.disconnect(); + * }); + * obs.observe({ entryTypes: ['function'] }); + * + * // A performance timeline entry will be created + * wrapped(); + * ``` + * + * If the wrapped function returns a promise, a finally handler will be attached + * to the promise and the duration will be reported once the finally handler is + * invoked. + * @since v25.2.0 + */ + function timerify any>(fn: T, options?: TimerifyOptions): T; + interface CreateHistogramOptions { + /** + * The minimum recordable value. Must be an integer value greater than 0. + * @default 1 + */ + lowest?: number | bigint | undefined; + /** + * The maximum recordable value. Must be an integer value greater than min. + * @default Number.MAX_SAFE_INTEGER + */ + highest?: number | bigint | undefined; + /** + * The number of accuracy digits. Must be a number between 1 and 5. + * @default 3 + */ + figures?: number | undefined; + } + /** + * Returns a `RecordableHistogram`. + * @since v15.9.0, v14.18.0 + */ + function createHistogram(options?: CreateHistogramOptions): RecordableHistogram; + // TODO: remove these in a future major + /** @deprecated Use the canonical `PerformanceMarkOptions` instead. */ + interface MarkOptions extends PerformanceMarkOptions {} + /** @deprecated Use the canonical `PerformanceMeasureOptions` instead. */ + interface MeasureOptions extends PerformanceMeasureOptions {} +} +declare module "perf_hooks" { + export * from "node:perf_hooks"; +} diff --git a/server/api/node_modules/@types/node/process.d.ts b/server/api/node_modules/@types/node/process.d.ts new file mode 100644 index 0000000..ea50c94 --- /dev/null +++ b/server/api/node_modules/@types/node/process.d.ts @@ -0,0 +1,2175 @@ +declare module "node:process" { + import { Control, MessageOptions, SendHandle } from "node:child_process"; + import { PathLike } from "node:fs"; + import * as tty from "node:tty"; + import { Worker } from "node:worker_threads"; + interface BuiltInModule { + "assert": typeof import("assert"); + "node:assert": typeof import("node:assert"); + "assert/strict": typeof import("assert/strict"); + "node:assert/strict": typeof import("node:assert/strict"); + "async_hooks": typeof import("async_hooks"); + "node:async_hooks": typeof import("node:async_hooks"); + "buffer": typeof import("buffer"); + "node:buffer": typeof import("node:buffer"); + "child_process": typeof import("child_process"); + "node:child_process": typeof import("node:child_process"); + "cluster": typeof import("cluster"); + "node:cluster": typeof import("node:cluster"); + "console": typeof import("console"); + "node:console": typeof import("node:console"); + "constants": typeof import("constants"); + "node:constants": typeof import("node:constants"); + "crypto": typeof import("crypto"); + "node:crypto": typeof import("node:crypto"); + "dgram": typeof import("dgram"); + "node:dgram": typeof import("node:dgram"); + "diagnostics_channel": typeof import("diagnostics_channel"); + "node:diagnostics_channel": typeof import("node:diagnostics_channel"); + "dns": typeof import("dns"); + "node:dns": typeof import("node:dns"); + "dns/promises": typeof import("dns/promises"); + "node:dns/promises": typeof import("node:dns/promises"); + "domain": typeof import("domain"); + "node:domain": typeof import("node:domain"); + "events": typeof import("events"); + "node:events": typeof import("node:events"); + "fs": typeof import("fs"); + "node:fs": typeof import("node:fs"); + "fs/promises": typeof import("fs/promises"); + "node:fs/promises": typeof import("node:fs/promises"); + "http": typeof import("http"); + "node:http": typeof import("node:http"); + "http2": typeof import("http2"); + "node:http2": typeof import("node:http2"); + "https": typeof import("https"); + "node:https": typeof import("node:https"); + "inspector": typeof import("inspector"); + "node:inspector": typeof import("node:inspector"); + "inspector/promises": typeof import("inspector/promises"); + "node:inspector/promises": typeof import("node:inspector/promises"); + "module": typeof import("module"); + "node:module": typeof import("node:module"); + "net": typeof import("net"); + "node:net": typeof import("node:net"); + "os": typeof import("os"); + "node:os": typeof import("node:os"); + "path": typeof import("path"); + "node:path": typeof import("node:path"); + "path/posix": typeof import("path/posix"); + "node:path/posix": typeof import("node:path/posix"); + "path/win32": typeof import("path/win32"); + "node:path/win32": typeof import("node:path/win32"); + "perf_hooks": typeof import("perf_hooks"); + "node:perf_hooks": typeof import("node:perf_hooks"); + "process": typeof import("process"); + "node:process": typeof import("node:process"); + "punycode": typeof import("punycode"); + "node:punycode": typeof import("node:punycode"); + "querystring": typeof import("querystring"); + "node:querystring": typeof import("node:querystring"); + "node:quic": typeof import("node:quic"); + "readline": typeof import("readline"); + "node:readline": typeof import("node:readline"); + "readline/promises": typeof import("readline/promises"); + "node:readline/promises": typeof import("node:readline/promises"); + "repl": typeof import("repl"); + "node:repl": typeof import("node:repl"); + "node:sea": typeof import("node:sea"); + "node:sqlite": typeof import("node:sqlite"); + "stream": typeof import("stream"); + "node:stream": typeof import("node:stream"); + "stream/consumers": typeof import("stream/consumers"); + "node:stream/consumers": typeof import("node:stream/consumers"); + "stream/promises": typeof import("stream/promises"); + "node:stream/promises": typeof import("node:stream/promises"); + "stream/web": typeof import("stream/web"); + "node:stream/web": typeof import("node:stream/web"); + "string_decoder": typeof import("string_decoder"); + "node:string_decoder": typeof import("node:string_decoder"); + "node:test": typeof import("node:test"); + "node:test/reporters": typeof import("node:test/reporters"); + "timers": typeof import("timers"); + "node:timers": typeof import("node:timers"); + "timers/promises": typeof import("timers/promises"); + "node:timers/promises": typeof import("node:timers/promises"); + "tls": typeof import("tls"); + "node:tls": typeof import("node:tls"); + "trace_events": typeof import("trace_events"); + "node:trace_events": typeof import("node:trace_events"); + "tty": typeof import("tty"); + "node:tty": typeof import("node:tty"); + "url": typeof import("url"); + "node:url": typeof import("node:url"); + "util": typeof import("util"); + "node:util": typeof import("node:util"); + "util/types": typeof import("util/types"); + "node:util/types": typeof import("node:util/types"); + "v8": typeof import("v8"); + "node:v8": typeof import("node:v8"); + "vm": typeof import("vm"); + "node:vm": typeof import("node:vm"); + "wasi": typeof import("wasi"); + "node:wasi": typeof import("node:wasi"); + "worker_threads": typeof import("worker_threads"); + "node:worker_threads": typeof import("node:worker_threads"); + "zlib": typeof import("zlib"); + "node:zlib": typeof import("node:zlib"); + } + type SignalsEventMap = { [S in NodeJS.Signals]: [signal: S] }; + interface ProcessEventMap extends SignalsEventMap { + "beforeExit": [code: number]; + "disconnect": []; + "exit": [code: number]; + "message": [ + message: object | boolean | number | string | null, + sendHandle: SendHandle | undefined, + ]; + "rejectionHandled": [promise: Promise]; + "uncaughtException": [error: Error, origin: NodeJS.UncaughtExceptionOrigin]; + "uncaughtExceptionMonitor": [error: Error, origin: NodeJS.UncaughtExceptionOrigin]; + "unhandledRejection": [reason: unknown, promise: Promise]; + "warning": [warning: Error]; + "worker": [worker: Worker]; + "workerMessage": [value: any, source: number]; + } + global { + var process: NodeJS.Process; + namespace process { + export { ProcessEventMap }; + } + namespace NodeJS { + // this namespace merge is here because these are specifically used + // as the type for process.stdin, process.stdout, and process.stderr. + // they can't live in tty.d.ts because we need to disambiguate the imported name. + interface ReadStream extends tty.ReadStream {} + interface WriteStream extends tty.WriteStream {} + interface MemoryUsageFn { + /** + * The `process.memoryUsage()` method iterate over each page to gather informations about memory + * usage which can be slow depending on the program memory allocations. + */ + (): MemoryUsage; + /** + * method returns an integer representing the Resident Set Size (RSS) in bytes. + */ + rss(): number; + } + interface MemoryUsage { + /** + * Resident Set Size, is the amount of space occupied in the main memory device (that is a subset of the total allocated memory) for the + * process, including all C++ and JavaScript objects and code. + */ + rss: number; + /** + * Refers to V8's memory usage. + */ + heapTotal: number; + /** + * Refers to V8's memory usage. + */ + heapUsed: number; + external: number; + /** + * Refers to memory allocated for `ArrayBuffer`s and `SharedArrayBuffer`s, including all Node.js Buffers. This is also included + * in the external value. When Node.js is used as an embedded library, this value may be `0` because allocations for `ArrayBuffer`s + * may not be tracked in that case. + */ + arrayBuffers: number; + } + interface CpuUsage { + user: number; + system: number; + } + interface ProcessRelease { + name: string; + sourceUrl?: string | undefined; + headersUrl?: string | undefined; + libUrl?: string | undefined; + lts?: string | undefined; + } + interface ProcessFeatures { + /** + * A boolean value that is `true` if the current Node.js build is caching builtin modules. + * @since v12.0.0 + */ + readonly cached_builtins: boolean; + /** + * A boolean value that is `true` if the current Node.js build is a debug build. + * @since v0.5.5 + */ + readonly debug: boolean; + /** + * A boolean value that is `true` if the current Node.js build includes the inspector. + * @since v11.10.0 + */ + readonly inspector: boolean; + /** + * A boolean value that is `true` if the current Node.js build includes support for IPv6. + * + * Since all Node.js builds have IPv6 support, this value is always `true`. + * @since v0.5.3 + * @deprecated This property is always true, and any checks based on it are redundant. + */ + readonly ipv6: boolean; + /** + * A boolean value that is `true` if the current Node.js build supports + * [loading ECMAScript modules using `require()`](https://nodejs.org/docs/latest-v25.x/api/modules.md#loading-ecmascript-modules-using-require). + * @since v22.10.0 + */ + readonly require_module: boolean; + /** + * A boolean value that is `true` if the current Node.js build includes support for TLS. + * @since v0.5.3 + */ + readonly tls: boolean; + /** + * A boolean value that is `true` if the current Node.js build includes support for ALPN in TLS. + * + * In Node.js 11.0.0 and later versions, the OpenSSL dependencies feature unconditional ALPN support. + * This value is therefore identical to that of `process.features.tls`. + * @since v4.8.0 + * @deprecated Use `process.features.tls` instead. + */ + readonly tls_alpn: boolean; + /** + * A boolean value that is `true` if the current Node.js build includes support for OCSP in TLS. + * + * In Node.js 11.0.0 and later versions, the OpenSSL dependencies feature unconditional OCSP support. + * This value is therefore identical to that of `process.features.tls`. + * @since v0.11.13 + * @deprecated Use `process.features.tls` instead. + */ + readonly tls_ocsp: boolean; + /** + * A boolean value that is `true` if the current Node.js build includes support for SNI in TLS. + * + * In Node.js 11.0.0 and later versions, the OpenSSL dependencies feature unconditional SNI support. + * This value is therefore identical to that of `process.features.tls`. + * @since v0.5.3 + * @deprecated Use `process.features.tls` instead. + */ + readonly tls_sni: boolean; + /** + * A value that is `"strip"` by default, + * `"transform"` if Node.js is run with `--experimental-transform-types`, and `false` if + * Node.js is run with `--no-strip-types`. + * @since v22.10.0 + */ + readonly typescript: "strip" | "transform" | false; + /** + * A boolean value that is `true` if the current Node.js build includes support for libuv. + * + * Since it's not possible to build Node.js without libuv, this value is always `true`. + * @since v0.5.3 + * @deprecated This property is always true, and any checks based on it are redundant. + */ + readonly uv: boolean; + } + interface ProcessVersions extends Dict { + http_parser: string; + node: string; + v8: string; + ares: string; + uv: string; + zlib: string; + modules: string; + openssl: string; + } + type Platform = + | "aix" + | "android" + | "darwin" + | "freebsd" + | "haiku" + | "linux" + | "openbsd" + | "sunos" + | "win32" + | "cygwin" + | "netbsd"; + type Architecture = + | "arm" + | "arm64" + | "ia32" + | "loong64" + | "mips" + | "mipsel" + | "ppc64" + | "riscv64" + | "s390x" + | "x64"; + type Signals = + | "SIGABRT" + | "SIGALRM" + | "SIGBUS" + | "SIGCHLD" + | "SIGCONT" + | "SIGFPE" + | "SIGHUP" + | "SIGILL" + | "SIGINT" + | "SIGIO" + | "SIGIOT" + | "SIGKILL" + | "SIGPIPE" + | "SIGPOLL" + | "SIGPROF" + | "SIGPWR" + | "SIGQUIT" + | "SIGSEGV" + | "SIGSTKFLT" + | "SIGSTOP" + | "SIGSYS" + | "SIGTERM" + | "SIGTRAP" + | "SIGTSTP" + | "SIGTTIN" + | "SIGTTOU" + | "SIGUNUSED" + | "SIGURG" + | "SIGUSR1" + | "SIGUSR2" + | "SIGVTALRM" + | "SIGWINCH" + | "SIGXCPU" + | "SIGXFSZ" + | "SIGBREAK" + | "SIGLOST" + | "SIGINFO"; + type UncaughtExceptionOrigin = "uncaughtException" | "unhandledRejection"; + /** + * @deprecated Global listener types will be removed in a future version. + * Callbacks passed directly to `process`'s EventEmitter methods + * have their parameter types inferred automatically. + * + * `process` event types are also available via `ProcessEventMap`: + * + * ```ts + * import type { ProcessEventMap } from 'node:process'; + * const listener = (...args: ProcessEventMap['beforeExit']) => { ... }; + * ``` + */ + type BeforeExitListener = (...args: ProcessEventMap["beforeExit"]) => void; + /** + * @deprecated Global listener types will be removed in a future version. + * Callbacks passed directly to `process`'s EventEmitter methods + * have their parameter types inferred automatically. + * + * `process` event types are also available via `ProcessEventMap`: + * + * ```ts + * import type { ProcessEventMap } from 'node:process'; + * const listener = (...args: ProcessEventMap['disconnect']) => { ... }; + * ``` + */ + type DisconnectListener = (...args: ProcessEventMap["disconnect"]) => void; + /** + * @deprecated Global listener types will be removed in a future version. + * Callbacks passed directly to `process`'s EventEmitter methods + * have their parameter types inferred automatically. + * + * `process` event types are also available via `ProcessEventMap`: + * + * ```ts + * import type { ProcessEventMap } from 'node:process'; + * const listener = (...args: ProcessEventMap['exit']) => { ... }; + * ``` + */ + type ExitListener = (...args: ProcessEventMap["exit"]) => void; + /** + * @deprecated Global listener types will be removed in a future version. + * Callbacks passed directly to `process`'s EventEmitter methods + * have their parameter types inferred automatically. + * + * `process` event types are also available via `ProcessEventMap`: + * + * ```ts + * import type { ProcessEventMap } from 'node:process'; + * const listener = (...args: ProcessEventMap['message']) => { ... }; + * ``` + */ + type MessageListener = (...args: ProcessEventMap["message"]) => void; + /** + * @deprecated Global listener types will be removed in a future version. + * Callbacks passed directly to `process`'s EventEmitter methods + * have their parameter types inferred automatically. + * + * `process` event types are also available via `ProcessEventMap`: + * + * ```ts + * import type { ProcessEventMap } from 'node:process'; + * const listener = (...args: ProcessEventMap['rejectionHandled']) => { ... }; + * ``` + */ + type RejectionHandledListener = (...args: ProcessEventMap["rejectionHandled"]) => void; + /** + * @deprecated Global listener types will be removed in a future version. + * Callbacks passed directly to `process`'s EventEmitter methods + * have their parameter types inferred automatically. + */ + type SignalsListener = (signal: Signals) => void; + /** + * @deprecated Global listener types will be removed in a future version. + * Callbacks passed directly to `process`'s EventEmitter methods + * have their parameter types inferred automatically. + * + * `process` event types are also available via `ProcessEventMap`: + * + * ```ts + * import type { ProcessEventMap } from 'node:process'; + * const listener = (...args: ProcessEventMap['uncaughtException']) => { ... }; + * ``` + */ + type UncaughtExceptionListener = (...args: ProcessEventMap["uncaughtException"]) => void; + /** + * @deprecated Global listener types will be removed in a future version. + * Callbacks passed directly to `process`'s EventEmitter methods + * have their parameter types inferred automatically. + * + * `process` event types are also available via `ProcessEventMap`: + * + * ```ts + * import type { ProcessEventMap } from 'node:process'; + * const listener = (...args: ProcessEventMap['unhandledRejection']) => { ... }; + * ``` + */ + type UnhandledRejectionListener = (...args: ProcessEventMap["unhandledRejection"]) => void; + /** + * @deprecated Global listener types will be removed in a future version. + * Callbacks passed directly to `process`'s EventEmitter methods + * have their parameter types inferred automatically. + * + * `process` event types are also available via `ProcessEventMap`: + * + * ```ts + * import type { ProcessEventMap } from 'node:process'; + * const listener = (...args: ProcessEventMap['warning']) => { ... }; + * ``` + */ + type WarningListener = (...args: ProcessEventMap["warning"]) => void; + /** + * @deprecated Global listener types will be removed in a future version. + * Callbacks passed directly to `process`'s EventEmitter methods + * have their parameter types inferred automatically. + * + * `process` event types are also available via `ProcessEventMap`: + * + * ```ts + * import type { ProcessEventMap } from 'node:process'; + * const listener = (...args: ProcessEventMap['worker']) => { ... }; + * ``` + */ + type WorkerListener = (...args: ProcessEventMap["worker"]) => void; + interface Socket extends ReadWriteStream { + isTTY?: true | undefined; + } + // Alias for compatibility + interface ProcessEnv extends Dict {} + interface HRTime { + /** + * This is the legacy version of {@link process.hrtime.bigint()} + * before bigint was introduced in JavaScript. + * + * The `process.hrtime()` method returns the current high-resolution real time in a `[seconds, nanoseconds]` tuple `Array`, + * where `nanoseconds` is the remaining part of the real time that can't be represented in second precision. + * + * `time` is an optional parameter that must be the result of a previous `process.hrtime()` call to diff with the current time. + * If the parameter passed in is not a tuple `Array`, a TypeError will be thrown. + * Passing in a user-defined array instead of the result of a previous call to `process.hrtime()` will lead to undefined behavior. + * + * These times are relative to an arbitrary time in the past, + * and not related to the time of day and therefore not subject to clock drift. + * The primary use is for measuring performance between intervals: + * ```js + * const { hrtime } = require('node:process'); + * const NS_PER_SEC = 1e9; + * const time = hrtime(); + * // [ 1800216, 25 ] + * + * setTimeout(() => { + * const diff = hrtime(time); + * // [ 1, 552 ] + * + * console.log(`Benchmark took ${diff[0] * NS_PER_SEC + diff[1]} nanoseconds`); + * // Benchmark took 1000000552 nanoseconds + * }, 1000); + * ``` + * @since 0.7.6 + * @legacy Use {@link process.hrtime.bigint()} instead. + * @param time The result of a previous call to `process.hrtime()` + */ + (time?: [number, number]): [number, number]; + /** + * The `bigint` version of the {@link process.hrtime()} method returning the current high-resolution real time in nanoseconds as a `bigint`. + * + * Unlike {@link process.hrtime()}, it does not support an additional time argument since the difference can just be computed directly by subtraction of the two `bigint`s. + * ```js + * import { hrtime } from 'node:process'; + * + * const start = hrtime.bigint(); + * // 191051479007711n + * + * setTimeout(() => { + * const end = hrtime.bigint(); + * // 191052633396993n + * + * console.log(`Benchmark took ${end - start} nanoseconds`); + * // Benchmark took 1154389282 nanoseconds + * }, 1000); + * ``` + * @since v10.7.0 + */ + bigint(): bigint; + } + interface ProcessPermission { + /** + * Verifies that the process is able to access the given scope and reference. + * If no reference is provided, a global scope is assumed, for instance, `process.permission.has('fs.read')` + * will check if the process has ALL file system read permissions. + * + * The reference has a meaning based on the provided scope. For example, the reference when the scope is File System means files and folders. + * + * The available scopes are: + * + * * `fs` - All File System + * * `fs.read` - File System read operations + * * `fs.write` - File System write operations + * * `child` - Child process spawning operations + * * `worker` - Worker thread spawning operation + * + * ```js + * // Check if the process has permission to read the README file + * process.permission.has('fs.read', './README.md'); + * // Check if the process has read permission operations + * process.permission.has('fs.read'); + * ``` + * @since v20.0.0 + */ + has(scope: string, reference?: string): boolean; + } + interface ProcessReport { + /** + * Write reports in a compact format, single-line JSON, more easily consumable by log processing systems + * than the default multi-line format designed for human consumption. + * @since v13.12.0, v12.17.0 + */ + compact: boolean; + /** + * Directory where the report is written. + * The default value is the empty string, indicating that reports are written to the current + * working directory of the Node.js process. + */ + directory: string; + /** + * Filename where the report is written. If set to the empty string, the output filename will be comprised + * of a timestamp, PID, and sequence number. The default value is the empty string. + */ + filename: string; + /** + * Returns a JavaScript Object representation of a diagnostic report for the running process. + * The report's JavaScript stack trace is taken from `err`, if present. + */ + getReport(err?: Error): object; + /** + * If true, a diagnostic report is generated on fatal errors, + * such as out of memory errors or failed C++ assertions. + * @default false + */ + reportOnFatalError: boolean; + /** + * If true, a diagnostic report is generated when the process + * receives the signal specified by process.report.signal. + * @default false + */ + reportOnSignal: boolean; + /** + * If true, a diagnostic report is generated on uncaught exception. + * @default false + */ + reportOnUncaughtException: boolean; + /** + * If true, a diagnostic report is generated without the environment variables. + * @default false + */ + excludeEnv: boolean; + /** + * The signal used to trigger the creation of a diagnostic report. + * @default 'SIGUSR2' + */ + signal: Signals; + /** + * Writes a diagnostic report to a file. If filename is not provided, the default filename + * includes the date, time, PID, and a sequence number. + * The report's JavaScript stack trace is taken from `err`, if present. + * + * If the value of filename is set to `'stdout'` or `'stderr'`, the report is written + * to the stdout or stderr of the process respectively. + * @param fileName Name of the file where the report is written. + * This should be a relative path, that will be appended to the directory specified in + * `process.report.directory`, or the current working directory of the Node.js process, + * if unspecified. + * @param err A custom error used for reporting the JavaScript stack. + * @return Filename of the generated report. + */ + writeReport(fileName?: string, err?: Error): string; + writeReport(err?: Error): string; + } + interface ResourceUsage { + fsRead: number; + fsWrite: number; + involuntaryContextSwitches: number; + ipcReceived: number; + ipcSent: number; + majorPageFault: number; + maxRSS: number; + minorPageFault: number; + sharedMemorySize: number; + signalsCount: number; + swappedOut: number; + systemCPUTime: number; + unsharedDataSize: number; + unsharedStackSize: number; + userCPUTime: number; + voluntaryContextSwitches: number; + } + interface EmitWarningOptions { + /** + * When `warning` is a `string`, `type` is the name to use for the _type_ of warning being emitted. + * + * @default 'Warning' + */ + type?: string | undefined; + /** + * A unique identifier for the warning instance being emitted. + */ + code?: string | undefined; + /** + * When `warning` is a `string`, `ctor` is an optional function used to limit the generated stack trace. + * + * @default process.emitWarning + */ + ctor?: Function | undefined; + /** + * Additional text to include with the error. + */ + detail?: string | undefined; + } + interface ProcessConfig { + readonly target_defaults: { + readonly cflags: any[]; + readonly default_configuration: string; + readonly defines: string[]; + readonly include_dirs: string[]; + readonly libraries: string[]; + }; + readonly variables: { + readonly clang: number; + readonly host_arch: string; + readonly node_install_npm: boolean; + readonly node_install_waf: boolean; + readonly node_prefix: string; + readonly node_shared_openssl: boolean; + readonly node_shared_v8: boolean; + readonly node_shared_zlib: boolean; + readonly node_use_dtrace: boolean; + readonly node_use_etw: boolean; + readonly node_use_openssl: boolean; + readonly target_arch: string; + readonly v8_no_strict_aliasing: number; + readonly v8_use_snapshot: boolean; + readonly visibility: string; + }; + } + interface Process extends EventEmitter { + /** + * The `process.stdout` property returns a stream connected to`stdout` (fd `1`). It is a `net.Socket` (which is a `Duplex` stream) unless fd `1` refers to a file, in which case it is + * a `Writable` stream. + * + * For example, to copy `process.stdin` to `process.stdout`: + * + * ```js + * import { stdin, stdout } from 'node:process'; + * + * stdin.pipe(stdout); + * ``` + * + * `process.stdout` differs from other Node.js streams in important ways. See `note on process I/O` for more information. + */ + stdout: WriteStream & { + fd: 1; + }; + /** + * The `process.stderr` property returns a stream connected to`stderr` (fd `2`). It is a `net.Socket` (which is a `Duplex` stream) unless fd `2` refers to a file, in which case it is + * a `Writable` stream. + * + * `process.stderr` differs from other Node.js streams in important ways. See `note on process I/O` for more information. + */ + stderr: WriteStream & { + fd: 2; + }; + /** + * The `process.stdin` property returns a stream connected to`stdin` (fd `0`). It is a `net.Socket` (which is a `Duplex` stream) unless fd `0` refers to a file, in which case it is + * a `Readable` stream. + * + * For details of how to read from `stdin` see `readable.read()`. + * + * As a `Duplex` stream, `process.stdin` can also be used in "old" mode that + * is compatible with scripts written for Node.js prior to v0.10\. + * For more information see `Stream compatibility`. + * + * In "old" streams mode the `stdin` stream is paused by default, so one + * must call `process.stdin.resume()` to read from it. Note also that calling `process.stdin.resume()` itself would switch stream to "old" mode. + */ + stdin: ReadStream & { + fd: 0; + }; + /** + * The `process.argv` property returns an array containing the command-line + * arguments passed when the Node.js process was launched. The first element will + * be {@link execPath}. See `process.argv0` if access to the original value + * of `argv[0]` is needed. The second element will be the path to the JavaScript + * file being executed. If a [program entry point](https://nodejs.org/docs/latest-v25.x/api/cli.html#program-entry-point) was provided, the second element + * will be the absolute path to it. The remaining elements are additional command-line + * arguments. + * + * For example, assuming the following script for `process-args.js`: + * + * ```js + * import { argv } from 'node:process'; + * + * // print process.argv + * argv.forEach((val, index) => { + * console.log(`${index}: ${val}`); + * }); + * ``` + * + * Launching the Node.js process as: + * + * ```bash + * node process-args.js one two=three four + * ``` + * + * Would generate the output: + * + * ```text + * 0: /usr/local/bin/node + * 1: /Users/mjr/work/node/process-args.js + * 2: one + * 3: two=three + * 4: four + * ``` + * @since v0.1.27 + */ + argv: string[]; + /** + * The `process.argv0` property stores a read-only copy of the original value of`argv[0]` passed when Node.js starts. + * + * ```console + * $ bash -c 'exec -a customArgv0 ./node' + * > process.argv[0] + * '/Volumes/code/external/node/out/Release/node' + * > process.argv0 + * 'customArgv0' + * ``` + * @since v6.4.0 + */ + argv0: string; + /** + * The `process.execArgv` property returns the set of Node.js-specific command-line + * options passed when the Node.js process was launched. These options do not + * appear in the array returned by the {@link argv} property, and do not + * include the Node.js executable, the name of the script, or any options following + * the script name. These options are useful in order to spawn child processes with + * the same execution environment as the parent. + * + * ```bash + * node --icu-data-dir=./foo --require ./bar.js script.js --version + * ``` + * + * Results in `process.execArgv`: + * + * ```js + * ["--icu-data-dir=./foo", "--require", "./bar.js"] + * ``` + * + * And `process.argv`: + * + * ```js + * ['/usr/local/bin/node', 'script.js', '--version'] + * ``` + * + * Refer to `Worker constructor` for the detailed behavior of worker + * threads with this property. + * @since v0.7.7 + */ + execArgv: string[]; + /** + * The `process.execPath` property returns the absolute pathname of the executable + * that started the Node.js process. Symbolic links, if any, are resolved. + * + * ```js + * '/usr/local/bin/node' + * ``` + * @since v0.1.100 + */ + execPath: string; + /** + * The `process.abort()` method causes the Node.js process to exit immediately and + * generate a core file. + * + * This feature is not available in `Worker` threads. + * @since v0.7.0 + */ + abort(): never; + /** + * The `process.chdir()` method changes the current working directory of the + * Node.js process or throws an exception if doing so fails (for instance, if + * the specified `directory` does not exist). + * + * ```js + * import { chdir, cwd } from 'node:process'; + * + * console.log(`Starting directory: ${cwd()}`); + * try { + * chdir('/tmp'); + * console.log(`New directory: ${cwd()}`); + * } catch (err) { + * console.error(`chdir: ${err}`); + * } + * ``` + * + * This feature is not available in `Worker` threads. + * @since v0.1.17 + */ + chdir(directory: string): void; + /** + * The `process.cwd()` method returns the current working directory of the Node.js + * process. + * + * ```js + * import { cwd } from 'node:process'; + * + * console.log(`Current directory: ${cwd()}`); + * ``` + * @since v0.1.8 + */ + cwd(): string; + /** + * The port used by the Node.js debugger when enabled. + * + * ```js + * import process from 'node:process'; + * + * process.debugPort = 5858; + * ``` + * @since v0.7.2 + */ + debugPort: number; + /** + * The `process.dlopen()` method allows dynamically loading shared objects. It is primarily used by `require()` to load C++ Addons, and + * should not be used directly, except in special cases. In other words, `require()` should be preferred over `process.dlopen()` + * unless there are specific reasons such as custom dlopen flags or loading from ES modules. + * + * The `flags` argument is an integer that allows to specify dlopen behavior. See the `[os.constants.dlopen](https://nodejs.org/docs/latest-v25.x/api/os.html#dlopen-constants)` + * documentation for details. + * + * An important requirement when calling `process.dlopen()` is that the `module` instance must be passed. Functions exported by the C++ Addon + * are then accessible via `module.exports`. + * + * The example below shows how to load a C++ Addon, named `local.node`, that exports a `foo` function. All the symbols are loaded before the call returns, by passing the `RTLD_NOW` constant. + * In this example the constant is assumed to be available. + * + * ```js + * import { dlopen } from 'node:process'; + * import { constants } from 'node:os'; + * import { fileURLToPath } from 'node:url'; + * + * const module = { exports: {} }; + * dlopen(module, fileURLToPath(new URL('local.node', import.meta.url)), + * constants.dlopen.RTLD_NOW); + * module.exports.foo(); + * ``` + */ + dlopen(module: object, filename: string, flags?: number): void; + /** + * The `process.emitWarning()` method can be used to emit custom or application + * specific process warnings. These can be listened for by adding a handler to the `'warning'` event. + * + * ```js + * import { emitWarning } from 'node:process'; + * + * // Emit a warning using a string. + * emitWarning('Something happened!'); + * // Emits: (node: 56338) Warning: Something happened! + * ``` + * + * ```js + * import { emitWarning } from 'node:process'; + * + * // Emit a warning using a string and a type. + * emitWarning('Something Happened!', 'CustomWarning'); + * // Emits: (node:56338) CustomWarning: Something Happened! + * ``` + * + * ```js + * import { emitWarning } from 'node:process'; + * + * emitWarning('Something happened!', 'CustomWarning', 'WARN001'); + * // Emits: (node:56338) [WARN001] CustomWarning: Something happened! + * ```js + * + * In each of the previous examples, an `Error` object is generated internally by `process.emitWarning()` and passed through to the `'warning'` handler. + * + * ```js + * import process from 'node:process'; + * + * process.on('warning', (warning) => { + * console.warn(warning.name); // 'Warning' + * console.warn(warning.message); // 'Something happened!' + * console.warn(warning.code); // 'MY_WARNING' + * console.warn(warning.stack); // Stack trace + * console.warn(warning.detail); // 'This is some additional information' + * }); + * ``` + * + * If `warning` is passed as an `Error` object, it will be passed through to the `'warning'` event handler + * unmodified (and the optional `type`, `code` and `ctor` arguments will be ignored): + * + * ```js + * import { emitWarning } from 'node:process'; + * + * // Emit a warning using an Error object. + * const myWarning = new Error('Something happened!'); + * // Use the Error name property to specify the type name + * myWarning.name = 'CustomWarning'; + * myWarning.code = 'WARN001'; + * + * emitWarning(myWarning); + * // Emits: (node:56338) [WARN001] CustomWarning: Something happened! + * ``` + * + * A `TypeError` is thrown if `warning` is anything other than a string or `Error` object. + * + * While process warnings use `Error` objects, the process warning mechanism is not a replacement for normal error handling mechanisms. + * + * The following additional handling is implemented if the warning `type` is `'DeprecationWarning'`: + * * If the `--throw-deprecation` command-line flag is used, the deprecation warning is thrown as an exception rather than being emitted as an event. + * * If the `--no-deprecation` command-line flag is used, the deprecation warning is suppressed. + * * If the `--trace-deprecation` command-line flag is used, the deprecation warning is printed to `stderr` along with the full stack trace. + * @since v8.0.0 + * @param warning The warning to emit. + */ + emitWarning(warning: string | Error, ctor?: Function): void; + emitWarning(warning: string | Error, type?: string, ctor?: Function): void; + emitWarning(warning: string | Error, type?: string, code?: string, ctor?: Function): void; + emitWarning(warning: string | Error, options?: EmitWarningOptions): void; + /** + * The `process.env` property returns an object containing the user environment. + * See [`environ(7)`](http://man7.org/linux/man-pages/man7/environ.7.html). + * + * An example of this object looks like: + * + * ```js + * { + * TERM: 'xterm-256color', + * SHELL: '/usr/local/bin/bash', + * USER: 'maciej', + * PATH: '~/.bin/:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin', + * PWD: '/Users/maciej', + * EDITOR: 'vim', + * SHLVL: '1', + * HOME: '/Users/maciej', + * LOGNAME: 'maciej', + * _: '/usr/local/bin/node' + * } + * ``` + * + * It is possible to modify this object, but such modifications will not be + * reflected outside the Node.js process, or (unless explicitly requested) + * to other `Worker` threads. + * In other words, the following example would not work: + * + * ```bash + * node -e 'process.env.foo = "bar"' && echo $foo + * ``` + * + * While the following will: + * + * ```js + * import { env } from 'node:process'; + * + * env.foo = 'bar'; + * console.log(env.foo); + * ``` + * + * Assigning a property on `process.env` will implicitly convert the value + * to a string. **This behavior is deprecated.** Future versions of Node.js may + * throw an error when the value is not a string, number, or boolean. + * + * ```js + * import { env } from 'node:process'; + * + * env.test = null; + * console.log(env.test); + * // => 'null' + * env.test = undefined; + * console.log(env.test); + * // => 'undefined' + * ``` + * + * Use `delete` to delete a property from `process.env`. + * + * ```js + * import { env } from 'node:process'; + * + * env.TEST = 1; + * delete env.TEST; + * console.log(env.TEST); + * // => undefined + * ``` + * + * On Windows operating systems, environment variables are case-insensitive. + * + * ```js + * import { env } from 'node:process'; + * + * env.TEST = 1; + * console.log(env.test); + * // => 1 + * ``` + * + * Unless explicitly specified when creating a `Worker` instance, + * each `Worker` thread has its own copy of `process.env`, based on its + * parent thread's `process.env`, or whatever was specified as the `env` option + * to the `Worker` constructor. Changes to `process.env` will not be visible + * across `Worker` threads, and only the main thread can make changes that + * are visible to the operating system or to native add-ons. On Windows, a copy of `process.env` on a `Worker` instance operates in a case-sensitive manner + * unlike the main thread. + * @since v0.1.27 + */ + env: ProcessEnv; + /** + * The `process.exit()` method instructs Node.js to terminate the process + * synchronously with an exit status of `code`. If `code` is omitted, exit uses + * either the 'success' code `0` or the value of `process.exitCode` if it has been + * set. Node.js will not terminate until all the `'exit'` event listeners are + * called. + * + * To exit with a 'failure' code: + * + * ```js + * import { exit } from 'node:process'; + * + * exit(1); + * ``` + * + * The shell that executed Node.js should see the exit code as `1`. + * + * Calling `process.exit()` will force the process to exit as quickly as possible + * even if there are still asynchronous operations pending that have not yet + * completed fully, including I/O operations to `process.stdout` and `process.stderr`. + * + * In most situations, it is not actually necessary to call `process.exit()` explicitly. The Node.js process will exit on its own _if there is no additional_ + * _work pending_ in the event loop. The `process.exitCode` property can be set to + * tell the process which exit code to use when the process exits gracefully. + * + * For instance, the following example illustrates a _misuse_ of the `process.exit()` method that could lead to data printed to stdout being + * truncated and lost: + * + * ```js + * import { exit } from 'node:process'; + * + * // This is an example of what *not* to do: + * if (someConditionNotMet()) { + * printUsageToStdout(); + * exit(1); + * } + * ``` + * + * The reason this is problematic is because writes to `process.stdout` in Node.js + * are sometimes _asynchronous_ and may occur over multiple ticks of the Node.js + * event loop. Calling `process.exit()`, however, forces the process to exit _before_ those additional writes to `stdout` can be performed. + * + * Rather than calling `process.exit()` directly, the code _should_ set the `process.exitCode` and allow the process to exit naturally by avoiding + * scheduling any additional work for the event loop: + * + * ```js + * import process from 'node:process'; + * + * // How to properly set the exit code while letting + * // the process exit gracefully. + * if (someConditionNotMet()) { + * printUsageToStdout(); + * process.exitCode = 1; + * } + * ``` + * + * If it is necessary to terminate the Node.js process due to an error condition, + * throwing an _uncaught_ error and allowing the process to terminate accordingly + * is safer than calling `process.exit()`. + * + * In `Worker` threads, this function stops the current thread rather + * than the current process. + * @since v0.1.13 + * @param [code=0] The exit code. For string type, only integer strings (e.g.,'1') are allowed. + */ + exit(code?: number | string | null): never; + /** + * A number which will be the process exit code, when the process either + * exits gracefully, or is exited via {@link exit} without specifying + * a code. + * + * Specifying a code to {@link exit} will override any + * previous setting of `process.exitCode`. + * @default undefined + * @since v0.11.8 + */ + exitCode: number | string | null | undefined; + finalization: { + /** + * This function registers a callback to be called when the process emits the `exit` event if the `ref` object was not garbage collected. + * If the object `ref` was garbage collected before the `exit` event is emitted, the callback will be removed from the finalization registry, and it will not be called on process exit. + * + * Inside the callback you can release the resources allocated by the `ref` object. + * Be aware that all limitations applied to the `beforeExit` event are also applied to the callback function, + * this means that there is a possibility that the callback will not be called under special circumstances. + * + * The idea of ​​this function is to help you free up resources when the starts process exiting, but also let the object be garbage collected if it is no longer being used. + * @param ref The reference to the resource that is being tracked. + * @param callback The callback function to be called when the resource is finalized. + * @since v22.5.0 + * @experimental + */ + register(ref: T, callback: (ref: T, event: "exit") => void): void; + /** + * This function behaves exactly like the `register`, except that the callback will be called when the process emits the `beforeExit` event if `ref` object was not garbage collected. + * + * Be aware that all limitations applied to the `beforeExit` event are also applied to the callback function, this means that there is a possibility that the callback will not be called under special circumstances. + * @param ref The reference to the resource that is being tracked. + * @param callback The callback function to be called when the resource is finalized. + * @since v22.5.0 + * @experimental + */ + registerBeforeExit(ref: T, callback: (ref: T, event: "beforeExit") => void): void; + /** + * This function remove the register of the object from the finalization registry, so the callback will not be called anymore. + * @param ref The reference to the resource that was registered previously. + * @since v22.5.0 + * @experimental + */ + unregister(ref: object): void; + }; + /** + * The `process.getActiveResourcesInfo()` method returns an array of strings containing + * the types of the active resources that are currently keeping the event loop alive. + * + * ```js + * import { getActiveResourcesInfo } from 'node:process'; + * import { setTimeout } from 'node:timers'; + + * console.log('Before:', getActiveResourcesInfo()); + * setTimeout(() => {}, 1000); + * console.log('After:', getActiveResourcesInfo()); + * // Prints: + * // Before: [ 'TTYWrap', 'TTYWrap', 'TTYWrap' ] + * // After: [ 'TTYWrap', 'TTYWrap', 'TTYWrap', 'Timeout' ] + * ``` + * @since v17.3.0, v16.14.0 + */ + getActiveResourcesInfo(): string[]; + /** + * Provides a way to load built-in modules in a globally available function. + * @param id ID of the built-in module being requested. + */ + getBuiltinModule(id: ID): BuiltInModule[ID]; + getBuiltinModule(id: string): object | undefined; + /** + * The `process.getgid()` method returns the numerical group identity of the + * process. (See [`getgid(2)`](http://man7.org/linux/man-pages/man2/getgid.2.html).) + * + * ```js + * import process from 'node:process'; + * + * if (process.getgid) { + * console.log(`Current gid: ${process.getgid()}`); + * } + * ``` + * + * This function is only available on POSIX platforms (i.e. not Windows or + * Android). + * @since v0.1.31 + */ + getgid?: () => number; + /** + * The `process.setgid()` method sets the group identity of the process. (See [`setgid(2)`](http://man7.org/linux/man-pages/man2/setgid.2.html).) The `id` can be passed as either a + * numeric ID or a group name + * string. If a group name is specified, this method blocks while resolving the + * associated numeric ID. + * + * ```js + * import process from 'node:process'; + * + * if (process.getgid && process.setgid) { + * console.log(`Current gid: ${process.getgid()}`); + * try { + * process.setgid(501); + * console.log(`New gid: ${process.getgid()}`); + * } catch (err) { + * console.log(`Failed to set gid: ${err}`); + * } + * } + * ``` + * + * This function is only available on POSIX platforms (i.e. not Windows or + * Android). + * This feature is not available in `Worker` threads. + * @since v0.1.31 + * @param id The group name or ID + */ + setgid?: (id: number | string) => void; + /** + * The `process.getuid()` method returns the numeric user identity of the process. + * (See [`getuid(2)`](http://man7.org/linux/man-pages/man2/getuid.2.html).) + * + * ```js + * import process from 'node:process'; + * + * if (process.getuid) { + * console.log(`Current uid: ${process.getuid()}`); + * } + * ``` + * + * This function is only available on POSIX platforms (i.e. not Windows or + * Android). + * @since v0.1.28 + */ + getuid?: () => number; + /** + * The `process.setuid(id)` method sets the user identity of the process. (See [`setuid(2)`](http://man7.org/linux/man-pages/man2/setuid.2.html).) The `id` can be passed as either a + * numeric ID or a username string. + * If a username is specified, the method blocks while resolving the associated + * numeric ID. + * + * ```js + * import process from 'node:process'; + * + * if (process.getuid && process.setuid) { + * console.log(`Current uid: ${process.getuid()}`); + * try { + * process.setuid(501); + * console.log(`New uid: ${process.getuid()}`); + * } catch (err) { + * console.log(`Failed to set uid: ${err}`); + * } + * } + * ``` + * + * This function is only available on POSIX platforms (i.e. not Windows or + * Android). + * This feature is not available in `Worker` threads. + * @since v0.1.28 + */ + setuid?: (id: number | string) => void; + /** + * The `process.geteuid()` method returns the numerical effective user identity of + * the process. (See [`geteuid(2)`](http://man7.org/linux/man-pages/man2/geteuid.2.html).) + * + * ```js + * import process from 'node:process'; + * + * if (process.geteuid) { + * console.log(`Current uid: ${process.geteuid()}`); + * } + * ``` + * + * This function is only available on POSIX platforms (i.e. not Windows or + * Android). + * @since v2.0.0 + */ + geteuid?: () => number; + /** + * The `process.seteuid()` method sets the effective user identity of the process. + * (See [`seteuid(2)`](http://man7.org/linux/man-pages/man2/seteuid.2.html).) The `id` can be passed as either a numeric ID or a username + * string. If a username is specified, the method blocks while resolving the + * associated numeric ID. + * + * ```js + * import process from 'node:process'; + * + * if (process.geteuid && process.seteuid) { + * console.log(`Current uid: ${process.geteuid()}`); + * try { + * process.seteuid(501); + * console.log(`New uid: ${process.geteuid()}`); + * } catch (err) { + * console.log(`Failed to set uid: ${err}`); + * } + * } + * ``` + * + * This function is only available on POSIX platforms (i.e. not Windows or + * Android). + * This feature is not available in `Worker` threads. + * @since v2.0.0 + * @param id A user name or ID + */ + seteuid?: (id: number | string) => void; + /** + * The `process.getegid()` method returns the numerical effective group identity + * of the Node.js process. (See [`getegid(2)`](http://man7.org/linux/man-pages/man2/getegid.2.html).) + * + * ```js + * import process from 'node:process'; + * + * if (process.getegid) { + * console.log(`Current gid: ${process.getegid()}`); + * } + * ``` + * + * This function is only available on POSIX platforms (i.e. not Windows or + * Android). + * @since v2.0.0 + */ + getegid?: () => number; + /** + * The `process.setegid()` method sets the effective group identity of the process. + * (See [`setegid(2)`](http://man7.org/linux/man-pages/man2/setegid.2.html).) The `id` can be passed as either a numeric ID or a group + * name string. If a group name is specified, this method blocks while resolving + * the associated a numeric ID. + * + * ```js + * import process from 'node:process'; + * + * if (process.getegid && process.setegid) { + * console.log(`Current gid: ${process.getegid()}`); + * try { + * process.setegid(501); + * console.log(`New gid: ${process.getegid()}`); + * } catch (err) { + * console.log(`Failed to set gid: ${err}`); + * } + * } + * ``` + * + * This function is only available on POSIX platforms (i.e. not Windows or + * Android). + * This feature is not available in `Worker` threads. + * @since v2.0.0 + * @param id A group name or ID + */ + setegid?: (id: number | string) => void; + /** + * The `process.getgroups()` method returns an array with the supplementary group + * IDs. POSIX leaves it unspecified if the effective group ID is included but + * Node.js ensures it always is. + * + * ```js + * import process from 'node:process'; + * + * if (process.getgroups) { + * console.log(process.getgroups()); // [ 16, 21, 297 ] + * } + * ``` + * + * This function is only available on POSIX platforms (i.e. not Windows or + * Android). + * @since v0.9.4 + */ + getgroups?: () => number[]; + /** + * The `process.setgroups()` method sets the supplementary group IDs for the + * Node.js process. This is a privileged operation that requires the Node.js + * process to have `root` or the `CAP_SETGID` capability. + * + * The `groups` array can contain numeric group IDs, group names, or both. + * + * ```js + * import process from 'node:process'; + * + * if (process.getgroups && process.setgroups) { + * try { + * process.setgroups([501]); + * console.log(process.getgroups()); // new groups + * } catch (err) { + * console.log(`Failed to set groups: ${err}`); + * } + * } + * ``` + * + * This function is only available on POSIX platforms (i.e. not Windows or + * Android). + * This feature is not available in `Worker` threads. + * @since v0.9.4 + */ + setgroups?: (groups: ReadonlyArray) => void; + /** + * The `process.setUncaughtExceptionCaptureCallback()` function sets a function + * that will be invoked when an uncaught exception occurs, which will receive the + * exception value itself as its first argument. + * + * If such a function is set, the `'uncaughtException'` event will + * not be emitted. If `--abort-on-uncaught-exception` was passed from the + * command line or set through `v8.setFlagsFromString()`, the process will + * not abort. Actions configured to take place on exceptions such as report + * generations will be affected too + * + * To unset the capture function, `process.setUncaughtExceptionCaptureCallback(null)` may be used. Calling this + * method with a non-`null` argument while another capture function is set will + * throw an error. + * + * Using this function is mutually exclusive with using the deprecated `domain` built-in module. + * @since v9.3.0 + */ + setUncaughtExceptionCaptureCallback(cb: ((err: Error) => void) | null): void; + /** + * Indicates whether a callback has been set using {@link setUncaughtExceptionCaptureCallback}. + * @since v9.3.0 + */ + hasUncaughtExceptionCaptureCallback(): boolean; + /** + * The `process.sourceMapsEnabled` property returns whether the [Source Map v3](https://sourcemaps.info/spec.html) support for stack traces is enabled. + * @since v20.7.0 + * @experimental + */ + readonly sourceMapsEnabled: boolean; + /** + * This function enables or disables the [Source Map v3](https://sourcemaps.info/spec.html) support for + * stack traces. + * + * It provides same features as launching Node.js process with commandline options `--enable-source-maps`. + * + * Only source maps in JavaScript files that are loaded after source maps has been + * enabled will be parsed and loaded. + * @since v16.6.0, v14.18.0 + * @experimental + */ + setSourceMapsEnabled(value: boolean): void; + /** + * The `process.version` property contains the Node.js version string. + * + * ```js + * import { version } from 'node:process'; + * + * console.log(`Version: ${version}`); + * // Version: v14.8.0 + * ``` + * + * To get the version string without the prepended _v_, use`process.versions.node`. + * @since v0.1.3 + */ + readonly version: string; + /** + * The `process.versions` property returns an object listing the version strings of + * Node.js and its dependencies. `process.versions.modules` indicates the current + * ABI version, which is increased whenever a C++ API changes. Node.js will refuse + * to load modules that were compiled against a different module ABI version. + * + * ```js + * import { versions } from 'node:process'; + * + * console.log(versions); + * ``` + * + * Will generate an object similar to: + * + * ```console + * { node: '20.2.0', + * acorn: '8.8.2', + * ada: '2.4.0', + * ares: '1.19.0', + * base64: '0.5.0', + * brotli: '1.0.9', + * cjs_module_lexer: '1.2.2', + * cldr: '43.0', + * icu: '73.1', + * llhttp: '8.1.0', + * modules: '115', + * napi: '8', + * nghttp2: '1.52.0', + * nghttp3: '0.7.0', + * ngtcp2: '0.8.1', + * openssl: '3.0.8+quic', + * simdutf: '3.2.9', + * tz: '2023c', + * undici: '5.22.0', + * unicode: '15.0', + * uv: '1.44.2', + * uvwasi: '0.0.16', + * v8: '11.3.244.8-node.9', + * zlib: '1.2.13' } + * ``` + * @since v0.2.0 + */ + readonly versions: ProcessVersions; + /** + * The `process.config` property returns a frozen `Object` containing the + * JavaScript representation of the configure options used to compile the current + * Node.js executable. This is the same as the `config.gypi` file that was produced + * when running the `./configure` script. + * + * An example of the possible output looks like: + * + * ```js + * { + * target_defaults: + * { cflags: [], + * default_configuration: 'Release', + * defines: [], + * include_dirs: [], + * libraries: [] }, + * variables: + * { + * host_arch: 'x64', + * napi_build_version: 5, + * node_install_npm: 'true', + * node_prefix: '', + * node_shared_cares: 'false', + * node_shared_http_parser: 'false', + * node_shared_libuv: 'false', + * node_shared_zlib: 'false', + * node_use_openssl: 'true', + * node_shared_openssl: 'false', + * strict_aliasing: 'true', + * target_arch: 'x64', + * v8_use_snapshot: 1 + * } + * } + * ``` + * @since v0.7.7 + */ + readonly config: ProcessConfig; + /** + * The `process.kill()` method sends the `signal` to the process identified by`pid`. + * + * Signal names are strings such as `'SIGINT'` or `'SIGHUP'`. See `Signal Events` and [`kill(2)`](http://man7.org/linux/man-pages/man2/kill.2.html) for more information. + * + * This method will throw an error if the target `pid` does not exist. As a special + * case, a signal of `0` can be used to test for the existence of a process. + * Windows platforms will throw an error if the `pid` is used to kill a process + * group. + * + * Even though the name of this function is `process.kill()`, it is really just a + * signal sender, like the `kill` system call. The signal sent may do something + * other than kill the target process. + * + * ```js + * import process, { kill } from 'node:process'; + * + * process.on('SIGHUP', () => { + * console.log('Got SIGHUP signal.'); + * }); + * + * setTimeout(() => { + * console.log('Exiting.'); + * process.exit(0); + * }, 100); + * + * kill(process.pid, 'SIGHUP'); + * ``` + * + * When `SIGUSR1` is received by a Node.js process, Node.js will start the + * debugger. See `Signal Events`. + * @since v0.0.6 + * @param pid A process ID + * @param [signal='SIGTERM'] The signal to send, either as a string or number. + */ + kill(pid: number, signal?: string | number): true; + /** + * Loads the environment configuration from a `.env` file into `process.env`. If + * the file is not found, error will be thrown. + * + * To load a specific .env file by specifying its path, use the following code: + * + * ```js + * import { loadEnvFile } from 'node:process'; + * + * loadEnvFile('./development.env') + * ``` + * @since v20.12.0 + * @param path The path to the .env file + */ + loadEnvFile(path?: PathLike): void; + /** + * The `process.pid` property returns the PID of the process. + * + * ```js + * import { pid } from 'node:process'; + * + * console.log(`This process is pid ${pid}`); + * ``` + * @since v0.1.15 + */ + readonly pid: number; + /** + * The `process.ppid` property returns the PID of the parent of the + * current process. + * + * ```js + * import { ppid } from 'node:process'; + * + * console.log(`The parent process is pid ${ppid}`); + * ``` + * @since v9.2.0, v8.10.0, v6.13.0 + */ + readonly ppid: number; + /** + * The `process.threadCpuUsage()` method returns the user and system CPU time usage of + * the current worker thread, in an object with properties `user` and `system`, whose + * values are microsecond values (millionth of a second). + * + * The result of a previous call to `process.threadCpuUsage()` can be passed as the + * argument to the function, to get a diff reading. + * @since v23.9.0 + * @param previousValue A previous return value from calling + * `process.threadCpuUsage()` + */ + threadCpuUsage(previousValue?: CpuUsage): CpuUsage; + /** + * The `process.title` property returns the current process title (i.e. returns + * the current value of `ps`). Assigning a new value to `process.title` modifies + * the current value of `ps`. + * + * When a new value is assigned, different platforms will impose different maximum + * length restrictions on the title. Usually such restrictions are quite limited. + * For instance, on Linux and macOS, `process.title` is limited to the size of the + * binary name plus the length of the command-line arguments because setting the `process.title` overwrites the `argv` memory of the process. Node.js v0.8 + * allowed for longer process title strings by also overwriting the `environ` memory but that was potentially insecure and confusing in some (rather obscure) + * cases. + * + * Assigning a value to `process.title` might not result in an accurate label + * within process manager applications such as macOS Activity Monitor or Windows + * Services Manager. + * @since v0.1.104 + */ + title: string; + /** + * The operating system CPU architecture for which the Node.js binary was compiled. + * Possible values are: `'arm'`, `'arm64'`, `'ia32'`, `'loong64'`, `'mips'`, + * `'mipsel'`, `'ppc64'`, `'riscv64'`, `'s390x'`, and `'x64'`. + * + * ```js + * import { arch } from 'node:process'; + * + * console.log(`This processor architecture is ${arch}`); + * ``` + * @since v0.5.0 + */ + readonly arch: Architecture; + /** + * The `process.platform` property returns a string identifying the operating + * system platform for which the Node.js binary was compiled. + * + * Currently possible values are: + * + * * `'aix'` + * * `'darwin'` + * * `'freebsd'` + * * `'linux'` + * * `'openbsd'` + * * `'sunos'` + * * `'win32'` + * + * ```js + * import { platform } from 'node:process'; + * + * console.log(`This platform is ${platform}`); + * ``` + * + * The value `'android'` may also be returned if the Node.js is built on the + * Android operating system. However, Android support in Node.js [is experimental](https://github.com/nodejs/node/blob/HEAD/BUILDING.md#androidandroid-based-devices-eg-firefox-os). + * @since v0.1.16 + */ + readonly platform: Platform; + /** + * The `process.mainModule` property provides an alternative way of retrieving `require.main`. The difference is that if the main module changes at + * runtime, `require.main` may still refer to the original main module in + * modules that were required before the change occurred. Generally, it's + * safe to assume that the two refer to the same module. + * + * As with `require.main`, `process.mainModule` will be `undefined` if there + * is no entry script. + * @since v0.1.17 + * @deprecated Since v14.0.0 - Use `main` instead. + */ + mainModule?: Module; + memoryUsage: MemoryUsageFn; + /** + * Gets the amount of memory available to the process (in bytes) based on + * limits imposed by the OS. If there is no such constraint, or the constraint + * is unknown, `0` is returned. + * + * See [`uv_get_constrained_memory`](https://docs.libuv.org/en/v1.x/misc.html#c.uv_get_constrained_memory) for more + * information. + * @since v19.6.0, v18.15.0 + */ + constrainedMemory(): number; + /** + * Gets the amount of free memory that is still available to the process (in bytes). + * See [`uv_get_available_memory`](https://nodejs.org/docs/latest-v25.x/api/process.html#processavailablememory) for more information. + * @since v20.13.0 + */ + availableMemory(): number; + /** + * The `process.cpuUsage()` method returns the user and system CPU time usage of + * the current process, in an object with properties `user` and `system`, whose + * values are microsecond values (millionth of a second). These values measure time + * spent in user and system code respectively, and may end up being greater than + * actual elapsed time if multiple CPU cores are performing work for this process. + * + * The result of a previous call to `process.cpuUsage()` can be passed as the + * argument to the function, to get a diff reading. + * + * ```js + * import { cpuUsage } from 'node:process'; + * + * const startUsage = cpuUsage(); + * // { user: 38579, system: 6986 } + * + * // spin the CPU for 500 milliseconds + * const now = Date.now(); + * while (Date.now() - now < 500); + * + * console.log(cpuUsage(startUsage)); + * // { user: 514883, system: 11226 } + * ``` + * @since v6.1.0 + * @param previousValue A previous return value from calling `process.cpuUsage()` + */ + cpuUsage(previousValue?: CpuUsage): CpuUsage; + /** + * `process.nextTick()` adds `callback` to the "next tick queue". This queue is + * fully drained after the current operation on the JavaScript stack runs to + * completion and before the event loop is allowed to continue. It's possible to + * create an infinite loop if one were to recursively call `process.nextTick()`. + * See the [Event Loop](https://nodejs.org/en/docs/guides/event-loop-timers-and-nexttick/#process-nexttick) guide for more background. + * + * ```js + * import { nextTick } from 'node:process'; + * + * console.log('start'); + * nextTick(() => { + * console.log('nextTick callback'); + * }); + * console.log('scheduled'); + * // Output: + * // start + * // scheduled + * // nextTick callback + * ``` + * + * This is important when developing APIs in order to give users the opportunity + * to assign event handlers _after_ an object has been constructed but before any + * I/O has occurred: + * + * ```js + * import { nextTick } from 'node:process'; + * + * function MyThing(options) { + * this.setupOptions(options); + * + * nextTick(() => { + * this.startDoingStuff(); + * }); + * } + * + * const thing = new MyThing(); + * thing.getReadyForStuff(); + * + * // thing.startDoingStuff() gets called now, not before. + * ``` + * + * It is very important for APIs to be either 100% synchronous or 100% + * asynchronous. Consider this example: + * + * ```js + * // WARNING! DO NOT USE! BAD UNSAFE HAZARD! + * function maybeSync(arg, cb) { + * if (arg) { + * cb(); + * return; + * } + * + * fs.stat('file', cb); + * } + * ``` + * + * This API is hazardous because in the following case: + * + * ```js + * const maybeTrue = Math.random() > 0.5; + * + * maybeSync(maybeTrue, () => { + * foo(); + * }); + * + * bar(); + * ``` + * + * It is not clear whether `foo()` or `bar()` will be called first. + * + * The following approach is much better: + * + * ```js + * import { nextTick } from 'node:process'; + * + * function definitelyAsync(arg, cb) { + * if (arg) { + * nextTick(cb); + * return; + * } + * + * fs.stat('file', cb); + * } + * ``` + * @since v0.1.26 + * @param args Additional arguments to pass when invoking the `callback` + */ + nextTick(callback: Function, ...args: any[]): void; + /** + * The process.noDeprecation property indicates whether the --no-deprecation flag is set on the current Node.js process. + * See the documentation for the ['warning' event](https://nodejs.org/docs/latest/api/process.html#event-warning) and the [emitWarning()](https://nodejs.org/docs/latest/api/process.html#processemitwarningwarning-type-code-ctor) method for more information about this flag's behavior. + */ + noDeprecation?: boolean; + /** + * This API is available through the [--permission](https://nodejs.org/api/cli.html#--permission) flag. + * + * `process.permission` is an object whose methods are used to manage permissions for the current process. + * Additional documentation is available in the [Permission Model](https://nodejs.org/api/permissions.html#permission-model). + * @since v20.0.0 + */ + permission: ProcessPermission; + /** + * The `process.release` property returns an `Object` containing metadata related + * to the current release, including URLs for the source tarball and headers-only + * tarball. + * + * `process.release` contains the following properties: + * + * ```js + * { + * name: 'node', + * lts: 'Hydrogen', + * sourceUrl: 'https://nodejs.org/download/release/v18.12.0/node-v18.12.0.tar.gz', + * headersUrl: 'https://nodejs.org/download/release/v18.12.0/node-v18.12.0-headers.tar.gz', + * libUrl: 'https://nodejs.org/download/release/v18.12.0/win-x64/node.lib' + * } + * ``` + * + * In custom builds from non-release versions of the source tree, only the `name` property may be present. The additional properties should not be + * relied upon to exist. + * @since v3.0.0 + */ + readonly release: ProcessRelease; + readonly features: ProcessFeatures; + /** + * The `process.traceProcessWarnings` property indicates whether the `--trace-warnings` flag + * is set on the current Node.js process. This property allows programmatic control over the + * tracing of warnings, enabling or disabling stack traces for warnings at runtime. + * + * ```js + * // Enable trace warnings + * process.traceProcessWarnings = true; + * + * // Emit a warning with a stack trace + * process.emitWarning('Warning with stack trace'); + * + * // Disable trace warnings + * process.traceProcessWarnings = false; + * ``` + * @since v6.10.0 + */ + traceProcessWarnings: boolean; + /** + * `process.umask()` returns the Node.js process's file mode creation mask. Child + * processes inherit the mask from the parent process. + * @since v0.1.19 + * @deprecated Calling `process.umask()` with no argument causes the process-wide umask to be written twice. This introduces a race condition between threads, and is a potential + * security vulnerability. There is no safe, cross-platform alternative API. + */ + umask(): number; + /** + * Can only be set if not in worker thread. + */ + umask(mask: string | number): number; + /** + * The `process.uptime()` method returns the number of seconds the current Node.js + * process has been running. + * + * The return value includes fractions of a second. Use `Math.floor()` to get whole + * seconds. + * @since v0.5.0 + */ + uptime(): number; + hrtime: HRTime; + /** + * If the Node.js process was spawned with an IPC channel, the process.channel property is a reference to the IPC channel. + * If no IPC channel exists, this property is undefined. + * @since v7.1.0 + */ + channel?: Control; + /** + * If Node.js is spawned with an IPC channel, the `process.send()` method can be + * used to send messages to the parent process. Messages will be received as a `'message'` event on the parent's `ChildProcess` object. + * + * If Node.js was not spawned with an IPC channel, `process.send` will be `undefined`. + * + * The message goes through serialization and parsing. The resulting message might + * not be the same as what is originally sent. + * @since v0.5.9 + * @param options used to parameterize the sending of certain types of handles. `options` supports the following properties: + */ + send?( + message: any, + sendHandle?: SendHandle, + options?: MessageOptions, + callback?: (error: Error | null) => void, + ): boolean; + send?( + message: any, + sendHandle: SendHandle, + callback?: (error: Error | null) => void, + ): boolean; + send?( + message: any, + callback: (error: Error | null) => void, + ): boolean; + /** + * If the Node.js process is spawned with an IPC channel (see the `Child Process` and `Cluster` documentation), the `process.disconnect()` method will close the + * IPC channel to the parent process, allowing the child process to exit gracefully + * once there are no other connections keeping it alive. + * + * The effect of calling `process.disconnect()` is the same as calling `ChildProcess.disconnect()` from the parent process. + * + * If the Node.js process was not spawned with an IPC channel, `process.disconnect()` will be `undefined`. + * @since v0.7.2 + */ + disconnect?(): void; + /** + * If the Node.js process is spawned with an IPC channel (see the `Child Process` and `Cluster` documentation), the `process.connected` property will return `true` so long as the IPC + * channel is connected and will return `false` after `process.disconnect()` is called. + * + * Once `process.connected` is `false`, it is no longer possible to send messages + * over the IPC channel using `process.send()`. + * @since v0.7.2 + */ + connected: boolean; + /** + * The `process.allowedNodeEnvironmentFlags` property is a special, + * read-only `Set` of flags allowable within the `NODE_OPTIONS` environment variable. + * + * `process.allowedNodeEnvironmentFlags` extends `Set`, but overrides `Set.prototype.has` to recognize several different possible flag + * representations. `process.allowedNodeEnvironmentFlags.has()` will + * return `true` in the following cases: + * + * * Flags may omit leading single (`-`) or double (`--`) dashes; e.g., `inspect-brk` for `--inspect-brk`, or `r` for `-r`. + * * Flags passed through to V8 (as listed in `--v8-options`) may replace + * one or more _non-leading_ dashes for an underscore, or vice-versa; + * e.g., `--perf_basic_prof`, `--perf-basic-prof`, `--perf_basic-prof`, + * etc. + * * Flags may contain one or more equals (`=`) characters; all + * characters after and including the first equals will be ignored; + * e.g., `--stack-trace-limit=100`. + * * Flags _must_ be allowable within `NODE_OPTIONS`. + * + * When iterating over `process.allowedNodeEnvironmentFlags`, flags will + * appear only _once_; each will begin with one or more dashes. Flags + * passed through to V8 will contain underscores instead of non-leading + * dashes: + * + * ```js + * import { allowedNodeEnvironmentFlags } from 'node:process'; + * + * allowedNodeEnvironmentFlags.forEach((flag) => { + * // -r + * // --inspect-brk + * // --abort_on_uncaught_exception + * // ... + * }); + * ``` + * + * The methods `add()`, `clear()`, and `delete()` of`process.allowedNodeEnvironmentFlags` do nothing, and will fail + * silently. + * + * If Node.js was compiled _without_ `NODE_OPTIONS` support (shown in {@link config}), `process.allowedNodeEnvironmentFlags` will + * contain what _would have_ been allowable. + * @since v10.10.0 + */ + allowedNodeEnvironmentFlags: ReadonlySet; + /** + * `process.report` is an object whose methods are used to generate diagnostic reports for the current process. + * Additional documentation is available in the [report documentation](https://nodejs.org/docs/latest-v25.x/api/report.html). + * @since v11.8.0 + */ + report: ProcessReport; + /** + * ```js + * import { resourceUsage } from 'node:process'; + * + * console.log(resourceUsage()); + * /* + * Will output: + * { + * userCPUTime: 82872, + * systemCPUTime: 4143, + * maxRSS: 33164, + * sharedMemorySize: 0, + * unsharedDataSize: 0, + * unsharedStackSize: 0, + * minorPageFault: 2469, + * majorPageFault: 0, + * swappedOut: 0, + * fsRead: 0, + * fsWrite: 8, + * ipcSent: 0, + * ipcReceived: 0, + * signalsCount: 0, + * voluntaryContextSwitches: 79, + * involuntaryContextSwitches: 1 + * } + * + * ``` + * @since v12.6.0 + * @return the resource usage for the current process. All of these values come from the `uv_getrusage` call which returns a [`uv_rusage_t` struct][uv_rusage_t]. + */ + resourceUsage(): ResourceUsage; + /** + * The initial value of `process.throwDeprecation` indicates whether the `--throw-deprecation` flag is set on the current Node.js process. `process.throwDeprecation` + * is mutable, so whether or not deprecation warnings result in errors may be altered at runtime. See the documentation for the 'warning' event and the emitWarning() + * method for more information. + * + * ```bash + * $ node --throw-deprecation -p "process.throwDeprecation" + * true + * $ node -p "process.throwDeprecation" + * undefined + * $ node + * > process.emitWarning('test', 'DeprecationWarning'); + * undefined + * > (node:26598) DeprecationWarning: test + * > process.throwDeprecation = true; + * true + * > process.emitWarning('test', 'DeprecationWarning'); + * Thrown: + * [DeprecationWarning: test] { name: 'DeprecationWarning' } + * ``` + * @since v0.9.12 + */ + throwDeprecation: boolean; + /** + * The `process.traceDeprecation` property indicates whether the `--trace-deprecation` flag is set on the current Node.js process. See the + * documentation for the `'warning' event` and the `emitWarning() method` for more information about this + * flag's behavior. + * @since v0.8.0 + */ + traceDeprecation: boolean; + /** + * An object is "refable" if it implements the Node.js "Refable protocol". + * Specifically, this means that the object implements the `Symbol.for('nodejs.ref')` + * and `Symbol.for('nodejs.unref')` methods. "Ref'd" objects will keep the Node.js + * event loop alive, while "unref'd" objects will not. Historically, this was + * implemented by using `ref()` and `unref()` methods directly on the objects. + * This pattern, however, is being deprecated in favor of the "Refable protocol" + * in order to better support Web Platform API types whose APIs cannot be modified + * to add `ref()` and `unref()` methods but still need to support that behavior. + * @since v22.14.0 + * @experimental + * @param maybeRefable An object that may be "refable". + */ + ref(maybeRefable: any): void; + /** + * An object is "unrefable" if it implements the Node.js "Refable protocol". + * Specifically, this means that the object implements the `Symbol.for('nodejs.ref')` + * and `Symbol.for('nodejs.unref')` methods. "Ref'd" objects will keep the Node.js + * event loop alive, while "unref'd" objects will not. Historically, this was + * implemented by using `ref()` and `unref()` methods directly on the objects. + * This pattern, however, is being deprecated in favor of the "Refable protocol" + * in order to better support Web Platform API types whose APIs cannot be modified + * to add `ref()` and `unref()` methods but still need to support that behavior. + * @since v22.14.0 + * @experimental + * @param maybeRefable An object that may be "unref'd". + */ + unref(maybeRefable: any): void; + /** + * Replaces the current process with a new process. + * + * This is achieved by using the `execve` POSIX function and therefore no memory or other + * resources from the current process are preserved, except for the standard input, + * standard output and standard error file descriptor. + * + * All other resources are discarded by the system when the processes are swapped, without triggering + * any exit or close events and without running any cleanup handler. + * + * This function will never return, unless an error occurred. + * + * This function is not available on Windows or IBM i. + * @since v22.15.0 + * @experimental + * @param file The name or path of the executable file to run. + * @param args List of string arguments. No argument can contain a null-byte (`\u0000`). + * @param env Environment key-value pairs. + * No key or value can contain a null-byte (`\u0000`). + * **Default:** `process.env`. + */ + execve?(file: string, args?: readonly string[], env?: ProcessEnv): never; + // #region InternalEventEmitter + addListener( + eventName: E, + listener: (...args: ProcessEventMap[E]) => void, + ): this; + addListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + emit(eventName: E, ...args: ProcessEventMap[E]): boolean; + emit(eventName: string | symbol, ...args: any[]): boolean; + listenerCount( + eventName: E, + listener?: (...args: ProcessEventMap[E]) => void, + ): number; + listenerCount(eventName: string | symbol, listener?: (...args: any[]) => void): number; + listeners(eventName: E): ((...args: ProcessEventMap[E]) => void)[]; + listeners(eventName: string | symbol): ((...args: any[]) => void)[]; + off( + eventName: E, + listener: (...args: ProcessEventMap[E]) => void, + ): this; + off(eventName: string | symbol, listener: (...args: any[]) => void): this; + on( + eventName: E, + listener: (...args: ProcessEventMap[E]) => void, + ): this; + on(eventName: string | symbol, listener: (...args: any[]) => void): this; + once( + eventName: E, + listener: (...args: ProcessEventMap[E]) => void, + ): this; + once(eventName: string | symbol, listener: (...args: any[]) => void): this; + prependListener( + eventName: E, + listener: (...args: ProcessEventMap[E]) => void, + ): this; + prependListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + prependOnceListener( + eventName: E, + listener: (...args: ProcessEventMap[E]) => void, + ): this; + prependOnceListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + rawListeners(eventName: E): ((...args: ProcessEventMap[E]) => void)[]; + rawListeners(eventName: string | symbol): ((...args: any[]) => void)[]; + // eslint-disable-next-line @definitelytyped/no-unnecessary-generics + removeAllListeners(eventName?: E): this; + removeAllListeners(eventName?: string | symbol): this; + removeListener( + eventName: E, + listener: (...args: ProcessEventMap[E]) => void, + ): this; + removeListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + // #endregion + } + } + } + export = process; +} +declare module "process" { + import process = require("node:process"); + export = process; +} diff --git a/server/api/node_modules/@types/node/punycode.d.ts b/server/api/node_modules/@types/node/punycode.d.ts new file mode 100644 index 0000000..87fdec9 --- /dev/null +++ b/server/api/node_modules/@types/node/punycode.d.ts @@ -0,0 +1,89 @@ +declare module "node:punycode" { + /** + * The `punycode.decode()` method converts a [Punycode](https://tools.ietf.org/html/rfc3492) string of ASCII-only + * characters to the equivalent string of Unicode codepoints. + * + * ```js + * punycode.decode('maana-pta'); // 'mañana' + * punycode.decode('--dqo34k'); // '☃-⌘' + * ``` + * @since v0.5.1 + */ + function decode(string: string): string; + /** + * The `punycode.encode()` method converts a string of Unicode codepoints to a [Punycode](https://tools.ietf.org/html/rfc3492) string of ASCII-only characters. + * + * ```js + * punycode.encode('mañana'); // 'maana-pta' + * punycode.encode('☃-⌘'); // '--dqo34k' + * ``` + * @since v0.5.1 + */ + function encode(string: string): string; + /** + * The `punycode.toUnicode()` method converts a string representing a domain name + * containing [Punycode](https://tools.ietf.org/html/rfc3492) encoded characters into Unicode. Only the [Punycode](https://tools.ietf.org/html/rfc3492) encoded parts of the domain name are be + * converted. + * + * ```js + * // decode domain names + * punycode.toUnicode('xn--maana-pta.com'); // 'mañana.com' + * punycode.toUnicode('xn----dqo34k.com'); // '☃-⌘.com' + * punycode.toUnicode('example.com'); // 'example.com' + * ``` + * @since v0.6.1 + */ + function toUnicode(domain: string): string; + /** + * The `punycode.toASCII()` method converts a Unicode string representing an + * Internationalized Domain Name to [Punycode](https://tools.ietf.org/html/rfc3492). Only the non-ASCII parts of the + * domain name will be converted. Calling `punycode.toASCII()` on a string that + * already only contains ASCII characters will have no effect. + * + * ```js + * // encode domain names + * punycode.toASCII('mañana.com'); // 'xn--maana-pta.com' + * punycode.toASCII('☃-⌘.com'); // 'xn----dqo34k.com' + * punycode.toASCII('example.com'); // 'example.com' + * ``` + * @since v0.6.1 + */ + function toASCII(domain: string): string; + /** + * @deprecated since v7.0.0 + * The version of the punycode module bundled in Node.js is being deprecated. + * In a future major version of Node.js this module will be removed. + * Users currently depending on the punycode module should switch to using + * the userland-provided Punycode.js module instead. + */ + const ucs2: ucs2; + interface ucs2 { + /** + * @deprecated since v7.0.0 + * The version of the punycode module bundled in Node.js is being deprecated. + * In a future major version of Node.js this module will be removed. + * Users currently depending on the punycode module should switch to using + * the userland-provided Punycode.js module instead. + */ + decode(string: string): number[]; + /** + * @deprecated since v7.0.0 + * The version of the punycode module bundled in Node.js is being deprecated. + * In a future major version of Node.js this module will be removed. + * Users currently depending on the punycode module should switch to using + * the userland-provided Punycode.js module instead. + */ + encode(codePoints: readonly number[]): string; + } + /** + * @deprecated since v7.0.0 + * The version of the punycode module bundled in Node.js is being deprecated. + * In a future major version of Node.js this module will be removed. + * Users currently depending on the punycode module should switch to using + * the userland-provided Punycode.js module instead. + */ + const version: string; +} +declare module "punycode" { + export * from "node:punycode"; +} diff --git a/server/api/node_modules/@types/node/querystring.d.ts b/server/api/node_modules/@types/node/querystring.d.ts new file mode 100644 index 0000000..6d821a4 --- /dev/null +++ b/server/api/node_modules/@types/node/querystring.d.ts @@ -0,0 +1,139 @@ +declare module "node:querystring" { + interface StringifyOptions { + /** + * The function to use when converting URL-unsafe characters to percent-encoding in the query string. + * @default `querystring.escape()` + */ + encodeURIComponent?: ((str: string) => string) | undefined; + } + interface ParseOptions { + /** + * Specifies the maximum number of keys to parse. Specify `0` to remove key counting limitations. + * @default 1000 + */ + maxKeys?: number | undefined; + /** + * The function to use when decoding percent-encoded characters in the query string. + * @default `querystring.unescape()` + */ + decodeURIComponent?: ((str: string) => string) | undefined; + } + interface ParsedUrlQuery extends NodeJS.Dict {} + interface ParsedUrlQueryInput extends + NodeJS.Dict< + | string + | number + | boolean + | bigint + | ReadonlyArray + | null + > + {} + /** + * The `querystring.stringify()` method produces a URL query string from a + * given `obj` by iterating through the object's "own properties". + * + * It serializes the following types of values passed in `obj`: [string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type) | + * [number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Number_type) | + * [bigint](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt) | + * [boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type) | + * [string\[\]](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type) | + * [number\[\]](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Number_type) | + * [bigint\[\]](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt) | + * [boolean\[\]](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type) The numeric values must be finite. Any other input values will be coerced to + * empty strings. + * + * ```js + * querystring.stringify({ foo: 'bar', baz: ['qux', 'quux'], corge: '' }); + * // Returns 'foo=bar&baz=qux&baz=quux&corge=' + * + * querystring.stringify({ foo: 'bar', baz: 'qux' }, ';', ':'); + * // Returns 'foo:bar;baz:qux' + * ``` + * + * By default, characters requiring percent-encoding within the query string will + * be encoded as UTF-8\. If an alternative encoding is required, then an alternative `encodeURIComponent` option will need to be specified: + * + * ```js + * // Assuming gbkEncodeURIComponent function already exists, + * + * querystring.stringify({ w: '中文', foo: 'bar' }, null, null, + * { encodeURIComponent: gbkEncodeURIComponent }); + * ``` + * @since v0.1.25 + * @param obj The object to serialize into a URL query string + * @param [sep='&'] The substring used to delimit key and value pairs in the query string. + * @param [eq='='] . The substring used to delimit keys and values in the query string. + */ + function stringify(obj?: ParsedUrlQueryInput, sep?: string, eq?: string, options?: StringifyOptions): string; + /** + * The `querystring.parse()` method parses a URL query string (`str`) into a + * collection of key and value pairs. + * + * For example, the query string `'foo=bar&abc=xyz&abc=123'` is parsed into: + * + * ```json + * { + * "foo": "bar", + * "abc": ["xyz", "123"] + * } + * ``` + * + * The object returned by the `querystring.parse()` method _does not_ prototypically inherit from the JavaScript `Object`. This means that typical `Object` methods such as `obj.toString()`, + * `obj.hasOwnProperty()`, and others + * are not defined and _will not work_. + * + * By default, percent-encoded characters within the query string will be assumed + * to use UTF-8 encoding. If an alternative character encoding is used, then an + * alternative `decodeURIComponent` option will need to be specified: + * + * ```js + * // Assuming gbkDecodeURIComponent function already exists... + * + * querystring.parse('w=%D6%D0%CE%C4&foo=bar', null, null, + * { decodeURIComponent: gbkDecodeURIComponent }); + * ``` + * @since v0.1.25 + * @param str The URL query string to parse + * @param [sep='&'] The substring used to delimit key and value pairs in the query string. + * @param [eq='='] The substring used to delimit keys and values in the query string. + */ + function parse(str: string, sep?: string, eq?: string, options?: ParseOptions): ParsedUrlQuery; + /** + * The querystring.encode() function is an alias for querystring.stringify(). + */ + const encode: typeof stringify; + /** + * The querystring.decode() function is an alias for querystring.parse(). + */ + const decode: typeof parse; + /** + * The `querystring.escape()` method performs URL percent-encoding on the given `str` in a manner that is optimized for the specific requirements of URL + * query strings. + * + * The `querystring.escape()` method is used by `querystring.stringify()` and is + * generally not expected to be used directly. It is exported primarily to allow + * application code to provide a replacement percent-encoding implementation if + * necessary by assigning `querystring.escape` to an alternative function. + * @since v0.1.25 + */ + function escape(str: string): string; + /** + * The `querystring.unescape()` method performs decoding of URL percent-encoded + * characters on the given `str`. + * + * The `querystring.unescape()` method is used by `querystring.parse()` and is + * generally not expected to be used directly. It is exported primarily to allow + * application code to provide a replacement decoding implementation if + * necessary by assigning `querystring.unescape` to an alternative function. + * + * By default, the `querystring.unescape()` method will attempt to use the + * JavaScript built-in `decodeURIComponent()` method to decode. If that fails, + * a safer equivalent that does not throw on malformed URLs will be used. + * @since v0.1.25 + */ + function unescape(str: string): string; +} +declare module "querystring" { + export * from "node:querystring"; +} diff --git a/server/api/node_modules/@types/node/quic.d.ts b/server/api/node_modules/@types/node/quic.d.ts new file mode 100644 index 0000000..7fe6188 --- /dev/null +++ b/server/api/node_modules/@types/node/quic.d.ts @@ -0,0 +1,897 @@ +declare module "node:quic" { + import { KeyObject, webcrypto } from "node:crypto"; + import { SocketAddress } from "node:net"; + import { ReadableStream } from "node:stream/web"; + /** + * @since v23.8.0 + */ + type OnSessionCallback = (this: QuicEndpoint, session: QuicSession) => void; + /** + * @since v23.8.0 + */ + type OnStreamCallback = (this: QuicSession, stream: QuicStream) => void; + /** + * @since v23.8.0 + */ + type OnDatagramCallback = (this: QuicSession, datagram: Uint8Array, early: boolean) => void; + /** + * @since v23.8.0 + */ + type OnDatagramStatusCallback = (this: QuicSession, id: bigint, status: "lost" | "acknowledged") => void; + /** + * @since v23.8.0 + */ + type OnPathValidationCallback = ( + this: QuicSession, + result: "success" | "failure" | "aborted", + newLocalAddress: SocketAddress, + newRemoteAddress: SocketAddress, + oldLocalAddress: SocketAddress, + oldRemoteAddress: SocketAddress, + preferredAddress: boolean, + ) => void; + /** + * @since v23.8.0 + */ + type OnSessionTicketCallback = (this: QuicSession, ticket: object) => void; + /** + * @since v23.8.0 + */ + type OnVersionNegotiationCallback = ( + this: QuicSession, + version: number, + requestedVersions: number[], + supportedVersions: number[], + ) => void; + /** + * @since v23.8.0 + */ + type OnHandshakeCallback = ( + this: QuicSession, + sni: string, + alpn: string, + cipher: string, + cipherVersion: string, + validationErrorReason: string, + validationErrorCode: number, + earlyDataAccepted: boolean, + ) => void; + /** + * @since v23.8.0 + */ + type OnBlockedCallback = (this: QuicStream) => void; + /** + * @since v23.8.0 + */ + type OnStreamErrorCallback = (this: QuicStream, error: any) => void; + /** + * @since v23.8.0 + */ + interface TransportParams { + /** + * The preferred IPv4 address to advertise. + * @since v23.8.0 + */ + preferredAddressIpv4?: SocketAddress | undefined; + /** + * The preferred IPv6 address to advertise. + * @since v23.8.0 + */ + preferredAddressIpv6?: SocketAddress | undefined; + /** + * @since v23.8.0 + */ + initialMaxStreamDataBidiLocal?: bigint | number | undefined; + /** + * @since v23.8.0 + */ + initialMaxStreamDataBidiRemote?: bigint | number | undefined; + /** + * @since v23.8.0 + */ + initialMaxStreamDataUni?: bigint | number | undefined; + /** + * @since v23.8.0 + */ + initialMaxData?: bigint | number | undefined; + /** + * @since v23.8.0 + */ + initialMaxStreamsBidi?: bigint | number | undefined; + /** + * @since v23.8.0 + */ + initialMaxStreamsUni?: bigint | number | undefined; + /** + * @since v23.8.0 + */ + maxIdleTimeout?: bigint | number | undefined; + /** + * @since v23.8.0 + */ + activeConnectionIDLimit?: bigint | number | undefined; + /** + * @since v23.8.0 + */ + ackDelayExponent?: bigint | number | undefined; + /** + * @since v23.8.0 + */ + maxAckDelay?: bigint | number | undefined; + /** + * @since v23.8.0 + */ + maxDatagramFrameSize?: bigint | number | undefined; + } + /** + * @since v23.8.0 + */ + interface SessionOptions { + /** + * An endpoint to use. + * @since v23.8.0 + */ + endpoint?: EndpointOptions | QuicEndpoint | undefined; + /** + * The ALPN protocol identifier. + * @since v23.8.0 + */ + alpn?: string | undefined; + /** + * The CA certificates to use for sessions. + * @since v23.8.0 + */ + ca?: ArrayBuffer | NodeJS.ArrayBufferView | ReadonlyArray | undefined; + /** + * Specifies the congestion control algorithm that will be used. + * Must be set to one of either `'reno'`, `'cubic'`, or `'bbr'`. + * + * This is an advanced option that users typically won't have need to specify. + * @since v23.8.0 + */ + cc?: `${constants.cc}` | undefined; + /** + * The TLS certificates to use for sessions. + * @since v23.8.0 + */ + certs?: ArrayBuffer | NodeJS.ArrayBufferView | ReadonlyArray | undefined; + /** + * The list of supported TLS 1.3 cipher algorithms. + * @since v23.8.0 + */ + ciphers?: string | undefined; + /** + * The CRL to use for sessions. + * @since v23.8.0 + */ + crl?: ArrayBuffer | NodeJS.ArrayBufferView | ReadonlyArray | undefined; + /** + * The list of support TLS 1.3 cipher groups. + * @since v23.8.0 + */ + groups?: string | undefined; + /** + * True to enable TLS keylogging output. + * @since v23.8.0 + */ + keylog?: boolean | undefined; + /** + * The TLS crypto keys to use for sessions. + * @since v23.8.0 + */ + keys?: KeyObject | webcrypto.CryptoKey | ReadonlyArray | undefined; + /** + * Specifies the maximum UDP packet payload size. + * @since v23.8.0 + */ + maxPayloadSize?: bigint | number | undefined; + /** + * Specifies the maximum stream flow-control window size. + * @since v23.8.0 + */ + maxStreamWindow?: bigint | number | undefined; + /** + * Specifies the maximum session flow-control window size. + * @since v23.8.0 + */ + maxWindow?: bigint | number | undefined; + /** + * The minimum QUIC version number to allow. This is an advanced option that users + * typically won't have need to specify. + * @since v23.8.0 + */ + minVersion?: number | undefined; + /** + * When the remote peer advertises a preferred address, this option specifies whether + * to use it or ignore it. + * @since v23.8.0 + */ + preferredAddressPolicy?: "use" | "ignore" | "default" | undefined; + /** + * True if qlog output should be enabled. + * @since v23.8.0 + */ + qlog?: boolean | undefined; + /** + * A session ticket to use for 0RTT session resumption. + * @since v23.8.0 + */ + sessionTicket?: NodeJS.ArrayBufferView | undefined; + /** + * Specifies the maximum number of milliseconds a TLS handshake is permitted to take + * to complete before timing out. + * @since v23.8.0 + */ + handshakeTimeout?: bigint | number | undefined; + /** + * The peer server name to target. + * @since v23.8.0 + */ + sni?: string | undefined; + /** + * True to enable TLS tracing output. + * @since v23.8.0 + */ + tlsTrace?: boolean | undefined; + /** + * The QUIC transport parameters to use for the session. + * @since v23.8.0 + */ + transportParams?: TransportParams | undefined; + /** + * Specifies the maximum number of unacknowledged packets a session should allow. + * @since v23.8.0 + */ + unacknowledgedPacketThreshold?: bigint | number | undefined; + /** + * True to require verification of TLS client certificate. + * @since v23.8.0 + */ + verifyClient?: boolean | undefined; + /** + * True to require private key verification. + * @since v23.8.0 + */ + verifyPrivateKey?: boolean | undefined; + /** + * The QUIC version number to use. This is an advanced option that users typically + * won't have need to specify. + * @since v23.8.0 + */ + version?: number | undefined; + } + /** + * Initiate a new client-side session. + * + * ```js + * import { connect } from 'node:quic'; + * import { Buffer } from 'node:buffer'; + * + * const enc = new TextEncoder(); + * const alpn = 'foo'; + * const client = await connect('123.123.123.123:8888', { alpn }); + * await client.createUnidirectionalStream({ + * body: enc.encode('hello world'), + * }); + * ``` + * + * By default, every call to `connect(...)` will create a new local + * `QuicEndpoint` instance bound to a new random local IP port. To + * specify the exact local address to use, or to multiplex multiple + * QUIC sessions over a single local port, pass the `endpoint` option + * with either a `QuicEndpoint` or `EndpointOptions` as the argument. + * + * ```js + * import { QuicEndpoint, connect } from 'node:quic'; + * + * const endpoint = new QuicEndpoint({ + * address: '127.0.0.1:1234', + * }); + * + * const client = await connect('123.123.123.123:8888', { endpoint }); + * ``` + * @since v23.8.0 + */ + function connect(address: string | SocketAddress, options?: SessionOptions): Promise; + /** + * Configures the endpoint to listen as a server. When a new session is initiated by + * a remote peer, the given `onsession` callback will be invoked with the created + * session. + * + * ```js + * import { listen } from 'node:quic'; + * + * const endpoint = await listen((session) => { + * // ... handle the session + * }); + * + * // Closing the endpoint allows any sessions open when close is called + * // to complete naturally while preventing new sessions from being + * // initiated. Once all existing sessions have finished, the endpoint + * // will be destroyed. The call returns a promise that is resolved once + * // the endpoint is destroyed. + * await endpoint.close(); + * ``` + * + * By default, every call to `listen(...)` will create a new local + * `QuicEndpoint` instance bound to a new random local IP port. To + * specify the exact local address to use, or to multiplex multiple + * QUIC sessions over a single local port, pass the `endpoint` option + * with either a `QuicEndpoint` or `EndpointOptions` as the argument. + * + * At most, any single `QuicEndpoint` can only be configured to listen as + * a server once. + * @since v23.8.0 + */ + function listen(onsession: OnSessionCallback, options?: SessionOptions): Promise; + /** + * The endpoint configuration options passed when constructing a new `QuicEndpoint` instance. + * @since v23.8.0 + */ + interface EndpointOptions { + /** + * If not specified the endpoint will bind to IPv4 `localhost` on a random port. + * @since v23.8.0 + */ + address?: SocketAddress | string | undefined; + /** + * The endpoint maintains an internal cache of validated socket addresses as a + * performance optimization. This option sets the maximum number of addresses + * that are cache. This is an advanced option that users typically won't have + * need to specify. + * @since v23.8.0 + */ + addressLRUSize?: bigint | number | undefined; + /** + * When `true`, indicates that the endpoint should bind only to IPv6 addresses. + * @since v23.8.0 + */ + ipv6Only?: boolean | undefined; + /** + * Specifies the maximum number of concurrent sessions allowed per remote peer address. + * @since v23.8.0 + */ + maxConnectionsPerHost?: bigint | number | undefined; + /** + * Specifies the maximum total number of concurrent sessions. + * @since v23.8.0 + */ + maxConnectionsTotal?: bigint | number | undefined; + /** + * Specifies the maximum number of QUIC retry attempts allowed per remote peer address. + * @since v23.8.0 + */ + maxRetries?: bigint | number | undefined; + /** + * Specifies the maximum number of stateless resets that are allowed per remote peer address. + * @since v23.8.0 + */ + maxStatelessResetsPerHost?: bigint | number | undefined; + /** + * Specifies the length of time a QUIC retry token is considered valid. + * @since v23.8.0 + */ + retryTokenExpiration?: bigint | number | undefined; + /** + * Specifies the 16-byte secret used to generate QUIC retry tokens. + * @since v23.8.0 + */ + resetTokenSecret?: NodeJS.ArrayBufferView | undefined; + /** + * Specifies the length of time a QUIC token is considered valid. + * @since v23.8.0 + */ + tokenExpiration?: bigint | number | undefined; + /** + * Specifies the 16-byte secret used to generate QUIC tokens. + * @since v23.8.0 + */ + tokenSecret?: NodeJS.ArrayBufferView | undefined; + /** + * @since v23.8.0 + */ + udpReceiveBufferSize?: number | undefined; + /** + * @since v23.8.0 + */ + udpSendBufferSize?: number | undefined; + /** + * @since v23.8.0 + */ + udpTTL?: number | undefined; + /** + * When `true`, requires that the endpoint validate peer addresses using retry packets + * while establishing a new connection. + * @since v23.8.0 + */ + validateAddress?: boolean | undefined; + } + /** + * A `QuicEndpoint` encapsulates the local UDP-port binding for QUIC. It can be + * used as both a client and a server. + * @since v23.8.0 + */ + class QuicEndpoint implements AsyncDisposable { + constructor(options?: EndpointOptions); + /** + * The local UDP socket address to which the endpoint is bound, if any. + * + * If the endpoint is not currently bound then the value will be `undefined`. Read only. + * @since v23.8.0 + */ + readonly address: SocketAddress | undefined; + /** + * When `endpoint.busy` is set to true, the endpoint will temporarily reject + * new sessions from being created. Read/write. + * + * ```js + * // Mark the endpoint busy. New sessions will be prevented. + * endpoint.busy = true; + * + * // Mark the endpoint free. New session will be allowed. + * endpoint.busy = false; + * ``` + * + * The `busy` property is useful when the endpoint is under heavy load and needs to + * temporarily reject new sessions while it catches up. + * @since v23.8.0 + */ + busy: boolean; + /** + * Gracefully close the endpoint. The endpoint will close and destroy itself when + * all currently open sessions close. Once called, new sessions will be rejected. + * + * Returns a promise that is fulfilled when the endpoint is destroyed. + * @since v23.8.0 + */ + close(): Promise; + /** + * A promise that is fulfilled when the endpoint is destroyed. This will be the same promise that is + * returned by the `endpoint.close()` function. Read only. + * @since v23.8.0 + */ + readonly closed: Promise; + /** + * True if `endpoint.close()` has been called and closing the endpoint has not yet completed. + * Read only. + * @since v23.8.0 + */ + readonly closing: boolean; + /** + * Forcefully closes the endpoint by forcing all open sessions to be immediately + * closed. + * @since v23.8.0 + */ + destroy(error?: any): void; + /** + * True if `endpoint.destroy()` has been called. Read only. + * @since v23.8.0 + */ + readonly destroyed: boolean; + /** + * The statistics collected for an active session. Read only. + * @since v23.8.0 + */ + readonly stats: QuicEndpoint.Stats; + /** + * Calls `endpoint.close()` and returns a promise that fulfills when the + * endpoint has closed. + * @since v23.8.0 + */ + [Symbol.asyncDispose](): Promise; + } + namespace QuicEndpoint { + /** + * A view of the collected statistics for an endpoint. + * @since v23.8.0 + */ + class Stats { + private constructor(); + /** + * A timestamp indicating the moment the endpoint was created. Read only. + * @since v23.8.0 + */ + readonly createdAt: bigint; + /** + * A timestamp indicating the moment the endpoint was destroyed. Read only. + * @since v23.8.0 + */ + readonly destroyedAt: bigint; + /** + * The total number of bytes received by this endpoint. Read only. + * @since v23.8.0 + */ + readonly bytesReceived: bigint; + /** + * The total number of bytes sent by this endpoint. Read only. + * @since v23.8.0 + */ + readonly bytesSent: bigint; + /** + * The total number of QUIC packets successfully received by this endpoint. Read only. + * @since v23.8.0 + */ + readonly packetsReceived: bigint; + /** + * The total number of QUIC packets successfully sent by this endpoint. Read only. + * @since v23.8.0 + */ + readonly packetsSent: bigint; + /** + * The total number of peer-initiated sessions received by this endpoint. Read only. + * @since v23.8.0 + */ + readonly serverSessions: bigint; + /** + * The total number of sessions initiated by this endpoint. Read only. + * @since v23.8.0 + */ + readonly clientSessions: bigint; + /** + * The total number of times an initial packet was rejected due to the + * endpoint being marked busy. Read only. + * @since v23.8.0 + */ + readonly serverBusyCount: bigint; + /** + * The total number of QUIC retry attempts on this endpoint. Read only. + * @since v23.8.0 + */ + readonly retryCount: bigint; + /** + * The total number sessions rejected due to QUIC version mismatch. Read only. + * @since v23.8.0 + */ + readonly versionNegotiationCount: bigint; + /** + * The total number of stateless resets handled by this endpoint. Read only. + * @since v23.8.0 + */ + readonly statelessResetCount: bigint; + /** + * The total number of sessions that were closed before handshake completed. Read only. + * @since v23.8.0 + */ + readonly immediateCloseCount: bigint; + } + } + interface CreateStreamOptions { + body?: ArrayBuffer | NodeJS.ArrayBufferView | Blob | undefined; + sendOrder?: number | undefined; + } + interface SessionPath { + local: SocketAddress; + remote: SocketAddress; + } + /** + * A `QuicSession` represents the local side of a QUIC connection. + * @since v23.8.0 + */ + class QuicSession implements AsyncDisposable { + private constructor(); + /** + * Initiate a graceful close of the session. Existing streams will be allowed + * to complete but no new streams will be opened. Once all streams have closed, + * the session will be destroyed. The returned promise will be fulfilled once + * the session has been destroyed. + * @since v23.8.0 + */ + close(): Promise; + /** + * A promise that is fulfilled once the session is destroyed. + * @since v23.8.0 + */ + readonly closed: Promise; + /** + * Immediately destroy the session. All streams will be destroys and the + * session will be closed. + * @since v23.8.0 + */ + destroy(error?: any): void; + /** + * True if `session.destroy()` has been called. Read only. + * @since v23.8.0 + */ + readonly destroyed: boolean; + /** + * The endpoint that created this session. Read only. + * @since v23.8.0 + */ + readonly endpoint: QuicEndpoint; + /** + * The callback to invoke when a new stream is initiated by a remote peer. Read/write. + * @since v23.8.0 + */ + onstream: OnStreamCallback | undefined; + /** + * The callback to invoke when a new datagram is received from a remote peer. Read/write. + * @since v23.8.0 + */ + ondatagram: OnDatagramCallback | undefined; + /** + * The callback to invoke when the status of a datagram is updated. Read/write. + * @since v23.8.0 + */ + ondatagramstatus: OnDatagramStatusCallback | undefined; + /** + * The callback to invoke when the path validation is updated. Read/write. + * @since v23.8.0 + */ + onpathvalidation: OnPathValidationCallback | undefined; + /** + * The callback to invoke when a new session ticket is received. Read/write. + * @since v23.8.0 + */ + onsessionticket: OnSessionTicketCallback | undefined; + /** + * The callback to invoke when a version negotiation is initiated. Read/write. + * @since v23.8.0 + */ + onversionnegotiation: OnVersionNegotiationCallback | undefined; + /** + * The callback to invoke when the TLS handshake is completed. Read/write. + * @since v23.8.0 + */ + onhandshake: OnHandshakeCallback | undefined; + /** + * Open a new bidirectional stream. If the `body` option is not specified, + * the outgoing stream will be half-closed. + * @since v23.8.0 + */ + createBidirectionalStream(options?: CreateStreamOptions): Promise; + /** + * Open a new unidirectional stream. If the `body` option is not specified, + * the outgoing stream will be closed. + * @since v23.8.0 + */ + createUnidirectionalStream(options?: CreateStreamOptions): Promise; + /** + * The local and remote socket addresses associated with the session. Read only. + * @since v23.8.0 + */ + path: SessionPath | undefined; + /** + * Sends an unreliable datagram to the remote peer, returning the datagram ID. + * If the datagram payload is specified as an `ArrayBufferView`, then ownership of + * that view will be transfered to the underlying stream. + * @since v23.8.0 + */ + sendDatagram(datagram: string | NodeJS.ArrayBufferView): bigint; + /** + * Return the current statistics for the session. Read only. + * @since v23.8.0 + */ + readonly stats: QuicSession.Stats; + /** + * Initiate a key update for the session. + * @since v23.8.0 + */ + updateKey(): void; + /** + * Calls `session.close()` and returns a promise that fulfills when the + * session has closed. + * @since v23.8.0 + */ + [Symbol.asyncDispose](): Promise; + } + namespace QuicSession { + /** + * @since v23.8.0 + */ + class Stats { + private constructor(); + /** + * @since v23.8.0 + */ + readonly createdAt: bigint; + /** + * @since v23.8.0 + */ + readonly closingAt: bigint; + /** + * @since v23.8.0 + */ + readonly handshakeCompletedAt: bigint; + /** + * @since v23.8.0 + */ + readonly handshakeConfirmedAt: bigint; + /** + * @since v23.8.0 + */ + readonly bytesReceived: bigint; + /** + * @since v23.8.0 + */ + readonly bytesSent: bigint; + /** + * @since v23.8.0 + */ + readonly bidiInStreamCount: bigint; + /** + * @since v23.8.0 + */ + readonly bidiOutStreamCount: bigint; + /** + * @since v23.8.0 + */ + readonly uniInStreamCount: bigint; + /** + * @since v23.8.0 + */ + readonly uniOutStreamCount: bigint; + /** + * @since v23.8.0 + */ + readonly maxBytesInFlights: bigint; + /** + * @since v23.8.0 + */ + readonly bytesInFlight: bigint; + /** + * @since v23.8.0 + */ + readonly blockCount: bigint; + /** + * @since v23.8.0 + */ + readonly cwnd: bigint; + /** + * @since v23.8.0 + */ + readonly latestRtt: bigint; + /** + * @since v23.8.0 + */ + readonly minRtt: bigint; + /** + * @since v23.8.0 + */ + readonly rttVar: bigint; + /** + * @since v23.8.0 + */ + readonly smoothedRtt: bigint; + /** + * @since v23.8.0 + */ + readonly ssthresh: bigint; + /** + * @since v23.8.0 + */ + readonly datagramsReceived: bigint; + /** + * @since v23.8.0 + */ + readonly datagramsSent: bigint; + /** + * @since v23.8.0 + */ + readonly datagramsAcknowledged: bigint; + /** + * @since v23.8.0 + */ + readonly datagramsLost: bigint; + } + } + /** + * @since v23.8.0 + */ + class QuicStream { + private constructor(); + /** + * A promise that is fulfilled when the stream is fully closed. + * @since v23.8.0 + */ + readonly closed: Promise; + /** + * Immediately and abruptly destroys the stream. + * @since v23.8.0 + */ + destroy(error?: any): void; + /** + * True if `stream.destroy()` has been called. + * @since v23.8.0 + */ + readonly destroyed: boolean; + /** + * The directionality of the stream. Read only. + * @since v23.8.0 + */ + readonly direction: "bidi" | "uni"; + /** + * The stream ID. Read only. + * @since v23.8.0 + */ + readonly id: bigint; + /** + * The callback to invoke when the stream is blocked. Read/write. + * @since v23.8.0 + */ + onblocked: OnBlockedCallback | undefined; + /** + * The callback to invoke when the stream is reset. Read/write. + * @since v23.8.0 + */ + onreset: OnStreamErrorCallback | undefined; + /** + * @since v23.8.0 + */ + readonly readable: ReadableStream; + /** + * The session that created this stream. Read only. + * @since v23.8.0 + */ + readonly session: QuicSession; + /** + * The current statistics for the stream. Read only. + * @since v23.8.0 + */ + readonly stats: QuicStream.Stats; + } + namespace QuicStream { + /** + * @since v23.8.0 + */ + class Stats { + private constructor(); + /** + * @since v23.8.0 + */ + readonly ackedAt: bigint; + /** + * @since v23.8.0 + */ + readonly bytesReceived: bigint; + /** + * @since v23.8.0 + */ + readonly bytesSent: bigint; + /** + * @since v23.8.0 + */ + readonly createdAt: bigint; + /** + * @since v23.8.0 + */ + readonly destroyedAt: bigint; + /** + * @since v23.8.0 + */ + readonly finalSize: bigint; + /** + * @since v23.8.0 + */ + readonly isConnected: bigint; + /** + * @since v23.8.0 + */ + readonly maxOffset: bigint; + /** + * @since v23.8.0 + */ + readonly maxOffsetAcknowledged: bigint; + /** + * @since v23.8.0 + */ + readonly maxOffsetReceived: bigint; + /** + * @since v23.8.0 + */ + readonly openedAt: bigint; + /** + * @since v23.8.0 + */ + readonly receivedAt: bigint; + } + } + namespace constants { + enum cc { + RENO = "reno", + CUBIC = "cubic", + BBR = "bbr", + } + const DEFAULT_CIPHERS: string; + const DEFAULT_GROUPS: string; + } +} diff --git a/server/api/node_modules/@types/node/readline.d.ts b/server/api/node_modules/@types/node/readline.d.ts new file mode 100644 index 0000000..5042975 --- /dev/null +++ b/server/api/node_modules/@types/node/readline.d.ts @@ -0,0 +1,507 @@ +declare module "node:readline" { + import { Abortable, EventEmitter, InternalEventEmitter } from "node:events"; + interface Key { + sequence?: string | undefined; + name?: string | undefined; + ctrl?: boolean | undefined; + meta?: boolean | undefined; + shift?: boolean | undefined; + } + interface InterfaceEventMap { + "close": []; + "error": [error: Error]; + "history": [history: string[]]; + "line": [input: string]; + "pause": []; + "resume": []; + "SIGCONT": []; + "SIGINT": []; + "SIGTSTP": []; + } + /** + * Instances of the `readline.Interface` class are constructed using the `readline.createInterface()` method. Every instance is associated with a + * single `input` [Readable](https://nodejs.org/docs/latest-v25.x/api/stream.html#readable-streams) stream and a single `output` [Writable](https://nodejs.org/docs/latest-v25.x/api/stream.html#writable-streams) stream. + * The `output` stream is used to print prompts for user input that arrives on, + * and is read from, the `input` stream. + * @since v0.1.104 + */ + class Interface implements EventEmitter, Disposable { + /** + * NOTE: According to the documentation: + * + * > Instances of the `readline.Interface` class are constructed using the + * > `readline.createInterface()` method. + * + * @see https://nodejs.org/dist/latest-v25.x/docs/api/readline.html#class-interfaceconstructor + */ + protected constructor( + input: NodeJS.ReadableStream, + output?: NodeJS.WritableStream, + completer?: Completer | AsyncCompleter, + terminal?: boolean, + ); + /** + * NOTE: According to the documentation: + * + * > Instances of the `readline.Interface` class are constructed using the + * > `readline.createInterface()` method. + * + * @see https://nodejs.org/dist/latest-v25.x/docs/api/readline.html#class-interfaceconstructor + */ + protected constructor(options: ReadLineOptions); + readonly terminal: boolean; + /** + * The current input data being processed by node. + * + * This can be used when collecting input from a TTY stream to retrieve the + * current value that has been processed thus far, prior to the `line` event + * being emitted. Once the `line` event has been emitted, this property will + * be an empty string. + * + * Be aware that modifying the value during the instance runtime may have + * unintended consequences if `rl.cursor` is not also controlled. + * + * **If not using a TTY stream for input, use the `'line'` event.** + * + * One possible use case would be as follows: + * + * ```js + * const values = ['lorem ipsum', 'dolor sit amet']; + * const rl = readline.createInterface(process.stdin); + * const showResults = debounce(() => { + * console.log( + * '\n', + * values.filter((val) => val.startsWith(rl.line)).join(' '), + * ); + * }, 300); + * process.stdin.on('keypress', (c, k) => { + * showResults(); + * }); + * ``` + * @since v0.1.98 + */ + readonly line: string; + /** + * The cursor position relative to `rl.line`. + * + * This will track where the current cursor lands in the input string, when + * reading input from a TTY stream. The position of cursor determines the + * portion of the input string that will be modified as input is processed, + * as well as the column where the terminal caret will be rendered. + * @since v0.1.98 + */ + readonly cursor: number; + /** + * The `rl.getPrompt()` method returns the current prompt used by `rl.prompt()`. + * @since v15.3.0, v14.17.0 + * @return the current prompt string + */ + getPrompt(): string; + /** + * The `rl.setPrompt()` method sets the prompt that will be written to `output` whenever `rl.prompt()` is called. + * @since v0.1.98 + */ + setPrompt(prompt: string): void; + /** + * The `rl.prompt()` method writes the `Interface` instances configured`prompt` to a new line in `output` in order to provide a user with a new + * location at which to provide input. + * + * When called, `rl.prompt()` will resume the `input` stream if it has been + * paused. + * + * If the `Interface` was created with `output` set to `null` or `undefined` the prompt is not written. + * @since v0.1.98 + * @param preserveCursor If `true`, prevents the cursor placement from being reset to `0`. + */ + prompt(preserveCursor?: boolean): void; + /** + * The `rl.question()` method displays the `query` by writing it to the `output`, + * waits for user input to be provided on `input`, then invokes the `callback` function passing the provided input as the first argument. + * + * When called, `rl.question()` will resume the `input` stream if it has been + * paused. + * + * If the `Interface` was created with `output` set to `null` or `undefined` the `query` is not written. + * + * The `callback` function passed to `rl.question()` does not follow the typical + * pattern of accepting an `Error` object or `null` as the first argument. + * The `callback` is called with the provided answer as the only argument. + * + * An error will be thrown if calling `rl.question()` after `rl.close()`. + * + * Example usage: + * + * ```js + * rl.question('What is your favorite food? ', (answer) => { + * console.log(`Oh, so your favorite food is ${answer}`); + * }); + * ``` + * + * Using an `AbortController` to cancel a question. + * + * ```js + * const ac = new AbortController(); + * const signal = ac.signal; + * + * rl.question('What is your favorite food? ', { signal }, (answer) => { + * console.log(`Oh, so your favorite food is ${answer}`); + * }); + * + * signal.addEventListener('abort', () => { + * console.log('The food question timed out'); + * }, { once: true }); + * + * setTimeout(() => ac.abort(), 10000); + * ``` + * @since v0.3.3 + * @param query A statement or query to write to `output`, prepended to the prompt. + * @param callback A callback function that is invoked with the user's input in response to the `query`. + */ + question(query: string, callback: (answer: string) => void): void; + question(query: string, options: Abortable, callback: (answer: string) => void): void; + /** + * The `rl.pause()` method pauses the `input` stream, allowing it to be resumed + * later if necessary. + * + * Calling `rl.pause()` does not immediately pause other events (including `'line'`) from being emitted by the `Interface` instance. + * @since v0.3.4 + */ + pause(): this; + /** + * The `rl.resume()` method resumes the `input` stream if it has been paused. + * @since v0.3.4 + */ + resume(): this; + /** + * The `rl.close()` method closes the `Interface` instance and + * relinquishes control over the `input` and `output` streams. When called, + * the `'close'` event will be emitted. + * + * Calling `rl.close()` does not immediately stop other events (including `'line'`) + * from being emitted by the `Interface` instance. + * @since v0.1.98 + */ + close(): void; + /** + * Alias for `rl.close()`. + * @since v22.15.0 + */ + [Symbol.dispose](): void; + /** + * The `rl.write()` method will write either `data` or a key sequence identified + * by `key` to the `output`. The `key` argument is supported only if `output` is + * a `TTY` text terminal. See `TTY keybindings` for a list of key + * combinations. + * + * If `key` is specified, `data` is ignored. + * + * When called, `rl.write()` will resume the `input` stream if it has been + * paused. + * + * If the `Interface` was created with `output` set to `null` or `undefined` the `data` and `key` are not written. + * + * ```js + * rl.write('Delete this!'); + * // Simulate Ctrl+U to delete the line written previously + * rl.write(null, { ctrl: true, name: 'u' }); + * ``` + * + * The `rl.write()` method will write the data to the `readline` `Interface`'s `input` _as if it were provided by the user_. + * @since v0.1.98 + */ + write(data: string | Buffer, key?: Key): void; + write(data: undefined | null | string | Buffer, key: Key): void; + /** + * Returns the real position of the cursor in relation to the input + * prompt + string. Long input (wrapping) strings, as well as multiple + * line prompts are included in the calculations. + * @since v13.5.0, v12.16.0 + */ + getCursorPos(): CursorPos; + [Symbol.asyncIterator](): NodeJS.AsyncIterator; + } + interface Interface extends InternalEventEmitter {} + type ReadLine = Interface; // type forwarded for backwards compatibility + type Completer = (line: string) => CompleterResult; + type AsyncCompleter = ( + line: string, + callback: (err?: null | Error, result?: CompleterResult) => void, + ) => void; + type CompleterResult = [string[], string]; + interface ReadLineOptions { + /** + * The [`Readable`](https://nodejs.org/docs/latest-v25.x/api/stream.html#readable-streams) stream to listen to + */ + input: NodeJS.ReadableStream; + /** + * The [`Writable`](https://nodejs.org/docs/latest-v25.x/api/stream.html#writable-streams) stream to write readline data to. + */ + output?: NodeJS.WritableStream | undefined; + /** + * An optional function used for Tab autocompletion. + */ + completer?: Completer | AsyncCompleter | undefined; + /** + * `true` if the `input` and `output` streams should be treated like a TTY, + * and have ANSI/VT100 escape codes written to it. + * Default: checking `isTTY` on the `output` stream upon instantiation. + */ + terminal?: boolean | undefined; + /** + * Initial list of history lines. + * This option makes sense only if `terminal` is set to `true` by the user or by an internal `output` check, + * otherwise the history caching mechanism is not initialized at all. + * @default [] + */ + history?: string[] | undefined; + /** + * Maximum number of history lines retained. + * To disable the history set this value to `0`. + * This option makes sense only if `terminal` is set to `true` by the user or by an internal `output` check, + * otherwise the history caching mechanism is not initialized at all. + * @default 30 + */ + historySize?: number | undefined; + /** + * If `true`, when a new input line added to the history list duplicates an older one, + * this removes the older line from the list. + * @default false + */ + removeHistoryDuplicates?: boolean | undefined; + /** + * The prompt string to use. + * @default "> " + */ + prompt?: string | undefined; + /** + * If the delay between `\r` and `\n` exceeds `crlfDelay` milliseconds, + * both `\r` and `\n` will be treated as separate end-of-line input. + * `crlfDelay` will be coerced to a number no less than `100`. + * It can be set to `Infinity`, in which case + * `\r` followed by `\n` will always be considered a single newline + * (which may be reasonable for [reading files](https://nodejs.org/docs/latest-v25.x/api/readline.html#example-read-file-stream-line-by-line) with `\r\n` line delimiter). + * @default 100 + */ + crlfDelay?: number | undefined; + /** + * The duration `readline` will wait for a character + * (when reading an ambiguous key sequence in milliseconds + * one that can both form a complete key sequence using the input read so far + * and can take additional input to complete a longer key sequence). + * @default 500 + */ + escapeCodeTimeout?: number | undefined; + /** + * The number of spaces a tab is equal to (minimum 1). + * @default 8 + */ + tabSize?: number | undefined; + /** + * Allows closing the interface using an AbortSignal. + * Aborting the signal will internally call `close` on the interface. + */ + signal?: AbortSignal | undefined; + } + /** + * The `readline.createInterface()` method creates a new `readline.Interface` instance. + * + * ```js + * import readline from 'node:readline'; + * const rl = readline.createInterface({ + * input: process.stdin, + * output: process.stdout, + * }); + * ``` + * + * Once the `readline.Interface` instance is created, the most common case is to + * listen for the `'line'` event: + * + * ```js + * rl.on('line', (line) => { + * console.log(`Received: ${line}`); + * }); + * ``` + * + * If `terminal` is `true` for this instance then the `output` stream will get + * the best compatibility if it defines an `output.columns` property and emits + * a `'resize'` event on the `output` if or when the columns ever change + * (`process.stdout` does this automatically when it is a TTY). + * + * When creating a `readline.Interface` using `stdin` as input, the program + * will not terminate until it receives an [EOF character](https://en.wikipedia.org/wiki/End-of-file#EOF_character). To exit without + * waiting for user input, call `process.stdin.unref()`. + * @since v0.1.98 + */ + function createInterface( + input: NodeJS.ReadableStream, + output?: NodeJS.WritableStream, + completer?: Completer | AsyncCompleter, + terminal?: boolean, + ): Interface; + function createInterface(options: ReadLineOptions): Interface; + /** + * The `readline.emitKeypressEvents()` method causes the given `Readable` stream to begin emitting `'keypress'` events corresponding to received input. + * + * Optionally, `interface` specifies a `readline.Interface` instance for which + * autocompletion is disabled when copy-pasted input is detected. + * + * If the `stream` is a `TTY`, then it must be in raw mode. + * + * This is automatically called by any readline instance on its `input` if the `input` is a terminal. Closing the `readline` instance does not stop + * the `input` from emitting `'keypress'` events. + * + * ```js + * readline.emitKeypressEvents(process.stdin); + * if (process.stdin.isTTY) + * process.stdin.setRawMode(true); + * ``` + * + * ## Example: Tiny CLI + * + * The following example illustrates the use of `readline.Interface` class to + * implement a small command-line interface: + * + * ```js + * import readline from 'node:readline'; + * const rl = readline.createInterface({ + * input: process.stdin, + * output: process.stdout, + * prompt: 'OHAI> ', + * }); + * + * rl.prompt(); + * + * rl.on('line', (line) => { + * switch (line.trim()) { + * case 'hello': + * console.log('world!'); + * break; + * default: + * console.log(`Say what? I might have heard '${line.trim()}'`); + * break; + * } + * rl.prompt(); + * }).on('close', () => { + * console.log('Have a great day!'); + * process.exit(0); + * }); + * ``` + * + * ## Example: Read file stream line-by-Line + * + * A common use case for `readline` is to consume an input file one line at a + * time. The easiest way to do so is leveraging the `fs.ReadStream` API as + * well as a `for await...of` loop: + * + * ```js + * import fs from 'node:fs'; + * import readline from 'node:readline'; + * + * async function processLineByLine() { + * const fileStream = fs.createReadStream('input.txt'); + * + * const rl = readline.createInterface({ + * input: fileStream, + * crlfDelay: Infinity, + * }); + * // Note: we use the crlfDelay option to recognize all instances of CR LF + * // ('\r\n') in input.txt as a single line break. + * + * for await (const line of rl) { + * // Each line in input.txt will be successively available here as `line`. + * console.log(`Line from file: ${line}`); + * } + * } + * + * processLineByLine(); + * ``` + * + * Alternatively, one could use the `'line'` event: + * + * ```js + * import fs from 'node:fs'; + * import readline from 'node:readline'; + * + * const rl = readline.createInterface({ + * input: fs.createReadStream('sample.txt'), + * crlfDelay: Infinity, + * }); + * + * rl.on('line', (line) => { + * console.log(`Line from file: ${line}`); + * }); + * ``` + * + * Currently, `for await...of` loop can be a bit slower. If `async` / `await` flow and speed are both essential, a mixed approach can be applied: + * + * ```js + * import { once } from 'node:events'; + * import { createReadStream } from 'node:fs'; + * import { createInterface } from 'node:readline'; + * + * (async function processLineByLine() { + * try { + * const rl = createInterface({ + * input: createReadStream('big-file.txt'), + * crlfDelay: Infinity, + * }); + * + * rl.on('line', (line) => { + * // Process the line. + * }); + * + * await once(rl, 'close'); + * + * console.log('File processed.'); + * } catch (err) { + * console.error(err); + * } + * })(); + * ``` + * @since v0.7.7 + */ + function emitKeypressEvents(stream: NodeJS.ReadableStream, readlineInterface?: Interface): void; + type Direction = -1 | 0 | 1; + interface CursorPos { + rows: number; + cols: number; + } + /** + * The `readline.clearLine()` method clears current line of given [TTY](https://nodejs.org/docs/latest-v25.x/api/tty.html) stream + * in a specified direction identified by `dir`. + * @since v0.7.7 + * @param callback Invoked once the operation completes. + * @return `false` if `stream` wishes for the calling code to wait for the `'drain'` event to be emitted before continuing to write additional data; otherwise `true`. + */ + function clearLine(stream: NodeJS.WritableStream, dir: Direction, callback?: () => void): boolean; + /** + * The `readline.clearScreenDown()` method clears the given [TTY](https://nodejs.org/docs/latest-v25.x/api/tty.html) stream from + * the current position of the cursor down. + * @since v0.7.7 + * @param callback Invoked once the operation completes. + * @return `false` if `stream` wishes for the calling code to wait for the `'drain'` event to be emitted before continuing to write additional data; otherwise `true`. + */ + function clearScreenDown(stream: NodeJS.WritableStream, callback?: () => void): boolean; + /** + * The `readline.cursorTo()` method moves cursor to the specified position in a + * given [TTY](https://nodejs.org/docs/latest-v25.x/api/tty.html) `stream`. + * @since v0.7.7 + * @param callback Invoked once the operation completes. + * @return `false` if `stream` wishes for the calling code to wait for the `'drain'` event to be emitted before continuing to write additional data; otherwise `true`. + */ + function cursorTo(stream: NodeJS.WritableStream, x: number, y?: number, callback?: () => void): boolean; + /** + * The `readline.moveCursor()` method moves the cursor _relative_ to its current + * position in a given [TTY](https://nodejs.org/docs/latest-v25.x/api/tty.html) `stream`. + * @since v0.7.7 + * @param callback Invoked once the operation completes. + * @return `false` if `stream` wishes for the calling code to wait for the `'drain'` event to be emitted before continuing to write additional data; otherwise `true`. + */ + function moveCursor(stream: NodeJS.WritableStream, dx: number, dy: number, callback?: () => void): boolean; +} +declare module "node:readline" { + export * as promises from "node:readline/promises"; +} +declare module "readline" { + export * from "node:readline"; +} diff --git a/server/api/node_modules/@types/node/readline/promises.d.ts b/server/api/node_modules/@types/node/readline/promises.d.ts new file mode 100644 index 0000000..ccee490 --- /dev/null +++ b/server/api/node_modules/@types/node/readline/promises.d.ts @@ -0,0 +1,158 @@ +declare module "node:readline/promises" { + import { Abortable } from "node:events"; + import { + CompleterResult, + Direction, + Interface as _Interface, + ReadLineOptions as _ReadLineOptions, + } from "node:readline"; + /** + * Instances of the `readlinePromises.Interface` class are constructed using the `readlinePromises.createInterface()` method. Every instance is associated with a + * single `input` `Readable` stream and a single `output` `Writable` stream. + * The `output` stream is used to print prompts for user input that arrives on, + * and is read from, the `input` stream. + * @since v17.0.0 + */ + class Interface extends _Interface { + /** + * The `rl.question()` method displays the `query` by writing it to the `output`, + * waits for user input to be provided on `input`, then invokes the `callback` function passing the provided input as the first argument. + * + * When called, `rl.question()` will resume the `input` stream if it has been + * paused. + * + * If the `Interface` was created with `output` set to `null` or `undefined` the `query` is not written. + * + * If the question is called after `rl.close()`, it returns a rejected promise. + * + * Example usage: + * + * ```js + * const answer = await rl.question('What is your favorite food? '); + * console.log(`Oh, so your favorite food is ${answer}`); + * ``` + * + * Using an `AbortSignal` to cancel a question. + * + * ```js + * const signal = AbortSignal.timeout(10_000); + * + * signal.addEventListener('abort', () => { + * console.log('The food question timed out'); + * }, { once: true }); + * + * const answer = await rl.question('What is your favorite food? ', { signal }); + * console.log(`Oh, so your favorite food is ${answer}`); + * ``` + * @since v17.0.0 + * @param query A statement or query to write to `output`, prepended to the prompt. + * @return A promise that is fulfilled with the user's input in response to the `query`. + */ + question(query: string): Promise; + question(query: string, options: Abortable): Promise; + } + /** + * @since v17.0.0 + */ + class Readline { + /** + * @param stream A TTY stream. + */ + constructor( + stream: NodeJS.WritableStream, + options?: { + autoCommit?: boolean | undefined; + }, + ); + /** + * The `rl.clearLine()` method adds to the internal list of pending action an + * action that clears current line of the associated `stream` in a specified + * direction identified by `dir`. + * Call `rl.commit()` to see the effect of this method, unless `autoCommit: true` was passed to the constructor. + * @since v17.0.0 + * @return this + */ + clearLine(dir: Direction): this; + /** + * The `rl.clearScreenDown()` method adds to the internal list of pending action an + * action that clears the associated stream from the current position of the + * cursor down. + * Call `rl.commit()` to see the effect of this method, unless `autoCommit: true` was passed to the constructor. + * @since v17.0.0 + * @return this + */ + clearScreenDown(): this; + /** + * The `rl.commit()` method sends all the pending actions to the associated `stream` and clears the internal list of pending actions. + * @since v17.0.0 + */ + commit(): Promise; + /** + * The `rl.cursorTo()` method adds to the internal list of pending action an action + * that moves cursor to the specified position in the associated `stream`. + * Call `rl.commit()` to see the effect of this method, unless `autoCommit: true` was passed to the constructor. + * @since v17.0.0 + * @return this + */ + cursorTo(x: number, y?: number): this; + /** + * The `rl.moveCursor()` method adds to the internal list of pending action an + * action that moves the cursor _relative_ to its current position in the + * associated `stream`. + * Call `rl.commit()` to see the effect of this method, unless `autoCommit: true` was passed to the constructor. + * @since v17.0.0 + * @return this + */ + moveCursor(dx: number, dy: number): this; + /** + * The `rl.rollback` methods clears the internal list of pending actions without + * sending it to the associated `stream`. + * @since v17.0.0 + * @return this + */ + rollback(): this; + } + type Completer = (line: string) => CompleterResult | Promise; + interface ReadLineOptions extends Omit<_ReadLineOptions, "completer"> { + /** + * An optional function used for Tab autocompletion. + */ + completer?: Completer | undefined; + } + /** + * The `readlinePromises.createInterface()` method creates a new `readlinePromises.Interface` instance. + * + * ```js + * import readlinePromises from 'node:readline/promises'; + * const rl = readlinePromises.createInterface({ + * input: process.stdin, + * output: process.stdout, + * }); + * ``` + * + * Once the `readlinePromises.Interface` instance is created, the most common case + * is to listen for the `'line'` event: + * + * ```js + * rl.on('line', (line) => { + * console.log(`Received: ${line}`); + * }); + * ``` + * + * If `terminal` is `true` for this instance then the `output` stream will get + * the best compatibility if it defines an `output.columns` property and emits + * a `'resize'` event on the `output` if or when the columns ever change + * (`process.stdout` does this automatically when it is a TTY). + * @since v17.0.0 + */ + function createInterface( + input: NodeJS.ReadableStream, + output?: NodeJS.WritableStream, + completer?: Completer, + terminal?: boolean, + ): Interface; + function createInterface(options: ReadLineOptions): Interface; +} +declare module "readline/promises" { + export * from "node:readline/promises"; +} diff --git a/server/api/node_modules/@types/node/repl.d.ts b/server/api/node_modules/@types/node/repl.d.ts new file mode 100644 index 0000000..7481bea --- /dev/null +++ b/server/api/node_modules/@types/node/repl.d.ts @@ -0,0 +1,405 @@ +declare module "node:repl" { + import { AsyncCompleter, Completer, Interface, InterfaceEventMap } from "node:readline"; + import { InspectOptions } from "node:util"; + import { Context } from "node:vm"; + interface ReplOptions { + /** + * The input prompt to display. + * @default "> " + */ + prompt?: string | undefined; + /** + * The `Readable` stream from which REPL input will be read. + * @default process.stdin + */ + input?: NodeJS.ReadableStream | undefined; + /** + * The `Writable` stream to which REPL output will be written. + * @default process.stdout + */ + output?: NodeJS.WritableStream | undefined; + /** + * If `true`, specifies that the output should be treated as a TTY terminal, and have + * ANSI/VT100 escape codes written to it. + * Default: checking the value of the `isTTY` property on the output stream upon + * instantiation. + */ + terminal?: boolean | undefined; + /** + * The function to be used when evaluating each given line of input. + * **Default:** an async wrapper for the JavaScript `eval()` function. An `eval` function can + * error with `repl.Recoverable` to indicate the input was incomplete and prompt for + * additional lines. See the [custom evaluation functions](https://nodejs.org/dist/latest-v25.x/docs/api/repl.html#custom-evaluation-functions) + * section for more details. + */ + eval?: REPLEval | undefined; + /** + * Defines if the repl prints output previews or not. + * @default `true` Always `false` in case `terminal` is falsy. + */ + preview?: boolean | undefined; + /** + * If `true`, specifies that the default `writer` function should include ANSI color + * styling to REPL output. If a custom `writer` function is provided then this has no + * effect. + * @default the REPL instance's `terminal` value + */ + useColors?: boolean | undefined; + /** + * If `true`, specifies that the default evaluation function will use the JavaScript + * `global` as the context as opposed to creating a new separate context for the REPL + * instance. The node CLI REPL sets this value to `true`. + * @default false + */ + useGlobal?: boolean | undefined; + /** + * If `true`, specifies that the default writer will not output the return value of a + * command if it evaluates to `undefined`. + * @default false + */ + ignoreUndefined?: boolean | undefined; + /** + * The function to invoke to format the output of each command before writing to `output`. + * @default a wrapper for `util.inspect` + * + * @see https://nodejs.org/dist/latest-v25.x/docs/api/repl.html#repl_customizing_repl_output + */ + writer?: REPLWriter | undefined; + /** + * An optional function used for custom Tab auto completion. + * + * @see https://nodejs.org/dist/latest-v25.x/docs/api/readline.html#readline_use_of_the_completer_function + */ + completer?: Completer | AsyncCompleter | undefined; + /** + * A flag that specifies whether the default evaluator executes all JavaScript commands in + * strict mode or default (sloppy) mode. + * Accepted values are: + * - `repl.REPL_MODE_SLOPPY` - evaluates expressions in sloppy mode. + * - `repl.REPL_MODE_STRICT` - evaluates expressions in strict mode. This is equivalent to + * prefacing every repl statement with `'use strict'`. + */ + replMode?: typeof REPL_MODE_SLOPPY | typeof REPL_MODE_STRICT | undefined; + /** + * Stop evaluating the current piece of code when `SIGINT` is received, i.e. `Ctrl+C` is + * pressed. This cannot be used together with a custom `eval` function. + * @default false + */ + breakEvalOnSigint?: boolean | undefined; + } + type REPLEval = ( + this: REPLServer, + evalCmd: string, + context: Context, + file: string, + cb: (err: Error | null, result: any) => void, + ) => void; + type REPLWriter = (this: REPLServer, obj: any) => string; + /** + * This is the default "writer" value, if none is passed in the REPL options, + * and it can be overridden by custom print functions. + */ + const writer: REPLWriter & { + options: InspectOptions; + }; + type REPLCommandAction = (this: REPLServer, text: string) => void; + interface REPLCommand { + /** + * Help text to be displayed when `.help` is entered. + */ + help?: string | undefined; + /** + * The function to execute, optionally accepting a single string argument. + */ + action: REPLCommandAction; + } + interface REPLServerSetupHistoryOptions { + filePath?: string | undefined; + size?: number | undefined; + removeHistoryDuplicates?: boolean | undefined; + onHistoryFileLoaded?: ((err: Error | null, repl: REPLServer) => void) | undefined; + } + interface REPLServerEventMap extends InterfaceEventMap { + "exit": []; + "reset": [context: Context]; + } + /** + * Instances of `repl.REPLServer` are created using the {@link start} method + * or directly using the JavaScript `new` keyword. + * + * ```js + * import repl from 'node:repl'; + * + * const options = { useColors: true }; + * + * const firstInstance = repl.start(options); + * const secondInstance = new repl.REPLServer(options); + * ``` + * @since v0.1.91 + */ + class REPLServer extends Interface { + /** + * NOTE: According to the documentation: + * + * > Instances of `repl.REPLServer` are created using the `repl.start()` method and + * > _should not_ be created directly using the JavaScript `new` keyword. + * + * `REPLServer` cannot be subclassed due to implementation specifics in NodeJS. + * + * @see https://nodejs.org/dist/latest-v25.x/docs/api/repl.html#repl_class_replserver + */ + private constructor(); + /** + * The `vm.Context` provided to the `eval` function to be used for JavaScript + * evaluation. + */ + readonly context: Context; + /** + * @deprecated since v14.3.0 - Use `input` instead. + */ + readonly inputStream: NodeJS.ReadableStream; + /** + * @deprecated since v14.3.0 - Use `output` instead. + */ + readonly outputStream: NodeJS.WritableStream; + /** + * The `Readable` stream from which REPL input will be read. + */ + readonly input: NodeJS.ReadableStream; + /** + * The `Writable` stream to which REPL output will be written. + */ + readonly output: NodeJS.WritableStream; + /** + * The commands registered via `replServer.defineCommand()`. + */ + readonly commands: NodeJS.ReadOnlyDict; + /** + * A value indicating whether the REPL is currently in "editor mode". + * + * @see https://nodejs.org/dist/latest-v25.x/docs/api/repl.html#repl_commands_and_special_keys + */ + readonly editorMode: boolean; + /** + * A value indicating whether the `_` variable has been assigned. + * + * @see https://nodejs.org/dist/latest-v25.x/docs/api/repl.html#repl_assignment_of_the_underscore_variable + */ + readonly underscoreAssigned: boolean; + /** + * The last evaluation result from the REPL (assigned to the `_` variable inside of the REPL). + * + * @see https://nodejs.org/dist/latest-v25.x/docs/api/repl.html#repl_assignment_of_the_underscore_variable + */ + readonly last: any; + /** + * A value indicating whether the `_error` variable has been assigned. + * + * @since v9.8.0 + * @see https://nodejs.org/dist/latest-v25.x/docs/api/repl.html#repl_assignment_of_the_underscore_variable + */ + readonly underscoreErrAssigned: boolean; + /** + * The last error raised inside the REPL (assigned to the `_error` variable inside of the REPL). + * + * @since v9.8.0 + * @see https://nodejs.org/dist/latest-v25.x/docs/api/repl.html#repl_assignment_of_the_underscore_variable + */ + readonly lastError: any; + /** + * Specified in the REPL options, this is the function to be used when evaluating each + * given line of input. If not specified in the REPL options, this is an async wrapper + * for the JavaScript `eval()` function. + */ + readonly eval: REPLEval; + /** + * Specified in the REPL options, this is a value indicating whether the default + * `writer` function should include ANSI color styling to REPL output. + */ + readonly useColors: boolean; + /** + * Specified in the REPL options, this is a value indicating whether the default `eval` + * function will use the JavaScript `global` as the context as opposed to creating a new + * separate context for the REPL instance. + */ + readonly useGlobal: boolean; + /** + * Specified in the REPL options, this is a value indicating whether the default `writer` + * function should output the result of a command if it evaluates to `undefined`. + */ + readonly ignoreUndefined: boolean; + /** + * Specified in the REPL options, this is the function to invoke to format the output of + * each command before writing to `outputStream`. If not specified in the REPL options, + * this will be a wrapper for `util.inspect`. + */ + readonly writer: REPLWriter; + /** + * Specified in the REPL options, this is the function to use for custom Tab auto-completion. + */ + readonly completer: Completer | AsyncCompleter; + /** + * Specified in the REPL options, this is a flag that specifies whether the default `eval` + * function should execute all JavaScript commands in strict mode or default (sloppy) mode. + * Possible values are: + * - `repl.REPL_MODE_SLOPPY` - evaluates expressions in sloppy mode. + * - `repl.REPL_MODE_STRICT` - evaluates expressions in strict mode. This is equivalent to + * prefacing every repl statement with `'use strict'`. + */ + readonly replMode: typeof REPL_MODE_SLOPPY | typeof REPL_MODE_STRICT; + /** + * The `replServer.defineCommand()` method is used to add new `.`\-prefixed commands + * to the REPL instance. Such commands are invoked by typing a `.` followed by the `keyword`. The `cmd` is either a `Function` or an `Object` with the following + * properties: + * + * The following example shows two new commands added to the REPL instance: + * + * ```js + * import repl from 'node:repl'; + * + * const replServer = repl.start({ prompt: '> ' }); + * replServer.defineCommand('sayhello', { + * help: 'Say hello', + * action(name) { + * this.clearBufferedCommand(); + * console.log(`Hello, ${name}!`); + * this.displayPrompt(); + * }, + * }); + * replServer.defineCommand('saybye', function saybye() { + * console.log('Goodbye!'); + * this.close(); + * }); + * ``` + * + * The new commands can then be used from within the REPL instance: + * + * ```console + * > .sayhello Node.js User + * Hello, Node.js User! + * > .saybye + * Goodbye! + * ``` + * @since v0.3.0 + * @param keyword The command keyword (_without_ a leading `.` character). + * @param cmd The function to invoke when the command is processed. + */ + defineCommand(keyword: string, cmd: REPLCommandAction | REPLCommand): void; + /** + * The `replServer.displayPrompt()` method readies the REPL instance for input + * from the user, printing the configured `prompt` to a new line in the `output` and resuming the `input` to accept new input. + * + * When multi-line input is being entered, a pipe `'|'` is printed rather than the + * 'prompt'. + * + * When `preserveCursor` is `true`, the cursor placement will not be reset to `0`. + * + * The `replServer.displayPrompt` method is primarily intended to be called from + * within the action function for commands registered using the `replServer.defineCommand()` method. + * @since v0.1.91 + */ + displayPrompt(preserveCursor?: boolean): void; + /** + * The `replServer.clearBufferedCommand()` method clears any command that has been + * buffered but not yet executed. This method is primarily intended to be + * called from within the action function for commands registered using the `replServer.defineCommand()` method. + * @since v9.0.0 + */ + clearBufferedCommand(): void; + /** + * Initializes a history log file for the REPL instance. When executing the + * Node.js binary and using the command-line REPL, a history file is initialized + * by default. However, this is not the case when creating a REPL + * programmatically. Use this method to initialize a history log file when working + * with REPL instances programmatically. + * @since v11.10.0 + * @param historyPath the path to the history file + * @param callback called when history writes are ready or upon error + */ + setupHistory(historyPath: string, callback: (err: Error | null, repl: this) => void): void; + setupHistory( + historyConfig?: REPLServerSetupHistoryOptions, + callback?: (err: Error | null, repl: this) => void, + ): void; + // #region InternalEventEmitter + addListener( + eventName: E, + listener: (...args: REPLServerEventMap[E]) => void, + ): this; + addListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + emit(eventName: E, ...args: REPLServerEventMap[E]): boolean; + emit(eventName: string | symbol, ...args: any[]): boolean; + listenerCount( + eventName: E, + listener?: (...args: REPLServerEventMap[E]) => void, + ): number; + listenerCount(eventName: string | symbol, listener?: (...args: any[]) => void): number; + listeners(eventName: E): ((...args: REPLServerEventMap[E]) => void)[]; + listeners(eventName: string | symbol): ((...args: any[]) => void)[]; + off(eventName: E, listener: (...args: REPLServerEventMap[E]) => void): this; + off(eventName: string | symbol, listener: (...args: any[]) => void): this; + on(eventName: E, listener: (...args: REPLServerEventMap[E]) => void): this; + on(eventName: string | symbol, listener: (...args: any[]) => void): this; + once( + eventName: E, + listener: (...args: REPLServerEventMap[E]) => void, + ): this; + once(eventName: string | symbol, listener: (...args: any[]) => void): this; + prependListener( + eventName: E, + listener: (...args: REPLServerEventMap[E]) => void, + ): this; + prependListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + prependOnceListener( + eventName: E, + listener: (...args: REPLServerEventMap[E]) => void, + ): this; + prependOnceListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + rawListeners(eventName: E): ((...args: REPLServerEventMap[E]) => void)[]; + rawListeners(eventName: string | symbol): ((...args: any[]) => void)[]; + // eslint-disable-next-line @definitelytyped/no-unnecessary-generics + removeAllListeners(eventName?: E): this; + removeAllListeners(eventName?: string | symbol): this; + removeListener( + eventName: E, + listener: (...args: REPLServerEventMap[E]) => void, + ): this; + removeListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + // #endregion + } + /** + * A flag passed in the REPL options. Evaluates expressions in sloppy mode. + */ + const REPL_MODE_SLOPPY: unique symbol; + /** + * A flag passed in the REPL options. Evaluates expressions in strict mode. + * This is equivalent to prefacing every repl statement with `'use strict'`. + */ + const REPL_MODE_STRICT: unique symbol; + /** + * The `repl.start()` method creates and starts a {@link REPLServer} instance. + * + * If `options` is a string, then it specifies the input prompt: + * + * ```js + * import repl from 'node:repl'; + * + * // a Unix style prompt + * repl.start('$ '); + * ``` + * @since v0.1.91 + */ + function start(options?: string | ReplOptions): REPLServer; + /** + * Indicates a recoverable error that a `REPLServer` can use to support multi-line input. + * + * @see https://nodejs.org/dist/latest-v25.x/docs/api/repl.html#repl_recoverable_errors + */ + class Recoverable extends SyntaxError { + err: Error; + constructor(err: Error); + } +} +declare module "repl" { + export * from "node:repl"; +} diff --git a/server/api/node_modules/@types/node/sea.d.ts b/server/api/node_modules/@types/node/sea.d.ts new file mode 100644 index 0000000..85ab108 --- /dev/null +++ b/server/api/node_modules/@types/node/sea.d.ts @@ -0,0 +1,47 @@ +declare module "node:sea" { + type AssetKey = string; + /** + * @since v20.12.0 + * @return Whether this script is running inside a single-executable application. + */ + function isSea(): boolean; + /** + * This method can be used to retrieve the assets configured to be bundled into the + * single-executable application at build time. + * An error is thrown when no matching asset can be found. + * @since v20.12.0 + */ + function getAsset(key: AssetKey): ArrayBuffer; + function getAsset(key: AssetKey, encoding: string): string; + /** + * Similar to `sea.getAsset()`, but returns the result in a [`Blob`](https://developer.mozilla.org/en-US/docs/Web/API/Blob). + * An error is thrown when no matching asset can be found. + * @since v20.12.0 + */ + function getAssetAsBlob(key: AssetKey, options?: { + type: string; + }): Blob; + /** + * This method can be used to retrieve the assets configured to be bundled into the + * single-executable application at build time. + * An error is thrown when no matching asset can be found. + * + * Unlike `sea.getRawAsset()` or `sea.getAssetAsBlob()`, this method does not + * return a copy. Instead, it returns the raw asset bundled inside the executable. + * + * For now, users should avoid writing to the returned array buffer. If the + * injected section is not marked as writable or not aligned properly, + * writes to the returned array buffer is likely to result in a crash. + * @since v20.12.0 + */ + function getRawAsset(key: AssetKey): ArrayBuffer; + /** + * This method can be used to retrieve an array of all the keys of assets + * embedded into the single-executable application. + * An error is thrown when not running inside a single-executable application. + * @since v24.8.0 + * @returns An array containing all the keys of the assets + * embedded in the executable. If no assets are embedded, returns an empty array. + */ + function getAssetKeys(): string[]; +} diff --git a/server/api/node_modules/@types/node/sqlite.d.ts b/server/api/node_modules/@types/node/sqlite.d.ts new file mode 100644 index 0000000..d2111bb --- /dev/null +++ b/server/api/node_modules/@types/node/sqlite.d.ts @@ -0,0 +1,1021 @@ +declare module "node:sqlite" { + import { PathLike } from "node:fs"; + type SQLInputValue = null | number | bigint | string | NodeJS.ArrayBufferView; + type SQLOutputValue = null | number | bigint | string | NodeJS.NonSharedUint8Array; + interface DatabaseSyncOptions { + /** + * If `true`, the database is opened by the constructor. When + * this value is `false`, the database must be opened via the `open()` method. + * @since v22.5.0 + * @default true + */ + open?: boolean | undefined; + /** + * If `true`, foreign key constraints + * are enabled. This is recommended but can be disabled for compatibility with + * legacy database schemas. The enforcement of foreign key constraints can be + * enabled and disabled after opening the database using + * [`PRAGMA foreign_keys`](https://www.sqlite.org/pragma.html#pragma_foreign_keys). + * @since v22.10.0 + * @default true + */ + enableForeignKeyConstraints?: boolean | undefined; + /** + * If `true`, SQLite will accept + * [double-quoted string literals](https://www.sqlite.org/quirks.html#dblquote). + * This is not recommended but can be + * enabled for compatibility with legacy database schemas. + * @since v22.10.0 + * @default false + */ + enableDoubleQuotedStringLiterals?: boolean | undefined; + /** + * If `true`, the database is opened in read-only mode. + * If the database does not exist, opening it will fail. + * @since v22.12.0 + * @default false + */ + readOnly?: boolean | undefined; + /** + * If `true`, the `loadExtension` SQL function + * and the `loadExtension()` method are enabled. + * You can call `enableLoadExtension(false)` later to disable this feature. + * @since v22.13.0 + * @default false + */ + allowExtension?: boolean | undefined; + /** + * The [busy timeout](https://sqlite.org/c3ref/busy_timeout.html) in milliseconds. This is the maximum amount of + * time that SQLite will wait for a database lock to be released before + * returning an error. + * @since v24.0.0 + * @default 0 + */ + timeout?: number | undefined; + /** + * If `true`, integer fields are read as JavaScript `BigInt` values. If `false`, + * integer fields are read as JavaScript numbers. + * @since v24.4.0 + * @default false + */ + readBigInts?: boolean | undefined; + /** + * If `true`, query results are returned as arrays instead of objects. + * @since v24.4.0 + * @default false + */ + returnArrays?: boolean | undefined; + /** + * If `true`, allows binding named parameters without the prefix + * character (e.g., `foo` instead of `:foo`). + * @since v24.4.40 + * @default true + */ + allowBareNamedParameters?: boolean | undefined; + /** + * If `true`, unknown named parameters are ignored when binding. + * If `false`, an exception is thrown for unknown named parameters. + * @since v24.4.40 + * @default false + */ + allowUnknownNamedParameters?: boolean | undefined; + /** + * If `true`, enables the defensive flag. When the defensive flag is enabled, + * language features that allow ordinary SQL to deliberately corrupt the database file are disabled. + * The defensive flag can also be set using `enableDefensive()`. + * @since v25.1.0 + * @default true + */ + defensive?: boolean | undefined; + } + interface CreateSessionOptions { + /** + * A specific table to track changes for. By default, changes to all tables are tracked. + * @since v22.12.0 + */ + table?: string | undefined; + /** + * Name of the database to track. This is useful when multiple databases have been added using + * [`ATTACH DATABASE`](https://www.sqlite.org/lang_attach.html). + * @since v22.12.0 + * @default 'main' + */ + db?: string | undefined; + } + interface ApplyChangesetOptions { + /** + * Skip changes that, when targeted table name is supplied to this function, return a truthy value. + * By default, all changes are attempted. + * @since v22.12.0 + */ + filter?: ((tableName: string) => boolean) | undefined; + /** + * A function that determines how to handle conflicts. The function receives one argument, + * which can be one of the following values: + * + * * `SQLITE_CHANGESET_DATA`: A `DELETE` or `UPDATE` change does not contain the expected "before" values. + * * `SQLITE_CHANGESET_NOTFOUND`: A row matching the primary key of the `DELETE` or `UPDATE` change does not exist. + * * `SQLITE_CHANGESET_CONFLICT`: An `INSERT` change results in a duplicate primary key. + * * `SQLITE_CHANGESET_FOREIGN_KEY`: Applying a change would result in a foreign key violation. + * * `SQLITE_CHANGESET_CONSTRAINT`: Applying a change results in a `UNIQUE`, `CHECK`, or `NOT NULL` constraint + * violation. + * + * The function should return one of the following values: + * + * * `SQLITE_CHANGESET_OMIT`: Omit conflicting changes. + * * `SQLITE_CHANGESET_REPLACE`: Replace existing values with conflicting changes (only valid with + `SQLITE_CHANGESET_DATA` or `SQLITE_CHANGESET_CONFLICT` conflicts). + * * `SQLITE_CHANGESET_ABORT`: Abort on conflict and roll back the database. + * + * When an error is thrown in the conflict handler or when any other value is returned from the handler, + * applying the changeset is aborted and the database is rolled back. + * + * **Default**: A function that returns `SQLITE_CHANGESET_ABORT`. + * @since v22.12.0 + */ + onConflict?: ((conflictType: number) => number) | undefined; + } + interface FunctionOptions { + /** + * If `true`, the [`SQLITE_DETERMINISTIC`](https://www.sqlite.org/c3ref/c_deterministic.html) flag is + * set on the created function. + * @default false + */ + deterministic?: boolean | undefined; + /** + * If `true`, the [`SQLITE_DIRECTONLY`](https://www.sqlite.org/c3ref/c_directonly.html) flag is set on + * the created function. + * @default false + */ + directOnly?: boolean | undefined; + /** + * If `true`, integer arguments to `function` + * are converted to `BigInt`s. If `false`, integer arguments are passed as + * JavaScript numbers. + * @default false + */ + useBigIntArguments?: boolean | undefined; + /** + * If `true`, `function` may be invoked with any number of + * arguments (between zero and + * [`SQLITE_MAX_FUNCTION_ARG`](https://www.sqlite.org/limits.html#max_function_arg)). If `false`, + * `function` must be invoked with exactly `function.length` arguments. + * @default false + */ + varargs?: boolean | undefined; + } + interface AggregateOptions extends FunctionOptions { + /** + * The identity value for the aggregation function. This value is used when the aggregation + * function is initialized. When a `Function` is passed the identity will be its return value. + */ + start: T | (() => T); + /** + * The function to call for each row in the aggregation. The + * function receives the current state and the row value. The return value of + * this function should be the new state. + */ + step: (accumulator: T, ...args: SQLOutputValue[]) => T; + /** + * The function to call to get the result of the + * aggregation. The function receives the final state and should return the + * result of the aggregation. + */ + result?: ((accumulator: T) => SQLInputValue) | undefined; + /** + * When this function is provided, the `aggregate` method will work as a window function. + * The function receives the current state and the dropped row value. The return value of this function should be the + * new state. + */ + inverse?: ((accumulator: T, ...args: SQLOutputValue[]) => T) | undefined; + } + interface PrepareOptions { + /** + * If `true`, integer fields are read as `BigInt`s. + * @since v25.5.0 + */ + readBigInts?: boolean | undefined; + /** + * If `true`, results are returned as arrays. + * @since v25.5.0 + */ + returnArrays?: boolean | undefined; + /** + * If `true`, allows binding named parameters without the prefix character. + * @since v25.5.0 + */ + allowBareNamedParameters?: boolean | undefined; + /** + * If `true`, unknown named parameters are ignored. + * @since v25.5.0 + */ + allowUnknownNamedParameters?: boolean | undefined; + } + /** + * This class represents a single [connection](https://www.sqlite.org/c3ref/sqlite3.html) to a SQLite database. All APIs + * exposed by this class execute synchronously. + * @since v22.5.0 + */ + class DatabaseSync implements Disposable { + /** + * Constructs a new `DatabaseSync` instance. + * @param path The path of the database. + * A SQLite database can be stored in a file or completely [in memory](https://www.sqlite.org/inmemorydb.html). + * To use a file-backed database, the path should be a file path. + * To use an in-memory database, the path should be the special name `':memory:'`. + * @param options Configuration options for the database connection. + */ + constructor(path: PathLike, options?: DatabaseSyncOptions); + /** + * Registers a new aggregate function with the SQLite database. This method is a wrapper around + * [`sqlite3_create_window_function()`](https://www.sqlite.org/c3ref/create_function.html). + * + * When used as a window function, the `result` function will be called multiple times. + * + * ```js + * import { DatabaseSync } from 'node:sqlite'; + * + * const db = new DatabaseSync(':memory:'); + * db.exec(` + * CREATE TABLE t3(x, y); + * INSERT INTO t3 VALUES ('a', 4), + * ('b', 5), + * ('c', 3), + * ('d', 8), + * ('e', 1); + * `); + * + * db.aggregate('sumint', { + * start: 0, + * step: (acc, value) => acc + value, + * }); + * + * db.prepare('SELECT sumint(y) as total FROM t3').get(); // { total: 21 } + * ``` + * @since v24.0.0 + * @param name The name of the SQLite function to create. + * @param options Function configuration settings. + */ + aggregate(name: string, options: AggregateOptions): void; + aggregate(name: string, options: AggregateOptions): void; + /** + * Closes the database connection. An exception is thrown if the database is not + * open. This method is a wrapper around [`sqlite3_close_v2()`](https://www.sqlite.org/c3ref/close.html). + * @since v22.5.0 + */ + close(): void; + /** + * Loads a shared library into the database connection. This method is a wrapper + * around [`sqlite3_load_extension()`](https://www.sqlite.org/c3ref/load_extension.html). It is required to enable the + * `allowExtension` option when constructing the `DatabaseSync` instance. + * @since v22.13.0 + * @param path The path to the shared library to load. + */ + loadExtension(path: string): void; + /** + * Enables or disables the `loadExtension` SQL function, and the `loadExtension()` + * method. When `allowExtension` is `false` when constructing, you cannot enable + * loading extensions for security reasons. + * @since v22.13.0 + * @param allow Whether to allow loading extensions. + */ + enableLoadExtension(allow: boolean): void; + /** + * Enables or disables the defensive flag. When the defensive flag is active, + * language features that allow ordinary SQL to deliberately corrupt the database file are disabled. + * See [`SQLITE_DBCONFIG_DEFENSIVE`](https://www.sqlite.org/c3ref/c_dbconfig_defensive.html#sqlitedbconfigdefensive) in the SQLite documentation for details. + * @since v25.1.0 + * @param active Whether to set the defensive flag. + */ + enableDefensive(active: boolean): void; + /** + * This method is a wrapper around [`sqlite3_db_filename()`](https://sqlite.org/c3ref/db_filename.html) + * @since v24.0.0 + * @param dbName Name of the database. This can be `'main'` (the default primary database) or any other + * database that has been added with [`ATTACH DATABASE`](https://www.sqlite.org/lang_attach.html) **Default:** `'main'`. + * @returns The location of the database file. When using an in-memory database, + * this method returns null. + */ + location(dbName?: string): string | null; + /** + * This method allows one or more SQL statements to be executed without returning + * any results. This method is useful when executing SQL statements read from a + * file. This method is a wrapper around [`sqlite3_exec()`](https://www.sqlite.org/c3ref/exec.html). + * @since v22.5.0 + * @param sql A SQL string to execute. + */ + exec(sql: string): void; + /** + * This method is used to create SQLite user-defined functions. This method is a + * wrapper around [`sqlite3_create_function_v2()`](https://www.sqlite.org/c3ref/create_function.html). + * @since v22.13.0 + * @param name The name of the SQLite function to create. + * @param options Optional configuration settings for the function. + * @param func The JavaScript function to call when the SQLite + * function is invoked. The return value of this function should be a valid + * SQLite data type: see + * [Type conversion between JavaScript and SQLite](https://nodejs.org/docs/latest-v25.x/api/sqlite.html#type-conversion-between-javascript-and-sqlite). + * The result defaults to `NULL` if the return value is `undefined`. + */ + function( + name: string, + options: FunctionOptions, + func: (...args: SQLOutputValue[]) => SQLInputValue, + ): void; + function(name: string, func: (...args: SQLOutputValue[]) => SQLInputValue): void; + /** + * Sets an authorizer callback that SQLite will invoke whenever it attempts to + * access data or modify the database schema through prepared statements. + * This can be used to implement security policies, audit access, or restrict certain operations. + * This method is a wrapper around [`sqlite3_set_authorizer()`](https://sqlite.org/c3ref/set_authorizer.html). + * + * When invoked, the callback receives five arguments: + * + * * `actionCode` {number} The type of operation being performed (e.g., + * `SQLITE_INSERT`, `SQLITE_UPDATE`, `SQLITE_SELECT`). + * * `arg1` {string|null} The first argument (context-dependent, often a table name). + * * `arg2` {string|null} The second argument (context-dependent, often a column name). + * * `dbName` {string|null} The name of the database. + * * `triggerOrView` {string|null} The name of the trigger or view causing the access. + * + * The callback must return one of the following constants: + * + * * `SQLITE_OK` - Allow the operation. + * * `SQLITE_DENY` - Deny the operation (causes an error). + * * `SQLITE_IGNORE` - Ignore the operation (silently skip). + * + * ```js + * import { DatabaseSync, constants } from 'node:sqlite'; + * const db = new DatabaseSync(':memory:'); + * + * // Set up an authorizer that denies all table creation + * db.setAuthorizer((actionCode) => { + * if (actionCode === constants.SQLITE_CREATE_TABLE) { + * return constants.SQLITE_DENY; + * } + * return constants.SQLITE_OK; + * }); + * + * // This will work + * db.prepare('SELECT 1').get(); + * + * // This will throw an error due to authorization denial + * try { + * db.exec('CREATE TABLE blocked (id INTEGER)'); + * } catch (err) { + * console.log('Operation blocked:', err.message); + * } + * ``` + * @since v24.10.0 + * @param callback The authorizer function to set, or `null` to + * clear the current authorizer. + */ + setAuthorizer( + callback: + | (( + actionCode: number, + arg1: string | null, + arg2: string | null, + dbName: string | null, + triggerOrView: string | null, + ) => number) + | null, + ): void; + /** + * Whether the database is currently open or not. + * @since v22.15.0 + */ + readonly isOpen: boolean; + /** + * Whether the database is currently within a transaction. This method + * is a wrapper around [`sqlite3_get_autocommit()`](https://sqlite.org/c3ref/get_autocommit.html). + * @since v24.0.0 + */ + readonly isTransaction: boolean; + /** + * Opens the database specified in the `path` argument of the `DatabaseSync`constructor. This method should only be used when the database is not opened via + * the constructor. An exception is thrown if the database is already open. + * @since v22.5.0 + */ + open(): void; + /** + * Compiles a SQL statement into a [prepared statement](https://www.sqlite.org/c3ref/stmt.html). This method is a wrapper + * around [`sqlite3_prepare_v2()`](https://www.sqlite.org/c3ref/prepare.html). + * @since v22.5.0 + * @param sql A SQL string to compile to a prepared statement. + * @param options Optional configuration for the prepared statement. + * @return The prepared statement. + */ + prepare(sql: string, options?: PrepareOptions): StatementSync; + /** + * Creates a new {@link SQLTagStore}, which is a Least Recently Used (LRU) cache + * for storing prepared statements. This allows for the efficient reuse of + * prepared statements by tagging them with a unique identifier. + * + * When a tagged SQL literal is executed, the `SQLTagStore` checks if a prepared + * statement for the corresponding SQL query string already exists in the cache. + * If it does, the cached statement is used. If not, a new prepared statement is + * created, executed, and then stored in the cache for future use. This mechanism + * helps to avoid the overhead of repeatedly parsing and preparing the same SQL + * statements. + * + * Tagged statements bind the placeholder values from the template literal as + * parameters to the underlying prepared statement. For example: + * + * ```js + * sqlTagStore.get`SELECT ${value}`; + * ``` + * + * is equivalent to: + * + * ```js + * db.prepare('SELECT ?').get(value); + * ``` + * + * However, in the first example, the tag store will cache the underlying prepared + * statement for future use. + * + * > **Note:** The `${value}` syntax in tagged statements _binds_ a parameter to + * > the prepared statement. This differs from its behavior in _untagged_ template + * > literals, where it performs string interpolation. + * > + * > ```js + * > // This a safe example of binding a parameter to a tagged statement. + * > sqlTagStore.run`INSERT INTO t1 (id) VALUES (${id})`; + * > + * > // This is an *unsafe* example of an untagged template string. + * > // `id` is interpolated into the query text as a string. + * > // This can lead to SQL injection and data corruption. + * > db.run(`INSERT INTO t1 (id) VALUES (${id})`); + * > ``` + * + * The tag store will match a statement from the cache if the query strings + * (including the positions of any bound placeholders) are identical. + * + * ```js + * // The following statements will match in the cache: + * sqlTagStore.get`SELECT * FROM t1 WHERE id = ${id} AND active = 1`; + * sqlTagStore.get`SELECT * FROM t1 WHERE id = ${12345} AND active = 1`; + * + * // The following statements will not match, as the query strings + * // and bound placeholders differ: + * sqlTagStore.get`SELECT * FROM t1 WHERE id = ${id} AND active = 1`; + * sqlTagStore.get`SELECT * FROM t1 WHERE id = 12345 AND active = 1`; + * + * // The following statements will not match, as matches are case-sensitive: + * sqlTagStore.get`SELECT * FROM t1 WHERE id = ${id} AND active = 1`; + * sqlTagStore.get`select * from t1 where id = ${id} and active = 1`; + * ``` + * + * The only way of binding parameters in tagged statements is with the `${value}` + * syntax. Do not add parameter binding placeholders (`?` etc.) to the SQL query + * string itself. + * + * ```js + * import { DatabaseSync } from 'node:sqlite'; + * + * const db = new DatabaseSync(':memory:'); + * const sql = db.createSQLTagStore(); + * + * db.exec('CREATE TABLE users (id INT, name TEXT)'); + * + * // Using the 'run' method to insert data. + * // The tagged literal is used to identify the prepared statement. + * sql.run`INSERT INTO users VALUES (1, 'Alice')`; + * sql.run`INSERT INTO users VALUES (2, 'Bob')`; + * + * // Using the 'get' method to retrieve a single row. + * const name = 'Alice'; + * const user = sql.get`SELECT * FROM users WHERE name = ${name}`; + * console.log(user); // { id: 1, name: 'Alice' } + * + * // Using the 'all' method to retrieve all rows. + * const allUsers = sql.all`SELECT * FROM users ORDER BY id`; + * console.log(allUsers); + * // [ + * // { id: 1, name: 'Alice' }, + * // { id: 2, name: 'Bob' } + * // ] + * ``` + * @since v24.9.0 + * @returns A new SQL tag store for caching prepared statements. + */ + createTagStore(maxSize?: number): SQLTagStore; + /** + * Creates and attaches a session to the database. This method is a wrapper around + * [`sqlite3session_create()`](https://www.sqlite.org/session/sqlite3session_create.html) and + * [`sqlite3session_attach()`](https://www.sqlite.org/session/sqlite3session_attach.html). + * @param options The configuration options for the session. + * @returns A session handle. + * @since v22.12.0 + */ + createSession(options?: CreateSessionOptions): Session; + /** + * An exception is thrown if the database is not + * open. This method is a wrapper around + * [`sqlite3changeset_apply()`](https://www.sqlite.org/session/sqlite3changeset_apply.html). + * + * ```js + * import { DatabaseSync } from 'node:sqlite'; + * + * const sourceDb = new DatabaseSync(':memory:'); + * const targetDb = new DatabaseSync(':memory:'); + * + * sourceDb.exec('CREATE TABLE data(key INTEGER PRIMARY KEY, value TEXT)'); + * targetDb.exec('CREATE TABLE data(key INTEGER PRIMARY KEY, value TEXT)'); + * + * const session = sourceDb.createSession(); + * + * const insert = sourceDb.prepare('INSERT INTO data (key, value) VALUES (?, ?)'); + * insert.run(1, 'hello'); + * insert.run(2, 'world'); + * + * const changeset = session.changeset(); + * targetDb.applyChangeset(changeset); + * // Now that the changeset has been applied, targetDb contains the same data as sourceDb. + * ``` + * @param changeset A binary changeset or patchset. + * @param options The configuration options for how the changes will be applied. + * @returns Whether the changeset was applied successfully without being aborted. + * @since v22.12.0 + */ + applyChangeset(changeset: Uint8Array, options?: ApplyChangesetOptions): boolean; + /** + * Closes the database connection. If the database connection is already closed + * then this is a no-op. + * @since v22.15.0 + */ + [Symbol.dispose](): void; + } + /** + * @since v22.12.0 + */ + interface Session { + /** + * Retrieves a changeset containing all changes since the changeset was created. Can be called multiple times. + * An exception is thrown if the database or the session is not open. This method is a wrapper around + * [`sqlite3session_changeset()`](https://www.sqlite.org/session/sqlite3session_changeset.html). + * @returns Binary changeset that can be applied to other databases. + * @since v22.12.0 + */ + changeset(): NodeJS.NonSharedUint8Array; + /** + * Similar to the method above, but generates a more compact patchset. See + * [Changesets and Patchsets](https://www.sqlite.org/sessionintro.html#changesets_and_patchsets) + * in the documentation of SQLite. An exception is thrown if the database or the session is not open. This method is a + * wrapper around + * [`sqlite3session_patchset()`](https://www.sqlite.org/session/sqlite3session_patchset.html). + * @returns Binary patchset that can be applied to other databases. + * @since v22.12.0 + */ + patchset(): NodeJS.NonSharedUint8Array; + /** + * Closes the session. An exception is thrown if the database or the session is not open. This method is a + * wrapper around + * [`sqlite3session_delete()`](https://www.sqlite.org/session/sqlite3session_delete.html). + */ + close(): void; + /** + * Closes the session. If the session is already closed, does nothing. + * @since v24.9.0 + */ + [Symbol.dispose](): void; + } + /** + * This class represents a single LRU (Least Recently Used) cache for storing + * prepared statements. + * + * Instances of this class are created via the `database.createTagStore()` + * method, not by using a constructor. The store caches prepared statements based + * on the provided SQL query string. When the same query is seen again, the store + * retrieves the cached statement and safely applies the new values through + * parameter binding, thereby preventing attacks like SQL injection. + * + * The cache has a maxSize that defaults to 1000 statements, but a custom size can + * be provided (e.g., `database.createTagStore(100)`). All APIs exposed by this + * class execute synchronously. + * @since v24.9.0 + */ + interface SQLTagStore { + /** + * Executes the given SQL query and returns all resulting rows as an array of + * objects. + * + * This function is intended to be used as a template literal tag, not to be + * called directly. + * @since v24.9.0 + * @param stringElements Template literal elements containing the SQL + * query. + * @param boundParameters Parameter values to be bound to placeholders in the template string. + * @returns An array of objects representing the rows returned by the query. + */ + all( + stringElements: TemplateStringsArray, + ...boundParameters: SQLInputValue[] + ): Record[]; + /** + * Executes the given SQL query and returns the first resulting row as an object. + * + * This function is intended to be used as a template literal tag, not to be + * called directly. + * @since v24.9.0 + * @param stringElements Template literal elements containing the SQL + * query. + * @param boundParameters Parameter values to be bound to placeholders in the template string. + * @returns An object representing the first row returned by + * the query, or `undefined` if no rows are returned. + */ + get( + stringElements: TemplateStringsArray, + ...boundParameters: SQLInputValue[] + ): Record | undefined; + /** + * Executes the given SQL query and returns an iterator over the resulting rows. + * + * This function is intended to be used as a template literal tag, not to be + * called directly. + * @since v24.9.0 + * @param stringElements Template literal elements containing the SQL + * query. + * @param boundParameters Parameter values to be bound to placeholders in the template string. + * @returns An iterator that yields objects representing the rows returned by the query. + */ + iterate( + stringElements: TemplateStringsArray, + ...boundParameters: SQLInputValue[] + ): NodeJS.Iterator>; + /** + * Executes the given SQL query, which is expected to not return any rows (e.g., INSERT, UPDATE, DELETE). + * + * This function is intended to be used as a template literal tag, not to be + * called directly. + * @since v24.9.0 + * @param stringElements Template literal elements containing the SQL + * query. + * @param boundParameters Parameter values to be bound to placeholders in the template string. + * @returns An object containing information about the execution, including `changes` and `lastInsertRowid`. + */ + run(stringElements: TemplateStringsArray, ...boundParameters: SQLInputValue[]): StatementResultingChanges; + /** + * A read-only property that returns the number of prepared statements currently in the cache. + * @since v24.9.0 + */ + readonly size: number; + /** + * A read-only property that returns the maximum number of prepared statements the cache can hold. + * @since v24.9.0 + */ + readonly capacity: number; + /** + * A read-only property that returns the `DatabaseSync` object associated with this `SQLTagStore`. + * @since v24.9.0 + */ + readonly db: DatabaseSync; + /** + * Resets the LRU cache, clearing all stored prepared statements. + * @since v24.9.0 + */ + clear(): void; + } + interface StatementColumnMetadata { + /** + * The unaliased name of the column in the origin + * table, or `null` if the column is the result of an expression or subquery. + * This property is the result of [`sqlite3_column_origin_name()`](https://www.sqlite.org/c3ref/column_database_name.html). + */ + column: string | null; + /** + * The unaliased name of the origin database, or + * `null` if the column is the result of an expression or subquery. This + * property is the result of [`sqlite3_column_database_name()`](https://www.sqlite.org/c3ref/column_database_name.html). + */ + database: string | null; + /** + * The name assigned to the column in the result set of a + * `SELECT` statement. This property is the result of + * [`sqlite3_column_name()`](https://www.sqlite.org/c3ref/column_name.html). + */ + name: string; + /** + * The unaliased name of the origin table, or `null` if + * the column is the result of an expression or subquery. This property is the + * result of [`sqlite3_column_table_name()`](https://www.sqlite.org/c3ref/column_database_name.html). + */ + table: string | null; + /** + * The declared data type of the column, or `null` if the + * column is the result of an expression or subquery. This property is the + * result of [`sqlite3_column_decltype()`](https://www.sqlite.org/c3ref/column_decltype.html). + */ + type: string | null; + } + interface StatementResultingChanges { + /** + * The number of rows modified, inserted, or deleted by the most recently completed `INSERT`, `UPDATE`, or `DELETE` statement. + * This field is either a number or a `BigInt` depending on the prepared statement's configuration. + * This property is the result of [`sqlite3_changes64()`](https://www.sqlite.org/c3ref/changes.html). + */ + changes: number | bigint; + /** + * The most recently inserted rowid. + * This field is either a number or a `BigInt` depending on the prepared statement's configuration. + * This property is the result of [`sqlite3_last_insert_rowid()`](https://www.sqlite.org/c3ref/last_insert_rowid.html). + */ + lastInsertRowid: number | bigint; + } + /** + * This class represents a single [prepared statement](https://www.sqlite.org/c3ref/stmt.html). This class cannot be + * instantiated via its constructor. Instead, instances are created via the`database.prepare()` method. All APIs exposed by this class execute + * synchronously. + * + * A prepared statement is an efficient binary representation of the SQL used to + * create it. Prepared statements are parameterizable, and can be invoked multiple + * times with different bound values. Parameters also offer protection against [SQL injection](https://en.wikipedia.org/wiki/SQL_injection) attacks. For these reasons, prepared statements are + * preferred + * over hand-crafted SQL strings when handling user input. + * @since v22.5.0 + */ + class StatementSync { + private constructor(); + /** + * This method executes a prepared statement and returns all results as an array of + * objects. If the prepared statement does not return any results, this method + * returns an empty array. The prepared statement [parameters are bound](https://www.sqlite.org/c3ref/bind_blob.html) using + * the values in `namedParameters` and `anonymousParameters`. + * @since v22.5.0 + * @param namedParameters An optional object used to bind named parameters. The keys of this object are used to configure the mapping. + * @param anonymousParameters Zero or more values to bind to anonymous parameters. + * @return An array of objects. Each object corresponds to a row returned by executing the prepared statement. The keys and values of each object correspond to the column names and values of + * the row. + */ + all(...anonymousParameters: SQLInputValue[]): Record[]; + all( + namedParameters: Record, + ...anonymousParameters: SQLInputValue[] + ): Record[]; + /** + * This method is used to retrieve information about the columns returned by the + * prepared statement. + * @since v23.11.0 + * @returns An array of objects. Each object corresponds to a column + * in the prepared statement, and contains the following properties: + */ + columns(): StatementColumnMetadata[]; + /** + * The source SQL text of the prepared statement with parameter + * placeholders replaced by the values that were used during the most recent + * execution of this prepared statement. This property is a wrapper around + * [`sqlite3_expanded_sql()`](https://www.sqlite.org/c3ref/expanded_sql.html). + * @since v22.5.0 + */ + readonly expandedSQL: string; + /** + * This method executes a prepared statement and returns the first result as an + * object. If the prepared statement does not return any results, this method + * returns `undefined`. The prepared statement [parameters are bound](https://www.sqlite.org/c3ref/bind_blob.html) using the + * values in `namedParameters` and `anonymousParameters`. + * @since v22.5.0 + * @param namedParameters An optional object used to bind named parameters. The keys of this object are used to configure the mapping. + * @param anonymousParameters Zero or more values to bind to anonymous parameters. + * @return An object corresponding to the first row returned by executing the prepared statement. The keys and values of the object correspond to the column names and values of the row. If no + * rows were returned from the database then this method returns `undefined`. + */ + get(...anonymousParameters: SQLInputValue[]): Record | undefined; + get( + namedParameters: Record, + ...anonymousParameters: SQLInputValue[] + ): Record | undefined; + /** + * This method executes a prepared statement and returns an iterator of + * objects. If the prepared statement does not return any results, this method + * returns an empty iterator. The prepared statement [parameters are bound](https://www.sqlite.org/c3ref/bind_blob.html) using + * the values in `namedParameters` and `anonymousParameters`. + * @since v22.13.0 + * @param namedParameters An optional object used to bind named parameters. + * The keys of this object are used to configure the mapping. + * @param anonymousParameters Zero or more values to bind to anonymous parameters. + * @returns An iterable iterator of objects. Each object corresponds to a row + * returned by executing the prepared statement. The keys and values of each + * object correspond to the column names and values of the row. + */ + iterate(...anonymousParameters: SQLInputValue[]): NodeJS.Iterator>; + iterate( + namedParameters: Record, + ...anonymousParameters: SQLInputValue[] + ): NodeJS.Iterator>; + /** + * This method executes a prepared statement and returns an object summarizing the + * resulting changes. The prepared statement [parameters are bound](https://www.sqlite.org/c3ref/bind_blob.html) using the + * values in `namedParameters` and `anonymousParameters`. + * @since v22.5.0 + * @param namedParameters An optional object used to bind named parameters. The keys of this object are used to configure the mapping. + * @param anonymousParameters Zero or more values to bind to anonymous parameters. + */ + run(...anonymousParameters: SQLInputValue[]): StatementResultingChanges; + run( + namedParameters: Record, + ...anonymousParameters: SQLInputValue[] + ): StatementResultingChanges; + /** + * The names of SQLite parameters begin with a prefix character. By default,`node:sqlite` requires that this prefix character is present when binding + * parameters. However, with the exception of dollar sign character, these + * prefix characters also require extra quoting when used in object keys. + * + * To improve ergonomics, this method can be used to also allow bare named + * parameters, which do not require the prefix character in JavaScript code. There + * are several caveats to be aware of when enabling bare named parameters: + * + * * The prefix character is still required in SQL. + * * The prefix character is still allowed in JavaScript. In fact, prefixed names + * will have slightly better binding performance. + * * Using ambiguous named parameters, such as `$k` and `@k`, in the same prepared + * statement will result in an exception as it cannot be determined how to bind + * a bare name. + * @since v22.5.0 + * @param enabled Enables or disables support for binding named parameters without the prefix character. + */ + setAllowBareNamedParameters(enabled: boolean): void; + /** + * By default, if an unknown name is encountered while binding parameters, an + * exception is thrown. This method allows unknown named parameters to be ignored. + * @since v22.15.0 + * @param enabled Enables or disables support for unknown named parameters. + */ + setAllowUnknownNamedParameters(enabled: boolean): void; + /** + * When enabled, query results returned by the `all()`, `get()`, and `iterate()` methods will be returned as arrays instead + * of objects. + * @since v24.0.0 + * @param enabled Enables or disables the return of query results as arrays. + */ + setReturnArrays(enabled: boolean): void; + /** + * When reading from the database, SQLite `INTEGER`s are mapped to JavaScript + * numbers by default. However, SQLite `INTEGER`s can store values larger than + * JavaScript numbers are capable of representing. In such cases, this method can + * be used to read `INTEGER` data using JavaScript `BigInt`s. This method has no + * impact on database write operations where numbers and `BigInt`s are both + * supported at all times. + * @since v22.5.0 + * @param enabled Enables or disables the use of `BigInt`s when reading `INTEGER` fields from the database. + */ + setReadBigInts(enabled: boolean): void; + /** + * The source SQL text of the prepared statement. This property is a + * wrapper around [`sqlite3_sql()`](https://www.sqlite.org/c3ref/expanded_sql.html). + * @since v22.5.0 + */ + readonly sourceSQL: string; + } + interface BackupOptions { + /** + * Name of the source database. This can be `'main'` (the default primary database) or any other + * database that have been added with [`ATTACH DATABASE`](https://www.sqlite.org/lang_attach.html) + * @default 'main' + */ + source?: string | undefined; + /** + * Name of the target database. This can be `'main'` (the default primary database) or any other + * database that have been added with [`ATTACH DATABASE`](https://www.sqlite.org/lang_attach.html) + * @default 'main' + */ + target?: string | undefined; + /** + * Number of pages to be transmitted in each batch of the backup. + * @default 100 + */ + rate?: number | undefined; + /** + * An optional callback function that will be called after each backup step. The argument passed + * to this callback is an `Object` with `remainingPages` and `totalPages` properties, describing the current progress + * of the backup operation. + */ + progress?: ((progressInfo: BackupProgressInfo) => void) | undefined; + } + interface BackupProgressInfo { + totalPages: number; + remainingPages: number; + } + /** + * This method makes a database backup. This method abstracts the + * [`sqlite3_backup_init()`](https://www.sqlite.org/c3ref/backup_finish.html#sqlite3backupinit), + * [`sqlite3_backup_step()`](https://www.sqlite.org/c3ref/backup_finish.html#sqlite3backupstep) + * and [`sqlite3_backup_finish()`](https://www.sqlite.org/c3ref/backup_finish.html#sqlite3backupfinish) functions. + * + * The backed-up database can be used normally during the backup process. Mutations coming from the same connection - same + * `DatabaseSync` - object will be reflected in the backup right away. However, mutations from other connections will cause + * the backup process to restart. + * + * ```js + * import { backup, DatabaseSync } from 'node:sqlite'; + * + * const sourceDb = new DatabaseSync('source.db'); + * const totalPagesTransferred = await backup(sourceDb, 'backup.db', { + * rate: 1, // Copy one page at a time. + * progress: ({ totalPages, remainingPages }) => { + * console.log('Backup in progress', { totalPages, remainingPages }); + * }, + * }); + * + * console.log('Backup completed', totalPagesTransferred); + * ``` + * @since v23.8.0 + * @param sourceDb The database to backup. The source database must be open. + * @param path The path where the backup will be created. If the file already exists, + * the contents will be overwritten. + * @param options Optional configuration for the backup. The + * following properties are supported: + * @returns A promise that fulfills with the total number of backed-up pages upon completion, or rejects if an + * error occurs. + */ + function backup(sourceDb: DatabaseSync, path: PathLike, options?: BackupOptions): Promise; + /** + * @since v22.13.0 + */ + namespace constants { + /** + * The conflict handler is invoked with this constant when processing a DELETE or UPDATE change if a row with the required PRIMARY KEY fields is present in the database, but one or more other (non primary-key) fields modified by the update do not contain the expected "before" values. + * @since v22.14.0 + */ + const SQLITE_CHANGESET_DATA: number; + /** + * The conflict handler is invoked with this constant when processing a DELETE or UPDATE change if a row with the required PRIMARY KEY fields is not present in the database. + * @since v22.14.0 + */ + const SQLITE_CHANGESET_NOTFOUND: number; + /** + * This constant is passed to the conflict handler while processing an INSERT change if the operation would result in duplicate primary key values. + * @since v22.14.0 + */ + const SQLITE_CHANGESET_CONFLICT: number; + /** + * If foreign key handling is enabled, and applying a changeset leaves the database in a state containing foreign key violations, the conflict handler is invoked with this constant exactly once before the changeset is committed. If the conflict handler returns `SQLITE_CHANGESET_OMIT`, the changes, including those that caused the foreign key constraint violation, are committed. Or, if it returns `SQLITE_CHANGESET_ABORT`, the changeset is rolled back. + * @since v22.14.0 + */ + const SQLITE_CHANGESET_FOREIGN_KEY: number; + /** + * Conflicting changes are omitted. + * @since v22.12.0 + */ + const SQLITE_CHANGESET_OMIT: number; + /** + * Conflicting changes replace existing values. Note that this value can only be returned when the type of conflict is either `SQLITE_CHANGESET_DATA` or `SQLITE_CHANGESET_CONFLICT`. + * @since v22.12.0 + */ + const SQLITE_CHANGESET_REPLACE: number; + /** + * Abort when a change encounters a conflict and roll back database. + * @since v22.12.0 + */ + const SQLITE_CHANGESET_ABORT: number; + /** + * Deny the operation and cause an error to be returned. + * @since v24.10.0 + */ + const SQLITE_DENY: number; + /** + * Ignore the operation and continue as if it had never been requested. + * @since 24.10.0 + */ + const SQLITE_IGNORE: number; + /** + * Allow the operation to proceed normally. + * @since v24.10.0 + */ + const SQLITE_OK: number; + const SQLITE_CREATE_INDEX: number; + const SQLITE_CREATE_TABLE: number; + const SQLITE_CREATE_TEMP_INDEX: number; + const SQLITE_CREATE_TEMP_TABLE: number; + const SQLITE_CREATE_TEMP_TRIGGER: number; + const SQLITE_CREATE_TEMP_VIEW: number; + const SQLITE_CREATE_TRIGGER: number; + const SQLITE_CREATE_VIEW: number; + const SQLITE_DELETE: number; + const SQLITE_DROP_INDEX: number; + const SQLITE_DROP_TABLE: number; + const SQLITE_DROP_TEMP_INDEX: number; + const SQLITE_DROP_TEMP_TABLE: number; + const SQLITE_DROP_TEMP_TRIGGER: number; + const SQLITE_DROP_TEMP_VIEW: number; + const SQLITE_DROP_TRIGGER: number; + const SQLITE_DROP_VIEW: number; + const SQLITE_INSERT: number; + const SQLITE_PRAGMA: number; + const SQLITE_READ: number; + const SQLITE_SELECT: number; + const SQLITE_TRANSACTION: number; + const SQLITE_UPDATE: number; + const SQLITE_ATTACH: number; + const SQLITE_DETACH: number; + const SQLITE_ALTER_TABLE: number; + const SQLITE_REINDEX: number; + const SQLITE_ANALYZE: number; + const SQLITE_CREATE_VTABLE: number; + const SQLITE_DROP_VTABLE: number; + const SQLITE_FUNCTION: number; + const SQLITE_SAVEPOINT: number; + const SQLITE_COPY: number; + const SQLITE_RECURSIVE: number; + } +} diff --git a/server/api/node_modules/@types/node/stream.d.ts b/server/api/node_modules/@types/node/stream.d.ts new file mode 100644 index 0000000..1591667 --- /dev/null +++ b/server/api/node_modules/@types/node/stream.d.ts @@ -0,0 +1,1774 @@ +declare module "node:stream" { + import { Blob } from "node:buffer"; + import { Abortable, EventEmitter } from "node:events"; + import * as promises from "node:stream/promises"; + import * as web from "node:stream/web"; + class Stream extends EventEmitter { + /** + * @since v0.9.4 + */ + pipe( + destination: T, + options?: Stream.PipeOptions, + ): T; + } + namespace Stream { + export { promises, Stream }; + } + namespace Stream { + interface PipeOptions { + /** + * End the writer when the reader ends. + * @default true + */ + end?: boolean | undefined; + } + interface StreamOptions extends Abortable { + emitClose?: boolean | undefined; + highWaterMark?: number | undefined; + objectMode?: boolean | undefined; + construct?: ((this: T, callback: (error?: Error | null) => void) => void) | undefined; + destroy?: ((this: T, error: Error | null, callback: (error?: Error | null) => void) => void) | undefined; + autoDestroy?: boolean | undefined; + } + interface ReadableOptions extends StreamOptions { + encoding?: BufferEncoding | undefined; + read?: ((this: T, size: number) => void) | undefined; + } + interface ReadableIteratorOptions { + /** + * When set to `false`, calling `return` on the async iterator, + * or exiting a `for await...of` iteration using a `break`, + * `return`, or `throw` will not destroy the stream. + * @default true + */ + destroyOnReturn?: boolean | undefined; + } + interface ReadableOperatorOptions extends Abortable { + /** + * The maximum concurrent invocations of `fn` to call + * on the stream at once. + * @default 1 + */ + concurrency?: number | undefined; + /** + * How many items to buffer while waiting for user consumption + * of the output. + * @default concurrency * 2 - 1 + */ + highWaterMark?: number | undefined; + } + /** @deprecated Use `ReadableOperatorOptions` instead. */ + interface ArrayOptions extends ReadableOperatorOptions {} + interface ReadableToWebOptions { + strategy?: web.QueuingStrategy | undefined; + type?: web.ReadableStreamType | undefined; + } + interface ReadableEventMap { + "close": []; + "data": [chunk: any]; + "end": []; + "error": [err: Error]; + "pause": []; + "readable": []; + "resume": []; + } + /** + * @since v0.9.4 + */ + class Readable extends Stream implements NodeJS.ReadableStream { + constructor(options?: ReadableOptions); + /** + * A utility method for creating Readable Streams out of iterators. + * @since v12.3.0, v10.17.0 + * @param iterable Object implementing the `Symbol.asyncIterator` or `Symbol.iterator` iterable protocol. Emits an 'error' event if a null value is passed. + * @param options Options provided to `new stream.Readable([options])`. By default, `Readable.from()` will set `options.objectMode` to `true`, unless this is explicitly opted out by setting `options.objectMode` to `false`. + */ + static from(iterable: Iterable | AsyncIterable, options?: ReadableOptions): Readable; + /** + * A utility method for creating a `Readable` from a web `ReadableStream`. + * @since v17.0.0 + */ + static fromWeb( + readableStream: web.ReadableStream, + options?: Pick, + ): Readable; + /** + * A utility method for creating a web `ReadableStream` from a `Readable`. + * @since v17.0.0 + */ + static toWeb( + streamReadable: NodeJS.ReadableStream, + options?: ReadableToWebOptions, + ): web.ReadableStream; + /** + * Returns whether the stream has been read from or cancelled. + * @since v16.8.0 + */ + static isDisturbed(stream: NodeJS.ReadableStream | web.ReadableStream): boolean; + /** + * Returns whether the stream was destroyed or errored before emitting `'end'`. + * @since v16.8.0 + */ + readonly readableAborted: boolean; + /** + * Is `true` if it is safe to call {@link read}, which means + * the stream has not been destroyed or emitted `'error'` or `'end'`. + * @since v11.4.0 + */ + readable: boolean; + /** + * Returns whether `'data'` has been emitted. + * @since v16.7.0, v14.18.0 + */ + readonly readableDidRead: boolean; + /** + * Getter for the property `encoding` of a given `Readable` stream. The `encoding` property can be set using the {@link setEncoding} method. + * @since v12.7.0 + */ + readonly readableEncoding: BufferEncoding | null; + /** + * Becomes `true` when [`'end'`](https://nodejs.org/docs/latest-v25.x/api/stream.html#event-end) event is emitted. + * @since v12.9.0 + */ + readonly readableEnded: boolean; + /** + * This property reflects the current state of a `Readable` stream as described + * in the [Three states](https://nodejs.org/docs/latest-v25.x/api/stream.html#three-states) section. + * @since v9.4.0 + */ + readableFlowing: boolean | null; + /** + * Returns the value of `highWaterMark` passed when creating this `Readable`. + * @since v9.3.0 + */ + readonly readableHighWaterMark: number; + /** + * This property contains the number of bytes (or objects) in the queue + * ready to be read. The value provides introspection data regarding + * the status of the `highWaterMark`. + * @since v9.4.0 + */ + readonly readableLength: number; + /** + * Getter for the property `objectMode` of a given `Readable` stream. + * @since v12.3.0 + */ + readonly readableObjectMode: boolean; + /** + * Is `true` after `readable.destroy()` has been called. + * @since v8.0.0 + */ + destroyed: boolean; + /** + * Is `true` after `'close'` has been emitted. + * @since v18.0.0 + */ + readonly closed: boolean; + /** + * Returns error if the stream has been destroyed with an error. + * @since v18.0.0 + */ + readonly errored: Error | null; + _construct?(callback: (error?: Error | null) => void): void; + _read(size: number): void; + /** + * The `readable.read()` method reads data out of the internal buffer and + * returns it. If no data is available to be read, `null` is returned. By default, + * the data is returned as a `Buffer` object unless an encoding has been + * specified using the `readable.setEncoding()` method or the stream is operating + * in object mode. + * + * The optional `size` argument specifies a specific number of bytes to read. If + * `size` bytes are not available to be read, `null` will be returned _unless_ the + * stream has ended, in which case all of the data remaining in the internal buffer + * will be returned. + * + * If the `size` argument is not specified, all of the data contained in the + * internal buffer will be returned. + * + * The `size` argument must be less than or equal to 1 GiB. + * + * The `readable.read()` method should only be called on `Readable` streams + * operating in paused mode. In flowing mode, `readable.read()` is called + * automatically until the internal buffer is fully drained. + * + * ```js + * const readable = getReadableStreamSomehow(); + * + * // 'readable' may be triggered multiple times as data is buffered in + * readable.on('readable', () => { + * let chunk; + * console.log('Stream is readable (new data received in buffer)'); + * // Use a loop to make sure we read all currently available data + * while (null !== (chunk = readable.read())) { + * console.log(`Read ${chunk.length} bytes of data...`); + * } + * }); + * + * // 'end' will be triggered once when there is no more data available + * readable.on('end', () => { + * console.log('Reached end of stream.'); + * }); + * ``` + * + * Each call to `readable.read()` returns a chunk of data, or `null`. The chunks + * are not concatenated. A `while` loop is necessary to consume all data + * currently in the buffer. When reading a large file `.read()` may return `null`, + * having consumed all buffered content so far, but there is still more data to + * come not yet buffered. In this case a new `'readable'` event will be emitted + * when there is more data in the buffer. Finally the `'end'` event will be + * emitted when there is no more data to come. + * + * Therefore to read a file's whole contents from a `readable`, it is necessary + * to collect chunks across multiple `'readable'` events: + * + * ```js + * const chunks = []; + * + * readable.on('readable', () => { + * let chunk; + * while (null !== (chunk = readable.read())) { + * chunks.push(chunk); + * } + * }); + * + * readable.on('end', () => { + * const content = chunks.join(''); + * }); + * ``` + * + * A `Readable` stream in object mode will always return a single item from + * a call to `readable.read(size)`, regardless of the value of the `size` argument. + * + * If the `readable.read()` method returns a chunk of data, a `'data'` event will + * also be emitted. + * + * Calling {@link read} after the `'end'` event has + * been emitted will return `null`. No runtime error will be raised. + * @since v0.9.4 + * @param size Optional argument to specify how much data to read. + */ + read(size?: number): any; + /** + * The `readable.setEncoding()` method sets the character encoding for + * data read from the `Readable` stream. + * + * By default, no encoding is assigned and stream data will be returned as `Buffer` objects. Setting an encoding causes the stream data + * to be returned as strings of the specified encoding rather than as `Buffer` objects. For instance, calling `readable.setEncoding('utf8')` will cause the + * output data to be interpreted as UTF-8 data, and passed as strings. Calling `readable.setEncoding('hex')` will cause the data to be encoded in hexadecimal + * string format. + * + * The `Readable` stream will properly handle multi-byte characters delivered + * through the stream that would otherwise become improperly decoded if simply + * pulled from the stream as `Buffer` objects. + * + * ```js + * const readable = getReadableStreamSomehow(); + * readable.setEncoding('utf8'); + * readable.on('data', (chunk) => { + * assert.equal(typeof chunk, 'string'); + * console.log('Got %d characters of string data:', chunk.length); + * }); + * ``` + * @since v0.9.4 + * @param encoding The encoding to use. + */ + setEncoding(encoding: BufferEncoding): this; + /** + * The `readable.pause()` method will cause a stream in flowing mode to stop + * emitting `'data'` events, switching out of flowing mode. Any data that + * becomes available will remain in the internal buffer. + * + * ```js + * const readable = getReadableStreamSomehow(); + * readable.on('data', (chunk) => { + * console.log(`Received ${chunk.length} bytes of data.`); + * readable.pause(); + * console.log('There will be no additional data for 1 second.'); + * setTimeout(() => { + * console.log('Now data will start flowing again.'); + * readable.resume(); + * }, 1000); + * }); + * ``` + * + * The `readable.pause()` method has no effect if there is a `'readable'` event listener. + * @since v0.9.4 + */ + pause(): this; + /** + * The `readable.resume()` method causes an explicitly paused `Readable` stream to + * resume emitting `'data'` events, switching the stream into flowing mode. + * + * The `readable.resume()` method can be used to fully consume the data from a + * stream without actually processing any of that data: + * + * ```js + * getReadableStreamSomehow() + * .resume() + * .on('end', () => { + * console.log('Reached the end, but did not read anything.'); + * }); + * ``` + * + * The `readable.resume()` method has no effect if there is a `'readable'` event listener. + * @since v0.9.4 + */ + resume(): this; + /** + * The `readable.isPaused()` method returns the current operating state of the `Readable`. + * This is used primarily by the mechanism that underlies the `readable.pipe()` method. + * In most typical cases, there will be no reason to use this method directly. + * + * ```js + * const readable = new stream.Readable(); + * + * readable.isPaused(); // === false + * readable.pause(); + * readable.isPaused(); // === true + * readable.resume(); + * readable.isPaused(); // === false + * ``` + * @since v0.11.14 + */ + isPaused(): boolean; + /** + * The `readable.unpipe()` method detaches a `Writable` stream previously attached + * using the {@link pipe} method. + * + * If the `destination` is not specified, then _all_ pipes are detached. + * + * If the `destination` is specified, but no pipe is set up for it, then + * the method does nothing. + * + * ```js + * import fs from 'node:fs'; + * const readable = getReadableStreamSomehow(); + * const writable = fs.createWriteStream('file.txt'); + * // All the data from readable goes into 'file.txt', + * // but only for the first second. + * readable.pipe(writable); + * setTimeout(() => { + * console.log('Stop writing to file.txt.'); + * readable.unpipe(writable); + * console.log('Manually close the file stream.'); + * writable.end(); + * }, 1000); + * ``` + * @since v0.9.4 + * @param destination Optional specific stream to unpipe + */ + unpipe(destination?: NodeJS.WritableStream): this; + /** + * Passing `chunk` as `null` signals the end of the stream (EOF) and behaves the + * same as `readable.push(null)`, after which no more data can be written. The EOF + * signal is put at the end of the buffer and any buffered data will still be + * flushed. + * + * The `readable.unshift()` method pushes a chunk of data back into the internal + * buffer. This is useful in certain situations where a stream is being consumed by + * code that needs to "un-consume" some amount of data that it has optimistically + * pulled out of the source, so that the data can be passed on to some other party. + * + * The `stream.unshift(chunk)` method cannot be called after the `'end'` event + * has been emitted or a runtime error will be thrown. + * + * Developers using `stream.unshift()` often should consider switching to + * use of a `Transform` stream instead. See the `API for stream implementers` section for more information. + * + * ```js + * // Pull off a header delimited by \n\n. + * // Use unshift() if we get too much. + * // Call the callback with (error, header, stream). + * import { StringDecoder } from 'node:string_decoder'; + * function parseHeader(stream, callback) { + * stream.on('error', callback); + * stream.on('readable', onReadable); + * const decoder = new StringDecoder('utf8'); + * let header = ''; + * function onReadable() { + * let chunk; + * while (null !== (chunk = stream.read())) { + * const str = decoder.write(chunk); + * if (str.includes('\n\n')) { + * // Found the header boundary. + * const split = str.split(/\n\n/); + * header += split.shift(); + * const remaining = split.join('\n\n'); + * const buf = Buffer.from(remaining, 'utf8'); + * stream.removeListener('error', callback); + * // Remove the 'readable' listener before unshifting. + * stream.removeListener('readable', onReadable); + * if (buf.length) + * stream.unshift(buf); + * // Now the body of the message can be read from the stream. + * callback(null, header, stream); + * return; + * } + * // Still reading the header. + * header += str; + * } + * } + * } + * ``` + * + * Unlike {@link push}, `stream.unshift(chunk)` will not + * end the reading process by resetting the internal reading state of the stream. + * This can cause unexpected results if `readable.unshift()` is called during a + * read (i.e. from within a {@link _read} implementation on a + * custom stream). Following the call to `readable.unshift()` with an immediate {@link push} will reset the reading state appropriately, + * however it is best to simply avoid calling `readable.unshift()` while in the + * process of performing a read. + * @since v0.9.11 + * @param chunk Chunk of data to unshift onto the read queue. For streams not operating in object mode, `chunk` must + * be a {string}, {Buffer}, {TypedArray}, {DataView} or `null`. For object mode streams, `chunk` may be any JavaScript value. + * @param encoding Encoding of string chunks. Must be a valid `Buffer` encoding, such as `'utf8'` or `'ascii'`. + */ + unshift(chunk: any, encoding?: BufferEncoding): void; + /** + * Prior to Node.js 0.10, streams did not implement the entire `node:stream` module API as it is currently defined. (See `Compatibility` for more + * information.) + * + * When using an older Node.js library that emits `'data'` events and has a {@link pause} method that is advisory only, the `readable.wrap()` method can be used to create a `Readable` + * stream that uses + * the old stream as its data source. + * + * It will rarely be necessary to use `readable.wrap()` but the method has been + * provided as a convenience for interacting with older Node.js applications and + * libraries. + * + * ```js + * import { OldReader } from './old-api-module.js'; + * import { Readable } from 'node:stream'; + * const oreader = new OldReader(); + * const myReader = new Readable().wrap(oreader); + * + * myReader.on('readable', () => { + * myReader.read(); // etc. + * }); + * ``` + * @since v0.9.4 + * @param stream An "old style" readable stream + */ + wrap(stream: NodeJS.ReadableStream): this; + push(chunk: any, encoding?: BufferEncoding): boolean; + /** + * ```js + * import { Readable } from 'node:stream'; + * + * async function* splitToWords(source) { + * for await (const chunk of source) { + * const words = String(chunk).split(' '); + * + * for (const word of words) { + * yield word; + * } + * } + * } + * + * const wordsStream = Readable.from(['text passed through', 'composed stream']).compose(splitToWords); + * const words = await wordsStream.toArray(); + * + * console.log(words); // prints ['text', 'passed', 'through', 'composed', 'stream'] + * ``` + * + * `readable.compose(s)` is equivalent to `stream.compose(readable, s)`. + * + * This method also allows for an `AbortSignal` to be provided, which will destroy + * the composed stream when aborted. + * + * See [`stream.compose(...streams)`](https://nodejs.org/docs/latest-v25.x/api/stream.html#streamcomposestreams) for more information. + * @since v19.1.0, v18.13.0 + * @returns a stream composed with the stream `stream`. + */ + compose( + stream: NodeJS.WritableStream | web.WritableStream | web.TransformStream | ((source: any) => void), + options?: Abortable, + ): Duplex; + /** + * The iterator created by this method gives users the option to cancel the destruction + * of the stream if the `for await...of` loop is exited by `return`, `break`, or `throw`, + * or if the iterator should destroy the stream if the stream emitted an error during iteration. + * @since v16.3.0 + */ + iterator(options?: ReadableIteratorOptions): NodeJS.AsyncIterator; + /** + * This method allows mapping over the stream. The *fn* function will be called for every chunk in the stream. + * If the *fn* function returns a promise - that promise will be `await`ed before being passed to the result stream. + * @since v17.4.0, v16.14.0 + * @param fn a function to map over every chunk in the stream. Async or not. + * @returns a stream mapped with the function *fn*. + */ + map(fn: (data: any, options?: Abortable) => any, options?: ReadableOperatorOptions): Readable; + /** + * This method allows filtering the stream. For each chunk in the stream the *fn* function will be called + * and if it returns a truthy value, the chunk will be passed to the result stream. + * If the *fn* function returns a promise - that promise will be `await`ed. + * @since v17.4.0, v16.14.0 + * @param fn a function to filter chunks from the stream. Async or not. + * @returns a stream filtered with the predicate *fn*. + */ + filter( + fn: (data: any, options?: Abortable) => boolean | Promise, + options?: ReadableOperatorOptions, + ): Readable; + /** + * This method allows iterating a stream. For each chunk in the stream the *fn* function will be called. + * If the *fn* function returns a promise - that promise will be `await`ed. + * + * This method is different from `for await...of` loops in that it can optionally process chunks concurrently. + * In addition, a `forEach` iteration can only be stopped by having passed a `signal` option + * and aborting the related AbortController while `for await...of` can be stopped with `break` or `return`. + * In either case the stream will be destroyed. + * + * This method is different from listening to the `'data'` event in that it uses the `readable` event + * in the underlying machinary and can limit the number of concurrent *fn* calls. + * @since v17.5.0 + * @param fn a function to call on each chunk of the stream. Async or not. + * @returns a promise for when the stream has finished. + */ + forEach( + fn: (data: any, options?: Abortable) => void | Promise, + options?: Pick, + ): Promise; + /** + * This method allows easily obtaining the contents of a stream. + * + * As this method reads the entire stream into memory, it negates the benefits of streams. It's intended + * for interoperability and convenience, not as the primary way to consume streams. + * @since v17.5.0 + * @returns a promise containing an array with the contents of the stream. + */ + toArray(options?: Abortable): Promise; + /** + * This method is similar to `Array.prototype.some` and calls *fn* on each chunk in the stream + * until the awaited return value is `true` (or any truthy value). Once an *fn* call on a chunk + * `await`ed return value is truthy, the stream is destroyed and the promise is fulfilled with `true`. + * If none of the *fn* calls on the chunks return a truthy value, the promise is fulfilled with `false`. + * @since v17.5.0 + * @param fn a function to call on each chunk of the stream. Async or not. + * @returns a promise evaluating to `true` if *fn* returned a truthy value for at least one of the chunks. + */ + some( + fn: (data: any, options?: Abortable) => boolean | Promise, + options?: Pick, + ): Promise; + /** + * This method is similar to `Array.prototype.find` and calls *fn* on each chunk in the stream + * to find a chunk with a truthy value for *fn*. Once an *fn* call's awaited return value is truthy, + * the stream is destroyed and the promise is fulfilled with value for which *fn* returned a truthy value. + * If all of the *fn* calls on the chunks return a falsy value, the promise is fulfilled with `undefined`. + * @since v17.5.0 + * @param fn a function to call on each chunk of the stream. Async or not. + * @returns a promise evaluating to the first chunk for which *fn* evaluated with a truthy value, + * or `undefined` if no element was found. + */ + find( + fn: (data: any, options?: Abortable) => data is T, + options?: Pick, + ): Promise; + find( + fn: (data: any, options?: Abortable) => boolean | Promise, + options?: Pick, + ): Promise; + /** + * This method is similar to `Array.prototype.every` and calls *fn* on each chunk in the stream + * to check if all awaited return values are truthy value for *fn*. Once an *fn* call on a chunk + * `await`ed return value is falsy, the stream is destroyed and the promise is fulfilled with `false`. + * If all of the *fn* calls on the chunks return a truthy value, the promise is fulfilled with `true`. + * @since v17.5.0 + * @param fn a function to call on each chunk of the stream. Async or not. + * @returns a promise evaluating to `true` if *fn* returned a truthy value for every one of the chunks. + */ + every( + fn: (data: any, options?: Abortable) => boolean | Promise, + options?: Pick, + ): Promise; + /** + * This method returns a new stream by applying the given callback to each chunk of the stream + * and then flattening the result. + * + * It is possible to return a stream or another iterable or async iterable from *fn* and the result streams + * will be merged (flattened) into the returned stream. + * @since v17.5.0 + * @param fn a function to map over every chunk in the stream. May be async. May be a stream or generator. + * @returns a stream flat-mapped with the function *fn*. + */ + flatMap( + fn: (data: any, options?: Abortable) => any, + options?: Pick, + ): Readable; + /** + * This method returns a new stream with the first *limit* chunks dropped from the start. + * @since v17.5.0 + * @param limit the number of chunks to drop from the readable. + * @returns a stream with *limit* chunks dropped from the start. + */ + drop(limit: number, options?: Abortable): Readable; + /** + * This method returns a new stream with the first *limit* chunks. + * @since v17.5.0 + * @param limit the number of chunks to take from the readable. + * @returns a stream with *limit* chunks taken. + */ + take(limit: number, options?: Abortable): Readable; + /** + * This method calls *fn* on each chunk of the stream in order, passing it the result from the calculation + * on the previous element. It returns a promise for the final value of the reduction. + * + * If no *initial* value is supplied the first chunk of the stream is used as the initial value. + * If the stream is empty, the promise is rejected with a `TypeError` with the `ERR_INVALID_ARGS` code property. + * + * The reducer function iterates the stream element-by-element which means that there is no *concurrency* parameter + * or parallelism. To perform a reduce concurrently, you can extract the async function to `readable.map` method. + * @since v17.5.0 + * @param fn a reducer function to call over every chunk in the stream. Async or not. + * @param initial the initial value to use in the reduction. + * @returns a promise for the final value of the reduction. + */ + reduce(fn: (previous: any, data: any, options?: Abortable) => T): Promise; + reduce( + fn: (previous: T, data: any, options?: Abortable) => T, + initial: T, + options?: Abortable, + ): Promise; + _destroy(error: Error | null, callback: (error?: Error | null) => void): void; + /** + * Destroy the stream. Optionally emit an `'error'` event, and emit a `'close'` event (unless `emitClose` is set to `false`). After this call, the readable + * stream will release any internal resources and subsequent calls to `push()` will be ignored. + * + * Once `destroy()` has been called any further calls will be a no-op and no + * further errors except from `_destroy()` may be emitted as `'error'`. + * + * Implementors should not override this method, but instead implement `readable._destroy()`. + * @since v8.0.0 + * @param error Error which will be passed as payload in `'error'` event + */ + destroy(error?: Error): this; + /** + * @returns `AsyncIterator` to fully consume the stream. + * @since v10.0.0 + */ + [Symbol.asyncIterator](): NodeJS.AsyncIterator; + /** + * Calls `readable.destroy()` with an `AbortError` and returns + * a promise that fulfills when the stream is finished. + * @since v20.4.0 + */ + [Symbol.asyncDispose](): Promise; + // #region InternalEventEmitter + addListener( + eventName: E, + listener: (...args: ReadableEventMap[E]) => void, + ): this; + addListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + emit(eventName: E, ...args: ReadableEventMap[E]): boolean; + emit(eventName: string | symbol, ...args: any[]): boolean; + listenerCount( + eventName: E, + listener?: (...args: ReadableEventMap[E]) => void, + ): number; + listenerCount(eventName: string | symbol, listener?: (...args: any[]) => void): number; + listeners(eventName: E): ((...args: ReadableEventMap[E]) => void)[]; + listeners(eventName: string | symbol): ((...args: any[]) => void)[]; + off(eventName: E, listener: (...args: ReadableEventMap[E]) => void): this; + off(eventName: string | symbol, listener: (...args: any[]) => void): this; + on(eventName: E, listener: (...args: ReadableEventMap[E]) => void): this; + on(eventName: string | symbol, listener: (...args: any[]) => void): this; + once( + eventName: E, + listener: (...args: ReadableEventMap[E]) => void, + ): this; + once(eventName: string | symbol, listener: (...args: any[]) => void): this; + prependListener( + eventName: E, + listener: (...args: ReadableEventMap[E]) => void, + ): this; + prependListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + prependOnceListener( + eventName: E, + listener: (...args: ReadableEventMap[E]) => void, + ): this; + prependOnceListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + rawListeners(eventName: E): ((...args: ReadableEventMap[E]) => void)[]; + rawListeners(eventName: string | symbol): ((...args: any[]) => void)[]; + // eslint-disable-next-line @definitelytyped/no-unnecessary-generics + removeAllListeners(eventName?: E): this; + removeAllListeners(eventName?: string | symbol): this; + removeListener( + eventName: E, + listener: (...args: ReadableEventMap[E]) => void, + ): this; + removeListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + // #endregion + } + interface WritableOptions extends StreamOptions { + decodeStrings?: boolean | undefined; + defaultEncoding?: BufferEncoding | undefined; + write?: + | (( + this: T, + chunk: any, + encoding: BufferEncoding, + callback: (error?: Error | null) => void, + ) => void) + | undefined; + writev?: + | (( + this: T, + chunks: { + chunk: any; + encoding: BufferEncoding; + }[], + callback: (error?: Error | null) => void, + ) => void) + | undefined; + final?: ((this: T, callback: (error?: Error | null) => void) => void) | undefined; + } + interface WritableEventMap { + "close": []; + "drain": []; + "error": [err: Error]; + "finish": []; + "pipe": [src: Readable]; + "unpipe": [src: Readable]; + } + /** + * @since v0.9.4 + */ + class Writable extends Stream implements NodeJS.WritableStream { + constructor(options?: WritableOptions); + /** + * A utility method for creating a `Writable` from a web `WritableStream`. + * @since v17.0.0 + */ + static fromWeb( + writableStream: web.WritableStream, + options?: Pick, + ): Writable; + /** + * A utility method for creating a web `WritableStream` from a `Writable`. + * @since v17.0.0 + */ + static toWeb(streamWritable: NodeJS.WritableStream): web.WritableStream; + /** + * Is `true` if it is safe to call `writable.write()`, which means + * the stream has not been destroyed, errored, or ended. + * @since v11.4.0 + */ + writable: boolean; + /** + * Returns whether the stream was destroyed or errored before emitting `'finish'`. + * @since v18.0.0, v16.17.0 + */ + readonly writableAborted: boolean; + /** + * Is `true` after `writable.end()` has been called. This property + * does not indicate whether the data has been flushed, for this use `writable.writableFinished` instead. + * @since v12.9.0 + */ + readonly writableEnded: boolean; + /** + * Is set to `true` immediately before the `'finish'` event is emitted. + * @since v12.6.0 + */ + readonly writableFinished: boolean; + /** + * Return the value of `highWaterMark` passed when creating this `Writable`. + * @since v9.3.0 + */ + readonly writableHighWaterMark: number; + /** + * This property contains the number of bytes (or objects) in the queue + * ready to be written. The value provides introspection data regarding + * the status of the `highWaterMark`. + * @since v9.4.0 + */ + readonly writableLength: number; + /** + * Getter for the property `objectMode` of a given `Writable` stream. + * @since v12.3.0 + */ + readonly writableObjectMode: boolean; + /** + * Number of times `writable.uncork()` needs to be + * called in order to fully uncork the stream. + * @since v13.2.0, v12.16.0 + */ + readonly writableCorked: number; + /** + * Is `true` after `writable.destroy()` has been called. + * @since v8.0.0 + */ + destroyed: boolean; + /** + * Is `true` after `'close'` has been emitted. + * @since v18.0.0 + */ + readonly closed: boolean; + /** + * Returns error if the stream has been destroyed with an error. + * @since v18.0.0 + */ + readonly errored: Error | null; + /** + * Is `true` if the stream's buffer has been full and stream will emit `'drain'`. + * @since v15.2.0, v14.17.0 + */ + readonly writableNeedDrain: boolean; + _write(chunk: any, encoding: BufferEncoding, callback: (error?: Error | null) => void): void; + _writev?( + chunks: { + chunk: any; + encoding: BufferEncoding; + }[], + callback: (error?: Error | null) => void, + ): void; + _construct?(callback: (error?: Error | null) => void): void; + _destroy(error: Error | null, callback: (error?: Error | null) => void): void; + _final(callback: (error?: Error | null) => void): void; + /** + * The `writable.write()` method writes some data to the stream, and calls the + * supplied `callback` once the data has been fully handled. If an error + * occurs, the `callback` will be called with the error as its + * first argument. The `callback` is called asynchronously and before `'error'` is + * emitted. + * + * The return value is `true` if the internal buffer is less than the `highWaterMark` configured when the stream was created after admitting `chunk`. + * If `false` is returned, further attempts to write data to the stream should + * stop until the `'drain'` event is emitted. + * + * While a stream is not draining, calls to `write()` will buffer `chunk`, and + * return false. Once all currently buffered chunks are drained (accepted for + * delivery by the operating system), the `'drain'` event will be emitted. + * Once `write()` returns false, do not write more chunks + * until the `'drain'` event is emitted. While calling `write()` on a stream that + * is not draining is allowed, Node.js will buffer all written chunks until + * maximum memory usage occurs, at which point it will abort unconditionally. + * Even before it aborts, high memory usage will cause poor garbage collector + * performance and high RSS (which is not typically released back to the system, + * even after the memory is no longer required). Since TCP sockets may never + * drain if the remote peer does not read the data, writing a socket that is + * not draining may lead to a remotely exploitable vulnerability. + * + * Writing data while the stream is not draining is particularly + * problematic for a `Transform`, because the `Transform` streams are paused + * by default until they are piped or a `'data'` or `'readable'` event handler + * is added. + * + * If the data to be written can be generated or fetched on demand, it is + * recommended to encapsulate the logic into a `Readable` and use {@link pipe}. However, if calling `write()` is preferred, it is + * possible to respect backpressure and avoid memory issues using the `'drain'` event: + * + * ```js + * function write(data, cb) { + * if (!stream.write(data)) { + * stream.once('drain', cb); + * } else { + * process.nextTick(cb); + * } + * } + * + * // Wait for cb to be called before doing any other write. + * write('hello', () => { + * console.log('Write completed, do more writes now.'); + * }); + * ``` + * + * A `Writable` stream in object mode will always ignore the `encoding` argument. + * @since v0.9.4 + * @param chunk Optional data to write. For streams not operating in object mode, `chunk` must be a {string}, {Buffer}, + * {TypedArray} or {DataView}. For object mode streams, `chunk` may be any JavaScript value other than `null`. + * @param callback Callback for when this chunk of data is flushed. + * @return `false` if the stream wishes for the calling code to wait for the `'drain'` event to be emitted before continuing to write additional data; otherwise `true`. + */ + write(chunk: any, callback?: (error: Error | null | undefined) => void): boolean; + /** + * Writes data to the stream, with an explicit encoding for string data. + * @see {@link Writable.write} for full details. + * @since v0.9.4 + * @param chunk Optional data to write. For streams not operating in object mode, `chunk` must be a {string}, {Buffer}, + * {TypedArray} or {DataView}. For object mode streams, `chunk` may be any JavaScript value other than `null`. + * @param encoding The encoding, if `chunk` is a string. + * @param callback Callback for when this chunk of data is flushed. + * @return `false` if the stream wishes for the calling code to wait for the `'drain'` event to be emitted before continuing to write additional data; otherwise `true`. + */ + write(chunk: any, encoding: BufferEncoding, callback?: (error: Error | null | undefined) => void): boolean; + /** + * The `writable.setDefaultEncoding()` method sets the default `encoding` for a `Writable` stream. + * @since v0.11.15 + * @param encoding The new default encoding + */ + setDefaultEncoding(encoding: BufferEncoding): this; + /** + * Calling the `writable.end()` method signals that no more data will be written + * to the `Writable`. The optional `chunk` and `encoding` arguments allow one + * final additional chunk of data to be written immediately before closing the + * stream. + * + * Calling the {@link write} method after calling {@link end} will raise an error. + * + * ```js + * // Write 'hello, ' and then end with 'world!'. + * import fs from 'node:fs'; + * const file = fs.createWriteStream('example.txt'); + * file.write('hello, '); + * file.end('world!'); + * // Writing more now is not allowed! + * ``` + * @since v0.9.4 + * @param cb Callback for when the stream is finished. + */ + end(cb?: () => void): this; + /** + * Signals that no more data will be written, with one final chunk of data. + * @see {@link Writable.end} for full details. + * @since v0.9.4 + * @param chunk Optional data to write. For streams not operating in object mode, `chunk` must be a {string}, {Buffer}, + * {TypedArray} or {DataView}. For object mode streams, `chunk` may be any JavaScript value other than `null`. + * @param cb Callback for when the stream is finished. + */ + end(chunk: any, cb?: () => void): this; + /** + * Signals that no more data will be written, with one final chunk of data. + * @see {@link Writable.end} for full details. + * @since v0.9.4 + * @param chunk Optional data to write. For streams not operating in object mode, `chunk` must be a {string}, {Buffer}, + * {TypedArray} or {DataView}. For object mode streams, `chunk` may be any JavaScript value other than `null`. + * @param encoding The encoding if `chunk` is a string + * @param cb Callback for when the stream is finished. + */ + end(chunk: any, encoding: BufferEncoding, cb?: () => void): this; + /** + * The `writable.cork()` method forces all written data to be buffered in memory. + * The buffered data will be flushed when either the {@link uncork} or {@link end} methods are called. + * + * The primary intent of `writable.cork()` is to accommodate a situation in which + * several small chunks are written to the stream in rapid succession. Instead of + * immediately forwarding them to the underlying destination, `writable.cork()` buffers all the chunks until `writable.uncork()` is called, which will pass them + * all to `writable._writev()`, if present. This prevents a head-of-line blocking + * situation where data is being buffered while waiting for the first small chunk + * to be processed. However, use of `writable.cork()` without implementing `writable._writev()` may have an adverse effect on throughput. + * + * See also: `writable.uncork()`, `writable._writev()`. + * @since v0.11.2 + */ + cork(): void; + /** + * The `writable.uncork()` method flushes all data buffered since {@link cork} was called. + * + * When using `writable.cork()` and `writable.uncork()` to manage the buffering + * of writes to a stream, defer calls to `writable.uncork()` using `process.nextTick()`. Doing so allows batching of all `writable.write()` calls that occur within a given Node.js event + * loop phase. + * + * ```js + * stream.cork(); + * stream.write('some '); + * stream.write('data '); + * process.nextTick(() => stream.uncork()); + * ``` + * + * If the `writable.cork()` method is called multiple times on a stream, the + * same number of calls to `writable.uncork()` must be called to flush the buffered + * data. + * + * ```js + * stream.cork(); + * stream.write('some '); + * stream.cork(); + * stream.write('data '); + * process.nextTick(() => { + * stream.uncork(); + * // The data will not be flushed until uncork() is called a second time. + * stream.uncork(); + * }); + * ``` + * + * See also: `writable.cork()`. + * @since v0.11.2 + */ + uncork(): void; + /** + * Destroy the stream. Optionally emit an `'error'` event, and emit a `'close'` event (unless `emitClose` is set to `false`). After this call, the writable + * stream has ended and subsequent calls to `write()` or `end()` will result in + * an `ERR_STREAM_DESTROYED` error. + * This is a destructive and immediate way to destroy a stream. Previous calls to `write()` may not have drained, and may trigger an `ERR_STREAM_DESTROYED` error. + * Use `end()` instead of destroy if data should flush before close, or wait for + * the `'drain'` event before destroying the stream. + * + * Once `destroy()` has been called any further calls will be a no-op and no + * further errors except from `_destroy()` may be emitted as `'error'`. + * + * Implementors should not override this method, + * but instead implement `writable._destroy()`. + * @since v8.0.0 + * @param error Optional, an error to emit with `'error'` event. + */ + destroy(error?: Error): this; + /** + * Calls `writable.destroy()` with an `AbortError` and returns + * a promise that fulfills when the stream is finished. + * @since v22.4.0, v20.16.0 + */ + [Symbol.asyncDispose](): Promise; + // #region InternalEventEmitter + addListener( + eventName: E, + listener: (...args: WritableEventMap[E]) => void, + ): this; + addListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + emit(eventName: E, ...args: WritableEventMap[E]): boolean; + emit(eventName: string | symbol, ...args: any[]): boolean; + listenerCount( + eventName: E, + listener?: (...args: WritableEventMap[E]) => void, + ): number; + listenerCount(eventName: string | symbol, listener?: (...args: any[]) => void): number; + listeners(eventName: E): ((...args: WritableEventMap[E]) => void)[]; + listeners(eventName: string | symbol): ((...args: any[]) => void)[]; + off(eventName: E, listener: (...args: WritableEventMap[E]) => void): this; + off(eventName: string | symbol, listener: (...args: any[]) => void): this; + on(eventName: E, listener: (...args: WritableEventMap[E]) => void): this; + on(eventName: string | symbol, listener: (...args: any[]) => void): this; + once( + eventName: E, + listener: (...args: WritableEventMap[E]) => void, + ): this; + once(eventName: string | symbol, listener: (...args: any[]) => void): this; + prependListener( + eventName: E, + listener: (...args: WritableEventMap[E]) => void, + ): this; + prependListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + prependOnceListener( + eventName: E, + listener: (...args: WritableEventMap[E]) => void, + ): this; + prependOnceListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + rawListeners(eventName: E): ((...args: WritableEventMap[E]) => void)[]; + rawListeners(eventName: string | symbol): ((...args: any[]) => void)[]; + // eslint-disable-next-line @definitelytyped/no-unnecessary-generics + removeAllListeners(eventName?: E): this; + removeAllListeners(eventName?: string | symbol): this; + removeListener( + eventName: E, + listener: (...args: WritableEventMap[E]) => void, + ): this; + removeListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + // #endregion + } + interface DuplexOptions extends ReadableOptions, WritableOptions { + allowHalfOpen?: boolean | undefined; + readableObjectMode?: boolean | undefined; + writableObjectMode?: boolean | undefined; + readableHighWaterMark?: number | undefined; + writableHighWaterMark?: number | undefined; + writableCorked?: number | undefined; + } + interface DuplexToWebOptions { + type?: web.ReadableStreamType | undefined; + } + interface DuplexEventMap extends ReadableEventMap, WritableEventMap {} + /** + * Duplex streams are streams that implement both the `Readable` and `Writable` interfaces. + * + * Examples of `Duplex` streams include: + * + * * `TCP sockets` + * * `zlib streams` + * * `crypto streams` + * @since v0.9.4 + */ + class Duplex extends Stream implements NodeJS.ReadWriteStream { + constructor(options?: DuplexOptions); + /** + * A utility method for creating duplex streams. + * + * - `Stream` converts writable stream into writable `Duplex` and readable stream + * to `Duplex`. + * - `Blob` converts into readable `Duplex`. + * - `string` converts into readable `Duplex`. + * - `ArrayBuffer` converts into readable `Duplex`. + * - `AsyncIterable` converts into a readable `Duplex`. Cannot yield `null`. + * - `AsyncGeneratorFunction` converts into a readable/writable transform + * `Duplex`. Must take a source `AsyncIterable` as first parameter. Cannot yield + * `null`. + * - `AsyncFunction` converts into a writable `Duplex`. Must return + * either `null` or `undefined` + * - `Object ({ writable, readable })` converts `readable` and + * `writable` into `Stream` and then combines them into `Duplex` where the + * `Duplex` will write to the `writable` and read from the `readable`. + * - `Promise` converts into readable `Duplex`. Value `null` is ignored. + * + * @since v16.8.0 + */ + static from( + src: + | NodeJS.ReadableStream + | NodeJS.WritableStream + | Blob + | string + | Iterable + | AsyncIterable + | ((source: AsyncIterable) => AsyncIterable) + | ((source: AsyncIterable) => Promise) + | Promise + | web.ReadableWritablePair + | web.ReadableStream + | web.WritableStream, + ): Duplex; + /** + * A utility method for creating a web `ReadableStream` and `WritableStream` from a `Duplex`. + * @since v17.0.0 + */ + static toWeb(streamDuplex: NodeJS.ReadWriteStream, options?: DuplexToWebOptions): web.ReadableWritablePair; + /** + * A utility method for creating a `Duplex` from a web `ReadableStream` and `WritableStream`. + * @since v17.0.0 + */ + static fromWeb( + duplexStream: web.ReadableWritablePair, + options?: Pick< + DuplexOptions, + "allowHalfOpen" | "decodeStrings" | "encoding" | "highWaterMark" | "objectMode" | "signal" + >, + ): Duplex; + /** + * If `false` then the stream will automatically end the writable side when the + * readable side ends. Set initially by the `allowHalfOpen` constructor option, + * which defaults to `true`. + * + * This can be changed manually to change the half-open behavior of an existing + * `Duplex` stream instance, but must be changed before the `'end'` event is emitted. + * @since v0.9.4 + */ + allowHalfOpen: boolean; + // #region InternalEventEmitter + addListener( + eventName: E, + listener: (...args: DuplexEventMap[E]) => void, + ): this; + addListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + emit(eventName: E, ...args: DuplexEventMap[E]): boolean; + emit(eventName: string | symbol, ...args: any[]): boolean; + listenerCount( + eventName: E, + listener?: (...args: DuplexEventMap[E]) => void, + ): number; + listenerCount(eventName: string | symbol, listener?: (...args: any[]) => void): number; + listeners(eventName: E): ((...args: DuplexEventMap[E]) => void)[]; + listeners(eventName: string | symbol): ((...args: any[]) => void)[]; + off(eventName: E, listener: (...args: DuplexEventMap[E]) => void): this; + off(eventName: string | symbol, listener: (...args: any[]) => void): this; + on(eventName: E, listener: (...args: DuplexEventMap[E]) => void): this; + on(eventName: string | symbol, listener: (...args: any[]) => void): this; + once(eventName: E, listener: (...args: DuplexEventMap[E]) => void): this; + once(eventName: string | symbol, listener: (...args: any[]) => void): this; + prependListener( + eventName: E, + listener: (...args: DuplexEventMap[E]) => void, + ): this; + prependListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + prependOnceListener( + eventName: E, + listener: (...args: DuplexEventMap[E]) => void, + ): this; + prependOnceListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + rawListeners(eventName: E): ((...args: DuplexEventMap[E]) => void)[]; + rawListeners(eventName: string | symbol): ((...args: any[]) => void)[]; + // eslint-disable-next-line @definitelytyped/no-unnecessary-generics + removeAllListeners(eventName?: E): this; + removeAllListeners(eventName?: string | symbol): this; + removeListener( + eventName: E, + listener: (...args: DuplexEventMap[E]) => void, + ): this; + removeListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + // #endregion + } + interface Duplex extends Readable, Writable {} + /** + * The utility function `duplexPair` returns an Array with two items, + * each being a `Duplex` stream connected to the other side: + * + * ```js + * const [ sideA, sideB ] = duplexPair(); + * ``` + * + * Whatever is written to one stream is made readable on the other. It provides + * behavior analogous to a network connection, where the data written by the client + * becomes readable by the server, and vice-versa. + * + * The Duplex streams are symmetrical; one or the other may be used without any + * difference in behavior. + * @param options A value to pass to both {@link Duplex} constructors, + * to set options such as buffering. + * @since v22.6.0 + */ + function duplexPair(options?: DuplexOptions): [Duplex, Duplex]; + type TransformCallback = (error?: Error | null, data?: any) => void; + interface TransformOptions extends DuplexOptions { + transform?: + | ((this: T, chunk: any, encoding: BufferEncoding, callback: TransformCallback) => void) + | undefined; + flush?: ((this: T, callback: TransformCallback) => void) | undefined; + } + /** + * Transform streams are `Duplex` streams where the output is in some way + * related to the input. Like all `Duplex` streams, `Transform` streams + * implement both the `Readable` and `Writable` interfaces. + * + * Examples of `Transform` streams include: + * + * * `zlib streams` + * * `crypto streams` + * @since v0.9.4 + */ + class Transform extends Duplex { + constructor(options?: TransformOptions); + _transform(chunk: any, encoding: BufferEncoding, callback: TransformCallback): void; + _flush(callback: TransformCallback): void; + } + /** + * The `stream.PassThrough` class is a trivial implementation of a `Transform` stream that simply passes the input bytes across to the output. Its purpose is + * primarily for examples and testing, but there are some use cases where `stream.PassThrough` is useful as a building block for novel sorts of streams. + */ + class PassThrough extends Transform {} + /** + * A stream to attach a signal to. + * + * Attaches an AbortSignal to a readable or writeable stream. This lets code + * control stream destruction using an `AbortController`. + * + * Calling `abort` on the `AbortController` corresponding to the passed `AbortSignal` will behave the same way as calling `.destroy(new AbortError())` on the + * stream, and `controller.error(new AbortError())` for webstreams. + * + * ```js + * import fs from 'node:fs'; + * + * const controller = new AbortController(); + * const read = addAbortSignal( + * controller.signal, + * fs.createReadStream(('object.json')), + * ); + * // Later, abort the operation closing the stream + * controller.abort(); + * ``` + * + * Or using an `AbortSignal` with a readable stream as an async iterable: + * + * ```js + * const controller = new AbortController(); + * setTimeout(() => controller.abort(), 10_000); // set a timeout + * const stream = addAbortSignal( + * controller.signal, + * fs.createReadStream(('object.json')), + * ); + * (async () => { + * try { + * for await (const chunk of stream) { + * await process(chunk); + * } + * } catch (e) { + * if (e.name === 'AbortError') { + * // The operation was cancelled + * } else { + * throw e; + * } + * } + * })(); + * ``` + * + * Or using an `AbortSignal` with a ReadableStream: + * + * ```js + * const controller = new AbortController(); + * const rs = new ReadableStream({ + * start(controller) { + * controller.enqueue('hello'); + * controller.enqueue('world'); + * controller.close(); + * }, + * }); + * + * addAbortSignal(controller.signal, rs); + * + * finished(rs, (err) => { + * if (err) { + * if (err.name === 'AbortError') { + * // The operation was cancelled + * } + * } + * }); + * + * const reader = rs.getReader(); + * + * reader.read().then(({ value, done }) => { + * console.log(value); // hello + * console.log(done); // false + * controller.abort(); + * }); + * ``` + * @since v15.4.0 + * @param signal A signal representing possible cancellation + * @param stream A stream to attach a signal to. + */ + function addAbortSignal< + T extends NodeJS.ReadableStream | NodeJS.WritableStream | web.ReadableStream | web.WritableStream, + >(signal: AbortSignal, stream: T): T; + /** + * Returns the default highWaterMark used by streams. + * Defaults to `65536` (64 KiB), or `16` for `objectMode`. + * @since v19.9.0 + */ + function getDefaultHighWaterMark(objectMode: boolean): number; + /** + * Sets the default highWaterMark used by streams. + * @since v19.9.0 + * @param value highWaterMark value + */ + function setDefaultHighWaterMark(objectMode: boolean, value: number): void; + interface FinishedOptions extends Abortable { + error?: boolean | undefined; + readable?: boolean | undefined; + writable?: boolean | undefined; + } + /** + * A readable and/or writable stream/webstream. + * + * A function to get notified when a stream is no longer readable, writable + * or has experienced an error or a premature close event. + * + * ```js + * import { finished } from 'node:stream'; + * import fs from 'node:fs'; + * + * const rs = fs.createReadStream('archive.tar'); + * + * finished(rs, (err) => { + * if (err) { + * console.error('Stream failed.', err); + * } else { + * console.log('Stream is done reading.'); + * } + * }); + * + * rs.resume(); // Drain the stream. + * ``` + * + * Especially useful in error handling scenarios where a stream is destroyed + * prematurely (like an aborted HTTP request), and will not emit `'end'` or `'finish'`. + * + * The `finished` API provides [`promise version`](https://nodejs.org/docs/latest-v25.x/api/stream.html#streamfinishedstream-options). + * + * `stream.finished()` leaves dangling event listeners (in particular `'error'`, `'end'`, `'finish'` and `'close'`) after `callback` has been + * invoked. The reason for this is so that unexpected `'error'` events (due to + * incorrect stream implementations) do not cause unexpected crashes. + * If this is unwanted behavior then the returned cleanup function needs to be + * invoked in the callback: + * + * ```js + * const cleanup = finished(rs, (err) => { + * cleanup(); + * // ... + * }); + * ``` + * @since v10.0.0 + * @param stream A readable and/or writable stream. + * @param callback A callback function that takes an optional error argument. + * @returns A cleanup function which removes all registered listeners. + */ + function finished( + stream: NodeJS.ReadableStream | NodeJS.WritableStream | web.ReadableStream | web.WritableStream, + options: FinishedOptions, + callback: (err?: NodeJS.ErrnoException | null) => void, + ): () => void; + function finished( + stream: NodeJS.ReadableStream | NodeJS.WritableStream | web.ReadableStream | web.WritableStream, + callback: (err?: NodeJS.ErrnoException | null) => void, + ): () => void; + namespace finished { + import __promisify__ = promises.finished; + export { __promisify__ }; + } + type PipelineSourceFunction = (options?: Abortable) => Iterable | AsyncIterable; + type PipelineSource = + | NodeJS.ReadableStream + | web.ReadableStream + | web.TransformStream + | Iterable + | AsyncIterable + | PipelineSourceFunction; + type PipelineSourceArgument = (T extends (...args: any[]) => infer R ? R : T) extends infer S + ? S extends web.TransformStream ? web.ReadableStream : S + : never; + type PipelineTransformGenerator, O> = ( + source: PipelineSourceArgument, + options?: Abortable, + ) => AsyncIterable; + type PipelineTransformStreams = + | NodeJS.ReadWriteStream + | web.TransformStream; + type PipelineTransform, O> = S extends + PipelineSource | PipelineTransformStreams | ((...args: any[]) => infer I) + ? PipelineTransformStreams | PipelineTransformGenerator + : never; + type PipelineTransformSource = PipelineSource | PipelineTransform; + type PipelineDestinationFunction, R> = ( + source: PipelineSourceArgument, + options?: Abortable, + ) => R; + type PipelineDestination, R> = S extends + PipelineSource | PipelineTransform ? + | NodeJS.WritableStream + | web.WritableStream + | web.TransformStream + | PipelineDestinationFunction + : never; + type PipelineCallback> = ( + err: NodeJS.ErrnoException | null, + value: S extends (...args: any[]) => PromiseLike ? R : undefined, + ) => void; + type PipelineResult> = S extends NodeJS.WritableStream ? S : Duplex; + /** + * A module method to pipe between streams and generators forwarding errors and + * properly cleaning up and provide a callback when the pipeline is complete. + * + * ```js + * import { pipeline } from 'node:stream'; + * import fs from 'node:fs'; + * import zlib from 'node:zlib'; + * + * // Use the pipeline API to easily pipe a series of streams + * // together and get notified when the pipeline is fully done. + * + * // A pipeline to gzip a potentially huge tar file efficiently: + * + * pipeline( + * fs.createReadStream('archive.tar'), + * zlib.createGzip(), + * fs.createWriteStream('archive.tar.gz'), + * (err) => { + * if (err) { + * console.error('Pipeline failed.', err); + * } else { + * console.log('Pipeline succeeded.'); + * } + * }, + * ); + * ``` + * + * The `pipeline` API provides a [`promise version`](https://nodejs.org/docs/latest-v25.x/api/stream.html#streampipelinesource-transforms-destination-options). + * + * `stream.pipeline()` will call `stream.destroy(err)` on all streams except: + * + * * `Readable` streams which have emitted `'end'` or `'close'`. + * * `Writable` streams which have emitted `'finish'` or `'close'`. + * + * `stream.pipeline()` leaves dangling event listeners on the streams + * after the `callback` has been invoked. In the case of reuse of streams after + * failure, this can cause event listener leaks and swallowed errors. If the last + * stream is readable, dangling event listeners will be removed so that the last + * stream can be consumed later. + * + * `stream.pipeline()` closes all the streams when an error is raised. + * The `IncomingRequest` usage with `pipeline` could lead to an unexpected behavior + * once it would destroy the socket without sending the expected response. + * See the example below: + * + * ```js + * import fs from 'node:fs'; + * import http from 'node:http'; + * import { pipeline } from 'node:stream'; + * + * const server = http.createServer((req, res) => { + * const fileStream = fs.createReadStream('./fileNotExist.txt'); + * pipeline(fileStream, res, (err) => { + * if (err) { + * console.log(err); // No such file + * // this message can't be sent once `pipeline` already destroyed the socket + * return res.end('error!!!'); + * } + * }); + * }); + * ``` + * @since v10.0.0 + * @param callback Called when the pipeline is fully done. + */ + function pipeline, D extends PipelineDestination>( + source: S, + destination: D, + callback: PipelineCallback, + ): PipelineResult; + function pipeline< + S extends PipelineSource, + T extends PipelineTransform, + D extends PipelineDestination, + >( + source: S, + transform: T, + destination: D, + callback: PipelineCallback, + ): PipelineResult; + function pipeline< + S extends PipelineSource, + T1 extends PipelineTransform, + T2 extends PipelineTransform, + D extends PipelineDestination, + >( + source: S, + transform1: T1, + transform2: T2, + destination: D, + callback: PipelineCallback, + ): PipelineResult; + function pipeline< + S extends PipelineSource, + T1 extends PipelineTransform, + T2 extends PipelineTransform, + T3 extends PipelineTransform, + D extends PipelineDestination, + >( + source: S, + transform1: T1, + transform2: T2, + transform3: T3, + destination: D, + callback: PipelineCallback, + ): PipelineResult; + function pipeline< + S extends PipelineSource, + T1 extends PipelineTransform, + T2 extends PipelineTransform, + T3 extends PipelineTransform, + T4 extends PipelineTransform, + D extends PipelineDestination, + >( + source: S, + transform1: T1, + transform2: T2, + transform3: T3, + transform4: T4, + destination: D, + callback: PipelineCallback, + ): PipelineResult; + function pipeline( + streams: ReadonlyArray | PipelineTransform | PipelineDestination>, + callback: (err: NodeJS.ErrnoException | null) => void, + ): NodeJS.WritableStream; + function pipeline( + ...streams: [ + ...[PipelineSource, ...PipelineTransform[], PipelineDestination], + callback: ((err: NodeJS.ErrnoException | null) => void), + ] + ): NodeJS.WritableStream; + namespace pipeline { + import __promisify__ = promises.pipeline; + export { __promisify__ }; + } + type ComposeSource = + | NodeJS.ReadableStream + | web.ReadableStream + | Iterable + | AsyncIterable + | (() => AsyncIterable); + type ComposeTransformStreams = NodeJS.ReadWriteStream | web.TransformStream; + type ComposeTransformGenerator = (source: AsyncIterable) => AsyncIterable; + type ComposeTransform, O> = S extends + ComposeSource | ComposeTransformStreams | ComposeTransformGenerator + ? ComposeTransformStreams | ComposeTransformGenerator + : never; + type ComposeTransformSource = ComposeSource | ComposeTransform; + type ComposeDestination> = S extends ComposeTransformSource ? + | NodeJS.WritableStream + | web.WritableStream + | web.TransformStream + | ((source: AsyncIterable) => void) + : never; + /** + * Combines two or more streams into a `Duplex` stream that writes to the + * first stream and reads from the last. Each provided stream is piped into + * the next, using `stream.pipeline`. If any of the streams error then all + * are destroyed, including the outer `Duplex` stream. + * + * Because `stream.compose` returns a new stream that in turn can (and + * should) be piped into other streams, it enables composition. In contrast, + * when passing streams to `stream.pipeline`, typically the first stream is + * a readable stream and the last a writable stream, forming a closed + * circuit. + * + * If passed a `Function` it must be a factory method taking a `source` + * `Iterable`. + * + * ```js + * import { compose, Transform } from 'node:stream'; + * + * const removeSpaces = new Transform({ + * transform(chunk, encoding, callback) { + * callback(null, String(chunk).replace(' ', '')); + * }, + * }); + * + * async function* toUpper(source) { + * for await (const chunk of source) { + * yield String(chunk).toUpperCase(); + * } + * } + * + * let res = ''; + * for await (const buf of compose(removeSpaces, toUpper).end('hello world')) { + * res += buf; + * } + * + * console.log(res); // prints 'HELLOWORLD' + * ``` + * + * `stream.compose` can be used to convert async iterables, generators and + * functions into streams. + * + * * `AsyncIterable` converts into a readable `Duplex`. Cannot yield + * `null`. + * * `AsyncGeneratorFunction` converts into a readable/writable transform `Duplex`. + * Must take a source `AsyncIterable` as first parameter. Cannot yield + * `null`. + * * `AsyncFunction` converts into a writable `Duplex`. Must return + * either `null` or `undefined`. + * + * ```js + * import { compose } from 'node:stream'; + * import { finished } from 'node:stream/promises'; + * + * // Convert AsyncIterable into readable Duplex. + * const s1 = compose(async function*() { + * yield 'Hello'; + * yield 'World'; + * }()); + * + * // Convert AsyncGenerator into transform Duplex. + * const s2 = compose(async function*(source) { + * for await (const chunk of source) { + * yield String(chunk).toUpperCase(); + * } + * }); + * + * let res = ''; + * + * // Convert AsyncFunction into writable Duplex. + * const s3 = compose(async function(source) { + * for await (const chunk of source) { + * res += chunk; + * } + * }); + * + * await finished(compose(s1, s2, s3)); + * + * console.log(res); // prints 'HELLOWORLD' + * ``` + * + * For convenience, the `readable.compose(stream)` method is available on + * `Readable` and `Duplex` streams as a wrapper for this function. + * @since v16.9.0 + * @experimental + */ + /* eslint-disable @definitelytyped/no-unnecessary-generics */ + function compose(stream: ComposeSource | ComposeDestination): Duplex; + function compose< + S extends ComposeSource | ComposeTransform, + D extends ComposeTransform | ComposeDestination, + >( + source: S, + destination: D, + ): Duplex; + function compose< + S extends ComposeSource | ComposeTransform, + T extends ComposeTransform, + D extends ComposeTransform | ComposeDestination, + >(source: S, transform: T, destination: D): Duplex; + function compose< + S extends ComposeSource | ComposeTransform, + T1 extends ComposeTransform, + T2 extends ComposeTransform, + D extends ComposeTransform | ComposeDestination, + >(source: S, transform1: T1, transform2: T2, destination: D): Duplex; + function compose< + S extends ComposeSource | ComposeTransform, + T1 extends ComposeTransform, + T2 extends ComposeTransform, + T3 extends ComposeTransform, + D extends ComposeTransform | ComposeDestination, + >(source: S, transform1: T1, transform2: T2, transform3: T3, destination: D): Duplex; + function compose< + S extends ComposeSource | ComposeTransform, + T1 extends ComposeTransform, + T2 extends ComposeTransform, + T3 extends ComposeTransform, + T4 extends ComposeTransform, + D extends ComposeTransform | ComposeDestination, + >(source: S, transform1: T1, transform2: T2, transform3: T3, transform4: T4, destination: D): Duplex; + function compose( + ...streams: [ + ComposeSource, + ...ComposeTransform[], + ComposeDestination, + ] + ): Duplex; + /* eslint-enable @definitelytyped/no-unnecessary-generics */ + /** + * Returns whether the stream has encountered an error. + * @since v17.3.0, v16.14.0 + */ + function isErrored( + stream: NodeJS.ReadableStream | NodeJS.WritableStream | web.ReadableStream | web.WritableStream, + ): boolean; + /** + * Returns whether the stream is readable. + * @since v17.4.0, v16.14.0 + * @returns Only returns `null` if `stream` is not a valid `Readable`, `Duplex` or `ReadableStream`. + */ + function isReadable(stream: NodeJS.ReadableStream | web.ReadableStream): boolean | null; + /** + * Returns whether the stream is writable. + * @since v20.0.0 + * @returns Only returns `null` if `stream` is not a valid `Writable`, `Duplex` or `WritableStream`. + */ + function isWritable(stream: NodeJS.WritableStream | web.WritableStream): boolean | null; + } + global { + namespace NodeJS { + // These interfaces are vestigial, and correspond roughly to the "streams2" interfaces + // from early versions of Node.js, but they are still used widely across the ecosystem. + // Accordingly, they are commonly used as "in-types" for @types/node APIs, so that + // eg. streams returned from older libraries will still be considered valid input to + // functions which accept stream arguments. + // It's not possible to change or remove these without astronomical levels of breakage. + interface ReadableStream extends EventEmitter { + readable: boolean; + read(size?: number): string | Buffer; + setEncoding(encoding: BufferEncoding): this; + pause(): this; + resume(): this; + isPaused(): boolean; + pipe(destination: T, options?: { end?: boolean | undefined }): T; + unpipe(destination?: WritableStream): this; + unshift(chunk: string | Uint8Array, encoding?: BufferEncoding): void; + wrap(oldStream: ReadableStream): this; + [Symbol.asyncIterator](): AsyncIterableIterator; + } + interface WritableStream extends EventEmitter { + writable: boolean; + write(buffer: Uint8Array | string, cb?: (err?: Error | null) => void): boolean; + write(str: string, encoding?: BufferEncoding, cb?: (err?: Error | null) => void): boolean; + end(cb?: () => void): this; + end(data: string | Uint8Array, cb?: () => void): this; + end(str: string, encoding?: BufferEncoding, cb?: () => void): this; + } + interface ReadWriteStream extends ReadableStream, WritableStream {} + } + } + export = Stream; +} +declare module "stream" { + import stream = require("node:stream"); + export = stream; +} diff --git a/server/api/node_modules/@types/node/stream/consumers.d.ts b/server/api/node_modules/@types/node/stream/consumers.d.ts new file mode 100644 index 0000000..27a474c --- /dev/null +++ b/server/api/node_modules/@types/node/stream/consumers.d.ts @@ -0,0 +1,114 @@ +declare module "node:stream/consumers" { + import { Blob, NonSharedBuffer } from "node:buffer"; + import { ReadableStream } from "node:stream/web"; + /** + * ```js + * import { arrayBuffer } from 'node:stream/consumers'; + * import { Readable } from 'node:stream'; + * import { TextEncoder } from 'node:util'; + * + * const encoder = new TextEncoder(); + * const dataArray = encoder.encode('hello world from consumers!'); + * + * const readable = Readable.from(dataArray); + * const data = await arrayBuffer(readable); + * console.log(`from readable: ${data.byteLength}`); + * // Prints: from readable: 76 + * ``` + * @since v16.7.0 + * @returns Fulfills with an `ArrayBuffer` containing the full contents of the stream. + */ + function arrayBuffer(stream: ReadableStream | NodeJS.ReadableStream | AsyncIterable): Promise; + /** + * ```js + * import { blob } from 'node:stream/consumers'; + * + * const dataBlob = new Blob(['hello world from consumers!']); + * + * const readable = dataBlob.stream(); + * const data = await blob(readable); + * console.log(`from readable: ${data.size}`); + * // Prints: from readable: 27 + * ``` + * @since v16.7.0 + * @returns Fulfills with a `Blob` containing the full contents of the stream. + */ + function blob(stream: ReadableStream | NodeJS.ReadableStream | AsyncIterable): Promise; + /** + * ```js + * import { buffer } from 'node:stream/consumers'; + * import { Readable } from 'node:stream'; + * import { Buffer } from 'node:buffer'; + * + * const dataBuffer = Buffer.from('hello world from consumers!'); + * + * const readable = Readable.from(dataBuffer); + * const data = await buffer(readable); + * console.log(`from readable: ${data.length}`); + * // Prints: from readable: 27 + * ``` + * @since v16.7.0 + * @returns Fulfills with a `Buffer` containing the full contents of the stream. + */ + function buffer(stream: ReadableStream | NodeJS.ReadableStream | AsyncIterable): Promise; + /** + * ```js + * import { bytes } from 'node:stream/consumers'; + * import { Readable } from 'node:stream'; + * import { Buffer } from 'node:buffer'; + * + * const dataBuffer = Buffer.from('hello world from consumers!'); + * + * const readable = Readable.from(dataBuffer); + * const data = await bytes(readable); + * console.log(`from readable: ${data.length}`); + * // Prints: from readable: 27 + * ``` + * @since v25.6.0 + * @returns Fulfills with a `Uint8Array` containing the full contents of the stream. + */ + function bytes( + stream: ReadableStream | NodeJS.ReadableStream | AsyncIterable, + ): Promise; + /** + * ```js + * import { json } from 'node:stream/consumers'; + * import { Readable } from 'node:stream'; + * + * const items = Array.from( + * { + * length: 100, + * }, + * () => ({ + * message: 'hello world from consumers!', + * }), + * ); + * + * const readable = Readable.from(JSON.stringify(items)); + * const data = await json(readable); + * console.log(`from readable: ${data.length}`); + * // Prints: from readable: 100 + * ``` + * @since v16.7.0 + * @returns Fulfills with the contents of the stream parsed as a + * UTF-8 encoded string that is then passed through `JSON.parse()`. + */ + function json(stream: ReadableStream | NodeJS.ReadableStream | AsyncIterable): Promise; + /** + * ```js + * import { text } from 'node:stream/consumers'; + * import { Readable } from 'node:stream'; + * + * const readable = Readable.from('Hello world from consumers!'); + * const data = await text(readable); + * console.log(`from readable: ${data.length}`); + * // Prints: from readable: 27 + * ``` + * @since v16.7.0 + * @returns Fulfills with the contents of the stream parsed as a UTF-8 encoded string. + */ + function text(stream: ReadableStream | NodeJS.ReadableStream | AsyncIterable): Promise; +} +declare module "stream/consumers" { + export * from "node:stream/consumers"; +} diff --git a/server/api/node_modules/@types/node/stream/promises.d.ts b/server/api/node_modules/@types/node/stream/promises.d.ts new file mode 100644 index 0000000..c4bd3ea --- /dev/null +++ b/server/api/node_modules/@types/node/stream/promises.d.ts @@ -0,0 +1,211 @@ +declare module "node:stream/promises" { + import { Abortable } from "node:events"; + import { + FinishedOptions as _FinishedOptions, + PipelineDestination, + PipelineSource, + PipelineTransform, + } from "node:stream"; + import { ReadableStream, WritableStream } from "node:stream/web"; + interface FinishedOptions extends _FinishedOptions { + /** + * If true, removes the listeners registered by this function before the promise is fulfilled. + * @default false + */ + cleanup?: boolean | undefined; + } + /** + * ```js + * import { finished } from 'node:stream/promises'; + * import { createReadStream } from 'node:fs'; + * + * const rs = createReadStream('archive.tar'); + * + * async function run() { + * await finished(rs); + * console.log('Stream is done reading.'); + * } + * + * run().catch(console.error); + * rs.resume(); // Drain the stream. + * ``` + * + * The `finished` API also provides a [callback version](https://nodejs.org/docs/latest-v25.x/api/stream.html#streamfinishedstream-options-callback). + * + * `stream.finished()` leaves dangling event listeners (in particular + * `'error'`, `'end'`, `'finish'` and `'close'`) after the returned promise is + * resolved or rejected. The reason for this is so that unexpected `'error'` + * events (due to incorrect stream implementations) do not cause unexpected + * crashes. If this is unwanted behavior then `options.cleanup` should be set to + * `true`: + * + * ```js + * await finished(rs, { cleanup: true }); + * ``` + * @since v15.0.0 + * @returns Fulfills when the stream is no longer readable or writable. + */ + function finished( + stream: NodeJS.ReadableStream | NodeJS.WritableStream | ReadableStream | WritableStream, + options?: FinishedOptions, + ): Promise; + interface PipelineOptions extends Abortable { + end?: boolean | undefined; + } + type PipelineResult> = S extends (...args: any[]) => PromiseLike + ? Promise + : Promise; + /** + * ```js + * import { pipeline } from 'node:stream/promises'; + * import { createReadStream, createWriteStream } from 'node:fs'; + * import { createGzip } from 'node:zlib'; + * + * await pipeline( + * createReadStream('archive.tar'), + * createGzip(), + * createWriteStream('archive.tar.gz'), + * ); + * console.log('Pipeline succeeded.'); + * ``` + * + * To use an `AbortSignal`, pass it inside an options object, as the last argument. + * When the signal is aborted, `destroy` will be called on the underlying pipeline, + * with an `AbortError`. + * + * ```js + * import { pipeline } from 'node:stream/promises'; + * import { createReadStream, createWriteStream } from 'node:fs'; + * import { createGzip } from 'node:zlib'; + * + * const ac = new AbortController(); + * const { signal } = ac; + * setImmediate(() => ac.abort()); + * try { + * await pipeline( + * createReadStream('archive.tar'), + * createGzip(), + * createWriteStream('archive.tar.gz'), + * { signal }, + * ); + * } catch (err) { + * console.error(err); // AbortError + * } + * ``` + * + * The `pipeline` API also supports async generators: + * + * ```js + * import { pipeline } from 'node:stream/promises'; + * import { createReadStream, createWriteStream } from 'node:fs'; + * + * await pipeline( + * createReadStream('lowercase.txt'), + * async function* (source, { signal }) { + * source.setEncoding('utf8'); // Work with strings rather than `Buffer`s. + * for await (const chunk of source) { + * yield await processChunk(chunk, { signal }); + * } + * }, + * createWriteStream('uppercase.txt'), + * ); + * console.log('Pipeline succeeded.'); + * ``` + * + * Remember to handle the `signal` argument passed into the async generator. + * Especially in the case where the async generator is the source for the + * pipeline (i.e. first argument) or the pipeline will never complete. + * + * ```js + * import { pipeline } from 'node:stream/promises'; + * import fs from 'node:fs'; + * await pipeline( + * async function* ({ signal }) { + * await someLongRunningfn({ signal }); + * yield 'asd'; + * }, + * fs.createWriteStream('uppercase.txt'), + * ); + * console.log('Pipeline succeeded.'); + * ``` + * + * The `pipeline` API provides [callback version](https://nodejs.org/docs/latest-v25.x/api/stream.html#streampipelinesource-transforms-destination-callback): + * @since v15.0.0 + * @returns Fulfills when the pipeline is complete. + */ + function pipeline, B extends PipelineDestination>( + source: A, + destination: B, + options?: PipelineOptions, + ): PipelineResult; + function pipeline< + A extends PipelineSource, + T1 extends PipelineTransform, + B extends PipelineDestination, + >( + source: A, + transform1: T1, + destination: B, + options?: PipelineOptions, + ): PipelineResult; + function pipeline< + A extends PipelineSource, + T1 extends PipelineTransform, + T2 extends PipelineTransform, + B extends PipelineDestination, + >( + source: A, + transform1: T1, + transform2: T2, + destination: B, + options?: PipelineOptions, + ): PipelineResult; + function pipeline< + A extends PipelineSource, + T1 extends PipelineTransform, + T2 extends PipelineTransform, + T3 extends PipelineTransform, + B extends PipelineDestination, + >( + source: A, + transform1: T1, + transform2: T2, + transform3: T3, + destination: B, + options?: PipelineOptions, + ): PipelineResult; + function pipeline< + A extends PipelineSource, + T1 extends PipelineTransform, + T2 extends PipelineTransform, + T3 extends PipelineTransform, + T4 extends PipelineTransform, + B extends PipelineDestination, + >( + source: A, + transform1: T1, + transform2: T2, + transform3: T3, + transform4: T4, + destination: B, + options?: PipelineOptions, + ): PipelineResult; + function pipeline( + streams: readonly [PipelineSource, ...PipelineTransform[], PipelineDestination], + options?: PipelineOptions, + ): Promise; + function pipeline( + ...streams: [PipelineSource, ...PipelineTransform[], PipelineDestination] + ): Promise; + function pipeline( + ...streams: [ + PipelineSource, + ...PipelineTransform[], + PipelineDestination, + options: PipelineOptions, + ] + ): Promise; +} +declare module "stream/promises" { + export * from "node:stream/promises"; +} diff --git a/server/api/node_modules/@types/node/stream/web.d.ts b/server/api/node_modules/@types/node/stream/web.d.ts new file mode 100644 index 0000000..13d55a0 --- /dev/null +++ b/server/api/node_modules/@types/node/stream/web.d.ts @@ -0,0 +1,296 @@ +declare module "node:stream/web" { + import { TextDecoderCommon, TextDecoderOptions, TextEncoderCommon } from "node:util"; + type CompressionFormat = "brotli" | "deflate" | "deflate-raw" | "gzip"; + type ReadableStreamController = ReadableStreamDefaultController | ReadableByteStreamController; + type ReadableStreamReader = ReadableStreamDefaultReader | ReadableStreamBYOBReader; + type ReadableStreamReaderMode = "byob"; + type ReadableStreamReadResult = ReadableStreamReadValueResult | ReadableStreamReadDoneResult; + type ReadableStreamType = "bytes"; + interface GenericTransformStream { + readonly readable: ReadableStream; + readonly writable: WritableStream; + } + interface QueuingStrategy { + highWaterMark?: number; + size?: QueuingStrategySize; + } + interface QueuingStrategyInit { + highWaterMark: number; + } + interface QueuingStrategySize { + (chunk: T): number; + } + interface ReadableStreamBYOBReaderReadOptions { + min?: number; + } + interface ReadableStreamGenericReader { + readonly closed: Promise; + cancel(reason?: any): Promise; + } + interface ReadableStreamGetReaderOptions { + mode?: ReadableStreamReaderMode; + } + interface ReadableStreamIteratorOptions { + preventCancel?: boolean; + } + interface ReadableStreamReadDoneResult { + done: true; + value: T | undefined; + } + interface ReadableStreamReadValueResult { + done: false; + value: T; + } + interface ReadableWritablePair { + readable: ReadableStream; + writable: WritableStream; + } + interface StreamPipeOptions { + preventAbort?: boolean; + preventCancel?: boolean; + preventClose?: boolean; + signal?: AbortSignal; + } + interface Transformer { + flush?: TransformerFlushCallback; + readableType?: undefined; + start?: TransformerStartCallback; + transform?: TransformerTransformCallback; + writableType?: undefined; + } + interface TransformerFlushCallback { + (controller: TransformStreamDefaultController): void | PromiseLike; + } + interface TransformerStartCallback { + (controller: TransformStreamDefaultController): any; + } + interface TransformerTransformCallback { + (chunk: I, controller: TransformStreamDefaultController): void | PromiseLike; + } + interface UnderlyingByteSource { + autoAllocateChunkSize?: number; + cancel?: UnderlyingSourceCancelCallback; + pull?: (controller: ReadableByteStreamController) => void | PromiseLike; + start?: (controller: ReadableByteStreamController) => any; + type: "bytes"; + } + interface UnderlyingDefaultSource { + cancel?: UnderlyingSourceCancelCallback; + pull?: (controller: ReadableStreamDefaultController) => void | PromiseLike; + start?: (controller: ReadableStreamDefaultController) => any; + type?: undefined; + } + interface UnderlyingSink { + abort?: UnderlyingSinkAbortCallback; + close?: UnderlyingSinkCloseCallback; + start?: UnderlyingSinkStartCallback; + type?: undefined; + write?: UnderlyingSinkWriteCallback; + } + interface UnderlyingSinkAbortCallback { + (reason?: any): void | PromiseLike; + } + interface UnderlyingSinkCloseCallback { + (): void | PromiseLike; + } + interface UnderlyingSinkStartCallback { + (controller: WritableStreamDefaultController): any; + } + interface UnderlyingSinkWriteCallback { + (chunk: W, controller: WritableStreamDefaultController): void | PromiseLike; + } + interface UnderlyingSource { + autoAllocateChunkSize?: number; + cancel?: UnderlyingSourceCancelCallback; + pull?: UnderlyingSourcePullCallback; + start?: UnderlyingSourceStartCallback; + type?: ReadableStreamType; + } + interface UnderlyingSourceCancelCallback { + (reason?: any): void | PromiseLike; + } + interface UnderlyingSourcePullCallback { + (controller: ReadableStreamController): void | PromiseLike; + } + interface UnderlyingSourceStartCallback { + (controller: ReadableStreamController): any; + } + interface ByteLengthQueuingStrategy extends QueuingStrategy { + readonly highWaterMark: number; + readonly size: QueuingStrategySize; + } + var ByteLengthQueuingStrategy: { + prototype: ByteLengthQueuingStrategy; + new(init: QueuingStrategyInit): ByteLengthQueuingStrategy; + }; + interface CompressionStream extends GenericTransformStream { + readonly readable: ReadableStream; + readonly writable: WritableStream; + } + var CompressionStream: { + prototype: CompressionStream; + new(format: CompressionFormat): CompressionStream; + }; + interface CountQueuingStrategy extends QueuingStrategy { + readonly highWaterMark: number; + readonly size: QueuingStrategySize; + } + var CountQueuingStrategy: { + prototype: CountQueuingStrategy; + new(init: QueuingStrategyInit): CountQueuingStrategy; + }; + interface DecompressionStream extends GenericTransformStream { + readonly readable: ReadableStream; + readonly writable: WritableStream; + } + var DecompressionStream: { + prototype: DecompressionStream; + new(format: CompressionFormat): DecompressionStream; + }; + interface ReadableByteStreamController { + readonly byobRequest: ReadableStreamBYOBRequest | null; + readonly desiredSize: number | null; + close(): void; + enqueue(chunk: NodeJS.NonSharedArrayBufferView): void; + error(e?: any): void; + } + var ReadableByteStreamController: { + prototype: ReadableByteStreamController; + new(): ReadableByteStreamController; + }; + interface ReadableStream { + readonly locked: boolean; + cancel(reason?: any): Promise; + getReader(options: { mode: "byob" }): ReadableStreamBYOBReader; + getReader(): ReadableStreamDefaultReader; + getReader(options?: ReadableStreamGetReaderOptions): ReadableStreamReader; + pipeThrough(transform: ReadableWritablePair, options?: StreamPipeOptions): ReadableStream; + pipeTo(destination: WritableStream, options?: StreamPipeOptions): Promise; + tee(): [ReadableStream, ReadableStream]; + [Symbol.asyncIterator](options?: ReadableStreamIteratorOptions): ReadableStreamAsyncIterator; + values(options?: ReadableStreamIteratorOptions): ReadableStreamAsyncIterator; + } + var ReadableStream: { + prototype: ReadableStream; + new( + underlyingSource: UnderlyingByteSource, + strategy?: { highWaterMark?: number }, + ): ReadableStream; + new(underlyingSource: UnderlyingDefaultSource, strategy?: QueuingStrategy): ReadableStream; + new(underlyingSource?: UnderlyingSource, strategy?: QueuingStrategy): ReadableStream; + from(iterable: Iterable | AsyncIterable): ReadableStream; + }; + interface ReadableStreamAsyncIterator extends NodeJS.AsyncIterator { + [Symbol.asyncIterator](): ReadableStreamAsyncIterator; + } + interface ReadableStreamBYOBReader extends ReadableStreamGenericReader { + read( + view: T, + options?: ReadableStreamBYOBReaderReadOptions, + ): Promise>; + releaseLock(): void; + } + var ReadableStreamBYOBReader: { + prototype: ReadableStreamBYOBReader; + new(stream: ReadableStream): ReadableStreamBYOBReader; + }; + interface ReadableStreamBYOBRequest { + readonly view: NodeJS.NonSharedArrayBufferView | null; + respond(bytesWritten: number): void; + respondWithNewView(view: NodeJS.NonSharedArrayBufferView): void; + } + var ReadableStreamBYOBRequest: { + prototype: ReadableStreamBYOBRequest; + new(): ReadableStreamBYOBRequest; + }; + interface ReadableStreamDefaultController { + readonly desiredSize: number | null; + close(): void; + enqueue(chunk: R): void; + error(e?: any): void; + } + var ReadableStreamDefaultController: { + prototype: ReadableStreamDefaultController; + new(): ReadableStreamDefaultController; + }; + interface ReadableStreamDefaultReader extends ReadableStreamGenericReader { + read(): Promise>; + releaseLock(): void; + } + var ReadableStreamDefaultReader: { + prototype: ReadableStreamDefaultReader; + new(stream: ReadableStream): ReadableStreamDefaultReader; + }; + interface TextDecoderStream extends GenericTransformStream, TextDecoderCommon { + readonly readable: ReadableStream; + readonly writable: WritableStream; + } + var TextDecoderStream: { + prototype: TextDecoderStream; + new(label?: string, options?: TextDecoderOptions): TextDecoderStream; + }; + interface TextEncoderStream extends GenericTransformStream, TextEncoderCommon { + readonly readable: ReadableStream; + readonly writable: WritableStream; + } + var TextEncoderStream: { + prototype: TextEncoderStream; + new(): TextEncoderStream; + }; + interface TransformStream { + readonly readable: ReadableStream; + readonly writable: WritableStream; + } + var TransformStream: { + prototype: TransformStream; + new( + transformer?: Transformer, + writableStrategy?: QueuingStrategy, + readableStrategy?: QueuingStrategy, + ): TransformStream; + }; + interface TransformStreamDefaultController { + readonly desiredSize: number | null; + enqueue(chunk: O): void; + error(reason?: any): void; + terminate(): void; + } + var TransformStreamDefaultController: { + prototype: TransformStreamDefaultController; + new(): TransformStreamDefaultController; + }; + interface WritableStream { + readonly locked: boolean; + abort(reason?: any): Promise; + close(): Promise; + getWriter(): WritableStreamDefaultWriter; + } + var WritableStream: { + prototype: WritableStream; + new(underlyingSink?: UnderlyingSink, strategy?: QueuingStrategy): WritableStream; + }; + interface WritableStreamDefaultController { + readonly signal: AbortSignal; + error(e?: any): void; + } + var WritableStreamDefaultController: { + prototype: WritableStreamDefaultController; + new(): WritableStreamDefaultController; + }; + interface WritableStreamDefaultWriter { + readonly closed: Promise; + readonly desiredSize: number | null; + readonly ready: Promise; + abort(reason?: any): Promise; + close(): Promise; + releaseLock(): void; + write(chunk: W): Promise; + } + var WritableStreamDefaultWriter: { + prototype: WritableStreamDefaultWriter; + new(stream: WritableStream): WritableStreamDefaultWriter; + }; +} +declare module "stream/web" { + export * from "node:stream/web"; +} diff --git a/server/api/node_modules/@types/node/string_decoder.d.ts b/server/api/node_modules/@types/node/string_decoder.d.ts new file mode 100644 index 0000000..568e3f6 --- /dev/null +++ b/server/api/node_modules/@types/node/string_decoder.d.ts @@ -0,0 +1,27 @@ +declare module "node:string_decoder" { + class StringDecoder { + constructor(encoding?: BufferEncoding); + /** + * Returns a decoded string, ensuring that any incomplete multibyte characters at + * the end of the `Buffer`, or `TypedArray`, or `DataView` are omitted from the + * returned string and stored in an internal buffer for the next call to `stringDecoder.write()` or `stringDecoder.end()`. + * @since v0.1.99 + * @param buffer The bytes to decode. + */ + write(buffer: string | NodeJS.ArrayBufferView): string; + /** + * Returns any remaining input stored in the internal buffer as a string. Bytes + * representing incomplete UTF-8 and UTF-16 characters will be replaced with + * substitution characters appropriate for the character encoding. + * + * If the `buffer` argument is provided, one final call to `stringDecoder.write()` is performed before returning the remaining input. + * After `end()` is called, the `stringDecoder` object can be reused for new input. + * @since v0.9.3 + * @param buffer The bytes to decode. + */ + end(buffer?: string | NodeJS.ArrayBufferView): string; + } +} +declare module "string_decoder" { + export * from "node:string_decoder"; +} diff --git a/server/api/node_modules/@types/node/test.d.ts b/server/api/node_modules/@types/node/test.d.ts new file mode 100644 index 0000000..a3ec5e2 --- /dev/null +++ b/server/api/node_modules/@types/node/test.d.ts @@ -0,0 +1,2202 @@ +declare module "node:test" { + import { AssertMethodNames } from "node:assert"; + import { Readable, ReadableEventMap } from "node:stream"; + import { TestEvent } from "node:test/reporters"; + import { URL } from "node:url"; + import TestFn = test.TestFn; + import TestOptions = test.TestOptions; + /** + * The `test()` function is the value imported from the `test` module. Each + * invocation of this function results in reporting the test to the `TestsStream`. + * + * The `TestContext` object passed to the `fn` argument can be used to perform + * actions related to the current test. Examples include skipping the test, adding + * additional diagnostic information, or creating subtests. + * + * `test()` returns a `Promise` that fulfills once the test completes. + * if `test()` is called within a suite, it fulfills immediately. + * The return value can usually be discarded for top level tests. + * However, the return value from subtests should be used to prevent the parent + * test from finishing first and cancelling the subtest + * as shown in the following example. + * + * ```js + * test('top level test', async (t) => { + * // The setTimeout() in the following subtest would cause it to outlive its + * // parent test if 'await' is removed on the next line. Once the parent test + * // completes, it will cancel any outstanding subtests. + * await t.test('longer running subtest', async (t) => { + * return new Promise((resolve, reject) => { + * setTimeout(resolve, 1000); + * }); + * }); + * }); + * ``` + * + * The `timeout` option can be used to fail the test if it takes longer than `timeout` milliseconds to complete. However, it is not a reliable mechanism for + * canceling tests because a running test might block the application thread and + * thus prevent the scheduled cancellation. + * @since v18.0.0, v16.17.0 + * @param name The name of the test, which is displayed when reporting test results. + * Defaults to the `name` property of `fn`, or `''` if `fn` does not have a name. + * @param options Configuration options for the test. + * @param fn The function under test. The first argument to this function is a {@link TestContext} object. + * If the test uses callbacks, the callback function is passed as the second argument. + * @return Fulfilled with `undefined` once the test completes, or immediately if the test runs within a suite. + */ + function test(name?: string, fn?: TestFn): Promise; + function test(name?: string, options?: TestOptions, fn?: TestFn): Promise; + function test(options?: TestOptions, fn?: TestFn): Promise; + function test(fn?: TestFn): Promise; + namespace test { + export { test }; + export { suite as describe, test as it }; + } + namespace test { + /** + * **Note:** `shard` is used to horizontally parallelize test running across + * machines or processes, ideal for large-scale executions across varied + * environments. It's incompatible with `watch` mode, tailored for rapid + * code iteration by automatically rerunning tests on file changes. + * + * ```js + * import { tap } from 'node:test/reporters'; + * import { run } from 'node:test'; + * import process from 'node:process'; + * import path from 'node:path'; + * + * run({ files: [path.resolve('./tests/test.js')] }) + * .compose(tap) + * .pipe(process.stdout); + * ``` + * @since v18.9.0, v16.19.0 + * @param options Configuration options for running tests. + */ + function run(options?: RunOptions): TestsStream; + /** + * The `suite()` function is imported from the `node:test` module. + * @param name The name of the suite, which is displayed when reporting test results. + * Defaults to the `name` property of `fn`, or `''` if `fn` does not have a name. + * @param options Configuration options for the suite. This supports the same options as {@link test}. + * @param fn The suite function declaring nested tests and suites. The first argument to this function is a {@link SuiteContext} object. + * @return Immediately fulfilled with `undefined`. + * @since v20.13.0 + */ + function suite(name?: string, options?: TestOptions, fn?: SuiteFn): Promise; + function suite(name?: string, fn?: SuiteFn): Promise; + function suite(options?: TestOptions, fn?: SuiteFn): Promise; + function suite(fn?: SuiteFn): Promise; + namespace suite { + /** + * Shorthand for skipping a suite. This is the same as calling {@link suite} with `options.skip` set to `true`. + * @since v20.13.0 + */ + function skip(name?: string, options?: TestOptions, fn?: SuiteFn): Promise; + function skip(name?: string, fn?: SuiteFn): Promise; + function skip(options?: TestOptions, fn?: SuiteFn): Promise; + function skip(fn?: SuiteFn): Promise; + /** + * Shorthand for marking a suite as `TODO`. This is the same as calling {@link suite} with `options.todo` set to `true`. + * @since v20.13.0 + */ + function todo(name?: string, options?: TestOptions, fn?: SuiteFn): Promise; + function todo(name?: string, fn?: SuiteFn): Promise; + function todo(options?: TestOptions, fn?: SuiteFn): Promise; + function todo(fn?: SuiteFn): Promise; + /** + * Shorthand for marking a suite as `only`. This is the same as calling {@link suite} with `options.only` set to `true`. + * @since v20.13.0 + */ + function only(name?: string, options?: TestOptions, fn?: SuiteFn): Promise; + function only(name?: string, fn?: SuiteFn): Promise; + function only(options?: TestOptions, fn?: SuiteFn): Promise; + function only(fn?: SuiteFn): Promise; + // added in v25.5.0, undocumented + function expectFailure(name?: string, options?: TestOptions, fn?: SuiteFn): Promise; + function expectFailure(name?: string, fn?: SuiteFn): Promise; + function expectFailure(options?: TestOptions, fn?: SuiteFn): Promise; + function expectFailure(fn?: SuiteFn): Promise; + } + /** + * Shorthand for skipping a test. This is the same as calling {@link test} with `options.skip` set to `true`. + * @since v20.2.0 + */ + function skip(name?: string, options?: TestOptions, fn?: TestFn): Promise; + function skip(name?: string, fn?: TestFn): Promise; + function skip(options?: TestOptions, fn?: TestFn): Promise; + function skip(fn?: TestFn): Promise; + /** + * Shorthand for marking a test as `TODO`. This is the same as calling {@link test} with `options.todo` set to `true`. + * @since v20.2.0 + */ + function todo(name?: string, options?: TestOptions, fn?: TestFn): Promise; + function todo(name?: string, fn?: TestFn): Promise; + function todo(options?: TestOptions, fn?: TestFn): Promise; + function todo(fn?: TestFn): Promise; + /** + * Shorthand for marking a test as `only`. This is the same as calling {@link test} with `options.only` set to `true`. + * @since v20.2.0 + */ + function only(name?: string, options?: TestOptions, fn?: TestFn): Promise; + function only(name?: string, fn?: TestFn): Promise; + function only(options?: TestOptions, fn?: TestFn): Promise; + function only(fn?: TestFn): Promise; + // added in v25.5.0, undocumented + function expectFailure(name?: string, options?: TestOptions, fn?: TestFn): Promise; + function expectFailure(name?: string, fn?: TestFn): Promise; + function expectFailure(options?: TestOptions, fn?: TestFn): Promise; + function expectFailure(fn?: TestFn): Promise; + /** + * The type of a function passed to {@link test}. The first argument to this function is a {@link TestContext} object. + * If the test uses callbacks, the callback function is passed as the second argument. + */ + type TestFn = (t: TestContext, done: (result?: any) => void) => void | Promise; + /** + * The type of a suite test function. The argument to this function is a {@link SuiteContext} object. + */ + type SuiteFn = (s: SuiteContext) => void | Promise; + interface TestShard { + /** + * A positive integer between 1 and `total` that specifies the index of the shard to run. + */ + index: number; + /** + * A positive integer that specifies the total number of shards to split the test files to. + */ + total: number; + } + interface RunOptions { + /** + * If a number is provided, then that many tests would run asynchronously (they are still managed by the single-threaded event loop). + * If `true`, it would run `os.availableParallelism() - 1` test files in parallel. If `false`, it would only run one test file at a time. + * @default false + */ + concurrency?: number | boolean | undefined; + /** + * Specifies the current working directory to be used by the test runner. + * Serves as the base path for resolving files according to the + * [test runner execution model](https://nodejs.org/docs/latest-v25.x/api/test.html#test-runner-execution-model). + * @since v23.0.0 + * @default process.cwd() + */ + cwd?: string | undefined; + /** + * An array containing the list of files to run. If omitted, files are run according to the + * [test runner execution model](https://nodejs.org/docs/latest-v25.x/api/test.html#test-runner-execution-model). + */ + files?: readonly string[] | undefined; + /** + * Configures the test runner to exit the process once all known + * tests have finished executing even if the event loop would + * otherwise remain active. + * @default false + */ + forceExit?: boolean | undefined; + /** + * An array containing the list of glob patterns to match test files. + * This option cannot be used together with `files`. If omitted, files are run according to the + * [test runner execution model](https://nodejs.org/docs/latest-v25.x/api/test.html#test-runner-execution-model). + * @since v22.6.0 + */ + globPatterns?: readonly string[] | undefined; + /** + * Sets inspector port of test child process. + * This can be a number, or a function that takes no arguments and returns a + * number. If a nullish value is provided, each process gets its own port, + * incremented from the primary's `process.debugPort`. This option is ignored + * if the `isolation` option is set to `'none'` as no child processes are + * spawned. + * @default undefined + */ + inspectPort?: number | (() => number) | undefined; + /** + * Configures the type of test isolation. If set to + * `'process'`, each test file is run in a separate child process. If set to + * `'none'`, all test files run in the current process. + * @default 'process' + * @since v22.8.0 + */ + isolation?: "process" | "none" | undefined; + /** + * If truthy, the test context will only run tests that have the `only` option set + */ + only?: boolean | undefined; + /** + * A function that accepts the `TestsStream` instance and can be used to setup listeners before any tests are run. + * @default undefined + */ + setup?: ((reporter: TestsStream) => void | Promise) | undefined; + /** + * An array of CLI flags to pass to the `node` executable when + * spawning the subprocesses. This option has no effect when `isolation` is `'none`'. + * @since v22.10.0 + * @default [] + */ + execArgv?: readonly string[] | undefined; + /** + * An array of CLI flags to pass to each test file when spawning the + * subprocesses. This option has no effect when `isolation` is `'none'`. + * @since v22.10.0 + * @default [] + */ + argv?: readonly string[] | undefined; + /** + * Allows aborting an in-progress test execution. + */ + signal?: AbortSignal | undefined; + /** + * If provided, only run tests whose name matches the provided pattern. + * Strings are interpreted as JavaScript regular expressions. + * @default undefined + */ + testNamePatterns?: string | RegExp | ReadonlyArray | undefined; + /** + * A String, RegExp or a RegExp Array, that can be used to exclude running tests whose + * name matches the provided pattern. Test name patterns are interpreted as JavaScript + * regular expressions. For each test that is executed, any corresponding test hooks, + * such as `beforeEach()`, are also run. + * @default undefined + * @since v22.1.0 + */ + testSkipPatterns?: string | RegExp | ReadonlyArray | undefined; + /** + * The number of milliseconds after which the test execution will fail. + * If unspecified, subtests inherit this value from their parent. + * @default Infinity + */ + timeout?: number | undefined; + /** + * Whether to run in watch mode or not. + * @default false + */ + watch?: boolean | undefined; + /** + * Running tests in a specific shard. + * @default undefined + */ + shard?: TestShard | undefined; + /** + * A file path where the test runner will + * store the state of the tests to allow rerunning only the failed tests on a next run. + * @since v24.7.0 + * @default undefined + */ + rerunFailuresFilePath?: string | undefined; + /** + * enable [code coverage](https://nodejs.org/docs/latest-v25.x/api/test.html#collecting-code-coverage) collection. + * @since v22.10.0 + * @default false + */ + coverage?: boolean | undefined; + /** + * Excludes specific files from code coverage + * using a glob pattern, which can match both absolute and relative file paths. + * This property is only applicable when `coverage` was set to `true`. + * If both `coverageExcludeGlobs` and `coverageIncludeGlobs` are provided, + * files must meet **both** criteria to be included in the coverage report. + * @since v22.10.0 + * @default undefined + */ + coverageExcludeGlobs?: string | readonly string[] | undefined; + /** + * Includes specific files in code coverage + * using a glob pattern, which can match both absolute and relative file paths. + * This property is only applicable when `coverage` was set to `true`. + * If both `coverageExcludeGlobs` and `coverageIncludeGlobs` are provided, + * files must meet **both** criteria to be included in the coverage report. + * @since v22.10.0 + * @default undefined + */ + coverageIncludeGlobs?: string | readonly string[] | undefined; + /** + * Require a minimum percent of covered lines. If code + * coverage does not reach the threshold specified, the process will exit with code `1`. + * @since v22.10.0 + * @default 0 + */ + lineCoverage?: number | undefined; + /** + * Require a minimum percent of covered branches. If code + * coverage does not reach the threshold specified, the process will exit with code `1`. + * @since v22.10.0 + * @default 0 + */ + branchCoverage?: number | undefined; + /** + * Require a minimum percent of covered functions. If code + * coverage does not reach the threshold specified, the process will exit with code `1`. + * @since v22.10.0 + * @default 0 + */ + functionCoverage?: number | undefined; + /** + * Specify environment variables to be passed along to the test process. + * This options is not compatible with `isolation='none'`. These variables will override + * those from the main process, and are not merged with `process.env`. + * @since v25.6.0 + */ + env?: NodeJS.ProcessEnv | undefined; + } + interface TestsStreamEventMap extends ReadableEventMap { + "data": [data: TestEvent]; + "test:coverage": [data: EventData.TestCoverage]; + "test:complete": [data: EventData.TestComplete]; + "test:dequeue": [data: EventData.TestDequeue]; + "test:diagnostic": [data: EventData.TestDiagnostic]; + "test:enqueue": [data: EventData.TestEnqueue]; + "test:fail": [data: EventData.TestFail]; + "test:pass": [data: EventData.TestPass]; + "test:plan": [data: EventData.TestPlan]; + "test:start": [data: EventData.TestStart]; + "test:stderr": [data: EventData.TestStderr]; + "test:stdout": [data: EventData.TestStdout]; + "test:summary": [data: EventData.TestSummary]; + "test:watch:drained": []; + "test:watch:restarted": []; + } + /** + * A successful call to `run()` will return a new `TestsStream` object, streaming a series of events representing the execution of the tests. + * + * Some of the events are guaranteed to be emitted in the same order as the tests are defined, while others are emitted in the order that the tests execute. + * @since v18.9.0, v16.19.0 + */ + interface TestsStream extends Readable { + // #region InternalEventEmitter + addListener( + eventName: E, + listener: (...args: TestsStreamEventMap[E]) => void, + ): this; + addListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + emit(eventName: E, ...args: TestsStreamEventMap[E]): boolean; + emit(eventName: string | symbol, ...args: any[]): boolean; + listenerCount( + eventName: E, + listener?: (...args: TestsStreamEventMap[E]) => void, + ): number; + listenerCount(eventName: string | symbol, listener?: (...args: any[]) => void): number; + listeners(eventName: E): ((...args: TestsStreamEventMap[E]) => void)[]; + listeners(eventName: string | symbol): ((...args: any[]) => void)[]; + off( + eventName: E, + listener: (...args: TestsStreamEventMap[E]) => void, + ): this; + off(eventName: string | symbol, listener: (...args: any[]) => void): this; + on( + eventName: E, + listener: (...args: TestsStreamEventMap[E]) => void, + ): this; + on(eventName: string | symbol, listener: (...args: any[]) => void): this; + once( + eventName: E, + listener: (...args: TestsStreamEventMap[E]) => void, + ): this; + once(eventName: string | symbol, listener: (...args: any[]) => void): this; + prependListener( + eventName: E, + listener: (...args: TestsStreamEventMap[E]) => void, + ): this; + prependListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + prependOnceListener( + eventName: E, + listener: (...args: TestsStreamEventMap[E]) => void, + ): this; + prependOnceListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + rawListeners( + eventName: E, + ): ((...args: TestsStreamEventMap[E]) => void)[]; + rawListeners(eventName: string | symbol): ((...args: any[]) => void)[]; + // eslint-disable-next-line @definitelytyped/no-unnecessary-generics + removeAllListeners(eventName?: E): this; + removeAllListeners(eventName?: string | symbol): this; + removeListener( + eventName: E, + listener: (...args: TestsStreamEventMap[E]) => void, + ): this; + removeListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + // #endregion + } + namespace EventData { + interface Error extends globalThis.Error { + cause: unknown; + } + interface LocationInfo { + /** + * The column number where the test is defined, or + * `undefined` if the test was run through the REPL. + */ + column?: number; + /** + * The path of the test file, `undefined` if test was run through the REPL. + */ + file?: string; + /** + * The line number where the test is defined, or `undefined` if the test was run through the REPL. + */ + line?: number; + } + interface TestDiagnostic extends LocationInfo { + /** + * The diagnostic message. + */ + message: string; + /** + * The nesting level of the test. + */ + nesting: number; + /** + * The severity level of the diagnostic message. + * Possible values are: + * * `'info'`: Informational messages. + * * `'warn'`: Warnings. + * * `'error'`: Errors. + */ + level: "info" | "warn" | "error"; + } + interface TestCoverage { + /** + * An object containing the coverage report. + */ + summary: { + /** + * An array of coverage reports for individual files. + */ + files: Array<{ + /** + * The absolute path of the file. + */ + path: string; + /** + * The total number of lines. + */ + totalLineCount: number; + /** + * The total number of branches. + */ + totalBranchCount: number; + /** + * The total number of functions. + */ + totalFunctionCount: number; + /** + * The number of covered lines. + */ + coveredLineCount: number; + /** + * The number of covered branches. + */ + coveredBranchCount: number; + /** + * The number of covered functions. + */ + coveredFunctionCount: number; + /** + * The percentage of lines covered. + */ + coveredLinePercent: number; + /** + * The percentage of branches covered. + */ + coveredBranchPercent: number; + /** + * The percentage of functions covered. + */ + coveredFunctionPercent: number; + /** + * An array of functions representing function coverage. + */ + functions: Array<{ + /** + * The name of the function. + */ + name: string; + /** + * The line number where the function is defined. + */ + line: number; + /** + * The number of times the function was called. + */ + count: number; + }>; + /** + * An array of branches representing branch coverage. + */ + branches: Array<{ + /** + * The line number where the branch is defined. + */ + line: number; + /** + * The number of times the branch was taken. + */ + count: number; + }>; + /** + * An array of lines representing line numbers and the number of times they were covered. + */ + lines: Array<{ + /** + * The line number. + */ + line: number; + /** + * The number of times the line was covered. + */ + count: number; + }>; + }>; + /** + * An object containing whether or not the coverage for + * each coverage type. + * @since v22.9.0 + */ + thresholds: { + /** + * The function coverage threshold. + */ + function: number; + /** + * The branch coverage threshold. + */ + branch: number; + /** + * The line coverage threshold. + */ + line: number; + }; + /** + * An object containing a summary of coverage for all files. + */ + totals: { + /** + * The total number of lines. + */ + totalLineCount: number; + /** + * The total number of branches. + */ + totalBranchCount: number; + /** + * The total number of functions. + */ + totalFunctionCount: number; + /** + * The number of covered lines. + */ + coveredLineCount: number; + /** + * The number of covered branches. + */ + coveredBranchCount: number; + /** + * The number of covered functions. + */ + coveredFunctionCount: number; + /** + * The percentage of lines covered. + */ + coveredLinePercent: number; + /** + * The percentage of branches covered. + */ + coveredBranchPercent: number; + /** + * The percentage of functions covered. + */ + coveredFunctionPercent: number; + }; + /** + * The working directory when code coverage began. This + * is useful for displaying relative path names in case + * the tests changed the working directory of the Node.js process. + */ + workingDirectory: string; + }; + /** + * The nesting level of the test. + */ + nesting: number; + } + interface TestComplete extends LocationInfo { + /** + * Additional execution metadata. + */ + details: { + /** + * Whether the test passed or not. + */ + passed: boolean; + /** + * The duration of the test in milliseconds. + */ + duration_ms: number; + /** + * An error wrapping the error thrown by the test if it did not pass. + */ + error?: Error; + /** + * The type of the test, used to denote whether this is a suite. + */ + type?: "suite" | "test"; + }; + /** + * The test name. + */ + name: string; + /** + * The nesting level of the test. + */ + nesting: number; + /** + * The ordinal number of the test. + */ + testNumber: number; + /** + * Present if `context.todo` is called. + */ + todo?: string | boolean; + /** + * Present if `context.skip` is called. + */ + skip?: string | boolean; + } + interface TestDequeue extends LocationInfo { + /** + * The test name. + */ + name: string; + /** + * The nesting level of the test. + */ + nesting: number; + /** + * The test type. Either `'suite'` or `'test'`. + * @since v22.15.0 + */ + type: "suite" | "test"; + } + interface TestEnqueue extends LocationInfo { + /** + * The test name. + */ + name: string; + /** + * The nesting level of the test. + */ + nesting: number; + /** + * The test type. Either `'suite'` or `'test'`. + * @since v22.15.0 + */ + type: "suite" | "test"; + } + interface TestFail extends LocationInfo { + /** + * Additional execution metadata. + */ + details: { + /** + * The duration of the test in milliseconds. + */ + duration_ms: number; + /** + * An error wrapping the error thrown by the test. + */ + error: Error; + /** + * The type of the test, used to denote whether this is a suite. + * @since v20.0.0, v19.9.0, v18.17.0 + */ + type?: "suite" | "test"; + /** + * The attempt number of the test run, + * present only when using the `--test-rerun-failures` flag. + * @since v24.7.0 + */ + attempt?: number; + }; + /** + * The test name. + */ + name: string; + /** + * The nesting level of the test. + */ + nesting: number; + /** + * The ordinal number of the test. + */ + testNumber: number; + /** + * Present if `context.todo` is called. + */ + todo?: string | boolean; + /** + * Present if `context.skip` is called. + */ + skip?: string | boolean; + } + interface TestPass extends LocationInfo { + /** + * Additional execution metadata. + */ + details: { + /** + * The duration of the test in milliseconds. + */ + duration_ms: number; + /** + * The type of the test, used to denote whether this is a suite. + * @since 20.0.0, 19.9.0, 18.17.0 + */ + type?: "suite" | "test"; + /** + * The attempt number of the test run, + * present only when using the `--test-rerun-failures` flag. + * @since v24.7.0 + */ + attempt?: number; + /** + * The attempt number the test passed on, + * present only when using the `--test-rerun-failures` flag. + * @since v24.7.0 + */ + passed_on_attempt?: number; + }; + /** + * The test name. + */ + name: string; + /** + * The nesting level of the test. + */ + nesting: number; + /** + * The ordinal number of the test. + */ + testNumber: number; + /** + * Present if `context.todo` is called. + */ + todo?: string | boolean; + /** + * Present if `context.skip` is called. + */ + skip?: string | boolean; + } + interface TestPlan extends LocationInfo { + /** + * The nesting level of the test. + */ + nesting: number; + /** + * The number of subtests that have ran. + */ + count: number; + } + interface TestStart extends LocationInfo { + /** + * The test name. + */ + name: string; + /** + * The nesting level of the test. + */ + nesting: number; + } + interface TestStderr { + /** + * The path of the test file. + */ + file: string; + /** + * The message written to `stderr`. + */ + message: string; + } + interface TestStdout { + /** + * The path of the test file. + */ + file: string; + /** + * The message written to `stdout`. + */ + message: string; + } + interface TestSummary { + /** + * An object containing the counts of various test results. + */ + counts: { + /** + * The total number of cancelled tests. + */ + cancelled: number; + /** + * The total number of passed tests. + */ + passed: number; + /** + * The total number of skipped tests. + */ + skipped: number; + /** + * The total number of suites run. + */ + suites: number; + /** + * The total number of tests run, excluding suites. + */ + tests: number; + /** + * The total number of TODO tests. + */ + todo: number; + /** + * The total number of top level tests and suites. + */ + topLevel: number; + }; + /** + * The duration of the test run in milliseconds. + */ + duration_ms: number; + /** + * The path of the test file that generated the + * summary. If the summary corresponds to multiple files, this value is + * `undefined`. + */ + file: string | undefined; + /** + * Indicates whether or not the test run is considered + * successful or not. If any error condition occurs, such as a failing test or + * unmet coverage threshold, this value will be set to `false`. + */ + success: boolean; + } + } + /** + * An instance of `TestContext` is passed to each test function in order to + * interact with the test runner. However, the `TestContext` constructor is not + * exposed as part of the API. + * @since v18.0.0, v16.17.0 + */ + interface TestContext { + /** + * An object containing assertion methods bound to the test context. + * The top-level functions from the `node:assert` module are exposed here for the purpose of creating test plans. + * + * **Note:** Some of the functions from `node:assert` contain type assertions. If these are called via the + * TestContext `assert` object, then the context parameter in the test's function signature **must be explicitly typed** + * (ie. the parameter must have a type annotation), otherwise an error will be raised by the TypeScript compiler: + * ```ts + * import { test, type TestContext } from 'node:test'; + * + * // The test function's context parameter must have a type annotation. + * test('example', (t: TestContext) => { + * t.assert.deepStrictEqual(actual, expected); + * }); + * + * // Omitting the type annotation will result in a compilation error. + * test('example', t => { + * t.assert.deepStrictEqual(actual, expected); // Error: 't' needs an explicit type annotation. + * }); + * ``` + * @since v22.2.0, v20.15.0 + */ + readonly assert: TestContextAssert; + /** + * This function is used to create a hook running before subtest of the current test. + * @param fn The hook function. The first argument to this function is a `TestContext` object. + * If the hook uses callbacks, the callback function is passed as the second argument. + * @param options Configuration options for the hook. + * @since v20.1.0, v18.17.0 + */ + before(fn?: TestContextHookFn, options?: HookOptions): void; + /** + * This function is used to create a hook running before each subtest of the current test. + * @param fn The hook function. The first argument to this function is a `TestContext` object. + * If the hook uses callbacks, the callback function is passed as the second argument. + * @param options Configuration options for the hook. + * @since v18.8.0 + */ + beforeEach(fn?: TestContextHookFn, options?: HookOptions): void; + /** + * This function is used to create a hook that runs after the current test finishes. + * @param fn The hook function. The first argument to this function is a `TestContext` object. + * If the hook uses callbacks, the callback function is passed as the second argument. + * @param options Configuration options for the hook. + * @since v18.13.0 + */ + after(fn?: TestContextHookFn, options?: HookOptions): void; + /** + * This function is used to create a hook running after each subtest of the current test. + * @param fn The hook function. The first argument to this function is a `TestContext` object. + * If the hook uses callbacks, the callback function is passed as the second argument. + * @param options Configuration options for the hook. + * @since v18.8.0 + */ + afterEach(fn?: TestContextHookFn, options?: HookOptions): void; + /** + * This function is used to write diagnostics to the output. Any diagnostic + * information is included at the end of the test's results. This function does + * not return a value. + * + * ```js + * test('top level test', (t) => { + * t.diagnostic('A diagnostic message'); + * }); + * ``` + * @since v18.0.0, v16.17.0 + * @param message Message to be reported. + */ + diagnostic(message: string): void; + /** + * The absolute path of the test file that created the current test. If a test file imports + * additional modules that generate tests, the imported tests will return the path of the root test file. + * @since v22.6.0 + */ + readonly filePath: string | undefined; + /** + * The name of the test and each of its ancestors, separated by `>`. + * @since v22.3.0 + */ + readonly fullName: string; + /** + * The name of the test. + * @since v18.8.0, v16.18.0 + */ + readonly name: string; + /** + * Indicated whether the test succeeded. + * @since v21.7.0, v20.12.0 + */ + readonly passed: boolean; + /** + * The failure reason for the test/case; wrapped and available via `context.error.cause`. + * @since v21.7.0, v20.12.0 + */ + readonly error: EventData.Error | null; + /** + * Number of times the test has been attempted. + * @since v21.7.0, v20.12.0 + */ + readonly attempt: number; + /** + * This function is used to set the number of assertions and subtests that are expected to run + * within the test. If the number of assertions and subtests that run does not match the + * expected count, the test will fail. + * + * > Note: To make sure assertions are tracked, `t.assert` must be used instead of `assert` directly. + * + * ```js + * test('top level test', (t) => { + * t.plan(2); + * t.assert.ok('some relevant assertion here'); + * t.test('subtest', () => {}); + * }); + * ``` + * + * When working with asynchronous code, the `plan` function can be used to ensure that the + * correct number of assertions are run: + * + * ```js + * test('planning with streams', (t, done) => { + * function* generate() { + * yield 'a'; + * yield 'b'; + * yield 'c'; + * } + * const expected = ['a', 'b', 'c']; + * t.plan(expected.length); + * const stream = Readable.from(generate()); + * stream.on('data', (chunk) => { + * t.assert.strictEqual(chunk, expected.shift()); + * }); + * + * stream.on('end', () => { + * done(); + * }); + * }); + * ``` + * + * When using the `wait` option, you can control how long the test will wait for the expected assertions. + * For example, setting a maximum wait time ensures that the test will wait for asynchronous assertions + * to complete within the specified timeframe: + * + * ```js + * test('plan with wait: 2000 waits for async assertions', (t) => { + * t.plan(1, { wait: 2000 }); // Waits for up to 2 seconds for the assertion to complete. + * + * const asyncActivity = () => { + * setTimeout(() => { + * * t.assert.ok(true, 'Async assertion completed within the wait time'); + * }, 1000); // Completes after 1 second, within the 2-second wait time. + * }; + * + * asyncActivity(); // The test will pass because the assertion is completed in time. + * }); + * ``` + * + * Note: If a `wait` timeout is specified, it begins counting down only after the test function finishes executing. + * @since v22.2.0 + */ + plan(count: number, options?: TestContextPlanOptions): void; + /** + * If `shouldRunOnlyTests` is truthy, the test context will only run tests that + * have the `only` option set. Otherwise, all tests are run. If Node.js was not + * started with the `--test-only` command-line option, this function is a + * no-op. + * + * ```js + * test('top level test', (t) => { + * // The test context can be set to run subtests with the 'only' option. + * t.runOnly(true); + * return Promise.all([ + * t.test('this subtest is now skipped'), + * t.test('this subtest is run', { only: true }), + * ]); + * }); + * ``` + * @since v18.0.0, v16.17.0 + * @param shouldRunOnlyTests Whether or not to run `only` tests. + */ + runOnly(shouldRunOnlyTests: boolean): void; + /** + * ```js + * test('top level test', async (t) => { + * await fetch('some/uri', { signal: t.signal }); + * }); + * ``` + * @since v18.7.0, v16.17.0 + */ + readonly signal: AbortSignal; + /** + * This function causes the test's output to indicate the test as skipped. If `message` is provided, it is included in the output. Calling `skip()` does + * not terminate execution of the test function. This function does not return a + * value. + * + * ```js + * test('top level test', (t) => { + * // Make sure to return here as well if the test contains additional logic. + * t.skip('this is skipped'); + * }); + * ``` + * @since v18.0.0, v16.17.0 + * @param message Optional skip message. + */ + skip(message?: string): void; + /** + * This function adds a `TODO` directive to the test's output. If `message` is + * provided, it is included in the output. Calling `todo()` does not terminate + * execution of the test function. This function does not return a value. + * + * ```js + * test('top level test', (t) => { + * // This test is marked as `TODO` + * t.todo('this is a todo'); + * }); + * ``` + * @since v18.0.0, v16.17.0 + * @param message Optional `TODO` message. + */ + todo(message?: string): void; + /** + * This function is used to create subtests under the current test. This function behaves in + * the same fashion as the top level {@link test} function. + * @since v18.0.0 + * @param name The name of the test, which is displayed when reporting test results. + * Defaults to the `name` property of `fn`, or `''` if `fn` does not have a name. + * @param options Configuration options for the test. + * @param fn The function under test. This first argument to this function is a {@link TestContext} object. + * If the test uses callbacks, the callback function is passed as the second argument. + * @returns A {@link Promise} resolved with `undefined` once the test completes. + */ + test: typeof test; + /** + * This method polls a `condition` function until that function either returns + * successfully or the operation times out. + * @since v22.14.0 + * @param condition An assertion function that is invoked + * periodically until it completes successfully or the defined polling timeout + * elapses. Successful completion is defined as not throwing or rejecting. This + * function does not accept any arguments, and is allowed to return any value. + * @param options An optional configuration object for the polling operation. + * @returns Fulfilled with the value returned by `condition`. + */ + waitFor(condition: () => T, options?: TestContextWaitForOptions): Promise>; + /** + * Each test provides its own MockTracker instance. + */ + readonly mock: MockTracker; + } + interface TestContextAssert extends Pick { + /** + * This function serializes `value` and writes it to the file specified by `path`. + * + * ```js + * test('snapshot test with default serialization', (t) => { + * t.assert.fileSnapshot({ value1: 1, value2: 2 }, './snapshots/snapshot.json'); + * }); + * ``` + * + * This function differs from `context.assert.snapshot()` in the following ways: + * + * * The snapshot file path is explicitly provided by the user. + * * Each snapshot file is limited to a single snapshot value. + * * No additional escaping is performed by the test runner. + * + * These differences allow snapshot files to better support features such as syntax + * highlighting. + * @since v22.14.0 + * @param value A value to serialize to a string. If Node.js was started with + * the [`--test-update-snapshots`](https://nodejs.org/docs/latest-v25.x/api/cli.html#--test-update-snapshots) + * flag, the serialized value is written to + * `path`. Otherwise, the serialized value is compared to the contents of the + * existing snapshot file. + * @param path The file where the serialized `value` is written. + * @param options Optional configuration options. + */ + fileSnapshot(value: any, path: string, options?: AssertSnapshotOptions): void; + /** + * This function implements assertions for snapshot testing. + * ```js + * test('snapshot test with default serialization', (t) => { + * t.assert.snapshot({ value1: 1, value2: 2 }); + * }); + * + * test('snapshot test with custom serialization', (t) => { + * t.assert.snapshot({ value3: 3, value4: 4 }, { + * serializers: [(value) => JSON.stringify(value)] + * }); + * }); + * ``` + * @since v22.3.0 + * @param value A value to serialize to a string. If Node.js was started with + * the [`--test-update-snapshots`](https://nodejs.org/docs/latest-v25.x/api/cli.html#--test-update-snapshots) + * flag, the serialized value is written to + * the snapshot file. Otherwise, the serialized value is compared to the + * corresponding value in the existing snapshot file. + */ + snapshot(value: any, options?: AssertSnapshotOptions): void; + /** + * A custom assertion function registered with `assert.register()`. + */ + [name: string]: (...args: any[]) => void; + } + interface AssertSnapshotOptions { + /** + * An array of synchronous functions used to serialize `value` into a string. + * `value` is passed as the only argument to the first serializer function. + * The return value of each serializer is passed as input to the next serializer. + * Once all serializers have run, the resulting value is coerced to a string. + * + * If no serializers are provided, the test runner's default serializers are used. + */ + serializers?: ReadonlyArray<(value: any) => any> | undefined; + } + interface TestContextPlanOptions { + /** + * The wait time for the plan: + * * If `true`, the plan waits indefinitely for all assertions and subtests to run. + * * If `false`, the plan performs an immediate check after the test function completes, + * without waiting for any pending assertions or subtests. + * Any assertions or subtests that complete after this check will not be counted towards the plan. + * * If a number, it specifies the maximum wait time in milliseconds + * before timing out while waiting for expected assertions and subtests to be matched. + * If the timeout is reached, the test will fail. + * @default false + */ + wait?: boolean | number | undefined; + } + interface TestContextWaitForOptions { + /** + * The number of milliseconds to wait after an unsuccessful + * invocation of `condition` before trying again. + * @default 50 + */ + interval?: number | undefined; + /** + * The poll timeout in milliseconds. If `condition` has not + * succeeded by the time this elapses, an error occurs. + * @default 1000 + */ + timeout?: number | undefined; + } + /** + * An instance of `SuiteContext` is passed to each suite function in order to + * interact with the test runner. However, the `SuiteContext` constructor is not + * exposed as part of the API. + * @since v18.7.0, v16.17.0 + */ + interface SuiteContext { + /** + * The absolute path of the test file that created the current suite. If a test file imports + * additional modules that generate suites, the imported suites will return the path of the root test file. + * @since v22.6.0 + */ + readonly filePath: string | undefined; + /** + * The name of the suite and each of its ancestors, separated by `>`. + * @since v22.3.0, v20.16.0 + */ + readonly fullName: string; + /** + * The name of the suite. + * @since v18.8.0, v16.18.0 + */ + readonly name: string; + /** + * Can be used to abort test subtasks when the test has been aborted. + * @since v18.7.0, v16.17.0 + */ + readonly signal: AbortSignal; + } + interface TestOptions { + /** + * If a number is provided, then that many tests would run in parallel. + * If truthy, it would run (number of cpu cores - 1) tests in parallel. + * For subtests, it will be `Infinity` tests in parallel. + * If falsy, it would only run one test at a time. + * If unspecified, subtests inherit this value from their parent. + * @default false + */ + concurrency?: number | boolean | undefined; + /** + * If truthy, and the test context is configured to run `only` tests, then this test will be + * run. Otherwise, the test is skipped. + * @default false + */ + only?: boolean | undefined; + /** + * Allows aborting an in-progress test. + * @since v18.8.0 + */ + signal?: AbortSignal | undefined; + /** + * If truthy, the test is skipped. If a string is provided, that string is displayed in the + * test results as the reason for skipping the test. + * @default false + */ + skip?: boolean | string | undefined; + /** + * A number of milliseconds the test will fail after. If unspecified, subtests inherit this + * value from their parent. + * @default Infinity + * @since v18.7.0 + */ + timeout?: number | undefined; + /** + * If truthy, the test marked as `TODO`. If a string is provided, that string is displayed in + * the test results as the reason why the test is `TODO`. + * @default false + */ + todo?: boolean | string | undefined; + /** + * The number of assertions and subtests expected to be run in the test. + * If the number of assertions run in the test does not match the number + * specified in the plan, the test will fail. + * @default undefined + * @since v22.2.0 + */ + plan?: number | undefined; + // added in v25.5.0, undocumented + expectFailure?: boolean | undefined; + } + /** + * This function creates a hook that runs before executing a suite. + * + * ```js + * describe('tests', async () => { + * before(() => console.log('about to run some test')); + * it('is a subtest', () => { + * // Some relevant assertion here + * }); + * }); + * ``` + * @since v18.8.0, v16.18.0 + * @param fn The hook function. If the hook uses callbacks, the callback function is passed as the second argument. + * @param options Configuration options for the hook. + */ + function before(fn?: HookFn, options?: HookOptions): void; + /** + * This function creates a hook that runs after executing a suite. + * + * ```js + * describe('tests', async () => { + * after(() => console.log('finished running tests')); + * it('is a subtest', () => { + * // Some relevant assertion here + * }); + * }); + * ``` + * @since v18.8.0, v16.18.0 + * @param fn The hook function. If the hook uses callbacks, the callback function is passed as the second argument. + * @param options Configuration options for the hook. + */ + function after(fn?: HookFn, options?: HookOptions): void; + /** + * This function creates a hook that runs before each test in the current suite. + * + * ```js + * describe('tests', async () => { + * beforeEach(() => console.log('about to run a test')); + * it('is a subtest', () => { + * // Some relevant assertion here + * }); + * }); + * ``` + * @since v18.8.0, v16.18.0 + * @param fn The hook function. If the hook uses callbacks, the callback function is passed as the second argument. + * @param options Configuration options for the hook. + */ + function beforeEach(fn?: HookFn, options?: HookOptions): void; + /** + * This function creates a hook that runs after each test in the current suite. + * The `afterEach()` hook is run even if the test fails. + * + * ```js + * describe('tests', async () => { + * afterEach(() => console.log('finished running a test')); + * it('is a subtest', () => { + * // Some relevant assertion here + * }); + * }); + * ``` + * @since v18.8.0, v16.18.0 + * @param fn The hook function. If the hook uses callbacks, the callback function is passed as the second argument. + * @param options Configuration options for the hook. + */ + function afterEach(fn?: HookFn, options?: HookOptions): void; + /** + * The hook function. The first argument is the context in which the hook is called. + * If the hook uses callbacks, the callback function is passed as the second argument. + */ + type HookFn = (c: TestContext | SuiteContext, done: (result?: any) => void) => any; + /** + * The hook function. The first argument is a `TestContext` object. + * If the hook uses callbacks, the callback function is passed as the second argument. + */ + type TestContextHookFn = (t: TestContext, done: (result?: any) => void) => any; + /** + * Configuration options for hooks. + * @since v18.8.0 + */ + interface HookOptions { + /** + * Allows aborting an in-progress hook. + */ + signal?: AbortSignal | undefined; + /** + * A number of milliseconds the hook will fail after. If unspecified, subtests inherit this + * value from their parent. + * @default Infinity + */ + timeout?: number | undefined; + } + interface MockFunctionOptions { + /** + * The number of times that the mock will use the behavior of `implementation`. + * Once the mock function has been called `times` times, + * it will automatically restore the behavior of `original`. + * This value must be an integer greater than zero. + * @default Infinity + */ + times?: number | undefined; + } + interface MockMethodOptions extends MockFunctionOptions { + /** + * If `true`, `object[methodName]` is treated as a getter. + * This option cannot be used with the `setter` option. + */ + getter?: boolean | undefined; + /** + * If `true`, `object[methodName]` is treated as a setter. + * This option cannot be used with the `getter` option. + */ + setter?: boolean | undefined; + } + type Mock = F & { + mock: MockFunctionContext; + }; + interface MockModuleOptions { + /** + * If false, each call to `require()` or `import()` generates a new mock module. + * If true, subsequent calls will return the same module mock, and the mock module is inserted into the CommonJS cache. + * @default false + */ + cache?: boolean | undefined; + /** + * The value to use as the mocked module's default export. + * + * If this value is not provided, ESM mocks do not include a default export. + * If the mock is a CommonJS or builtin module, this setting is used as the value of `module.exports`. + * If this value is not provided, CJS and builtin mocks use an empty object as the value of `module.exports`. + */ + defaultExport?: any; + /** + * An object whose keys and values are used to create the named exports of the mock module. + * + * If the mock is a CommonJS or builtin module, these values are copied onto `module.exports`. + * Therefore, if a mock is created with both named exports and a non-object default export, + * the mock will throw an exception when used as a CJS or builtin module. + */ + namedExports?: object | undefined; + } + /** + * The `MockTracker` class is used to manage mocking functionality. The test runner + * module provides a top level `mock` export which is a `MockTracker` instance. + * Each test also provides its own `MockTracker` instance via the test context's `mock` property. + * @since v19.1.0, v18.13.0 + */ + interface MockTracker { + /** + * This function is used to create a mock function. + * + * The following example creates a mock function that increments a counter by one + * on each invocation. The `times` option is used to modify the mock behavior such + * that the first two invocations add two to the counter instead of one. + * + * ```js + * test('mocks a counting function', (t) => { + * let cnt = 0; + * + * function addOne() { + * cnt++; + * return cnt; + * } + * + * function addTwo() { + * cnt += 2; + * return cnt; + * } + * + * const fn = t.mock.fn(addOne, addTwo, { times: 2 }); + * + * assert.strictEqual(fn(), 2); + * assert.strictEqual(fn(), 4); + * assert.strictEqual(fn(), 5); + * assert.strictEqual(fn(), 6); + * }); + * ``` + * @since v19.1.0, v18.13.0 + * @param original An optional function to create a mock on. + * @param implementation An optional function used as the mock implementation for `original`. This is useful for creating mocks that exhibit one behavior for a specified number of calls and + * then restore the behavior of `original`. + * @param options Optional configuration options for the mock function. + * @return The mocked function. The mocked function contains a special `mock` property, which is an instance of {@link MockFunctionContext}, and can be used for inspecting and changing the + * behavior of the mocked function. + */ + fn undefined>( + original?: F, + options?: MockFunctionOptions, + ): Mock; + fn undefined, Implementation extends Function = F>( + original?: F, + implementation?: Implementation, + options?: MockFunctionOptions, + ): Mock; + /** + * This function is used to create a mock on an existing object method. The + * following example demonstrates how a mock is created on an existing object + * method. + * + * ```js + * test('spies on an object method', (t) => { + * const number = { + * value: 5, + * subtract(a) { + * return this.value - a; + * }, + * }; + * + * t.mock.method(number, 'subtract'); + * assert.strictEqual(number.subtract.mock.calls.length, 0); + * assert.strictEqual(number.subtract(3), 2); + * assert.strictEqual(number.subtract.mock.calls.length, 1); + * + * const call = number.subtract.mock.calls[0]; + * + * assert.deepStrictEqual(call.arguments, [3]); + * assert.strictEqual(call.result, 2); + * assert.strictEqual(call.error, undefined); + * assert.strictEqual(call.target, undefined); + * assert.strictEqual(call.this, number); + * }); + * ``` + * @since v19.1.0, v18.13.0 + * @param object The object whose method is being mocked. + * @param methodName The identifier of the method on `object` to mock. If `object[methodName]` is not a function, an error is thrown. + * @param implementation An optional function used as the mock implementation for `object[methodName]`. + * @param options Optional configuration options for the mock method. + * @return The mocked method. The mocked method contains a special `mock` property, which is an instance of {@link MockFunctionContext}, and can be used for inspecting and changing the + * behavior of the mocked method. + */ + method< + MockedObject extends object, + MethodName extends FunctionPropertyNames, + >( + object: MockedObject, + methodName: MethodName, + options?: MockFunctionOptions, + ): MockedObject[MethodName] extends Function ? Mock + : never; + method< + MockedObject extends object, + MethodName extends FunctionPropertyNames, + Implementation extends Function, + >( + object: MockedObject, + methodName: MethodName, + implementation: Implementation, + options?: MockFunctionOptions, + ): MockedObject[MethodName] extends Function ? Mock + : never; + method( + object: MockedObject, + methodName: keyof MockedObject, + options: MockMethodOptions, + ): Mock; + method( + object: MockedObject, + methodName: keyof MockedObject, + implementation: Function, + options: MockMethodOptions, + ): Mock; + /** + * This function is syntax sugar for `MockTracker.method` with `options.getter` set to `true`. + * @since v19.3.0, v18.13.0 + */ + getter< + MockedObject extends object, + MethodName extends keyof MockedObject, + >( + object: MockedObject, + methodName: MethodName, + options?: MockFunctionOptions, + ): Mock<() => MockedObject[MethodName]>; + getter< + MockedObject extends object, + MethodName extends keyof MockedObject, + Implementation extends Function, + >( + object: MockedObject, + methodName: MethodName, + implementation?: Implementation, + options?: MockFunctionOptions, + ): Mock<(() => MockedObject[MethodName]) | Implementation>; + /** + * This function is syntax sugar for `MockTracker.method` with `options.setter` set to `true`. + * @since v19.3.0, v18.13.0 + */ + setter< + MockedObject extends object, + MethodName extends keyof MockedObject, + >( + object: MockedObject, + methodName: MethodName, + options?: MockFunctionOptions, + ): Mock<(value: MockedObject[MethodName]) => void>; + setter< + MockedObject extends object, + MethodName extends keyof MockedObject, + Implementation extends Function, + >( + object: MockedObject, + methodName: MethodName, + implementation?: Implementation, + options?: MockFunctionOptions, + ): Mock<((value: MockedObject[MethodName]) => void) | Implementation>; + /** + * This function is used to mock the exports of ECMAScript modules, CommonJS modules, JSON modules, and + * Node.js builtin modules. Any references to the original module prior to mocking are not impacted. In + * order to enable module mocking, Node.js must be started with the + * [`--experimental-test-module-mocks`](https://nodejs.org/docs/latest-v25.x/api/cli.html#--experimental-test-module-mocks) + * command-line flag. + * + * The following example demonstrates how a mock is created for a module. + * + * ```js + * test('mocks a builtin module in both module systems', async (t) => { + * // Create a mock of 'node:readline' with a named export named 'fn', which + * // does not exist in the original 'node:readline' module. + * const mock = t.mock.module('node:readline', { + * namedExports: { fn() { return 42; } }, + * }); + * + * let esmImpl = await import('node:readline'); + * let cjsImpl = require('node:readline'); + * + * // cursorTo() is an export of the original 'node:readline' module. + * assert.strictEqual(esmImpl.cursorTo, undefined); + * assert.strictEqual(cjsImpl.cursorTo, undefined); + * assert.strictEqual(esmImpl.fn(), 42); + * assert.strictEqual(cjsImpl.fn(), 42); + * + * mock.restore(); + * + * // The mock is restored, so the original builtin module is returned. + * esmImpl = await import('node:readline'); + * cjsImpl = require('node:readline'); + * + * assert.strictEqual(typeof esmImpl.cursorTo, 'function'); + * assert.strictEqual(typeof cjsImpl.cursorTo, 'function'); + * assert.strictEqual(esmImpl.fn, undefined); + * assert.strictEqual(cjsImpl.fn, undefined); + * }); + * ``` + * @since v22.3.0 + * @experimental + * @param specifier A string identifying the module to mock. + * @param options Optional configuration options for the mock module. + */ + module(specifier: string | URL, options?: MockModuleOptions): MockModuleContext; + /** + * Creates a mock for a property value on an object. This allows you to track and control access to a specific property, + * including how many times it is read (getter) or written (setter), and to restore the original value after mocking. + * + * ```js + * test('mocks a property value', (t) => { + * const obj = { foo: 42 }; + * const prop = t.mock.property(obj, 'foo', 100); + * + * assert.strictEqual(obj.foo, 100); + * assert.strictEqual(prop.mock.accessCount(), 1); + * assert.strictEqual(prop.mock.accesses[0].type, 'get'); + * assert.strictEqual(prop.mock.accesses[0].value, 100); + * + * obj.foo = 200; + * assert.strictEqual(prop.mock.accessCount(), 2); + * assert.strictEqual(prop.mock.accesses[1].type, 'set'); + * assert.strictEqual(prop.mock.accesses[1].value, 200); + * + * prop.mock.restore(); + * assert.strictEqual(obj.foo, 42); + * }); + * ``` + * @since v24.3.0 + * @param object The object whose value is being mocked. + * @param propertyName The identifier of the property on `object` to mock. + * @param value An optional value used as the mock value + * for `object[propertyName]`. **Default:** The original property value. + * @returns A proxy to the mocked object. The mocked object contains a + * special `mock` property, which is an instance of [`MockPropertyContext`][], and + * can be used for inspecting and changing the behavior of the mocked property. + */ + property< + MockedObject extends object, + PropertyName extends keyof MockedObject, + >( + object: MockedObject, + property: PropertyName, + value?: MockedObject[PropertyName], + ): MockedObject & { mock: MockPropertyContext }; + /** + * This function restores the default behavior of all mocks that were previously + * created by this `MockTracker` and disassociates the mocks from the `MockTracker` instance. Once disassociated, the mocks can still be used, but the `MockTracker` instance can no longer be + * used to reset their behavior or + * otherwise interact with them. + * + * After each test completes, this function is called on the test context's `MockTracker`. If the global `MockTracker` is used extensively, calling this + * function manually is recommended. + * @since v19.1.0, v18.13.0 + */ + reset(): void; + /** + * This function restores the default behavior of all mocks that were previously + * created by this `MockTracker`. Unlike `mock.reset()`, `mock.restoreAll()` does + * not disassociate the mocks from the `MockTracker` instance. + * @since v19.1.0, v18.13.0 + */ + restoreAll(): void; + readonly timers: MockTimers; + } + const mock: MockTracker; + interface MockFunctionCall< + F extends Function, + ReturnType = F extends (...args: any) => infer T ? T + : F extends abstract new(...args: any) => infer T ? T + : unknown, + Args = F extends (...args: infer Y) => any ? Y + : F extends abstract new(...args: infer Y) => any ? Y + : unknown[], + > { + /** + * An array of the arguments passed to the mock function. + */ + arguments: Args; + /** + * If the mocked function threw then this property contains the thrown value. + */ + error: unknown | undefined; + /** + * The value returned by the mocked function. + * + * If the mocked function threw, it will be `undefined`. + */ + result: ReturnType | undefined; + /** + * An `Error` object whose stack can be used to determine the callsite of the mocked function invocation. + */ + stack: Error; + /** + * If the mocked function is a constructor, this field contains the class being constructed. + * Otherwise this will be `undefined`. + */ + target: F extends abstract new(...args: any) => any ? F : undefined; + /** + * The mocked function's `this` value. + */ + this: unknown; + } + /** + * The `MockFunctionContext` class is used to inspect or manipulate the behavior of + * mocks created via the `MockTracker` APIs. + * @since v19.1.0, v18.13.0 + */ + interface MockFunctionContext { + /** + * A getter that returns a copy of the internal array used to track calls to the + * mock. Each entry in the array is an object with the following properties. + * @since v19.1.0, v18.13.0 + */ + readonly calls: MockFunctionCall[]; + /** + * This function returns the number of times that this mock has been invoked. This + * function is more efficient than checking `ctx.calls.length` because `ctx.calls` is a getter that creates a copy of the internal call tracking array. + * @since v19.1.0, v18.13.0 + * @return The number of times that this mock has been invoked. + */ + callCount(): number; + /** + * This function is used to change the behavior of an existing mock. + * + * The following example creates a mock function using `t.mock.fn()`, calls the + * mock function, and then changes the mock implementation to a different function. + * + * ```js + * test('changes a mock behavior', (t) => { + * let cnt = 0; + * + * function addOne() { + * cnt++; + * return cnt; + * } + * + * function addTwo() { + * cnt += 2; + * return cnt; + * } + * + * const fn = t.mock.fn(addOne); + * + * assert.strictEqual(fn(), 1); + * fn.mock.mockImplementation(addTwo); + * assert.strictEqual(fn(), 3); + * assert.strictEqual(fn(), 5); + * }); + * ``` + * @since v19.1.0, v18.13.0 + * @param implementation The function to be used as the mock's new implementation. + */ + mockImplementation(implementation: F): void; + /** + * This function is used to change the behavior of an existing mock for a single + * invocation. Once invocation `onCall` has occurred, the mock will revert to + * whatever behavior it would have used had `mockImplementationOnce()` not been + * called. + * + * The following example creates a mock function using `t.mock.fn()`, calls the + * mock function, changes the mock implementation to a different function for the + * next invocation, and then resumes its previous behavior. + * + * ```js + * test('changes a mock behavior once', (t) => { + * let cnt = 0; + * + * function addOne() { + * cnt++; + * return cnt; + * } + * + * function addTwo() { + * cnt += 2; + * return cnt; + * } + * + * const fn = t.mock.fn(addOne); + * + * assert.strictEqual(fn(), 1); + * fn.mock.mockImplementationOnce(addTwo); + * assert.strictEqual(fn(), 3); + * assert.strictEqual(fn(), 4); + * }); + * ``` + * @since v19.1.0, v18.13.0 + * @param implementation The function to be used as the mock's implementation for the invocation number specified by `onCall`. + * @param onCall The invocation number that will use `implementation`. If the specified invocation has already occurred then an exception is thrown. + */ + mockImplementationOnce(implementation: F, onCall?: number): void; + /** + * Resets the call history of the mock function. + * @since v19.3.0, v18.13.0 + */ + resetCalls(): void; + /** + * Resets the implementation of the mock function to its original behavior. The + * mock can still be used after calling this function. + * @since v19.1.0, v18.13.0 + */ + restore(): void; + } + /** + * @since v22.3.0 + * @experimental + */ + interface MockModuleContext { + /** + * Resets the implementation of the mock module. + * @since v22.3.0 + */ + restore(): void; + } + /** + * @since v24.3.0 + */ + class MockPropertyContext { + /** + * A getter that returns a copy of the internal array used to track accesses (get/set) to + * the mocked property. Each entry in the array is an object with the following properties: + */ + readonly accesses: Array<{ + type: "get" | "set"; + value: PropertyType; + stack: Error; + }>; + /** + * This function returns the number of times that the property was accessed. + * This function is more efficient than checking `ctx.accesses.length` because + * `ctx.accesses` is a getter that creates a copy of the internal access tracking array. + * @returns The number of times that the property was accessed (read or written). + */ + accessCount(): number; + /** + * This function is used to change the value returned by the mocked property getter. + * @param value The new value to be set as the mocked property value. + */ + mockImplementation(value: PropertyType): void; + /** + * This function is used to change the behavior of an existing mock for a single + * invocation. Once invocation `onAccess` has occurred, the mock will revert to + * whatever behavior it would have used had `mockImplementationOnce()` not been + * called. + * + * The following example creates a mock function using `t.mock.property()`, calls the + * mock property, changes the mock implementation to a different value for the + * next invocation, and then resumes its previous behavior. + * + * ```js + * test('changes a mock behavior once', (t) => { + * const obj = { foo: 1 }; + * + * const prop = t.mock.property(obj, 'foo', 5); + * + * assert.strictEqual(obj.foo, 5); + * prop.mock.mockImplementationOnce(25); + * assert.strictEqual(obj.foo, 25); + * assert.strictEqual(obj.foo, 5); + * }); + * ``` + * @param value The value to be used as the mock's + * implementation for the invocation number specified by `onAccess`. + * @param onAccess The invocation number that will use `value`. If + * the specified invocation has already occurred then an exception is thrown. + * **Default:** The number of the next invocation. + */ + mockImplementationOnce(value: PropertyType, onAccess?: number): void; + /** + * Resets the access history of the mocked property. + */ + resetAccesses(): void; + /** + * Resets the implementation of the mock property to its original behavior. The + * mock can still be used after calling this function. + */ + restore(): void; + } + interface MockTimersOptions { + apis: ReadonlyArray<"setInterval" | "setTimeout" | "setImmediate" | "Date">; + now?: number | Date | undefined; + } + /** + * Mocking timers is a technique commonly used in software testing to simulate and + * control the behavior of timers, such as `setInterval` and `setTimeout`, + * without actually waiting for the specified time intervals. + * + * The MockTimers API also allows for mocking of the `Date` constructor and + * `setImmediate`/`clearImmediate` functions. + * + * The `MockTracker` provides a top-level `timers` export + * which is a `MockTimers` instance. + * @since v20.4.0 + */ + interface MockTimers { + /** + * Enables timer mocking for the specified timers. + * + * **Note:** When you enable mocking for a specific timer, its associated + * clear function will also be implicitly mocked. + * + * **Note:** Mocking `Date` will affect the behavior of the mocked timers + * as they use the same internal clock. + * + * Example usage without setting initial time: + * + * ```js + * import { mock } from 'node:test'; + * mock.timers.enable({ apis: ['setInterval', 'Date'], now: 1234 }); + * ``` + * + * The above example enables mocking for the `Date` constructor, `setInterval` timer and + * implicitly mocks the `clearInterval` function. Only the `Date` constructor from `globalThis`, + * `setInterval` and `clearInterval` functions from `node:timers`, `node:timers/promises`, and `globalThis` will be mocked. + * + * Example usage with initial time set + * + * ```js + * import { mock } from 'node:test'; + * mock.timers.enable({ apis: ['Date'], now: 1000 }); + * ``` + * + * Example usage with initial Date object as time set + * + * ```js + * import { mock } from 'node:test'; + * mock.timers.enable({ apis: ['Date'], now: new Date() }); + * ``` + * + * Alternatively, if you call `mock.timers.enable()` without any parameters: + * + * All timers (`'setInterval'`, `'clearInterval'`, `'Date'`, `'setImmediate'`, `'clearImmediate'`, `'setTimeout'`, and `'clearTimeout'`) + * will be mocked. + * + * The `setInterval`, `clearInterval`, `setTimeout`, and `clearTimeout` functions from `node:timers`, `node:timers/promises`, + * and `globalThis` will be mocked. + * The `Date` constructor from `globalThis` will be mocked. + * + * If there is no initial epoch set, the initial date will be based on 0 in the Unix epoch. This is `January 1st, 1970, 00:00:00 UTC`. You can + * set an initial date by passing a now property to the `.enable()` method. This value will be used as the initial date for the mocked Date + * object. It can either be a positive integer, or another Date object. + * @since v20.4.0 + */ + enable(options?: MockTimersOptions): void; + /** + * Sets the current Unix timestamp that will be used as reference for any mocked + * `Date` objects. + * + * ```js + * import assert from 'node:assert'; + * import { test } from 'node:test'; + * + * test('runAll functions following the given order', (context) => { + * const now = Date.now(); + * const setTime = 1000; + * // Date.now is not mocked + * assert.deepStrictEqual(Date.now(), now); + * + * context.mock.timers.enable({ apis: ['Date'] }); + * context.mock.timers.setTime(setTime); + * // Date.now is now 1000 + * assert.strictEqual(Date.now(), setTime); + * }); + * ``` + * @since v21.2.0, v20.11.0 + */ + setTime(milliseconds: number): void; + /** + * This function restores the default behavior of all mocks that were previously + * created by this `MockTimers` instance and disassociates the mocks + * from the `MockTracker` instance. + * + * **Note:** After each test completes, this function is called on + * the test context's `MockTracker`. + * + * ```js + * import { mock } from 'node:test'; + * mock.timers.reset(); + * ``` + * @since v20.4.0 + */ + reset(): void; + /** + * Advances time for all mocked timers. + * + * **Note:** This diverges from how `setTimeout` in Node.js behaves and accepts + * only positive numbers. In Node.js, `setTimeout` with negative numbers is + * only supported for web compatibility reasons. + * + * The following example mocks a `setTimeout` function and + * by using `.tick` advances in + * time triggering all pending timers. + * + * ```js + * import assert from 'node:assert'; + * import { test } from 'node:test'; + * + * test('mocks setTimeout to be executed synchronously without having to actually wait for it', (context) => { + * const fn = context.mock.fn(); + * + * context.mock.timers.enable({ apis: ['setTimeout'] }); + * + * setTimeout(fn, 9999); + * + * assert.strictEqual(fn.mock.callCount(), 0); + * + * // Advance in time + * context.mock.timers.tick(9999); + * + * assert.strictEqual(fn.mock.callCount(), 1); + * }); + * ``` + * + * Alternativelly, the `.tick` function can be called many times + * + * ```js + * import assert from 'node:assert'; + * import { test } from 'node:test'; + * + * test('mocks setTimeout to be executed synchronously without having to actually wait for it', (context) => { + * const fn = context.mock.fn(); + * context.mock.timers.enable({ apis: ['setTimeout'] }); + * const nineSecs = 9000; + * setTimeout(fn, nineSecs); + * + * const twoSeconds = 3000; + * context.mock.timers.tick(twoSeconds); + * context.mock.timers.tick(twoSeconds); + * context.mock.timers.tick(twoSeconds); + * + * assert.strictEqual(fn.mock.callCount(), 1); + * }); + * ``` + * + * Advancing time using `.tick` will also advance the time for any `Date` object + * created after the mock was enabled (if `Date` was also set to be mocked). + * + * ```js + * import assert from 'node:assert'; + * import { test } from 'node:test'; + * + * test('mocks setTimeout to be executed synchronously without having to actually wait for it', (context) => { + * const fn = context.mock.fn(); + * + * context.mock.timers.enable({ apis: ['setTimeout', 'Date'] }); + * setTimeout(fn, 9999); + * + * assert.strictEqual(fn.mock.callCount(), 0); + * assert.strictEqual(Date.now(), 0); + * + * // Advance in time + * context.mock.timers.tick(9999); + * assert.strictEqual(fn.mock.callCount(), 1); + * assert.strictEqual(Date.now(), 9999); + * }); + * ``` + * @since v20.4.0 + */ + tick(milliseconds: number): void; + /** + * Triggers all pending mocked timers immediately. If the `Date` object is also + * mocked, it will also advance the `Date` object to the furthest timer's time. + * + * The example below triggers all pending timers immediately, + * causing them to execute without any delay. + * + * ```js + * import assert from 'node:assert'; + * import { test } from 'node:test'; + * + * test('runAll functions following the given order', (context) => { + * context.mock.timers.enable({ apis: ['setTimeout', 'Date'] }); + * const results = []; + * setTimeout(() => results.push(1), 9999); + * + * // Notice that if both timers have the same timeout, + * // the order of execution is guaranteed + * setTimeout(() => results.push(3), 8888); + * setTimeout(() => results.push(2), 8888); + * + * assert.deepStrictEqual(results, []); + * + * context.mock.timers.runAll(); + * assert.deepStrictEqual(results, [3, 2, 1]); + * // The Date object is also advanced to the furthest timer's time + * assert.strictEqual(Date.now(), 9999); + * }); + * ``` + * + * **Note:** The `runAll()` function is specifically designed for + * triggering timers in the context of timer mocking. + * It does not have any effect on real-time system + * clocks or actual timers outside of the mocking environment. + * @since v20.4.0 + */ + runAll(): void; + /** + * Calls {@link MockTimers.reset()}. + */ + [Symbol.dispose](): void; + } + /** + * An object whose methods are used to configure available assertions on the + * `TestContext` objects in the current process. The methods from `node:assert` + * and snapshot testing functions are available by default. + * + * It is possible to apply the same configuration to all files by placing common + * configuration code in a module + * preloaded with `--require` or `--import`. + * @since v22.14.0 + */ + namespace assert { + /** + * Defines a new assertion function with the provided name and function. If an + * assertion already exists with the same name, it is overwritten. + * @since v22.14.0 + */ + function register(name: string, fn: (this: TestContext, ...args: any[]) => void): void; + } + /** + * @since v22.3.0 + */ + namespace snapshot { + /** + * This function is used to customize the default serialization mechanism used by the test runner. + * + * By default, the test runner performs serialization by calling `JSON.stringify(value, null, 2)` on the provided value. + * `JSON.stringify()` does have limitations regarding circular structures and supported data types. + * If a more robust serialization mechanism is required, this function should be used to specify a list of custom serializers. + * + * Serializers are called in order, with the output of the previous serializer passed as input to the next. + * The final result must be a string value. + * @since v22.3.0 + * @param serializers An array of synchronous functions used as the default serializers for snapshot tests. + */ + function setDefaultSnapshotSerializers(serializers: ReadonlyArray<(value: any) => any>): void; + /** + * This function is used to set a custom resolver for the location of the snapshot file used for snapshot testing. + * By default, the snapshot filename is the same as the entry point filename with `.snapshot` appended. + * @since v22.3.0 + * @param fn A function used to compute the location of the snapshot file. + * The function receives the path of the test file as its only argument. If the + * test is not associated with a file (for example in the REPL), the input is + * undefined. `fn()` must return a string specifying the location of the snapshot file. + */ + function setResolveSnapshotPath(fn: (path: string | undefined) => string): void; + } + } + type FunctionPropertyNames = { + [K in keyof T]: T[K] extends Function ? K : never; + }[keyof T]; + export = test; +} diff --git a/server/api/node_modules/@types/node/test/reporters.d.ts b/server/api/node_modules/@types/node/test/reporters.d.ts new file mode 100644 index 0000000..e04d669 --- /dev/null +++ b/server/api/node_modules/@types/node/test/reporters.d.ts @@ -0,0 +1,58 @@ +declare module "node:test/reporters" { + import { Transform, TransformOptions } from "node:stream"; + import { EventData } from "node:test"; + type TestEvent = + | { type: "test:coverage"; data: EventData.TestCoverage } + | { type: "test:complete"; data: EventData.TestComplete } + | { type: "test:dequeue"; data: EventData.TestDequeue } + | { type: "test:diagnostic"; data: EventData.TestDiagnostic } + | { type: "test:enqueue"; data: EventData.TestEnqueue } + | { type: "test:fail"; data: EventData.TestFail } + | { type: "test:pass"; data: EventData.TestPass } + | { type: "test:plan"; data: EventData.TestPlan } + | { type: "test:start"; data: EventData.TestStart } + | { type: "test:stderr"; data: EventData.TestStderr } + | { type: "test:stdout"; data: EventData.TestStdout } + | { type: "test:summary"; data: EventData.TestSummary } + | { type: "test:watch:drained"; data: undefined } + | { type: "test:watch:restarted"; data: undefined }; + interface ReporterConstructorWrapper Transform> { + new(...args: ConstructorParameters): InstanceType; + (...args: ConstructorParameters): InstanceType; + } + /** + * The `dot` reporter outputs the test results in a compact format, + * where each passing test is represented by a `.`, + * and each failing test is represented by a `X`. + * @since v20.0.0 + */ + function dot(source: AsyncIterable): NodeJS.AsyncIterator; + /** + * The `tap` reporter outputs the test results in the [TAP](https://testanything.org/) format. + * @since v20.0.0 + */ + function tap(source: AsyncIterable): NodeJS.AsyncIterator; + class SpecReporter extends Transform { + constructor(); + } + /** + * The `spec` reporter outputs the test results in a human-readable format. + * @since v20.0.0 + */ + const spec: ReporterConstructorWrapper; + /** + * The `junit` reporter outputs test results in a jUnit XML format. + * @since v21.0.0 + */ + function junit(source: AsyncIterable): NodeJS.AsyncIterator; + class LcovReporter extends Transform { + constructor(options?: Omit); + } + /** + * The `lcov` reporter outputs test coverage when used with the + * [`--experimental-test-coverage`](https://nodejs.org/docs/latest-v25.x/api/cli.html#--experimental-test-coverage) flag. + * @since v22.0.0 + */ + const lcov: ReporterConstructorWrapper; + export { dot, junit, lcov, spec, tap, TestEvent }; +} diff --git a/server/api/node_modules/@types/node/timers.d.ts b/server/api/node_modules/@types/node/timers.d.ts new file mode 100644 index 0000000..5b74b89 --- /dev/null +++ b/server/api/node_modules/@types/node/timers.d.ts @@ -0,0 +1,149 @@ +declare module "node:timers" { + import { Abortable } from "node:events"; + import * as promises from "node:timers/promises"; + export interface TimerOptions extends Abortable { + /** + * Set to `false` to indicate that the scheduled `Timeout` + * should not require the Node.js event loop to remain active. + * @default true + */ + ref?: boolean | undefined; + } + global { + namespace NodeJS { + /** + * This object is created internally and is returned from `setImmediate()`. It + * can be passed to `clearImmediate()` in order to cancel the scheduled + * actions. + * + * By default, when an immediate is scheduled, the Node.js event loop will continue + * running as long as the immediate is active. The `Immediate` object returned by + * `setImmediate()` exports both `immediate.ref()` and `immediate.unref()` + * functions that can be used to control this default behavior. + */ + interface Immediate extends RefCounted, Disposable { + /** + * If true, the `Immediate` object will keep the Node.js event loop active. + * @since v11.0.0 + */ + hasRef(): boolean; + /** + * When called, requests that the Node.js event loop _not_ exit so long as the + * `Immediate` is active. Calling `immediate.ref()` multiple times will have no + * effect. + * + * By default, all `Immediate` objects are "ref'ed", making it normally unnecessary + * to call `immediate.ref()` unless `immediate.unref()` had been called previously. + * @since v9.7.0 + * @returns a reference to `immediate` + */ + ref(): this; + /** + * When called, the active `Immediate` object will not require the Node.js event + * loop to remain active. If there is no other activity keeping the event loop + * running, the process may exit before the `Immediate` object's callback is + * invoked. Calling `immediate.unref()` multiple times will have no effect. + * @since v9.7.0 + * @returns a reference to `immediate` + */ + unref(): this; + /** + * Cancels the immediate. This is similar to calling `clearImmediate()`. + * @since v20.5.0, v18.18.0 + */ + [Symbol.dispose](): void; + _onImmediate(...args: any[]): void; + } + // Legacy interface used in Node.js v9 and prior + // TODO: remove in a future major version bump + /** @deprecated Use `NodeJS.Timeout` instead. */ + interface Timer extends RefCounted { + hasRef(): boolean; + refresh(): this; + [Symbol.toPrimitive](): number; + } + /** + * This object is created internally and is returned from `setTimeout()` and + * `setInterval()`. It can be passed to either `clearTimeout()` or + * `clearInterval()` in order to cancel the scheduled actions. + * + * By default, when a timer is scheduled using either `setTimeout()` or + * `setInterval()`, the Node.js event loop will continue running as long as the + * timer is active. Each of the `Timeout` objects returned by these functions + * export both `timeout.ref()` and `timeout.unref()` functions that can be used to + * control this default behavior. + */ + interface Timeout extends RefCounted, Disposable, Timer { + /** + * Cancels the timeout. + * @since v0.9.1 + * @legacy Use `clearTimeout()` instead. + * @returns a reference to `timeout` + */ + close(): this; + /** + * If true, the `Timeout` object will keep the Node.js event loop active. + * @since v11.0.0 + */ + hasRef(): boolean; + /** + * When called, requests that the Node.js event loop _not_ exit so long as the + * `Timeout` is active. Calling `timeout.ref()` multiple times will have no effect. + * + * By default, all `Timeout` objects are "ref'ed", making it normally unnecessary + * to call `timeout.ref()` unless `timeout.unref()` had been called previously. + * @since v0.9.1 + * @returns a reference to `timeout` + */ + ref(): this; + /** + * Sets the timer's start time to the current time, and reschedules the timer to + * call its callback at the previously specified duration adjusted to the current + * time. This is useful for refreshing a timer without allocating a new + * JavaScript object. + * + * Using this on a timer that has already called its callback will reactivate the + * timer. + * @since v10.2.0 + * @returns a reference to `timeout` + */ + refresh(): this; + /** + * When called, the active `Timeout` object will not require the Node.js event loop + * to remain active. If there is no other activity keeping the event loop running, + * the process may exit before the `Timeout` object's callback is invoked. Calling + * `timeout.unref()` multiple times will have no effect. + * @since v0.9.1 + * @returns a reference to `timeout` + */ + unref(): this; + /** + * Coerce a `Timeout` to a primitive. The primitive can be used to + * clear the `Timeout`. The primitive can only be used in the + * same thread where the timeout was created. Therefore, to use it + * across `worker_threads` it must first be passed to the correct + * thread. This allows enhanced compatibility with browser + * `setTimeout()` and `setInterval()` implementations. + * @since v14.9.0, v12.19.0 + */ + [Symbol.toPrimitive](): number; + /** + * Cancels the timeout. + * @since v20.5.0, v18.18.0 + */ + [Symbol.dispose](): void; + _onTimeout(...args: any[]): void; + } + } + } + import clearImmediate = globalThis.clearImmediate; + import clearInterval = globalThis.clearInterval; + import clearTimeout = globalThis.clearTimeout; + import setImmediate = globalThis.setImmediate; + import setInterval = globalThis.setInterval; + import setTimeout = globalThis.setTimeout; + export { clearImmediate, clearInterval, clearTimeout, promises, setImmediate, setInterval, setTimeout }; +} +declare module "timers" { + export * from "node:timers"; +} diff --git a/server/api/node_modules/@types/node/timers/promises.d.ts b/server/api/node_modules/@types/node/timers/promises.d.ts new file mode 100644 index 0000000..8e178ea --- /dev/null +++ b/server/api/node_modules/@types/node/timers/promises.d.ts @@ -0,0 +1,93 @@ +declare module "node:timers/promises" { + import { TimerOptions } from "node:timers"; + /** + * ```js + * import { + * setTimeout, + * } from 'node:timers/promises'; + * + * const res = await setTimeout(100, 'result'); + * + * console.log(res); // Prints 'result' + * ``` + * @since v15.0.0 + * @param delay The number of milliseconds to wait before fulfilling the + * promise. **Default:** `1`. + * @param value A value with which the promise is fulfilled. + */ + function setTimeout(delay?: number, value?: T, options?: TimerOptions): Promise; + /** + * ```js + * import { + * setImmediate, + * } from 'node:timers/promises'; + * + * const res = await setImmediate('result'); + * + * console.log(res); // Prints 'result' + * ``` + * @since v15.0.0 + * @param value A value with which the promise is fulfilled. + */ + function setImmediate(value?: T, options?: TimerOptions): Promise; + /** + * Returns an async iterator that generates values in an interval of `delay` ms. + * If `ref` is `true`, you need to call `next()` of async iterator explicitly + * or implicitly to keep the event loop alive. + * + * ```js + * import { + * setInterval, + * } from 'node:timers/promises'; + * + * const interval = 100; + * for await (const startTime of setInterval(interval, Date.now())) { + * const now = Date.now(); + * console.log(now); + * if ((now - startTime) > 1000) + * break; + * } + * console.log(Date.now()); + * ``` + * @since v15.9.0 + * @param delay The number of milliseconds to wait between iterations. + * **Default:** `1`. + * @param value A value with which the iterator returns. + */ + function setInterval(delay?: number, value?: T, options?: TimerOptions): NodeJS.AsyncIterator; + interface Scheduler { + /** + * An experimental API defined by the [Scheduling APIs](https://github.com/WICG/scheduling-apis) draft specification + * being developed as a standard Web Platform API. + * + * Calling `timersPromises.scheduler.wait(delay, options)` is roughly equivalent + * to calling `timersPromises.setTimeout(delay, undefined, options)` except that + * the `ref` option is not supported. + * + * ```js + * import { scheduler } from 'node:timers/promises'; + * + * await scheduler.wait(1000); // Wait one second before continuing + * ``` + * @since v17.3.0, v16.14.0 + * @experimental + * @param delay The number of milliseconds to wait before resolving the + * promise. + */ + wait(delay: number, options?: { signal?: AbortSignal }): Promise; + /** + * An experimental API defined by the [Scheduling APIs](https://github.com/WICG/scheduling-apis) draft specification + * being developed as a standard Web Platform API. + * + * Calling `timersPromises.scheduler.yield()` is equivalent to calling + * `timersPromises.setImmediate()` with no arguments. + * @since v17.3.0, v16.14.0 + * @experimental + */ + yield(): Promise; + } + const scheduler: Scheduler; +} +declare module "timers/promises" { + export * from "node:timers/promises"; +} diff --git a/server/api/node_modules/@types/node/tls.d.ts b/server/api/node_modules/@types/node/tls.d.ts new file mode 100644 index 0000000..3efd2ae --- /dev/null +++ b/server/api/node_modules/@types/node/tls.d.ts @@ -0,0 +1,1193 @@ +declare module "node:tls" { + import { NonSharedBuffer } from "node:buffer"; + import { X509Certificate } from "node:crypto"; + import * as net from "node:net"; + import * as stream from "stream"; + const CLIENT_RENEG_LIMIT: number; + const CLIENT_RENEG_WINDOW: number; + interface Certificate extends NodeJS.Dict { + /** + * Country code. + */ + C?: string | string[]; + /** + * Street. + */ + ST?: string | string[]; + /** + * Locality. + */ + L?: string | string[]; + /** + * Organization. + */ + O?: string | string[]; + /** + * Organizational unit. + */ + OU?: string | string[]; + /** + * Common name. + */ + CN?: string | string[]; + } + interface PeerCertificate { + /** + * `true` if a Certificate Authority (CA), `false` otherwise. + * @since v18.13.0 + */ + ca: boolean; + /** + * The DER encoded X.509 certificate data. + */ + raw: NonSharedBuffer; + /** + * The certificate subject. + */ + subject: Certificate; + /** + * The certificate issuer, described in the same terms as the `subject`. + */ + issuer: Certificate; + /** + * The date-time the certificate is valid from. + */ + valid_from: string; + /** + * The date-time the certificate is valid to. + */ + valid_to: string; + /** + * The certificate serial number, as a hex string. + */ + serialNumber: string; + /** + * The SHA-1 digest of the DER encoded certificate. + * It is returned as a `:` separated hexadecimal string. + */ + fingerprint: string; + /** + * The SHA-256 digest of the DER encoded certificate. + * It is returned as a `:` separated hexadecimal string. + */ + fingerprint256: string; + /** + * The SHA-512 digest of the DER encoded certificate. + * It is returned as a `:` separated hexadecimal string. + */ + fingerprint512: string; + /** + * The extended key usage, a set of OIDs. + */ + ext_key_usage?: string[]; + /** + * A string containing concatenated names for the subject, + * an alternative to the `subject` names. + */ + subjectaltname?: string; + /** + * An array describing the AuthorityInfoAccess, used with OCSP. + */ + infoAccess?: NodeJS.Dict; + /** + * For RSA keys: The RSA bit size. + * + * For EC keys: The key size in bits. + */ + bits?: number; + /** + * The RSA exponent, as a string in hexadecimal number notation. + */ + exponent?: string; + /** + * The RSA modulus, as a hexadecimal string. + */ + modulus?: string; + /** + * The public key. + */ + pubkey?: NonSharedBuffer; + /** + * The ASN.1 name of the OID of the elliptic curve. + * Well-known curves are identified by an OID. + * While it is unusual, it is possible that the curve + * is identified by its mathematical properties, + * in which case it will not have an OID. + */ + asn1Curve?: string; + /** + * The NIST name for the elliptic curve, if it has one + * (not all well-known curves have been assigned names by NIST). + */ + nistCurve?: string; + } + interface DetailedPeerCertificate extends PeerCertificate { + /** + * The issuer certificate object. + * For self-signed certificates, this may be a circular reference. + */ + issuerCertificate: DetailedPeerCertificate; + } + interface CipherNameAndProtocol { + /** + * The cipher name. + */ + name: string; + /** + * SSL/TLS protocol version. + */ + version: string; + /** + * IETF name for the cipher suite. + */ + standardName: string; + } + interface EphemeralKeyInfo { + /** + * The supported types are 'DH' and 'ECDH'. + */ + type: string; + /** + * The name property is available only when type is 'ECDH'. + */ + name?: string | undefined; + /** + * The size of parameter of an ephemeral key exchange. + */ + size: number; + } + interface KeyObject { + /** + * Private keys in PEM format. + */ + pem: string | Buffer; + /** + * Optional passphrase. + */ + passphrase?: string | undefined; + } + interface PxfObject { + /** + * PFX or PKCS12 encoded private key and certificate chain. + */ + buf: string | Buffer; + /** + * Optional passphrase. + */ + passphrase?: string | undefined; + } + interface TLSSocketOptions extends SecureContextOptions, CommonConnectionOptions { + /** + * If true the TLS socket will be instantiated in server-mode. + * Defaults to false. + */ + isServer?: boolean | undefined; + /** + * An optional net.Server instance. + */ + server?: net.Server | undefined; + /** + * An optional Buffer instance containing a TLS session. + */ + session?: Buffer | undefined; + } + interface TLSSocketEventMap extends net.SocketEventMap { + "keylog": [line: NonSharedBuffer]; + "OCSPResponse": [response: NonSharedBuffer]; + "secure": []; + "secureConnect": []; + "session": [session: NonSharedBuffer]; + } + /** + * Performs transparent encryption of written data and all required TLS + * negotiation. + * + * Instances of `tls.TLSSocket` implement the duplex `Stream` interface. + * + * Methods that return TLS connection metadata (e.g.{@link TLSSocket.getPeerCertificate}) will only return data while the + * connection is open. + * @since v0.11.4 + */ + class TLSSocket extends net.Socket { + /** + * Construct a new tls.TLSSocket object from an existing TCP socket. + */ + constructor(socket: net.Socket | stream.Duplex, options?: TLSSocketOptions); + /** + * This property is `true` if the peer certificate was signed by one of the CAs + * specified when creating the `tls.TLSSocket` instance, otherwise `false`. + * @since v0.11.4 + */ + authorized: boolean; + /** + * Returns the reason why the peer's certificate was not been verified. This + * property is set only when `tlsSocket.authorized === false`. + * @since v0.11.4 + */ + authorizationError: Error; + /** + * Always returns `true`. This may be used to distinguish TLS sockets from regular`net.Socket` instances. + * @since v0.11.4 + */ + encrypted: true; + /** + * String containing the selected ALPN protocol. + * Before a handshake has completed, this value is always null. + * When a handshake is completed but not ALPN protocol was selected, tlsSocket.alpnProtocol equals false. + */ + alpnProtocol: string | false | null; + /** + * String containing the server name requested via SNI (Server Name Indication) TLS extension. + */ + servername: string | false | null; + /** + * Returns an object representing the local certificate. The returned object has + * some properties corresponding to the fields of the certificate. + * + * See {@link TLSSocket.getPeerCertificate} for an example of the certificate + * structure. + * + * If there is no local certificate, an empty object will be returned. If the + * socket has been destroyed, `null` will be returned. + * @since v11.2.0 + */ + getCertificate(): PeerCertificate | object | null; + /** + * Returns an object containing information on the negotiated cipher suite. + * + * For example, a TLSv1.2 protocol with AES256-SHA cipher: + * + * ```json + * { + * "name": "AES256-SHA", + * "standardName": "TLS_RSA_WITH_AES_256_CBC_SHA", + * "version": "SSLv3" + * } + * ``` + * + * See [SSL\_CIPHER\_get\_name](https://www.openssl.org/docs/man1.1.1/man3/SSL_CIPHER_get_name.html) for more information. + * @since v0.11.4 + */ + getCipher(): CipherNameAndProtocol; + /** + * Returns an object representing the type, name, and size of parameter of + * an ephemeral key exchange in `perfect forward secrecy` on a client + * connection. It returns an empty object when the key exchange is not + * ephemeral. As this is only supported on a client socket; `null` is returned + * if called on a server socket. The supported types are `'DH'` and `'ECDH'`. The `name` property is available only when type is `'ECDH'`. + * + * For example: `{ type: 'ECDH', name: 'prime256v1', size: 256 }`. + * @since v5.0.0 + */ + getEphemeralKeyInfo(): EphemeralKeyInfo | object | null; + /** + * As the `Finished` messages are message digests of the complete handshake + * (with a total of 192 bits for TLS 1.0 and more for SSL 3.0), they can + * be used for external authentication procedures when the authentication + * provided by SSL/TLS is not desired or is not enough. + * + * Corresponds to the `SSL_get_finished` routine in OpenSSL and may be used + * to implement the `tls-unique` channel binding from [RFC 5929](https://tools.ietf.org/html/rfc5929). + * @since v9.9.0 + * @return The latest `Finished` message that has been sent to the socket as part of a SSL/TLS handshake, or `undefined` if no `Finished` message has been sent yet. + */ + getFinished(): NonSharedBuffer | undefined; + /** + * Returns an object representing the peer's certificate. If the peer does not + * provide a certificate, an empty object will be returned. If the socket has been + * destroyed, `null` will be returned. + * + * If the full certificate chain was requested, each certificate will include an`issuerCertificate` property containing an object representing its issuer's + * certificate. + * @since v0.11.4 + * @param detailed Include the full certificate chain if `true`, otherwise include just the peer's certificate. + * @return A certificate object. + */ + getPeerCertificate(detailed: true): DetailedPeerCertificate; + getPeerCertificate(detailed?: false): PeerCertificate; + getPeerCertificate(detailed?: boolean): PeerCertificate | DetailedPeerCertificate; + /** + * As the `Finished` messages are message digests of the complete handshake + * (with a total of 192 bits for TLS 1.0 and more for SSL 3.0), they can + * be used for external authentication procedures when the authentication + * provided by SSL/TLS is not desired or is not enough. + * + * Corresponds to the `SSL_get_peer_finished` routine in OpenSSL and may be used + * to implement the `tls-unique` channel binding from [RFC 5929](https://tools.ietf.org/html/rfc5929). + * @since v9.9.0 + * @return The latest `Finished` message that is expected or has actually been received from the socket as part of a SSL/TLS handshake, or `undefined` if there is no `Finished` message so + * far. + */ + getPeerFinished(): NonSharedBuffer | undefined; + /** + * Returns a string containing the negotiated SSL/TLS protocol version of the + * current connection. The value `'unknown'` will be returned for connected + * sockets that have not completed the handshaking process. The value `null` will + * be returned for server sockets or disconnected client sockets. + * + * Protocol versions are: + * + * * `'SSLv3'` + * * `'TLSv1'` + * * `'TLSv1.1'` + * * `'TLSv1.2'` + * * `'TLSv1.3'` + * + * See the OpenSSL [`SSL_get_version`](https://www.openssl.org/docs/man1.1.1/man3/SSL_get_version.html) documentation for more information. + * @since v5.7.0 + */ + getProtocol(): string | null; + /** + * Returns the TLS session data or `undefined` if no session was + * negotiated. On the client, the data can be provided to the `session` option of {@link connect} to resume the connection. On the server, it may be useful + * for debugging. + * + * See `Session Resumption` for more information. + * + * Note: `getSession()` works only for TLSv1.2 and below. For TLSv1.3, applications + * must use the `'session'` event (it also works for TLSv1.2 and below). + * @since v0.11.4 + */ + getSession(): NonSharedBuffer | undefined; + /** + * See [SSL\_get\_shared\_sigalgs](https://www.openssl.org/docs/man1.1.1/man3/SSL_get_shared_sigalgs.html) for more information. + * @since v12.11.0 + * @return List of signature algorithms shared between the server and the client in the order of decreasing preference. + */ + getSharedSigalgs(): string[]; + /** + * For a client, returns the TLS session ticket if one is available, or`undefined`. For a server, always returns `undefined`. + * + * It may be useful for debugging. + * + * See `Session Resumption` for more information. + * @since v0.11.4 + */ + getTLSTicket(): NonSharedBuffer | undefined; + /** + * See `Session Resumption` for more information. + * @since v0.5.6 + * @return `true` if the session was reused, `false` otherwise. + */ + isSessionReused(): boolean; + /** + * The `tlsSocket.renegotiate()` method initiates a TLS renegotiation process. + * Upon completion, the `callback` function will be passed a single argument + * that is either an `Error` (if the request failed) or `null`. + * + * This method can be used to request a peer's certificate after the secure + * connection has been established. + * + * When running as the server, the socket will be destroyed with an error after `handshakeTimeout` timeout. + * + * For TLSv1.3, renegotiation cannot be initiated, it is not supported by the + * protocol. + * @since v0.11.8 + * @param callback If `renegotiate()` returned `true`, callback is attached once to the `'secure'` event. If `renegotiate()` returned `false`, `callback` will be called in the next tick with + * an error, unless the `tlsSocket` has been destroyed, in which case `callback` will not be called at all. + * @return `true` if renegotiation was initiated, `false` otherwise. + */ + renegotiate( + options: { + rejectUnauthorized?: boolean | undefined; + requestCert?: boolean | undefined; + }, + callback: (err: Error | null) => void, + ): undefined | boolean; + /** + * The `tlsSocket.setKeyCert()` method sets the private key and certificate to use for the socket. + * This is mainly useful if you wish to select a server certificate from a TLS server's `ALPNCallback`. + * @since v22.5.0, v20.17.0 + * @param context An object containing at least `key` and `cert` properties from the {@link createSecureContext()} `options`, + * or a TLS context object created with {@link createSecureContext()} itself. + */ + setKeyCert(context: SecureContextOptions | SecureContext): void; + /** + * The `tlsSocket.setMaxSendFragment()` method sets the maximum TLS fragment size. + * Returns `true` if setting the limit succeeded; `false` otherwise. + * + * Smaller fragment sizes decrease the buffering latency on the client: larger + * fragments are buffered by the TLS layer until the entire fragment is received + * and its integrity is verified; large fragments can span multiple roundtrips + * and their processing can be delayed due to packet loss or reordering. However, + * smaller fragments add extra TLS framing bytes and CPU overhead, which may + * decrease overall server throughput. + * @since v0.11.11 + * @param [size=16384] The maximum TLS fragment size. The maximum value is `16384`. + */ + setMaxSendFragment(size: number): boolean; + /** + * Disables TLS renegotiation for this `TLSSocket` instance. Once called, attempts + * to renegotiate will trigger an `'error'` event on the `TLSSocket`. + * @since v8.4.0 + */ + disableRenegotiation(): void; + /** + * When enabled, TLS packet trace information is written to `stderr`. This can be + * used to debug TLS connection problems. + * + * The format of the output is identical to the output of`openssl s_client -trace` or `openssl s_server -trace`. While it is produced by + * OpenSSL's `SSL_trace()` function, the format is undocumented, can change + * without notice, and should not be relied on. + * @since v12.2.0 + */ + enableTrace(): void; + /** + * Returns the peer certificate as an `X509Certificate` object. + * + * If there is no peer certificate, or the socket has been destroyed,`undefined` will be returned. + * @since v15.9.0 + */ + getPeerX509Certificate(): X509Certificate | undefined; + /** + * Returns the local certificate as an `X509Certificate` object. + * + * If there is no local certificate, or the socket has been destroyed,`undefined` will be returned. + * @since v15.9.0 + */ + getX509Certificate(): X509Certificate | undefined; + /** + * Keying material is used for validations to prevent different kind of attacks in + * network protocols, for example in the specifications of IEEE 802.1X. + * + * Example + * + * ```js + * const keyingMaterial = tlsSocket.exportKeyingMaterial( + * 128, + * 'client finished'); + * + * /* + * Example return value of keyingMaterial: + * + * + * ``` + * + * See the OpenSSL [`SSL_export_keying_material`](https://www.openssl.org/docs/man1.1.1/man3/SSL_export_keying_material.html) documentation for more + * information. + * @since v13.10.0, v12.17.0 + * @param length number of bytes to retrieve from keying material + * @param label an application specific label, typically this will be a value from the [IANA Exporter Label + * Registry](https://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml#exporter-labels). + * @param context Optionally provide a context. + * @return requested bytes of the keying material + */ + exportKeyingMaterial(length: number, label: string, context: Buffer): NonSharedBuffer; + // #region InternalEventEmitter + addListener( + eventName: E, + listener: (...args: TLSSocketEventMap[E]) => void, + ): this; + addListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + emit(eventName: E, ...args: TLSSocketEventMap[E]): boolean; + emit(eventName: string | symbol, ...args: any[]): boolean; + listenerCount( + eventName: E, + listener?: (...args: TLSSocketEventMap[E]) => void, + ): number; + listenerCount(eventName: string | symbol, listener?: (...args: any[]) => void): number; + listeners(eventName: E): ((...args: TLSSocketEventMap[E]) => void)[]; + listeners(eventName: string | symbol): ((...args: any[]) => void)[]; + off(eventName: E, listener: (...args: TLSSocketEventMap[E]) => void): this; + off(eventName: string | symbol, listener: (...args: any[]) => void): this; + on(eventName: E, listener: (...args: TLSSocketEventMap[E]) => void): this; + on(eventName: string | symbol, listener: (...args: any[]) => void): this; + once(eventName: E, listener: (...args: TLSSocketEventMap[E]) => void): this; + once(eventName: string | symbol, listener: (...args: any[]) => void): this; + prependListener( + eventName: E, + listener: (...args: TLSSocketEventMap[E]) => void, + ): this; + prependListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + prependOnceListener( + eventName: E, + listener: (...args: TLSSocketEventMap[E]) => void, + ): this; + prependOnceListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + rawListeners(eventName: E): ((...args: TLSSocketEventMap[E]) => void)[]; + rawListeners(eventName: string | symbol): ((...args: any[]) => void)[]; + // eslint-disable-next-line @definitelytyped/no-unnecessary-generics + removeAllListeners(eventName?: E): this; + removeAllListeners(eventName?: string | symbol): this; + removeListener( + eventName: E, + listener: (...args: TLSSocketEventMap[E]) => void, + ): this; + removeListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + // #endregion + } + interface CommonConnectionOptions { + /** + * An optional TLS context object from tls.createSecureContext() + */ + secureContext?: SecureContext | undefined; + /** + * When enabled, TLS packet trace information is written to `stderr`. This can be + * used to debug TLS connection problems. + * @default false + */ + enableTrace?: boolean | undefined; + /** + * If true the server will request a certificate from clients that + * connect and attempt to verify that certificate. Defaults to + * false. + */ + requestCert?: boolean | undefined; + /** + * An array of strings, or a single `Buffer`, `TypedArray`, or `DataView` containing the supported + * ALPN protocols. Buffers should have the format `[len][name][len][name]...` + * e.g. `'\x08http/1.1\x08http/1.0'`, where the `len` byte is the length of the + * next protocol name. Passing an array is usually much simpler, e.g. + * `['http/1.1', 'http/1.0']`. Protocols earlier in the list have higher + * preference than those later. + */ + ALPNProtocols?: readonly string[] | NodeJS.ArrayBufferView | undefined; + /** + * SNICallback(servername, cb) A function that will be + * called if the client supports SNI TLS extension. Two arguments + * will be passed when called: servername and cb. SNICallback should + * invoke cb(null, ctx), where ctx is a SecureContext instance. + * (tls.createSecureContext(...) can be used to get a proper + * SecureContext.) If SNICallback wasn't provided the default callback + * with high-level API will be used (see below). + */ + SNICallback?: ((servername: string, cb: (err: Error | null, ctx?: SecureContext) => void) => void) | undefined; + /** + * If true the server will reject any connection which is not + * authorized with the list of supplied CAs. This option only has an + * effect if requestCert is true. + * @default true + */ + rejectUnauthorized?: boolean | undefined; + /** + * If true, specifies that the OCSP status request extension will be + * added to the client hello and an 'OCSPResponse' event will be + * emitted on the socket before establishing a secure communication. + */ + requestOCSP?: boolean | undefined; + } + interface TlsOptions extends SecureContextOptions, CommonConnectionOptions, net.ServerOpts { + /** + * Abort the connection if the SSL/TLS handshake does not finish in the + * specified number of milliseconds. A 'tlsClientError' is emitted on + * the tls.Server object whenever a handshake times out. Default: + * 120000 (120 seconds). + */ + handshakeTimeout?: number | undefined; + /** + * The number of seconds after which a TLS session created by the + * server will no longer be resumable. See Session Resumption for more + * information. Default: 300. + */ + sessionTimeout?: number | undefined; + /** + * 48-bytes of cryptographically strong pseudo-random data. + */ + ticketKeys?: Buffer | undefined; + /** + * @param socket + * @param identity identity parameter sent from the client. + * @return pre-shared key that must either be + * a buffer or `null` to stop the negotiation process. Returned PSK must be + * compatible with the selected cipher's digest. + * + * When negotiating TLS-PSK (pre-shared keys), this function is called + * with the identity provided by the client. + * If the return value is `null` the negotiation process will stop and an + * "unknown_psk_identity" alert message will be sent to the other party. + * If the server wishes to hide the fact that the PSK identity was not known, + * the callback must provide some random data as `psk` to make the connection + * fail with "decrypt_error" before negotiation is finished. + * PSK ciphers are disabled by default, and using TLS-PSK thus + * requires explicitly specifying a cipher suite with the `ciphers` option. + * More information can be found in the RFC 4279. + */ + pskCallback?: ((socket: TLSSocket, identity: string) => NodeJS.ArrayBufferView | null) | undefined; + /** + * hint to send to a client to help + * with selecting the identity during TLS-PSK negotiation. Will be ignored + * in TLS 1.3. Upon failing to set pskIdentityHint `tlsClientError` will be + * emitted with `ERR_TLS_PSK_SET_IDENTIY_HINT_FAILED` code. + */ + pskIdentityHint?: string | undefined; + } + interface PSKCallbackNegotation { + psk: NodeJS.ArrayBufferView; + identity: string; + } + interface ConnectionOptions extends SecureContextOptions, CommonConnectionOptions { + host?: string | undefined; + port?: number | undefined; + path?: string | undefined; // Creates unix socket connection to path. If this option is specified, `host` and `port` are ignored. + socket?: stream.Duplex | undefined; // Establish secure connection on a given socket rather than creating a new socket + checkServerIdentity?: typeof checkServerIdentity | undefined; + servername?: string | undefined; // SNI TLS Extension + session?: Buffer | undefined; + minDHSize?: number | undefined; + lookup?: net.LookupFunction | undefined; + timeout?: number | undefined; + /** + * When negotiating TLS-PSK (pre-shared keys), this function is called + * with optional identity `hint` provided by the server or `null` + * in case of TLS 1.3 where `hint` was removed. + * It will be necessary to provide a custom `tls.checkServerIdentity()` + * for the connection as the default one will try to check hostname/IP + * of the server against the certificate but that's not applicable for PSK + * because there won't be a certificate present. + * More information can be found in the RFC 4279. + * + * @param hint message sent from the server to help client + * decide which identity to use during negotiation. + * Always `null` if TLS 1.3 is used. + * @returns Return `null` to stop the negotiation process. `psk` must be + * compatible with the selected cipher's digest. + * `identity` must use UTF-8 encoding. + */ + pskCallback?: ((hint: string | null) => PSKCallbackNegotation | null) | undefined; + } + interface ServerEventMap extends net.ServerEventMap { + "connection": [socket: net.Socket]; + "keylog": [line: NonSharedBuffer, tlsSocket: TLSSocket]; + "newSession": [sessionId: NonSharedBuffer, sessionData: NonSharedBuffer, callback: () => void]; + "OCSPRequest": [ + certificate: NonSharedBuffer, + issuer: NonSharedBuffer, + callback: (err: Error | null, resp: Buffer | null) => void, + ]; + "resumeSession": [sessionId: Buffer, callback: (err: Error | null, sessionData?: Buffer) => void]; + "secureConnection": [tlsSocket: TLSSocket]; + "tlsClientError": [exception: Error, tlsSocket: TLSSocket]; + } + /** + * Accepts encrypted connections using TLS or SSL. + * @since v0.3.2 + */ + class Server extends net.Server { + constructor(secureConnectionListener?: (socket: TLSSocket) => void); + constructor(options: TlsOptions, secureConnectionListener?: (socket: TLSSocket) => void); + /** + * The `server.addContext()` method adds a secure context that will be used if + * the client request's SNI name matches the supplied `hostname` (or wildcard). + * + * When there are multiple matching contexts, the most recently added one is + * used. + * @since v0.5.3 + * @param hostname A SNI host name or wildcard (e.g. `'*'`) + * @param context An object containing any of the possible properties from the {@link createSecureContext} `options` arguments (e.g. `key`, `cert`, `ca`, etc), or a TLS context object created + * with {@link createSecureContext} itself. + */ + addContext(hostname: string, context: SecureContextOptions | SecureContext): void; + /** + * Returns the session ticket keys. + * + * See `Session Resumption` for more information. + * @since v3.0.0 + * @return A 48-byte buffer containing the session ticket keys. + */ + getTicketKeys(): NonSharedBuffer; + /** + * The `server.setSecureContext()` method replaces the secure context of an + * existing server. Existing connections to the server are not interrupted. + * @since v11.0.0 + * @param options An object containing any of the possible properties from the {@link createSecureContext} `options` arguments (e.g. `key`, `cert`, `ca`, etc). + */ + setSecureContext(options: SecureContextOptions): void; + /** + * Sets the session ticket keys. + * + * Changes to the ticket keys are effective only for future server connections. + * Existing or currently pending server connections will use the previous keys. + * + * See `Session Resumption` for more information. + * @since v3.0.0 + * @param keys A 48-byte buffer containing the session ticket keys. + */ + setTicketKeys(keys: Buffer): void; + // #region InternalEventEmitter + addListener(eventName: E, listener: (...args: ServerEventMap[E]) => void): this; + addListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + emit(eventName: E, ...args: ServerEventMap[E]): boolean; + emit(eventName: string | symbol, ...args: any[]): boolean; + listenerCount( + eventName: E, + listener?: (...args: ServerEventMap[E]) => void, + ): number; + listenerCount(eventName: string | symbol, listener?: (...args: any[]) => void): number; + listeners(eventName: E): ((...args: ServerEventMap[E]) => void)[]; + listeners(eventName: string | symbol): ((...args: any[]) => void)[]; + off(eventName: E, listener: (...args: ServerEventMap[E]) => void): this; + off(eventName: string | symbol, listener: (...args: any[]) => void): this; + on(eventName: E, listener: (...args: ServerEventMap[E]) => void): this; + on(eventName: string | symbol, listener: (...args: any[]) => void): this; + once(eventName: E, listener: (...args: ServerEventMap[E]) => void): this; + once(eventName: string | symbol, listener: (...args: any[]) => void): this; + prependListener( + eventName: E, + listener: (...args: ServerEventMap[E]) => void, + ): this; + prependListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + prependOnceListener( + eventName: E, + listener: (...args: ServerEventMap[E]) => void, + ): this; + prependOnceListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + rawListeners(eventName: E): ((...args: ServerEventMap[E]) => void)[]; + rawListeners(eventName: string | symbol): ((...args: any[]) => void)[]; + // eslint-disable-next-line @definitelytyped/no-unnecessary-generics + removeAllListeners(eventName?: E): this; + removeAllListeners(eventName?: string | symbol): this; + removeListener( + eventName: E, + listener: (...args: ServerEventMap[E]) => void, + ): this; + removeListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + // #endregion + } + type SecureVersion = "TLSv1.3" | "TLSv1.2" | "TLSv1.1" | "TLSv1"; + interface SecureContextOptions { + /** + * If set, this will be called when a client opens a connection using the ALPN extension. + * One argument will be passed to the callback: an object containing `servername` and `protocols` fields, + * respectively containing the server name from the SNI extension (if any) and an array of + * ALPN protocol name strings. The callback must return either one of the strings listed in `protocols`, + * which will be returned to the client as the selected ALPN protocol, or `undefined`, + * to reject the connection with a fatal alert. If a string is returned that does not match one of + * the client's ALPN protocols, an error will be thrown. + * This option cannot be used with the `ALPNProtocols` option, and setting both options will throw an error. + */ + ALPNCallback?: ((arg: { servername: string; protocols: string[] }) => string | undefined) | undefined; + /** + * Treat intermediate (non-self-signed) + * certificates in the trust CA certificate list as trusted. + * @since v22.9.0, v20.18.0 + */ + allowPartialTrustChain?: boolean | undefined; + /** + * Optionally override the trusted CA certificates. Default is to trust + * the well-known CAs curated by Mozilla. Mozilla's CAs are completely + * replaced when CAs are explicitly specified using this option. + */ + ca?: string | Buffer | Array | undefined; + /** + * Cert chains in PEM format. One cert chain should be provided per + * private key. Each cert chain should consist of the PEM formatted + * certificate for a provided private key, followed by the PEM + * formatted intermediate certificates (if any), in order, and not + * including the root CA (the root CA must be pre-known to the peer, + * see ca). When providing multiple cert chains, they do not have to + * be in the same order as their private keys in key. If the + * intermediate certificates are not provided, the peer will not be + * able to validate the certificate, and the handshake will fail. + */ + cert?: string | Buffer | Array | undefined; + /** + * Colon-separated list of supported signature algorithms. The list + * can contain digest algorithms (SHA256, MD5 etc.), public key + * algorithms (RSA-PSS, ECDSA etc.), combination of both (e.g + * 'RSA+SHA384') or TLS v1.3 scheme names (e.g. rsa_pss_pss_sha512). + */ + sigalgs?: string | undefined; + /** + * Cipher suite specification, replacing the default. For more + * information, see modifying the default cipher suite. Permitted + * ciphers can be obtained via tls.getCiphers(). Cipher names must be + * uppercased in order for OpenSSL to accept them. + */ + ciphers?: string | undefined; + /** + * Name of an OpenSSL engine which can provide the client certificate. + * @deprecated + */ + clientCertEngine?: string | undefined; + /** + * PEM formatted CRLs (Certificate Revocation Lists). + */ + crl?: string | Buffer | Array | undefined; + /** + * `'auto'` or custom Diffie-Hellman parameters, required for non-ECDHE perfect forward secrecy. + * If omitted or invalid, the parameters are silently discarded and DHE ciphers will not be available. + * ECDHE-based perfect forward secrecy will still be available. + */ + dhparam?: string | Buffer | undefined; + /** + * A string describing a named curve or a colon separated list of curve + * NIDs or names, for example P-521:P-384:P-256, to use for ECDH key + * agreement. Set to auto to select the curve automatically. Use + * crypto.getCurves() to obtain a list of available curve names. On + * recent releases, openssl ecparam -list_curves will also display the + * name and description of each available elliptic curve. Default: + * tls.DEFAULT_ECDH_CURVE. + */ + ecdhCurve?: string | undefined; + /** + * Attempt to use the server's cipher suite preferences instead of the + * client's. When true, causes SSL_OP_CIPHER_SERVER_PREFERENCE to be + * set in secureOptions + */ + honorCipherOrder?: boolean | undefined; + /** + * Private keys in PEM format. PEM allows the option of private keys + * being encrypted. Encrypted keys will be decrypted with + * options.passphrase. Multiple keys using different algorithms can be + * provided either as an array of unencrypted key strings or buffers, + * or an array of objects in the form {pem: [, + * passphrase: ]}. The object form can only occur in an array. + * object.passphrase is optional. Encrypted keys will be decrypted with + * object.passphrase if provided, or options.passphrase if it is not. + */ + key?: string | Buffer | Array | undefined; + /** + * Name of an OpenSSL engine to get private key from. Should be used + * together with privateKeyIdentifier. + * @deprecated + */ + privateKeyEngine?: string | undefined; + /** + * Identifier of a private key managed by an OpenSSL engine. Should be + * used together with privateKeyEngine. Should not be set together with + * key, because both options define a private key in different ways. + * @deprecated + */ + privateKeyIdentifier?: string | undefined; + /** + * Optionally set the maximum TLS version to allow. One + * of `'TLSv1.3'`, `'TLSv1.2'`, `'TLSv1.1'`, or `'TLSv1'`. Cannot be specified along with the + * `secureProtocol` option, use one or the other. + * **Default:** `'TLSv1.3'`, unless changed using CLI options. Using + * `--tls-max-v1.2` sets the default to `'TLSv1.2'`. Using `--tls-max-v1.3` sets the default to + * `'TLSv1.3'`. If multiple of the options are provided, the highest maximum is used. + */ + maxVersion?: SecureVersion | undefined; + /** + * Optionally set the minimum TLS version to allow. One + * of `'TLSv1.3'`, `'TLSv1.2'`, `'TLSv1.1'`, or `'TLSv1'`. Cannot be specified along with the + * `secureProtocol` option, use one or the other. It is not recommended to use + * less than TLSv1.2, but it may be required for interoperability. + * **Default:** `'TLSv1.2'`, unless changed using CLI options. Using + * `--tls-v1.0` sets the default to `'TLSv1'`. Using `--tls-v1.1` sets the default to + * `'TLSv1.1'`. Using `--tls-min-v1.3` sets the default to + * 'TLSv1.3'. If multiple of the options are provided, the lowest minimum is used. + */ + minVersion?: SecureVersion | undefined; + /** + * Shared passphrase used for a single private key and/or a PFX. + */ + passphrase?: string | undefined; + /** + * PFX or PKCS12 encoded private key and certificate chain. pfx is an + * alternative to providing key and cert individually. PFX is usually + * encrypted, if it is, passphrase will be used to decrypt it. Multiple + * PFX can be provided either as an array of unencrypted PFX buffers, + * or an array of objects in the form {buf: [, + * passphrase: ]}. The object form can only occur in an array. + * object.passphrase is optional. Encrypted PFX will be decrypted with + * object.passphrase if provided, or options.passphrase if it is not. + */ + pfx?: string | Buffer | Array | undefined; + /** + * Optionally affect the OpenSSL protocol behavior, which is not + * usually necessary. This should be used carefully if at all! Value is + * a numeric bitmask of the SSL_OP_* options from OpenSSL Options + */ + secureOptions?: number | undefined; // Value is a numeric bitmask of the `SSL_OP_*` options + /** + * Legacy mechanism to select the TLS protocol version to use, it does + * not support independent control of the minimum and maximum version, + * and does not support limiting the protocol to TLSv1.3. Use + * minVersion and maxVersion instead. The possible values are listed as + * SSL_METHODS, use the function names as strings. For example, use + * 'TLSv1_1_method' to force TLS version 1.1, or 'TLS_method' to allow + * any TLS protocol version up to TLSv1.3. It is not recommended to use + * TLS versions less than 1.2, but it may be required for + * interoperability. Default: none, see minVersion. + */ + secureProtocol?: string | undefined; + /** + * Opaque identifier used by servers to ensure session state is not + * shared between applications. Unused by clients. + */ + sessionIdContext?: string | undefined; + /** + * 48-bytes of cryptographically strong pseudo-random data. + * See Session Resumption for more information. + */ + ticketKeys?: Buffer | undefined; + /** + * The number of seconds after which a TLS session created by the + * server will no longer be resumable. See Session Resumption for more + * information. Default: 300. + */ + sessionTimeout?: number | undefined; + } + interface SecureContext { + context: any; + } + /** + * Verifies the certificate `cert` is issued to `hostname`. + * + * Returns [Error](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error) object, populating it with `reason`, `host`, and `cert` on + * failure. On success, returns [undefined](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Undefined_type). + * + * This function is intended to be used in combination with the`checkServerIdentity` option that can be passed to {@link connect} and as + * such operates on a `certificate object`. For other purposes, consider using `x509.checkHost()` instead. + * + * This function can be overwritten by providing an alternative function as the `options.checkServerIdentity` option that is passed to `tls.connect()`. The + * overwriting function can call `tls.checkServerIdentity()` of course, to augment + * the checks done with additional verification. + * + * This function is only called if the certificate passed all other checks, such as + * being issued by trusted CA (`options.ca`). + * + * Earlier versions of Node.js incorrectly accepted certificates for a given`hostname` if a matching `uniformResourceIdentifier` subject alternative name + * was present (see [CVE-2021-44531](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-44531)). Applications that wish to accept`uniformResourceIdentifier` subject alternative names can use + * a custom `options.checkServerIdentity` function that implements the desired behavior. + * @since v0.8.4 + * @param hostname The host name or IP address to verify the certificate against. + * @param cert A `certificate object` representing the peer's certificate. + */ + function checkServerIdentity(hostname: string, cert: PeerCertificate): Error | undefined; + /** + * Creates a new {@link Server}. The `secureConnectionListener`, if provided, is + * automatically set as a listener for the `'secureConnection'` event. + * + * The `ticketKeys` options is automatically shared between `node:cluster` module + * workers. + * + * The following illustrates a simple echo server: + * + * ```js + * import tls from 'node:tls'; + * import fs from 'node:fs'; + * + * const options = { + * key: fs.readFileSync('server-key.pem'), + * cert: fs.readFileSync('server-cert.pem'), + * + * // This is necessary only if using client certificate authentication. + * requestCert: true, + * + * // This is necessary only if the client uses a self-signed certificate. + * ca: [ fs.readFileSync('client-cert.pem') ], + * }; + * + * const server = tls.createServer(options, (socket) => { + * console.log('server connected', + * socket.authorized ? 'authorized' : 'unauthorized'); + * socket.write('welcome!\n'); + * socket.setEncoding('utf8'); + * socket.pipe(socket); + * }); + * server.listen(8000, () => { + * console.log('server bound'); + * }); + * ``` + * + * The server can be tested by connecting to it using the example client from {@link connect}. + * @since v0.3.2 + */ + function createServer(secureConnectionListener?: (socket: TLSSocket) => void): Server; + function createServer(options: TlsOptions, secureConnectionListener?: (socket: TLSSocket) => void): Server; + /** + * The `callback` function, if specified, will be added as a listener for the `'secureConnect'` event. + * + * `tls.connect()` returns a {@link TLSSocket} object. + * + * Unlike the `https` API, `tls.connect()` does not enable the + * SNI (Server Name Indication) extension by default, which may cause some + * servers to return an incorrect certificate or reject the connection + * altogether. To enable SNI, set the `servername` option in addition + * to `host`. + * + * The following illustrates a client for the echo server example from {@link createServer}: + * + * ```js + * // Assumes an echo server that is listening on port 8000. + * import tls from 'node:tls'; + * import fs from 'node:fs'; + * + * const options = { + * // Necessary only if the server requires client certificate authentication. + * key: fs.readFileSync('client-key.pem'), + * cert: fs.readFileSync('client-cert.pem'), + * + * // Necessary only if the server uses a self-signed certificate. + * ca: [ fs.readFileSync('server-cert.pem') ], + * + * // Necessary only if the server's cert isn't for "localhost". + * checkServerIdentity: () => { return null; }, + * }; + * + * const socket = tls.connect(8000, options, () => { + * console.log('client connected', + * socket.authorized ? 'authorized' : 'unauthorized'); + * process.stdin.pipe(socket); + * process.stdin.resume(); + * }); + * socket.setEncoding('utf8'); + * socket.on('data', (data) => { + * console.log(data); + * }); + * socket.on('end', () => { + * console.log('server ends connection'); + * }); + * ``` + * @since v0.11.3 + */ + function connect(options: ConnectionOptions, secureConnectListener?: () => void): TLSSocket; + function connect( + port: number, + host?: string, + options?: ConnectionOptions, + secureConnectListener?: () => void, + ): TLSSocket; + function connect(port: number, options?: ConnectionOptions, secureConnectListener?: () => void): TLSSocket; + /** + * `{@link createServer}` sets the default value of the `honorCipherOrder` option + * to `true`, other APIs that create secure contexts leave it unset. + * + * `{@link createServer}` uses a 128 bit truncated SHA1 hash value generated + * from `process.argv` as the default value of the `sessionIdContext` option, other + * APIs that create secure contexts have no default value. + * + * The `tls.createSecureContext()` method creates a `SecureContext` object. It is + * usable as an argument to several `tls` APIs, such as `server.addContext()`, + * but has no public methods. The {@link Server} constructor and the {@link createServer} method do not support the `secureContext` option. + * + * A key is _required_ for ciphers that use certificates. Either `key` or `pfx` can be used to provide it. + * + * If the `ca` option is not given, then Node.js will default to using [Mozilla's publicly trusted list of + * CAs](https://hg.mozilla.org/mozilla-central/raw-file/tip/security/nss/lib/ckfw/builtins/certdata.txt). + * + * Custom DHE parameters are discouraged in favor of the new `dhparam: 'auto' `option. When set to `'auto'`, well-known DHE parameters of sufficient strength + * will be selected automatically. Otherwise, if necessary, `openssl dhparam` can + * be used to create custom parameters. The key length must be greater than or + * equal to 1024 bits or else an error will be thrown. Although 1024 bits is + * permissible, use 2048 bits or larger for stronger security. + * @since v0.11.13 + */ + function createSecureContext(options?: SecureContextOptions): SecureContext; + /** + * Returns an array containing the CA certificates from various sources, depending on `type`: + * + * * `"default"`: return the CA certificates that will be used by the Node.js TLS clients by default. + * * When `--use-bundled-ca` is enabled (default), or `--use-openssl-ca` is not enabled, + * this would include CA certificates from the bundled Mozilla CA store. + * * When `--use-system-ca` is enabled, this would also include certificates from the system's + * trusted store. + * * When `NODE_EXTRA_CA_CERTS` is used, this would also include certificates loaded from the specified + * file. + * * `"system"`: return the CA certificates that are loaded from the system's trusted store, according + * to rules set by `--use-system-ca`. This can be used to get the certificates from the system + * when `--use-system-ca` is not enabled. + * * `"bundled"`: return the CA certificates from the bundled Mozilla CA store. This would be the same + * as `tls.rootCertificates`. + * * `"extra"`: return the CA certificates loaded from `NODE_EXTRA_CA_CERTS`. It's an empty array if + * `NODE_EXTRA_CA_CERTS` is not set. + * @since v22.15.0 + * @param type The type of CA certificates that will be returned. Valid values + * are `"default"`, `"system"`, `"bundled"` and `"extra"`. + * **Default:** `"default"`. + * @returns An array of PEM-encoded certificates. The array may contain duplicates + * if the same certificate is repeatedly stored in multiple sources. + */ + function getCACertificates(type?: "default" | "system" | "bundled" | "extra"): string[]; + /** + * Returns an array with the names of the supported TLS ciphers. The names are + * lower-case for historical reasons, but must be uppercased to be used in + * the `ciphers` option of `{@link createSecureContext}`. + * + * Not all supported ciphers are enabled by default. See + * [Modifying the default TLS cipher suite](https://nodejs.org/docs/latest-v25.x/api/tls.html#modifying-the-default-tls-cipher-suite). + * + * Cipher names that start with `'tls_'` are for TLSv1.3, all the others are for + * TLSv1.2 and below. + * + * ```js + * console.log(tls.getCiphers()); // ['aes128-gcm-sha256', 'aes128-sha', ...] + * ``` + * @since v0.10.2 + */ + function getCiphers(): string[]; + /** + * Sets the default CA certificates used by Node.js TLS clients. If the provided + * certificates are parsed successfully, they will become the default CA + * certificate list returned by {@link getCACertificates} and used + * by subsequent TLS connections that don't specify their own CA certificates. + * The certificates will be deduplicated before being set as the default. + * + * This function only affects the current Node.js thread. Previous + * sessions cached by the HTTPS agent won't be affected by this change, so + * this method should be called before any unwanted cachable TLS connections are + * made. + * + * To use system CA certificates as the default: + * + * ```js + * import tls from 'node:tls'; + * tls.setDefaultCACertificates(tls.getCACertificates('system')); + * ``` + * + * This function completely replaces the default CA certificate list. To add additional + * certificates to the existing defaults, get the current certificates and append to them: + * + * ```js + * import tls from 'node:tls'; + * const currentCerts = tls.getCACertificates('default'); + * const additionalCerts = ['-----BEGIN CERTIFICATE-----\n...']; + * tls.setDefaultCACertificates([...currentCerts, ...additionalCerts]); + * ``` + * @since v24.5.0 + * @param certs An array of CA certificates in PEM format. + */ + function setDefaultCACertificates(certs: ReadonlyArray): void; + /** + * The default curve name to use for ECDH key agreement in a tls server. + * The default value is `'auto'`. See `{@link createSecureContext()}` for further + * information. + * @since v0.11.13 + */ + let DEFAULT_ECDH_CURVE: string; + /** + * The default value of the `maxVersion` option of `{@link createSecureContext()}`. + * It can be assigned any of the supported TLS protocol versions, + * `'TLSv1.3'`, `'TLSv1.2'`, `'TLSv1.1'`, or `'TLSv1'`. **Default:** `'TLSv1.3'`, unless + * changed using CLI options. Using `--tls-max-v1.2` sets the default to `'TLSv1.2'`. Using + * `--tls-max-v1.3` sets the default to `'TLSv1.3'`. If multiple of the options + * are provided, the highest maximum is used. + * @since v11.4.0 + */ + let DEFAULT_MAX_VERSION: SecureVersion; + /** + * The default value of the `minVersion` option of `{@link createSecureContext()}`. + * It can be assigned any of the supported TLS protocol versions, + * `'TLSv1.3'`, `'TLSv1.2'`, `'TLSv1.1'`, or `'TLSv1'`. **Default:** `'TLSv1.2'`, unless + * changed using CLI options. Using `--tls-min-v1.0` sets the default to + * `'TLSv1'`. Using `--tls-min-v1.1` sets the default to `'TLSv1.1'`. Using + * `--tls-min-v1.3` sets the default to `'TLSv1.3'`. If multiple of the options + * are provided, the lowest minimum is used. + * @since v11.4.0 + */ + let DEFAULT_MIN_VERSION: SecureVersion; + /** + * The default value of the `ciphers` option of `{@link createSecureContext()}`. + * It can be assigned any of the supported OpenSSL ciphers. + * Defaults to the content of `crypto.constants.defaultCoreCipherList`, unless + * changed using CLI options using `--tls-default-ciphers`. + * @since v19.8.0 + */ + let DEFAULT_CIPHERS: string; + /** + * An immutable array of strings representing the root certificates (in PEM format) + * from the bundled Mozilla CA store as supplied by the current Node.js version. + * + * The bundled CA store, as supplied by Node.js, is a snapshot of Mozilla CA store + * that is fixed at release time. It is identical on all supported platforms. + * @since v12.3.0 + */ + const rootCertificates: readonly string[]; +} +declare module "tls" { + export * from "node:tls"; +} diff --git a/server/api/node_modules/@types/node/trace_events.d.ts b/server/api/node_modules/@types/node/trace_events.d.ts new file mode 100644 index 0000000..5fa7a39 --- /dev/null +++ b/server/api/node_modules/@types/node/trace_events.d.ts @@ -0,0 +1,103 @@ +declare module "node:trace_events" { + /** + * The `Tracing` object is used to enable or disable tracing for sets of + * categories. Instances are created using the + * `trace_events.createTracing()` method. + * + * When created, the `Tracing` object is disabled. Calling the + * `tracing.enable()` method adds the categories to the set of enabled trace + * event categories. Calling `tracing.disable()` will remove the categories + * from the set of enabled trace event categories. + */ + interface Tracing { + /** + * A comma-separated list of the trace event categories covered by this + * `Tracing` object. + * @since v10.0.0 + */ + readonly categories: string; + /** + * Disables this `Tracing` object. + * + * Only trace event categories _not_ covered by other enabled `Tracing` + * objects and _not_ specified by the `--trace-event-categories` flag + * will be disabled. + * + * ```js + * import trace_events from 'node:trace_events'; + * const t1 = trace_events.createTracing({ categories: ['node', 'v8'] }); + * const t2 = trace_events.createTracing({ categories: ['node.perf', 'node'] }); + * t1.enable(); + * t2.enable(); + * + * // Prints 'node,node.perf,v8' + * console.log(trace_events.getEnabledCategories()); + * + * t2.disable(); // Will only disable emission of the 'node.perf' category + * + * // Prints 'node,v8' + * console.log(trace_events.getEnabledCategories()); + * ``` + * @since v10.0.0 + */ + disable(): void; + /** + * Enables this `Tracing` object for the set of categories covered by + * the `Tracing` object. + * @since v10.0.0 + */ + enable(): void; + /** + * `true` only if the `Tracing` object has been enabled. + * @since v10.0.0 + */ + readonly enabled: boolean; + } + interface CreateTracingOptions { + /** + * An array of trace category names. Values included in the array are + * coerced to a string when possible. An error will be thrown if the + * value cannot be coerced. + */ + categories: string[]; + } + /** + * Creates and returns a `Tracing` object for the given set of `categories`. + * + * ```js + * import trace_events from 'node:trace_events'; + * const categories = ['node.perf', 'node.async_hooks']; + * const tracing = trace_events.createTracing({ categories }); + * tracing.enable(); + * // do stuff + * tracing.disable(); + * ``` + * @since v10.0.0 + */ + function createTracing(options: CreateTracingOptions): Tracing; + /** + * Returns a comma-separated list of all currently-enabled trace event + * categories. The current set of enabled trace event categories is determined + * by the _union_ of all currently-enabled `Tracing` objects and any categories + * enabled using the `--trace-event-categories` flag. + * + * Given the file `test.js` below, the command `node --trace-event-categories node.perf test.js` will print `'node.async_hooks,node.perf'` to the console. + * + * ```js + * import trace_events from 'node:trace_events'; + * const t1 = trace_events.createTracing({ categories: ['node.async_hooks'] }); + * const t2 = trace_events.createTracing({ categories: ['node.perf'] }); + * const t3 = trace_events.createTracing({ categories: ['v8'] }); + * + * t1.enable(); + * t2.enable(); + * + * console.log(trace_events.getEnabledCategories()); + * ``` + * @since v10.0.0 + */ + function getEnabledCategories(): string | undefined; +} +declare module "trace_events" { + export * from "node:trace_events"; +} diff --git a/server/api/node_modules/@types/node/ts5.6/buffer.buffer.d.ts b/server/api/node_modules/@types/node/ts5.6/buffer.buffer.d.ts new file mode 100644 index 0000000..118041b --- /dev/null +++ b/server/api/node_modules/@types/node/ts5.6/buffer.buffer.d.ts @@ -0,0 +1,462 @@ +declare module "node:buffer" { + global { + interface BufferConstructor { + // see ../buffer.d.ts for implementation shared with all TypeScript versions + + /** + * Allocates a new buffer containing the given {str}. + * + * @param str String to store in buffer. + * @param encoding encoding to use, optional. Default is 'utf8' + * @deprecated since v10.0.0 - Use `Buffer.from(string[, encoding])` instead. + */ + new(str: string, encoding?: BufferEncoding): Buffer; + /** + * Allocates a new buffer of {size} octets. + * + * @param size count of octets to allocate. + * @deprecated since v10.0.0 - Use `Buffer.alloc()` instead (also see `Buffer.allocUnsafe()`). + */ + new(size: number): Buffer; + /** + * Allocates a new buffer containing the given {array} of octets. + * + * @param array The octets to store. + * @deprecated since v10.0.0 - Use `Buffer.from(array)` instead. + */ + new(array: ArrayLike): Buffer; + /** + * Produces a Buffer backed by the same allocated memory as + * the given {ArrayBuffer}/{SharedArrayBuffer}. + * + * @param arrayBuffer The ArrayBuffer with which to share memory. + * @deprecated since v10.0.0 - Use `Buffer.from(arrayBuffer[, byteOffset[, length]])` instead. + */ + new(arrayBuffer: ArrayBufferLike): Buffer; + /** + * Allocates a new `Buffer` using an `array` of bytes in the range `0` – `255`. + * Array entries outside that range will be truncated to fit into it. + * + * ```js + * import { Buffer } from 'node:buffer'; + * + * // Creates a new Buffer containing the UTF-8 bytes of the string 'buffer'. + * const buf = Buffer.from([0x62, 0x75, 0x66, 0x66, 0x65, 0x72]); + * ``` + * + * If `array` is an `Array`-like object (that is, one with a `length` property of + * type `number`), it is treated as if it is an array, unless it is a `Buffer` or + * a `Uint8Array`. This means all other `TypedArray` variants get treated as an + * `Array`. To create a `Buffer` from the bytes backing a `TypedArray`, use + * `Buffer.copyBytesFrom()`. + * + * A `TypeError` will be thrown if `array` is not an `Array` or another type + * appropriate for `Buffer.from()` variants. + * + * `Buffer.from(array)` and `Buffer.from(string)` may also use the internal + * `Buffer` pool like `Buffer.allocUnsafe()` does. + * @since v5.10.0 + */ + from(array: WithImplicitCoercion>): Buffer; + /** + * This creates a view of the `ArrayBuffer` without copying the underlying + * memory. For example, when passed a reference to the `.buffer` property of a + * `TypedArray` instance, the newly created `Buffer` will share the same + * allocated memory as the `TypedArray`'s underlying `ArrayBuffer`. + * + * ```js + * import { Buffer } from 'node:buffer'; + * + * const arr = new Uint16Array(2); + * + * arr[0] = 5000; + * arr[1] = 4000; + * + * // Shares memory with `arr`. + * const buf = Buffer.from(arr.buffer); + * + * console.log(buf); + * // Prints: + * + * // Changing the original Uint16Array changes the Buffer also. + * arr[1] = 6000; + * + * console.log(buf); + * // Prints: + * ``` + * + * The optional `byteOffset` and `length` arguments specify a memory range within + * the `arrayBuffer` that will be shared by the `Buffer`. + * + * ```js + * import { Buffer } from 'node:buffer'; + * + * const ab = new ArrayBuffer(10); + * const buf = Buffer.from(ab, 0, 2); + * + * console.log(buf.length); + * // Prints: 2 + * ``` + * + * A `TypeError` will be thrown if `arrayBuffer` is not an `ArrayBuffer` or a + * `SharedArrayBuffer` or another type appropriate for `Buffer.from()` + * variants. + * + * It is important to remember that a backing `ArrayBuffer` can cover a range + * of memory that extends beyond the bounds of a `TypedArray` view. A new + * `Buffer` created using the `buffer` property of a `TypedArray` may extend + * beyond the range of the `TypedArray`: + * + * ```js + * import { Buffer } from 'node:buffer'; + * + * const arrA = Uint8Array.from([0x63, 0x64, 0x65, 0x66]); // 4 elements + * const arrB = new Uint8Array(arrA.buffer, 1, 2); // 2 elements + * console.log(arrA.buffer === arrB.buffer); // true + * + * const buf = Buffer.from(arrB.buffer); + * console.log(buf); + * // Prints: + * ``` + * @since v5.10.0 + * @param arrayBuffer An `ArrayBuffer`, `SharedArrayBuffer`, for example the + * `.buffer` property of a `TypedArray`. + * @param byteOffset Index of first byte to expose. **Default:** `0`. + * @param length Number of bytes to expose. **Default:** + * `arrayBuffer.byteLength - byteOffset`. + */ + from( + arrayBuffer: WithImplicitCoercion, + byteOffset?: number, + length?: number, + ): Buffer; + /** + * Creates a new `Buffer` containing `string`. The `encoding` parameter identifies + * the character encoding to be used when converting `string` into bytes. + * + * ```js + * import { Buffer } from 'node:buffer'; + * + * const buf1 = Buffer.from('this is a tést'); + * const buf2 = Buffer.from('7468697320697320612074c3a97374', 'hex'); + * + * console.log(buf1.toString()); + * // Prints: this is a tést + * console.log(buf2.toString()); + * // Prints: this is a tést + * console.log(buf1.toString('latin1')); + * // Prints: this is a tést + * ``` + * + * A `TypeError` will be thrown if `string` is not a string or another type + * appropriate for `Buffer.from()` variants. + * + * `Buffer.from(string)` may also use the internal `Buffer` pool like + * `Buffer.allocUnsafe()` does. + * @since v5.10.0 + * @param string A string to encode. + * @param encoding The encoding of `string`. **Default:** `'utf8'`. + */ + from(string: WithImplicitCoercion, encoding?: BufferEncoding): Buffer; + from(arrayOrString: WithImplicitCoercion | string>): Buffer; + /** + * Creates a new Buffer using the passed {data} + * @param values to create a new Buffer + */ + of(...items: number[]): Buffer; + /** + * Returns a new `Buffer` which is the result of concatenating all the `Buffer` instances in the `list` together. + * + * If the list has no items, or if the `totalLength` is 0, then a new zero-length `Buffer` is returned. + * + * If `totalLength` is not provided, it is calculated from the `Buffer` instances + * in `list` by adding their lengths. + * + * If `totalLength` is provided, it must be an unsigned integer. If the + * combined length of the `Buffer`s in `list` exceeds `totalLength`, the result is + * truncated to `totalLength`. + * + * ```js + * import { Buffer } from 'node:buffer'; + * + * // Create a single `Buffer` from a list of three `Buffer` instances. + * + * const buf1 = Buffer.alloc(10); + * const buf2 = Buffer.alloc(14); + * const buf3 = Buffer.alloc(18); + * const totalLength = buf1.length + buf2.length + buf3.length; + * + * console.log(totalLength); + * // Prints: 42 + * + * const bufA = Buffer.concat([buf1, buf2, buf3], totalLength); + * + * console.log(bufA); + * // Prints: + * console.log(bufA.length); + * // Prints: 42 + * ``` + * + * `Buffer.concat()` may also use the internal `Buffer` pool like `Buffer.allocUnsafe()` does. + * @since v0.7.11 + * @param list List of `Buffer` or {@link Uint8Array} instances to concatenate. + * @param totalLength Total length of the `Buffer` instances in `list` when concatenated. + */ + concat(list: readonly Uint8Array[], totalLength?: number): Buffer; + /** + * Copies the underlying memory of `view` into a new `Buffer`. + * + * ```js + * const u16 = new Uint16Array([0, 0xffff]); + * const buf = Buffer.copyBytesFrom(u16, 1, 1); + * u16[1] = 0; + * console.log(buf.length); // 2 + * console.log(buf[0]); // 255 + * console.log(buf[1]); // 255 + * ``` + * @since v19.8.0 + * @param view The {TypedArray} to copy. + * @param [offset=0] The starting offset within `view`. + * @param [length=view.length - offset] The number of elements from `view` to copy. + */ + copyBytesFrom(view: NodeJS.TypedArray, offset?: number, length?: number): Buffer; + /** + * Allocates a new `Buffer` of `size` bytes. If `fill` is `undefined`, the`Buffer` will be zero-filled. + * + * ```js + * import { Buffer } from 'node:buffer'; + * + * const buf = Buffer.alloc(5); + * + * console.log(buf); + * // Prints: + * ``` + * + * If `size` is larger than {@link constants.MAX_LENGTH} or smaller than 0, `ERR_OUT_OF_RANGE` is thrown. + * + * If `fill` is specified, the allocated `Buffer` will be initialized by calling `buf.fill(fill)`. + * + * ```js + * import { Buffer } from 'node:buffer'; + * + * const buf = Buffer.alloc(5, 'a'); + * + * console.log(buf); + * // Prints: + * ``` + * + * If both `fill` and `encoding` are specified, the allocated `Buffer` will be + * initialized by calling `buf.fill(fill, encoding)`. + * + * ```js + * import { Buffer } from 'node:buffer'; + * + * const buf = Buffer.alloc(11, 'aGVsbG8gd29ybGQ=', 'base64'); + * + * console.log(buf); + * // Prints: + * ``` + * + * Calling `Buffer.alloc()` can be measurably slower than the alternative `Buffer.allocUnsafe()` but ensures that the newly created `Buffer` instance + * contents will never contain sensitive data from previous allocations, including + * data that might not have been allocated for `Buffer`s. + * + * A `TypeError` will be thrown if `size` is not a number. + * @since v5.10.0 + * @param size The desired length of the new `Buffer`. + * @param [fill=0] A value to pre-fill the new `Buffer` with. + * @param [encoding='utf8'] If `fill` is a string, this is its encoding. + */ + alloc(size: number, fill?: string | Uint8Array | number, encoding?: BufferEncoding): Buffer; + /** + * Allocates a new `Buffer` of `size` bytes. If `size` is larger than {@link constants.MAX_LENGTH} or smaller than 0, `ERR_OUT_OF_RANGE` is thrown. + * + * The underlying memory for `Buffer` instances created in this way is _not_ + * _initialized_. The contents of the newly created `Buffer` are unknown and _may contain sensitive data_. Use `Buffer.alloc()` instead to initialize`Buffer` instances with zeroes. + * + * ```js + * import { Buffer } from 'node:buffer'; + * + * const buf = Buffer.allocUnsafe(10); + * + * console.log(buf); + * // Prints (contents may vary): + * + * buf.fill(0); + * + * console.log(buf); + * // Prints: + * ``` + * + * A `TypeError` will be thrown if `size` is not a number. + * + * The `Buffer` module pre-allocates an internal `Buffer` instance of + * size `Buffer.poolSize` that is used as a pool for the fast allocation of new `Buffer` instances created using `Buffer.allocUnsafe()`, `Buffer.from(array)`, + * and `Buffer.concat()` only when `size` is less than `Buffer.poolSize >>> 1` (floor of `Buffer.poolSize` divided by two). + * + * Use of this pre-allocated internal memory pool is a key difference between + * calling `Buffer.alloc(size, fill)` vs. `Buffer.allocUnsafe(size).fill(fill)`. + * Specifically, `Buffer.alloc(size, fill)` will _never_ use the internal `Buffer`pool, while `Buffer.allocUnsafe(size).fill(fill)`_will_ use the internal`Buffer` pool if `size` is less + * than or equal to half `Buffer.poolSize`. The + * difference is subtle but can be important when an application requires the + * additional performance that `Buffer.allocUnsafe()` provides. + * @since v5.10.0 + * @param size The desired length of the new `Buffer`. + */ + allocUnsafe(size: number): Buffer; + /** + * Allocates a new `Buffer` of `size` bytes. If `size` is larger than {@link constants.MAX_LENGTH} or smaller than 0, `ERR_OUT_OF_RANGE` is thrown. A zero-length `Buffer` is created if + * `size` is 0. + * + * The underlying memory for `Buffer` instances created in this way is _not_ + * _initialized_. The contents of the newly created `Buffer` are unknown and _may contain sensitive data_. Use `buf.fill(0)` to initialize + * such `Buffer` instances with zeroes. + * + * When using `Buffer.allocUnsafe()` to allocate new `Buffer` instances, + * allocations under 4 KiB are sliced from a single pre-allocated `Buffer`. This + * allows applications to avoid the garbage collection overhead of creating many + * individually allocated `Buffer` instances. This approach improves both + * performance and memory usage by eliminating the need to track and clean up as + * many individual `ArrayBuffer` objects. + * + * However, in the case where a developer may need to retain a small chunk of + * memory from a pool for an indeterminate amount of time, it may be appropriate + * to create an un-pooled `Buffer` instance using `Buffer.allocUnsafeSlow()` and + * then copying out the relevant bits. + * + * ```js + * import { Buffer } from 'node:buffer'; + * + * // Need to keep around a few small chunks of memory. + * const store = []; + * + * socket.on('readable', () => { + * let data; + * while (null !== (data = readable.read())) { + * // Allocate for retained data. + * const sb = Buffer.allocUnsafeSlow(10); + * + * // Copy the data into the new allocation. + * data.copy(sb, 0, 0, 10); + * + * store.push(sb); + * } + * }); + * ``` + * + * A `TypeError` will be thrown if `size` is not a number. + * @since v5.12.0 + * @param size The desired length of the new `Buffer`. + */ + allocUnsafeSlow(size: number): Buffer; + } + interface Buffer extends Uint8Array { + // see ../buffer.d.ts for implementation shared with all TypeScript versions + + /** + * Returns a new `Buffer` that references the same memory as the original, but + * offset and cropped by the `start` and `end` indices. + * + * This method is not compatible with the `Uint8Array.prototype.slice()`, + * which is a superclass of `Buffer`. To copy the slice, use`Uint8Array.prototype.slice()`. + * + * ```js + * import { Buffer } from 'node:buffer'; + * + * const buf = Buffer.from('buffer'); + * + * const copiedBuf = Uint8Array.prototype.slice.call(buf); + * copiedBuf[0]++; + * console.log(copiedBuf.toString()); + * // Prints: cuffer + * + * console.log(buf.toString()); + * // Prints: buffer + * + * // With buf.slice(), the original buffer is modified. + * const notReallyCopiedBuf = buf.slice(); + * notReallyCopiedBuf[0]++; + * console.log(notReallyCopiedBuf.toString()); + * // Prints: cuffer + * console.log(buf.toString()); + * // Also prints: cuffer (!) + * ``` + * @since v0.3.0 + * @deprecated Use `subarray` instead. + * @param [start=0] Where the new `Buffer` will start. + * @param [end=buf.length] Where the new `Buffer` will end (not inclusive). + */ + slice(start?: number, end?: number): Buffer; + /** + * Returns a new `Buffer` that references the same memory as the original, but + * offset and cropped by the `start` and `end` indices. + * + * Specifying `end` greater than `buf.length` will return the same result as + * that of `end` equal to `buf.length`. + * + * This method is inherited from [`TypedArray.prototype.subarray()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/subarray). + * + * Modifying the new `Buffer` slice will modify the memory in the original `Buffer`because the allocated memory of the two objects overlap. + * + * ```js + * import { Buffer } from 'node:buffer'; + * + * // Create a `Buffer` with the ASCII alphabet, take a slice, and modify one byte + * // from the original `Buffer`. + * + * const buf1 = Buffer.allocUnsafe(26); + * + * for (let i = 0; i < 26; i++) { + * // 97 is the decimal ASCII value for 'a'. + * buf1[i] = i + 97; + * } + * + * const buf2 = buf1.subarray(0, 3); + * + * console.log(buf2.toString('ascii', 0, buf2.length)); + * // Prints: abc + * + * buf1[0] = 33; + * + * console.log(buf2.toString('ascii', 0, buf2.length)); + * // Prints: !bc + * ``` + * + * Specifying negative indexes causes the slice to be generated relative to the + * end of `buf` rather than the beginning. + * + * ```js + * import { Buffer } from 'node:buffer'; + * + * const buf = Buffer.from('buffer'); + * + * console.log(buf.subarray(-6, -1).toString()); + * // Prints: buffe + * // (Equivalent to buf.subarray(0, 5).) + * + * console.log(buf.subarray(-6, -2).toString()); + * // Prints: buff + * // (Equivalent to buf.subarray(0, 4).) + * + * console.log(buf.subarray(-5, -2).toString()); + * // Prints: uff + * // (Equivalent to buf.subarray(1, 4).) + * ``` + * @since v3.0.0 + * @param [start=0] Where the new `Buffer` will start. + * @param [end=buf.length] Where the new `Buffer` will end (not inclusive). + */ + subarray(start?: number, end?: number): Buffer; + } + /** + * @deprecated This is intended for internal use, and will be removed once `@types/node` no longer supports + * TypeScript versions earlier than 5.7. + */ + type NonSharedBuffer = Buffer; + /** + * @deprecated This is intended for internal use, and will be removed once `@types/node` no longer supports + * TypeScript versions earlier than 5.7. + */ + type AllowSharedBuffer = Buffer; + } +} diff --git a/server/api/node_modules/@types/node/ts5.6/compatibility/float16array.d.ts b/server/api/node_modules/@types/node/ts5.6/compatibility/float16array.d.ts new file mode 100644 index 0000000..f148cc4 --- /dev/null +++ b/server/api/node_modules/@types/node/ts5.6/compatibility/float16array.d.ts @@ -0,0 +1,71 @@ +// Interface declaration for Float16Array, required in @types/node v24+. +// These definitions are specific to TS <=5.6. + +// This needs all of the "common" properties/methods of the TypedArrays, +// otherwise the type unions `TypedArray` and `ArrayBufferView` will be +// empty objects. +interface Float16Array extends Pick { + readonly BYTES_PER_ELEMENT: number; + readonly buffer: ArrayBufferLike; + readonly byteLength: number; + readonly byteOffset: number; + readonly length: number; + readonly [Symbol.toStringTag]: "Float16Array"; + at(index: number): number | undefined; + copyWithin(target: number, start: number, end?: number): this; + every(predicate: (value: number, index: number, array: Float16Array) => unknown, thisArg?: any): boolean; + fill(value: number, start?: number, end?: number): this; + filter(predicate: (value: number, index: number, array: Float16Array) => any, thisArg?: any): Float16Array; + find(predicate: (value: number, index: number, obj: Float16Array) => boolean, thisArg?: any): number | undefined; + findIndex(predicate: (value: number, index: number, obj: Float16Array) => boolean, thisArg?: any): number; + findLast( + predicate: (value: number, index: number, array: Float16Array) => value is S, + thisArg?: any, + ): S | undefined; + findLast( + predicate: (value: number, index: number, array: Float16Array) => unknown, + thisArg?: any, + ): number | undefined; + findLastIndex(predicate: (value: number, index: number, array: Float16Array) => unknown, thisArg?: any): number; + forEach(callbackfn: (value: number, index: number, array: Float16Array) => void, thisArg?: any): void; + includes(searchElement: number, fromIndex?: number): boolean; + indexOf(searchElement: number, fromIndex?: number): number; + join(separator?: string): string; + lastIndexOf(searchElement: number, fromIndex?: number): number; + map(callbackfn: (value: number, index: number, array: Float16Array) => number, thisArg?: any): Float16Array; + reduce( + callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float16Array) => number, + ): number; + reduce( + callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float16Array) => number, + initialValue: number, + ): number; + reduce( + callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Float16Array) => U, + initialValue: U, + ): U; + reduceRight( + callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float16Array) => number, + ): number; + reduceRight( + callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float16Array) => number, + initialValue: number, + ): number; + reduceRight( + callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Float16Array) => U, + initialValue: U, + ): U; + reverse(): Float16Array; + set(array: ArrayLike, offset?: number): void; + slice(start?: number, end?: number): Float16Array; + some(predicate: (value: number, index: number, array: Float16Array) => unknown, thisArg?: any): boolean; + sort(compareFn?: (a: number, b: number) => number): this; + subarray(begin?: number, end?: number): Float16Array; + toLocaleString(locales: string | string[], options?: Intl.NumberFormatOptions): string; + toReversed(): Float16Array; + toSorted(compareFn?: (a: number, b: number) => number): Float16Array; + toString(): string; + valueOf(): Float16Array; + with(index: number, value: number): Float16Array; + [index: number]: number; +} diff --git a/server/api/node_modules/@types/node/ts5.6/globals.typedarray.d.ts b/server/api/node_modules/@types/node/ts5.6/globals.typedarray.d.ts new file mode 100644 index 0000000..57a1ab4 --- /dev/null +++ b/server/api/node_modules/@types/node/ts5.6/globals.typedarray.d.ts @@ -0,0 +1,36 @@ +export {}; // Make this a module + +declare global { + namespace NodeJS { + type TypedArray = + | Uint8Array + | Uint8ClampedArray + | Uint16Array + | Uint32Array + | Int8Array + | Int16Array + | Int32Array + | BigUint64Array + | BigInt64Array + | Float16Array + | Float32Array + | Float64Array; + type ArrayBufferView = TypedArray | DataView; + + type NonSharedUint8Array = Uint8Array; + type NonSharedUint8ClampedArray = Uint8ClampedArray; + type NonSharedUint16Array = Uint16Array; + type NonSharedUint32Array = Uint32Array; + type NonSharedInt8Array = Int8Array; + type NonSharedInt16Array = Int16Array; + type NonSharedInt32Array = Int32Array; + type NonSharedBigUint64Array = BigUint64Array; + type NonSharedBigInt64Array = BigInt64Array; + type NonSharedFloat16Array = Float16Array; + type NonSharedFloat32Array = Float32Array; + type NonSharedFloat64Array = Float64Array; + type NonSharedDataView = DataView; + type NonSharedTypedArray = TypedArray; + type NonSharedArrayBufferView = ArrayBufferView; + } +} diff --git a/server/api/node_modules/@types/node/ts5.6/index.d.ts b/server/api/node_modules/@types/node/ts5.6/index.d.ts new file mode 100644 index 0000000..a157660 --- /dev/null +++ b/server/api/node_modules/@types/node/ts5.6/index.d.ts @@ -0,0 +1,117 @@ +/** + * License for programmatically and manually incorporated + * documentation aka. `JSDoc` from https://github.com/nodejs/node/tree/master/doc + * + * Copyright Node.js contributors. All rights reserved. + * 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. + */ + +// NOTE: These definitions support Node.js and TypeScript 5.2 through 5.6. + +// Reference required TypeScript libraries: +/// +/// + +// TypeScript library polyfills required for TypeScript <=5.6: +/// + +// Iterator definitions required for compatibility with TypeScript <5.6: +/// + +// Definitions for Node.js modules specific to TypeScript <=5.6: +/// +/// + +// Definitions for Node.js modules that are not specific to any version of TypeScript: +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// diff --git a/server/api/node_modules/@types/node/ts5.7/compatibility/float16array.d.ts b/server/api/node_modules/@types/node/ts5.7/compatibility/float16array.d.ts new file mode 100644 index 0000000..110b1eb --- /dev/null +++ b/server/api/node_modules/@types/node/ts5.7/compatibility/float16array.d.ts @@ -0,0 +1,72 @@ +// Interface declaration for Float16Array, required in @types/node v24+. +// These definitions are specific to TS 5.7. + +// This needs all of the "common" properties/methods of the TypedArrays, +// otherwise the type unions `TypedArray` and `ArrayBufferView` will be +// empty objects. +interface Float16Array { + readonly BYTES_PER_ELEMENT: number; + readonly buffer: TArrayBuffer; + readonly byteLength: number; + readonly byteOffset: number; + readonly length: number; + readonly [Symbol.toStringTag]: "Float16Array"; + at(index: number): number | undefined; + copyWithin(target: number, start: number, end?: number): this; + entries(): ArrayIterator<[number, number]>; + every(predicate: (value: number, index: number, array: this) => unknown, thisArg?: any): boolean; + fill(value: number, start?: number, end?: number): this; + filter(predicate: (value: number, index: number, array: this) => any, thisArg?: any): Float16Array; + find(predicate: (value: number, index: number, obj: this) => boolean, thisArg?: any): number | undefined; + findIndex(predicate: (value: number, index: number, obj: this) => boolean, thisArg?: any): number; + findLast( + predicate: (value: number, index: number, array: this) => value is S, + thisArg?: any, + ): S | undefined; + findLast(predicate: (value: number, index: number, array: this) => unknown, thisArg?: any): number | undefined; + findLastIndex(predicate: (value: number, index: number, array: this) => unknown, thisArg?: any): number; + forEach(callbackfn: (value: number, index: number, array: this) => void, thisArg?: any): void; + includes(searchElement: number, fromIndex?: number): boolean; + indexOf(searchElement: number, fromIndex?: number): number; + join(separator?: string): string; + keys(): ArrayIterator; + lastIndexOf(searchElement: number, fromIndex?: number): number; + map(callbackfn: (value: number, index: number, array: this) => number, thisArg?: any): Float16Array; + reduce( + callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: this) => number, + ): number; + reduce( + callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: this) => number, + initialValue: number, + ): number; + reduce( + callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: this) => U, + initialValue: U, + ): U; + reduceRight( + callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: this) => number, + ): number; + reduceRight( + callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: this) => number, + initialValue: number, + ): number; + reduceRight( + callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: this) => U, + initialValue: U, + ): U; + reverse(): this; + set(array: ArrayLike, offset?: number): void; + slice(start?: number, end?: number): Float16Array; + some(predicate: (value: number, index: number, array: this) => unknown, thisArg?: any): boolean; + sort(compareFn?: (a: number, b: number) => number): this; + subarray(begin?: number, end?: number): Float16Array; + toLocaleString(locales: string | string[], options?: Intl.NumberFormatOptions): string; + toReversed(): Float16Array; + toSorted(compareFn?: (a: number, b: number) => number): Float16Array; + toString(): string; + valueOf(): this; + values(): ArrayIterator; + with(index: number, value: number): Float16Array; + [Symbol.iterator](): ArrayIterator; + [index: number]: number; +} diff --git a/server/api/node_modules/@types/node/ts5.7/index.d.ts b/server/api/node_modules/@types/node/ts5.7/index.d.ts new file mode 100644 index 0000000..32c541b --- /dev/null +++ b/server/api/node_modules/@types/node/ts5.7/index.d.ts @@ -0,0 +1,117 @@ +/** + * License for programmatically and manually incorporated + * documentation aka. `JSDoc` from https://github.com/nodejs/node/tree/master/doc + * + * Copyright Node.js contributors. All rights reserved. + * 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. + */ + +// NOTE: These definitions support Node.js and TypeScript 5.7. + +// Reference required TypeScript libraries: +/// +/// + +// TypeScript library polyfills required for TypeScript 5.7: +/// + +// Iterator definitions required for compatibility with TypeScript <5.6: +/// + +// Definitions for Node.js modules specific to TypeScript 5.7+: +/// +/// + +// Definitions for Node.js modules that are not specific to any version of TypeScript: +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// diff --git a/server/api/node_modules/@types/node/tty.d.ts b/server/api/node_modules/@types/node/tty.d.ts new file mode 100644 index 0000000..39b4a7f --- /dev/null +++ b/server/api/node_modules/@types/node/tty.d.ts @@ -0,0 +1,225 @@ +declare module "node:tty" { + import * as net from "node:net"; + /** + * The `tty.isatty()` method returns `true` if the given `fd` is associated with + * a TTY and `false` if it is not, including whenever `fd` is not a non-negative + * integer. + * @since v0.5.8 + * @param fd A numeric file descriptor + */ + function isatty(fd: number): boolean; + /** + * Represents the readable side of a TTY. In normal circumstances `process.stdin` will be the only `tty.ReadStream` instance in a Node.js + * process and there should be no reason to create additional instances. + * @since v0.5.8 + */ + class ReadStream extends net.Socket { + constructor(fd: number, options?: net.SocketConstructorOpts); + /** + * A `boolean` that is `true` if the TTY is currently configured to operate as a + * raw device. + * + * This flag is always `false` when a process starts, even if the terminal is + * operating in raw mode. Its value will change with subsequent calls to `setRawMode`. + * @since v0.7.7 + */ + isRaw: boolean; + /** + * Allows configuration of `tty.ReadStream` so that it operates as a raw device. + * + * When in raw mode, input is always available character-by-character, not + * including modifiers. Additionally, all special processing of characters by the + * terminal is disabled, including echoing input + * characters. Ctrl+C will no longer cause a `SIGINT` when + * in this mode. + * @since v0.7.7 + * @param mode If `true`, configures the `tty.ReadStream` to operate as a raw device. If `false`, configures the `tty.ReadStream` to operate in its default mode. The `readStream.isRaw` + * property will be set to the resulting mode. + * @return The read stream instance. + */ + setRawMode(mode: boolean): this; + /** + * A `boolean` that is always `true` for `tty.ReadStream` instances. + * @since v0.5.8 + */ + isTTY: boolean; + } + /** + * -1 - to the left from cursor + * 0 - the entire line + * 1 - to the right from cursor + */ + type Direction = -1 | 0 | 1; + interface WriteStreamEventMap extends net.SocketEventMap { + "resize": []; + } + /** + * Represents the writable side of a TTY. In normal circumstances, `process.stdout` and `process.stderr` will be the only`tty.WriteStream` instances created for a Node.js process and there + * should be no reason to create additional instances. + * @since v0.5.8 + */ + class WriteStream extends net.Socket { + constructor(fd: number); + /** + * `writeStream.clearLine()` clears the current line of this `WriteStream` in a + * direction identified by `dir`. + * @since v0.7.7 + * @param callback Invoked once the operation completes. + * @return `false` if the stream wishes for the calling code to wait for the `'drain'` event to be emitted before continuing to write additional data; otherwise `true`. + */ + clearLine(dir: Direction, callback?: () => void): boolean; + /** + * `writeStream.clearScreenDown()` clears this `WriteStream` from the current + * cursor down. + * @since v0.7.7 + * @param callback Invoked once the operation completes. + * @return `false` if the stream wishes for the calling code to wait for the `'drain'` event to be emitted before continuing to write additional data; otherwise `true`. + */ + clearScreenDown(callback?: () => void): boolean; + /** + * `writeStream.cursorTo()` moves this `WriteStream`'s cursor to the specified + * position. + * @since v0.7.7 + * @param callback Invoked once the operation completes. + * @return `false` if the stream wishes for the calling code to wait for the `'drain'` event to be emitted before continuing to write additional data; otherwise `true`. + */ + cursorTo(x: number, y?: number, callback?: () => void): boolean; + cursorTo(x: number, callback: () => void): boolean; + /** + * `writeStream.moveCursor()` moves this `WriteStream`'s cursor _relative_ to its + * current position. + * @since v0.7.7 + * @param callback Invoked once the operation completes. + * @return `false` if the stream wishes for the calling code to wait for the `'drain'` event to be emitted before continuing to write additional data; otherwise `true`. + */ + moveCursor(dx: number, dy: number, callback?: () => void): boolean; + /** + * Returns: + * + * * `1` for 2, + * * `4` for 16, + * * `8` for 256, + * * `24` for 16,777,216 colors supported. + * + * Use this to determine what colors the terminal supports. Due to the nature of + * colors in terminals it is possible to either have false positives or false + * negatives. It depends on process information and the environment variables that + * may lie about what terminal is used. + * It is possible to pass in an `env` object to simulate the usage of a specific + * terminal. This can be useful to check how specific environment settings behave. + * + * To enforce a specific color support, use one of the below environment settings. + * + * * 2 colors: `FORCE_COLOR = 0` (Disables colors) + * * 16 colors: `FORCE_COLOR = 1` + * * 256 colors: `FORCE_COLOR = 2` + * * 16,777,216 colors: `FORCE_COLOR = 3` + * + * Disabling color support is also possible by using the `NO_COLOR` and `NODE_DISABLE_COLORS` environment variables. + * @since v9.9.0 + * @param [env=process.env] An object containing the environment variables to check. This enables simulating the usage of a specific terminal. + */ + getColorDepth(env?: object): number; + /** + * Returns `true` if the `writeStream` supports at least as many colors as provided + * in `count`. Minimum support is 2 (black and white). + * + * This has the same false positives and negatives as described in `writeStream.getColorDepth()`. + * + * ```js + * process.stdout.hasColors(); + * // Returns true or false depending on if `stdout` supports at least 16 colors. + * process.stdout.hasColors(256); + * // Returns true or false depending on if `stdout` supports at least 256 colors. + * process.stdout.hasColors({ TMUX: '1' }); + * // Returns true. + * process.stdout.hasColors(2 ** 24, { TMUX: '1' }); + * // Returns false (the environment setting pretends to support 2 ** 8 colors). + * ``` + * @since v11.13.0, v10.16.0 + * @param [count=16] The number of colors that are requested (minimum 2). + * @param [env=process.env] An object containing the environment variables to check. This enables simulating the usage of a specific terminal. + */ + hasColors(count?: number): boolean; + hasColors(env?: object): boolean; + hasColors(count: number, env?: object): boolean; + /** + * `writeStream.getWindowSize()` returns the size of the TTY + * corresponding to this `WriteStream`. The array is of the type `[numColumns, numRows]` where `numColumns` and `numRows` represent the number + * of columns and rows in the corresponding TTY. + * @since v0.7.7 + */ + getWindowSize(): [number, number]; + /** + * A `number` specifying the number of columns the TTY currently has. This property + * is updated whenever the `'resize'` event is emitted. + * @since v0.7.7 + */ + columns: number; + /** + * A `number` specifying the number of rows the TTY currently has. This property + * is updated whenever the `'resize'` event is emitted. + * @since v0.7.7 + */ + rows: number; + /** + * A `boolean` that is always `true`. + * @since v0.5.8 + */ + isTTY: boolean; + // #region InternalEventEmitter + addListener( + eventName: E, + listener: (...args: WriteStreamEventMap[E]) => void, + ): this; + addListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + emit(eventName: E, ...args: WriteStreamEventMap[E]): boolean; + emit(eventName: string | symbol, ...args: any[]): boolean; + listenerCount( + eventName: E, + listener?: (...args: WriteStreamEventMap[E]) => void, + ): number; + listenerCount(eventName: string | symbol, listener?: (...args: any[]) => void): number; + listeners(eventName: E): ((...args: WriteStreamEventMap[E]) => void)[]; + listeners(eventName: string | symbol): ((...args: any[]) => void)[]; + off( + eventName: E, + listener: (...args: WriteStreamEventMap[E]) => void, + ): this; + off(eventName: string | symbol, listener: (...args: any[]) => void): this; + on( + eventName: E, + listener: (...args: WriteStreamEventMap[E]) => void, + ): this; + on(eventName: string | symbol, listener: (...args: any[]) => void): this; + once( + eventName: E, + listener: (...args: WriteStreamEventMap[E]) => void, + ): this; + once(eventName: string | symbol, listener: (...args: any[]) => void): this; + prependListener( + eventName: E, + listener: (...args: WriteStreamEventMap[E]) => void, + ): this; + prependListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + prependOnceListener( + eventName: E, + listener: (...args: WriteStreamEventMap[E]) => void, + ): this; + prependOnceListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + rawListeners(eventName: E): ((...args: WriteStreamEventMap[E]) => void)[]; + rawListeners(eventName: string | symbol): ((...args: any[]) => void)[]; + // eslint-disable-next-line @definitelytyped/no-unnecessary-generics + removeAllListeners(eventName?: E): this; + removeAllListeners(eventName?: string | symbol): this; + removeListener( + eventName: E, + listener: (...args: WriteStreamEventMap[E]) => void, + ): this; + removeListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + // #endregion + } +} +declare module "tty" { + export * from "node:tty"; +} diff --git a/server/api/node_modules/@types/node/url.d.ts b/server/api/node_modules/@types/node/url.d.ts new file mode 100644 index 0000000..8803a03 --- /dev/null +++ b/server/api/node_modules/@types/node/url.d.ts @@ -0,0 +1,532 @@ +declare module "node:url" { + import { Blob, NonSharedBuffer } from "node:buffer"; + import { ClientRequestArgs } from "node:http"; + import { ParsedUrlQuery, ParsedUrlQueryInput } from "node:querystring"; + // Input to `url.format` + interface UrlObject { + auth?: string | null | undefined; + hash?: string | null | undefined; + host?: string | null | undefined; + hostname?: string | null | undefined; + href?: string | null | undefined; + pathname?: string | null | undefined; + protocol?: string | null | undefined; + search?: string | null | undefined; + slashes?: boolean | null | undefined; + port?: string | number | null | undefined; + query?: string | null | ParsedUrlQueryInput | undefined; + } + // Output of `url.parse` + interface Url { + auth: string | null; + hash: string | null; + host: string | null; + hostname: string | null; + href: string; + path: string | null; + pathname: string | null; + protocol: string | null; + search: string | null; + slashes: boolean | null; + port: string | null; + query: string | null | ParsedUrlQuery; + } + interface UrlWithParsedQuery extends Url { + query: ParsedUrlQuery; + } + interface UrlWithStringQuery extends Url { + query: string | null; + } + interface FileUrlToPathOptions { + /** + * `true` if the `path` should be return as a windows filepath, `false` for posix, and `undefined` for the system default. + * @default undefined + * @since v22.1.0 + */ + windows?: boolean | undefined; + } + interface PathToFileUrlOptions { + /** + * `true` if the `path` should be return as a windows filepath, `false` for posix, and `undefined` for the system default. + * @default undefined + * @since v22.1.0 + */ + windows?: boolean | undefined; + } + /** + * The `url.parse()` method takes a URL string, parses it, and returns a URL + * object. + * + * A `TypeError` is thrown if `urlString` is not a string. + * + * A `URIError` is thrown if the `auth` property is present but cannot be decoded. + * + * `url.parse()` uses a lenient, non-standard algorithm for parsing URL + * strings. It is prone to security issues such as [host name spoofing](https://hackerone.com/reports/678487) + * and incorrect handling of usernames and passwords. Do not use with untrusted + * input. CVEs are not issued for `url.parse()` vulnerabilities. Use the + * [WHATWG URL](https://nodejs.org/docs/latest-v25.x/api/url.html#the-whatwg-url-api) API instead, for example: + * + * ```js + * function getURL(req) { + * const proto = req.headers['x-forwarded-proto'] || 'https'; + * const host = req.headers['x-forwarded-host'] || req.headers.host || 'example.com'; + * return new URL(req.url || '/', `${proto}://${host}`); + * } + * ``` + * + * The example above assumes well-formed headers are forwarded from a reverse + * proxy to your Node.js server. If you are not using a reverse proxy, you should + * use the example below: + * + * ```js + * function getURL(req) { + * return new URL(req.url || '/', 'https://example.com'); + * } + * ``` + * @since v0.1.25 + * @deprecated Use the WHATWG URL API instead. + * @param urlString The URL string to parse. + * @param parseQueryString If `true`, the `query` property will always + * be set to an object returned by the [`querystring`](https://nodejs.org/docs/latest-v25.x/api/querystring.html) module's `parse()` + * method. If `false`, the `query` property on the returned URL object will be an + * unparsed, undecoded string. **Default:** `false`. + * @param slashesDenoteHost If `true`, the first token after the literal + * string `//` and preceding the next `/` will be interpreted as the `host`. + * For instance, given `//foo/bar`, the result would be + * `{host: 'foo', pathname: '/bar'}` rather than `{pathname: '//foo/bar'}`. + * **Default:** `false`. + */ + function parse( + urlString: string, + parseQueryString?: false, + slashesDenoteHost?: boolean, + ): UrlWithStringQuery; + function parse(urlString: string, parseQueryString: true, slashesDenoteHost?: boolean): UrlWithParsedQuery; + function parse(urlString: string, parseQueryString: boolean, slashesDenoteHost?: boolean): Url; + /** + * The `url.format()` method returns a formatted URL string derived from `urlObject`. + * + * ```js + * import url from 'node:url'; + * url.format({ + * protocol: 'https', + * hostname: 'example.com', + * pathname: '/some/path', + * query: { + * page: 1, + * format: 'json', + * }, + * }); + * + * // => 'https://example.com/some/path?page=1&format=json' + * ``` + * + * If `urlObject` is not an object or a string, `url.format()` will throw a `TypeError`. + * + * The formatting process operates as follows: + * + * * A new empty string `result` is created. + * * If `urlObject.protocol` is a string, it is appended as-is to `result`. + * * Otherwise, if `urlObject.protocol` is not `undefined` and is not a string, an `Error` is thrown. + * * For all string values of `urlObject.protocol` that _do not end_ with an ASCII + * colon (`:`) character, the literal string `:` will be appended to `result`. + * * If either of the following conditions is true, then the literal string `//` will be appended to `result`: + * * `urlObject.slashes` property is true; + * * `urlObject.protocol` begins with `http`, `https`, `ftp`, `gopher`, or `file`; + * * If the value of the `urlObject.auth` property is truthy, and either `urlObject.host` or `urlObject.hostname` are not `undefined`, the value of `urlObject.auth` will be coerced into a string + * and appended to `result` followed by the literal string `@`. + * * If the `urlObject.host` property is `undefined` then: + * * If the `urlObject.hostname` is a string, it is appended to `result`. + * * Otherwise, if `urlObject.hostname` is not `undefined` and is not a string, + * an `Error` is thrown. + * * If the `urlObject.port` property value is truthy, and `urlObject.hostname` is not `undefined`: + * * The literal string `:` is appended to `result`, and + * * The value of `urlObject.port` is coerced to a string and appended to `result`. + * * Otherwise, if the `urlObject.host` property value is truthy, the value of `urlObject.host` is coerced to a string and appended to `result`. + * * If the `urlObject.pathname` property is a string that is not an empty string: + * * If the `urlObject.pathname` _does not start_ with an ASCII forward slash + * (`/`), then the literal string `'/'` is appended to `result`. + * * The value of `urlObject.pathname` is appended to `result`. + * * Otherwise, if `urlObject.pathname` is not `undefined` and is not a string, an `Error` is thrown. + * * If the `urlObject.search` property is `undefined` and if the `urlObject.query`property is an `Object`, the literal string `?` is appended to `result` followed by the output of calling the + * `querystring` module's `stringify()` method passing the value of `urlObject.query`. + * * Otherwise, if `urlObject.search` is a string: + * * If the value of `urlObject.search` _does not start_ with the ASCII question + * mark (`?`) character, the literal string `?` is appended to `result`. + * * The value of `urlObject.search` is appended to `result`. + * * Otherwise, if `urlObject.search` is not `undefined` and is not a string, an `Error` is thrown. + * * If the `urlObject.hash` property is a string: + * * If the value of `urlObject.hash` _does not start_ with the ASCII hash (`#`) + * character, the literal string `#` is appended to `result`. + * * The value of `urlObject.hash` is appended to `result`. + * * Otherwise, if the `urlObject.hash` property is not `undefined` and is not a + * string, an `Error` is thrown. + * * `result` is returned. + * @since v0.1.25 + * @legacy Use the WHATWG URL API instead. + * @param urlObject A URL object (as returned by `url.parse()` or constructed otherwise). If a string, it is converted to an object by passing it to `url.parse()`. + */ + function format(urlObject: URL, options?: URLFormatOptions): string; + /** + * The `url.format()` method returns a formatted URL string derived from `urlObject`. + * + * ```js + * import url from 'node:url'; + * url.format({ + * protocol: 'https', + * hostname: 'example.com', + * pathname: '/some/path', + * query: { + * page: 1, + * format: 'json', + * }, + * }); + * + * // => 'https://example.com/some/path?page=1&format=json' + * ``` + * + * If `urlObject` is not an object or a string, `url.format()` will throw a `TypeError`. + * + * The formatting process operates as follows: + * + * * A new empty string `result` is created. + * * If `urlObject.protocol` is a string, it is appended as-is to `result`. + * * Otherwise, if `urlObject.protocol` is not `undefined` and is not a string, an `Error` is thrown. + * * For all string values of `urlObject.protocol` that _do not end_ with an ASCII + * colon (`:`) character, the literal string `:` will be appended to `result`. + * * If either of the following conditions is true, then the literal string `//` will be appended to `result`: + * * `urlObject.slashes` property is true; + * * `urlObject.protocol` begins with `http`, `https`, `ftp`, `gopher`, or `file`; + * * If the value of the `urlObject.auth` property is truthy, and either `urlObject.host` or `urlObject.hostname` are not `undefined`, the value of `urlObject.auth` will be coerced into a string + * and appended to `result` followed by the literal string `@`. + * * If the `urlObject.host` property is `undefined` then: + * * If the `urlObject.hostname` is a string, it is appended to `result`. + * * Otherwise, if `urlObject.hostname` is not `undefined` and is not a string, + * an `Error` is thrown. + * * If the `urlObject.port` property value is truthy, and `urlObject.hostname` is not `undefined`: + * * The literal string `:` is appended to `result`, and + * * The value of `urlObject.port` is coerced to a string and appended to `result`. + * * Otherwise, if the `urlObject.host` property value is truthy, the value of `urlObject.host` is coerced to a string and appended to `result`. + * * If the `urlObject.pathname` property is a string that is not an empty string: + * * If the `urlObject.pathname` _does not start_ with an ASCII forward slash + * (`/`), then the literal string `'/'` is appended to `result`. + * * The value of `urlObject.pathname` is appended to `result`. + * * Otherwise, if `urlObject.pathname` is not `undefined` and is not a string, an `Error` is thrown. + * * If the `urlObject.search` property is `undefined` and if the `urlObject.query`property is an `Object`, the literal string `?` is appended to `result` followed by the output of calling the + * `querystring` module's `stringify()` method passing the value of `urlObject.query`. + * * Otherwise, if `urlObject.search` is a string: + * * If the value of `urlObject.search` _does not start_ with the ASCII question + * mark (`?`) character, the literal string `?` is appended to `result`. + * * The value of `urlObject.search` is appended to `result`. + * * Otherwise, if `urlObject.search` is not `undefined` and is not a string, an `Error` is thrown. + * * If the `urlObject.hash` property is a string: + * * If the value of `urlObject.hash` _does not start_ with the ASCII hash (`#`) + * character, the literal string `#` is appended to `result`. + * * The value of `urlObject.hash` is appended to `result`. + * * Otherwise, if the `urlObject.hash` property is not `undefined` and is not a + * string, an `Error` is thrown. + * * `result` is returned. + * @since v0.1.25 + * @legacy Use the WHATWG URL API instead. + * @param urlObject A URL object (as returned by `url.parse()` or constructed otherwise). If a string, it is converted to an object by passing it to `url.parse()`. + */ + function format(urlObject: UrlObject | string): string; + /** + * The `url.resolve()` method resolves a target URL relative to a base URL in a + * manner similar to that of a web browser resolving an anchor tag. + * + * ```js + * import url from 'node:url'; + * url.resolve('/one/two/three', 'four'); // '/one/two/four' + * url.resolve('http://example.com/', '/one'); // 'http://example.com/one' + * url.resolve('http://example.com/one', '/two'); // 'http://example.com/two' + * ``` + * + * To achieve the same result using the WHATWG URL API: + * + * ```js + * function resolve(from, to) { + * const resolvedUrl = new URL(to, new URL(from, 'resolve://')); + * if (resolvedUrl.protocol === 'resolve:') { + * // `from` is a relative URL. + * const { pathname, search, hash } = resolvedUrl; + * return pathname + search + hash; + * } + * return resolvedUrl.toString(); + * } + * + * resolve('/one/two/three', 'four'); // '/one/two/four' + * resolve('http://example.com/', '/one'); // 'http://example.com/one' + * resolve('http://example.com/one', '/two'); // 'http://example.com/two' + * ``` + * @since v0.1.25 + * @legacy Use the WHATWG URL API instead. + * @param from The base URL to use if `to` is a relative URL. + * @param to The target URL to resolve. + */ + function resolve(from: string, to: string): string; + /** + * Returns the [Punycode](https://tools.ietf.org/html/rfc5891#section-4.4) ASCII serialization of the `domain`. If `domain` is an + * invalid domain, the empty string is returned. + * + * It performs the inverse operation to {@link domainToUnicode}. + * + * ```js + * import url from 'node:url'; + * + * console.log(url.domainToASCII('español.com')); + * // Prints xn--espaol-zwa.com + * console.log(url.domainToASCII('中文.com')); + * // Prints xn--fiq228c.com + * console.log(url.domainToASCII('xn--iñvalid.com')); + * // Prints an empty string + * ``` + * @since v7.4.0, v6.13.0 + */ + function domainToASCII(domain: string): string; + /** + * Returns the Unicode serialization of the `domain`. If `domain` is an invalid + * domain, the empty string is returned. + * + * It performs the inverse operation to {@link domainToASCII}. + * + * ```js + * import url from 'node:url'; + * + * console.log(url.domainToUnicode('xn--espaol-zwa.com')); + * // Prints español.com + * console.log(url.domainToUnicode('xn--fiq228c.com')); + * // Prints 中文.com + * console.log(url.domainToUnicode('xn--iñvalid.com')); + * // Prints an empty string + * ``` + * @since v7.4.0, v6.13.0 + */ + function domainToUnicode(domain: string): string; + /** + * This function ensures the correct decodings of percent-encoded characters as + * well as ensuring a cross-platform valid absolute path string. + * + * ```js + * import { fileURLToPath } from 'node:url'; + * + * const __filename = fileURLToPath(import.meta.url); + * + * new URL('file:///C:/path/').pathname; // Incorrect: /C:/path/ + * fileURLToPath('file:///C:/path/'); // Correct: C:\path\ (Windows) + * + * new URL('file://nas/foo.txt').pathname; // Incorrect: /foo.txt + * fileURLToPath('file://nas/foo.txt'); // Correct: \\nas\foo.txt (Windows) + * + * new URL('file:///你好.txt').pathname; // Incorrect: /%E4%BD%A0%E5%A5%BD.txt + * fileURLToPath('file:///你好.txt'); // Correct: /你好.txt (POSIX) + * + * new URL('file:///hello world').pathname; // Incorrect: /hello%20world + * fileURLToPath('file:///hello world'); // Correct: /hello world (POSIX) + * ``` + * + * **Security Considerations:** + * + * This function decodes percent-encoded characters, including encoded dot-segments + * (`%2e` as `.` and `%2e%2e` as `..`), and then normalizes the resulting path. + * This means that encoded directory traversal sequences (such as `%2e%2e`) are + * decoded and processed as actual path traversal, even though encoded slashes + * (`%2F`, `%5C`) are correctly rejected. + * + * **Applications must not rely on `fileURLToPath()` alone to prevent directory + * traversal attacks.** Always perform explicit path validation and security checks + * on the returned path value to ensure it remains within expected boundaries + * before using it for file system operations. + * @since v10.12.0 + * @param url The file URL string or URL object to convert to a path. + * @return The fully-resolved platform-specific Node.js file path. + */ + function fileURLToPath(url: string | URL, options?: FileUrlToPathOptions): string; + /** + * Like `url.fileURLToPath(...)` except that instead of returning a string + * representation of the path, a `Buffer` is returned. This conversion is + * helpful when the input URL contains percent-encoded segments that are + * not valid UTF-8 / Unicode sequences. + * + * **Security Considerations:** + * + * This function has the same security considerations as `url.fileURLToPath()`. + * It decodes percent-encoded characters, including encoded dot-segments + * (`%2e` as `.` and `%2e%2e` as `..`), and normalizes the path. **Applications + * must not rely on this function alone to prevent directory traversal attacks.** + * Always perform explicit path validation on the returned buffer value before + * using it for file system operations. + * @since v24.3.0 + * @param url The file URL string or URL object to convert to a path. + * @returns The fully-resolved platform-specific Node.js file path + * as a `Buffer`. + */ + function fileURLToPathBuffer(url: string | URL, options?: FileUrlToPathOptions): NonSharedBuffer; + /** + * This function ensures that `path` is resolved absolutely, and that the URL + * control characters are correctly encoded when converting into a File URL. + * + * ```js + * import { pathToFileURL } from 'node:url'; + * + * new URL('/foo#1', 'file:'); // Incorrect: file:///foo#1 + * pathToFileURL('/foo#1'); // Correct: file:///foo%231 (POSIX) + * + * new URL('/some/path%.c', 'file:'); // Incorrect: file:///some/path%.c + * pathToFileURL('/some/path%.c'); // Correct: file:///some/path%25.c (POSIX) + * ``` + * @since v10.12.0 + * @param path The path to convert to a File URL. + * @return The file URL object. + */ + function pathToFileURL(path: string, options?: PathToFileUrlOptions): URL; + /** + * This utility function converts a URL object into an ordinary options object as + * expected by the `http.request()` and `https.request()` APIs. + * + * ```js + * import { urlToHttpOptions } from 'node:url'; + * const myURL = new URL('https://a:b@測試?abc#foo'); + * + * console.log(urlToHttpOptions(myURL)); + * /* + * { + * protocol: 'https:', + * hostname: 'xn--g6w251d', + * hash: '#foo', + * search: '?abc', + * pathname: '/', + * path: '/?abc', + * href: 'https://a:b@xn--g6w251d/?abc#foo', + * auth: 'a:b' + * } + * + * ``` + * @since v15.7.0, v14.18.0 + * @param url The `WHATWG URL` object to convert to an options object. + * @return Options object + */ + function urlToHttpOptions(url: URL): ClientRequestArgs; + interface URLFormatOptions { + /** + * `true` if the serialized URL string should include the username and password, `false` otherwise. + * @default true + */ + auth?: boolean | undefined; + /** + * `true` if the serialized URL string should include the fragment, `false` otherwise. + * @default true + */ + fragment?: boolean | undefined; + /** + * `true` if the serialized URL string should include the search query, `false` otherwise. + * @default true + */ + search?: boolean | undefined; + /** + * `true` if Unicode characters appearing in the host component of the URL string should be encoded directly as opposed to + * being Punycode encoded. + * @default false + */ + unicode?: boolean | undefined; + } + // #region web types + type URLPatternInput = string | URLPatternInit; + interface URLPatternComponentResult { + input: string; + groups: Record; + } + interface URLPatternInit { + protocol?: string; + username?: string; + password?: string; + hostname?: string; + port?: string; + pathname?: string; + search?: string; + hash?: string; + baseURL?: string; + } + interface URLPatternOptions { + ignoreCase?: boolean; + } + interface URLPatternResult { + inputs: URLPatternInput[]; + protocol: URLPatternComponentResult; + username: URLPatternComponentResult; + password: URLPatternComponentResult; + hostname: URLPatternComponentResult; + port: URLPatternComponentResult; + pathname: URLPatternComponentResult; + search: URLPatternComponentResult; + hash: URLPatternComponentResult; + } + interface URL { + hash: string; + host: string; + hostname: string; + href: string; + readonly origin: string; + password: string; + pathname: string; + port: string; + protocol: string; + search: string; + readonly searchParams: URLSearchParams; + username: string; + toJSON(): string; + } + var URL: { + prototype: URL; + new(url: string | URL, base?: string | URL): URL; + canParse(input: string | URL, base?: string | URL): boolean; + createObjectURL(blob: Blob): string; + parse(input: string | URL, base?: string | URL): URL | null; + revokeObjectURL(id: string): void; + }; + interface URLPattern { + readonly hasRegExpGroups: boolean; + readonly hash: string; + readonly hostname: string; + readonly password: string; + readonly pathname: string; + readonly port: string; + readonly protocol: string; + readonly search: string; + readonly username: string; + exec(input?: URLPatternInput, baseURL?: string | URL): URLPatternResult | null; + test(input?: URLPatternInput, baseURL?: string | URL): boolean; + } + var URLPattern: { + prototype: URLPattern; + new(input: URLPatternInput, baseURL: string | URL, options?: URLPatternOptions): URLPattern; + new(input?: URLPatternInput, options?: URLPatternOptions): URLPattern; + }; + interface URLSearchParams { + readonly size: number; + append(name: string, value: string): void; + delete(name: string, value?: string): void; + get(name: string): string | null; + getAll(name: string): string[]; + has(name: string, value?: string): boolean; + set(name: string, value: string): void; + sort(): void; + forEach(callbackfn: (value: string, key: string, parent: URLSearchParams) => void, thisArg?: any): void; + [Symbol.iterator](): URLSearchParamsIterator<[string, string]>; + entries(): URLSearchParamsIterator<[string, string]>; + keys(): URLSearchParamsIterator; + values(): URLSearchParamsIterator; + } + var URLSearchParams: { + prototype: URLSearchParams; + new(init?: string[][] | Record | string | URLSearchParams): URLSearchParams; + }; + interface URLSearchParamsIterator extends NodeJS.Iterator { + [Symbol.iterator](): URLSearchParamsIterator; + } + // #endregion +} +declare module "url" { + export * from "node:url"; +} diff --git a/server/api/node_modules/@types/node/util.d.ts b/server/api/node_modules/@types/node/util.d.ts new file mode 100644 index 0000000..90f12aa --- /dev/null +++ b/server/api/node_modules/@types/node/util.d.ts @@ -0,0 +1,1677 @@ +declare module "node:util" { + export * as types from "node:util/types"; + export type InspectStyle = + | "special" + | "number" + | "bigint" + | "boolean" + | "undefined" + | "null" + | "string" + | "symbol" + | "date" + | "name" + | "regexp" + | "module"; + export interface InspectStyles extends Record string)> { + regexp: { + (value: string): string; + colors: InspectColor[]; + }; + } + export type InspectColorModifier = + | "reset" + | "bold" + | "dim" + | "italic" + | "underline" + | "blink" + | "inverse" + | "hidden" + | "strikethrough" + | "doubleunderline"; + export type InspectColorForeground = + | "black" + | "red" + | "green" + | "yellow" + | "blue" + | "magenta" + | "cyan" + | "white" + | "gray" + | "redBright" + | "greenBright" + | "yellowBright" + | "blueBright" + | "magentaBright" + | "cyanBright" + | "whiteBright"; + export type InspectColorBackground = `bg${Capitalize}`; + export type InspectColor = InspectColorModifier | InspectColorForeground | InspectColorBackground; + export interface InspectColors extends Record {} + export interface InspectOptions { + /** + * If `true`, object's non-enumerable symbols and properties are included in the formatted result. + * `WeakMap` and `WeakSet` entries are also included as well as user defined prototype properties (excluding method properties). + * @default false + */ + showHidden?: boolean | undefined; + /** + * Specifies the number of times to recurse while formatting object. + * This is useful for inspecting large objects. + * To recurse up to the maximum call stack size pass `Infinity` or `null`. + * @default 2 + */ + depth?: number | null | undefined; + /** + * If `true`, the output is styled with ANSI color codes. Colors are customizable. + */ + colors?: boolean | undefined; + /** + * If `false`, `[util.inspect.custom](depth, opts, inspect)` functions are not invoked. + * @default true + */ + customInspect?: boolean | undefined; + /** + * If `true`, `Proxy` inspection includes the target and handler objects. + * @default false + */ + showProxy?: boolean | undefined; + /** + * Specifies the maximum number of `Array`, `TypedArray`, `WeakMap`, and `WeakSet` elements + * to include when formatting. Set to `null` or `Infinity` to show all elements. + * Set to `0` or negative to show no elements. + * @default 100 + */ + maxArrayLength?: number | null | undefined; + /** + * Specifies the maximum number of characters to + * include when formatting. Set to `null` or `Infinity` to show all elements. + * Set to `0` or negative to show no characters. + * @default 10000 + */ + maxStringLength?: number | null | undefined; + /** + * The length at which input values are split across multiple lines. + * Set to `Infinity` to format the input as a single line + * (in combination with `compact` set to `true` or any number >= `1`). + * @default 80 + */ + breakLength?: number | undefined; + /** + * Setting this to `false` causes each object key + * to be displayed on a new line. It will also add new lines to text that is + * longer than `breakLength`. If set to a number, the most `n` inner elements + * are united on a single line as long as all properties fit into + * `breakLength`. Short array elements are also grouped together. Note that no + * text will be reduced below 16 characters, no matter the `breakLength` size. + * For more information, see the example below. + * @default true + */ + compact?: boolean | number | undefined; + /** + * If set to `true` or a function, all properties of an object, and `Set` and `Map` + * entries are sorted in the resulting string. + * If set to `true` the default sort is used. + * If set to a function, it is used as a compare function. + */ + sorted?: boolean | ((a: string, b: string) => number) | undefined; + /** + * If set to `true`, getters are going to be + * inspected as well. If set to `'get'` only getters without setter are going + * to be inspected. If set to `'set'` only getters having a corresponding + * setter are going to be inspected. This might cause side effects depending on + * the getter function. + * @default false + */ + getters?: "get" | "set" | boolean | undefined; + /** + * If set to `true`, an underscore is used to separate every three digits in all bigints and numbers. + * @default false + */ + numericSeparator?: boolean | undefined; + } + export interface InspectContext extends Required { + stylize(text: string, styleType: InspectStyle): string; + } + import _inspect = inspect; + export interface Inspectable { + [inspect.custom](depth: number, options: InspectContext, inspect: typeof _inspect): any; + } + // TODO: Remove these in a future major + /** @deprecated Use `InspectStyle` instead. */ + export type Style = Exclude; + /** @deprecated Use the `Inspectable` interface instead. */ + export type CustomInspectFunction = (depth: number, options: InspectContext) => any; + /** @deprecated Use `InspectContext` instead. */ + export interface InspectOptionsStylized extends InspectContext {} + /** @deprecated Use `InspectColorModifier` instead. */ + export type Modifiers = InspectColorModifier; + /** @deprecated Use `InspectColorForeground` instead. */ + export type ForegroundColors = InspectColorForeground; + /** @deprecated Use `InspectColorBackground` instead. */ + export type BackgroundColors = InspectColorBackground; + export interface CallSiteObject { + /** + * Returns the name of the function associated with this call site. + */ + functionName: string; + /** + * Returns the name of the resource that contains the script for the + * function for this call site. + */ + scriptName: string; + /** + * Returns the unique id of the script, as in Chrome DevTools protocol + * [`Runtime.ScriptId`](https://chromedevtools.github.io/devtools-protocol/1-3/Runtime/#type-ScriptId). + * @since v22.14.0 + */ + scriptId: string; + /** + * Returns the number, 1-based, of the line for the associate function call. + */ + lineNumber: number; + /** + * Returns the 1-based column offset on the line for the associated function call. + */ + columnNumber: number; + } + export type DiffEntry = [operation: -1 | 0 | 1, value: string]; + /** + * `util.diff()` compares two string or array values and returns an array of difference entries. + * It uses the Myers diff algorithm to compute minimal differences, which is the same algorithm + * used internally by assertion error messages. + * + * If the values are equal, an empty array is returned. + * + * ```js + * const { diff } = require('node:util'); + * + * // Comparing strings + * const actualString = '12345678'; + * const expectedString = '12!!5!7!'; + * console.log(diff(actualString, expectedString)); + * // [ + * // [0, '1'], + * // [0, '2'], + * // [1, '3'], + * // [1, '4'], + * // [-1, '!'], + * // [-1, '!'], + * // [0, '5'], + * // [1, '6'], + * // [-1, '!'], + * // [0, '7'], + * // [1, '8'], + * // [-1, '!'], + * // ] + * // Comparing arrays + * const actualArray = ['1', '2', '3']; + * const expectedArray = ['1', '3', '4']; + * console.log(diff(actualArray, expectedArray)); + * // [ + * // [0, '1'], + * // [1, '2'], + * // [0, '3'], + * // [-1, '4'], + * // ] + * // Equal values return empty array + * console.log(diff('same', 'same')); + * // [] + * ``` + * @since v22.15.0 + * @experimental + * @param actual The first value to compare + * @param expected The second value to compare + * @returns An array of difference entries. Each entry is an array with two elements: + * * Index 0: `number` Operation code: `-1` for delete, `0` for no-op/unchanged, `1` for insert + * * Index 1: `string` The value associated with the operation + */ + export function diff(actual: string | readonly string[], expected: string | readonly string[]): DiffEntry[]; + /** + * The `util.format()` method returns a formatted string using the first argument + * as a `printf`-like format string which can contain zero or more format + * specifiers. Each specifier is replaced with the converted value from the + * corresponding argument. Supported specifiers are: + * + * If a specifier does not have a corresponding argument, it is not replaced: + * + * ```js + * util.format('%s:%s', 'foo'); + * // Returns: 'foo:%s' + * ``` + * + * Values that are not part of the format string are formatted using `util.inspect()` if their type is not `string`. + * + * If there are more arguments passed to the `util.format()` method than the + * number of specifiers, the extra arguments are concatenated to the returned + * string, separated by spaces: + * + * ```js + * util.format('%s:%s', 'foo', 'bar', 'baz'); + * // Returns: 'foo:bar baz' + * ``` + * + * If the first argument does not contain a valid format specifier, `util.format()` returns a string that is the concatenation of all arguments separated by spaces: + * + * ```js + * util.format(1, 2, 3); + * // Returns: '1 2 3' + * ``` + * + * If only one argument is passed to `util.format()`, it is returned as it is + * without any formatting: + * + * ```js + * util.format('%% %s'); + * // Returns: '%% %s' + * ``` + * + * `util.format()` is a synchronous method that is intended as a debugging tool. + * Some input values can have a significant performance overhead that can block the + * event loop. Use this function with care and never in a hot code path. + * @since v0.5.3 + * @param format A `printf`-like format string. + */ + export function format(format?: any, ...param: any[]): string; + /** + * This function is identical to {@link format}, except in that it takes + * an `inspectOptions` argument which specifies options that are passed along to {@link inspect}. + * + * ```js + * util.formatWithOptions({ colors: true }, 'See object %O', { foo: 42 }); + * // Returns 'See object { foo: 42 }', where `42` is colored as a number + * // when printed to a terminal. + * ``` + * @since v10.0.0 + */ + export function formatWithOptions(inspectOptions: InspectOptions, format?: any, ...param: any[]): string; + export interface GetCallSitesOptions { + /** + * Reconstruct the original location in the stacktrace from the source-map. + * Enabled by default with the flag `--enable-source-maps`. + */ + sourceMap?: boolean | undefined; + } + /** + * Returns an array of call site objects containing the stack of + * the caller function. + * + * Unlike accessing an `error.stack`, the result returned from this API is not + * interfered with `Error.prepareStackTrace`. + * + * ```js + * import { getCallSites } from 'node:util'; + * + * function exampleFunction() { + * const callSites = getCallSites(); + * + * console.log('Call Sites:'); + * callSites.forEach((callSite, index) => { + * console.log(`CallSite ${index + 1}:`); + * console.log(`Function Name: ${callSite.functionName}`); + * console.log(`Script Name: ${callSite.scriptName}`); + * console.log(`Line Number: ${callSite.lineNumber}`); + * console.log(`Column Number: ${callSite.columnNumber}`); + * }); + * // CallSite 1: + * // Function Name: exampleFunction + * // Script Name: /home/example.js + * // Line Number: 5 + * // Column Number: 26 + * + * // CallSite 2: + * // Function Name: anotherFunction + * // Script Name: /home/example.js + * // Line Number: 22 + * // Column Number: 3 + * + * // ... + * } + * + * // A function to simulate another stack layer + * function anotherFunction() { + * exampleFunction(); + * } + * + * anotherFunction(); + * ``` + * + * It is possible to reconstruct the original locations by setting the option `sourceMap` to `true`. + * If the source map is not available, the original location will be the same as the current location. + * When the `--enable-source-maps` flag is enabled, for example when using `--experimental-transform-types`, + * `sourceMap` will be true by default. + * + * ```ts + * import { getCallSites } from 'node:util'; + * + * interface Foo { + * foo: string; + * } + * + * const callSites = getCallSites({ sourceMap: true }); + * + * // With sourceMap: + * // Function Name: '' + * // Script Name: example.js + * // Line Number: 7 + * // Column Number: 26 + * + * // Without sourceMap: + * // Function Name: '' + * // Script Name: example.js + * // Line Number: 2 + * // Column Number: 26 + * ``` + * @param frameCount Number of frames to capture as call site objects. + * **Default:** `10`. Allowable range is between 1 and 200. + * @return An array of call site objects + * @since v22.9.0 + */ + export function getCallSites(frameCount?: number, options?: GetCallSitesOptions): CallSiteObject[]; + export function getCallSites(options: GetCallSitesOptions): CallSiteObject[]; + /** + * Returns the string name for a numeric error code that comes from a Node.js API. + * The mapping between error codes and error names is platform-dependent. + * See `Common System Errors` for the names of common errors. + * + * ```js + * fs.access('file/that/does/not/exist', (err) => { + * const name = util.getSystemErrorName(err.errno); + * console.error(name); // ENOENT + * }); + * ``` + * @since v9.7.0 + */ + export function getSystemErrorName(err: number): string; + /** + * Enable or disable printing a stack trace on `SIGINT`. The API is only available on the main thread. + * @since 24.6.0 + */ + export function setTraceSigInt(enable: boolean): void; + /** + * Returns a Map of all system error codes available from the Node.js API. + * The mapping between error codes and error names is platform-dependent. + * See `Common System Errors` for the names of common errors. + * + * ```js + * fs.access('file/that/does/not/exist', (err) => { + * const errorMap = util.getSystemErrorMap(); + * const name = errorMap.get(err.errno); + * console.error(name); // ENOENT + * }); + * ``` + * @since v16.0.0, v14.17.0 + */ + export function getSystemErrorMap(): Map; + /** + * Returns the string message for a numeric error code that comes from a Node.js + * API. + * The mapping between error codes and string messages is platform-dependent. + * + * ```js + * fs.access('file/that/does/not/exist', (err) => { + * const message = util.getSystemErrorMessage(err.errno); + * console.error(message); // no such file or directory + * }); + * ``` + * @since v22.12.0 + */ + export function getSystemErrorMessage(err: number): string; + /** + * Returns the `string` after replacing any surrogate code points + * (or equivalently, any unpaired surrogate code units) with the + * Unicode "replacement character" U+FFFD. + * @since v16.8.0, v14.18.0 + */ + export function toUSVString(string: string): string; + /** + * Creates and returns an `AbortController` instance whose `AbortSignal` is marked + * as transferable and can be used with `structuredClone()` or `postMessage()`. + * @since v18.11.0 + * @returns A transferable AbortController + */ + export function transferableAbortController(): AbortController; + /** + * Marks the given `AbortSignal` as transferable so that it can be used with`structuredClone()` and `postMessage()`. + * + * ```js + * const signal = transferableAbortSignal(AbortSignal.timeout(100)); + * const channel = new MessageChannel(); + * channel.port2.postMessage(signal, [signal]); + * ``` + * @since v18.11.0 + * @param signal The AbortSignal + * @returns The same AbortSignal + */ + export function transferableAbortSignal(signal: AbortSignal): AbortSignal; + /** + * Listens to abort event on the provided `signal` and returns a promise that resolves when the `signal` is aborted. + * If `resource` is provided, it weakly references the operation's associated object, + * so if `resource` is garbage collected before the `signal` aborts, + * then returned promise shall remain pending. + * This prevents memory leaks in long-running or non-cancelable operations. + * + * ```js + * import { aborted } from 'node:util'; + * + * // Obtain an object with an abortable signal, like a custom resource or operation. + * const dependent = obtainSomethingAbortable(); + * + * // Pass `dependent` as the resource, indicating the promise should only resolve + * // if `dependent` is still in memory when the signal is aborted. + * aborted(dependent.signal, dependent).then(() => { + * // This code runs when `dependent` is aborted. + * console.log('Dependent resource was aborted.'); + * }); + * + * // Simulate an event that triggers the abort. + * dependent.on('event', () => { + * dependent.abort(); // This will cause the `aborted` promise to resolve. + * }); + * ``` + * @since v19.7.0 + * @param resource Any non-null object tied to the abortable operation and held weakly. + * If `resource` is garbage collected before the `signal` aborts, the promise remains pending, + * allowing Node.js to stop tracking it. + * This helps prevent memory leaks in long-running or non-cancelable operations. + */ + export function aborted(signal: AbortSignal, resource: any): Promise; + /** + * The `util.inspect()` method returns a string representation of `object` that is + * intended for debugging. The output of `util.inspect` may change at any time + * and should not be depended upon programmatically. Additional `options` may be + * passed that alter the result. + * `util.inspect()` will use the constructor's name and/or `Symbol.toStringTag` + * property to make an identifiable tag for an inspected value. + * + * ```js + * class Foo { + * get [Symbol.toStringTag]() { + * return 'bar'; + * } + * } + * + * class Bar {} + * + * const baz = Object.create(null, { [Symbol.toStringTag]: { value: 'foo' } }); + * + * util.inspect(new Foo()); // 'Foo [bar] {}' + * util.inspect(new Bar()); // 'Bar {}' + * util.inspect(baz); // '[foo] {}' + * ``` + * + * Circular references point to their anchor by using a reference index: + * + * ```js + * import { inspect } from 'node:util'; + * + * const obj = {}; + * obj.a = [obj]; + * obj.b = {}; + * obj.b.inner = obj.b; + * obj.b.obj = obj; + * + * console.log(inspect(obj)); + * // { + * // a: [ [Circular *1] ], + * // b: { inner: [Circular *2], obj: [Circular *1] } + * // } + * ``` + * + * The following example inspects all properties of the `util` object: + * + * ```js + * import util from 'node:util'; + * + * console.log(util.inspect(util, { showHidden: true, depth: null })); + * ``` + * + * The following example highlights the effect of the `compact` option: + * + * ```js + * import { inspect } from 'node:util'; + * + * const o = { + * a: [1, 2, [[ + * 'Lorem ipsum dolor sit amet,\nconsectetur adipiscing elit, sed do ' + + * 'eiusmod \ntempor incididunt ut labore et dolore magna aliqua.', + * 'test', + * 'foo']], 4], + * b: new Map([['za', 1], ['zb', 'test']]), + * }; + * console.log(inspect(o, { compact: true, depth: 5, breakLength: 80 })); + * + * // { a: + * // [ 1, + * // 2, + * // [ [ 'Lorem ipsum dolor sit amet,\nconsectetur [...]', // A long line + * // 'test', + * // 'foo' ] ], + * // 4 ], + * // b: Map(2) { 'za' => 1, 'zb' => 'test' } } + * + * // Setting `compact` to false or an integer creates more reader friendly output. + * console.log(inspect(o, { compact: false, depth: 5, breakLength: 80 })); + * + * // { + * // a: [ + * // 1, + * // 2, + * // [ + * // [ + * // 'Lorem ipsum dolor sit amet,\n' + + * // 'consectetur adipiscing elit, sed do eiusmod \n' + + * // 'tempor incididunt ut labore et dolore magna aliqua.', + * // 'test', + * // 'foo' + * // ] + * // ], + * // 4 + * // ], + * // b: Map(2) { + * // 'za' => 1, + * // 'zb' => 'test' + * // } + * // } + * + * // Setting `breakLength` to e.g. 150 will print the "Lorem ipsum" text in a + * // single line. + * ``` + * + * The `showHidden` option allows `WeakMap` and `WeakSet` entries to be + * inspected. If there are more entries than `maxArrayLength`, there is no + * guarantee which entries are displayed. That means retrieving the same + * `WeakSet` entries twice may result in different output. Furthermore, entries + * with no remaining strong references may be garbage collected at any time. + * + * ```js + * import { inspect } from 'node:util'; + * + * const obj = { a: 1 }; + * const obj2 = { b: 2 }; + * const weakSet = new WeakSet([obj, obj2]); + * + * console.log(inspect(weakSet, { showHidden: true })); + * // WeakSet { { a: 1 }, { b: 2 } } + * ``` + * + * The `sorted` option ensures that an object's property insertion order does not + * impact the result of `util.inspect()`. + * + * ```js + * import { inspect } from 'node:util'; + * import assert from 'node:assert'; + * + * const o1 = { + * b: [2, 3, 1], + * a: '`a` comes before `b`', + * c: new Set([2, 3, 1]), + * }; + * console.log(inspect(o1, { sorted: true })); + * // { a: '`a` comes before `b`', b: [ 2, 3, 1 ], c: Set(3) { 1, 2, 3 } } + * console.log(inspect(o1, { sorted: (a, b) => b.localeCompare(a) })); + * // { c: Set(3) { 3, 2, 1 }, b: [ 2, 3, 1 ], a: '`a` comes before `b`' } + * + * const o2 = { + * c: new Set([2, 1, 3]), + * a: '`a` comes before `b`', + * b: [2, 3, 1], + * }; + * assert.strict.equal( + * inspect(o1, { sorted: true }), + * inspect(o2, { sorted: true }), + * ); + * ``` + * + * The `numericSeparator` option adds an underscore every three digits to all + * numbers. + * + * ```js + * import { inspect } from 'node:util'; + * + * const thousand = 1000; + * const million = 1000000; + * const bigNumber = 123456789n; + * const bigDecimal = 1234.12345; + * + * console.log(inspect(thousand, { numericSeparator: true })); + * // 1_000 + * console.log(inspect(million, { numericSeparator: true })); + * // 1_000_000 + * console.log(inspect(bigNumber, { numericSeparator: true })); + * // 123_456_789n + * console.log(inspect(bigDecimal, { numericSeparator: true })); + * // 1_234.123_45 + * ``` + * + * `util.inspect()` is a synchronous method intended for debugging. Its maximum + * output length is approximately 128 MiB. Inputs that result in longer output will + * be truncated. + * @since v0.3.0 + * @param object Any JavaScript primitive or `Object`. + * @return The representation of `object`. + */ + export function inspect(object: any, showHidden?: boolean, depth?: number | null, color?: boolean): string; + export function inspect(object: any, options?: InspectOptions): string; + export namespace inspect { + const custom: unique symbol; + let colors: InspectColors; + let styles: InspectStyles; + let defaultOptions: InspectOptions; + let replDefaults: InspectOptions; + } + /** + * Alias for [`Array.isArray()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray). + * + * Returns `true` if the given `object` is an `Array`. Otherwise, returns `false`. + * + * ```js + * import util from 'node:util'; + * + * util.isArray([]); + * // Returns: true + * util.isArray(new Array()); + * // Returns: true + * util.isArray({}); + * // Returns: false + * ``` + * @since v0.6.0 + * @deprecated Since v4.0.0 - Use `isArray` instead. + */ + export function isArray(object: unknown): object is unknown[]; + /** + * Usage of `util.inherits()` is discouraged. Please use the ES6 `class` and + * `extends` keywords to get language level inheritance support. Also note + * that the two styles are [semantically incompatible](https://github.com/nodejs/node/issues/4179). + * + * Inherit the prototype methods from one + * [constructor](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/constructor) into another. The + * prototype of `constructor` will be set to a new object created from + * `superConstructor`. + * + * This mainly adds some input validation on top of + * `Object.setPrototypeOf(constructor.prototype, superConstructor.prototype)`. + * As an additional convenience, `superConstructor` will be accessible + * through the `constructor.super_` property. + * + * ```js + * const util = require('node:util'); + * const EventEmitter = require('node:events'); + * + * function MyStream() { + * EventEmitter.call(this); + * } + * + * util.inherits(MyStream, EventEmitter); + * + * MyStream.prototype.write = function(data) { + * this.emit('data', data); + * }; + * + * const stream = new MyStream(); + * + * console.log(stream instanceof EventEmitter); // true + * console.log(MyStream.super_ === EventEmitter); // true + * + * stream.on('data', (data) => { + * console.log(`Received data: "${data}"`); + * }); + * stream.write('It works!'); // Received data: "It works!" + * ``` + * + * ES6 example using `class` and `extends`: + * + * ```js + * import EventEmitter from 'node:events'; + * + * class MyStream extends EventEmitter { + * write(data) { + * this.emit('data', data); + * } + * } + * + * const stream = new MyStream(); + * + * stream.on('data', (data) => { + * console.log(`Received data: "${data}"`); + * }); + * stream.write('With ES6'); + * ``` + * @since v0.3.0 + * @legacy Use ES2015 class syntax and `extends` keyword instead. + */ + export function inherits(constructor: unknown, superConstructor: unknown): void; + /** + * The `util.convertProcessSignalToExitCode()` method converts a signal name to its + * corresponding POSIX exit code. Following the POSIX standard, the exit code + * for a process terminated by a signal is calculated as `128 + signal number`. + * + * If `signal` is not a valid signal name, then an error will be thrown. See + * [`signal(7)`](https://man7.org/linux/man-pages/man7/signal.7.html) for a list of valid signals. + * + * ```js + * import { convertProcessSignalToExitCode } from 'node:util'; + * + * console.log(convertProcessSignalToExitCode('SIGTERM')); // 143 (128 + 15) + * console.log(convertProcessSignalToExitCode('SIGKILL')); // 137 (128 + 9) + * ``` + * + * This is particularly useful when working with processes to determine + * the exit code based on the signal that terminated the process. + * @since v25.4.0 + * @param signal A signal name (e.g. `'SIGTERM'`) + * @returns The exit code corresponding to `signal` + */ + export function convertProcessSignalToExitCode(signal: NodeJS.Signals): number; + export type DebugLoggerFunction = (msg: string, ...param: unknown[]) => void; + export interface DebugLogger extends DebugLoggerFunction { + /** + * The `util.debuglog().enabled` getter is used to create a test that can be used + * in conditionals based on the existence of the `NODE_DEBUG` environment variable. + * If the `section` name appears within the value of that environment variable, + * then the returned value will be `true`. If not, then the returned value will be + * `false`. + * + * ```js + * import { debuglog } from 'node:util'; + * const enabled = debuglog('foo').enabled; + * if (enabled) { + * console.log('hello from foo [%d]', 123); + * } + * ``` + * + * If this program is run with `NODE_DEBUG=foo` in the environment, then it will + * output something like: + * + * ```console + * hello from foo [123] + * ``` + */ + enabled: boolean; + } + /** + * The `util.debuglog()` method is used to create a function that conditionally + * writes debug messages to `stderr` based on the existence of the `NODE_DEBUG` + * environment variable. If the `section` name appears within the value of that + * environment variable, then the returned function operates similar to + * `console.error()`. If not, then the returned function is a no-op. + * + * ```js + * import { debuglog } from 'node:util'; + * const log = debuglog('foo'); + * + * log('hello from foo [%d]', 123); + * ``` + * + * If this program is run with `NODE_DEBUG=foo` in the environment, then + * it will output something like: + * + * ```console + * FOO 3245: hello from foo [123] + * ``` + * + * where `3245` is the process id. If it is not run with that + * environment variable set, then it will not print anything. + * + * The `section` supports wildcard also: + * + * ```js + * import { debuglog } from 'node:util'; + * const log = debuglog('foo-bar'); + * + * log('hi there, it\'s foo-bar [%d]', 2333); + * ``` + * + * if it is run with `NODE_DEBUG=foo*` in the environment, then it will output + * something like: + * + * ```console + * FOO-BAR 3257: hi there, it's foo-bar [2333] + * ``` + * + * Multiple comma-separated `section` names may be specified in the `NODE_DEBUG` + * environment variable: `NODE_DEBUG=fs,net,tls`. + * + * The optional `callback` argument can be used to replace the logging function + * with a different function that doesn't have any initialization or + * unnecessary wrapping. + * + * ```js + * import { debuglog } from 'node:util'; + * let log = debuglog('internals', (debug) => { + * // Replace with a logging function that optimizes out + * // testing if the section is enabled + * log = debug; + * }); + * ``` + * @since v0.11.3 + * @param section A string identifying the portion of the application for which the `debuglog` function is being created. + * @param callback A callback invoked the first time the logging function is called with a function argument that is a more optimized logging function. + * @return The logging function + */ + export function debuglog(section: string, callback?: (fn: DebugLoggerFunction) => void): DebugLogger; + export { debuglog as debug }; + export interface DeprecateOptions { + /** + * When false do not change the prototype of object + * while emitting the deprecation warning. + * @since v25.2.0 + * @default true + */ + modifyPrototype?: boolean | undefined; + } + /** + * The `util.deprecate()` method wraps `fn` (which may be a function or class) in + * such a way that it is marked as deprecated. + * + * ```js + * import { deprecate } from 'node:util'; + * + * export const obsoleteFunction = deprecate(() => { + * // Do something here. + * }, 'obsoleteFunction() is deprecated. Use newShinyFunction() instead.'); + * ``` + * + * When called, `util.deprecate()` will return a function that will emit a + * `DeprecationWarning` using the `'warning'` event. The warning will + * be emitted and printed to `stderr` the first time the returned function is + * called. After the warning is emitted, the wrapped function is called without + * emitting a warning. + * + * If the same optional `code` is supplied in multiple calls to `util.deprecate()`, + * the warning will be emitted only once for that `code`. + * + * ```js + * import { deprecate } from 'node:util'; + * + * const fn1 = deprecate( + * () => 'a value', + * 'deprecation message', + * 'DEP0001', + * ); + * const fn2 = deprecate( + * () => 'a different value', + * 'other dep message', + * 'DEP0001', + * ); + * fn1(); // Emits a deprecation warning with code DEP0001 + * fn2(); // Does not emit a deprecation warning because it has the same code + * ``` + * + * If either the `--no-deprecation` or `--no-warnings` command-line flags are + * used, or if the `process.noDeprecation` property is set to `true` _prior_ to + * the first deprecation warning, the `util.deprecate()` method does nothing. + * + * If the `--trace-deprecation` or `--trace-warnings` command-line flags are set, + * or the `process.traceDeprecation` property is set to `true`, a warning and a + * stack trace are printed to `stderr` the first time the deprecated function is + * called. + * + * If the `--throw-deprecation` command-line flag is set, or the + * `process.throwDeprecation` property is set to `true`, then an exception will be + * thrown when the deprecated function is called. + * + * The `--throw-deprecation` command-line flag and `process.throwDeprecation` + * property take precedence over `--trace-deprecation` and + * `process.traceDeprecation`. + * @since v0.8.0 + * @param fn The function that is being deprecated. + * @param msg A warning message to display when the deprecated function is invoked. + * @param code A deprecation code. See the `list of deprecated APIs` for a list of codes. + * @return The deprecated function wrapped to emit a warning. + */ + export function deprecate(fn: T, msg: string, code?: string, options?: DeprecateOptions): T; + export interface IsDeepStrictEqualOptions { + /** + * If `true`, prototype and constructor + * comparison is skipped during deep strict equality check. + * @since v24.9.0 + * @default false + */ + skipPrototype?: boolean | undefined; + } + /** + * Returns `true` if there is deep strict equality between `val1` and `val2`. + * Otherwise, returns `false`. + * + * See `assert.deepStrictEqual()` for more information about deep strict + * equality. + * @since v9.0.0 + */ + export function isDeepStrictEqual(val1: unknown, val2: unknown, options?: IsDeepStrictEqualOptions): boolean; + /** + * Returns `str` with any ANSI escape codes removed. + * + * ```js + * console.log(util.stripVTControlCharacters('\u001B[4mvalue\u001B[0m')); + * // Prints "value" + * ``` + * @since v16.11.0 + */ + export function stripVTControlCharacters(str: string): string; + /** + * Takes an `async` function (or a function that returns a `Promise`) and returns a + * function following the error-first callback style, i.e. taking + * an `(err, value) => ...` callback as the last argument. In the callback, the + * first argument will be the rejection reason (or `null` if the `Promise` + * resolved), and the second argument will be the resolved value. + * + * ```js + * import { callbackify } from 'node:util'; + * + * async function fn() { + * return 'hello world'; + * } + * const callbackFunction = callbackify(fn); + * + * callbackFunction((err, ret) => { + * if (err) throw err; + * console.log(ret); + * }); + * ``` + * + * Will print: + * + * ```text + * hello world + * ``` + * + * The callback is executed asynchronously, and will have a limited stack trace. + * If the callback throws, the process will emit an `'uncaughtException'` + * event, and if not handled will exit. + * + * Since `null` has a special meaning as the first argument to a callback, if a + * wrapped function rejects a `Promise` with a falsy value as a reason, the value + * is wrapped in an `Error` with the original value stored in a field named + * `reason`. + * + * ```js + * function fn() { + * return Promise.reject(null); + * } + * const callbackFunction = util.callbackify(fn); + * + * callbackFunction((err, ret) => { + * // When the Promise was rejected with `null` it is wrapped with an Error and + * // the original value is stored in `reason`. + * err && Object.hasOwn(err, 'reason') && err.reason === null; // true + * }); + * ``` + * @since v8.2.0 + * @param fn An `async` function + * @return a callback style function + */ + export function callbackify(fn: () => Promise): (callback: (err: NodeJS.ErrnoException) => void) => void; + export function callbackify( + fn: () => Promise, + ): (callback: (err: NodeJS.ErrnoException, result: TResult) => void) => void; + export function callbackify( + fn: (arg1: T1) => Promise, + ): (arg1: T1, callback: (err: NodeJS.ErrnoException) => void) => void; + export function callbackify( + fn: (arg1: T1) => Promise, + ): (arg1: T1, callback: (err: NodeJS.ErrnoException, result: TResult) => void) => void; + export function callbackify( + fn: (arg1: T1, arg2: T2) => Promise, + ): (arg1: T1, arg2: T2, callback: (err: NodeJS.ErrnoException) => void) => void; + export function callbackify( + fn: (arg1: T1, arg2: T2) => Promise, + ): (arg1: T1, arg2: T2, callback: (err: NodeJS.ErrnoException | null, result: TResult) => void) => void; + export function callbackify( + fn: (arg1: T1, arg2: T2, arg3: T3) => Promise, + ): (arg1: T1, arg2: T2, arg3: T3, callback: (err: NodeJS.ErrnoException) => void) => void; + export function callbackify( + fn: (arg1: T1, arg2: T2, arg3: T3) => Promise, + ): (arg1: T1, arg2: T2, arg3: T3, callback: (err: NodeJS.ErrnoException | null, result: TResult) => void) => void; + export function callbackify( + fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => Promise, + ): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, callback: (err: NodeJS.ErrnoException) => void) => void; + export function callbackify( + fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => Promise, + ): ( + arg1: T1, + arg2: T2, + arg3: T3, + arg4: T4, + callback: (err: NodeJS.ErrnoException | null, result: TResult) => void, + ) => void; + export function callbackify( + fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5) => Promise, + ): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, callback: (err: NodeJS.ErrnoException) => void) => void; + export function callbackify( + fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5) => Promise, + ): ( + arg1: T1, + arg2: T2, + arg3: T3, + arg4: T4, + arg5: T5, + callback: (err: NodeJS.ErrnoException | null, result: TResult) => void, + ) => void; + export function callbackify( + fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6) => Promise, + ): ( + arg1: T1, + arg2: T2, + arg3: T3, + arg4: T4, + arg5: T5, + arg6: T6, + callback: (err: NodeJS.ErrnoException) => void, + ) => void; + export function callbackify( + fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6) => Promise, + ): ( + arg1: T1, + arg2: T2, + arg3: T3, + arg4: T4, + arg5: T5, + arg6: T6, + callback: (err: NodeJS.ErrnoException | null, result: TResult) => void, + ) => void; + export interface CustomPromisifyLegacy extends Function { + __promisify__: TCustom; + } + export interface CustomPromisifySymbol extends Function { + [promisify.custom]: TCustom; + } + export type CustomPromisify = + | CustomPromisifySymbol + | CustomPromisifyLegacy; + /** + * Takes a function following the common error-first callback style, i.e. taking + * an `(err, value) => ...` callback as the last argument, and returns a version + * that returns promises. + * + * ```js + * import { promisify } from 'node:util'; + * import { stat } from 'node:fs'; + * + * const promisifiedStat = promisify(stat); + * promisifiedStat('.').then((stats) => { + * // Do something with `stats` + * }).catch((error) => { + * // Handle the error. + * }); + * ``` + * + * Or, equivalently using `async function`s: + * + * ```js + * import { promisify } from 'node:util'; + * import { stat } from 'node:fs'; + * + * const promisifiedStat = promisify(stat); + * + * async function callStat() { + * const stats = await promisifiedStat('.'); + * console.log(`This directory is owned by ${stats.uid}`); + * } + * + * callStat(); + * ``` + * + * If there is an `original[util.promisify.custom]` property present, `promisify` + * will return its value, see [Custom promisified functions](https://nodejs.org/docs/latest-v25.x/api/util.html#custom-promisified-functions). + * + * `promisify()` assumes that `original` is a function taking a callback as its + * final argument in all cases. If `original` is not a function, `promisify()` + * will throw an error. If `original` is a function but its last argument is not + * an error-first callback, it will still be passed an error-first + * callback as its last argument. + * + * Using `promisify()` on class methods or other methods that use `this` may not + * work as expected unless handled specially: + * + * ```js + * import { promisify } from 'node:util'; + * + * class Foo { + * constructor() { + * this.a = 42; + * } + * + * bar(callback) { + * callback(null, this.a); + * } + * } + * + * const foo = new Foo(); + * + * const naiveBar = promisify(foo.bar); + * // TypeError: Cannot read properties of undefined (reading 'a') + * // naiveBar().then(a => console.log(a)); + * + * naiveBar.call(foo).then((a) => console.log(a)); // '42' + * + * const bindBar = naiveBar.bind(foo); + * bindBar().then((a) => console.log(a)); // '42' + * ``` + * @since v8.0.0 + */ + export function promisify(fn: CustomPromisify): TCustom; + export function promisify( + fn: (callback: (err: any, result: TResult) => void) => void, + ): () => Promise; + export function promisify(fn: (callback: (err?: any) => void) => void): () => Promise; + export function promisify( + fn: (arg1: T1, callback: (err: any, result: TResult) => void) => void, + ): (arg1: T1) => Promise; + export function promisify(fn: (arg1: T1, callback: (err?: any) => void) => void): (arg1: T1) => Promise; + export function promisify( + fn: (arg1: T1, arg2: T2, callback: (err: any, result: TResult) => void) => void, + ): (arg1: T1, arg2: T2) => Promise; + export function promisify( + fn: (arg1: T1, arg2: T2, callback: (err?: any) => void) => void, + ): (arg1: T1, arg2: T2) => Promise; + export function promisify( + fn: (arg1: T1, arg2: T2, arg3: T3, callback: (err: any, result: TResult) => void) => void, + ): (arg1: T1, arg2: T2, arg3: T3) => Promise; + export function promisify( + fn: (arg1: T1, arg2: T2, arg3: T3, callback: (err?: any) => void) => void, + ): (arg1: T1, arg2: T2, arg3: T3) => Promise; + export function promisify( + fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, callback: (err: any, result: TResult) => void) => void, + ): (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => Promise; + export function promisify( + fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, callback: (err?: any) => void) => void, + ): (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => Promise; + export function promisify( + fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, callback: (err: any, result: TResult) => void) => void, + ): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5) => Promise; + export function promisify( + fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, callback: (err?: any) => void) => void, + ): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5) => Promise; + export function promisify(fn: Function): Function; + export namespace promisify { + /** + * That can be used to declare custom promisified variants of functions. + */ + const custom: unique symbol; + } + /** + * Stability: 1.1 - Active development + * Given an example `.env` file: + * + * ```js + * import { parseEnv } from 'node:util'; + * + * parseEnv('HELLO=world\nHELLO=oh my\n'); + * // Returns: { HELLO: 'oh my' } + * ``` + * @param content The raw contents of a `.env` file. + * @since v20.12.0 + */ + export function parseEnv(content: string): NodeJS.Dict; + export interface StyleTextOptions { + /** + * When true, `stream` is checked to see if it can handle colors. + * @default true + */ + validateStream?: boolean | undefined; + /** + * A stream that will be validated if it can be colored. + * @default process.stdout + */ + stream?: NodeJS.WritableStream | undefined; + } + /** + * This function returns a formatted text considering the `format` passed + * for printing in a terminal. It is aware of the terminal's capabilities + * and acts according to the configuration set via `NO_COLOR`, + * `NODE_DISABLE_COLORS` and `FORCE_COLOR` environment variables. + * + * ```js + * import { styleText } from 'node:util'; + * import { stderr } from 'node:process'; + * + * const successMessage = styleText('green', 'Success!'); + * console.log(successMessage); + * + * const errorMessage = styleText( + * 'red', + * 'Error! Error!', + * // Validate if process.stderr has TTY + * { stream: stderr }, + * ); + * console.error(errorMessage); + * ``` + * + * `util.inspect.colors` also provides text formats such as `italic`, and + * `underline` and you can combine both: + * + * ```js + * console.log( + * util.styleText(['underline', 'italic'], 'My italic underlined message'), + * ); + * ``` + * + * When passing an array of formats, the order of the format applied + * is left to right so the following style might overwrite the previous one. + * + * ```js + * console.log( + * util.styleText(['red', 'green'], 'text'), // green + * ); + * ``` + * + * The special format value `none` applies no additional styling to the text. + * + * The full list of formats can be found in [modifiers](https://nodejs.org/docs/latest-v25.x/api/util.html#modifiers). + * @param format A text format or an Array of text formats defined in `util.inspect.colors`. + * @param text The text to to be formatted. + * @since v20.12.0 + */ + export function styleText( + format: InspectColor | readonly InspectColor[], + text: string, + options?: StyleTextOptions, + ): string; + /** @deprecated This alias will be removed in a future version. Use the canonical `TextEncoderEncodeIntoResult` instead. */ + // TODO: remove in future major + export interface EncodeIntoResult extends TextEncoderEncodeIntoResult {} + //// parseArgs + /** + * Provides a higher level API for command-line argument parsing than interacting + * with `process.argv` directly. Takes a specification for the expected arguments + * and returns a structured object with the parsed options and positionals. + * + * ```js + * import { parseArgs } from 'node:util'; + * const args = ['-f', '--bar', 'b']; + * const options = { + * foo: { + * type: 'boolean', + * short: 'f', + * }, + * bar: { + * type: 'string', + * }, + * }; + * const { + * values, + * positionals, + * } = parseArgs({ args, options }); + * console.log(values, positionals); + * // Prints: [Object: null prototype] { foo: true, bar: 'b' } [] + * ``` + * @since v18.3.0, v16.17.0 + * @param config Used to provide arguments for parsing and to configure the parser. `config` supports the following properties: + * @return The parsed command line arguments: + */ + export function parseArgs(config?: T): ParsedResults; + /** + * Type of argument used in {@link parseArgs}. + */ + export type ParseArgsOptionsType = "boolean" | "string"; + export interface ParseArgsOptionDescriptor { + /** + * Type of argument. + */ + type: ParseArgsOptionsType; + /** + * Whether this option can be provided multiple times. + * If `true`, all values will be collected in an array. + * If `false`, values for the option are last-wins. + * @default false. + */ + multiple?: boolean | undefined; + /** + * A single character alias for the option. + */ + short?: string | undefined; + /** + * The value to assign to + * the option if it does not appear in the arguments to be parsed. The value + * must match the type specified by the `type` property. If `multiple` is + * `true`, it must be an array. No default value is applied when the option + * does appear in the arguments to be parsed, even if the provided value + * is falsy. + * @since v18.11.0 + */ + default?: string | boolean | string[] | boolean[] | undefined; + } + export interface ParseArgsOptionsConfig { + [longOption: string]: ParseArgsOptionDescriptor; + } + export interface ParseArgsConfig { + /** + * Array of argument strings. + */ + args?: readonly string[] | undefined; + /** + * Used to describe arguments known to the parser. + */ + options?: ParseArgsOptionsConfig | undefined; + /** + * Should an error be thrown when unknown arguments are encountered, + * or when arguments are passed that do not match the `type` configured in `options`. + * @default true + */ + strict?: boolean | undefined; + /** + * Whether this command accepts positional arguments. + */ + allowPositionals?: boolean | undefined; + /** + * If `true`, allows explicitly setting boolean options to `false` by prefixing the option name with `--no-`. + * @default false + * @since v22.4.0 + */ + allowNegative?: boolean | undefined; + /** + * Return the parsed tokens. This is useful for extending the built-in behavior, + * from adding additional checks through to reprocessing the tokens in different ways. + * @default false + */ + tokens?: boolean | undefined; + } + /* + IfDefaultsTrue and IfDefaultsFalse are helpers to handle default values for missing boolean properties. + TypeScript does not have exact types for objects: https://github.com/microsoft/TypeScript/issues/12936 + This means it is impossible to distinguish between "field X is definitely not present" and "field X may or may not be present". + But we expect users to generally provide their config inline or `as const`, which means TS will always know whether a given field is present. + So this helper treats "not definitely present" (i.e., not `extends boolean`) as being "definitely not present", i.e. it should have its default value. + This is technically incorrect but is a much nicer UX for the common case. + The IfDefaultsTrue version is for things which default to true; the IfDefaultsFalse version is for things which default to false. + */ + type IfDefaultsTrue = T extends true ? IfTrue + : T extends false ? IfFalse + : IfTrue; + // we put the `extends false` condition first here because `undefined` compares like `any` when `strictNullChecks: false` + type IfDefaultsFalse = T extends false ? IfFalse + : T extends true ? IfTrue + : IfFalse; + type ExtractOptionValue = IfDefaultsTrue< + T["strict"], + O["type"] extends "string" ? string : O["type"] extends "boolean" ? boolean : string | boolean, + string | boolean + >; + type ApplyOptionalModifiers> = ( + & { -readonly [LongOption in keyof O]?: V[LongOption] } + & { [LongOption in keyof O as O[LongOption]["default"] extends {} ? LongOption : never]: V[LongOption] } + ) extends infer P ? { [K in keyof P]: P[K] } : never; // resolve intersection to object + type ParsedValues = + & IfDefaultsTrue + & (T["options"] extends ParseArgsOptionsConfig ? ApplyOptionalModifiers< + T["options"], + { + [LongOption in keyof T["options"]]: IfDefaultsFalse< + T["options"][LongOption]["multiple"], + Array>, + ExtractOptionValue + >; + } + > + : {}); + type ParsedPositionals = IfDefaultsTrue< + T["strict"], + IfDefaultsFalse, + IfDefaultsTrue + >; + type PreciseTokenForOptions< + K extends string, + O extends ParseArgsOptionDescriptor, + > = O["type"] extends "string" ? { + kind: "option"; + index: number; + name: K; + rawName: string; + value: string; + inlineValue: boolean; + } + : O["type"] extends "boolean" ? { + kind: "option"; + index: number; + name: K; + rawName: string; + value: undefined; + inlineValue: undefined; + } + : OptionToken & { name: K }; + type TokenForOptions< + T extends ParseArgsConfig, + K extends keyof T["options"] = keyof T["options"], + > = K extends unknown + ? T["options"] extends ParseArgsOptionsConfig ? PreciseTokenForOptions + : OptionToken + : never; + type ParsedOptionToken = IfDefaultsTrue, OptionToken>; + type ParsedPositionalToken = IfDefaultsTrue< + T["strict"], + IfDefaultsFalse, + IfDefaultsTrue + >; + type ParsedTokens = Array< + ParsedOptionToken | ParsedPositionalToken | { kind: "option-terminator"; index: number } + >; + type PreciseParsedResults = IfDefaultsFalse< + T["tokens"], + { + values: ParsedValues; + positionals: ParsedPositionals; + tokens: ParsedTokens; + }, + { + values: ParsedValues; + positionals: ParsedPositionals; + } + >; + type OptionToken = + | { kind: "option"; index: number; name: string; rawName: string; value: string; inlineValue: boolean } + | { + kind: "option"; + index: number; + name: string; + rawName: string; + value: undefined; + inlineValue: undefined; + }; + type Token = + | OptionToken + | { kind: "positional"; index: number; value: string } + | { kind: "option-terminator"; index: number }; + // If ParseArgsConfig extends T, then the user passed config constructed elsewhere. + // So we can't rely on the `"not definitely present" implies "definitely not present"` assumption mentioned above. + type ParsedResults = ParseArgsConfig extends T ? { + values: { + [longOption: string]: undefined | string | boolean | Array; + }; + positionals: string[]; + tokens?: Token[]; + } + : PreciseParsedResults; + /** + * An implementation of [the MIMEType class](https://bmeck.github.io/node-proposal-mime-api/). + * + * In accordance with browser conventions, all properties of `MIMEType` objects + * are implemented as getters and setters on the class prototype, rather than as + * data properties on the object itself. + * + * A MIME string is a structured string containing multiple meaningful + * components. When parsed, a `MIMEType` object is returned containing + * properties for each of these components. + * @since v19.1.0, v18.13.0 + */ + export class MIMEType { + /** + * Creates a new MIMEType object by parsing the input. + * + * A `TypeError` will be thrown if the `input` is not a valid MIME. + * Note that an effort will be made to coerce the given values into strings. + * @param input The input MIME to parse. + */ + constructor(input: string | { toString: () => string }); + /** + * Gets and sets the type portion of the MIME. + * + * ```js + * import { MIMEType } from 'node:util'; + * + * const myMIME = new MIMEType('text/javascript'); + * console.log(myMIME.type); + * // Prints: text + * myMIME.type = 'application'; + * console.log(myMIME.type); + * // Prints: application + * console.log(String(myMIME)); + * // Prints: application/javascript + * ``` + */ + type: string; + /** + * Gets and sets the subtype portion of the MIME. + * + * ```js + * import { MIMEType } from 'node:util'; + * + * const myMIME = new MIMEType('text/ecmascript'); + * console.log(myMIME.subtype); + * // Prints: ecmascript + * myMIME.subtype = 'javascript'; + * console.log(myMIME.subtype); + * // Prints: javascript + * console.log(String(myMIME)); + * // Prints: text/javascript + * ``` + */ + subtype: string; + /** + * Gets the essence of the MIME. This property is read only. + * Use `mime.type` or `mime.subtype` to alter the MIME. + * + * ```js + * import { MIMEType } from 'node:util'; + * + * const myMIME = new MIMEType('text/javascript;key=value'); + * console.log(myMIME.essence); + * // Prints: text/javascript + * myMIME.type = 'application'; + * console.log(myMIME.essence); + * // Prints: application/javascript + * console.log(String(myMIME)); + * // Prints: application/javascript;key=value + * ``` + */ + readonly essence: string; + /** + * Gets the `MIMEParams` object representing the + * parameters of the MIME. This property is read-only. See `MIMEParams` documentation for details. + */ + readonly params: MIMEParams; + /** + * The `toString()` method on the `MIMEType` object returns the serialized MIME. + * + * Because of the need for standard compliance, this method does not allow users + * to customize the serialization process of the MIME. + */ + toString(): string; + } + /** + * The `MIMEParams` API provides read and write access to the parameters of a `MIMEType`. + * @since v19.1.0, v18.13.0 + */ + export class MIMEParams { + /** + * Remove all name-value pairs whose name is `name`. + */ + delete(name: string): void; + /** + * Returns an iterator over each of the name-value pairs in the parameters. + * Each item of the iterator is a JavaScript `Array`. The first item of the array + * is the `name`, the second item of the array is the `value`. + */ + entries(): NodeJS.Iterator<[name: string, value: string]>; + /** + * Returns the value of the first name-value pair whose name is `name`. If there + * are no such pairs, `null` is returned. + * @return or `null` if there is no name-value pair with the given `name`. + */ + get(name: string): string | null; + /** + * Returns `true` if there is at least one name-value pair whose name is `name`. + */ + has(name: string): boolean; + /** + * Returns an iterator over the names of each name-value pair. + * + * ```js + * import { MIMEType } from 'node:util'; + * + * const { params } = new MIMEType('text/plain;foo=0;bar=1'); + * for (const name of params.keys()) { + * console.log(name); + * } + * // Prints: + * // foo + * // bar + * ``` + */ + keys(): NodeJS.Iterator; + /** + * Sets the value in the `MIMEParams` object associated with `name` to `value`. If there are any pre-existing name-value pairs whose names are `name`, + * set the first such pair's value to `value`. + * + * ```js + * import { MIMEType } from 'node:util'; + * + * const { params } = new MIMEType('text/plain;foo=0;bar=1'); + * params.set('foo', 'def'); + * params.set('baz', 'xyz'); + * console.log(params.toString()); + * // Prints: foo=def;bar=1;baz=xyz + * ``` + */ + set(name: string, value: string): void; + /** + * Returns an iterator over the values of each name-value pair. + */ + values(): NodeJS.Iterator; + /** + * Returns an iterator over each of the name-value pairs in the parameters. + */ + [Symbol.iterator](): NodeJS.Iterator<[name: string, value: string]>; + } + // #region web types + export interface TextDecodeOptions { + stream?: boolean; + } + export interface TextDecoderCommon { + readonly encoding: string; + readonly fatal: boolean; + readonly ignoreBOM: boolean; + } + export interface TextDecoderOptions { + fatal?: boolean; + ignoreBOM?: boolean; + } + export interface TextEncoderCommon { + readonly encoding: string; + } + export interface TextEncoderEncodeIntoResult { + read: number; + written: number; + } + export interface TextDecoder extends TextDecoderCommon { + decode(input?: NodeJS.AllowSharedBufferSource, options?: TextDecodeOptions): string; + } + export var TextDecoder: { + prototype: TextDecoder; + new(label?: string, options?: TextDecoderOptions): TextDecoder; + }; + export interface TextEncoder extends TextEncoderCommon { + encode(input?: string): NodeJS.NonSharedUint8Array; + encodeInto(source: string, destination: Uint8Array): TextEncoderEncodeIntoResult; + } + export var TextEncoder: { + prototype: TextEncoder; + new(): TextEncoder; + }; + // #endregion +} +declare module "util" { + export * from "node:util"; +} diff --git a/server/api/node_modules/@types/node/util/types.d.ts b/server/api/node_modules/@types/node/util/types.d.ts new file mode 100644 index 0000000..818825b --- /dev/null +++ b/server/api/node_modules/@types/node/util/types.d.ts @@ -0,0 +1,558 @@ +declare module "node:util/types" { + import { KeyObject, webcrypto } from "node:crypto"; + /** + * Returns `true` if the value is a built-in [`ArrayBuffer`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer) or + * [`SharedArrayBuffer`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer) instance. + * + * See also `util.types.isArrayBuffer()` and `util.types.isSharedArrayBuffer()`. + * + * ```js + * util.types.isAnyArrayBuffer(new ArrayBuffer()); // Returns true + * util.types.isAnyArrayBuffer(new SharedArrayBuffer()); // Returns true + * ``` + * @since v10.0.0 + */ + function isAnyArrayBuffer(object: unknown): object is ArrayBufferLike; + /** + * Returns `true` if the value is an `arguments` object. + * + * ```js + * function foo() { + * util.types.isArgumentsObject(arguments); // Returns true + * } + * ``` + * @since v10.0.0 + */ + function isArgumentsObject(object: unknown): object is IArguments; + /** + * Returns `true` if the value is a built-in [`ArrayBuffer`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer) instance. + * This does _not_ include [`SharedArrayBuffer`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer) instances. Usually, it is + * desirable to test for both; See `util.types.isAnyArrayBuffer()` for that. + * + * ```js + * util.types.isArrayBuffer(new ArrayBuffer()); // Returns true + * util.types.isArrayBuffer(new SharedArrayBuffer()); // Returns false + * ``` + * @since v10.0.0 + */ + function isArrayBuffer(object: unknown): object is ArrayBuffer; + /** + * Returns `true` if the value is an instance of one of the [`ArrayBuffer`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer) views, such as typed + * array objects or [`DataView`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView). Equivalent to + * [`ArrayBuffer.isView()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/isView). + * + * ```js + * util.types.isArrayBufferView(new Int8Array()); // true + * util.types.isArrayBufferView(Buffer.from('hello world')); // true + * util.types.isArrayBufferView(new DataView(new ArrayBuffer(16))); // true + * util.types.isArrayBufferView(new ArrayBuffer()); // false + * ``` + * @since v10.0.0 + */ + function isArrayBufferView(object: unknown): object is NodeJS.ArrayBufferView; + /** + * Returns `true` if the value is an [async function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function). + * This only reports back what the JavaScript engine is seeing; + * in particular, the return value may not match the original source code if + * a transpilation tool was used. + * + * ```js + * util.types.isAsyncFunction(function foo() {}); // Returns false + * util.types.isAsyncFunction(async function foo() {}); // Returns true + * ``` + * @since v10.0.0 + */ + function isAsyncFunction(object: unknown): boolean; + /** + * Returns `true` if the value is a `BigInt64Array` instance. + * + * ```js + * util.types.isBigInt64Array(new BigInt64Array()); // Returns true + * util.types.isBigInt64Array(new BigUint64Array()); // Returns false + * ``` + * @since v10.0.0 + */ + function isBigInt64Array(value: unknown): value is BigInt64Array; + /** + * Returns `true` if the value is a BigInt object, e.g. created + * by `Object(BigInt(123))`. + * + * ```js + * util.types.isBigIntObject(Object(BigInt(123))); // Returns true + * util.types.isBigIntObject(BigInt(123)); // Returns false + * util.types.isBigIntObject(123); // Returns false + * ``` + * @since v10.4.0 + */ + function isBigIntObject(object: unknown): object is BigInt; + /** + * Returns `true` if the value is a `BigUint64Array` instance. + * + * ```js + * util.types.isBigUint64Array(new BigInt64Array()); // Returns false + * util.types.isBigUint64Array(new BigUint64Array()); // Returns true + * ``` + * @since v10.0.0 + */ + function isBigUint64Array(value: unknown): value is BigUint64Array; + /** + * Returns `true` if the value is a boolean object, e.g. created + * by `new Boolean()`. + * + * ```js + * util.types.isBooleanObject(false); // Returns false + * util.types.isBooleanObject(true); // Returns false + * util.types.isBooleanObject(new Boolean(false)); // Returns true + * util.types.isBooleanObject(new Boolean(true)); // Returns true + * util.types.isBooleanObject(Boolean(false)); // Returns false + * util.types.isBooleanObject(Boolean(true)); // Returns false + * ``` + * @since v10.0.0 + */ + function isBooleanObject(object: unknown): object is Boolean; + /** + * Returns `true` if the value is any boxed primitive object, e.g. created + * by `new Boolean()`, `new String()` or `Object(Symbol())`. + * + * For example: + * + * ```js + * util.types.isBoxedPrimitive(false); // Returns false + * util.types.isBoxedPrimitive(new Boolean(false)); // Returns true + * util.types.isBoxedPrimitive(Symbol('foo')); // Returns false + * util.types.isBoxedPrimitive(Object(Symbol('foo'))); // Returns true + * util.types.isBoxedPrimitive(Object(BigInt(5))); // Returns true + * ``` + * @since v10.11.0 + */ + function isBoxedPrimitive(object: unknown): object is String | Number | BigInt | Boolean | Symbol; + /** + * Returns `true` if the value is a built-in [`DataView`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView) instance. + * + * ```js + * const ab = new ArrayBuffer(20); + * util.types.isDataView(new DataView(ab)); // Returns true + * util.types.isDataView(new Float64Array()); // Returns false + * ``` + * + * See also [`ArrayBuffer.isView()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/isView). + * @since v10.0.0 + */ + function isDataView(object: unknown): object is DataView; + /** + * Returns `true` if the value is a built-in [`Date`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) instance. + * + * ```js + * util.types.isDate(new Date()); // Returns true + * ``` + * @since v10.0.0 + */ + function isDate(object: unknown): object is Date; + /** + * Returns `true` if the value is a native `External` value. + * + * A native `External` value is a special type of object that contains a + * raw C++ pointer (`void*`) for access from native code, and has no other + * properties. Such objects are created either by Node.js internals or native + * addons. In JavaScript, they are + * [frozen](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze) objects with a + * `null` prototype. + * + * ```c + * #include + * #include + * napi_value result; + * static napi_value MyNapi(napi_env env, napi_callback_info info) { + * int* raw = (int*) malloc(1024); + * napi_status status = napi_create_external(env, (void*) raw, NULL, NULL, &result); + * if (status != napi_ok) { + * napi_throw_error(env, NULL, "napi_create_external failed"); + * return NULL; + * } + * return result; + * } + * ... + * DECLARE_NAPI_PROPERTY("myNapi", MyNapi) + * ... + * ``` + * + * ```js + * import native from 'napi_addon.node'; + * import { types } from 'node:util'; + * + * const data = native.myNapi(); + * types.isExternal(data); // returns true + * types.isExternal(0); // returns false + * types.isExternal(new String('foo')); // returns false + * ``` + * + * For further information on `napi_create_external`, refer to + * [`napi_create_external()`](https://nodejs.org/docs/latest-v25.x/api/n-api.html#napi_create_external). + * @since v10.0.0 + */ + function isExternal(object: unknown): boolean; + /** + * Returns `true` if the value is a built-in [`Float16Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float16Array) instance. + * + * ```js + * util.types.isFloat16Array(new ArrayBuffer()); // Returns false + * util.types.isFloat16Array(new Float16Array()); // Returns true + * util.types.isFloat16Array(new Float32Array()); // Returns false + * ``` + * @since v24.0.0 + */ + function isFloat16Array(object: unknown): object is Float16Array; + /** + * Returns `true` if the value is a built-in [`Float32Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float32Array) instance. + * + * ```js + * util.types.isFloat32Array(new ArrayBuffer()); // Returns false + * util.types.isFloat32Array(new Float32Array()); // Returns true + * util.types.isFloat32Array(new Float64Array()); // Returns false + * ``` + * @since v10.0.0 + */ + function isFloat32Array(object: unknown): object is Float32Array; + /** + * Returns `true` if the value is a built-in [`Float64Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float64Array) instance. + * + * ```js + * util.types.isFloat64Array(new ArrayBuffer()); // Returns false + * util.types.isFloat64Array(new Uint8Array()); // Returns false + * util.types.isFloat64Array(new Float64Array()); // Returns true + * ``` + * @since v10.0.0 + */ + function isFloat64Array(object: unknown): object is Float64Array; + /** + * Returns `true` if the value is a generator function. + * This only reports back what the JavaScript engine is seeing; + * in particular, the return value may not match the original source code if + * a transpilation tool was used. + * + * ```js + * util.types.isGeneratorFunction(function foo() {}); // Returns false + * util.types.isGeneratorFunction(function* foo() {}); // Returns true + * ``` + * @since v10.0.0 + */ + function isGeneratorFunction(object: unknown): object is GeneratorFunction; + /** + * Returns `true` if the value is a generator object as returned from a + * built-in generator function. + * This only reports back what the JavaScript engine is seeing; + * in particular, the return value may not match the original source code if + * a transpilation tool was used. + * + * ```js + * function* foo() {} + * const generator = foo(); + * util.types.isGeneratorObject(generator); // Returns true + * ``` + * @since v10.0.0 + */ + function isGeneratorObject(object: unknown): object is Generator; + /** + * Returns `true` if the value is a built-in [`Int8Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Int8Array) instance. + * + * ```js + * util.types.isInt8Array(new ArrayBuffer()); // Returns false + * util.types.isInt8Array(new Int8Array()); // Returns true + * util.types.isInt8Array(new Float64Array()); // Returns false + * ``` + * @since v10.0.0 + */ + function isInt8Array(object: unknown): object is Int8Array; + /** + * Returns `true` if the value is a built-in [`Int16Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Int16Array) instance. + * + * ```js + * util.types.isInt16Array(new ArrayBuffer()); // Returns false + * util.types.isInt16Array(new Int16Array()); // Returns true + * util.types.isInt16Array(new Float64Array()); // Returns false + * ``` + * @since v10.0.0 + */ + function isInt16Array(object: unknown): object is Int16Array; + /** + * Returns `true` if the value is a built-in [`Int32Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Int32Array) instance. + * + * ```js + * util.types.isInt32Array(new ArrayBuffer()); // Returns false + * util.types.isInt32Array(new Int32Array()); // Returns true + * util.types.isInt32Array(new Float64Array()); // Returns false + * ``` + * @since v10.0.0 + */ + function isInt32Array(object: unknown): object is Int32Array; + /** + * Returns `true` if the value is a built-in [`Map`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map) instance. + * + * ```js + * util.types.isMap(new Map()); // Returns true + * ``` + * @since v10.0.0 + */ + function isMap( + object: T | {}, + ): object is T extends ReadonlyMap ? (unknown extends T ? never : ReadonlyMap) + : Map; + /** + * Returns `true` if the value is an iterator returned for a built-in [`Map`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map) instance. + * + * ```js + * const map = new Map(); + * util.types.isMapIterator(map.keys()); // Returns true + * util.types.isMapIterator(map.values()); // Returns true + * util.types.isMapIterator(map.entries()); // Returns true + * util.types.isMapIterator(map[Symbol.iterator]()); // Returns true + * ``` + * @since v10.0.0 + */ + function isMapIterator(object: unknown): boolean; + /** + * Returns `true` if the value is an instance of a [Module Namespace Object](https://tc39.github.io/ecma262/#sec-module-namespace-exotic-objects). + * + * ```js + * import * as ns from './a.js'; + * + * util.types.isModuleNamespaceObject(ns); // Returns true + * ``` + * @since v10.0.0 + */ + function isModuleNamespaceObject(value: unknown): boolean; + /** + * Returns `true` if the value was returned by the constructor of a + * [built-in `Error` type](https://tc39.es/ecma262/#sec-error-objects). + * + * ```js + * console.log(util.types.isNativeError(new Error())); // true + * console.log(util.types.isNativeError(new TypeError())); // true + * console.log(util.types.isNativeError(new RangeError())); // true + * ``` + * + * Subclasses of the native error types are also native errors: + * + * ```js + * class MyError extends Error {} + * console.log(util.types.isNativeError(new MyError())); // true + * ``` + * + * A value being `instanceof` a native error class is not equivalent to `isNativeError()` + * returning `true` for that value. `isNativeError()` returns `true` for errors + * which come from a different [realm](https://tc39.es/ecma262/#realm) while `instanceof Error` returns `false` + * for these errors: + * + * ```js + * import { createContext, runInContext } from 'node:vm'; + * import { types } from 'node:util'; + * + * const context = createContext({}); + * const myError = runInContext('new Error()', context); + * console.log(types.isNativeError(myError)); // true + * console.log(myError instanceof Error); // false + * ``` + * + * Conversely, `isNativeError()` returns `false` for all objects which were not + * returned by the constructor of a native error. That includes values + * which are `instanceof` native errors: + * + * ```js + * const myError = { __proto__: Error.prototype }; + * console.log(util.types.isNativeError(myError)); // false + * console.log(myError instanceof Error); // true + * ``` + * @since v10.0.0 + * @deprecated The `util.types.isNativeError` API is deprecated. Please use `Error.isError` instead. + */ + function isNativeError(object: unknown): object is Error; + /** + * Returns `true` if the value is a number object, e.g. created + * by `new Number()`. + * + * ```js + * util.types.isNumberObject(0); // Returns false + * util.types.isNumberObject(new Number(0)); // Returns true + * ``` + * @since v10.0.0 + */ + function isNumberObject(object: unknown): object is Number; + /** + * Returns `true` if the value is a built-in [`Promise`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise). + * + * ```js + * util.types.isPromise(Promise.resolve(42)); // Returns true + * ``` + * @since v10.0.0 + */ + function isPromise(object: unknown): object is Promise; + /** + * Returns `true` if the value is a [`Proxy`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy) instance. + * + * ```js + * const target = {}; + * const proxy = new Proxy(target, {}); + * util.types.isProxy(target); // Returns false + * util.types.isProxy(proxy); // Returns true + * ``` + * @since v10.0.0 + */ + function isProxy(object: unknown): boolean; + /** + * Returns `true` if the value is a regular expression object. + * + * ```js + * util.types.isRegExp(/abc/); // Returns true + * util.types.isRegExp(new RegExp('abc')); // Returns true + * ``` + * @since v10.0.0 + */ + function isRegExp(object: unknown): object is RegExp; + /** + * Returns `true` if the value is a built-in [`Set`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set) instance. + * + * ```js + * util.types.isSet(new Set()); // Returns true + * ``` + * @since v10.0.0 + */ + function isSet( + object: T | {}, + ): object is T extends ReadonlySet ? (unknown extends T ? never : ReadonlySet) : Set; + /** + * Returns `true` if the value is an iterator returned for a built-in [`Set`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set) instance. + * + * ```js + * const set = new Set(); + * util.types.isSetIterator(set.keys()); // Returns true + * util.types.isSetIterator(set.values()); // Returns true + * util.types.isSetIterator(set.entries()); // Returns true + * util.types.isSetIterator(set[Symbol.iterator]()); // Returns true + * ``` + * @since v10.0.0 + */ + function isSetIterator(object: unknown): boolean; + /** + * Returns `true` if the value is a built-in [`SharedArrayBuffer`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer) instance. + * This does _not_ include [`ArrayBuffer`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer) instances. Usually, it is + * desirable to test for both; See `util.types.isAnyArrayBuffer()` for that. + * + * ```js + * util.types.isSharedArrayBuffer(new ArrayBuffer()); // Returns false + * util.types.isSharedArrayBuffer(new SharedArrayBuffer()); // Returns true + * ``` + * @since v10.0.0 + */ + function isSharedArrayBuffer(object: unknown): object is SharedArrayBuffer; + /** + * Returns `true` if the value is a string object, e.g. created + * by `new String()`. + * + * ```js + * util.types.isStringObject('foo'); // Returns false + * util.types.isStringObject(new String('foo')); // Returns true + * ``` + * @since v10.0.0 + */ + function isStringObject(object: unknown): object is String; + /** + * Returns `true` if the value is a symbol object, created + * by calling `Object()` on a `Symbol` primitive. + * + * ```js + * const symbol = Symbol('foo'); + * util.types.isSymbolObject(symbol); // Returns false + * util.types.isSymbolObject(Object(symbol)); // Returns true + * ``` + * @since v10.0.0 + */ + function isSymbolObject(object: unknown): object is Symbol; + /** + * Returns `true` if the value is a built-in [`TypedArray`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray) instance. + * + * ```js + * util.types.isTypedArray(new ArrayBuffer()); // Returns false + * util.types.isTypedArray(new Uint8Array()); // Returns true + * util.types.isTypedArray(new Float64Array()); // Returns true + * ``` + * + * See also [`ArrayBuffer.isView()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/isView). + * @since v10.0.0 + */ + function isTypedArray(object: unknown): object is NodeJS.TypedArray; + /** + * Returns `true` if the value is a built-in [`Uint8Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array) instance. + * + * ```js + * util.types.isUint8Array(new ArrayBuffer()); // Returns false + * util.types.isUint8Array(new Uint8Array()); // Returns true + * util.types.isUint8Array(new Float64Array()); // Returns false + * ``` + * @since v10.0.0 + */ + function isUint8Array(object: unknown): object is Uint8Array; + /** + * Returns `true` if the value is a built-in [`Uint8ClampedArray`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8ClampedArray) instance. + * + * ```js + * util.types.isUint8ClampedArray(new ArrayBuffer()); // Returns false + * util.types.isUint8ClampedArray(new Uint8ClampedArray()); // Returns true + * util.types.isUint8ClampedArray(new Float64Array()); // Returns false + * ``` + * @since v10.0.0 + */ + function isUint8ClampedArray(object: unknown): object is Uint8ClampedArray; + /** + * Returns `true` if the value is a built-in [`Uint16Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint16Array) instance. + * + * ```js + * util.types.isUint16Array(new ArrayBuffer()); // Returns false + * util.types.isUint16Array(new Uint16Array()); // Returns true + * util.types.isUint16Array(new Float64Array()); // Returns false + * ``` + * @since v10.0.0 + */ + function isUint16Array(object: unknown): object is Uint16Array; + /** + * Returns `true` if the value is a built-in [`Uint32Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint32Array) instance. + * + * ```js + * util.types.isUint32Array(new ArrayBuffer()); // Returns false + * util.types.isUint32Array(new Uint32Array()); // Returns true + * util.types.isUint32Array(new Float64Array()); // Returns false + * ``` + * @since v10.0.0 + */ + function isUint32Array(object: unknown): object is Uint32Array; + /** + * Returns `true` if the value is a built-in [`WeakMap`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakMap) instance. + * + * ```js + * util.types.isWeakMap(new WeakMap()); // Returns true + * ``` + * @since v10.0.0 + */ + function isWeakMap(object: unknown): object is WeakMap; + /** + * Returns `true` if the value is a built-in [`WeakSet`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakSet) instance. + * + * ```js + * util.types.isWeakSet(new WeakSet()); // Returns true + * ``` + * @since v10.0.0 + */ + function isWeakSet(object: unknown): object is WeakSet; + /** + * Returns `true` if `value` is a `KeyObject`, `false` otherwise. + * @since v16.2.0 + */ + function isKeyObject(object: unknown): object is KeyObject; + /** + * Returns `true` if `value` is a `CryptoKey`, `false` otherwise. + * @since v16.2.0 + */ + function isCryptoKey(object: unknown): object is webcrypto.CryptoKey; +} +declare module "util/types" { + export * from "node:util/types"; +} diff --git a/server/api/node_modules/@types/node/v8.d.ts b/server/api/node_modules/@types/node/v8.d.ts new file mode 100644 index 0000000..c121c61 --- /dev/null +++ b/server/api/node_modules/@types/node/v8.d.ts @@ -0,0 +1,980 @@ +declare module "node:v8" { + import { NonSharedBuffer } from "node:buffer"; + import { Readable } from "node:stream"; + interface HeapSpaceInfo { + space_name: string; + space_size: number; + space_used_size: number; + space_available_size: number; + physical_space_size: number; + } + // ** Signifies if the --zap_code_space option is enabled or not. 1 == enabled, 0 == disabled. */ + type DoesZapCodeSpaceFlag = 0 | 1; + interface HeapInfo { + total_heap_size: number; + total_heap_size_executable: number; + total_physical_size: number; + total_available_size: number; + used_heap_size: number; + heap_size_limit: number; + malloced_memory: number; + peak_malloced_memory: number; + does_zap_garbage: DoesZapCodeSpaceFlag; + number_of_native_contexts: number; + number_of_detached_contexts: number; + total_global_handles_size: number; + used_global_handles_size: number; + external_memory: number; + total_allocated_bytes: number; + } + interface HeapCodeStatistics { + code_and_metadata_size: number; + bytecode_and_metadata_size: number; + external_script_source_size: number; + } + interface HeapSnapshotOptions { + /** + * If true, expose internals in the heap snapshot. + * @default false + */ + exposeInternals?: boolean | undefined; + /** + * If true, expose numeric values in artificial fields. + * @default false + */ + exposeNumericValues?: boolean | undefined; + } + /** + * Returns an integer representing a version tag derived from the V8 version, + * command-line flags, and detected CPU features. This is useful for determining + * whether a `vm.Script` `cachedData` buffer is compatible with this instance + * of V8. + * + * ```js + * console.log(v8.cachedDataVersionTag()); // 3947234607 + * // The value returned by v8.cachedDataVersionTag() is derived from the V8 + * // version, command-line flags, and detected CPU features. Test that the value + * // does indeed update when flags are toggled. + * v8.setFlagsFromString('--allow_natives_syntax'); + * console.log(v8.cachedDataVersionTag()); // 183726201 + * ``` + * @since v8.0.0 + */ + function cachedDataVersionTag(): number; + /** + * Returns an object with the following properties: + * + * `does_zap_garbage` is a 0/1 boolean, which signifies whether the `--zap_code_space` option is enabled or not. This makes V8 overwrite heap + * garbage with a bit pattern. The RSS footprint (resident set size) gets bigger + * because it continuously touches all heap pages and that makes them less likely + * to get swapped out by the operating system. + * + * `number_of_native_contexts` The value of native\_context is the number of the + * top-level contexts currently active. Increase of this number over time indicates + * a memory leak. + * + * `number_of_detached_contexts` The value of detached\_context is the number + * of contexts that were detached and not yet garbage collected. This number + * being non-zero indicates a potential memory leak. + * + * `total_global_handles_size` The value of total\_global\_handles\_size is the + * total memory size of V8 global handles. + * + * `used_global_handles_size` The value of used\_global\_handles\_size is the + * used memory size of V8 global handles. + * + * `external_memory` The value of external\_memory is the memory size of array + * buffers and external strings. + * + * `total_allocated_bytes` The value of total allocated bytes since the Isolate + * creation. + * + * ```js + * { + * total_heap_size: 7326976, + * total_heap_size_executable: 4194304, + * total_physical_size: 7326976, + * total_available_size: 1152656, + * used_heap_size: 3476208, + * heap_size_limit: 1535115264, + * malloced_memory: 16384, + * peak_malloced_memory: 1127496, + * does_zap_garbage: 0, + * number_of_native_contexts: 1, + * number_of_detached_contexts: 0, + * total_global_handles_size: 8192, + * used_global_handles_size: 3296, + * external_memory: 318824, + * total_allocated_bytes: 45224088 + * } + * ``` + * @since v1.0.0 + */ + function getHeapStatistics(): HeapInfo; + /** + * It returns an object with a structure similar to the + * [`cppgc::HeapStatistics`](https://v8docs.nodesource.com/node-22.4/d7/d51/heap-statistics_8h_source.html) + * object. See the [V8 documentation](https://v8docs.nodesource.com/node-22.4/df/d2f/structcppgc_1_1_heap_statistics.html) + * for more information about the properties of the object. + * + * ```js + * // Detailed + * ({ + * committed_size_bytes: 131072, + * resident_size_bytes: 131072, + * used_size_bytes: 152, + * space_statistics: [ + * { + * name: 'NormalPageSpace0', + * committed_size_bytes: 0, + * resident_size_bytes: 0, + * used_size_bytes: 0, + * page_stats: [{}], + * free_list_stats: {}, + * }, + * { + * name: 'NormalPageSpace1', + * committed_size_bytes: 131072, + * resident_size_bytes: 131072, + * used_size_bytes: 152, + * page_stats: [{}], + * free_list_stats: {}, + * }, + * { + * name: 'NormalPageSpace2', + * committed_size_bytes: 0, + * resident_size_bytes: 0, + * used_size_bytes: 0, + * page_stats: [{}], + * free_list_stats: {}, + * }, + * { + * name: 'NormalPageSpace3', + * committed_size_bytes: 0, + * resident_size_bytes: 0, + * used_size_bytes: 0, + * page_stats: [{}], + * free_list_stats: {}, + * }, + * { + * name: 'LargePageSpace', + * committed_size_bytes: 0, + * resident_size_bytes: 0, + * used_size_bytes: 0, + * page_stats: [{}], + * free_list_stats: {}, + * }, + * ], + * type_names: [], + * detail_level: 'detailed', + * }); + * ``` + * + * ```js + * // Brief + * ({ + * committed_size_bytes: 131072, + * resident_size_bytes: 131072, + * used_size_bytes: 128864, + * space_statistics: [], + * type_names: [], + * detail_level: 'brief', + * }); + * ``` + * @since v22.15.0 + * @param detailLevel **Default:** `'detailed'`. Specifies the level of detail in the returned statistics. + * Accepted values are: + * * `'brief'`: Brief statistics contain only the top-level + * allocated and used + * memory statistics for the entire heap. + * * `'detailed'`: Detailed statistics also contain a break + * down per space and page, as well as freelist statistics + * and object type histograms. + */ + function getCppHeapStatistics(detailLevel?: "brief" | "detailed"): object; + /** + * Returns statistics about the V8 heap spaces, i.e. the segments which make up + * the V8 heap. Neither the ordering of heap spaces, nor the availability of a + * heap space can be guaranteed as the statistics are provided via the + * V8 [`GetHeapSpaceStatistics`](https://v8docs.nodesource.com/node-13.2/d5/dda/classv8_1_1_isolate.html#ac673576f24fdc7a33378f8f57e1d13a4) function and may change from one V8 version to the + * next. + * + * The value returned is an array of objects containing the following properties: + * + * ```json + * [ + * { + * "space_name": "new_space", + * "space_size": 2063872, + * "space_used_size": 951112, + * "space_available_size": 80824, + * "physical_space_size": 2063872 + * }, + * { + * "space_name": "old_space", + * "space_size": 3090560, + * "space_used_size": 2493792, + * "space_available_size": 0, + * "physical_space_size": 3090560 + * }, + * { + * "space_name": "code_space", + * "space_size": 1260160, + * "space_used_size": 644256, + * "space_available_size": 960, + * "physical_space_size": 1260160 + * }, + * { + * "space_name": "map_space", + * "space_size": 1094160, + * "space_used_size": 201608, + * "space_available_size": 0, + * "physical_space_size": 1094160 + * }, + * { + * "space_name": "large_object_space", + * "space_size": 0, + * "space_used_size": 0, + * "space_available_size": 1490980608, + * "physical_space_size": 0 + * } + * ] + * ``` + * @since v6.0.0 + */ + function getHeapSpaceStatistics(): HeapSpaceInfo[]; + /** + * The `v8.setFlagsFromString()` method can be used to programmatically set + * V8 command-line flags. This method should be used with care. Changing settings + * after the VM has started may result in unpredictable behavior, including + * crashes and data loss; or it may simply do nothing. + * + * The V8 options available for a version of Node.js may be determined by running `node --v8-options`. + * + * Usage: + * + * ```js + * // Print GC events to stdout for one minute. + * import v8 from 'node:v8'; + * v8.setFlagsFromString('--trace_gc'); + * setTimeout(() => { v8.setFlagsFromString('--notrace_gc'); }, 60e3); + * ``` + * @since v1.0.0 + */ + function setFlagsFromString(flags: string): void; + /** + * This is similar to the [`queryObjects()` console API](https://developer.chrome.com/docs/devtools/console/utilities#queryObjects-function) + * provided by the Chromium DevTools console. It can be used to search for objects that have the matching constructor on its prototype chain + * in the heap after a full garbage collection, which can be useful for memory leak regression tests. To avoid surprising results, users should + * avoid using this API on constructors whose implementation they don't control, or on constructors that can be invoked by other parties in the + * application. + * + * To avoid accidental leaks, this API does not return raw references to the objects found. By default, it returns the count of the objects + * found. If `options.format` is `'summary'`, it returns an array containing brief string representations for each object. The visibility provided + * in this API is similar to what the heap snapshot provides, while users can save the cost of serialization and parsing and directly filter the + * target objects during the search. + * + * Only objects created in the current execution context are included in the results. + * + * ```js + * import { queryObjects } from 'node:v8'; + * class A { foo = 'bar'; } + * console.log(queryObjects(A)); // 0 + * const a = new A(); + * console.log(queryObjects(A)); // 1 + * // [ "A { foo: 'bar' }" ] + * console.log(queryObjects(A, { format: 'summary' })); + * + * class B extends A { bar = 'qux'; } + * const b = new B(); + * console.log(queryObjects(B)); // 1 + * // [ "B { foo: 'bar', bar: 'qux' }" ] + * console.log(queryObjects(B, { format: 'summary' })); + * + * // Note that, when there are child classes inheriting from a constructor, + * // the constructor also shows up in the prototype chain of the child + * // classes's prototoype, so the child classes's prototoype would also be + * // included in the result. + * console.log(queryObjects(A)); // 3 + * // [ "B { foo: 'bar', bar: 'qux' }", 'A {}', "A { foo: 'bar' }" ] + * console.log(queryObjects(A, { format: 'summary' })); + * ``` + * @param ctor The constructor that can be used to search on the prototype chain in order to filter target objects in the heap. + * @since v20.13.0 + */ + function queryObjects(ctor: Function): number | string[]; + function queryObjects(ctor: Function, options: { format: "count" }): number; + function queryObjects(ctor: Function, options: { format: "summary" }): string[]; + /** + * Generates a snapshot of the current V8 heap and returns a Readable + * Stream that may be used to read the JSON serialized representation. + * This JSON stream format is intended to be used with tools such as + * Chrome DevTools. The JSON schema is undocumented and specific to the + * V8 engine. Therefore, the schema may change from one version of V8 to the next. + * + * Creating a heap snapshot requires memory about twice the size of the heap at + * the time the snapshot is created. This results in the risk of OOM killers + * terminating the process. + * + * Generating a snapshot is a synchronous operation which blocks the event loop + * for a duration depending on the heap size. + * + * ```js + * // Print heap snapshot to the console + * import v8 from 'node:v8'; + * const stream = v8.getHeapSnapshot(); + * stream.pipe(process.stdout); + * ``` + * @since v11.13.0 + * @return A Readable containing the V8 heap snapshot. + */ + function getHeapSnapshot(options?: HeapSnapshotOptions): Readable; + /** + * Generates a snapshot of the current V8 heap and writes it to a JSON + * file. This file is intended to be used with tools such as Chrome + * DevTools. The JSON schema is undocumented and specific to the V8 + * engine, and may change from one version of V8 to the next. + * + * A heap snapshot is specific to a single V8 isolate. When using `worker threads`, a heap snapshot generated from the main thread will + * not contain any information about the workers, and vice versa. + * + * Creating a heap snapshot requires memory about twice the size of the heap at + * the time the snapshot is created. This results in the risk of OOM killers + * terminating the process. + * + * Generating a snapshot is a synchronous operation which blocks the event loop + * for a duration depending on the heap size. + * + * ```js + * import { writeHeapSnapshot } from 'node:v8'; + * import { + * Worker, + * isMainThread, + * parentPort, + * } from 'node:worker_threads'; + * + * if (isMainThread) { + * const worker = new Worker(__filename); + * + * worker.once('message', (filename) => { + * console.log(`worker heapdump: ${filename}`); + * // Now get a heapdump for the main thread. + * console.log(`main thread heapdump: ${writeHeapSnapshot()}`); + * }); + * + * // Tell the worker to create a heapdump. + * worker.postMessage('heapdump'); + * } else { + * parentPort.once('message', (message) => { + * if (message === 'heapdump') { + * // Generate a heapdump for the worker + * // and return the filename to the parent. + * parentPort.postMessage(writeHeapSnapshot()); + * } + * }); + * } + * ``` + * @since v11.13.0 + * @param filename The file path where the V8 heap snapshot is to be saved. If not specified, a file name with the pattern `'Heap-${yyyymmdd}-${hhmmss}-${pid}-${thread_id}.heapsnapshot'` will be + * generated, where `{pid}` will be the PID of the Node.js process, `{thread_id}` will be `0` when `writeHeapSnapshot()` is called from the main Node.js thread or the id of a + * worker thread. + * @return The filename where the snapshot was saved. + */ + function writeHeapSnapshot(filename?: string, options?: HeapSnapshotOptions): string; + /** + * Get statistics about code and its metadata in the heap, see + * V8 [`GetHeapCodeAndMetadataStatistics`](https://v8docs.nodesource.com/node-13.2/d5/dda/classv8_1_1_isolate.html#a6079122af17612ef54ef3348ce170866) API. Returns an object with the + * following properties: + * + * ```js + * { + * code_and_metadata_size: 212208, + * bytecode_and_metadata_size: 161368, + * external_script_source_size: 1410794, + * cpu_profiler_metadata_size: 0, + * } + * ``` + * @since v12.8.0 + */ + function getHeapCodeStatistics(): HeapCodeStatistics; + /** + * @since v25.0.0 + */ + interface SyncCPUProfileHandle { + /** + * Stopping collecting the profile and return the profile data. + * @since v25.0.0 + */ + stop(): string; + /** + * Stopping collecting the profile and the profile will be discarded. + * @since v25.0.0 + */ + [Symbol.dispose](): void; + } + /** + * @since v24.8.0 + */ + interface CPUProfileHandle { + /** + * Stopping collecting the profile, then return a Promise that fulfills with an error or the + * profile data. + * @since v24.8.0 + */ + stop(): Promise; + /** + * Stopping collecting the profile and the profile will be discarded. + * @since v24.8.0 + */ + [Symbol.asyncDispose](): Promise; + } + /** + * @since v24.9.0 + */ + interface HeapProfileHandle { + /** + * Stopping collecting the profile, then return a Promise that fulfills with an error or the + * profile data. + * @since v24.9.0 + */ + stop(): Promise; + /** + * Stopping collecting the profile and the profile will be discarded. + * @since v24.9.0 + */ + [Symbol.asyncDispose](): Promise; + } + /** + * Starting a CPU profile then return a `SyncCPUProfileHandle` object. + * This API supports `using` syntax. + * + * ```js + * const handle = v8.startCpuProfile(); + * const profile = handle.stop(); + * console.log(profile); + * ``` + * @since v25.0.0 + */ + function startCpuProfile(): SyncCPUProfileHandle; + /** + * V8 only supports `Latin-1/ISO-8859-1` and `UTF16` as the underlying representation of a string. + * If the `content` uses `Latin-1/ISO-8859-1` as the underlying representation, this function will return true; + * otherwise, it returns false. + * + * If this method returns false, that does not mean that the string contains some characters not in `Latin-1/ISO-8859-1`. + * Sometimes a `Latin-1` string may also be represented as `UTF16`. + * + * ```js + * const { isStringOneByteRepresentation } = require('node:v8'); + * + * const Encoding = { + * latin1: 1, + * utf16le: 2, + * }; + * const buffer = Buffer.alloc(100); + * function writeString(input) { + * if (isStringOneByteRepresentation(input)) { + * buffer.writeUint8(Encoding.latin1); + * buffer.writeUint32LE(input.length, 1); + * buffer.write(input, 5, 'latin1'); + * } else { + * buffer.writeUint8(Encoding.utf16le); + * buffer.writeUint32LE(input.length * 2, 1); + * buffer.write(input, 5, 'utf16le'); + * } + * } + * writeString('hello'); + * writeString('你好'); + * ``` + * @since v23.10.0, v22.15.0 + */ + function isStringOneByteRepresentation(content: string): boolean; + /** + * @since v8.0.0 + */ + class Serializer { + /** + * Writes out a header, which includes the serialization format version. + */ + writeHeader(): void; + /** + * Serializes a JavaScript value and adds the serialized representation to the + * internal buffer. + * + * This throws an error if `value` cannot be serialized. + */ + writeValue(val: any): boolean; + /** + * Returns the stored internal buffer. This serializer should not be used once + * the buffer is released. Calling this method results in undefined behavior + * if a previous write has failed. + */ + releaseBuffer(): NonSharedBuffer; + /** + * Marks an `ArrayBuffer` as having its contents transferred out of band. + * Pass the corresponding `ArrayBuffer` in the deserializing context to `deserializer.transferArrayBuffer()`. + * @param id A 32-bit unsigned integer. + * @param arrayBuffer An `ArrayBuffer` instance. + */ + transferArrayBuffer(id: number, arrayBuffer: ArrayBuffer): void; + /** + * Write a raw 32-bit unsigned integer. + * For use inside of a custom `serializer._writeHostObject()`. + */ + writeUint32(value: number): void; + /** + * Write a raw 64-bit unsigned integer, split into high and low 32-bit parts. + * For use inside of a custom `serializer._writeHostObject()`. + */ + writeUint64(hi: number, lo: number): void; + /** + * Write a JS `number` value. + * For use inside of a custom `serializer._writeHostObject()`. + */ + writeDouble(value: number): void; + /** + * Write raw bytes into the serializer's internal buffer. The deserializer + * will require a way to compute the length of the buffer. + * For use inside of a custom `serializer._writeHostObject()`. + */ + writeRawBytes(buffer: NodeJS.ArrayBufferView): void; + } + /** + * A subclass of `Serializer` that serializes `TypedArray`(in particular `Buffer`) and `DataView` objects as host objects, and only + * stores the part of their underlying `ArrayBuffer`s that they are referring to. + * @since v8.0.0 + */ + class DefaultSerializer extends Serializer {} + /** + * @since v8.0.0 + */ + class Deserializer { + constructor(data: NodeJS.TypedArray); + /** + * Reads and validates a header (including the format version). + * May, for example, reject an invalid or unsupported wire format. In that case, + * an `Error` is thrown. + */ + readHeader(): boolean; + /** + * Deserializes a JavaScript value from the buffer and returns it. + */ + readValue(): any; + /** + * Marks an `ArrayBuffer` as having its contents transferred out of band. + * Pass the corresponding `ArrayBuffer` in the serializing context to `serializer.transferArrayBuffer()` (or return the `id` from `serializer._getSharedArrayBufferId()` in the case of + * `SharedArrayBuffer`s). + * @param id A 32-bit unsigned integer. + * @param arrayBuffer An `ArrayBuffer` instance. + */ + transferArrayBuffer(id: number, arrayBuffer: ArrayBuffer): void; + /** + * Reads the underlying wire format version. Likely mostly to be useful to + * legacy code reading old wire format versions. May not be called before `.readHeader()`. + */ + getWireFormatVersion(): number; + /** + * Read a raw 32-bit unsigned integer and return it. + * For use inside of a custom `deserializer._readHostObject()`. + */ + readUint32(): number; + /** + * Read a raw 64-bit unsigned integer and return it as an array `[hi, lo]` with two 32-bit unsigned integer entries. + * For use inside of a custom `deserializer._readHostObject()`. + */ + readUint64(): [number, number]; + /** + * Read a JS `number` value. + * For use inside of a custom `deserializer._readHostObject()`. + */ + readDouble(): number; + /** + * Read raw bytes from the deserializer's internal buffer. The `length` parameter + * must correspond to the length of the buffer that was passed to `serializer.writeRawBytes()`. + * For use inside of a custom `deserializer._readHostObject()`. + */ + readRawBytes(length: number): Buffer; + } + /** + * A subclass of `Deserializer` corresponding to the format written by `DefaultSerializer`. + * @since v8.0.0 + */ + class DefaultDeserializer extends Deserializer {} + /** + * Uses a `DefaultSerializer` to serialize `value` into a buffer. + * + * `ERR_BUFFER_TOO_LARGE` will be thrown when trying to + * serialize a huge object which requires buffer + * larger than `buffer.constants.MAX_LENGTH`. + * @since v8.0.0 + */ + function serialize(value: any): NonSharedBuffer; + /** + * Uses a `DefaultDeserializer` with default options to read a JS value + * from a buffer. + * @since v8.0.0 + * @param buffer A buffer returned by {@link serialize}. + */ + function deserialize(buffer: NodeJS.ArrayBufferView): any; + /** + * The `v8.takeCoverage()` method allows the user to write the coverage started by `NODE_V8_COVERAGE` to disk on demand. This method can be invoked multiple + * times during the lifetime of the process. Each time the execution counter will + * be reset and a new coverage report will be written to the directory specified + * by `NODE_V8_COVERAGE`. + * + * When the process is about to exit, one last coverage will still be written to + * disk unless {@link stopCoverage} is invoked before the process exits. + * @since v15.1.0, v14.18.0, v12.22.0 + */ + function takeCoverage(): void; + /** + * The `v8.stopCoverage()` method allows the user to stop the coverage collection + * started by `NODE_V8_COVERAGE`, so that V8 can release the execution count + * records and optimize code. This can be used in conjunction with {@link takeCoverage} if the user wants to collect the coverage on demand. + * @since v15.1.0, v14.18.0, v12.22.0 + */ + function stopCoverage(): void; + /** + * The API is a no-op if `--heapsnapshot-near-heap-limit` is already set from the command line or the API is called more than once. + * `limit` must be a positive integer. See [`--heapsnapshot-near-heap-limit`](https://nodejs.org/docs/latest-v25.x/api/cli.html#--heapsnapshot-near-heap-limitmax_count) for more information. + * @since v18.10.0, v16.18.0 + */ + function setHeapSnapshotNearHeapLimit(limit: number): void; + /** + * This API collects GC data in current thread. + * @since v19.6.0, v18.15.0 + */ + class GCProfiler { + /** + * Start collecting GC data. + * @since v19.6.0, v18.15.0 + */ + start(): void; + /** + * Stop collecting GC data and return an object. The content of object + * is as follows. + * + * ```json + * { + * "version": 1, + * "startTime": 1674059033862, + * "statistics": [ + * { + * "gcType": "Scavenge", + * "beforeGC": { + * "heapStatistics": { + * "totalHeapSize": 5005312, + * "totalHeapSizeExecutable": 524288, + * "totalPhysicalSize": 5226496, + * "totalAvailableSize": 4341325216, + * "totalGlobalHandlesSize": 8192, + * "usedGlobalHandlesSize": 2112, + * "usedHeapSize": 4883840, + * "heapSizeLimit": 4345298944, + * "mallocedMemory": 254128, + * "externalMemory": 225138, + * "peakMallocedMemory": 181760 + * }, + * "heapSpaceStatistics": [ + * { + * "spaceName": "read_only_space", + * "spaceSize": 0, + * "spaceUsedSize": 0, + * "spaceAvailableSize": 0, + * "physicalSpaceSize": 0 + * } + * ] + * }, + * "cost": 1574.14, + * "afterGC": { + * "heapStatistics": { + * "totalHeapSize": 6053888, + * "totalHeapSizeExecutable": 524288, + * "totalPhysicalSize": 5500928, + * "totalAvailableSize": 4341101384, + * "totalGlobalHandlesSize": 8192, + * "usedGlobalHandlesSize": 2112, + * "usedHeapSize": 4059096, + * "heapSizeLimit": 4345298944, + * "mallocedMemory": 254128, + * "externalMemory": 225138, + * "peakMallocedMemory": 181760 + * }, + * "heapSpaceStatistics": [ + * { + * "spaceName": "read_only_space", + * "spaceSize": 0, + * "spaceUsedSize": 0, + * "spaceAvailableSize": 0, + * "physicalSpaceSize": 0 + * } + * ] + * } + * } + * ], + * "endTime": 1674059036865 + * } + * ``` + * + * Here's an example. + * + * ```js + * import { GCProfiler } from 'node:v8'; + * const profiler = new GCProfiler(); + * profiler.start(); + * setTimeout(() => { + * console.log(profiler.stop()); + * }, 1000); + * ``` + * @since v19.6.0, v18.15.0 + */ + stop(): GCProfilerResult; + /** + * Stop collecting GC data, and discard the profile. + * @since v25.5.0 + */ + [Symbol.dispose](): void; + } + interface GCProfilerResult { + version: number; + startTime: number; + endTime: number; + statistics: Array<{ + gcType: string; + cost: number; + beforeGC: { + heapStatistics: HeapStatistics; + heapSpaceStatistics: HeapSpaceStatistics[]; + }; + afterGC: { + heapStatistics: HeapStatistics; + heapSpaceStatistics: HeapSpaceStatistics[]; + }; + }>; + } + interface HeapStatistics { + totalHeapSize: number; + totalHeapSizeExecutable: number; + totalPhysicalSize: number; + totalAvailableSize: number; + totalGlobalHandlesSize: number; + usedGlobalHandlesSize: number; + usedHeapSize: number; + heapSizeLimit: number; + mallocedMemory: number; + externalMemory: number; + peakMallocedMemory: number; + } + interface HeapSpaceStatistics { + spaceName: string; + spaceSize: number; + spaceUsedSize: number; + spaceAvailableSize: number; + physicalSpaceSize: number; + } + /** + * Called when a promise is constructed. This does not mean that corresponding before/after events will occur, only that the possibility exists. This will + * happen if a promise is created without ever getting a continuation. + * @since v17.1.0, v16.14.0 + * @param promise The promise being created. + * @param parent The promise continued from, if applicable. + */ + interface Init { + (promise: Promise, parent: Promise): void; + } + /** + * Called before a promise continuation executes. This can be in the form of `then()`, `catch()`, or `finally()` handlers or an await resuming. + * + * The before callback will be called 0 to N times. The before callback will typically be called 0 times if no continuation was ever made for the promise. + * The before callback may be called many times in the case where many continuations have been made from the same promise. + * @since v17.1.0, v16.14.0 + */ + interface Before { + (promise: Promise): void; + } + /** + * Called immediately after a promise continuation executes. This may be after a `then()`, `catch()`, or `finally()` handler or before an await after another await. + * @since v17.1.0, v16.14.0 + */ + interface After { + (promise: Promise): void; + } + /** + * Called when the promise receives a resolution or rejection value. This may occur synchronously in the case of {@link Promise.resolve()} or + * {@link Promise.reject()}. + * @since v17.1.0, v16.14.0 + */ + interface Settled { + (promise: Promise): void; + } + /** + * Key events in the lifetime of a promise have been categorized into four areas: creation of a promise, before/after a continuation handler is called or + * around an await, and when the promise resolves or rejects. + * + * Because promises are asynchronous resources whose lifecycle is tracked via the promise hooks mechanism, the `init()`, `before()`, `after()`, and + * `settled()` callbacks must not be async functions as they create more promises which would produce an infinite loop. + * @since v17.1.0, v16.14.0 + */ + interface HookCallbacks { + init?: Init; + before?: Before; + after?: After; + settled?: Settled; + } + interface PromiseHooks { + /** + * The `init` hook must be a plain function. Providing an async function will throw as it would produce an infinite microtask loop. + * @since v17.1.0, v16.14.0 + * @param init The {@link Init | `init` callback} to call when a promise is created. + * @return Call to stop the hook. + */ + onInit: (init: Init) => Function; + /** + * The `settled` hook must be a plain function. Providing an async function will throw as it would produce an infinite microtask loop. + * @since v17.1.0, v16.14.0 + * @param settled The {@link Settled | `settled` callback} to call when a promise is created. + * @return Call to stop the hook. + */ + onSettled: (settled: Settled) => Function; + /** + * The `before` hook must be a plain function. Providing an async function will throw as it would produce an infinite microtask loop. + * @since v17.1.0, v16.14.0 + * @param before The {@link Before | `before` callback} to call before a promise continuation executes. + * @return Call to stop the hook. + */ + onBefore: (before: Before) => Function; + /** + * The `after` hook must be a plain function. Providing an async function will throw as it would produce an infinite microtask loop. + * @since v17.1.0, v16.14.0 + * @param after The {@link After | `after` callback} to call after a promise continuation executes. + * @return Call to stop the hook. + */ + onAfter: (after: After) => Function; + /** + * Registers functions to be called for different lifetime events of each promise. + * The callbacks `init()`/`before()`/`after()`/`settled()` are called for the respective events during a promise's lifetime. + * All callbacks are optional. For example, if only promise creation needs to be tracked, then only the init callback needs to be passed. + * The hook callbacks must be plain functions. Providing async functions will throw as it would produce an infinite microtask loop. + * @since v17.1.0, v16.14.0 + * @param callbacks The {@link HookCallbacks | Hook Callbacks} to register + * @return Used for disabling hooks + */ + createHook: (callbacks: HookCallbacks) => Function; + } + /** + * The `promiseHooks` interface can be used to track promise lifecycle events. + * @since v17.1.0, v16.14.0 + */ + const promiseHooks: PromiseHooks; + type StartupSnapshotCallbackFn = (args: any) => any; + /** + * The `v8.startupSnapshot` interface can be used to add serialization and deserialization hooks for custom startup snapshots. + * + * ```bash + * $ node --snapshot-blob snapshot.blob --build-snapshot entry.js + * # This launches a process with the snapshot + * $ node --snapshot-blob snapshot.blob + * ``` + * + * In the example above, `entry.js` can use methods from the `v8.startupSnapshot` interface to specify how to save information for custom objects + * in the snapshot during serialization and how the information can be used to synchronize these objects during deserialization of the snapshot. + * For example, if the `entry.js` contains the following script: + * + * ```js + * 'use strict'; + * + * import fs from 'node:fs'; + * import zlib from 'node:zlib'; + * import path from 'node:path'; + * import assert from 'node:assert'; + * + * import v8 from 'node:v8'; + * + * class BookShelf { + * storage = new Map(); + * + * // Reading a series of files from directory and store them into storage. + * constructor(directory, books) { + * for (const book of books) { + * this.storage.set(book, fs.readFileSync(path.join(directory, book))); + * } + * } + * + * static compressAll(shelf) { + * for (const [ book, content ] of shelf.storage) { + * shelf.storage.set(book, zlib.gzipSync(content)); + * } + * } + * + * static decompressAll(shelf) { + * for (const [ book, content ] of shelf.storage) { + * shelf.storage.set(book, zlib.gunzipSync(content)); + * } + * } + * } + * + * // __dirname here is where the snapshot script is placed + * // during snapshot building time. + * const shelf = new BookShelf(__dirname, [ + * 'book1.en_US.txt', + * 'book1.es_ES.txt', + * 'book2.zh_CN.txt', + * ]); + * + * assert(v8.startupSnapshot.isBuildingSnapshot()); + * // On snapshot serialization, compress the books to reduce size. + * v8.startupSnapshot.addSerializeCallback(BookShelf.compressAll, shelf); + * // On snapshot deserialization, decompress the books. + * v8.startupSnapshot.addDeserializeCallback(BookShelf.decompressAll, shelf); + * v8.startupSnapshot.setDeserializeMainFunction((shelf) => { + * // process.env and process.argv are refreshed during snapshot + * // deserialization. + * const lang = process.env.BOOK_LANG || 'en_US'; + * const book = process.argv[1]; + * const name = `${book}.${lang}.txt`; + * console.log(shelf.storage.get(name)); + * }, shelf); + * ``` + * + * The resulted binary will get print the data deserialized from the snapshot during start up, using the refreshed `process.env` and `process.argv` of the launched process: + * + * ```bash + * $ BOOK_LANG=es_ES node --snapshot-blob snapshot.blob book1 + * # Prints content of book1.es_ES.txt deserialized from the snapshot. + * ``` + * + * Currently the application deserialized from a user-land snapshot cannot be snapshotted again, so these APIs are only available to applications that are not deserialized from a user-land snapshot. + * + * @since v18.6.0, v16.17.0 + */ + namespace startupSnapshot { + /** + * Add a callback that will be called when the Node.js instance is about to get serialized into a snapshot and exit. + * This can be used to release resources that should not or cannot be serialized or to convert user data into a form more suitable for serialization. + * @since v18.6.0, v16.17.0 + */ + function addSerializeCallback(callback: StartupSnapshotCallbackFn, data?: any): void; + /** + * Add a callback that will be called when the Node.js instance is deserialized from a snapshot. + * The `callback` and the `data` (if provided) will be serialized into the snapshot, they can be used to re-initialize the state of the application or + * to re-acquire resources that the application needs when the application is restarted from the snapshot. + * @since v18.6.0, v16.17.0 + */ + function addDeserializeCallback(callback: StartupSnapshotCallbackFn, data?: any): void; + /** + * This sets the entry point of the Node.js application when it is deserialized from a snapshot. This can be called only once in the snapshot building script. + * If called, the deserialized application no longer needs an additional entry point script to start up and will simply invoke the callback along with the deserialized + * data (if provided), otherwise an entry point script still needs to be provided to the deserialized application. + * @since v18.6.0, v16.17.0 + */ + function setDeserializeMainFunction(callback: StartupSnapshotCallbackFn, data?: any): void; + /** + * Returns true if the Node.js instance is run to build a snapshot. + * @since v18.6.0, v16.17.0 + */ + function isBuildingSnapshot(): boolean; + } +} +declare module "v8" { + export * from "node:v8"; +} diff --git a/server/api/node_modules/@types/node/vm.d.ts b/server/api/node_modules/@types/node/vm.d.ts new file mode 100644 index 0000000..a349741 --- /dev/null +++ b/server/api/node_modules/@types/node/vm.d.ts @@ -0,0 +1,1170 @@ +declare module "node:vm" { + import { NonSharedBuffer } from "node:buffer"; + import { ImportAttributes, ImportPhase } from "node:module"; + interface Context extends NodeJS.Dict {} + interface BaseOptions { + /** + * Specifies the filename used in stack traces produced by this script. + * @default '' + */ + filename?: string | undefined; + /** + * Specifies the line number offset that is displayed in stack traces produced by this script. + * @default 0 + */ + lineOffset?: number | undefined; + /** + * Specifies the column number offset that is displayed in stack traces produced by this script. + * @default 0 + */ + columnOffset?: number | undefined; + } + type DynamicModuleLoader = ( + specifier: string, + referrer: T, + importAttributes: ImportAttributes, + phase: ImportPhase, + ) => Module | Promise; + interface ScriptOptions extends BaseOptions { + /** + * Provides an optional data with V8's code cache data for the supplied source. + */ + cachedData?: NodeJS.ArrayBufferView | undefined; + /** @deprecated in favor of `script.createCachedData()` */ + produceCachedData?: boolean | undefined; + /** + * Used to specify how the modules should be loaded during the evaluation of this script when `import()` is called. This option is + * part of the experimental modules API. We do not recommend using it in a production environment. For detailed information, see + * [Support of dynamic `import()` in compilation APIs](https://nodejs.org/docs/latest-v25.x/api/vm.html#support-of-dynamic-import-in-compilation-apis). + * @experimental + */ + importModuleDynamically?: + | DynamicModuleLoader +``` + +Using unpkg CDN: + +```html + +``` + +## Example + +```js +import axios from 'axios'; +//const axios = require('axios'); // legacy way + +try { + const response = await axios.get('/user?ID=12345'); + console.log(response); +} catch (error) { + console.error(error); +} + +// Optionally the request above could also be done as +axios + .get('/user', { + params: { + ID: 12345, + }, + }) + .then(function (response) { + console.log(response); + }) + .catch(function (error) { + console.log(error); + }) + .finally(function () { + // always executed + }); + +// Want to use async/await? Add the `async` keyword to your outer function/method. +async function getUser() { + try { + const response = await axios.get('/user?ID=12345'); + console.log(response); + } catch (error) { + console.error(error); + } +} +``` + +> **Note**: `async/await` is part of ECMAScript 2017 and is not supported in Internet +> Explorer and older browsers, so use with caution. + +Performing a `POST` request + +```js +const response = await axios.post('/user', { + firstName: 'Fred', + lastName: 'Flintstone', +}); +console.log(response); +``` + +Performing multiple concurrent requests + +```js +function getUserAccount() { + return axios.get('/user/12345'); +} + +function getUserPermissions() { + return axios.get('/user/12345/permissions'); +} + +Promise.all([getUserAccount(), getUserPermissions()]).then(function (results) { + const acct = results[0]; + const perm = results[1]; +}); +``` + +## axios API + +Requests can be made by passing the relevant config to `axios`. + +##### axios(config) + +```js +// Send a POST request +axios({ + method: 'post', + url: '/user/12345', + data: { + firstName: 'Fred', + lastName: 'Flintstone', + }, +}); +``` + +```js +// GET request for remote image in node.js +const response = await axios({ + method: 'get', + url: 'https://bit.ly/2mTM3nY', + responseType: 'stream', +}); +response.data.pipe(fs.createWriteStream('ada_lovelace.jpg')); +``` + +##### axios(url[, config]) + +```js +// Send a GET request (default method) +axios('/user/12345'); +``` + +### Request method aliases + +For convenience, aliases have been provided for all common request methods. + +##### axios.request(config) + +##### axios.get(url[, config]) + +##### axios.delete(url[, config]) + +##### axios.head(url[, config]) + +##### axios.options(url[, config]) + +##### axios.post(url[, data[, config]]) + +##### axios.put(url[, data[, config]]) + +##### axios.patch(url[, data[, config]]) + +###### NOTE + +When using the alias methods `url`, `method`, and `data` properties don't need to be specified in config. + +### Concurrency (Deprecated) + +Please use `Promise.all` to replace the below functions. + +Helper functions for dealing with concurrent requests. + +axios.all(iterable) +axios.spread(callback) + +### Creating an instance + +You can create a new instance of axios with a custom config. + +##### axios.create([config]) + +```js +const instance = axios.create({ + baseURL: 'https://some-domain.com/api/', + timeout: 1000, + headers: { 'X-Custom-Header': 'foobar' }, +}); +``` + +### Instance methods + +The available instance methods are listed below. The specified config will be merged with the instance config. + +##### axios#request(config) + +##### axios#get(url[, config]) + +##### axios#delete(url[, config]) + +##### axios#head(url[, config]) + +##### axios#options(url[, config]) + +##### axios#post(url[, data[, config]]) + +##### axios#put(url[, data[, config]]) + +##### axios#patch(url[, data[, config]]) + +##### axios#getUri([config]) + +## Request Config + +### ⚠️ Security notice: decompression-bomb protection is opt-in + +By default `maxContentLength` and `maxBodyLength` are `-1` (unlimited). A malicious or compromised server can return a tiny gzip/deflate/brotli body that expands to gigabytes and exhaust the Node.js process. + +If you call servers you do not fully trust, **set a cap**: + +```js +axios.defaults.maxContentLength = 10 * 1024 * 1024; // 10 MB +axios.defaults.maxBodyLength = 10 * 1024 * 1024; +``` + +See the [security guide](https://axios.rest/pages/misc/security.html) for details. + +These are the available config options for making requests. Only the `url` is required. Requests will default to `GET` if `method` is not specified. + +```js +{ + // `url` is the server URL that will be used for the request + url: '/user', + + // `method` is the request method to be used when making the request + method: 'get', // default + + // `baseURL` will be prepended to `url` unless `url` is absolute and the option `allowAbsoluteUrls` is set to true. + // It can be convenient to set `baseURL` for an instance of axios to pass relative URLs + // to the methods of that instance. + baseURL: 'https://some-domain.com/api/', + + // `allowAbsoluteUrls` determines whether or not absolute URLs will override a configured `baseUrl`. + // When set to true (default), absolute values for `url` will override `baseUrl`. + // When set to false, absolute values for `url` will always be prepended by `baseUrl`. + allowAbsoluteUrls: true, + + // `transformRequest` allows changes to the request data before it is sent to the server + // This is only applicable for request methods 'PUT', 'POST', 'PATCH' and 'DELETE' + // The last function in the array must return a string or an instance of Buffer, ArrayBuffer, + // FormData or Stream + // You may modify the headers object. + transformRequest: [function (data, headers) { + // Do whatever you want to transform the data + + return data; + }], + + // `transformResponse` allows changes to the response data to be made before + // it is passed to then/catch + transformResponse: [function (data) { + // Do whatever you want to transform the data + + return data; + }], + + // `headers` are custom headers to be sent + headers: {'X-Requested-With': 'XMLHttpRequest'}, + + // `params` are the URL parameters to be sent with the request + // Must be a plain object or a URLSearchParams object + params: { + ID: 12345 + }, + + // `paramsSerializer` is an optional config that allows you to customize serializing `params`. + paramsSerializer: { + + // Custom encoder function which sends key/value pairs in an iterative fashion. + encode?: (param: string): string => { /* Do custom operations here and return transformed string */ }, + + // Custom serializer function for the entire parameter. Allows the user to mimic pre 1.x behaviour. + serialize?: (params: Record, options?: ParamsSerializerOptions ), + + // Configuration for formatting array indexes in the params. + indexes: false, // Three available options: (1) indexes: null (leads to no brackets), (2) (default) indexes: false (leads to empty brackets), (3) indexes: true (leads to brackets with indexes). + + // Maximum object nesting depth when serializing params. Payloads deeper than this throw an + // AxiosError with code ERR_FORM_DATA_DEPTH_EXCEEDED. Default: 100. Set to Infinity to disable. + maxDepth: 100 + + }, + + // `data` is the data to be sent as the request body + // Only applicable for request methods 'PUT', 'POST', 'DELETE', and 'PATCH' + // When no `transformRequest` is set, it must be of one of the following types: + // - string, plain object, ArrayBuffer, ArrayBufferView, URLSearchParams + // - Browser only: FormData, File, Blob + // - Node only: Stream, Buffer, FormData (form-data package) + data: { + firstName: 'Fred' + }, + + // syntax alternative to send data into the body + // method post + // only the value is sent, not the key + data: 'Country=Brasil&City=Belo Horizonte', + + // `timeout` specifies the number of milliseconds before the request times out. + // If the request takes longer than `timeout`, the request will be aborted. + timeout: 1000, // default is `0` (no timeout) + + // `withCredentials` indicates whether or not cross-site Access-Control requests + // should be made using credentials + // This only controls whether the browser sends credentials. + // It does not control whether the XSRF header is added. + withCredentials: false, // default + + // `adapter` allows custom handling of requests which makes testing easier. + // Return a promise and supply a valid response (see lib/adapters/README.md) + adapter: function (config) { + /* ... */ + }, + // Also, you can set the name of the built-in adapter, or provide an array with their names + // to choose the first available in the environment + adapter: 'xhr', // 'fetch' | 'http' | ['xhr', 'http', 'fetch'] + + // `auth` indicates that HTTP Basic auth should be used, and supplies credentials. + // This will set an `Authorization` header, overwriting any existing + // `Authorization` custom headers you have set using `headers`. + // Please note that only HTTP Basic auth is configurable through this parameter. + // For Bearer tokens and such, use `Authorization` custom headers instead. + auth: { + username: 'janedoe', + password: 's00pers3cret' + }, + + // `responseType` indicates the type of data that the server will respond with + // options are: 'arraybuffer', 'document', 'json', 'text', 'stream' + // browser only: 'blob' + responseType: 'json', // default + + // `responseEncoding` indicates encoding to use for decoding responses (Node.js only) + // Note: Ignored for `responseType` of 'stream' or client-side requests + // options are: 'ascii', 'ASCII', 'ansi', 'ANSI', 'binary', 'BINARY', 'base64', 'BASE64', 'base64url', + // 'BASE64URL', 'hex', 'HEX', 'latin1', 'LATIN1', 'ucs-2', 'UCS-2', 'ucs2', 'UCS2', 'utf-8', 'UTF-8', + // 'utf8', 'UTF8', 'utf16le', 'UTF16LE' + responseEncoding: 'utf8', // default + + // `xsrfCookieName` is the name of the cookie to use as a value for the xsrf token + xsrfCookieName: 'XSRF-TOKEN', // default + + // `xsrfHeaderName` is the name of the http header that carries the xsrf token value + xsrfHeaderName: 'X-XSRF-TOKEN', // default + + // `withXSRFToken` defines whether to send the XSRF header in browser requests. + // `undefined` (default) - set XSRF header only for the same origin requests + // `true` - always set XSRF header, including for cross-origin requests + // `false` - never set XSRF header + // function - resolve with custom logic; receives the internal config object + withXSRFToken: boolean | undefined | ((config: InternalAxiosRequestConfig) => boolean | undefined), + + // `withXSRFToken` controls whether Axios reads the XSRF cookie and sets the XSRF header. + // - `undefined` (default): the XSRF header is set only for same-origin requests. + // - `true`: attempt to set the XSRF header for all requests (including cross-origin). + // - `false`: never set the XSRF header. + // - function: a callback that receives the request `config` and returns `true`, + // `false`, or `undefined` to decide per-request behavior. + // + // Note about `withCredentials`: `withCredentials` controls whether cross-site + // requests include credentials (cookies and HTTP auth). In older Axios versions, + // setting `withCredentials: true` implicitly caused Axios to set the XSRF header + // for cross-origin requests. Newer Axios separates these concerns: to allow the + // XSRF header to be sent for cross-origin requests you should set both + // `withCredentials: true` and `withXSRFToken: true`. + // + // Example: + // axios.get('/user', { withCredentials: true, withXSRFToken: true }); + + // `onUploadProgress` allows handling of progress events for uploads + // browser & node.js + onUploadProgress: function ({loaded, total, progress, bytes, estimated, rate, upload = true}) { + // Do whatever you want with the Axios progress event + }, + + // `onDownloadProgress` allows handling of progress events for downloads + // browser & node.js + onDownloadProgress: function ({loaded, total, progress, bytes, estimated, rate, download = true}) { + // Do whatever you want with the Axios progress event + }, + + // `maxContentLength` defines the max size of the http response content in bytes allowed in node.js + maxContentLength: 2000, + + // `maxBodyLength` (Node only option) defines the max size of the http request content in bytes allowed + maxBodyLength: 2000, + + // `validateStatus` defines whether to resolve or reject the promise for a given + // HTTP response status code. If `validateStatus` returns `true` (or is set to `null` + // or `undefined`), the promise will be resolved; otherwise, the promise will be + // rejected. + validateStatus: function (status) { + return status >= 200 && status < 300; // default + }, + + // `maxRedirects` defines the maximum number of redirects to follow in node.js. + // If set to 0, no redirects will be followed. + maxRedirects: 21, // default + + // `beforeRedirect` defines a function that will be called before redirect. + // Use this to adjust the request options upon redirecting, + // to inspect the latest response headers, + // or to cancel the request by throwing an error + // If maxRedirects is set to 0, `beforeRedirect` is not used. + + beforeRedirect: (options, { headers }) => { + if ( + options.hostname === "example.com" && + options.protocol === "https:" + ) { + options.auth = "user:password"; + } + }, + // Security note: + // The `beforeRedirect` hook runs after sensitive headers are stripped during redirects. + //The `follow-redirects` library removes credentials on protocol downgrade (HTTPS → HTTP) for security. + //Since `beforeRedirect` runs after this, re-injecting credentials without checking the protocol can expose sensitive data. + //Always ensure credentials are only added for trusted HTTPS destinations. + +// Security note: +// The beforeRedirect hook runs after sensitive headers are stripped during redirects. +// Re-injecting credentials without checking the destination can expose sensitive data. +// Only add credentials for trusted HTTPS destinations. +// Avoid re-adding credentials on downgraded redirects. + + + // `socketPath` defines a UNIX Socket to be used in node.js. + // e.g. '/var/run/docker.sock' to send requests to the docker daemon. + // Only either `socketPath` or `proxy` can be specified. + // If both are specified, `socketPath` is used. + socketPath: null, // default + + // `transport` determines the transport method that will be used to make the request. + // If defined, it will be used. Otherwise, if `maxRedirects` is 0, + // the default `http` or `https` library will be used, depending on the protocol specified in `protocol`. + // Otherwise, the `httpFollow` or `httpsFollow` library will be used, again depending on the protocol, + // which can handle redirects. + transport: undefined, // default + + // `httpAgent` and `httpsAgent` define a custom agent to be used when performing http + // and https requests, respectively, in node.js. This allows options to be added like + // `keepAlive` that are not enabled by default before Node.js v19.0.0. After Node.js + // v19.0.0, you no longer need to customize the agent to enable `keepAlive` because + // `http.globalAgent` has `keepAlive` enabled by default. + httpAgent: new http.Agent({ keepAlive: true }), + httpsAgent: new https.Agent({ keepAlive: true }), + + // `proxy` defines the hostname, port, and protocol of the proxy server. + // You can also define your proxy using the conventional `http_proxy` and + // `https_proxy` environment variables. If you are using environment variables + // for your proxy configuration, you can also define a `no_proxy` environment + // variable as a comma-separated list of domains that should not be proxied. + // Use `false` to disable proxies, ignoring environment variables. + // `auth` indicates that HTTP Basic auth should be used to connect to the proxy, and + // supplies credentials. + // This will set a `Proxy-Authorization` header, overwriting any existing + // `Proxy-Authorization` custom headers you have set using `headers`. + // If the proxy server uses HTTPS, then you must set the protocol to `https`. + proxy: { + protocol: 'https', + host: '127.0.0.1', + // hostname: '127.0.0.1' // Takes precedence over 'host' if both are defined + port: 9000, + auth: { + username: 'mikeymike', + password: 'rapunz3l' + } + }, + + // `cancelToken` specifies a cancel token that can be used to cancel the request + // (see Cancellation section below for details) + cancelToken: new CancelToken(function (cancel) { + }), + + // an alternative way to cancel Axios requests using AbortController + signal: new AbortController().signal, + + // `decompress` indicates whether or not the response body should be decompressed + // automatically. If set to `true` will also remove the 'content-encoding' header + // from the responses objects of all decompressed responses + // - Node only (XHR cannot turn off decompression) + decompress: true, // default + + // `insecureHTTPParser` boolean. + // Indicates where to use an insecure HTTP parser that accepts invalid HTTP headers. + // This may allow interoperability with non-conformant HTTP implementations. + // Using the insecure parser should be avoided. + // see options https://nodejs.org/dist/latest-v12.x/docs/api/http.html#http_http_request_url_options_callback + // see also https://nodejs.org/en/blog/vulnerability/february-2020-security-releases/#strict-http-header-parsing-none + insecureHTTPParser: undefined, // default + + // transitional options for backward compatibility that may be removed in the newer versions + transitional: { + // silent JSON parsing mode + // `true` - ignore JSON parsing errors and set response.data to null if parsing failed (old behaviour) + // `false` - throw SyntaxError if JSON parsing failed + // Important: this option only takes effect when `responseType` is explicitly set to 'json'. + // When `responseType` is omitted (defaults to no value), axios uses `forcedJSONParsing` + // to attempt JSON parsing, but will silently return the raw string on failure regardless + // of this setting. To have invalid JSON throw errors, use: + // { responseType: 'json', transitional: { silentJSONParsing: false } } + silentJSONParsing: true, // default value for the current Axios version + + // try to parse the response string as JSON even if `responseType` is not 'json' + forcedJSONParsing: true, + + // throw ETIMEDOUT error instead of generic ECONNABORTED on request timeouts + clarifyTimeoutError: false, + + // use the legacy interceptor request/response ordering + legacyInterceptorReqResOrdering: true, // default + }, + + env: { + // The FormData class to be used to automatically serialize the payload into a FormData object + FormData: window?.FormData || global?.FormData + }, + + formSerializer: { + visitor: (value, key, path, helpers) => {}; // custom visitor function to serialize form values + dots: boolean; // use dots instead of brackets format + metaTokens: boolean; // keep special endings like {} in parameter key + indexes: boolean; // array indexes format null - no brackets, false - empty brackets, true - brackets with indexes + maxDepth: 100; // maximum object nesting depth; throws AxiosError (ERR_FORM_DATA_DEPTH_EXCEEDED) if exceeded. Set to Infinity to disable. + }, + + // http adapter only (node.js) + maxRate: [ + 100 * 1024, // 100KB/s upload limit, + 100 * 1024 // 100KB/s download limit + ] +} +``` + +## 🔥 HTTP/2 Support + +Axios has experimental HTTP/2 support available via the Node.js HTTP adapter. + +Support depends on the runtime environment and Node.js version. Features like redirects and some behaviors may not be fully supported with HTTP/2. + +Options like `httpVersion` and `http2Options` are adapter-specific and may not work consistently across all environments. + +If HTTP/2 functionality is required, ensure your runtime environment supports it or consider using alternative libraries or custom adapters. + +## Response Schema + +The response to a request contains the following information. + +```js +{ + // `data` is the response that was provided by the server + data: {}, + + // `status` is the HTTP status code from the server response + status: 200, + + // `statusText` is the HTTP status message from the server response + statusText: 'OK', + + // `headers` the HTTP headers that the server responded with + // All header names are lowercase and can be accessed using the bracket notation. + // Example: `response.headers['content-type']` + headers: {}, + + // `config` is the config that was provided to `axios` for the request + config: {}, + + // `request` is the request that generated this response + // It is the last ClientRequest instance in node.js (in redirects) + // and an XMLHttpRequest instance in the browser + request: {} +} +``` + +When using `then`, you will receive the response as follows: + +```js +const response = await axios.get('/user/12345'); +console.log(response.data); +console.log(response.status); +console.log(response.statusText); +console.log(response.headers); +console.log(response.config); +``` + +When using `catch`, or passing a [rejection callback](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/then) as second parameter of `then`, the response will be available through the `error` object as explained in the [Handling Errors](#handling-errors) section. + +## Config Defaults + +You can specify config defaults that will be applied to every request. + +### Global axios defaults + +```js +axios.defaults.baseURL = 'https://api.example.com'; + +// Important: If axios is used with multiple domains, the AUTH_TOKEN will be sent to all of them. +// See below for an example using Custom instance defaults instead. +axios.defaults.headers.common['Authorization'] = AUTH_TOKEN; + +axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded'; +``` + +### Custom instance defaults + +```js +// Set config defaults when creating the instance +const instance = axios.create({ + baseURL: 'https://api.example.com', +}); + +// Alter defaults after instance has been created +instance.defaults.headers.common['Authorization'] = AUTH_TOKEN; +``` + +### Config order of precedence + +Config will be merged with an order of precedence. The order is library defaults found in [lib/defaults/index.js](https://github.com/axios/axios/blob/main/lib/defaults/index.js#L49), then `defaults` property of the instance, and finally `config` argument for the request. The latter will take precedence over the former. Here's an example. + +```js +// Create an instance using the config defaults provided by the library +// At this point the timeout config value is `0` as is the default for the library +const instance = axios.create(); + +// Override timeout default for the library +// Now all requests using this instance will wait 2.5 seconds before timing out +instance.defaults.timeout = 2500; + +// Override timeout for this request as it's known to take a long time +instance.get('/longRequest', { + timeout: 5000, +}); +``` + +## Interceptors + +You can intercept requests or responses before methods like `.get()` or `.post()` +resolve their promises (before code inside `then` or `catch`, or after `await`) + +```js +const instance = axios.create(); + +// Add a request interceptor +instance.interceptors.request.use( + function (config) { + // Do something before the request is sent + return config; + }, + function (error) { + // Do something with the request error + return Promise.reject(error); + } +); + +// Add a response interceptor +instance.interceptors.response.use( + function (response) { + // Any status code that lies within the range of 2xx causes this function to trigger + // Do something with response data + return response; + }, + function (error) { + // Any status codes that fall outside the range of 2xx cause this function to trigger + // Do something with response error + return Promise.reject(error); + } +); +``` + +If you need to remove an interceptor later you can. + +```js +const instance = axios.create(); +const myInterceptor = instance.interceptors.request.use(function () { + /*...*/ +}); +axios.interceptors.request.eject(myInterceptor); +``` + +You can also clear all interceptors for requests or responses. + +```js +const instance = axios.create(); +instance.interceptors.request.use(function () { + /*...*/ +}); +instance.interceptors.request.clear(); // Removes interceptors from requests +instance.interceptors.response.use(function () { + /*...*/ +}); +instance.interceptors.response.clear(); // Removes interceptors from responses +``` + +You can add interceptors to a custom instance of axios. + +```js +const instance = axios.create(); +instance.interceptors.request.use(function () { + /*...*/ +}); +``` + +When you add request interceptors, they are presumed to be asynchronous by default. This can cause a delay +in the execution of your axios request when the main thread is blocked (a promise is created under the hood for +the interceptor and your request gets put at the bottom of the call stack). If your request interceptors are synchronous you can add a flag +to the options object that will tell axios to run the code synchronously and avoid any delays in request execution. + +```js +axios.interceptors.request.use( + function (config) { + config.headers.test = 'I am only a header!'; + return config; + }, + null, + { synchronous: true } +); +``` + +If you want to execute a particular interceptor based on a runtime check, +you can add a `runWhen` function to the options object. The request interceptor will not be executed **if and only if** the return +of `runWhen` is `false`. The function will be called with the config +object (don't forget that you can bind your own arguments to it as well.) This can be handy when you have an +asynchronous request interceptor that only needs to run at certain times. + +```js +function onGetCall(config) { + return config.method === 'get'; +} +axios.interceptors.request.use( + function (config) { + config.headers.test = 'special get headers'; + return config; + }, + null, + { runWhen: onGetCall } +); +``` + +> **Note:** The options parameter(having `synchronous` and `runWhen` properties) is only supported for request interceptors at the moment. + +### Interceptor Execution Order + +**Important:** Interceptors have different execution orders depending on their type! + +Request interceptors are executed in **reverse order** (LIFO - Last In, First Out). This means the _last_ interceptor added is executed **first**. + +Response interceptors are executed in the **order they were added** (FIFO - First In, First Out). This means the _first_ interceptor added is executed **first**. + +Example: + +```js +const instance = axios.create(); + +const interceptor = (id) => (base) => { + console.log(id); + return base; +}; + +instance.interceptors.request.use(interceptor('Request Interceptor 1')); +instance.interceptors.request.use(interceptor('Request Interceptor 2')); +instance.interceptors.request.use(interceptor('Request Interceptor 3')); +instance.interceptors.response.use(interceptor('Response Interceptor 1')); +instance.interceptors.response.use(interceptor('Response Interceptor 2')); +instance.interceptors.response.use(interceptor('Response Interceptor 3')); + +// Console output: +// Request Interceptor 3 +// Request Interceptor 2 +// Request Interceptor 1 +// [HTTP request is made] +// Response Interceptor 1 +// Response Interceptor 2 +// Response Interceptor 3 +``` + +### Multiple Interceptors + +Given that you add multiple response interceptors +and when the response was fulfilled + +- then each interceptor is executed +- then they are executed in the order they were added +- then only the last interceptor's result is returned +- then every interceptor receives the result of its predecessor +- and when the fulfillment-interceptor throws + - then the following fulfillment-interceptor is not called + - then the following rejection-interceptor is called + - once caught, another following fulfill-interceptor is called again (just like in a promise chain). + +Read [the interceptor tests](./test/specs/interceptors.spec.js) to see all this in code. + +## Error Types + +There are many different axios error messages that can appear which can provide basic information about the specifics of the error and where opportunities may lie in debugging. + +The general structure of axios errors is as follows: +| Property | Definition | +| -------- | ---------- | +| message | A quick summary of the error message and the status it failed with. | +| name | This defines where the error originated from. For axios, it will always be an 'AxiosError'. | +| stack | Provides the stack trace of the error. | +| config | An axios config object with specific instance configurations defined by the user from when the request was made | +| code | Represents an axios identified error. The table below lists specific definitions for internal axios error. | +| status | HTTP response status code. See [here](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes) for common HTTP response status code meanings. + +Below is a list of potential axios identified error: + +| Code | Definition | +| ------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| ERR_BAD_OPTION_VALUE | Invalid value provided in axios configuration. | +| ERR_BAD_OPTION | Invalid option provided in axios configuration. | +| ERR_NOT_SUPPORT | Feature or method not supported in the current axios environment. | +| ERR_DEPRECATED | Deprecated feature or method used in axios. | +| ERR_INVALID_URL | Invalid URL provided for axios request. | +| ECONNABORTED | Typically indicates that the request has been timed out (unless `transitional.clarifyTimeoutError` is set) or aborted by the browser or its plugin. | +| ERR_CANCELED | Feature or method is canceled explicitly by the user using an AbortSignal (or a CancelToken). | +| ETIMEDOUT | Request timed out due to exceeding the default axios timelimit. `transitional.clarifyTimeoutError` must be set to `true`, otherwise a generic `ECONNABORTED` error will be thrown instead. | +| ERR_NETWORK | Network-related issue. In the browser, this error can also be caused by a [CORS](https://developer.mozilla.org/ru/docs/Web/HTTP/Guides/CORS) or [Mixed Content](https://developer.mozilla.org/en-US/docs/Web/Security/Mixed_content) policy violation. The browser does not allow the JS code to clarify the real reason for the error caused by security issues, so please check the console. | +| ERR_FR_TOO_MANY_REDIRECTS | Request is redirected too many times; exceeds max redirects specified in axios configuration. | +| ERR_BAD_RESPONSE | Response cannot be parsed properly or is in an unexpected format. Usually related to a response with `5xx` status code. | +| ERR_BAD_REQUEST | The request has an unexpected format or is missing required parameters. Usually related to a response with `4xx` status code. | + +## Handling Errors + +The default behavior is to reject every response that returns with a status code that falls out of the range of 2xx and treat it as an error. + +```js +axios.get('/user/12345').catch(function (error) { + if (error.response) { + // The request was made and the server responded with a status code + // that falls out of the range of 2xx + console.log(error.response.data); + console.log(error.response.status); + console.log(error.response.headers); + } else if (error.request) { + // The request was made but no response was received + // `error.request` is an instance of XMLHttpRequest in the browser and an instance of + // http.ClientRequest in node.js + console.log(error.request); + } else { + // Something happened in setting up the request that triggered an Error + console.log('Error', error.message); + } + console.log(error.config); +}); +``` + +Using the `validateStatus` config option, you can override the default condition (status >= 200 && status < 300) and define HTTP code(s) that should throw an error. + +```js +axios.get('/user/12345', { + validateStatus: function (status) { + return status < 500; // Resolve only if the status code is less than 500 + }, +}); +``` + +Using `toJSON` you get an object with more information about the HTTP error. + +```js +axios.get('/user/12345').catch(function (error) { + console.log(error.toJSON()); +}); +``` + +## Handling Timeouts + +```js +async function fetchWithTimeout() { + try { + const response = await axios.get('https://example.com/data', { + timeout: 5000, // 5 seconds + transitional: { + // set to true if you prefer ETIMEDOUT over ECONNABORTED + clarifyTimeoutError: false, + }, + }); + + console.log('Response:', response.data); + } catch (error) { + if (axios.isAxiosError(error)) { + if (error.code === 'ECONNABORTED' || error.code === 'ETIMEDOUT') { + console.error('Request timed out. Please try again.'); + return; + } + + console.error('Axios error:', error.message); + return; + } + + console.error('Unexpected error:', error); + } +} +``` + +## Cancellation + +### AbortController + +Starting from `v0.22.0` Axios supports AbortController to cancel requests in a fetch API way: + +```js +const controller = new AbortController(); + +axios + .get('/foo/bar', { + signal: controller.signal, + }) + .then(function (response) { + //... + }); +// cancel the request +controller.abort(); +``` + +### CancelToken `👎deprecated` + +You can also cancel a request using a _CancelToken_. + +> The axios cancel token API is based on the withdrawn [cancellable promises proposal](https://github.com/tc39/proposal-cancelable-promises). + +> This API is deprecated since v0.22.0 and shouldn't be used in new projects + +You can create a cancel token using the `CancelToken.source` factory as shown below: + +```js +const CancelToken = axios.CancelToken; +const source = CancelToken.source(); + +axios + .get('/user/12345', { + cancelToken: source.token, + }) + .catch(function (thrown) { + if (axios.isCancel(thrown)) { + console.log('Request canceled', thrown.message); + } else { + // handle error + } + }); + +axios.post( + '/user/12345', + { + name: 'new name', + }, + { + cancelToken: source.token, + } +); + +// cancel the request (the message parameter is optional) +source.cancel('Operation canceled by the user.'); +``` + +You can also create a cancel token by passing an executor function to the `CancelToken` constructor: + +```js +const CancelToken = axios.CancelToken; +let cancel; + +axios.get('/user/12345', { + cancelToken: new CancelToken(function executor(c) { + // An executor function receives a cancel function as a parameter + cancel = c; + }), +}); + +// cancel the request +cancel(); +``` + +> **Note:** you can cancel several requests with the same cancel token/abort controller. +> If a cancellation token is already cancelled at the moment of starting an Axios request, then the request is cancelled immediately, without any attempts to make a real request. + +> During the transition period, you can use both cancellation APIs, even for the same request: + +## Using `application/x-www-form-urlencoded` format + +### URLSearchParams + +By default, axios serializes JavaScript objects to `JSON`. To send data in the [`application/x-www-form-urlencoded`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/POST) format instead, you can use the [`URLSearchParams`](https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams) API, which is [supported](http://www.caniuse.com/#feat=urlsearchparams) in the vast majority of browsers, and [Node](https://nodejs.org/api/url.html#url_class_urlsearchparams) starting with v10 (released in 2018). + +```js +const params = new URLSearchParams({ foo: 'bar' }); +params.append('extraparam', 'value'); +axios.post('/foo', params); +``` + +### Query string (Older browsers) + +For compatibility with very old browsers, there is a [polyfill](https://github.com/WebReflection/url-search-params) available (make sure to polyfill the global environment). + +Alternatively, you can encode data using the [`qs`](https://github.com/ljharb/qs) library: + +```js +const qs = require('qs'); +axios.post('/foo', qs.stringify({ bar: 123 })); +``` + +Or in another way (ES6), + +```js +import qs from 'qs'; +const data = { bar: 123 }; +const options = { + method: 'POST', + headers: { 'content-type': 'application/x-www-form-urlencoded' }, + data: qs.stringify(data), + url, +}; +axios(options); +``` + +### Older Node.js versions + +For older Node.js engines, you can use the [`querystring`](https://nodejs.org/api/querystring.html) module as follows: + +```js +const querystring = require('querystring'); +axios.post('https://something.com/', querystring.stringify({ foo: 'bar' })); +``` + +You can also use the [`qs`](https://github.com/ljharb/qs) library. + +> **Note**: The `qs` library is preferable if you need to stringify nested objects, as the `querystring` method has [known issues](https://github.com/nodejs/node-v0.x-archive/issues/1665) with that use case. + +### 🆕 Automatic serialization to URLSearchParams + +Axios will automatically serialize the data object to urlencoded format if the content-type header is set to "application/x-www-form-urlencoded". + +```js +const data = { + x: 1, + arr: [1, 2, 3], + arr2: [1, [2], 3], + users: [ + { name: 'Peter', surname: 'Griffin' }, + { name: 'Thomas', surname: 'Anderson' }, + ], +}; + +await axios.postForm('https://postman-echo.com/post', data, { + headers: { 'content-type': 'application/x-www-form-urlencoded' }, +}); +``` + +The server will handle it as: + +```js + { + x: '1', + 'arr[]': [ '1', '2', '3' ], + 'arr2[0]': '1', + 'arr2[1][0]': '2', + 'arr2[2]': '3', + 'arr3[]': [ '1', '2', '3' ], + 'users[0][name]': 'Peter', + 'users[0][surname]': 'griffin', + 'users[1][name]': 'Thomas', + 'users[1][surname]': 'Anderson' + } +``` + +If your backend body-parser (like `body-parser` of `express.js`) supports nested objects decoding, you will get the same object on the server-side automatically + +```js +const app = express(); + +app.use(bodyParser.urlencoded({ extended: true })); // support encoded bodies + +app.post('/', function (req, res, next) { + // echo body as JSON + res.send(JSON.stringify(req.body)); +}); + +server = app.listen(3000); +``` + +## Using `multipart/form-data` format + +### FormData + +To send the data as a `multipart/form-data` you need to pass a formData instance as a payload. +Setting the `Content-Type` header is not required as Axios guesses it based on the payload type. + +```js +const formData = new FormData(); +formData.append('foo', 'bar'); + +axios.post('https://httpbin.org/post', formData); +``` + +In node.js, you can use the [`form-data`](https://github.com/form-data/form-data) library as follows: + +```js +const FormData = require('form-data'); + +const form = new FormData(); +form.append('my_field', 'my value'); +form.append('my_buffer', Buffer.alloc(10)); +form.append('my_file', fs.createReadStream('/foo/bar.jpg')); + +axios.post('https://example.com', form); +``` + +### 🆕 Automatic serialization to FormData + +Starting from `v0.27.0`, Axios supports automatic object serialization to a FormData object if the request `Content-Type` +header is set to `multipart/form-data`. + +The following request will submit the data in a FormData format (Browser & Node.js): + +```js +import axios from 'axios'; + +axios + .post( + 'https://httpbin.org/post', + { x: 1 }, + { + headers: { + 'Content-Type': 'multipart/form-data', + }, + } + ) + .then(({ data }) => console.log(data)); +``` + +In the `node.js` build, the ([`form-data`](https://github.com/form-data/form-data)) polyfill is used by default. + +You can overload the FormData class by setting the `env.FormData` config variable, +but you probably won't need it in most cases: + +```js +const axios = require('axios'); +var FormData = require('form-data'); + +axios + .post( + 'https://httpbin.org/post', + { x: 1, buf: Buffer.alloc(10) }, + { + headers: { + 'Content-Type': 'multipart/form-data', + }, + } + ) + .then(({ data }) => console.log(data)); +``` + +Axios FormData serializer supports some special endings to perform the following operations: + +- `{}` - serialize the value with JSON.stringify +- `[]` - unwrap the array-like object as separate fields with the same key + +> **Note**: unwrap/expand operation will be used by default on arrays and FileList objects + +FormData serializer supports additional options via `config.formSerializer: object` property to handle rare cases: + +- `visitor: Function` - user-defined visitor function that will be called recursively to serialize the data object + to a `FormData` object by following custom rules. + +- `dots: boolean = false` - use dot notation instead of brackets to serialize arrays and objects; + +- `metaTokens: boolean = true` - add the special ending (e.g `user{}: '{"name": "John"}'`) in the FormData key. + The back-end body-parser could potentially use this meta-information to automatically parse the value as JSON. + +- `indexes: null|false|true = false` - controls how indexes will be added to unwrapped keys of `flat` array-like objects. + - `null` - don't add brackets (`arr: 1`, `arr: 2`, `arr: 3`) + - `false`(default) - add empty brackets (`arr[]: 1`, `arr[]: 2`, `arr[]: 3`) + - `true` - add brackets with indexes (`arr[0]: 1`, `arr[1]: 2`, `arr[2]: 3`) +- `maxDepth: number = 100` - maximum object nesting depth the serializer will recurse into. If the + input object exceeds this depth, an `AxiosError` with `code: 'ERR_FORM_DATA_DEPTH_EXCEEDED'` is + thrown instead of overflowing the call stack. This protects server-side applications from DoS + attacks via deeply nested payloads. Set to `Infinity` to disable the limit and restore pre-fix behaviour. + +```js +// Raise the limit for a schema that genuinely nests deeper than 100 levels: +axios.postForm('/api', data, { formSerializer: { maxDepth: 200 } }); + +// Same protection applies to params serialization: +axios.get('/api', { params: data, paramsSerializer: { maxDepth: 200 } }); +``` + +Let's say we have an object like this one: + +```js +const obj = { + x: 1, + arr: [1, 2, 3], + arr2: [1, [2], 3], + users: [ + { name: 'Peter', surname: 'Griffin' }, + { name: 'Thomas', surname: 'Anderson' }, + ], + 'obj2{}': [{ x: 1 }], +}; +``` + +The following steps will be executed by the Axios serializer internally: + +```js +const formData = new FormData(); +formData.append('x', '1'); +formData.append('arr[]', '1'); +formData.append('arr[]', '2'); +formData.append('arr[]', '3'); +formData.append('arr2[0]', '1'); +formData.append('arr2[1][0]', '2'); +formData.append('arr2[2]', '3'); +formData.append('users[0][name]', 'Peter'); +formData.append('users[0][surname]', 'Griffin'); +formData.append('users[1][name]', 'Thomas'); +formData.append('users[1][surname]', 'Anderson'); +formData.append('obj2{}', '[{"x":1}]'); +``` + +Axios supports the following shortcut methods: `postForm`, `putForm`, `patchForm` +which are just the corresponding http methods with the `Content-Type` header preset to `multipart/form-data`. + +## Files Posting + +You can easily submit a single file: + +```js +await axios.postForm('https://httpbin.org/post', { + myVar: 'foo', + file: document.querySelector('#fileInput').files[0], +}); +``` + +or multiple files as `multipart/form-data`: + +```js +await axios.postForm('https://httpbin.org/post', { + 'files[]': document.querySelector('#fileInput').files, +}); +``` + +`FileList` object can be passed directly: + +```js +await axios.postForm('https://httpbin.org/post', document.querySelector('#fileInput').files); +``` + +All files will be sent with the same field names: `files[]`. + +## 🆕 HTML Form Posting (browser) + +Pass an HTML Form element as a payload to submit it as `multipart/form-data` content. + +```js +await axios.postForm('https://httpbin.org/post', document.querySelector('#htmlForm')); +``` + +`FormData` and `HTMLForm` objects can also be posted as `JSON` by explicitly setting the `Content-Type` header to `application/json`: + +```js +await axios.post('https://httpbin.org/post', document.querySelector('#htmlForm'), { + headers: { + 'Content-Type': 'application/json', + }, +}); +``` + +For example, the Form + +```html +
+ + + + + + + + + +
+``` + +will be submitted as the following JSON object: + +```js +{ + "foo": "1", + "deep": { + "prop": { + "spaced": "3" + } + }, + "baz": [ + "4", + "5" + ], + "user": { + "age": "value2" + } +} +``` + +Sending `Blobs`/`Files` as JSON (`base64`) is not currently supported. + +## 🆕 Progress capturing + +Axios supports both browser and node environments to capture request upload/download progress. +The frequency of progress events is forced to be limited to `3` times per second. + +```js +await axios.post(url, data, { + onUploadProgress: function (axiosProgressEvent) { + /*{ + loaded: number; + total?: number; + progress?: number; // in range [0..1] + bytes: number; // how many bytes have been transferred since the last trigger (delta) + estimated?: number; // estimated time in seconds + rate?: number; // upload speed in bytes + upload: true; // upload sign + }*/ + }, + + onDownloadProgress: function (axiosProgressEvent) { + /*{ + loaded: number; + total?: number; + progress?: number; + bytes: number; + estimated?: number; + rate?: number; // download speed in bytes + download: true; // download sign + }*/ + }, +}); +``` + +You can also track stream upload/download progress in node.js: + +```js +const { data } = await axios.post(SERVER_URL, readableStream, { + onUploadProgress: ({ progress }) => { + console.log((progress * 100).toFixed(2)); + }, + + headers: { + 'Content-Length': contentLength, + }, + + maxRedirects: 0, // avoid buffering the entire stream +}); +``` + +> **Note:** +> Capturing FormData upload progress is not currently supported in node.js environments. + +> **⚠️ Warning** +> It is recommended to disable redirects by setting maxRedirects: 0 to upload the stream in the **node.js** environment, +> as the follow-redirects package will buffer the entire stream in RAM without following the "backpressure" algorithm. + +## 🆕 Rate limiting + +Download and upload rate limits can only be set for the http adapter (node.js): + +```js +const { data } = await axios.post(LOCAL_SERVER_URL, myBuffer, { + onUploadProgress: ({ progress, rate }) => { + console.log(`Upload [${(progress * 100).toFixed(2)}%]: ${(rate / 1024).toFixed(2)}KB/s`); + }, + + maxRate: [100 * 1024], // 100KB/s limit +}); +``` + +## 🆕 AxiosHeaders + +Axios has its own `AxiosHeaders` class to manipulate headers using a Map-like API that guarantees caseless work. +Although HTTP is case-insensitive in headers, Axios will retain the case of the original header for stylistic reasons +and as a workaround when servers mistakenly consider the header's case. +The old approach of directly manipulating the headers object is still available, but deprecated and not recommended for future usage. + +### Working with headers + +An AxiosHeaders object instance can contain different types of internal values. that control setting and merging logic. +The final headers object with string values is obtained by Axios by calling the `toJSON` method. + +> Note: By JSON here we mean an object consisting only of string values intended to be sent over the network. + +The header value can be one of the following types: + +- `string` - normal string value that will be sent to the server +- `null` - skip header when rendering to JSON +- `false` - skip header when rendering to JSON, additionally indicates that `set` method must be called with `rewrite` option set to `true` + to overwrite this value (Axios uses this internally to allow users to opt out of installing certain headers like `User-Agent` or `Content-Type`) +- `undefined` - value is not set + +> Note: The header value is considered set if it is not equal to undefined. + +The headers object is always initialized inside interceptors and transformers: + +```ts +axios.interceptors.request.use((request: InternalAxiosRequestConfig) => { + request.headers.set('My-header', 'value'); + + request.headers.set({ + 'My-set-header1': 'my-set-value1', + 'My-set-header2': 'my-set-value2', + }); + + request.headers.set('User-Agent', false); // disable subsequent setting the header by Axios + + request.headers.setContentType('text/plain'); + + request.headers['My-set-header2'] = 'newValue'; // direct access is deprecated + + return request; +}); +``` + +You can iterate over an `AxiosHeaders` instance using a `for...of` statement: + +```js +const headers = new AxiosHeaders({ + foo: '1', + bar: '2', + baz: '3', +}); + +for (const [header, value] of headers) { + console.log(header, value); +} + +// foo 1 +// bar 2 +// baz 3 +``` + +### Preserving a specific header case + +Header names are case-insensitive, but `AxiosHeaders` keeps the case of the first matching key it sees. +If you need a specific case for non-standard case-sensitive servers, define a case preset with `undefined` and then set the value later: + +```js +const api = axios.create(); + +api.defaults.headers.common = { + 'content-type': undefined, + accept: undefined, +}; + +await api.put(url, data, { + headers: { + 'Content-Type': 'application/octet-stream', + Accept: 'application/json', + }, +}); +``` + +You can also compose the same behavior with `AxiosHeaders.concat`: + +```js +const headers = axios.AxiosHeaders.concat( + { 'content-type': undefined }, + { 'Content-Type': 'application/octet-stream' } +); + +await axios.put(url, data, { headers }); +``` + +### new AxiosHeaders(headers?) + +Constructs a new `AxiosHeaders` instance. + +``` +constructor(headers?: RawAxiosHeaders | AxiosHeaders | string); +``` + +If the headers object is a string, it will be parsed as RAW HTTP headers. + +```js +const headers = new AxiosHeaders(` +Host: www.bing.com +User-Agent: curl/7.54.0 +Accept: */*`); + +console.log(headers); + +// Object [AxiosHeaders] { +// host: 'www.bing.com', +// 'user-agent': 'curl/7.54.0', +// accept: '*/*' +// } +``` + +### AxiosHeaders#set + +```ts +set(headerName, value: Axios, rewrite?: boolean); +set(headerName, value, rewrite?: (this: AxiosHeaders, value: string, name: string, headers: RawAxiosHeaders) => boolean); +set(headers?: RawAxiosHeaders | AxiosHeaders | string, rewrite?: boolean); +``` + +The `rewrite` argument controls the overwriting behavior: + +- `false` - do not overwrite if the header's value is set (is not `undefined`) +- `undefined` (default) - overwrite the header unless its value is set to `false` +- `true` - rewrite anyway + +The option can also accept a user-defined function that determines whether the value should be overwritten or not. + +Returns `this`. + +### AxiosHeaders#get(header) + +``` + get(headerName: string, matcher?: true | AxiosHeaderMatcher): AxiosHeaderValue; + get(headerName: string, parser: RegExp): RegExpExecArray | null; +``` + +Returns the internal value of the header. It can take an extra argument to parse the header's value with `RegExp.exec`, +matcher function or internal key-value parser. + +```ts +const headers = new AxiosHeaders({ + 'Content-Type': 'multipart/form-data; boundary=Asrf456BGe4h', +}); + +console.log(headers.get('Content-Type')); +// multipart/form-data; boundary=Asrf456BGe4h + +console.log(headers.get('Content-Type', true)); // parse key-value pairs from a string separated with \s,;= delimiters: +// [Object: null prototype] { +// 'multipart/form-data': undefined, +// boundary: 'Asrf456BGe4h' +// } + +console.log( + headers.get('Content-Type', (value, name, headers) => { + return String(value).replace(/a/g, 'ZZZ'); + }) +); +// multipZZZrt/form-dZZZtZZZ; boundZZZry=Asrf456BGe4h + +console.log(headers.get('Content-Type', /boundary=(\w+)/)?.[0]); +// boundary=Asrf456BGe4h +``` + +Returns the value of the header. + +### AxiosHeaders#has(header, matcher?) + +``` +has(header: string, matcher?: AxiosHeaderMatcher): boolean; +``` + +Returns `true` if the header is set (has no `undefined` value). + +### AxiosHeaders#delete(header, matcher?) + +``` +delete(header: string | string[], matcher?: AxiosHeaderMatcher): boolean; +``` + +Returns `true` if at least one header has been removed. + +### AxiosHeaders#clear(matcher?) + +``` +clear(matcher?: AxiosHeaderMatcher): boolean; +``` + +Removes all headers. +Unlike the `delete` method matcher, this optional matcher will be used to match against the header name rather than the value. + +```ts +const headers = new AxiosHeaders({ + foo: '1', + 'x-foo': '2', + 'x-bar': '3', +}); + +console.log(headers.clear(/^x-/)); // true + +console.log(headers.toJSON()); // [Object: null prototype] { foo: '1' } +``` + +Returns `true` if at least one header has been cleared. + +### AxiosHeaders#normalize(format); + +If the headers object was changed directly, it can have duplicates with the same name but in different cases. +This method normalizes the headers object by combining duplicate keys into one. +Axios uses this method internally after calling each interceptor. +Set `format` to true for converting header names to lowercase and capitalizing the initial letters (`cOntEnt-type` => `Content-Type`) + +```js +const headers = new AxiosHeaders({ + foo: '1', +}); + +headers.Foo = '2'; +headers.FOO = '3'; + +console.log(headers.toJSON()); // [Object: null prototype] { foo: '1', Foo: '2', FOO: '3' } +console.log(headers.normalize().toJSON()); // [Object: null prototype] { foo: '3' } +console.log(headers.normalize(true).toJSON()); // [Object: null prototype] { Foo: '3' } +``` + +Returns `this`. + +### AxiosHeaders#concat(...targets) + +``` +concat(...targets: Array): AxiosHeaders; +``` + +Merges the instance with targets into a new `AxiosHeaders` instance. If the target is a string, it will be parsed as RAW HTTP headers. + +Returns a new `AxiosHeaders` instance. + +### AxiosHeaders#toJSON(asStrings?) + +``` +toJSON(asStrings?: boolean): RawAxiosHeaders; +``` + +Resolve all internal header values into a new null prototype object. +Set `asStrings` to true to resolve arrays as a string containing all elements, separated by commas. + +### AxiosHeaders.from(thing?) + +``` +from(thing?: AxiosHeaders | RawAxiosHeaders | string): AxiosHeaders; +``` + +Returns a new `AxiosHeaders` instance created from the raw headers passed in, +or simply returns the given headers object if it's an `AxiosHeaders` instance. + +### AxiosHeaders.concat(...targets) + +``` +concat(...targets: Array): AxiosHeaders; +``` + +Returns a new `AxiosHeaders` instance created by merging the target objects. + +### Shortcuts + +The following shortcuts are available: + +- `setContentType`, `getContentType`, `hasContentType` + +- `setContentLength`, `getContentLength`, `hasContentLength` + +- `setAccept`, `getAccept`, `hasAccept` + +- `setUserAgent`, `getUserAgent`, `hasUserAgent` + +- `setContentEncoding`, `getContentEncoding`, `hasContentEncoding` + +## 🔥 Fetch adapter + +Fetch adapter was introduced in `v1.7.0`. By default, it will be used if `xhr` and `http` adapters are not available in the build, +or not supported by the environment. +To use it by default, it must be selected explicitly: + +```js +const { data } = axios.get(url, { + adapter: 'fetch', // by default ['xhr', 'http', 'fetch'] +}); +``` + +You can create a separate instance for this: + +```js +const fetchAxios = axios.create({ + adapter: 'fetch', +}); + +const { data } = fetchAxios.get(url); +``` + +The adapter supports the same functionality as the `xhr` adapter, **including upload and download progress capturing**. +Also, it supports additional response types such as `stream` and `formdata` (if supported by the environment). + +### 🔥 Custom fetch + +Starting from `v1.12.0`, you can customize the fetch adapter to use a custom fetch API instead of environment globals. +You can pass a custom `fetch` function, `Request`, and `Response` constructors via env config. +This can be helpful in case of custom environments & app frameworks. + +Also, when using a custom fetch, you may need to set custom Request and Response too. If you don't set them, global objects will be used. +If your custom fetch api does not have these objects, and the globals are incompatible with a custom fetch, +you must disable their use inside the fetch adapter by passing null. + +> Note: Setting `Request` & `Response` to `null` will make it impossible for the fetch adapter to capture the upload & download progress. + +Basic example: + +```js +import customFetchFunction from 'customFetchModule'; + +const instance = axios.create({ + adapter: 'fetch', + onDownloadProgress(e) { + console.log('downloadProgress', e); + }, + env: { + fetch: customFetchFunction, + Request: null, // undefined -> use the global constructor + Response: null, + }, +}); +``` + +#### 🔥 Using with Tauri + +A minimal example of setting up Axios for use in a [Tauri](https://tauri.app/plugin/http-client/) app with a platform fetch function that ignores CORS policy for requests. + +```js +import { fetch } from '@tauri-apps/plugin-http'; +import axios from 'axios'; + +const instance = axios.create({ + adapter: 'fetch', + onDownloadProgress(e) { + console.log('downloadProgress', e); + }, + env: { + fetch, + }, +}); + +const { data } = await instance.get('https://google.com'); +``` + +#### 🔥 Using with SvelteKit + +[SvelteKit](https://svelte.dev/docs/kit/web-standards#Fetch-APIs) framework has a custom implementation of the fetch function for server rendering (so called `load` functions), and also uses relative paths, +which makes it incompatible with the standard URL API. So, Axios must be configured to use the custom fetch API: + +```js +export async function load({ fetch }) { + const { data: post } = await axios.get('https://jsonplaceholder.typicode.com/posts/1', { + adapter: 'fetch', + env: { + fetch, + Request: null, + Response: null, + }, + }); + + return { post }; +} +``` + +#### HTTP/2 Support + +Axios supports HTTP/2 via the Node.js `http` adapter (introduced in v1.13.0). + +This support depends on the runtime environment. Since Axios relies on Node.js APIs, HTTP/2 functionality is available in supported Node.js versions, but may not work in other environments (such as Bun or Deno). + +Options like `httpVersion` and `http2Options` are adapter-specific and may not behave consistently across all environments. + +Note: HTTP/2 redirects are currently not supported by the HTTP/2 adapter. + +```js +const form = new FormData(); + +form.append('foo', '123'); + +const { data, headers, status } = await axios.post('https://httpbin.org/post', form, { + onUploadProgress(e) { + console.log('upload progress', e); + }, + onDownloadProgress(e) { + console.log('download progress', e); + }, + responseType: 'arraybuffer', +}); +``` + +## Semver + +Since Axios has reached a `v.1.0.0` we will fully embrace semver as per the spec [here](https://semver.org/) + +## Promises + +axios depends on a native ES6 Promise implementation to be [supported](https://caniuse.com/promises). +If your environment doesn't support ES6 Promises, you can [polyfill](https://github.com/jakearchibald/es6-promise). + +## TypeScript + +axios includes [TypeScript](https://typescriptlang.org) definitions and a type guard for axios errors. + +```typescript +let user: User = null; +try { + const { data } = await axios.get('/user?ID=12345'); + user = data.userDetails; +} catch (error) { + if (axios.isAxiosError(error)) { + handleAxiosError(error); + } else { + handleUnexpectedError(error); + } +} +``` + +Because axios dual publishes with an ESM default export and a CJS `module.exports`, there are some caveats. +The recommended setting is to use `"moduleResolution": "node16"` (this is implied by `"module": "node16"`). Note that this requires TypeScript 4.7 or greater. +If use ESM, your settings should be fine. +If you compile TypeScript to CJS and you can’t use `"moduleResolution": "node 16"`, you have to enable `esModuleInterop`. +If you use TypeScript to type check CJS JavaScript code, your only option is to use `"moduleResolution": "node16"`. + +You can also create a custom instance with typed interceptors: + +```typescript +import axios, { AxiosInstance, InternalAxiosRequestConfig } from 'axios'; + +const apiClient: AxiosInstance = axios.create({ + baseURL: 'https://api.example.com', + timeout: 10000, +}); + +apiClient.interceptors.request.use((config: InternalAxiosRequestConfig) => { + // Add auth token + return config; +}); +``` + +## Online one-click setup + +You can use Gitpod, an online IDE(which is free for Open Source) for contributing or running the examples online. + +[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/axios/axios/blob/main/examples/server.js) + +## Resources + +- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md) +- [Ecosystem](https://github.com/axios/axios/blob/v1.x/ECOSYSTEM.md) +- [Contributing Guide](https://github.com/axios/axios/blob/v1.x/CONTRIBUTING.md) +- [Code of Conduct](https://github.com/axios/axios/blob/v1.x/CODE_OF_CONDUCT.md) + +## Credits + +axios is heavily inspired by the [$http service](https://docs.angularjs.org/api/ng/service/$http) provided in [AngularJS](https://angularjs.org/). Ultimately axios is an effort to provide a standalone `$http`-like service for use outside of AngularJS. + +## License + +[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE) diff --git a/server/api/node_modules/axios/dist/axios.js b/server/api/node_modules/axios/dist/axios.js new file mode 100644 index 0000000..32c0ee3 --- /dev/null +++ b/server/api/node_modules/axios/dist/axios.js @@ -0,0 +1,4523 @@ +/*! Axios v1.15.1 Copyright (c) 2026 Matt Zabriskie and contributors */ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.axios = factory()); +})(this, (function () { 'use strict'; + + function _OverloadYield(e, d) { + this.v = e, this.k = d; + } + function _arrayLikeToArray(r, a) { + (null == a || a > r.length) && (a = r.length); + for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; + return n; + } + function _arrayWithHoles(r) { + if (Array.isArray(r)) return r; + } + function _arrayWithoutHoles(r) { + if (Array.isArray(r)) return _arrayLikeToArray(r); + } + function _assertThisInitialized(e) { + if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + return e; + } + function _asyncGeneratorDelegate(t) { + var e = {}, + n = false; + function pump(e, r) { + return n = true, r = new Promise(function (n) { + n(t[e](r)); + }), { + done: false, + value: new _OverloadYield(r, 1) + }; + } + return e["undefined" != typeof Symbol && Symbol.iterator || "@@iterator"] = function () { + return this; + }, e.next = function (t) { + return n ? (n = false, t) : pump("next", t); + }, "function" == typeof t.throw && (e.throw = function (t) { + if (n) throw n = false, t; + return pump("throw", t); + }), "function" == typeof t.return && (e.return = function (t) { + return n ? (n = false, t) : pump("return", t); + }), e; + } + function _asyncIterator(r) { + var n, + t, + o, + e = 2; + for ("undefined" != typeof Symbol && (t = Symbol.asyncIterator, o = Symbol.iterator); e--;) { + if (t && null != (n = r[t])) return n.call(r); + if (o && null != (n = r[o])) return new AsyncFromSyncIterator(n.call(r)); + t = "@@asyncIterator", o = "@@iterator"; + } + throw new TypeError("Object is not async iterable"); + } + function AsyncFromSyncIterator(r) { + function AsyncFromSyncIteratorContinuation(r) { + if (Object(r) !== r) return Promise.reject(new TypeError(r + " is not an object.")); + var n = r.done; + return Promise.resolve(r.value).then(function (r) { + return { + value: r, + done: n + }; + }); + } + return AsyncFromSyncIterator = function (r) { + this.s = r, this.n = r.next; + }, AsyncFromSyncIterator.prototype = { + s: null, + n: null, + next: function () { + return AsyncFromSyncIteratorContinuation(this.n.apply(this.s, arguments)); + }, + return: function (r) { + var n = this.s.return; + return void 0 === n ? Promise.resolve({ + value: r, + done: true + }) : AsyncFromSyncIteratorContinuation(n.apply(this.s, arguments)); + }, + throw: function (r) { + var n = this.s.return; + return void 0 === n ? Promise.reject(r) : AsyncFromSyncIteratorContinuation(n.apply(this.s, arguments)); + } + }, new AsyncFromSyncIterator(r); + } + function asyncGeneratorStep(n, t, e, r, o, a, c) { + try { + var i = n[a](c), + u = i.value; + } catch (n) { + return void e(n); + } + i.done ? t(u) : Promise.resolve(u).then(r, o); + } + function _asyncToGenerator(n) { + return function () { + var t = this, + e = arguments; + return new Promise(function (r, o) { + var a = n.apply(t, e); + function _next(n) { + asyncGeneratorStep(a, r, o, _next, _throw, "next", n); + } + function _throw(n) { + asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); + } + _next(void 0); + }); + }; + } + function _awaitAsyncGenerator(e) { + return new _OverloadYield(e, 0); + } + function _callSuper(t, o, e) { + return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); + } + function _classCallCheck(a, n) { + if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); + } + function _construct(t, e, r) { + if (_isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments); + var o = [null]; + o.push.apply(o, e); + var p = new (t.bind.apply(t, o))(); + return r && _setPrototypeOf(p, r.prototype), p; + } + function _defineProperties(e, r) { + for (var t = 0; t < r.length; t++) { + var o = r[t]; + o.enumerable = o.enumerable || false, o.configurable = true, "value" in o && (o.writable = true), Object.defineProperty(e, _toPropertyKey(o.key), o); + } + } + function _createClass(e, r, t) { + return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { + writable: false + }), e; + } + function _createForOfIteratorHelper(r, e) { + var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; + if (!t) { + if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e) { + t && (r = t); + var n = 0, + F = function () {}; + return { + s: F, + n: function () { + return n >= r.length ? { + done: true + } : { + done: false, + value: r[n++] + }; + }, + e: function (r) { + throw r; + }, + f: F + }; + } + throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + var o, + a = true, + u = false; + return { + s: function () { + t = t.call(r); + }, + n: function () { + var r = t.next(); + return a = r.done, r; + }, + e: function (r) { + u = true, o = r; + }, + f: function () { + try { + a || null == t.return || t.return(); + } finally { + if (u) throw o; + } + } + }; + } + function _defineProperty(e, r, t) { + return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { + value: t, + enumerable: true, + configurable: true, + writable: true + }) : e[r] = t, e; + } + function _getPrototypeOf(t) { + return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { + return t.__proto__ || Object.getPrototypeOf(t); + }, _getPrototypeOf(t); + } + function _inherits(t, e) { + if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); + t.prototype = Object.create(e && e.prototype, { + constructor: { + value: t, + writable: true, + configurable: true + } + }), Object.defineProperty(t, "prototype", { + writable: false + }), e && _setPrototypeOf(t, e); + } + function _isNativeFunction(t) { + try { + return -1 !== Function.toString.call(t).indexOf("[native code]"); + } catch (n) { + return "function" == typeof t; + } + } + function _isNativeReflectConstruct() { + try { + var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); + } catch (t) {} + return (_isNativeReflectConstruct = function () { + return !!t; + })(); + } + function _iterableToArray(r) { + if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); + } + function _iterableToArrayLimit(r, l) { + var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; + if (null != t) { + var e, + n, + i, + u, + a = [], + f = true, + o = false; + try { + if (i = (t = t.call(r)).next, 0 === l) { + if (Object(t) !== t) return; + f = !1; + } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); + } catch (r) { + o = true, n = r; + } finally { + try { + if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; + } finally { + if (o) throw n; + } + } + return a; + } + } + function _nonIterableRest() { + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + function _nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + function ownKeys(e, r) { + var t = Object.keys(e); + if (Object.getOwnPropertySymbols) { + var o = Object.getOwnPropertySymbols(e); + r && (o = o.filter(function (r) { + return Object.getOwnPropertyDescriptor(e, r).enumerable; + })), t.push.apply(t, o); + } + return t; + } + function _objectSpread2(e) { + for (var r = 1; r < arguments.length; r++) { + var t = null != arguments[r] ? arguments[r] : {}; + r % 2 ? ownKeys(Object(t), true).forEach(function (r) { + _defineProperty(e, r, t[r]); + }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { + Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); + }); + } + return e; + } + function _possibleConstructorReturn(t, e) { + if (e && ("object" == typeof e || "function" == typeof e)) return e; + if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); + return _assertThisInitialized(t); + } + function _regenerator() { + /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ + var e, + t, + r = "function" == typeof Symbol ? Symbol : {}, + n = r.iterator || "@@iterator", + o = r.toStringTag || "@@toStringTag"; + function i(r, n, o, i) { + var c = n && n.prototype instanceof Generator ? n : Generator, + u = Object.create(c.prototype); + return _regeneratorDefine(u, "_invoke", function (r, n, o) { + var i, + c, + u, + f = 0, + p = o || [], + y = false, + G = { + p: 0, + n: 0, + v: e, + a: d, + f: d.bind(e, 4), + d: function (t, r) { + return i = t, c = 0, u = e, G.n = r, a; + } + }; + function d(r, n) { + for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { + var o, + i = p[t], + d = G.p, + l = i[2]; + r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); + } + if (o || r > 1) return a; + throw y = true, n; + } + return function (o, p, l) { + if (f > 1) throw TypeError("Generator is already running"); + for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { + i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); + try { + if (f = 2, i) { + if (c || (o = "next"), t = i[o]) { + if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); + if (!t.done) return t; + u = t.value, c < 2 && (c = 0); + } else 1 === c && (t = i.return) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); + i = e; + } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; + } catch (t) { + i = e, c = 1, u = t; + } finally { + f = 1; + } + } + return { + value: t, + done: y + }; + }; + }(r, o, i), true), u; + } + var a = {}; + function Generator() {} + function GeneratorFunction() {} + function GeneratorFunctionPrototype() {} + t = Object.getPrototypeOf; + var c = [][n] ? t(t([][n]())) : (_regeneratorDefine(t = {}, n, function () { + return this; + }), t), + u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); + function f(e) { + return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; + } + return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine(u), _regeneratorDefine(u, o, "Generator"), _regeneratorDefine(u, n, function () { + return this; + }), _regeneratorDefine(u, "toString", function () { + return "[object Generator]"; + }), (_regenerator = function () { + return { + w: i, + m: f + }; + })(); + } + function _regeneratorDefine(e, r, n, t) { + var i = Object.defineProperty; + try { + i({}, "", {}); + } catch (e) { + i = 0; + } + _regeneratorDefine = function (e, r, n, t) { + function o(r, n) { + _regeneratorDefine(e, r, function (e) { + return this._invoke(r, n, e); + }); + } + r ? i ? i(e, r, { + value: n, + enumerable: !t, + configurable: !t, + writable: !t + }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); + }, _regeneratorDefine(e, r, n, t); + } + function _regeneratorValues(e) { + if (null != e) { + var t = e["function" == typeof Symbol && Symbol.iterator || "@@iterator"], + r = 0; + if (t) return t.call(e); + if ("function" == typeof e.next) return e; + if (!isNaN(e.length)) return { + next: function () { + return e && r >= e.length && (e = void 0), { + value: e && e[r++], + done: !e + }; + } + }; + } + throw new TypeError(typeof e + " is not iterable"); + } + function _setPrototypeOf(t, e) { + return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { + return t.__proto__ = e, t; + }, _setPrototypeOf(t, e); + } + function _slicedToArray(r, e) { + return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); + } + function _toConsumableArray(r) { + return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); + } + function _toPrimitive(t, r) { + if ("object" != typeof t || !t) return t; + var e = t[Symbol.toPrimitive]; + if (void 0 !== e) { + var i = e.call(t, r); + if ("object" != typeof i) return i; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return ("string" === r ? String : Number)(t); + } + function _toPropertyKey(t) { + var i = _toPrimitive(t, "string"); + return "symbol" == typeof i ? i : i + ""; + } + function _typeof(o) { + "@babel/helpers - typeof"; + + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { + return typeof o; + } : function (o) { + return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; + }, _typeof(o); + } + function _unsupportedIterableToArray(r, a) { + if (r) { + if ("string" == typeof r) return _arrayLikeToArray(r, a); + var t = {}.toString.call(r).slice(8, -1); + return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; + } + } + function _wrapAsyncGenerator(e) { + return function () { + return new AsyncGenerator(e.apply(this, arguments)); + }; + } + function AsyncGenerator(e) { + var r, t; + function resume(r, t) { + try { + var n = e[r](t), + o = n.value, + u = o instanceof _OverloadYield; + Promise.resolve(u ? o.v : o).then(function (t) { + if (u) { + var i = "return" === r ? "return" : "next"; + if (!o.k || t.done) return resume(i, t); + t = e[i](t).value; + } + settle(n.done ? "return" : "normal", t); + }, function (e) { + resume("throw", e); + }); + } catch (e) { + settle("throw", e); + } + } + function settle(e, n) { + switch (e) { + case "return": + r.resolve({ + value: n, + done: true + }); + break; + case "throw": + r.reject(n); + break; + default: + r.resolve({ + value: n, + done: false + }); + } + (r = r.next) ? resume(r.key, r.arg) : t = null; + } + this._invoke = function (e, n) { + return new Promise(function (o, u) { + var i = { + key: e, + arg: n, + resolve: o, + reject: u, + next: null + }; + t ? t = t.next = i : (r = t = i, resume(e, n)); + }); + }, "function" != typeof e.return && (this.return = void 0); + } + AsyncGenerator.prototype["function" == typeof Symbol && Symbol.asyncIterator || "@@asyncIterator"] = function () { + return this; + }, AsyncGenerator.prototype.next = function (e) { + return this._invoke("next", e); + }, AsyncGenerator.prototype.throw = function (e) { + return this._invoke("throw", e); + }, AsyncGenerator.prototype.return = function (e) { + return this._invoke("return", e); + }; + function _wrapNativeSuper(t) { + var r = "function" == typeof Map ? new Map() : void 0; + return _wrapNativeSuper = function (t) { + if (null === t || !_isNativeFunction(t)) return t; + if ("function" != typeof t) throw new TypeError("Super expression must either be null or a function"); + if (void 0 !== r) { + if (r.has(t)) return r.get(t); + r.set(t, Wrapper); + } + function Wrapper() { + return _construct(t, arguments, _getPrototypeOf(this).constructor); + } + return Wrapper.prototype = Object.create(t.prototype, { + constructor: { + value: Wrapper, + enumerable: false, + writable: true, + configurable: true + } + }), _setPrototypeOf(Wrapper, t); + }, _wrapNativeSuper(t); + } + + /** + * Create a bound version of a function with a specified `this` context + * + * @param {Function} fn - The function to bind + * @param {*} thisArg - The value to be passed as the `this` parameter + * @returns {Function} A new function that will call the original function with the specified `this` context + */ + function bind(fn, thisArg) { + return function wrap() { + return fn.apply(thisArg, arguments); + }; + } + + // utils is a library of generic helper functions non-specific to axios + + var toString = Object.prototype.toString; + var getPrototypeOf = Object.getPrototypeOf; + var iterator = Symbol.iterator, + toStringTag = Symbol.toStringTag; + var kindOf = function (cache) { + return function (thing) { + var str = toString.call(thing); + return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase()); + }; + }(Object.create(null)); + var kindOfTest = function kindOfTest(type) { + type = type.toLowerCase(); + return function (thing) { + return kindOf(thing) === type; + }; + }; + var typeOfTest = function typeOfTest(type) { + return function (thing) { + return _typeof(thing) === type; + }; + }; + + /** + * Determine if a value is a non-null object + * + * @param {Object} val The value to test + * + * @returns {boolean} True if value is an Array, otherwise false + */ + var isArray = Array.isArray; + + /** + * Determine if a value is undefined + * + * @param {*} val The value to test + * + * @returns {boolean} True if the value is undefined, otherwise false + */ + var isUndefined = typeOfTest('undefined'); + + /** + * Determine if a value is a Buffer + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a Buffer, otherwise false + */ + function isBuffer(val) { + return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor) && isFunction$1(val.constructor.isBuffer) && val.constructor.isBuffer(val); + } + + /** + * Determine if a value is an ArrayBuffer + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is an ArrayBuffer, otherwise false + */ + var isArrayBuffer = kindOfTest('ArrayBuffer'); + + /** + * Determine if a value is a view on an ArrayBuffer + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false + */ + function isArrayBufferView(val) { + var result; + if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) { + result = ArrayBuffer.isView(val); + } else { + result = val && val.buffer && isArrayBuffer(val.buffer); + } + return result; + } + + /** + * Determine if a value is a String + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a String, otherwise false + */ + var isString = typeOfTest('string'); + + /** + * Determine if a value is a Function + * + * @param {*} val The value to test + * @returns {boolean} True if value is a Function, otherwise false + */ + var isFunction$1 = typeOfTest('function'); + + /** + * Determine if a value is a Number + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a Number, otherwise false + */ + var isNumber = typeOfTest('number'); + + /** + * Determine if a value is an Object + * + * @param {*} thing The value to test + * + * @returns {boolean} True if value is an Object, otherwise false + */ + var isObject = function isObject(thing) { + return thing !== null && _typeof(thing) === 'object'; + }; + + /** + * Determine if a value is a Boolean + * + * @param {*} thing The value to test + * @returns {boolean} True if value is a Boolean, otherwise false + */ + var isBoolean = function isBoolean(thing) { + return thing === true || thing === false; + }; + + /** + * Determine if a value is a plain Object + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a plain Object, otherwise false + */ + var isPlainObject = function isPlainObject(val) { + if (kindOf(val) !== 'object') { + return false; + } + var prototype = getPrototypeOf(val); + return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(toStringTag in val) && !(iterator in val); + }; + + /** + * Determine if a value is an empty object (safely handles Buffers) + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is an empty object, otherwise false + */ + var isEmptyObject = function isEmptyObject(val) { + // Early return for non-objects or Buffers to prevent RangeError + if (!isObject(val) || isBuffer(val)) { + return false; + } + try { + return Object.keys(val).length === 0 && Object.getPrototypeOf(val) === Object.prototype; + } catch (e) { + // Fallback for any other objects that might cause RangeError with Object.keys() + return false; + } + }; + + /** + * Determine if a value is a Date + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a Date, otherwise false + */ + var isDate = kindOfTest('Date'); + + /** + * Determine if a value is a File + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a File, otherwise false + */ + var isFile = kindOfTest('File'); + + /** + * Determine if a value is a React Native Blob + * React Native "blob": an object with a `uri` attribute. Optionally, it can + * also have a `name` and `type` attribute to specify filename and content type + * + * @see https://github.com/facebook/react-native/blob/26684cf3adf4094eb6c405d345a75bf8c7c0bf88/Libraries/Network/FormData.js#L68-L71 + * + * @param {*} value The value to test + * + * @returns {boolean} True if value is a React Native Blob, otherwise false + */ + var isReactNativeBlob = function isReactNativeBlob(value) { + return !!(value && typeof value.uri !== 'undefined'); + }; + + /** + * Determine if environment is React Native + * ReactNative `FormData` has a non-standard `getParts()` method + * + * @param {*} formData The formData to test + * + * @returns {boolean} True if environment is React Native, otherwise false + */ + var isReactNative = function isReactNative(formData) { + return formData && typeof formData.getParts !== 'undefined'; + }; + + /** + * Determine if a value is a Blob + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a Blob, otherwise false + */ + var isBlob = kindOfTest('Blob'); + + /** + * Determine if a value is a FileList + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a File, otherwise false + */ + var isFileList = kindOfTest('FileList'); + + /** + * Determine if a value is a Stream + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a Stream, otherwise false + */ + var isStream = function isStream(val) { + return isObject(val) && isFunction$1(val.pipe); + }; + + /** + * Determine if a value is a FormData + * + * @param {*} thing The value to test + * + * @returns {boolean} True if value is an FormData, otherwise false + */ + function getGlobal() { + if (typeof globalThis !== 'undefined') return globalThis; + if (typeof self !== 'undefined') return self; + if (typeof window !== 'undefined') return window; + if (typeof global !== 'undefined') return global; + return {}; + } + var G = getGlobal(); + var FormDataCtor = typeof G.FormData !== 'undefined' ? G.FormData : undefined; + var isFormData = function isFormData(thing) { + if (!thing) return false; + if (FormDataCtor && thing instanceof FormDataCtor) return true; + // Reject plain objects inheriting directly from Object.prototype so prototype-pollution gadgets can't spoof FormData (GHSA-6chq-wfr3-2hj9). + var proto = getPrototypeOf(thing); + if (!proto || proto === Object.prototype) return false; + if (!isFunction$1(thing.append)) return false; + var kind = kindOf(thing); + return kind === 'formdata' || + // detect form-data instance + kind === 'object' && isFunction$1(thing.toString) && thing.toString() === '[object FormData]'; + }; + + /** + * Determine if a value is a URLSearchParams object + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a URLSearchParams object, otherwise false + */ + var isURLSearchParams = kindOfTest('URLSearchParams'); + var _map = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest), + _map2 = _slicedToArray(_map, 4), + isReadableStream = _map2[0], + isRequest = _map2[1], + isResponse = _map2[2], + isHeaders = _map2[3]; + + /** + * Trim excess whitespace off the beginning and end of a string + * + * @param {String} str The String to trim + * + * @returns {String} The String freed of excess whitespace + */ + var trim = function trim(str) { + return str.trim ? str.trim() : str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ''); + }; + /** + * Iterate over an Array or an Object invoking a function for each item. + * + * If `obj` is an Array callback will be called passing + * the value, index, and complete array for each item. + * + * If 'obj' is an Object callback will be called passing + * the value, key, and complete object for each property. + * + * @param {Object|Array} obj The object to iterate + * @param {Function} fn The callback to invoke for each item + * + * @param {Object} [options] + * @param {Boolean} [options.allOwnKeys = false] + * @returns {any} + */ + function forEach(obj, fn) { + var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}, + _ref$allOwnKeys = _ref.allOwnKeys, + allOwnKeys = _ref$allOwnKeys === void 0 ? false : _ref$allOwnKeys; + // Don't bother if no value provided + if (obj === null || typeof obj === 'undefined') { + return; + } + var i; + var l; + + // Force an array if not already something iterable + if (_typeof(obj) !== 'object') { + /*eslint no-param-reassign:0*/ + obj = [obj]; + } + if (isArray(obj)) { + // Iterate over array values + for (i = 0, l = obj.length; i < l; i++) { + fn.call(null, obj[i], i, obj); + } + } else { + // Buffer check + if (isBuffer(obj)) { + return; + } + + // Iterate over object keys + var keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj); + var len = keys.length; + var key; + for (i = 0; i < len; i++) { + key = keys[i]; + fn.call(null, obj[key], key, obj); + } + } + } + + /** + * Finds a key in an object, case-insensitive, returning the actual key name. + * Returns null if the object is a Buffer or if no match is found. + * + * @param {Object} obj - The object to search. + * @param {string} key - The key to find (case-insensitive). + * @returns {?string} The actual key name if found, otherwise null. + */ + function findKey(obj, key) { + if (isBuffer(obj)) { + return null; + } + key = key.toLowerCase(); + var keys = Object.keys(obj); + var i = keys.length; + var _key; + while (i-- > 0) { + _key = keys[i]; + if (key === _key.toLowerCase()) { + return _key; + } + } + return null; + } + var _global = function () { + /*eslint no-undef:0*/ + if (typeof globalThis !== 'undefined') return globalThis; + return typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : global; + }(); + var isContextDefined = function isContextDefined(context) { + return !isUndefined(context) && context !== _global; + }; + + /** + * Accepts varargs expecting each argument to be an object, then + * immutably merges the properties of each object and returns result. + * + * When multiple objects contain the same key the later object in + * the arguments list will take precedence. + * + * Example: + * + * ```js + * const result = merge({foo: 123}, {foo: 456}); + * console.log(result.foo); // outputs 456 + * ``` + * + * @param {Object} obj1 Object to merge + * + * @returns {Object} Result of all merge properties + */ + function merge(/* obj1, obj2, obj3, ... */ + ) { + var _ref2 = isContextDefined(this) && this || {}, + caseless = _ref2.caseless, + skipUndefined = _ref2.skipUndefined; + var result = {}; + var assignValue = function assignValue(val, key) { + // Skip dangerous property names to prevent prototype pollution + if (key === '__proto__' || key === 'constructor' || key === 'prototype') { + return; + } + var targetKey = caseless && findKey(result, key) || key; + if (isPlainObject(result[targetKey]) && isPlainObject(val)) { + result[targetKey] = merge(result[targetKey], val); + } else if (isPlainObject(val)) { + result[targetKey] = merge({}, val); + } else if (isArray(val)) { + result[targetKey] = val.slice(); + } else if (!skipUndefined || !isUndefined(val)) { + result[targetKey] = val; + } + }; + for (var i = 0, l = arguments.length; i < l; i++) { + arguments[i] && forEach(arguments[i], assignValue); + } + return result; + } + + /** + * Extends object a by mutably adding to it the properties of object b. + * + * @param {Object} a The object to be extended + * @param {Object} b The object to copy properties from + * @param {Object} thisArg The object to bind function to + * + * @param {Object} [options] + * @param {Boolean} [options.allOwnKeys] + * @returns {Object} The resulting value of object a + */ + var extend = function extend(a, b, thisArg) { + var _ref3 = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}, + allOwnKeys = _ref3.allOwnKeys; + forEach(b, function (val, key) { + if (thisArg && isFunction$1(val)) { + Object.defineProperty(a, key, { + value: bind(val, thisArg), + writable: true, + enumerable: true, + configurable: true + }); + } else { + Object.defineProperty(a, key, { + value: val, + writable: true, + enumerable: true, + configurable: true + }); + } + }, { + allOwnKeys: allOwnKeys + }); + return a; + }; + + /** + * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM) + * + * @param {string} content with BOM + * + * @returns {string} content value without BOM + */ + var stripBOM = function stripBOM(content) { + if (content.charCodeAt(0) === 0xfeff) { + content = content.slice(1); + } + return content; + }; + + /** + * Inherit the prototype methods from one constructor into another + * @param {function} constructor + * @param {function} superConstructor + * @param {object} [props] + * @param {object} [descriptors] + * + * @returns {void} + */ + var inherits = function inherits(constructor, superConstructor, props, descriptors) { + constructor.prototype = Object.create(superConstructor.prototype, descriptors); + Object.defineProperty(constructor.prototype, 'constructor', { + value: constructor, + writable: true, + enumerable: false, + configurable: true + }); + Object.defineProperty(constructor, 'super', { + value: superConstructor.prototype + }); + props && Object.assign(constructor.prototype, props); + }; + + /** + * Resolve object with deep prototype chain to a flat object + * @param {Object} sourceObj source object + * @param {Object} [destObj] + * @param {Function|Boolean} [filter] + * @param {Function} [propFilter] + * + * @returns {Object} + */ + var toFlatObject = function toFlatObject(sourceObj, destObj, filter, propFilter) { + var props; + var i; + var prop; + var merged = {}; + destObj = destObj || {}; + // eslint-disable-next-line no-eq-null,eqeqeq + if (sourceObj == null) return destObj; + do { + props = Object.getOwnPropertyNames(sourceObj); + i = props.length; + while (i-- > 0) { + prop = props[i]; + if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) { + destObj[prop] = sourceObj[prop]; + merged[prop] = true; + } + } + sourceObj = filter !== false && getPrototypeOf(sourceObj); + } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype); + return destObj; + }; + + /** + * Determines whether a string ends with the characters of a specified string + * + * @param {String} str + * @param {String} searchString + * @param {Number} [position= 0] + * + * @returns {boolean} + */ + var endsWith = function endsWith(str, searchString, position) { + str = String(str); + if (position === undefined || position > str.length) { + position = str.length; + } + position -= searchString.length; + var lastIndex = str.indexOf(searchString, position); + return lastIndex !== -1 && lastIndex === position; + }; + + /** + * Returns new array from array like object or null if failed + * + * @param {*} [thing] + * + * @returns {?Array} + */ + var toArray = function toArray(thing) { + if (!thing) return null; + if (isArray(thing)) return thing; + var i = thing.length; + if (!isNumber(i)) return null; + var arr = new Array(i); + while (i-- > 0) { + arr[i] = thing[i]; + } + return arr; + }; + + /** + * Checking if the Uint8Array exists and if it does, it returns a function that checks if the + * thing passed in is an instance of Uint8Array + * + * @param {TypedArray} + * + * @returns {Array} + */ + // eslint-disable-next-line func-names + var isTypedArray = function (TypedArray) { + // eslint-disable-next-line func-names + return function (thing) { + return TypedArray && thing instanceof TypedArray; + }; + }(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array)); + + /** + * For each entry in the object, call the function with the key and value. + * + * @param {Object} obj - The object to iterate over. + * @param {Function} fn - The function to call for each entry. + * + * @returns {void} + */ + var forEachEntry = function forEachEntry(obj, fn) { + var generator = obj && obj[iterator]; + var _iterator = generator.call(obj); + var result; + while ((result = _iterator.next()) && !result.done) { + var pair = result.value; + fn.call(obj, pair[0], pair[1]); + } + }; + + /** + * It takes a regular expression and a string, and returns an array of all the matches + * + * @param {string} regExp - The regular expression to match against. + * @param {string} str - The string to search. + * + * @returns {Array} + */ + var matchAll = function matchAll(regExp, str) { + var matches; + var arr = []; + while ((matches = regExp.exec(str)) !== null) { + arr.push(matches); + } + return arr; + }; + + /* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */ + var isHTMLForm = kindOfTest('HTMLFormElement'); + var toCamelCase = function toCamelCase(str) { + return str.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g, function replacer(m, p1, p2) { + return p1.toUpperCase() + p2; + }); + }; + + /* Creating a function that will check if an object has a property. */ + var hasOwnProperty = function (_ref4) { + var hasOwnProperty = _ref4.hasOwnProperty; + return function (obj, prop) { + return hasOwnProperty.call(obj, prop); + }; + }(Object.prototype); + + /** + * Determine if a value is a RegExp object + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a RegExp object, otherwise false + */ + var isRegExp = kindOfTest('RegExp'); + var reduceDescriptors = function reduceDescriptors(obj, reducer) { + var descriptors = Object.getOwnPropertyDescriptors(obj); + var reducedDescriptors = {}; + forEach(descriptors, function (descriptor, name) { + var ret; + if ((ret = reducer(descriptor, name, obj)) !== false) { + reducedDescriptors[name] = ret || descriptor; + } + }); + Object.defineProperties(obj, reducedDescriptors); + }; + + /** + * Makes all methods read-only + * @param {Object} obj + */ + + var freezeMethods = function freezeMethods(obj) { + reduceDescriptors(obj, function (descriptor, name) { + // skip restricted props in strict mode + if (isFunction$1(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) { + return false; + } + var value = obj[name]; + if (!isFunction$1(value)) return; + descriptor.enumerable = false; + if ('writable' in descriptor) { + descriptor.writable = false; + return; + } + if (!descriptor.set) { + descriptor.set = function () { + throw Error("Can not rewrite read-only method '" + name + "'"); + }; + } + }); + }; + + /** + * Converts an array or a delimited string into an object set with values as keys and true as values. + * Useful for fast membership checks. + * + * @param {Array|string} arrayOrString - The array or string to convert. + * @param {string} delimiter - The delimiter to use if input is a string. + * @returns {Object} An object with keys from the array or string, values set to true. + */ + var toObjectSet = function toObjectSet(arrayOrString, delimiter) { + var obj = {}; + var define = function define(arr) { + arr.forEach(function (value) { + obj[value] = true; + }); + }; + isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter)); + return obj; + }; + var noop = function noop() {}; + var toFiniteNumber = function toFiniteNumber(value, defaultValue) { + return value != null && Number.isFinite(value = +value) ? value : defaultValue; + }; + + /** + * If the thing is a FormData object, return true, otherwise return false. + * + * @param {unknown} thing - The thing to check. + * + * @returns {boolean} + */ + function isSpecCompliantForm(thing) { + return !!(thing && isFunction$1(thing.append) && thing[toStringTag] === 'FormData' && thing[iterator]); + } + + /** + * Recursively converts an object to a JSON-compatible object, handling circular references and Buffers. + * + * @param {Object} obj - The object to convert. + * @returns {Object} The JSON-compatible object. + */ + var toJSONObject = function toJSONObject(obj) { + var stack = new Array(10); + var _visit = function visit(source, i) { + if (isObject(source)) { + if (stack.indexOf(source) >= 0) { + return; + } + + //Buffer check + if (isBuffer(source)) { + return source; + } + if (!('toJSON' in source)) { + stack[i] = source; + var target = isArray(source) ? [] : {}; + forEach(source, function (value, key) { + var reducedValue = _visit(value, i + 1); + !isUndefined(reducedValue) && (target[key] = reducedValue); + }); + stack[i] = undefined; + return target; + } + } + return source; + }; + return _visit(obj, 0); + }; + + /** + * Determines if a value is an async function. + * + * @param {*} thing - The value to test. + * @returns {boolean} True if value is an async function, otherwise false. + */ + var isAsyncFn = kindOfTest('AsyncFunction'); + + /** + * Determines if a value is thenable (has then and catch methods). + * + * @param {*} thing - The value to test. + * @returns {boolean} True if value is thenable, otherwise false. + */ + var isThenable = function isThenable(thing) { + return thing && (isObject(thing) || isFunction$1(thing)) && isFunction$1(thing.then) && isFunction$1(thing["catch"]); + }; + + // original code + // https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34 + + /** + * Provides a cross-platform setImmediate implementation. + * Uses native setImmediate if available, otherwise falls back to postMessage or setTimeout. + * + * @param {boolean} setImmediateSupported - Whether setImmediate is supported. + * @param {boolean} postMessageSupported - Whether postMessage is supported. + * @returns {Function} A function to schedule a callback asynchronously. + */ + var _setImmediate = function (setImmediateSupported, postMessageSupported) { + if (setImmediateSupported) { + return setImmediate; + } + return postMessageSupported ? function (token, callbacks) { + _global.addEventListener('message', function (_ref5) { + var source = _ref5.source, + data = _ref5.data; + if (source === _global && data === token) { + callbacks.length && callbacks.shift()(); + } + }, false); + return function (cb) { + callbacks.push(cb); + _global.postMessage(token, '*'); + }; + }("axios@".concat(Math.random()), []) : function (cb) { + return setTimeout(cb); + }; + }(typeof setImmediate === 'function', isFunction$1(_global.postMessage)); + + /** + * Schedules a microtask or asynchronous callback as soon as possible. + * Uses queueMicrotask if available, otherwise falls back to process.nextTick or _setImmediate. + * + * @type {Function} + */ + var asap = typeof queueMicrotask !== 'undefined' ? queueMicrotask.bind(_global) : typeof process !== 'undefined' && process.nextTick || _setImmediate; + + // ********************* + + var isIterable = function isIterable(thing) { + return thing != null && isFunction$1(thing[iterator]); + }; + var utils$1 = { + isArray: isArray, + isArrayBuffer: isArrayBuffer, + isBuffer: isBuffer, + isFormData: isFormData, + isArrayBufferView: isArrayBufferView, + isString: isString, + isNumber: isNumber, + isBoolean: isBoolean, + isObject: isObject, + isPlainObject: isPlainObject, + isEmptyObject: isEmptyObject, + isReadableStream: isReadableStream, + isRequest: isRequest, + isResponse: isResponse, + isHeaders: isHeaders, + isUndefined: isUndefined, + isDate: isDate, + isFile: isFile, + isReactNativeBlob: isReactNativeBlob, + isReactNative: isReactNative, + isBlob: isBlob, + isRegExp: isRegExp, + isFunction: isFunction$1, + isStream: isStream, + isURLSearchParams: isURLSearchParams, + isTypedArray: isTypedArray, + isFileList: isFileList, + forEach: forEach, + merge: merge, + extend: extend, + trim: trim, + stripBOM: stripBOM, + inherits: inherits, + toFlatObject: toFlatObject, + kindOf: kindOf, + kindOfTest: kindOfTest, + endsWith: endsWith, + toArray: toArray, + forEachEntry: forEachEntry, + matchAll: matchAll, + isHTMLForm: isHTMLForm, + hasOwnProperty: hasOwnProperty, + hasOwnProp: hasOwnProperty, + // an alias to avoid ESLint no-prototype-builtins detection + reduceDescriptors: reduceDescriptors, + freezeMethods: freezeMethods, + toObjectSet: toObjectSet, + toCamelCase: toCamelCase, + noop: noop, + toFiniteNumber: toFiniteNumber, + findKey: findKey, + global: _global, + isContextDefined: isContextDefined, + isSpecCompliantForm: isSpecCompliantForm, + toJSONObject: toJSONObject, + isAsyncFn: isAsyncFn, + isThenable: isThenable, + setImmediate: _setImmediate, + asap: asap, + isIterable: isIterable + }; + + var AxiosError = /*#__PURE__*/function (_Error) { + /** + * Create an Error with the specified message, config, error code, request and response. + * + * @param {string} message The error message. + * @param {string} [code] The error code (for example, 'ECONNABORTED'). + * @param {Object} [config] The config. + * @param {Object} [request] The request. + * @param {Object} [response] The response. + * + * @returns {Error} The created error. + */ + function AxiosError(message, code, config, request, response) { + var _this; + _classCallCheck(this, AxiosError); + _this = _callSuper(this, AxiosError, [message]); + + // Make message enumerable to maintain backward compatibility + // The native Error constructor sets message as non-enumerable, + // but axios < v1.13.3 had it as enumerable + Object.defineProperty(_this, 'message', { + value: message, + enumerable: true, + writable: true, + configurable: true + }); + _this.name = 'AxiosError'; + _this.isAxiosError = true; + code && (_this.code = code); + config && (_this.config = config); + request && (_this.request = request); + if (response) { + _this.response = response; + _this.status = response.status; + } + return _this; + } + _inherits(AxiosError, _Error); + return _createClass(AxiosError, [{ + key: "toJSON", + value: function toJSON() { + return { + // Standard + message: this.message, + name: this.name, + // Microsoft + description: this.description, + number: this.number, + // Mozilla + fileName: this.fileName, + lineNumber: this.lineNumber, + columnNumber: this.columnNumber, + stack: this.stack, + // Axios + config: utils$1.toJSONObject(this.config), + code: this.code, + status: this.status + }; + } + }], [{ + key: "from", + value: function from(error, code, config, request, response, customProps) { + var axiosError = new AxiosError(error.message, code || error.code, config, request, response); + axiosError.cause = error; + axiosError.name = error.name; + + // Preserve status from the original error if not already set from response + if (error.status != null && axiosError.status == null) { + axiosError.status = error.status; + } + customProps && Object.assign(axiosError, customProps); + return axiosError; + } + }]); + }(/*#__PURE__*/_wrapNativeSuper(Error)); // This can be changed to static properties as soon as the parser options in .eslint.cjs are updated. + AxiosError.ERR_BAD_OPTION_VALUE = 'ERR_BAD_OPTION_VALUE'; + AxiosError.ERR_BAD_OPTION = 'ERR_BAD_OPTION'; + AxiosError.ECONNABORTED = 'ECONNABORTED'; + AxiosError.ETIMEDOUT = 'ETIMEDOUT'; + AxiosError.ERR_NETWORK = 'ERR_NETWORK'; + AxiosError.ERR_FR_TOO_MANY_REDIRECTS = 'ERR_FR_TOO_MANY_REDIRECTS'; + AxiosError.ERR_DEPRECATED = 'ERR_DEPRECATED'; + AxiosError.ERR_BAD_RESPONSE = 'ERR_BAD_RESPONSE'; + AxiosError.ERR_BAD_REQUEST = 'ERR_BAD_REQUEST'; + AxiosError.ERR_CANCELED = 'ERR_CANCELED'; + AxiosError.ERR_NOT_SUPPORT = 'ERR_NOT_SUPPORT'; + AxiosError.ERR_INVALID_URL = 'ERR_INVALID_URL'; + AxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED = 'ERR_FORM_DATA_DEPTH_EXCEEDED'; + + // eslint-disable-next-line strict + var httpAdapter = null; + + /** + * Determines if the given thing is a array or js object. + * + * @param {string} thing - The object or array to be visited. + * + * @returns {boolean} + */ + function isVisitable(thing) { + return utils$1.isPlainObject(thing) || utils$1.isArray(thing); + } + + /** + * It removes the brackets from the end of a string + * + * @param {string} key - The key of the parameter. + * + * @returns {string} the key without the brackets. + */ + function removeBrackets(key) { + return utils$1.endsWith(key, '[]') ? key.slice(0, -2) : key; + } + + /** + * It takes a path, a key, and a boolean, and returns a string + * + * @param {string} path - The path to the current key. + * @param {string} key - The key of the current object being iterated over. + * @param {string} dots - If true, the key will be rendered with dots instead of brackets. + * + * @returns {string} The path to the current key. + */ + function renderKey(path, key, dots) { + if (!path) return key; + return path.concat(key).map(function each(token, i) { + // eslint-disable-next-line no-param-reassign + token = removeBrackets(token); + return !dots && i ? '[' + token + ']' : token; + }).join(dots ? '.' : ''); + } + + /** + * If the array is an array and none of its elements are visitable, then it's a flat array. + * + * @param {Array} arr - The array to check + * + * @returns {boolean} + */ + function isFlatArray(arr) { + return utils$1.isArray(arr) && !arr.some(isVisitable); + } + var predicates = utils$1.toFlatObject(utils$1, {}, null, function filter(prop) { + return /^is[A-Z]/.test(prop); + }); + + /** + * Convert a data object to FormData + * + * @param {Object} obj + * @param {?Object} [formData] + * @param {?Object} [options] + * @param {Function} [options.visitor] + * @param {Boolean} [options.metaTokens = true] + * @param {Boolean} [options.dots = false] + * @param {?Boolean} [options.indexes = false] + * + * @returns {Object} + **/ + + /** + * It converts an object into a FormData object + * + * @param {Object} obj - The object to convert to form data. + * @param {string} formData - The FormData object to append to. + * @param {Object} options + * + * @returns + */ + function toFormData(obj, formData, options) { + if (!utils$1.isObject(obj)) { + throw new TypeError('target must be an object'); + } + + // eslint-disable-next-line no-param-reassign + formData = formData || new (FormData)(); + + // eslint-disable-next-line no-param-reassign + options = utils$1.toFlatObject(options, { + metaTokens: true, + dots: false, + indexes: false + }, false, function defined(option, source) { + // eslint-disable-next-line no-eq-null,eqeqeq + return !utils$1.isUndefined(source[option]); + }); + var metaTokens = options.metaTokens; + // eslint-disable-next-line no-use-before-define + var visitor = options.visitor || defaultVisitor; + var dots = options.dots; + var indexes = options.indexes; + var _Blob = options.Blob || typeof Blob !== 'undefined' && Blob; + var maxDepth = options.maxDepth === undefined ? 100 : options.maxDepth; + var useBlob = _Blob && utils$1.isSpecCompliantForm(formData); + if (!utils$1.isFunction(visitor)) { + throw new TypeError('visitor must be a function'); + } + function convertValue(value) { + if (value === null) return ''; + if (utils$1.isDate(value)) { + return value.toISOString(); + } + if (utils$1.isBoolean(value)) { + return value.toString(); + } + if (!useBlob && utils$1.isBlob(value)) { + throw new AxiosError('Blob is not supported. Use a Buffer instead.'); + } + if (utils$1.isArrayBuffer(value) || utils$1.isTypedArray(value)) { + return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value); + } + return value; + } + + /** + * Default visitor. + * + * @param {*} value + * @param {String|Number} key + * @param {Array} path + * @this {FormData} + * + * @returns {boolean} return true to visit the each prop of the value recursively + */ + function defaultVisitor(value, key, path) { + var arr = value; + if (utils$1.isReactNative(formData) && utils$1.isReactNativeBlob(value)) { + formData.append(renderKey(path, key, dots), convertValue(value)); + return false; + } + if (value && !path && _typeof(value) === 'object') { + if (utils$1.endsWith(key, '{}')) { + // eslint-disable-next-line no-param-reassign + key = metaTokens ? key : key.slice(0, -2); + // eslint-disable-next-line no-param-reassign + value = JSON.stringify(value); + } else if (utils$1.isArray(value) && isFlatArray(value) || (utils$1.isFileList(value) || utils$1.endsWith(key, '[]')) && (arr = utils$1.toArray(value))) { + // eslint-disable-next-line no-param-reassign + key = removeBrackets(key); + arr.forEach(function each(el, index) { + !(utils$1.isUndefined(el) || el === null) && formData.append( + // eslint-disable-next-line no-nested-ternary + indexes === true ? renderKey([key], index, dots) : indexes === null ? key : key + '[]', convertValue(el)); + }); + return false; + } + } + if (isVisitable(value)) { + return true; + } + formData.append(renderKey(path, key, dots), convertValue(value)); + return false; + } + var stack = []; + var exposedHelpers = Object.assign(predicates, { + defaultVisitor: defaultVisitor, + convertValue: convertValue, + isVisitable: isVisitable + }); + function build(value, path) { + var depth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0; + if (utils$1.isUndefined(value)) return; + if (depth > maxDepth) { + throw new AxiosError('Object is too deeply nested (' + depth + ' levels). Max depth: ' + maxDepth, AxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED); + } + if (stack.indexOf(value) !== -1) { + throw Error('Circular reference detected in ' + path.join('.')); + } + stack.push(value); + utils$1.forEach(value, function each(el, key) { + var result = !(utils$1.isUndefined(el) || el === null) && visitor.call(formData, el, utils$1.isString(key) ? key.trim() : key, path, exposedHelpers); + if (result === true) { + build(el, path ? path.concat(key) : [key], depth + 1); + } + }); + stack.pop(); + } + if (!utils$1.isObject(obj)) { + throw new TypeError('data must be an object'); + } + build(obj); + return formData; + } + + /** + * It encodes a string by replacing all characters that are not in the unreserved set with + * their percent-encoded equivalents + * + * @param {string} str - The string to encode. + * + * @returns {string} The encoded string. + */ + function encode$1(str) { + var charMap = { + '!': '%21', + "'": '%27', + '(': '%28', + ')': '%29', + '~': '%7E', + '%20': '+' + }; + return encodeURIComponent(str).replace(/[!'()~]|%20/g, function replacer(match) { + return charMap[match]; + }); + } + + /** + * It takes a params object and converts it to a FormData object + * + * @param {Object} params - The parameters to be converted to a FormData object. + * @param {Object} options - The options object passed to the Axios constructor. + * + * @returns {void} + */ + function AxiosURLSearchParams(params, options) { + this._pairs = []; + params && toFormData(params, this, options); + } + var prototype = AxiosURLSearchParams.prototype; + prototype.append = function append(name, value) { + this._pairs.push([name, value]); + }; + prototype.toString = function toString(encoder) { + var _encode = encoder ? function (value) { + return encoder.call(this, value, encode$1); + } : encode$1; + return this._pairs.map(function each(pair) { + return _encode(pair[0]) + '=' + _encode(pair[1]); + }, '').join('&'); + }; + + /** + * It replaces URL-encoded forms of `:`, `$`, `,`, and spaces with + * their plain counterparts (`:`, `$`, `,`, `+`). + * + * @param {string} val The value to be encoded. + * + * @returns {string} The encoded value. + */ + function encode(val) { + return encodeURIComponent(val).replace(/%3A/gi, ':').replace(/%24/g, '$').replace(/%2C/gi, ',').replace(/%20/g, '+'); + } + + /** + * Build a URL by appending params to the end + * + * @param {string} url The base of the url (e.g., http://www.google.com) + * @param {object} [params] The params to be appended + * @param {?(object|Function)} options + * + * @returns {string} The formatted url + */ + function buildURL(url, params, options) { + if (!params) { + return url; + } + var _encode = options && options.encode || encode; + var _options = utils$1.isFunction(options) ? { + serialize: options + } : options; + var serializeFn = _options && _options.serialize; + var serializedParams; + if (serializeFn) { + serializedParams = serializeFn(params, _options); + } else { + serializedParams = utils$1.isURLSearchParams(params) ? params.toString() : new AxiosURLSearchParams(params, _options).toString(_encode); + } + if (serializedParams) { + var hashmarkIndex = url.indexOf('#'); + if (hashmarkIndex !== -1) { + url = url.slice(0, hashmarkIndex); + } + url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams; + } + return url; + } + + var InterceptorManager = /*#__PURE__*/function () { + function InterceptorManager() { + _classCallCheck(this, InterceptorManager); + this.handlers = []; + } + + /** + * Add a new interceptor to the stack + * + * @param {Function} fulfilled The function to handle `then` for a `Promise` + * @param {Function} rejected The function to handle `reject` for a `Promise` + * @param {Object} options The options for the interceptor, synchronous and runWhen + * + * @return {Number} An ID used to remove interceptor later + */ + return _createClass(InterceptorManager, [{ + key: "use", + value: function use(fulfilled, rejected, options) { + this.handlers.push({ + fulfilled: fulfilled, + rejected: rejected, + synchronous: options ? options.synchronous : false, + runWhen: options ? options.runWhen : null + }); + return this.handlers.length - 1; + } + + /** + * Remove an interceptor from the stack + * + * @param {Number} id The ID that was returned by `use` + * + * @returns {void} + */ + }, { + key: "eject", + value: function eject(id) { + if (this.handlers[id]) { + this.handlers[id] = null; + } + } + + /** + * Clear all interceptors from the stack + * + * @returns {void} + */ + }, { + key: "clear", + value: function clear() { + if (this.handlers) { + this.handlers = []; + } + } + + /** + * Iterate over all the registered interceptors + * + * This method is particularly useful for skipping over any + * interceptors that may have become `null` calling `eject`. + * + * @param {Function} fn The function to call for each interceptor + * + * @returns {void} + */ + }, { + key: "forEach", + value: function forEach(fn) { + utils$1.forEach(this.handlers, function forEachHandler(h) { + if (h !== null) { + fn(h); + } + }); + } + }]); + }(); + + var transitionalDefaults = { + silentJSONParsing: true, + forcedJSONParsing: true, + clarifyTimeoutError: false, + legacyInterceptorReqResOrdering: true + }; + + var URLSearchParams$1 = typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams; + + var FormData$1 = typeof FormData !== 'undefined' ? FormData : null; + + var Blob$1 = typeof Blob !== 'undefined' ? Blob : null; + + var platform$1 = { + isBrowser: true, + classes: { + URLSearchParams: URLSearchParams$1, + FormData: FormData$1, + Blob: Blob$1 + }, + protocols: ['http', 'https', 'file', 'blob', 'url', 'data'] + }; + + var hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined'; + var _navigator = (typeof navigator === "undefined" ? "undefined" : _typeof(navigator)) === 'object' && navigator || undefined; + + /** + * Determine if we're running in a standard browser environment + * + * This allows axios to run in a web worker, and react-native. + * Both environments support XMLHttpRequest, but not fully standard globals. + * + * web workers: + * typeof window -> undefined + * typeof document -> undefined + * + * react-native: + * navigator.product -> 'ReactNative' + * nativescript + * navigator.product -> 'NativeScript' or 'NS' + * + * @returns {boolean} + */ + var hasStandardBrowserEnv = hasBrowserEnv && (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0); + + /** + * Determine if we're running in a standard browser webWorker environment + * + * Although the `isStandardBrowserEnv` method indicates that + * `allows axios to run in a web worker`, the WebWorker will still be + * filtered out due to its judgment standard + * `typeof window !== 'undefined' && typeof document !== 'undefined'`. + * This leads to a problem when axios post `FormData` in webWorker + */ + var hasStandardBrowserWebWorkerEnv = function () { + return typeof WorkerGlobalScope !== 'undefined' && + // eslint-disable-next-line no-undef + self instanceof WorkerGlobalScope && typeof self.importScripts === 'function'; + }(); + var origin = hasBrowserEnv && window.location.href || 'http://localhost'; + + var utils = /*#__PURE__*/Object.freeze({ + __proto__: null, + hasBrowserEnv: hasBrowserEnv, + hasStandardBrowserEnv: hasStandardBrowserEnv, + hasStandardBrowserWebWorkerEnv: hasStandardBrowserWebWorkerEnv, + navigator: _navigator, + origin: origin + }); + + var platform = _objectSpread2(_objectSpread2({}, utils), platform$1); + + function toURLEncodedForm(data, options) { + return toFormData(data, new platform.classes.URLSearchParams(), _objectSpread2({ + visitor: function visitor(value, key, path, helpers) { + if (platform.isNode && utils$1.isBuffer(value)) { + this.append(key, value.toString('base64')); + return false; + } + return helpers.defaultVisitor.apply(this, arguments); + } + }, options)); + } + + /** + * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z'] + * + * @param {string} name - The name of the property to get. + * + * @returns An array of strings. + */ + function parsePropPath(name) { + // foo[x][y][z] + // foo.x.y.z + // foo-x-y-z + // foo x y z + return utils$1.matchAll(/\w+|\[(\w*)]/g, name).map(function (match) { + return match[0] === '[]' ? '' : match[1] || match[0]; + }); + } + + /** + * Convert an array to an object. + * + * @param {Array} arr - The array to convert to an object. + * + * @returns An object with the same keys and values as the array. + */ + function arrayToObject(arr) { + var obj = {}; + var keys = Object.keys(arr); + var i; + var len = keys.length; + var key; + for (i = 0; i < len; i++) { + key = keys[i]; + obj[key] = arr[key]; + } + return obj; + } + + /** + * It takes a FormData object and returns a JavaScript object + * + * @param {string} formData The FormData object to convert to JSON. + * + * @returns {Object | null} The converted object. + */ + function formDataToJSON(formData) { + function buildPath(path, value, target, index) { + var name = path[index++]; + if (name === '__proto__') return true; + var isNumericKey = Number.isFinite(+name); + var isLast = index >= path.length; + name = !name && utils$1.isArray(target) ? target.length : name; + if (isLast) { + if (utils$1.hasOwnProp(target, name)) { + target[name] = utils$1.isArray(target[name]) ? target[name].concat(value) : [target[name], value]; + } else { + target[name] = value; + } + return !isNumericKey; + } + if (!target[name] || !utils$1.isObject(target[name])) { + target[name] = []; + } + var result = buildPath(path, value, target[name], index); + if (result && utils$1.isArray(target[name])) { + target[name] = arrayToObject(target[name]); + } + return !isNumericKey; + } + if (utils$1.isFormData(formData) && utils$1.isFunction(formData.entries)) { + var obj = {}; + utils$1.forEachEntry(formData, function (name, value) { + buildPath(parsePropPath(name), value, obj, 0); + }); + return obj; + } + return null; + } + + var own = function own(obj, key) { + return obj != null && utils$1.hasOwnProp(obj, key) ? obj[key] : undefined; + }; + + /** + * It takes a string, tries to parse it, and if it fails, it returns the stringified version + * of the input + * + * @param {any} rawValue - The value to be stringified. + * @param {Function} parser - A function that parses a string into a JavaScript object. + * @param {Function} encoder - A function that takes a value and returns a string. + * + * @returns {string} A stringified version of the rawValue. + */ + function stringifySafely(rawValue, parser, encoder) { + if (utils$1.isString(rawValue)) { + try { + (parser || JSON.parse)(rawValue); + return utils$1.trim(rawValue); + } catch (e) { + if (e.name !== 'SyntaxError') { + throw e; + } + } + } + return (encoder || JSON.stringify)(rawValue); + } + var defaults = { + transitional: transitionalDefaults, + adapter: ['xhr', 'http', 'fetch'], + transformRequest: [function transformRequest(data, headers) { + var contentType = headers.getContentType() || ''; + var hasJSONContentType = contentType.indexOf('application/json') > -1; + var isObjectPayload = utils$1.isObject(data); + if (isObjectPayload && utils$1.isHTMLForm(data)) { + data = new FormData(data); + } + var isFormData = utils$1.isFormData(data); + if (isFormData) { + return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data; + } + if (utils$1.isArrayBuffer(data) || utils$1.isBuffer(data) || utils$1.isStream(data) || utils$1.isFile(data) || utils$1.isBlob(data) || utils$1.isReadableStream(data)) { + return data; + } + if (utils$1.isArrayBufferView(data)) { + return data.buffer; + } + if (utils$1.isURLSearchParams(data)) { + headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false); + return data.toString(); + } + var isFileList; + if (isObjectPayload) { + var formSerializer = own(this, 'formSerializer'); + if (contentType.indexOf('application/x-www-form-urlencoded') > -1) { + return toURLEncodedForm(data, formSerializer).toString(); + } + if ((isFileList = utils$1.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) { + var env = own(this, 'env'); + var _FormData = env && env.FormData; + return toFormData(isFileList ? { + 'files[]': data + } : data, _FormData && new _FormData(), formSerializer); + } + } + if (isObjectPayload || hasJSONContentType) { + headers.setContentType('application/json', false); + return stringifySafely(data); + } + return data; + }], + transformResponse: [function transformResponse(data) { + var transitional = own(this, 'transitional') || defaults.transitional; + var forcedJSONParsing = transitional && transitional.forcedJSONParsing; + var responseType = own(this, 'responseType'); + var JSONRequested = responseType === 'json'; + if (utils$1.isResponse(data) || utils$1.isReadableStream(data)) { + return data; + } + if (data && utils$1.isString(data) && (forcedJSONParsing && !responseType || JSONRequested)) { + var silentJSONParsing = transitional && transitional.silentJSONParsing; + var strictJSONParsing = !silentJSONParsing && JSONRequested; + try { + return JSON.parse(data, own(this, 'parseReviver')); + } catch (e) { + if (strictJSONParsing) { + if (e.name === 'SyntaxError') { + throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, own(this, 'response')); + } + throw e; + } + } + } + return data; + }], + /** + * A timeout in milliseconds to abort a request. If set to 0 (default) a + * timeout is not created. + */ + timeout: 0, + xsrfCookieName: 'XSRF-TOKEN', + xsrfHeaderName: 'X-XSRF-TOKEN', + maxContentLength: -1, + maxBodyLength: -1, + env: { + FormData: platform.classes.FormData, + Blob: platform.classes.Blob + }, + validateStatus: function validateStatus(status) { + return status >= 200 && status < 300; + }, + headers: { + common: { + Accept: 'application/json, text/plain, */*', + 'Content-Type': undefined + } + } + }; + utils$1.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], function (method) { + defaults.headers[method] = {}; + }); + + // RawAxiosHeaders whose duplicates are ignored by node + // c.f. https://nodejs.org/api/http.html#http_message_headers + var ignoreDuplicateOf = utils$1.toObjectSet(['age', 'authorization', 'content-length', 'content-type', 'etag', 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since', 'last-modified', 'location', 'max-forwards', 'proxy-authorization', 'referer', 'retry-after', 'user-agent']); + + /** + * Parse headers into an object + * + * ``` + * Date: Wed, 27 Aug 2014 08:58:49 GMT + * Content-Type: application/json + * Connection: keep-alive + * Transfer-Encoding: chunked + * ``` + * + * @param {String} rawHeaders Headers needing to be parsed + * + * @returns {Object} Headers parsed into an object + */ + var parseHeaders = (function (rawHeaders) { + var parsed = {}; + var key; + var val; + var i; + rawHeaders && rawHeaders.split('\n').forEach(function parser(line) { + i = line.indexOf(':'); + key = line.substring(0, i).trim().toLowerCase(); + val = line.substring(i + 1).trim(); + if (!key || parsed[key] && ignoreDuplicateOf[key]) { + return; + } + if (key === 'set-cookie') { + if (parsed[key]) { + parsed[key].push(val); + } else { + parsed[key] = [val]; + } + } else { + parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val; + } + }); + return parsed; + }); + + var $internals = Symbol('internals'); + var INVALID_HEADER_VALUE_CHARS_RE = /[^\x09\x20-\x7E\x80-\xFF]/g; + function trimSPorHTAB(str) { + var start = 0; + var end = str.length; + while (start < end) { + var code = str.charCodeAt(start); + if (code !== 0x09 && code !== 0x20) { + break; + } + start += 1; + } + while (end > start) { + var _code = str.charCodeAt(end - 1); + if (_code !== 0x09 && _code !== 0x20) { + break; + } + end -= 1; + } + return start === 0 && end === str.length ? str : str.slice(start, end); + } + function normalizeHeader(header) { + return header && String(header).trim().toLowerCase(); + } + function sanitizeHeaderValue(str) { + return trimSPorHTAB(str.replace(INVALID_HEADER_VALUE_CHARS_RE, '')); + } + function normalizeValue(value) { + if (value === false || value == null) { + return value; + } + return utils$1.isArray(value) ? value.map(normalizeValue) : sanitizeHeaderValue(String(value)); + } + function parseTokens(str) { + var tokens = Object.create(null); + var tokensRE = /([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g; + var match; + while (match = tokensRE.exec(str)) { + tokens[match[1]] = match[2]; + } + return tokens; + } + var isValidHeaderName = function isValidHeaderName(str) { + return /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim()); + }; + function matchHeaderValue(context, value, header, filter, isHeaderNameFilter) { + if (utils$1.isFunction(filter)) { + return filter.call(this, value, header); + } + if (isHeaderNameFilter) { + value = header; + } + if (!utils$1.isString(value)) return; + if (utils$1.isString(filter)) { + return value.indexOf(filter) !== -1; + } + if (utils$1.isRegExp(filter)) { + return filter.test(value); + } + } + function formatHeader(header) { + return header.trim().toLowerCase().replace(/([a-z\d])(\w*)/g, function (w, _char, str) { + return _char.toUpperCase() + str; + }); + } + function buildAccessors(obj, header) { + var accessorName = utils$1.toCamelCase(' ' + header); + ['get', 'set', 'has'].forEach(function (methodName) { + Object.defineProperty(obj, methodName + accessorName, { + value: function value(arg1, arg2, arg3) { + return this[methodName].call(this, header, arg1, arg2, arg3); + }, + configurable: true + }); + }); + } + var AxiosHeaders = /*#__PURE__*/function () { + function AxiosHeaders(headers) { + _classCallCheck(this, AxiosHeaders); + headers && this.set(headers); + } + return _createClass(AxiosHeaders, [{ + key: "set", + value: function set(header, valueOrRewrite, rewrite) { + var self = this; + function setHeader(_value, _header, _rewrite) { + var lHeader = normalizeHeader(_header); + if (!lHeader) { + throw new Error('header name must be a non-empty string'); + } + var key = utils$1.findKey(self, lHeader); + if (!key || self[key] === undefined || _rewrite === true || _rewrite === undefined && self[key] !== false) { + self[key || _header] = normalizeValue(_value); + } + } + var setHeaders = function setHeaders(headers, _rewrite) { + return utils$1.forEach(headers, function (_value, _header) { + return setHeader(_value, _header, _rewrite); + }); + }; + if (utils$1.isPlainObject(header) || header instanceof this.constructor) { + setHeaders(header, valueOrRewrite); + } else if (utils$1.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) { + setHeaders(parseHeaders(header), valueOrRewrite); + } else if (utils$1.isObject(header) && utils$1.isIterable(header)) { + var obj = {}, + dest, + key; + var _iterator = _createForOfIteratorHelper(header), + _step; + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var entry = _step.value; + if (!utils$1.isArray(entry)) { + throw TypeError('Object iterator must return a key-value pair'); + } + obj[key = entry[0]] = (dest = obj[key]) ? utils$1.isArray(dest) ? [].concat(_toConsumableArray(dest), [entry[1]]) : [dest, entry[1]] : entry[1]; + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + setHeaders(obj, valueOrRewrite); + } else { + header != null && setHeader(valueOrRewrite, header, rewrite); + } + return this; + } + }, { + key: "get", + value: function get(header, parser) { + header = normalizeHeader(header); + if (header) { + var key = utils$1.findKey(this, header); + if (key) { + var value = this[key]; + if (!parser) { + return value; + } + if (parser === true) { + return parseTokens(value); + } + if (utils$1.isFunction(parser)) { + return parser.call(this, value, key); + } + if (utils$1.isRegExp(parser)) { + return parser.exec(value); + } + throw new TypeError('parser must be boolean|regexp|function'); + } + } + } + }, { + key: "has", + value: function has(header, matcher) { + header = normalizeHeader(header); + if (header) { + var key = utils$1.findKey(this, header); + return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher))); + } + return false; + } + }, { + key: "delete", + value: function _delete(header, matcher) { + var self = this; + var deleted = false; + function deleteHeader(_header) { + _header = normalizeHeader(_header); + if (_header) { + var key = utils$1.findKey(self, _header); + if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) { + delete self[key]; + deleted = true; + } + } + } + if (utils$1.isArray(header)) { + header.forEach(deleteHeader); + } else { + deleteHeader(header); + } + return deleted; + } + }, { + key: "clear", + value: function clear(matcher) { + var keys = Object.keys(this); + var i = keys.length; + var deleted = false; + while (i--) { + var key = keys[i]; + if (!matcher || matchHeaderValue(this, this[key], key, matcher, true)) { + delete this[key]; + deleted = true; + } + } + return deleted; + } + }, { + key: "normalize", + value: function normalize(format) { + var self = this; + var headers = {}; + utils$1.forEach(this, function (value, header) { + var key = utils$1.findKey(headers, header); + if (key) { + self[key] = normalizeValue(value); + delete self[header]; + return; + } + var normalized = format ? formatHeader(header) : String(header).trim(); + if (normalized !== header) { + delete self[header]; + } + self[normalized] = normalizeValue(value); + headers[normalized] = true; + }); + return this; + } + }, { + key: "concat", + value: function concat() { + var _this$constructor; + for (var _len = arguments.length, targets = new Array(_len), _key = 0; _key < _len; _key++) { + targets[_key] = arguments[_key]; + } + return (_this$constructor = this.constructor).concat.apply(_this$constructor, [this].concat(targets)); + } + }, { + key: "toJSON", + value: function toJSON(asStrings) { + var obj = Object.create(null); + utils$1.forEach(this, function (value, header) { + value != null && value !== false && (obj[header] = asStrings && utils$1.isArray(value) ? value.join(', ') : value); + }); + return obj; + } + }, { + key: Symbol.iterator, + value: function value() { + return Object.entries(this.toJSON())[Symbol.iterator](); + } + }, { + key: "toString", + value: function toString() { + return Object.entries(this.toJSON()).map(function (_ref) { + var _ref2 = _slicedToArray(_ref, 2), + header = _ref2[0], + value = _ref2[1]; + return header + ': ' + value; + }).join('\n'); + } + }, { + key: "getSetCookie", + value: function getSetCookie() { + return this.get('set-cookie') || []; + } + }, { + key: Symbol.toStringTag, + get: function get() { + return 'AxiosHeaders'; + } + }], [{ + key: "from", + value: function from(thing) { + return thing instanceof this ? thing : new this(thing); + } + }, { + key: "concat", + value: function concat(first) { + var computed = new this(first); + for (var _len2 = arguments.length, targets = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { + targets[_key2 - 1] = arguments[_key2]; + } + targets.forEach(function (target) { + return computed.set(target); + }); + return computed; + } + }, { + key: "accessor", + value: function accessor(header) { + var internals = this[$internals] = this[$internals] = { + accessors: {} + }; + var accessors = internals.accessors; + var prototype = this.prototype; + function defineAccessor(_header) { + var lHeader = normalizeHeader(_header); + if (!accessors[lHeader]) { + buildAccessors(prototype, _header); + accessors[lHeader] = true; + } + } + utils$1.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header); + return this; + } + }]); + }(); + AxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']); + + // reserved names hotfix + utils$1.reduceDescriptors(AxiosHeaders.prototype, function (_ref3, key) { + var value = _ref3.value; + var mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set` + return { + get: function get() { + return value; + }, + set: function set(headerValue) { + this[mapped] = headerValue; + } + }; + }); + utils$1.freezeMethods(AxiosHeaders); + + /** + * Transform the data for a request or a response + * + * @param {Array|Function} fns A single function or Array of functions + * @param {?Object} response The response object + * + * @returns {*} The resulting transformed data + */ + function transformData(fns, response) { + var config = this || defaults; + var context = response || config; + var headers = AxiosHeaders.from(context.headers); + var data = context.data; + utils$1.forEach(fns, function transform(fn) { + data = fn.call(config, data, headers.normalize(), response ? response.status : undefined); + }); + headers.normalize(); + return data; + } + + function isCancel(value) { + return !!(value && value.__CANCEL__); + } + + var CanceledError = /*#__PURE__*/function (_AxiosError) { + /** + * A `CanceledError` is an object that is thrown when an operation is canceled. + * + * @param {string=} message The message. + * @param {Object=} config The config. + * @param {Object=} request The request. + * + * @returns {CanceledError} The created error. + */ + function CanceledError(message, config, request) { + var _this; + _classCallCheck(this, CanceledError); + _this = _callSuper(this, CanceledError, [message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request]); + _this.name = 'CanceledError'; + _this.__CANCEL__ = true; + return _this; + } + _inherits(CanceledError, _AxiosError); + return _createClass(CanceledError); + }(AxiosError); + + /** + * Resolve or reject a Promise based on response status. + * + * @param {Function} resolve A function that resolves the promise. + * @param {Function} reject A function that rejects the promise. + * @param {object} response The response. + * + * @returns {object} The response. + */ + function settle(resolve, reject, response) { + var validateStatus = response.config.validateStatus; + if (!response.status || !validateStatus || validateStatus(response.status)) { + resolve(response); + } else { + reject(new AxiosError('Request failed with status code ' + response.status, [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4], response.config, response.request, response)); + } + } + + function parseProtocol(url) { + var match = /^([-+\w]{1,25})(:?\/\/|:)/.exec(url); + return match && match[1] || ''; + } + + /** + * Calculate data maxRate + * @param {Number} [samplesCount= 10] + * @param {Number} [min= 1000] + * @returns {Function} + */ + function speedometer(samplesCount, min) { + samplesCount = samplesCount || 10; + var bytes = new Array(samplesCount); + var timestamps = new Array(samplesCount); + var head = 0; + var tail = 0; + var firstSampleTS; + min = min !== undefined ? min : 1000; + return function push(chunkLength) { + var now = Date.now(); + var startedAt = timestamps[tail]; + if (!firstSampleTS) { + firstSampleTS = now; + } + bytes[head] = chunkLength; + timestamps[head] = now; + var i = tail; + var bytesCount = 0; + while (i !== head) { + bytesCount += bytes[i++]; + i = i % samplesCount; + } + head = (head + 1) % samplesCount; + if (head === tail) { + tail = (tail + 1) % samplesCount; + } + if (now - firstSampleTS < min) { + return; + } + var passed = startedAt && now - startedAt; + return passed ? Math.round(bytesCount * 1000 / passed) : undefined; + }; + } + + /** + * Throttle decorator + * @param {Function} fn + * @param {Number} freq + * @return {Function} + */ + function throttle(fn, freq) { + var timestamp = 0; + var threshold = 1000 / freq; + var lastArgs; + var timer; + var invoke = function invoke(args) { + var now = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Date.now(); + timestamp = now; + lastArgs = null; + if (timer) { + clearTimeout(timer); + timer = null; + } + fn.apply(void 0, _toConsumableArray(args)); + }; + var throttled = function throttled() { + var now = Date.now(); + var passed = now - timestamp; + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + if (passed >= threshold) { + invoke(args, now); + } else { + lastArgs = args; + if (!timer) { + timer = setTimeout(function () { + timer = null; + invoke(lastArgs); + }, threshold - passed); + } + } + }; + var flush = function flush() { + return lastArgs && invoke(lastArgs); + }; + return [throttled, flush]; + } + + var progressEventReducer = function progressEventReducer(listener, isDownloadStream) { + var freq = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 3; + var bytesNotified = 0; + var _speedometer = speedometer(50, 250); + return throttle(function (e) { + var rawLoaded = e.loaded; + var total = e.lengthComputable ? e.total : undefined; + var loaded = total != null ? Math.min(rawLoaded, total) : rawLoaded; + var progressBytes = Math.max(0, loaded - bytesNotified); + var rate = _speedometer(progressBytes); + bytesNotified = Math.max(bytesNotified, loaded); + var data = _defineProperty({ + loaded: loaded, + total: total, + progress: total ? loaded / total : undefined, + bytes: progressBytes, + rate: rate ? rate : undefined, + estimated: rate && total ? (total - loaded) / rate : undefined, + event: e, + lengthComputable: total != null + }, isDownloadStream ? 'download' : 'upload', true); + listener(data); + }, freq); + }; + var progressEventDecorator = function progressEventDecorator(total, throttled) { + var lengthComputable = total != null; + return [function (loaded) { + return throttled[0]({ + lengthComputable: lengthComputable, + total: total, + loaded: loaded + }); + }, throttled[1]]; + }; + var asyncDecorator = function asyncDecorator(fn) { + return function () { + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + return utils$1.asap(function () { + return fn.apply(void 0, args); + }); + }; + }; + + var isURLSameOrigin = platform.hasStandardBrowserEnv ? function (origin, isMSIE) { + return function (url) { + url = new URL(url, platform.origin); + return origin.protocol === url.protocol && origin.host === url.host && (isMSIE || origin.port === url.port); + }; + }(new URL(platform.origin), platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)) : function () { + return true; + }; + + var cookies = platform.hasStandardBrowserEnv ? + // Standard browser envs support document.cookie + { + write: function write(name, value, expires, path, domain, secure, sameSite) { + if (typeof document === 'undefined') return; + var cookie = ["".concat(name, "=").concat(encodeURIComponent(value))]; + if (utils$1.isNumber(expires)) { + cookie.push("expires=".concat(new Date(expires).toUTCString())); + } + if (utils$1.isString(path)) { + cookie.push("path=".concat(path)); + } + if (utils$1.isString(domain)) { + cookie.push("domain=".concat(domain)); + } + if (secure === true) { + cookie.push('secure'); + } + if (utils$1.isString(sameSite)) { + cookie.push("SameSite=".concat(sameSite)); + } + document.cookie = cookie.join('; '); + }, + read: function read(name) { + if (typeof document === 'undefined') return null; + var match = document.cookie.match(new RegExp('(?:^|; )' + name + '=([^;]*)')); + return match ? decodeURIComponent(match[1]) : null; + }, + remove: function remove(name) { + this.write(name, '', Date.now() - 86400000, '/'); + } + } : + // Non-standard browser env (web workers, react-native) lack needed support. + { + write: function write() {}, + read: function read() { + return null; + }, + remove: function remove() {} + }; + + /** + * Determines whether the specified URL is absolute + * + * @param {string} url The URL to test + * + * @returns {boolean} True if the specified URL is absolute, otherwise false + */ + function isAbsoluteURL(url) { + // A URL is considered absolute if it begins with "://" or "//" (protocol-relative URL). + // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed + // by any combination of letters, digits, plus, period, or hyphen. + if (typeof url !== 'string') { + return false; + } + return /^([a-z][a-z\d+\-.]*:)?\/\//i.test(url); + } + + /** + * Creates a new URL by combining the specified URLs + * + * @param {string} baseURL The base URL + * @param {string} relativeURL The relative URL + * + * @returns {string} The combined URL + */ + function combineURLs(baseURL, relativeURL) { + return relativeURL ? baseURL.replace(/\/?\/$/, '') + '/' + relativeURL.replace(/^\/+/, '') : baseURL; + } + + /** + * Creates a new URL by combining the baseURL with the requestedURL, + * only when the requestedURL is not already an absolute URL. + * If the requestURL is absolute, this function returns the requestedURL untouched. + * + * @param {string} baseURL The base URL + * @param {string} requestedURL Absolute or relative URL to combine + * + * @returns {string} The combined full path + */ + function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) { + var isRelativeUrl = !isAbsoluteURL(requestedURL); + if (baseURL && (isRelativeUrl || allowAbsoluteUrls === false)) { + return combineURLs(baseURL, requestedURL); + } + return requestedURL; + } + + var headersToObject = function headersToObject(thing) { + return thing instanceof AxiosHeaders ? _objectSpread2({}, thing) : thing; + }; + + /** + * Config-specific merge-function which creates a new config-object + * by merging two configuration objects together. + * + * @param {Object} config1 + * @param {Object} config2 + * + * @returns {Object} New object resulting from merging config2 to config1 + */ + function mergeConfig(config1, config2) { + // eslint-disable-next-line no-param-reassign + config2 = config2 || {}; + var config = {}; + function getMergedValue(target, source, prop, caseless) { + if (utils$1.isPlainObject(target) && utils$1.isPlainObject(source)) { + return utils$1.merge.call({ + caseless: caseless + }, target, source); + } else if (utils$1.isPlainObject(source)) { + return utils$1.merge({}, source); + } else if (utils$1.isArray(source)) { + return source.slice(); + } + return source; + } + function mergeDeepProperties(a, b, prop, caseless) { + if (!utils$1.isUndefined(b)) { + return getMergedValue(a, b, prop, caseless); + } else if (!utils$1.isUndefined(a)) { + return getMergedValue(undefined, a, prop, caseless); + } + } + + // eslint-disable-next-line consistent-return + function valueFromConfig2(a, b) { + if (!utils$1.isUndefined(b)) { + return getMergedValue(undefined, b); + } + } + + // eslint-disable-next-line consistent-return + function defaultToConfig2(a, b) { + if (!utils$1.isUndefined(b)) { + return getMergedValue(undefined, b); + } else if (!utils$1.isUndefined(a)) { + return getMergedValue(undefined, a); + } + } + + // eslint-disable-next-line consistent-return + function mergeDirectKeys(a, b, prop) { + if (utils$1.hasOwnProp(config2, prop)) { + return getMergedValue(a, b); + } else if (utils$1.hasOwnProp(config1, prop)) { + return getMergedValue(undefined, a); + } + } + var mergeMap = { + url: valueFromConfig2, + method: valueFromConfig2, + data: valueFromConfig2, + baseURL: defaultToConfig2, + transformRequest: defaultToConfig2, + transformResponse: defaultToConfig2, + paramsSerializer: defaultToConfig2, + timeout: defaultToConfig2, + timeoutMessage: defaultToConfig2, + withCredentials: defaultToConfig2, + withXSRFToken: defaultToConfig2, + adapter: defaultToConfig2, + responseType: defaultToConfig2, + xsrfCookieName: defaultToConfig2, + xsrfHeaderName: defaultToConfig2, + onUploadProgress: defaultToConfig2, + onDownloadProgress: defaultToConfig2, + decompress: defaultToConfig2, + maxContentLength: defaultToConfig2, + maxBodyLength: defaultToConfig2, + beforeRedirect: defaultToConfig2, + transport: defaultToConfig2, + httpAgent: defaultToConfig2, + httpsAgent: defaultToConfig2, + cancelToken: defaultToConfig2, + socketPath: defaultToConfig2, + responseEncoding: defaultToConfig2, + validateStatus: mergeDirectKeys, + headers: function headers(a, b, prop) { + return mergeDeepProperties(headersToObject(a), headersToObject(b), prop, true); + } + }; + utils$1.forEach(Object.keys(_objectSpread2(_objectSpread2({}, config1), config2)), function computeConfigValue(prop) { + if (prop === '__proto__' || prop === 'constructor' || prop === 'prototype') return; + var merge = utils$1.hasOwnProp(mergeMap, prop) ? mergeMap[prop] : mergeDeepProperties; + var a = utils$1.hasOwnProp(config1, prop) ? config1[prop] : undefined; + var b = utils$1.hasOwnProp(config2, prop) ? config2[prop] : undefined; + var configValue = merge(a, b, prop); + utils$1.isUndefined(configValue) && merge !== mergeDirectKeys || (config[prop] = configValue); + }); + return config; + } + + var resolveConfig = (function (config) { + var newConfig = mergeConfig({}, config); + var data = newConfig.data, + withXSRFToken = newConfig.withXSRFToken, + xsrfHeaderName = newConfig.xsrfHeaderName, + xsrfCookieName = newConfig.xsrfCookieName, + headers = newConfig.headers, + auth = newConfig.auth; + newConfig.headers = headers = AxiosHeaders.from(headers); + newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url, newConfig.allowAbsoluteUrls), config.params, config.paramsSerializer); + + // HTTP basic authentication + if (auth) { + headers.set('Authorization', 'Basic ' + btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))); + } + if (utils$1.isFormData(data)) { + if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) { + headers.setContentType(undefined); // browser handles it + } else if (utils$1.isFunction(data.getHeaders)) { + // Node.js FormData (like form-data package) + var formHeaders = data.getHeaders(); + // Only set safe headers to avoid overwriting security headers + var allowedHeaders = ['content-type', 'content-length']; + Object.entries(formHeaders).forEach(function (_ref) { + var _ref2 = _slicedToArray(_ref, 2), + key = _ref2[0], + val = _ref2[1]; + if (allowedHeaders.includes(key.toLowerCase())) { + headers.set(key, val); + } + }); + } + } + + // Add xsrf header + // This is only done if running in a standard browser environment. + // Specifically not if we're in a web worker, or react-native. + + if (platform.hasStandardBrowserEnv) { + if (utils$1.isFunction(withXSRFToken)) { + withXSRFToken = withXSRFToken(newConfig); + } + + // Strict boolean check — prevents proto-pollution gadgets (e.g. Object.prototype.withXSRFToken = 1) + // and misconfigurations (e.g. "false") from short-circuiting the same-origin check and leaking + // the XSRF token cross-origin. See GHSA-xx6v-rp6x-q39c. + var shouldSendXSRF = withXSRFToken === true || withXSRFToken == null && isURLSameOrigin(newConfig.url); + if (shouldSendXSRF) { + var xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName); + if (xsrfValue) { + headers.set(xsrfHeaderName, xsrfValue); + } + } + } + return newConfig; + }); + + var isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined'; + var xhrAdapter = isXHRAdapterSupported && function (config) { + return new Promise(function dispatchXhrRequest(resolve, reject) { + var _config = resolveConfig(config); + var requestData = _config.data; + var requestHeaders = AxiosHeaders.from(_config.headers).normalize(); + var responseType = _config.responseType, + onUploadProgress = _config.onUploadProgress, + onDownloadProgress = _config.onDownloadProgress; + var onCanceled; + var uploadThrottled, downloadThrottled; + var flushUpload, flushDownload; + function done() { + flushUpload && flushUpload(); // flush events + flushDownload && flushDownload(); // flush events + + _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled); + _config.signal && _config.signal.removeEventListener('abort', onCanceled); + } + var request = new XMLHttpRequest(); + request.open(_config.method.toUpperCase(), _config.url, true); + + // Set the request timeout in MS + request.timeout = _config.timeout; + function onloadend() { + if (!request) { + return; + } + // Prepare the response + var responseHeaders = AxiosHeaders.from('getAllResponseHeaders' in request && request.getAllResponseHeaders()); + var responseData = !responseType || responseType === 'text' || responseType === 'json' ? request.responseText : request.response; + var response = { + data: responseData, + status: request.status, + statusText: request.statusText, + headers: responseHeaders, + config: config, + request: request + }; + settle(function _resolve(value) { + resolve(value); + done(); + }, function _reject(err) { + reject(err); + done(); + }, response); + + // Clean up request + request = null; + } + if ('onloadend' in request) { + // Use onloadend if available + request.onloadend = onloadend; + } else { + // Listen for ready state to emulate onloadend + request.onreadystatechange = function handleLoad() { + if (!request || request.readyState !== 4) { + return; + } + + // The request errored out and we didn't get a response, this will be + // handled by onerror instead + // With one exception: request that using file: protocol, most browsers + // will return status as 0 even though it's a successful request + if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) { + return; + } + // readystate handler is calling before onerror or ontimeout handlers, + // so we should call onloadend on the next 'tick' + setTimeout(onloadend); + }; + } + + // Handle browser request cancellation (as opposed to a manual cancellation) + request.onabort = function handleAbort() { + if (!request) { + return; + } + reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request)); + + // Clean up request + request = null; + }; + + // Handle low level network errors + request.onerror = function handleError(event) { + // Browsers deliver a ProgressEvent in XHR onerror + // (message may be empty; when present, surface it) + // See https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/error_event + var msg = event && event.message ? event.message : 'Network Error'; + var err = new AxiosError(msg, AxiosError.ERR_NETWORK, config, request); + // attach the underlying event for consumers who want details + err.event = event || null; + reject(err); + request = null; + }; + + // Handle timeout + request.ontimeout = function handleTimeout() { + var timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded'; + var transitional = _config.transitional || transitionalDefaults; + if (_config.timeoutErrorMessage) { + timeoutErrorMessage = _config.timeoutErrorMessage; + } + reject(new AxiosError(timeoutErrorMessage, transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED, config, request)); + + // Clean up request + request = null; + }; + + // Remove Content-Type if data is undefined + requestData === undefined && requestHeaders.setContentType(null); + + // Add headers to the request + if ('setRequestHeader' in request) { + utils$1.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) { + request.setRequestHeader(key, val); + }); + } + + // Add withCredentials to request if needed + if (!utils$1.isUndefined(_config.withCredentials)) { + request.withCredentials = !!_config.withCredentials; + } + + // Add responseType to request if needed + if (responseType && responseType !== 'json') { + request.responseType = _config.responseType; + } + + // Handle progress if needed + if (onDownloadProgress) { + var _progressEventReducer = progressEventReducer(onDownloadProgress, true); + var _progressEventReducer2 = _slicedToArray(_progressEventReducer, 2); + downloadThrottled = _progressEventReducer2[0]; + flushDownload = _progressEventReducer2[1]; + request.addEventListener('progress', downloadThrottled); + } + + // Not all browsers support upload events + if (onUploadProgress && request.upload) { + var _progressEventReducer3 = progressEventReducer(onUploadProgress); + var _progressEventReducer4 = _slicedToArray(_progressEventReducer3, 2); + uploadThrottled = _progressEventReducer4[0]; + flushUpload = _progressEventReducer4[1]; + request.upload.addEventListener('progress', uploadThrottled); + request.upload.addEventListener('loadend', flushUpload); + } + if (_config.cancelToken || _config.signal) { + // Handle cancellation + // eslint-disable-next-line func-names + onCanceled = function onCanceled(cancel) { + if (!request) { + return; + } + reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel); + request.abort(); + request = null; + }; + _config.cancelToken && _config.cancelToken.subscribe(onCanceled); + if (_config.signal) { + _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled); + } + } + var protocol = parseProtocol(_config.url); + if (protocol && platform.protocols.indexOf(protocol) === -1) { + reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config)); + return; + } + + // Send the request + request.send(requestData || null); + }); + }; + + var composeSignals = function composeSignals(signals, timeout) { + var _signals = signals = signals ? signals.filter(Boolean) : [], + length = _signals.length; + if (timeout || length) { + var controller = new AbortController(); + var aborted; + var onabort = function onabort(reason) { + if (!aborted) { + aborted = true; + unsubscribe(); + var err = reason instanceof Error ? reason : this.reason; + controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err)); + } + }; + var timer = timeout && setTimeout(function () { + timer = null; + onabort(new AxiosError("timeout of ".concat(timeout, "ms exceeded"), AxiosError.ETIMEDOUT)); + }, timeout); + var unsubscribe = function unsubscribe() { + if (signals) { + timer && clearTimeout(timer); + timer = null; + signals.forEach(function (signal) { + signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener('abort', onabort); + }); + signals = null; + } + }; + signals.forEach(function (signal) { + return signal.addEventListener('abort', onabort); + }); + var signal = controller.signal; + signal.unsubscribe = function () { + return utils$1.asap(unsubscribe); + }; + return signal; + } + }; + + var streamChunk = /*#__PURE__*/_regenerator().m(function streamChunk(chunk, chunkSize) { + var len, pos, end; + return _regenerator().w(function (_context) { + while (1) switch (_context.n) { + case 0: + len = chunk.byteLength; + if (!(!chunkSize || len < chunkSize)) { + _context.n = 2; + break; + } + _context.n = 1; + return chunk; + case 1: + return _context.a(2); + case 2: + pos = 0; + case 3: + if (!(pos < len)) { + _context.n = 5; + break; + } + end = pos + chunkSize; + _context.n = 4; + return chunk.slice(pos, end); + case 4: + pos = end; + _context.n = 3; + break; + case 5: + return _context.a(2); + } + }, streamChunk); + }); + var readBytes = /*#__PURE__*/function () { + var _ref = _wrapAsyncGenerator(/*#__PURE__*/_regenerator().m(function _callee(iterable, chunkSize) { + var _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _iterator, _step, chunk, _t; + return _regenerator().w(function (_context2) { + while (1) switch (_context2.p = _context2.n) { + case 0: + _iteratorAbruptCompletion = false; + _didIteratorError = false; + _context2.p = 1; + _iterator = _asyncIterator(readStream(iterable)); + case 2: + _context2.n = 3; + return _awaitAsyncGenerator(_iterator.next()); + case 3: + if (!(_iteratorAbruptCompletion = !(_step = _context2.v).done)) { + _context2.n = 5; + break; + } + chunk = _step.value; + return _context2.d(_regeneratorValues(_asyncGeneratorDelegate(_asyncIterator(streamChunk(chunk, chunkSize)))), 4); + case 4: + _iteratorAbruptCompletion = false; + _context2.n = 2; + break; + case 5: + _context2.n = 7; + break; + case 6: + _context2.p = 6; + _t = _context2.v; + _didIteratorError = true; + _iteratorError = _t; + case 7: + _context2.p = 7; + _context2.p = 8; + if (!(_iteratorAbruptCompletion && _iterator["return"] != null)) { + _context2.n = 9; + break; + } + _context2.n = 9; + return _awaitAsyncGenerator(_iterator["return"]()); + case 9: + _context2.p = 9; + if (!_didIteratorError) { + _context2.n = 10; + break; + } + throw _iteratorError; + case 10: + return _context2.f(9); + case 11: + return _context2.f(7); + case 12: + return _context2.a(2); + } + }, _callee, null, [[8,, 9, 11], [1, 6, 7, 12]]); + })); + return function readBytes(_x, _x2) { + return _ref.apply(this, arguments); + }; + }(); + var readStream = /*#__PURE__*/function () { + var _ref2 = _wrapAsyncGenerator(/*#__PURE__*/_regenerator().m(function _callee2(stream) { + var reader, _yield$_awaitAsyncGen, done, value; + return _regenerator().w(function (_context3) { + while (1) switch (_context3.p = _context3.n) { + case 0: + if (!stream[Symbol.asyncIterator]) { + _context3.n = 2; + break; + } + return _context3.d(_regeneratorValues(_asyncGeneratorDelegate(_asyncIterator(stream))), 1); + case 1: + return _context3.a(2); + case 2: + reader = stream.getReader(); + _context3.p = 3; + case 4: + _context3.n = 5; + return _awaitAsyncGenerator(reader.read()); + case 5: + _yield$_awaitAsyncGen = _context3.v; + done = _yield$_awaitAsyncGen.done; + value = _yield$_awaitAsyncGen.value; + if (!done) { + _context3.n = 6; + break; + } + return _context3.a(3, 8); + case 6: + _context3.n = 7; + return value; + case 7: + _context3.n = 4; + break; + case 8: + _context3.p = 8; + _context3.n = 9; + return _awaitAsyncGenerator(reader.cancel()); + case 9: + return _context3.f(8); + case 10: + return _context3.a(2); + } + }, _callee2, null, [[3,, 8, 10]]); + })); + return function readStream(_x3) { + return _ref2.apply(this, arguments); + }; + }(); + var trackStream = function trackStream(stream, chunkSize, onProgress, onFinish) { + var iterator = readBytes(stream, chunkSize); + var bytes = 0; + var done; + var _onFinish = function _onFinish(e) { + if (!done) { + done = true; + onFinish && onFinish(e); + } + }; + return new ReadableStream({ + pull: function pull(controller) { + return _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3() { + var _yield$iterator$next, _done, value, len, loadedBytes, _t2; + return _regenerator().w(function (_context4) { + while (1) switch (_context4.p = _context4.n) { + case 0: + _context4.p = 0; + _context4.n = 1; + return iterator.next(); + case 1: + _yield$iterator$next = _context4.v; + _done = _yield$iterator$next.done; + value = _yield$iterator$next.value; + if (!_done) { + _context4.n = 2; + break; + } + _onFinish(); + controller.close(); + return _context4.a(2); + case 2: + len = value.byteLength; + if (onProgress) { + loadedBytes = bytes += len; + onProgress(loadedBytes); + } + controller.enqueue(new Uint8Array(value)); + _context4.n = 4; + break; + case 3: + _context4.p = 3; + _t2 = _context4.v; + _onFinish(_t2); + throw _t2; + case 4: + return _context4.a(2); + } + }, _callee3, null, [[0, 3]]); + }))(); + }, + cancel: function cancel(reason) { + _onFinish(reason); + return iterator["return"](); + } + }, { + highWaterMark: 2 + }); + }; + + var DEFAULT_CHUNK_SIZE = 64 * 1024; + var isFunction = utils$1.isFunction; + var globalFetchAPI = function (_ref) { + var Request = _ref.Request, + Response = _ref.Response; + return { + Request: Request, + Response: Response + }; + }(utils$1.global); + var _utils$global = utils$1.global, + ReadableStream$1 = _utils$global.ReadableStream, + TextEncoder = _utils$global.TextEncoder; + var test = function test(fn) { + try { + for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } + return !!fn.apply(void 0, args); + } catch (e) { + return false; + } + }; + var factory = function factory(env) { + env = utils$1.merge.call({ + skipUndefined: true + }, globalFetchAPI, env); + var _env = env, + envFetch = _env.fetch, + Request = _env.Request, + Response = _env.Response; + var isFetchSupported = envFetch ? isFunction(envFetch) : typeof fetch === 'function'; + var isRequestSupported = isFunction(Request); + var isResponseSupported = isFunction(Response); + if (!isFetchSupported) { + return false; + } + var isReadableStreamSupported = isFetchSupported && isFunction(ReadableStream$1); + var encodeText = isFetchSupported && (typeof TextEncoder === 'function' ? function (encoder) { + return function (str) { + return encoder.encode(str); + }; + }(new TextEncoder()) : (/*#__PURE__*/function () { + var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(str) { + var _t, _t2; + return _regenerator().w(function (_context) { + while (1) switch (_context.n) { + case 0: + _t = Uint8Array; + _context.n = 1; + return new Request(str).arrayBuffer(); + case 1: + _t2 = _context.v; + return _context.a(2, new _t(_t2)); + } + }, _callee); + })); + return function (_x) { + return _ref2.apply(this, arguments); + }; + }())); + var supportsRequestStream = isRequestSupported && isReadableStreamSupported && test(function () { + var duplexAccessed = false; + var request = new Request(platform.origin, { + body: new ReadableStream$1(), + method: 'POST', + get duplex() { + duplexAccessed = true; + return 'half'; + } + }); + var hasContentType = request.headers.has('Content-Type'); + if (request.body != null) { + request.body.cancel(); + } + return duplexAccessed && !hasContentType; + }); + var supportsResponseStream = isResponseSupported && isReadableStreamSupported && test(function () { + return utils$1.isReadableStream(new Response('').body); + }); + var resolvers = { + stream: supportsResponseStream && function (res) { + return res.body; + } + }; + isFetchSupported && function () { + ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(function (type) { + !resolvers[type] && (resolvers[type] = function (res, config) { + var method = res && res[type]; + if (method) { + return method.call(res); + } + throw new AxiosError("Response type '".concat(type, "' is not supported"), AxiosError.ERR_NOT_SUPPORT, config); + }); + }); + }(); + var getBodyLength = /*#__PURE__*/function () { + var _ref3 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(body) { + var _request; + return _regenerator().w(function (_context2) { + while (1) switch (_context2.n) { + case 0: + if (!(body == null)) { + _context2.n = 1; + break; + } + return _context2.a(2, 0); + case 1: + if (!utils$1.isBlob(body)) { + _context2.n = 2; + break; + } + return _context2.a(2, body.size); + case 2: + if (!utils$1.isSpecCompliantForm(body)) { + _context2.n = 4; + break; + } + _request = new Request(platform.origin, { + method: 'POST', + body: body + }); + _context2.n = 3; + return _request.arrayBuffer(); + case 3: + return _context2.a(2, _context2.v.byteLength); + case 4: + if (!(utils$1.isArrayBufferView(body) || utils$1.isArrayBuffer(body))) { + _context2.n = 5; + break; + } + return _context2.a(2, body.byteLength); + case 5: + if (utils$1.isURLSearchParams(body)) { + body = body + ''; + } + if (!utils$1.isString(body)) { + _context2.n = 7; + break; + } + _context2.n = 6; + return encodeText(body); + case 6: + return _context2.a(2, _context2.v.byteLength); + case 7: + return _context2.a(2); + } + }, _callee2); + })); + return function getBodyLength(_x2) { + return _ref3.apply(this, arguments); + }; + }(); + var resolveBodyLength = /*#__PURE__*/function () { + var _ref4 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3(headers, body) { + var length; + return _regenerator().w(function (_context3) { + while (1) switch (_context3.n) { + case 0: + length = utils$1.toFiniteNumber(headers.getContentLength()); + return _context3.a(2, length == null ? getBodyLength(body) : length); + } + }, _callee3); + })); + return function resolveBodyLength(_x3, _x4) { + return _ref4.apply(this, arguments); + }; + }(); + return /*#__PURE__*/function () { + var _ref5 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee4(config) { + var _resolveConfig, url, method, data, signal, cancelToken, timeout, onDownloadProgress, onUploadProgress, responseType, headers, _resolveConfig$withCr, withCredentials, fetchOptions, _fetch, composedSignal, request, unsubscribe, requestContentLength, _request, contentTypeHeader, _progressEventDecorat, _progressEventDecorat2, onProgress, flush, isCredentialsSupported, contentType, resolvedOptions, response, isStreamResponse, options, responseContentLength, _ref6, _ref7, _onProgress, _flush, responseData, _t3, _t4, _t5; + return _regenerator().w(function (_context4) { + while (1) switch (_context4.p = _context4.n) { + case 0: + _resolveConfig = resolveConfig(config), url = _resolveConfig.url, method = _resolveConfig.method, data = _resolveConfig.data, signal = _resolveConfig.signal, cancelToken = _resolveConfig.cancelToken, timeout = _resolveConfig.timeout, onDownloadProgress = _resolveConfig.onDownloadProgress, onUploadProgress = _resolveConfig.onUploadProgress, responseType = _resolveConfig.responseType, headers = _resolveConfig.headers, _resolveConfig$withCr = _resolveConfig.withCredentials, withCredentials = _resolveConfig$withCr === void 0 ? 'same-origin' : _resolveConfig$withCr, fetchOptions = _resolveConfig.fetchOptions; + _fetch = envFetch || fetch; + responseType = responseType ? (responseType + '').toLowerCase() : 'text'; + composedSignal = composeSignals([signal, cancelToken && cancelToken.toAbortSignal()], timeout); + request = null; + unsubscribe = composedSignal && composedSignal.unsubscribe && function () { + composedSignal.unsubscribe(); + }; + _context4.p = 1; + _t3 = onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head'; + if (!_t3) { + _context4.n = 3; + break; + } + _context4.n = 2; + return resolveBodyLength(headers, data); + case 2: + _t4 = requestContentLength = _context4.v; + _t3 = _t4 !== 0; + case 3: + if (!_t3) { + _context4.n = 4; + break; + } + _request = new Request(url, { + method: 'POST', + body: data, + duplex: 'half' + }); + if (utils$1.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) { + headers.setContentType(contentTypeHeader); + } + if (_request.body) { + _progressEventDecorat = progressEventDecorator(requestContentLength, progressEventReducer(asyncDecorator(onUploadProgress))), _progressEventDecorat2 = _slicedToArray(_progressEventDecorat, 2), onProgress = _progressEventDecorat2[0], flush = _progressEventDecorat2[1]; + data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush); + } + case 4: + if (!utils$1.isString(withCredentials)) { + withCredentials = withCredentials ? 'include' : 'omit'; + } + + // Cloudflare Workers throws when credentials are defined + // see https://github.com/cloudflare/workerd/issues/902 + isCredentialsSupported = isRequestSupported && 'credentials' in Request.prototype; // If data is FormData and Content-Type is multipart/form-data without boundary, + // delete it so fetch can set it correctly with the boundary + if (utils$1.isFormData(data)) { + contentType = headers.getContentType(); + if (contentType && /^multipart\/form-data/i.test(contentType) && !/boundary=/i.test(contentType)) { + headers["delete"]('content-type'); + } + } + resolvedOptions = _objectSpread2(_objectSpread2({}, fetchOptions), {}, { + signal: composedSignal, + method: method.toUpperCase(), + headers: headers.normalize().toJSON(), + body: data, + duplex: 'half', + credentials: isCredentialsSupported ? withCredentials : undefined + }); + request = isRequestSupported && new Request(url, resolvedOptions); + _context4.n = 5; + return isRequestSupported ? _fetch(request, fetchOptions) : _fetch(url, resolvedOptions); + case 5: + response = _context4.v; + isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response'); + if (supportsResponseStream && (onDownloadProgress || isStreamResponse && unsubscribe)) { + options = {}; + ['status', 'statusText', 'headers'].forEach(function (prop) { + options[prop] = response[prop]; + }); + responseContentLength = utils$1.toFiniteNumber(response.headers.get('content-length')); + _ref6 = onDownloadProgress && progressEventDecorator(responseContentLength, progressEventReducer(asyncDecorator(onDownloadProgress), true)) || [], _ref7 = _slicedToArray(_ref6, 2), _onProgress = _ref7[0], _flush = _ref7[1]; + response = new Response(trackStream(response.body, DEFAULT_CHUNK_SIZE, _onProgress, function () { + _flush && _flush(); + unsubscribe && unsubscribe(); + }), options); + } + responseType = responseType || 'text'; + _context4.n = 6; + return resolvers[utils$1.findKey(resolvers, responseType) || 'text'](response, config); + case 6: + responseData = _context4.v; + !isStreamResponse && unsubscribe && unsubscribe(); + _context4.n = 7; + return new Promise(function (resolve, reject) { + settle(resolve, reject, { + data: responseData, + headers: AxiosHeaders.from(response.headers), + status: response.status, + statusText: response.statusText, + config: config, + request: request + }); + }); + case 7: + return _context4.a(2, _context4.v); + case 8: + _context4.p = 8; + _t5 = _context4.v; + unsubscribe && unsubscribe(); + if (!(_t5 && _t5.name === 'TypeError' && /Load failed|fetch/i.test(_t5.message))) { + _context4.n = 9; + break; + } + throw Object.assign(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request, _t5 && _t5.response), { + cause: _t5.cause || _t5 + }); + case 9: + throw AxiosError.from(_t5, _t5 && _t5.code, config, request, _t5 && _t5.response); + case 10: + return _context4.a(2); + } + }, _callee4, null, [[1, 8]]); + })); + return function (_x5) { + return _ref5.apply(this, arguments); + }; + }(); + }; + var seedCache = new Map(); + var getFetch = function getFetch(config) { + var env = config && config.env || {}; + var fetch = env.fetch, + Request = env.Request, + Response = env.Response; + var seeds = [Request, Response, fetch]; + var len = seeds.length, + i = len, + seed, + target, + map = seedCache; + while (i--) { + seed = seeds[i]; + target = map.get(seed); + target === undefined && map.set(seed, target = i ? new Map() : factory(env)); + map = target; + } + return target; + }; + getFetch(); + + /** + * Known adapters mapping. + * Provides environment-specific adapters for Axios: + * - `http` for Node.js + * - `xhr` for browsers + * - `fetch` for fetch API-based requests + * + * @type {Object} + */ + var knownAdapters = { + http: httpAdapter, + xhr: xhrAdapter, + fetch: { + get: getFetch + } + }; + + // Assign adapter names for easier debugging and identification + utils$1.forEach(knownAdapters, function (fn, value) { + if (fn) { + try { + Object.defineProperty(fn, 'name', { + value: value + }); + } catch (e) { + // eslint-disable-next-line no-empty + } + Object.defineProperty(fn, 'adapterName', { + value: value + }); + } + }); + + /** + * Render a rejection reason string for unknown or unsupported adapters + * + * @param {string} reason + * @returns {string} + */ + var renderReason = function renderReason(reason) { + return "- ".concat(reason); + }; + + /** + * Check if the adapter is resolved (function, null, or false) + * + * @param {Function|null|false} adapter + * @returns {boolean} + */ + var isResolvedHandle = function isResolvedHandle(adapter) { + return utils$1.isFunction(adapter) || adapter === null || adapter === false; + }; + + /** + * Get the first suitable adapter from the provided list. + * Tries each adapter in order until a supported one is found. + * Throws an AxiosError if no adapter is suitable. + * + * @param {Array|string|Function} adapters - Adapter(s) by name or function. + * @param {Object} config - Axios request configuration + * @throws {AxiosError} If no suitable adapter is available + * @returns {Function} The resolved adapter function + */ + function getAdapter(adapters, config) { + adapters = utils$1.isArray(adapters) ? adapters : [adapters]; + var _adapters = adapters, + length = _adapters.length; + var nameOrAdapter; + var adapter; + var rejectedReasons = {}; + for (var i = 0; i < length; i++) { + nameOrAdapter = adapters[i]; + var id = void 0; + adapter = nameOrAdapter; + if (!isResolvedHandle(nameOrAdapter)) { + adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()]; + if (adapter === undefined) { + throw new AxiosError("Unknown adapter '".concat(id, "'")); + } + } + if (adapter && (utils$1.isFunction(adapter) || (adapter = adapter.get(config)))) { + break; + } + rejectedReasons[id || '#' + i] = adapter; + } + if (!adapter) { + var reasons = Object.entries(rejectedReasons).map(function (_ref) { + var _ref2 = _slicedToArray(_ref, 2), + id = _ref2[0], + state = _ref2[1]; + return "adapter ".concat(id, " ") + (state === false ? 'is not supported by the environment' : 'is not available in the build'); + }); + var s = length ? reasons.length > 1 ? 'since :\n' + reasons.map(renderReason).join('\n') : ' ' + renderReason(reasons[0]) : 'as no adapter specified'; + throw new AxiosError("There is no suitable adapter to dispatch the request " + s, 'ERR_NOT_SUPPORT'); + } + return adapter; + } + + /** + * Exports Axios adapters and utility to resolve an adapter + */ + var adapters = { + /** + * Resolve an adapter from a list of adapter names or functions. + * @type {Function} + */ + getAdapter: getAdapter, + /** + * Exposes all known adapters + * @type {Object} + */ + adapters: knownAdapters + }; + + /** + * Throws a `CanceledError` if cancellation has been requested. + * + * @param {Object} config The config that is to be used for the request + * + * @returns {void} + */ + function throwIfCancellationRequested(config) { + if (config.cancelToken) { + config.cancelToken.throwIfRequested(); + } + if (config.signal && config.signal.aborted) { + throw new CanceledError(null, config); + } + } + + /** + * Dispatch a request to the server using the configured adapter. + * + * @param {object} config The config that is to be used for the request + * + * @returns {Promise} The Promise to be fulfilled + */ + function dispatchRequest(config) { + throwIfCancellationRequested(config); + config.headers = AxiosHeaders.from(config.headers); + + // Transform request data + config.data = transformData.call(config, config.transformRequest); + if (['post', 'put', 'patch'].indexOf(config.method) !== -1) { + config.headers.setContentType('application/x-www-form-urlencoded', false); + } + var adapter = adapters.getAdapter(config.adapter || defaults.adapter, config); + return adapter(config).then(function onAdapterResolution(response) { + throwIfCancellationRequested(config); + + // Transform response data + response.data = transformData.call(config, config.transformResponse, response); + response.headers = AxiosHeaders.from(response.headers); + return response; + }, function onAdapterRejection(reason) { + if (!isCancel(reason)) { + throwIfCancellationRequested(config); + + // Transform response data + if (reason && reason.response) { + reason.response.data = transformData.call(config, config.transformResponse, reason.response); + reason.response.headers = AxiosHeaders.from(reason.response.headers); + } + } + return Promise.reject(reason); + }); + } + + var VERSION = "1.15.1"; + + var validators$1 = {}; + + // eslint-disable-next-line func-names + ['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function (type, i) { + validators$1[type] = function validator(thing) { + return _typeof(thing) === type || 'a' + (i < 1 ? 'n ' : ' ') + type; + }; + }); + var deprecatedWarnings = {}; + + /** + * Transitional option validator + * + * @param {function|boolean?} validator - set to false if the transitional option has been removed + * @param {string?} version - deprecated version / removed since version + * @param {string?} message - some message with additional info + * + * @returns {function} + */ + validators$1.transitional = function transitional(validator, version, message) { + function formatMessage(opt, desc) { + return '[Axios v' + VERSION + "] Transitional option '" + opt + "'" + desc + (message ? '. ' + message : ''); + } + + // eslint-disable-next-line func-names + return function (value, opt, opts) { + if (validator === false) { + throw new AxiosError(formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')), AxiosError.ERR_DEPRECATED); + } + if (version && !deprecatedWarnings[opt]) { + deprecatedWarnings[opt] = true; + // eslint-disable-next-line no-console + console.warn(formatMessage(opt, ' has been deprecated since v' + version + ' and will be removed in the near future')); + } + return validator ? validator(value, opt, opts) : true; + }; + }; + validators$1.spelling = function spelling(correctSpelling) { + return function (value, opt) { + // eslint-disable-next-line no-console + console.warn("".concat(opt, " is likely a misspelling of ").concat(correctSpelling)); + return true; + }; + }; + + /** + * Assert object's properties type + * + * @param {object} options + * @param {object} schema + * @param {boolean?} allowUnknown + * + * @returns {object} + */ + + function assertOptions(options, schema, allowUnknown) { + if (_typeof(options) !== 'object') { + throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE); + } + var keys = Object.keys(options); + var i = keys.length; + while (i-- > 0) { + var opt = keys[i]; + var validator = schema[opt]; + if (validator) { + var value = options[opt]; + var result = value === undefined || validator(value, opt, options); + if (result !== true) { + throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE); + } + continue; + } + if (allowUnknown !== true) { + throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION); + } + } + } + var validator = { + assertOptions: assertOptions, + validators: validators$1 + }; + + var validators = validator.validators; + + /** + * Create a new instance of Axios + * + * @param {Object} instanceConfig The default config for the instance + * + * @return {Axios} A new instance of Axios + */ + var Axios = /*#__PURE__*/function () { + function Axios(instanceConfig) { + _classCallCheck(this, Axios); + this.defaults = instanceConfig || {}; + this.interceptors = { + request: new InterceptorManager(), + response: new InterceptorManager() + }; + } + + /** + * Dispatch a request + * + * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults) + * @param {?Object} config + * + * @returns {Promise} The Promise to be fulfilled + */ + return _createClass(Axios, [{ + key: "request", + value: (function () { + var _request2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(configOrUrl, config) { + var dummy, stack, firstNewlineIndex, secondNewlineIndex, stackWithoutTwoTopLines, _t; + return _regenerator().w(function (_context) { + while (1) switch (_context.p = _context.n) { + case 0: + _context.p = 0; + _context.n = 1; + return this._request(configOrUrl, config); + case 1: + return _context.a(2, _context.v); + case 2: + _context.p = 2; + _t = _context.v; + if (_t instanceof Error) { + dummy = {}; + Error.captureStackTrace ? Error.captureStackTrace(dummy) : dummy = new Error(); + + // slice off the Error: ... line + stack = function () { + if (!dummy.stack) { + return ''; + } + var firstNewlineIndex = dummy.stack.indexOf('\n'); + return firstNewlineIndex === -1 ? '' : dummy.stack.slice(firstNewlineIndex + 1); + }(); + try { + if (!_t.stack) { + _t.stack = stack; + // match without the 2 top stack lines + } else if (stack) { + firstNewlineIndex = stack.indexOf('\n'); + secondNewlineIndex = firstNewlineIndex === -1 ? -1 : stack.indexOf('\n', firstNewlineIndex + 1); + stackWithoutTwoTopLines = secondNewlineIndex === -1 ? '' : stack.slice(secondNewlineIndex + 1); + if (!String(_t.stack).endsWith(stackWithoutTwoTopLines)) { + _t.stack += '\n' + stack; + } + } + } catch (e) { + // ignore the case where "stack" is an un-writable property + } + } + throw _t; + case 3: + return _context.a(2); + } + }, _callee, this, [[0, 2]]); + })); + function request(_x, _x2) { + return _request2.apply(this, arguments); + } + return request; + }()) + }, { + key: "_request", + value: function _request(configOrUrl, config) { + /*eslint no-param-reassign:0*/ + // Allow for axios('example/url'[, config]) a la fetch API + if (typeof configOrUrl === 'string') { + config = config || {}; + config.url = configOrUrl; + } else { + config = configOrUrl || {}; + } + config = mergeConfig(this.defaults, config); + var _config = config, + transitional = _config.transitional, + paramsSerializer = _config.paramsSerializer, + headers = _config.headers; + if (transitional !== undefined) { + validator.assertOptions(transitional, { + silentJSONParsing: validators.transitional(validators["boolean"]), + forcedJSONParsing: validators.transitional(validators["boolean"]), + clarifyTimeoutError: validators.transitional(validators["boolean"]), + legacyInterceptorReqResOrdering: validators.transitional(validators["boolean"]) + }, false); + } + if (paramsSerializer != null) { + if (utils$1.isFunction(paramsSerializer)) { + config.paramsSerializer = { + serialize: paramsSerializer + }; + } else { + validator.assertOptions(paramsSerializer, { + encode: validators["function"], + serialize: validators["function"] + }, true); + } + } + + // Set config.allowAbsoluteUrls + if (config.allowAbsoluteUrls !== undefined) ; else if (this.defaults.allowAbsoluteUrls !== undefined) { + config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls; + } else { + config.allowAbsoluteUrls = true; + } + validator.assertOptions(config, { + baseUrl: validators.spelling('baseURL'), + withXsrfToken: validators.spelling('withXSRFToken') + }, true); + + // Set config.method + config.method = (config.method || this.defaults.method || 'get').toLowerCase(); + + // Flatten headers + var contextHeaders = headers && utils$1.merge(headers.common, headers[config.method]); + headers && utils$1.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], function (method) { + delete headers[method]; + }); + config.headers = AxiosHeaders.concat(contextHeaders, headers); + + // filter out skipped interceptors + var requestInterceptorChain = []; + var synchronousRequestInterceptors = true; + this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) { + if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) { + return; + } + synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous; + var transitional = config.transitional || transitionalDefaults; + var legacyInterceptorReqResOrdering = transitional && transitional.legacyInterceptorReqResOrdering; + if (legacyInterceptorReqResOrdering) { + requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected); + } else { + requestInterceptorChain.push(interceptor.fulfilled, interceptor.rejected); + } + }); + var responseInterceptorChain = []; + this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) { + responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected); + }); + var promise; + var i = 0; + var len; + if (!synchronousRequestInterceptors) { + var chain = [dispatchRequest.bind(this), undefined]; + chain.unshift.apply(chain, requestInterceptorChain); + chain.push.apply(chain, responseInterceptorChain); + len = chain.length; + promise = Promise.resolve(config); + while (i < len) { + promise = promise.then(chain[i++], chain[i++]); + } + return promise; + } + len = requestInterceptorChain.length; + var newConfig = config; + while (i < len) { + var onFulfilled = requestInterceptorChain[i++]; + var onRejected = requestInterceptorChain[i++]; + try { + newConfig = onFulfilled(newConfig); + } catch (error) { + onRejected.call(this, error); + break; + } + } + try { + promise = dispatchRequest.call(this, newConfig); + } catch (error) { + return Promise.reject(error); + } + i = 0; + len = responseInterceptorChain.length; + while (i < len) { + promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]); + } + return promise; + } + }, { + key: "getUri", + value: function getUri(config) { + config = mergeConfig(this.defaults, config); + var fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls); + return buildURL(fullPath, config.params, config.paramsSerializer); + } + }]); + }(); // Provide aliases for supported request methods + utils$1.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) { + /*eslint func-names:0*/ + Axios.prototype[method] = function (url, config) { + return this.request(mergeConfig(config || {}, { + method: method, + url: url, + data: (config || {}).data + })); + }; + }); + utils$1.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) { + function generateHTTPMethod(isForm) { + return function httpMethod(url, data, config) { + return this.request(mergeConfig(config || {}, { + method: method, + headers: isForm ? { + 'Content-Type': 'multipart/form-data' + } : {}, + url: url, + data: data + })); + }; + } + Axios.prototype[method] = generateHTTPMethod(); + Axios.prototype[method + 'Form'] = generateHTTPMethod(true); + }); + + /** + * A `CancelToken` is an object that can be used to request cancellation of an operation. + * + * @param {Function} executor The executor function. + * + * @returns {CancelToken} + */ + var CancelToken = /*#__PURE__*/function () { + function CancelToken(executor) { + _classCallCheck(this, CancelToken); + if (typeof executor !== 'function') { + throw new TypeError('executor must be a function.'); + } + var resolvePromise; + this.promise = new Promise(function promiseExecutor(resolve) { + resolvePromise = resolve; + }); + var token = this; + + // eslint-disable-next-line func-names + this.promise.then(function (cancel) { + if (!token._listeners) return; + var i = token._listeners.length; + while (i-- > 0) { + token._listeners[i](cancel); + } + token._listeners = null; + }); + + // eslint-disable-next-line func-names + this.promise.then = function (onfulfilled) { + var _resolve; + // eslint-disable-next-line func-names + var promise = new Promise(function (resolve) { + token.subscribe(resolve); + _resolve = resolve; + }).then(onfulfilled); + promise.cancel = function reject() { + token.unsubscribe(_resolve); + }; + return promise; + }; + executor(function cancel(message, config, request) { + if (token.reason) { + // Cancellation has already been requested + return; + } + token.reason = new CanceledError(message, config, request); + resolvePromise(token.reason); + }); + } + + /** + * Throws a `CanceledError` if cancellation has been requested. + */ + return _createClass(CancelToken, [{ + key: "throwIfRequested", + value: function throwIfRequested() { + if (this.reason) { + throw this.reason; + } + } + + /** + * Subscribe to the cancel signal + */ + }, { + key: "subscribe", + value: function subscribe(listener) { + if (this.reason) { + listener(this.reason); + return; + } + if (this._listeners) { + this._listeners.push(listener); + } else { + this._listeners = [listener]; + } + } + + /** + * Unsubscribe from the cancel signal + */ + }, { + key: "unsubscribe", + value: function unsubscribe(listener) { + if (!this._listeners) { + return; + } + var index = this._listeners.indexOf(listener); + if (index !== -1) { + this._listeners.splice(index, 1); + } + } + }, { + key: "toAbortSignal", + value: function toAbortSignal() { + var _this = this; + var controller = new AbortController(); + var abort = function abort(err) { + controller.abort(err); + }; + this.subscribe(abort); + controller.signal.unsubscribe = function () { + return _this.unsubscribe(abort); + }; + return controller.signal; + } + + /** + * Returns an object that contains a new `CancelToken` and a function that, when called, + * cancels the `CancelToken`. + */ + }], [{ + key: "source", + value: function source() { + var cancel; + var token = new CancelToken(function executor(c) { + cancel = c; + }); + return { + token: token, + cancel: cancel + }; + } + }]); + }(); + + /** + * Syntactic sugar for invoking a function and expanding an array for arguments. + * + * Common use case would be to use `Function.prototype.apply`. + * + * ```js + * function f(x, y, z) {} + * const args = [1, 2, 3]; + * f.apply(null, args); + * ``` + * + * With `spread` this example can be re-written. + * + * ```js + * spread(function(x, y, z) {})([1, 2, 3]); + * ``` + * + * @param {Function} callback + * + * @returns {Function} + */ + function spread(callback) { + return function wrap(arr) { + return callback.apply(null, arr); + }; + } + + /** + * Determines whether the payload is an error thrown by Axios + * + * @param {*} payload The value to test + * + * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false + */ + function isAxiosError(payload) { + return utils$1.isObject(payload) && payload.isAxiosError === true; + } + + var HttpStatusCode = { + Continue: 100, + SwitchingProtocols: 101, + Processing: 102, + EarlyHints: 103, + Ok: 200, + Created: 201, + Accepted: 202, + NonAuthoritativeInformation: 203, + NoContent: 204, + ResetContent: 205, + PartialContent: 206, + MultiStatus: 207, + AlreadyReported: 208, + ImUsed: 226, + MultipleChoices: 300, + MovedPermanently: 301, + Found: 302, + SeeOther: 303, + NotModified: 304, + UseProxy: 305, + Unused: 306, + TemporaryRedirect: 307, + PermanentRedirect: 308, + BadRequest: 400, + Unauthorized: 401, + PaymentRequired: 402, + Forbidden: 403, + NotFound: 404, + MethodNotAllowed: 405, + NotAcceptable: 406, + ProxyAuthenticationRequired: 407, + RequestTimeout: 408, + Conflict: 409, + Gone: 410, + LengthRequired: 411, + PreconditionFailed: 412, + PayloadTooLarge: 413, + UriTooLong: 414, + UnsupportedMediaType: 415, + RangeNotSatisfiable: 416, + ExpectationFailed: 417, + ImATeapot: 418, + MisdirectedRequest: 421, + UnprocessableEntity: 422, + Locked: 423, + FailedDependency: 424, + TooEarly: 425, + UpgradeRequired: 426, + PreconditionRequired: 428, + TooManyRequests: 429, + RequestHeaderFieldsTooLarge: 431, + UnavailableForLegalReasons: 451, + InternalServerError: 500, + NotImplemented: 501, + BadGateway: 502, + ServiceUnavailable: 503, + GatewayTimeout: 504, + HttpVersionNotSupported: 505, + VariantAlsoNegotiates: 506, + InsufficientStorage: 507, + LoopDetected: 508, + NotExtended: 510, + NetworkAuthenticationRequired: 511, + WebServerIsDown: 521, + ConnectionTimedOut: 522, + OriginIsUnreachable: 523, + TimeoutOccurred: 524, + SslHandshakeFailed: 525, + InvalidSslCertificate: 526 + }; + Object.entries(HttpStatusCode).forEach(function (_ref) { + var _ref2 = _slicedToArray(_ref, 2), + key = _ref2[0], + value = _ref2[1]; + HttpStatusCode[value] = key; + }); + + /** + * Create an instance of Axios + * + * @param {Object} defaultConfig The default config for the instance + * + * @returns {Axios} A new instance of Axios + */ + function createInstance(defaultConfig) { + var context = new Axios(defaultConfig); + var instance = bind(Axios.prototype.request, context); + + // Copy axios.prototype to instance + utils$1.extend(instance, Axios.prototype, context, { + allOwnKeys: true + }); + + // Copy context to instance + utils$1.extend(instance, context, null, { + allOwnKeys: true + }); + + // Factory for creating new instances + instance.create = function create(instanceConfig) { + return createInstance(mergeConfig(defaultConfig, instanceConfig)); + }; + return instance; + } + + // Create the default instance to be exported + var axios = createInstance(defaults); + + // Expose Axios class to allow class inheritance + axios.Axios = Axios; + + // Expose Cancel & CancelToken + axios.CanceledError = CanceledError; + axios.CancelToken = CancelToken; + axios.isCancel = isCancel; + axios.VERSION = VERSION; + axios.toFormData = toFormData; + + // Expose AxiosError class + axios.AxiosError = AxiosError; + + // alias for CanceledError for backward compatibility + axios.Cancel = axios.CanceledError; + + // Expose all/spread + axios.all = function all(promises) { + return Promise.all(promises); + }; + axios.spread = spread; + + // Expose isAxiosError + axios.isAxiosError = isAxiosError; + + // Expose mergeConfig + axios.mergeConfig = mergeConfig; + axios.AxiosHeaders = AxiosHeaders; + axios.formToJSON = function (thing) { + return formDataToJSON(utils$1.isHTMLForm(thing) ? new FormData(thing) : thing); + }; + axios.getAdapter = adapters.getAdapter; + axios.HttpStatusCode = HttpStatusCode; + axios["default"] = axios; + + return axios; + +})); +//# sourceMappingURL=axios.js.map diff --git a/server/api/node_modules/axios/dist/axios.js.map b/server/api/node_modules/axios/dist/axios.js.map new file mode 100644 index 0000000..3cb67c8 --- /dev/null +++ b/server/api/node_modules/axios/dist/axios.js.map @@ -0,0 +1 @@ +{"version":3,"file":"axios.js","sources":["../lib/helpers/bind.js","../lib/utils.js","../lib/core/AxiosError.js","../lib/helpers/null.js","../lib/helpers/toFormData.js","../lib/helpers/AxiosURLSearchParams.js","../lib/helpers/buildURL.js","../lib/core/InterceptorManager.js","../lib/defaults/transitional.js","../lib/platform/browser/classes/URLSearchParams.js","../lib/platform/browser/classes/FormData.js","../lib/platform/browser/classes/Blob.js","../lib/platform/browser/index.js","../lib/platform/common/utils.js","../lib/platform/index.js","../lib/helpers/toURLEncodedForm.js","../lib/helpers/formDataToJSON.js","../lib/defaults/index.js","../lib/helpers/parseHeaders.js","../lib/core/AxiosHeaders.js","../lib/core/transformData.js","../lib/cancel/isCancel.js","../lib/cancel/CanceledError.js","../lib/core/settle.js","../lib/helpers/parseProtocol.js","../lib/helpers/speedometer.js","../lib/helpers/throttle.js","../lib/helpers/progressEventReducer.js","../lib/helpers/isURLSameOrigin.js","../lib/helpers/cookies.js","../lib/helpers/isAbsoluteURL.js","../lib/helpers/combineURLs.js","../lib/core/buildFullPath.js","../lib/core/mergeConfig.js","../lib/helpers/resolveConfig.js","../lib/adapters/xhr.js","../lib/helpers/composeSignals.js","../lib/helpers/trackStream.js","../lib/adapters/fetch.js","../lib/adapters/adapters.js","../lib/core/dispatchRequest.js","../lib/env/data.js","../lib/helpers/validator.js","../lib/core/Axios.js","../lib/cancel/CancelToken.js","../lib/helpers/spread.js","../lib/helpers/isAxiosError.js","../lib/helpers/HttpStatusCode.js","../lib/axios.js"],"sourcesContent":["'use strict';\n\n/**\n * Create a bound version of a function with a specified `this` context\n *\n * @param {Function} fn - The function to bind\n * @param {*} thisArg - The value to be passed as the `this` parameter\n * @returns {Function} A new function that will call the original function with the specified `this` context\n */\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst { toString } = Object.prototype;\nconst { getPrototypeOf } = Object;\nconst { iterator, toStringTag } = Symbol;\n\nconst kindOf = ((cache) => (thing) => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type;\n};\n\nconst typeOfTest = (type) => (thing) => typeof thing === type;\n\n/**\n * Determine if a value is a non-null object\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst { isArray } = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return (\n val !== null &&\n !isUndefined(val) &&\n val.constructor !== null &&\n !isUndefined(val.constructor) &&\n isFunction(val.constructor.isBuffer) &&\n val.constructor.isBuffer(val)\n );\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n result = ArrayBuffer.isView(val);\n } else {\n result = val && val.buffer && isArrayBuffer(val.buffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = (thing) => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (\n (prototype === null ||\n prototype === Object.prototype ||\n Object.getPrototypeOf(prototype) === null) &&\n !(toStringTag in val) &&\n !(iterator in val)\n );\n};\n\n/**\n * Determine if a value is an empty object (safely handles Buffers)\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an empty object, otherwise false\n */\nconst isEmptyObject = (val) => {\n // Early return for non-objects or Buffers to prevent RangeError\n if (!isObject(val) || isBuffer(val)) {\n return false;\n }\n\n try {\n return Object.keys(val).length === 0 && Object.getPrototypeOf(val) === Object.prototype;\n } catch (e) {\n // Fallback for any other objects that might cause RangeError with Object.keys()\n return false;\n }\n};\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a React Native Blob\n * React Native \"blob\": an object with a `uri` attribute. Optionally, it can\n * also have a `name` and `type` attribute to specify filename and content type\n *\n * @see https://github.com/facebook/react-native/blob/26684cf3adf4094eb6c405d345a75bf8c7c0bf88/Libraries/Network/FormData.js#L68-L71\n * \n * @param {*} value The value to test\n * \n * @returns {boolean} True if value is a React Native Blob, otherwise false\n */\nconst isReactNativeBlob = (value) => {\n return !!(value && typeof value.uri !== 'undefined');\n}\n\n/**\n * Determine if environment is React Native\n * ReactNative `FormData` has a non-standard `getParts()` method\n * \n * @param {*} formData The formData to test\n * \n * @returns {boolean} True if environment is React Native, otherwise false\n */\nconst isReactNative = (formData) => formData && typeof formData.getParts !== 'undefined';\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction getGlobal() {\n if (typeof globalThis !== 'undefined') return globalThis;\n if (typeof self !== 'undefined') return self;\n if (typeof window !== 'undefined') return window;\n if (typeof global !== 'undefined') return global;\n return {};\n}\n\nconst G = getGlobal();\nconst FormDataCtor = typeof G.FormData !== 'undefined' ? G.FormData : undefined;\n\nconst isFormData = (thing) => {\n if (!thing) return false;\n if (FormDataCtor && thing instanceof FormDataCtor) return true;\n // Reject plain objects inheriting directly from Object.prototype so prototype-pollution gadgets can't spoof FormData (GHSA-6chq-wfr3-2hj9).\n const proto = getPrototypeOf(thing);\n if (!proto || proto === Object.prototype) return false;\n if (!isFunction(thing.append)) return false;\n const kind = kindOf(thing);\n return kind === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]');\n};\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = [\n 'ReadableStream',\n 'Request',\n 'Response',\n 'Headers',\n].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => {\n return str.trim ? str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n};\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Object} [options]\n * @param {Boolean} [options.allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, { allOwnKeys = false } = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Buffer check\n if (isBuffer(obj)) {\n return;\n }\n\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\n/**\n * Finds a key in an object, case-insensitive, returning the actual key name.\n * Returns null if the object is a Buffer or if no match is found.\n *\n * @param {Object} obj - The object to search.\n * @param {string} key - The key to find (case-insensitive).\n * @returns {?string} The actual key name if found, otherwise null.\n */\nfunction findKey(obj, key) {\n if (isBuffer(obj)) {\n return null;\n }\n\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== 'undefined') return globalThis;\n return typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : global;\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * const result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const { caseless, skipUndefined } = (isContextDefined(this) && this) || {};\n const result = {};\n const assignValue = (val, key) => {\n // Skip dangerous property names to prevent prototype pollution\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return;\n }\n\n const targetKey = (caseless && findKey(result, key)) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else if (!skipUndefined || !isUndefined(val)) {\n result[targetKey] = val;\n }\n };\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Object} [options]\n * @param {Boolean} [options.allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, { allOwnKeys } = {}) => {\n forEach(\n b,\n (val, key) => {\n if (thisArg && isFunction(val)) {\n Object.defineProperty(a, key, {\n value: bind(val, thisArg),\n writable: true,\n enumerable: true,\n configurable: true,\n });\n } else {\n Object.defineProperty(a, key, {\n value: val,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n }\n },\n { allOwnKeys }\n );\n return a;\n};\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xfeff) {\n content = content.slice(1);\n }\n return content;\n};\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n Object.defineProperty(constructor.prototype, 'constructor', {\n value: constructor,\n writable: true,\n enumerable: false,\n configurable: true,\n });\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype,\n });\n props && Object.assign(constructor.prototype, props);\n};\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n};\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n};\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n};\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = ((TypedArray) => {\n // eslint-disable-next-line func-names\n return (thing) => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[iterator];\n\n const _iterator = generator.call(obj);\n\n let result;\n\n while ((result = _iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n};\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n};\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = (str) => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g, function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n });\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (\n ({ hasOwnProperty }) =>\n (obj, prop) =>\n hasOwnProperty.call(obj, prop)\n)(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n};\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error(\"Can not rewrite read-only method '\" + name + \"'\");\n };\n }\n });\n};\n\n/**\n * Converts an array or a delimited string into an object set with values as keys and true as values.\n * Useful for fast membership checks.\n *\n * @param {Array|string} arrayOrString - The array or string to convert.\n * @param {string} delimiter - The delimiter to use if input is a string.\n * @returns {Object} An object with keys from the array or string, values set to true.\n */\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach((value) => {\n obj[value] = true;\n });\n };\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n};\n\nconst noop = () => {};\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite((value = +value)) ? value : defaultValue;\n};\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(\n thing &&\n isFunction(thing.append) &&\n thing[toStringTag] === 'FormData' &&\n thing[iterator]\n );\n}\n\n/**\n * Recursively converts an object to a JSON-compatible object, handling circular references and Buffers.\n *\n * @param {Object} obj - The object to convert.\n * @returns {Object} The JSON-compatible object.\n */\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n //Buffer check\n if (isBuffer(source)) {\n return source;\n }\n\n if (!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n };\n\n return visit(obj, 0);\n};\n\n/**\n * Determines if a value is an async function.\n *\n * @param {*} thing - The value to test.\n * @returns {boolean} True if value is an async function, otherwise false.\n */\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\n/**\n * Determines if a value is thenable (has then and catch methods).\n *\n * @param {*} thing - The value to test.\n * @returns {boolean} True if value is thenable, otherwise false.\n */\nconst isThenable = (thing) =>\n thing &&\n (isObject(thing) || isFunction(thing)) &&\n isFunction(thing.then) &&\n isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\n/**\n * Provides a cross-platform setImmediate implementation.\n * Uses native setImmediate if available, otherwise falls back to postMessage or setTimeout.\n *\n * @param {boolean} setImmediateSupported - Whether setImmediate is supported.\n * @param {boolean} postMessageSupported - Whether postMessage is supported.\n * @returns {Function} A function to schedule a callback asynchronously.\n */\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported\n ? ((token, callbacks) => {\n _global.addEventListener(\n 'message',\n ({ source, data }) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n },\n false\n );\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, '*');\n };\n })(`axios@${Math.random()}`, [])\n : (cb) => setTimeout(cb);\n})(typeof setImmediate === 'function', isFunction(_global.postMessage));\n\n/**\n * Schedules a microtask or asynchronous callback as soon as possible.\n * Uses queueMicrotask if available, otherwise falls back to process.nextTick or _setImmediate.\n *\n * @type {Function}\n */\nconst asap =\n typeof queueMicrotask !== 'undefined'\n ? queueMicrotask.bind(_global)\n : (typeof process !== 'undefined' && process.nextTick) || _setImmediate;\n\n// *********************\n\nconst isIterable = (thing) => thing != null && isFunction(thing[iterator]);\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isEmptyObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isReactNativeBlob,\n isReactNative,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap,\n isIterable,\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\nclass AxiosError extends Error {\n static from(error, code, config, request, response, customProps) {\n const axiosError = new AxiosError(error.message, code || error.code, config, request, response);\n axiosError.cause = error;\n axiosError.name = error.name;\n\n // Preserve status from the original error if not already set from response\n if (error.status != null && axiosError.status == null) {\n axiosError.status = error.status;\n }\n\n customProps && Object.assign(axiosError, customProps);\n return axiosError;\n }\n\n /**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\n constructor(message, code, config, request, response) {\n super(message);\n\n // Make message enumerable to maintain backward compatibility\n // The native Error constructor sets message as non-enumerable,\n // but axios < v1.13.3 had it as enumerable\n Object.defineProperty(this, 'message', {\n value: message,\n enumerable: true,\n writable: true,\n configurable: true,\n });\n\n this.name = 'AxiosError';\n this.isAxiosError = true;\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status;\n }\n }\n\n toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.status,\n };\n }\n}\n\n// This can be changed to static properties as soon as the parser options in .eslint.cjs are updated.\nAxiosError.ERR_BAD_OPTION_VALUE = 'ERR_BAD_OPTION_VALUE';\nAxiosError.ERR_BAD_OPTION = 'ERR_BAD_OPTION';\nAxiosError.ECONNABORTED = 'ECONNABORTED';\nAxiosError.ETIMEDOUT = 'ETIMEDOUT';\nAxiosError.ERR_NETWORK = 'ERR_NETWORK';\nAxiosError.ERR_FR_TOO_MANY_REDIRECTS = 'ERR_FR_TOO_MANY_REDIRECTS';\nAxiosError.ERR_DEPRECATED = 'ERR_DEPRECATED';\nAxiosError.ERR_BAD_RESPONSE = 'ERR_BAD_RESPONSE';\nAxiosError.ERR_BAD_REQUEST = 'ERR_BAD_REQUEST';\nAxiosError.ERR_CANCELED = 'ERR_CANCELED';\nAxiosError.ERR_NOT_SUPPORT = 'ERR_NOT_SUPPORT';\nAxiosError.ERR_INVALID_URL = 'ERR_INVALID_URL';\nAxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED = 'ERR_FORM_DATA_DEPTH_EXCEEDED';\n\nexport default AxiosError;\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path\n .concat(key)\n .map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n })\n .join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(\n options,\n {\n metaTokens: true,\n dots: false,\n indexes: false,\n },\n false,\n function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n }\n );\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || (typeof Blob !== 'undefined' && Blob);\n const maxDepth = options.maxDepth === undefined ? 100 : options.maxDepth;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (utils.isBoolean(value)) {\n return value.toString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (utils.isReactNative(formData) && utils.isReactNativeBlob(value)) {\n formData.append(renderKey(path, key, dots), convertValue(value));\n return false;\n }\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value)))\n ) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) &&\n formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true\n ? renderKey([key], index, dots)\n : indexes === null\n ? key\n : key + '[]',\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable,\n });\n\n function build(value, path, depth = 0) {\n if (utils.isUndefined(value)) return;\n\n if (depth > maxDepth) {\n throw new AxiosError(\n 'Object is too deeply nested (' + depth + ' levels). Max depth: ' + maxDepth,\n AxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED\n );\n }\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result =\n !(utils.isUndefined(el) || el === null) &&\n visitor.call(formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers);\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key], depth + 1);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder\n ? function (value) {\n return encoder.call(this, value, encode);\n }\n : encode;\n\n return this._pairs\n .map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '')\n .join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces URL-encoded forms of `:`, `$`, `,`, and spaces with\n * their plain counterparts (`:`, `$`, `,`, `+`).\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val)\n .replace(/%3A/gi, ':')\n .replace(/%24/g, '$')\n .replace(/%2C/gi, ',')\n .replace(/%20/g, '+');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?(object|Function)} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n if (!params) {\n return url;\n }\n\n const _encode = (options && options.encode) || encode;\n\n const _options = utils.isFunction(options)\n ? {\n serialize: options,\n }\n : options;\n\n const serializeFn = _options && _options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, _options);\n } else {\n serializedParams = utils.isURLSearchParams(params)\n ? params.toString()\n : new AxiosURLSearchParams(params, _options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf('#');\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n * @param {Object} options The options for the interceptor, synchronous and runWhen\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null,\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {void}\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false,\n legacyInterceptorReqResOrdering: true,\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict';\n\nexport default typeof Blob !== 'undefined' ? Blob : null;\n","import URLSearchParams from './classes/URLSearchParams.js';\nimport FormData from './classes/FormData.js';\nimport Blob from './classes/Blob.js';\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob,\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data'],\n};\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = (typeof navigator === 'object' && navigator) || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv =\n hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = (hasBrowserEnv && window.location.href) || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n _navigator as navigator,\n origin,\n};\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform,\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), {\n visitor: function (value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n },\n ...options,\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map((match) => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = utils.isArray(target[name])\n ? target[name].concat(value)\n : [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\nconst own = (obj, key) => (obj != null && utils.hasOwnProp(obj, key) ? obj[key] : undefined);\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [\n function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data) ||\n utils.isReadableStream(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n const formSerializer = own(this, 'formSerializer');\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, formSerializer).toString();\n }\n\n if (\n (isFileList = utils.isFileList(data)) ||\n contentType.indexOf('multipart/form-data') > -1\n ) {\n const env = own(this, 'env');\n const _FormData = env && env.FormData;\n\n return toFormData(\n isFileList ? { 'files[]': data } : data,\n _FormData && new _FormData(),\n formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n },\n ],\n\n transformResponse: [\n function transformResponse(data) {\n const transitional = own(this, 'transitional') || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const responseType = own(this, 'responseType');\n const JSONRequested = responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (\n data &&\n utils.isString(data) &&\n ((forcedJSONParsing && !responseType) || JSONRequested)\n ) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data, own(this, 'parseReviver'));\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, own(this, 'response'));\n }\n throw e;\n }\n }\n }\n\n return data;\n },\n ],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob,\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n Accept: 'application/json, text/plain, */*',\n 'Content-Type': undefined,\n },\n },\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from '../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age',\n 'authorization',\n 'content-length',\n 'content-type',\n 'etag',\n 'expires',\n 'from',\n 'host',\n 'if-modified-since',\n 'if-unmodified-since',\n 'last-modified',\n 'location',\n 'max-forwards',\n 'proxy-authorization',\n 'referer',\n 'retry-after',\n 'user-agent',\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default (rawHeaders) => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders &&\n rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nconst INVALID_HEADER_VALUE_CHARS_RE = /[^\\x09\\x20-\\x7E\\x80-\\xFF]/g;\n\nfunction trimSPorHTAB(str) {\n let start = 0;\n let end = str.length;\n\n while (start < end) {\n const code = str.charCodeAt(start);\n\n if (code !== 0x09 && code !== 0x20) {\n break;\n }\n\n start += 1;\n }\n\n while (end > start) {\n const code = str.charCodeAt(end - 1);\n\n if (code !== 0x09 && code !== 0x20) {\n break;\n }\n\n end -= 1;\n }\n\n return start === 0 && end === str.length ? str : str.slice(start, end);\n}\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction sanitizeHeaderValue(str) {\n return trimSPorHTAB(str.replace(INVALID_HEADER_VALUE_CHARS_RE, ''));\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : sanitizeHeaderValue(String(value));\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header\n .trim()\n .toLowerCase()\n .replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach((methodName) => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function (arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true,\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if (\n !key ||\n self[key] === undefined ||\n _rewrite === true ||\n (_rewrite === undefined && self[key] !== false)\n ) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite);\n } else if (utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isObject(header) && utils.isIterable(header)) {\n let obj = {},\n dest,\n key;\n for (const entry of header) {\n if (!utils.isArray(entry)) {\n throw TypeError('Object iterator must return a key-value pair');\n }\n\n obj[(key = entry[0])] = (dest = obj[key])\n ? utils.isArray(dest)\n ? [...dest, entry[1]]\n : [dest, entry[1]]\n : entry[1];\n }\n\n setHeaders(obj, valueOrRewrite);\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(\n key &&\n this[key] !== undefined &&\n (!matcher || matchHeaderValue(this, this[key], key, matcher))\n );\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if (!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null &&\n value !== false &&\n (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON())\n .map(([header, value]) => header + ': ' + value)\n .join('\\n');\n }\n\n getSetCookie() {\n return this.get('set-cookie') || [];\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals =\n (this[$internals] =\n this[$internals] =\n {\n accessors: {},\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor([\n 'Content-Type',\n 'Content-Length',\n 'Accept',\n 'Accept-Encoding',\n 'User-Agent',\n 'Authorization',\n]);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({ value }, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n },\n };\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from '../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\n\nclass CanceledError extends AxiosError {\n /**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\n constructor(message, config, request) {\n super(message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n this.__CANCEL__ = true;\n }\n}\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(\n new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][\n Math.floor(response.status / 100) - 4\n ],\n response.config,\n response.request,\n response\n )\n );\n }\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return (match && match[1]) || '';\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round((bytesCount * 1000) / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn(...args);\n };\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if (passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs);\n }, threshold - passed);\n }\n }\n };\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nexport default throttle;\n","import speedometer from './speedometer.js';\nimport throttle from './throttle.js';\nimport utils from '../utils.js';\n\nexport const progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle((e) => {\n const rawLoaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const loaded = total != null ? Math.min(rawLoaded, total) : rawLoaded;\n const progressBytes = Math.max(0, loaded - bytesNotified);\n const rate = _speedometer(progressBytes);\n\n bytesNotified = Math.max(bytesNotified, loaded);\n\n const data = {\n loaded,\n total,\n progress: total ? loaded / total : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true,\n };\n\n listener(data);\n }, freq);\n};\n\nexport const progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [\n (loaded) =>\n throttled[0]({\n lengthComputable,\n total,\n loaded,\n }),\n throttled[1],\n ];\n};\n\nexport const asyncDecorator =\n (fn) =>\n (...args) =>\n utils.asap(() => fn(...args));\n","import platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv\n ? ((origin, isMSIE) => (url) => {\n url = new URL(url, platform.origin);\n\n return (\n origin.protocol === url.protocol &&\n origin.host === url.host &&\n (isMSIE || origin.port === url.port)\n );\n })(\n new URL(platform.origin),\n platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)\n )\n : () => true;\n","import utils from '../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv\n ? // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure, sameSite) {\n if (typeof document === 'undefined') return;\n\n const cookie = [`${name}=${encodeURIComponent(value)}`];\n\n if (utils.isNumber(expires)) {\n cookie.push(`expires=${new Date(expires).toUTCString()}`);\n }\n if (utils.isString(path)) {\n cookie.push(`path=${path}`);\n }\n if (utils.isString(domain)) {\n cookie.push(`domain=${domain}`);\n }\n if (secure === true) {\n cookie.push('secure');\n }\n if (utils.isString(sameSite)) {\n cookie.push(`SameSite=${sameSite}`);\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n if (typeof document === 'undefined') return null;\n const match = document.cookie.match(new RegExp('(?:^|; )' + name + '=([^;]*)'));\n return match ? decodeURIComponent(match[1]) : null;\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000, '/');\n },\n }\n : // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {},\n };\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n if (typeof url !== 'string') {\n return false;\n }\n\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) {\n let isRelativeUrl = !isAbsoluteURL(requestedURL);\n if (baseURL && (isRelativeUrl || allowAbsoluteUrls === false)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst headersToObject = (thing) => (thing instanceof AxiosHeaders ? { ...thing } : thing);\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, prop, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({ caseless }, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(a, b, prop, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, prop, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, prop, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (utils.hasOwnProp(config2, prop)) {\n return getMergedValue(a, b);\n } else if (utils.hasOwnProp(config1, prop)) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b, prop) =>\n mergeDeepProperties(headersToObject(a), headersToObject(b), prop, true),\n };\n\n utils.forEach(Object.keys({ ...config1, ...config2 }), function computeConfigValue(prop) {\n if (prop === '__proto__' || prop === 'constructor' || prop === 'prototype') return;\n const merge = utils.hasOwnProp(mergeMap, prop) ? mergeMap[prop] : mergeDeepProperties;\n const a = utils.hasOwnProp(config1, prop) ? config1[prop] : undefined;\n const b = utils.hasOwnProp(config2, prop) ? config2[prop] : undefined;\n const configValue = merge(a, b, prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","import platform from '../platform/index.js';\nimport utils from '../utils.js';\nimport isURLSameOrigin from './isURLSameOrigin.js';\nimport cookies from './cookies.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport mergeConfig from '../core/mergeConfig.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport buildURL from './buildURL.js';\n\nexport default (config) => {\n const newConfig = mergeConfig({}, config);\n\n let { data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth } = newConfig;\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(\n buildFullPath(newConfig.baseURL, newConfig.url, newConfig.allowAbsoluteUrls),\n config.params,\n config.paramsSerializer\n );\n\n // HTTP basic authentication\n if (auth) {\n headers.set(\n 'Authorization',\n 'Basic ' +\n btoa(\n (auth.username || '') +\n ':' +\n (auth.password ? unescape(encodeURIComponent(auth.password)) : '')\n )\n );\n }\n\n if (utils.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // browser handles it\n } else if (utils.isFunction(data.getHeaders)) {\n // Node.js FormData (like form-data package)\n const formHeaders = data.getHeaders();\n // Only set safe headers to avoid overwriting security headers\n const allowedHeaders = ['content-type', 'content-length'];\n Object.entries(formHeaders).forEach(([key, val]) => {\n if (allowedHeaders.includes(key.toLowerCase())) {\n headers.set(key, val);\n }\n });\n }\n }\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n if (utils.isFunction(withXSRFToken)) {\n withXSRFToken = withXSRFToken(newConfig);\n }\n\n // Strict boolean check — prevents proto-pollution gadgets (e.g. Object.prototype.withXSRFToken = 1)\n // and misconfigurations (e.g. \"false\") from short-circuiting the same-origin check and leaking\n // the XSRF token cross-origin. See GHSA-xx6v-rp6x-q39c.\n const shouldSendXSRF =\n withXSRFToken === true ||\n (withXSRFToken == null && isURLSameOrigin(newConfig.url));\n\n if (shouldSendXSRF) {\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n};\n","import utils from '../utils.js';\nimport settle from '../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport { progressEventReducer } from '../helpers/progressEventReducer.js';\nimport resolveConfig from '../helpers/resolveConfig.js';\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported &&\n function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let { responseType, onUploadProgress, onDownloadProgress } = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData =\n !responseType || responseType === 'text' || responseType === 'json'\n ? request.responseText\n : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request,\n };\n\n settle(\n function _resolve(value) {\n resolve(value);\n done();\n },\n function _reject(err) {\n reject(err);\n done();\n },\n response\n );\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (\n request.status === 0 &&\n !(request.responseURL && request.responseURL.indexOf('file:') === 0)\n ) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError(event) {\n // Browsers deliver a ProgressEvent in XHR onerror\n // (message may be empty; when present, surface it)\n // See https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/error_event\n const msg = event && event.message ? event.message : 'Network Error';\n const err = new AxiosError(msg, AxiosError.ERR_NETWORK, config, request);\n // attach the underlying event for consumers who want details\n err.event = event || null;\n reject(err);\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout\n ? 'timeout of ' + _config.timeout + 'ms exceeded'\n : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(\n new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request\n )\n );\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n [downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true);\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n [uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress);\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = (cancel) => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted\n ? onCanceled()\n : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(\n new AxiosError(\n 'Unsupported protocol ' + protocol + ':',\n AxiosError.ERR_BAD_REQUEST,\n config\n )\n );\n return;\n }\n\n // Send the request\n request.send(requestData || null);\n });\n };\n","import CanceledError from '../cancel/CanceledError.js';\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\nconst composeSignals = (signals, timeout) => {\n const { length } = (signals = signals ? signals.filter(Boolean) : []);\n\n if (timeout || length) {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(\n err instanceof AxiosError\n ? err\n : new CanceledError(err instanceof Error ? err.message : err)\n );\n }\n };\n\n let timer =\n timeout &&\n setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout of ${timeout}ms exceeded`, AxiosError.ETIMEDOUT));\n }, timeout);\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach((signal) => {\n signal.unsubscribe\n ? signal.unsubscribe(onabort)\n : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n }\n };\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n const { signal } = controller;\n\n signal.unsubscribe = () => utils.asap(unsubscribe);\n\n return signal;\n }\n};\n\nexport default composeSignals;\n","export const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n};\n\nexport const readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n};\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const { done, value } = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n};\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n };\n\n return new ReadableStream(\n {\n async pull(controller) {\n try {\n const { done, value } = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = (bytes += len);\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n },\n },\n {\n highWaterMark: 2,\n }\n );\n};\n","import platform from '../platform/index.js';\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport composeSignals from '../helpers/composeSignals.js';\nimport { trackStream } from '../helpers/trackStream.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport {\n progressEventReducer,\n progressEventDecorator,\n asyncDecorator,\n} from '../helpers/progressEventReducer.js';\nimport resolveConfig from '../helpers/resolveConfig.js';\nimport settle from '../core/settle.js';\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst { isFunction } = utils;\n\nconst globalFetchAPI = (({ Request, Response }) => ({\n Request,\n Response,\n}))(utils.global);\n\nconst { ReadableStream, TextEncoder } = utils.global;\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false;\n }\n};\n\nconst factory = (env) => {\n env = utils.merge.call(\n {\n skipUndefined: true,\n },\n globalFetchAPI,\n env\n );\n\n const { fetch: envFetch, Request, Response } = env;\n const isFetchSupported = envFetch ? isFunction(envFetch) : typeof fetch === 'function';\n const isRequestSupported = isFunction(Request);\n const isResponseSupported = isFunction(Response);\n\n if (!isFetchSupported) {\n return false;\n }\n\n const isReadableStreamSupported = isFetchSupported && isFunction(ReadableStream);\n\n const encodeText =\n isFetchSupported &&\n (typeof TextEncoder === 'function'\n ? (\n (encoder) => (str) =>\n encoder.encode(str)\n )(new TextEncoder())\n : async (str) => new Uint8Array(await new Request(str).arrayBuffer()));\n\n const supportsRequestStream =\n isRequestSupported &&\n isReadableStreamSupported &&\n test(() => {\n let duplexAccessed = false;\n\n const request = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n });\n\n const hasContentType = request.headers.has('Content-Type');\n\n if (request.body != null) {\n request.body.cancel();\n }\n\n return duplexAccessed && !hasContentType;\n });\n\n const supportsResponseStream =\n isResponseSupported &&\n isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n const resolvers = {\n stream: supportsResponseStream && ((res) => res.body),\n };\n\n isFetchSupported &&\n (() => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach((type) => {\n !resolvers[type] &&\n (resolvers[type] = (res, config) => {\n let method = res && res[type];\n\n if (method) {\n return method.call(res);\n }\n\n throw new AxiosError(\n `Response type '${type}' is not supported`,\n AxiosError.ERR_NOT_SUPPORT,\n config\n );\n });\n });\n })();\n\n const getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if (utils.isBlob(body)) {\n return body.size;\n }\n\n if (utils.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if (utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if (utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if (utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n };\n\n const resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n };\n\n return async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions,\n } = resolveConfig(config);\n\n let _fetch = envFetch || fetch;\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals(\n [signal, cancelToken && cancelToken.toAbortSignal()],\n timeout\n );\n\n let request = null;\n\n const unsubscribe =\n composedSignal &&\n composedSignal.unsubscribe &&\n (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress &&\n supportsRequestStream &&\n method !== 'get' &&\n method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: 'half',\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader);\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n }\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = isRequestSupported && 'credentials' in Request.prototype;\n\n // If data is FormData and Content-Type is multipart/form-data without boundary,\n // delete it so fetch can set it correctly with the boundary\n if (utils.isFormData(data)) {\n const contentType = headers.getContentType();\n if (\n contentType &&\n /^multipart\\/form-data/i.test(contentType) &&\n !/boundary=/i.test(contentType)\n ) {\n headers.delete('content-type');\n }\n }\n\n const resolvedOptions = {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: 'half',\n credentials: isCredentialsSupported ? withCredentials : undefined,\n };\n\n request = isRequestSupported && new Request(url, resolvedOptions);\n\n let response = await (isRequestSupported\n ? _fetch(request, fetchOptions)\n : _fetch(url, resolvedOptions));\n\n const isStreamResponse =\n supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach((prop) => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] =\n (onDownloadProgress &&\n progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n )) ||\n [];\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](\n response,\n config\n );\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request,\n });\n });\n } catch (err) {\n unsubscribe && unsubscribe();\n\n if (err && err.name === 'TypeError' && /Load failed|fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError(\n 'Network Error',\n AxiosError.ERR_NETWORK,\n config,\n request,\n err && err.response\n ),\n {\n cause: err.cause || err,\n }\n );\n }\n\n throw AxiosError.from(err, err && err.code, config, request, err && err.response);\n }\n };\n};\n\nconst seedCache = new Map();\n\nexport const getFetch = (config) => {\n let env = (config && config.env) || {};\n const { fetch, Request, Response } = env;\n const seeds = [Request, Response, fetch];\n\n let len = seeds.length,\n i = len,\n seed,\n target,\n map = seedCache;\n\n while (i--) {\n seed = seeds[i];\n target = map.get(seed);\n\n target === undefined && map.set(seed, (target = i ? new Map() : factory(env)));\n\n map = target;\n }\n\n return target;\n};\n\nconst adapter = getFetch();\n\nexport default adapter;\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport * as fetchAdapter from './fetch.js';\nimport AxiosError from '../core/AxiosError.js';\n\n/**\n * Known adapters mapping.\n * Provides environment-specific adapters for Axios:\n * - `http` for Node.js\n * - `xhr` for browsers\n * - `fetch` for fetch API-based requests\n *\n * @type {Object}\n */\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: {\n get: fetchAdapter.getFetch,\n },\n};\n\n// Assign adapter names for easier debugging and identification\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', { value });\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', { value });\n }\n});\n\n/**\n * Render a rejection reason string for unknown or unsupported adapters\n *\n * @param {string} reason\n * @returns {string}\n */\nconst renderReason = (reason) => `- ${reason}`;\n\n/**\n * Check if the adapter is resolved (function, null, or false)\n *\n * @param {Function|null|false} adapter\n * @returns {boolean}\n */\nconst isResolvedHandle = (adapter) =>\n utils.isFunction(adapter) || adapter === null || adapter === false;\n\n/**\n * Get the first suitable adapter from the provided list.\n * Tries each adapter in order until a supported one is found.\n * Throws an AxiosError if no adapter is suitable.\n *\n * @param {Array|string|Function} adapters - Adapter(s) by name or function.\n * @param {Object} config - Axios request configuration\n * @throws {AxiosError} If no suitable adapter is available\n * @returns {Function} The resolved adapter function\n */\nfunction getAdapter(adapters, config) {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const { length } = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter && (utils.isFunction(adapter) || (adapter = adapter.get(config)))) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n const reasons = Object.entries(rejectedReasons).map(\n ([id, state]) =>\n `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length\n ? reasons.length > 1\n ? 'since :\\n' + reasons.map(renderReason).join('\\n')\n : ' ' + renderReason(reasons[0])\n : 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n}\n\n/**\n * Exports Axios adapters and utility to resolve an adapter\n */\nexport default {\n /**\n * Resolve an adapter from a list of adapter names or functions.\n * @type {Function}\n */\n getAdapter,\n\n /**\n * Exposes all known adapters\n * @type {Object}\n */\n adapters: knownAdapters,\n};\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from '../adapters/adapters.js';\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(config, config.transformRequest);\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter, config);\n\n return adapter(config).then(\n function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(config, config.transformResponse, response);\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n },\n function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n }\n );\n}\n","export const VERSION = \"1.15.1\";","'use strict';\n\nimport { VERSION } from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return (\n '[Axios v' +\n VERSION +\n \"] Transitional option '\" +\n opt +\n \"'\" +\n desc +\n (message ? '. ' + message : '')\n );\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\nvalidators.spelling = function spelling(correctSpelling) {\n return (value, opt) => {\n // eslint-disable-next-line no-console\n console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);\n return true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError(\n 'option ' + opt + ' must be ' + result,\n AxiosError.ERR_BAD_OPTION_VALUE\n );\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators,\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\nimport transitionalDefaults from '../defaults/transitional.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig || {};\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager(),\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy = {};\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = (() => {\n if (!dummy.stack) {\n return '';\n }\n\n const firstNewlineIndex = dummy.stack.indexOf('\\n');\n\n return firstNewlineIndex === -1 ? '' : dummy.stack.slice(firstNewlineIndex + 1);\n })();\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack) {\n const firstNewlineIndex = stack.indexOf('\\n');\n const secondNewlineIndex =\n firstNewlineIndex === -1 ? -1 : stack.indexOf('\\n', firstNewlineIndex + 1);\n const stackWithoutTwoTopLines =\n secondNewlineIndex === -1 ? '' : stack.slice(secondNewlineIndex + 1);\n\n if (!String(err.stack).endsWith(stackWithoutTwoTopLines)) {\n err.stack += '\\n' + stack;\n }\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const { transitional, paramsSerializer, headers } = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(\n transitional,\n {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean),\n legacyInterceptorReqResOrdering: validators.transitional(validators.boolean),\n },\n false\n );\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer,\n };\n } else {\n validator.assertOptions(\n paramsSerializer,\n {\n encode: validators.function,\n serialize: validators.function,\n },\n true\n );\n }\n }\n\n // Set config.allowAbsoluteUrls\n if (config.allowAbsoluteUrls !== undefined) {\n // do nothing\n } else if (this.defaults.allowAbsoluteUrls !== undefined) {\n config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls;\n } else {\n config.allowAbsoluteUrls = true;\n }\n\n validator.assertOptions(\n config,\n {\n baseUrl: validators.spelling('baseURL'),\n withXsrfToken: validators.spelling('withXSRFToken'),\n },\n true\n );\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(headers.common, headers[config.method]);\n\n headers &&\n utils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], (method) => {\n delete headers[method];\n });\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n const transitional = config.transitional || transitionalDefaults;\n const legacyInterceptorReqResOrdering =\n transitional && transitional.legacyInterceptorReqResOrdering;\n\n if (legacyInterceptorReqResOrdering) {\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n } else {\n requestInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n }\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift(...requestInterceptorChain);\n chain.push(...responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function (url, config) {\n return this.request(\n mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data,\n })\n );\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(\n mergeConfig(config || {}, {\n method,\n headers: isForm\n ? {\n 'Content-Type': 'multipart/form-data',\n }\n : {},\n url,\n data,\n })\n );\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then((cancel) => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = (onfulfilled) => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise((resolve) => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel,\n };\n }\n}\n\nexport default CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * const args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && payload.isAxiosError === true;\n}\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n WebServerIsDown: 521,\n ConnectionTimedOut: 522,\n OriginIsUnreachable: 523,\n TimeoutOccurred: 524,\n SslHandshakeFailed: 525,\n InvalidSslCertificate: 526,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport { VERSION } from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from './core/AxiosHeaders.js';\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, { allOwnKeys: true });\n\n // Copy context to instance\n utils.extend(instance, context, null, { allOwnKeys: true });\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = (thing) => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios;\n"],"names":["bind","fn","thisArg","wrap","apply","arguments","toString","Object","prototype","getPrototypeOf","iterator","Symbol","toStringTag","kindOf","cache","thing","str","call","slice","toLowerCase","create","kindOfTest","type","typeOfTest","_typeof","isArray","Array","isUndefined","isBuffer","val","constructor","isFunction","isArrayBuffer","isArrayBufferView","result","ArrayBuffer","isView","buffer","isString","isNumber","isObject","isBoolean","isPlainObject","isEmptyObject","keys","length","e","isDate","isFile","isReactNativeBlob","value","uri","isReactNative","formData","getParts","isBlob","isFileList","isStream","pipe","getGlobal","globalThis","self","window","global","G","FormDataCtor","FormData","undefined","isFormData","proto","append","kind","isURLSearchParams","_map","map","_map2","_slicedToArray","isReadableStream","isRequest","isResponse","isHeaders","trim","replace","forEach","obj","_ref","_ref$allOwnKeys","allOwnKeys","i","l","getOwnPropertyNames","len","key","findKey","_key","_global","isContextDefined","context","merge","_ref2","caseless","skipUndefined","assignValue","targetKey","extend","a","b","_ref3","defineProperty","writable","enumerable","configurable","stripBOM","content","charCodeAt","inherits","superConstructor","props","descriptors","assign","toFlatObject","sourceObj","destObj","filter","propFilter","prop","merged","endsWith","searchString","position","String","lastIndex","indexOf","toArray","arr","isTypedArray","TypedArray","Uint8Array","forEachEntry","generator","_iterator","next","done","pair","matchAll","regExp","matches","exec","push","isHTMLForm","toCamelCase","replacer","m","p1","p2","toUpperCase","hasOwnProperty","_ref4","isRegExp","reduceDescriptors","reducer","getOwnPropertyDescriptors","reducedDescriptors","descriptor","name","ret","defineProperties","freezeMethods","set","Error","toObjectSet","arrayOrString","delimiter","define","split","noop","toFiniteNumber","defaultValue","Number","isFinite","isSpecCompliantForm","toJSONObject","stack","visit","source","target","reducedValue","isAsyncFn","isThenable","then","_setImmediate","setImmediateSupported","postMessageSupported","setImmediate","token","callbacks","addEventListener","_ref5","data","shift","cb","postMessage","concat","Math","random","setTimeout","asap","queueMicrotask","process","nextTick","isIterable","hasOwnProp","AxiosError","_Error","message","code","config","request","response","_this","_classCallCheck","_callSuper","isAxiosError","status","_inherits","_createClass","toJSON","description","number","fileName","lineNumber","columnNumber","utils","from","error","customProps","axiosError","cause","_wrapNativeSuper","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL","ERR_FORM_DATA_DEPTH_EXCEEDED","isVisitable","removeBrackets","renderKey","path","dots","each","join","isFlatArray","some","predicates","test","toFormData","options","TypeError","metaTokens","indexes","defined","option","visitor","defaultVisitor","_Blob","Blob","maxDepth","useBlob","convertValue","toISOString","Buffer","JSON","stringify","el","index","exposedHelpers","build","depth","pop","encode","charMap","encodeURIComponent","match","AxiosURLSearchParams","params","_pairs","encoder","_encode","buildURL","url","_options","serialize","serializeFn","serializedParams","hashmarkIndex","InterceptorManager","handlers","use","fulfilled","rejected","synchronous","runWhen","eject","id","clear","forEachHandler","h","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","legacyInterceptorReqResOrdering","URLSearchParams","isBrowser","classes","protocols","hasBrowserEnv","document","_navigator","navigator","hasStandardBrowserEnv","product","hasStandardBrowserWebWorkerEnv","WorkerGlobalScope","importScripts","origin","location","href","_objectSpread","platform","toURLEncodedForm","helpers","isNode","parsePropPath","arrayToObject","formDataToJSON","buildPath","isNumericKey","isLast","entries","own","stringifySafely","rawValue","parser","parse","defaults","transitional","transitionalDefaults","adapter","transformRequest","headers","contentType","getContentType","hasJSONContentType","isObjectPayload","setContentType","formSerializer","env","_FormData","transformResponse","responseType","JSONRequested","strictJSONParsing","timeout","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","Accept","method","ignoreDuplicateOf","rawHeaders","parsed","line","substring","$internals","INVALID_HEADER_VALUE_CHARS_RE","trimSPorHTAB","start","end","normalizeHeader","header","sanitizeHeaderValue","normalizeValue","parseTokens","tokens","tokensRE","isValidHeaderName","matchHeaderValue","isHeaderNameFilter","formatHeader","w","char","buildAccessors","accessorName","methodName","arg1","arg2","arg3","AxiosHeaders","valueOrRewrite","rewrite","setHeader","_value","_header","_rewrite","lHeader","setHeaders","parseHeaders","dest","_createForOfIteratorHelper","_step","s","n","entry","_toConsumableArray","err","f","get","has","matcher","delete","deleted","deleteHeader","normalize","format","normalized","_this$constructor","_len","targets","asStrings","getSetCookie","first","computed","_len2","_key2","accessor","internals","accessors","defineAccessor","mapped","headerValue","transformData","fns","transform","isCancel","__CANCEL__","CanceledError","_AxiosError","settle","resolve","reject","floor","parseProtocol","speedometer","samplesCount","min","bytes","timestamps","head","tail","firstSampleTS","chunkLength","now","Date","startedAt","bytesCount","passed","round","throttle","freq","timestamp","threshold","lastArgs","timer","invoke","args","clearTimeout","throttled","flush","progressEventReducer","listener","isDownloadStream","bytesNotified","_speedometer","rawLoaded","loaded","total","lengthComputable","progressBytes","max","rate","_defineProperty","progress","estimated","event","progressEventDecorator","asyncDecorator","isMSIE","URL","protocol","host","port","userAgent","write","expires","domain","secure","sameSite","cookie","toUTCString","read","RegExp","decodeURIComponent","remove","isAbsoluteURL","combineURLs","baseURL","relativeURL","buildFullPath","requestedURL","allowAbsoluteUrls","isRelativeUrl","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","paramsSerializer","timeoutMessage","withCredentials","withXSRFToken","onUploadProgress","onDownloadProgress","decompress","beforeRedirect","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding","computeConfigValue","configValue","newConfig","auth","btoa","username","password","unescape","getHeaders","formHeaders","allowedHeaders","includes","shouldSendXSRF","isURLSameOrigin","xsrfValue","cookies","isXHRAdapterSupported","XMLHttpRequest","Promise","dispatchXhrRequest","_config","resolveConfig","requestData","requestHeaders","onCanceled","uploadThrottled","downloadThrottled","flushUpload","flushDownload","unsubscribe","signal","removeEventListener","open","onloadend","responseHeaders","getAllResponseHeaders","responseData","responseText","statusText","_resolve","_reject","onreadystatechange","handleLoad","readyState","responseURL","onabort","handleAbort","onerror","handleError","msg","ontimeout","handleTimeout","timeoutErrorMessage","setRequestHeader","_progressEventReducer","_progressEventReducer2","upload","_progressEventReducer3","_progressEventReducer4","cancel","abort","subscribe","aborted","send","composeSignals","signals","_signals","Boolean","controller","AbortController","reason","streamChunk","_regenerator","chunk","chunkSize","pos","_context","byteLength","readBytes","_wrapAsyncGenerator","_callee","iterable","_iteratorAbruptCompletion","_didIteratorError","_iteratorError","_t","_context2","p","_asyncIterator","readStream","_awaitAsyncGenerator","v","d","_regeneratorValues","_asyncGeneratorDelegate","_x","_x2","_callee2","stream","reader","_yield$_awaitAsyncGen","_context3","asyncIterator","getReader","_x3","trackStream","onProgress","onFinish","_onFinish","ReadableStream","pull","_asyncToGenerator","_callee3","_yield$iterator$next","_done","loadedBytes","_t2","_context4","close","enqueue","highWaterMark","DEFAULT_CHUNK_SIZE","globalFetchAPI","Request","Response","_utils$global","TextEncoder","factory","_env","envFetch","fetch","isFetchSupported","isRequestSupported","isResponseSupported","isReadableStreamSupported","encodeText","arrayBuffer","supportsRequestStream","duplexAccessed","body","duplex","hasContentType","supportsResponseStream","resolvers","res","getBodyLength","_request","size","resolveBodyLength","getContentLength","_x4","_callee4","_resolveConfig","_resolveConfig$withCr","fetchOptions","_fetch","composedSignal","requestContentLength","contentTypeHeader","_progressEventDecorat","_progressEventDecorat2","isCredentialsSupported","resolvedOptions","isStreamResponse","responseContentLength","_ref6","_ref7","_onProgress","_flush","_t3","_t4","_t5","toAbortSignal","credentials","_x5","seedCache","Map","getFetch","seeds","seed","knownAdapters","http","httpAdapter","xhr","xhrAdapter","fetchAdapter","renderReason","isResolvedHandle","getAdapter","adapters","_adapters","nameOrAdapter","rejectedReasons","reasons","state","throwIfCancellationRequested","throwIfRequested","dispatchRequest","onAdapterResolution","onAdapterRejection","VERSION","validators","validator","deprecatedWarnings","version","formatMessage","opt","desc","opts","console","warn","spelling","correctSpelling","assertOptions","schema","allowUnknown","Axios","instanceConfig","interceptors","_request2","configOrUrl","dummy","firstNewlineIndex","secondNewlineIndex","stackWithoutTwoTopLines","captureStackTrace","baseUrl","withXsrfToken","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","unshiftRequestInterceptors","interceptor","unshift","responseInterceptorChain","pushResponseInterceptors","promise","chain","onFulfilled","onRejected","getUri","fullPath","forEachMethodNoData","forEachMethodWithData","generateHTTPMethod","isForm","httpMethod","CancelToken","executor","resolvePromise","promiseExecutor","_listeners","onfulfilled","splice","c","spread","callback","payload","HttpStatusCode","Continue","SwitchingProtocols","Processing","EarlyHints","Ok","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","WebServerIsDown","ConnectionTimedOut","OriginIsUnreachable","TimeoutOccurred","SslHandshakeFailed","InvalidSslCertificate","createInstance","defaultConfig","instance","axios","Cancel","all","promises","formToJSON"],"mappings":"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"} \ No newline at end of file diff --git a/server/api/node_modules/axios/dist/axios.min.js b/server/api/node_modules/axios/dist/axios.min.js new file mode 100644 index 0000000..cabbee5 --- /dev/null +++ b/server/api/node_modules/axios/dist/axios.min.js @@ -0,0 +1,5 @@ +/*! Axios v1.15.1 Copyright (c) 2026 Matt Zabriskie and contributors */ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).axios=t()}(this,function(){"use strict";function e(e,t){this.v=e,this.k=t}function t(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n3?(o=h===r)&&(s=i[(u=i[4])?5:(u=3,3)],i[4]=i[5]=e):i[0]<=p&&((o=n<2&&pr||r>h)&&(i[4]=n,i[5]=r,d.n=h,u=0))}if(o||n>1)return a;throw l=!0,r}return function(o,f,h){if(c>1)throw TypeError("Generator is already running");for(l&&1===f&&p(f,h),u=f,s=h;(t=u<2?e:s)||!l;){i||(u?u<3?(u>1&&(d.n=-1),p(u,s)):d.n=s:d.v=s);try{if(c=2,i){if(u||(o="next"),t=i[o]){if(!(t=t.call(i,s)))throw TypeError("iterator result is not an object");if(!t.done)return t;s=t.value,u<2&&(u=0)}else 1===u&&(t=i.return)&&t.call(i),u<2&&(s=TypeError("The iterator does not provide a '"+o+"' method"),u=1);i=e}else if((t=(l=d.n<0)?s:n.call(r,d))!==a)break}catch(t){i=e,u=1,s=t}finally{c=1}}return{value:t,done:l}}}(n,o,i),!0),c}var a={};function u(){}function s(){}function c(){}t=Object.getPrototypeOf;var f=[][r]?t(t([][r]())):(g(t={},r,function(){return this}),t),l=c.prototype=u.prototype=Object.create(f);function d(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,c):(e.__proto__=c,g(e,o,"GeneratorFunction")),e.prototype=Object.create(l),e}return s.prototype=c,g(l,"constructor",c),g(c,"constructor",s),s.displayName="GeneratorFunction",g(c,o,"GeneratorFunction"),g(l),g(l,o,"Generator"),g(l,r,function(){return this}),g(l,"toString",function(){return"[object Generator]"}),(m=function(){return{w:i,m:d}})()}function g(e,t,n,r){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}g=function(e,t,n,r){function i(t,n){g(e,t,function(e){return this._invoke(t,n,e)})}t?o?o(e,t,{value:n,enumerable:!r,configurable:!r,writable:!r}):e[t]=n:(i("next",0),i("throw",1),i("return",2))},g(e,t,n,r)}function w(e){if(null!=e){var t=e["function"==typeof Symbol&&Symbol.iterator||"@@iterator"],n=0;if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length))return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}}}throw new TypeError(typeof e+" is not iterable")}function O(e,t){return O=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},O(e,t)}function E(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,i,a,u=[],s=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(r=i.call(n)).done)&&(u.push(r.value),u.length!==t);s=!0);}catch(e){c=!0,o=e}finally{try{if(!s&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(c)throw o}}return u}}(e,t)||A(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function R(e){return function(e){if(Array.isArray(e))return t(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||A(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function S(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t);if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}function T(e){return T="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},T(e)}function A(e,n){if(e){if("string"==typeof e)return t(e,n);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?t(e,n):void 0}}function j(e){return function(){return new k(e.apply(this,arguments))}}function k(t){var n,r;function o(n,r){try{var a=t[n](r),u=a.value,s=u instanceof e;Promise.resolve(s?u.v:u).then(function(e){if(s){var r="return"===n?"return":"next";if(!u.k||e.done)return o(r,e);e=t[r](e).value}i(a.done?"return":"normal",e)},function(e){o("throw",e)})}catch(e){i("throw",e)}}function i(e,t){switch(e){case"return":n.resolve({value:t,done:!0});break;case"throw":n.reject(t);break;default:n.resolve({value:t,done:!1})}(n=n.next)?o(n.key,n.arg):r=null}this._invoke=function(e,t){return new Promise(function(i,a){var u={key:e,arg:t,resolve:i,reject:a,next:null};r?r=r.next=u:(n=r=u,o(e,t))})},"function"!=typeof t.return&&(this.return=void 0)}function _(e){var t="function"==typeof Map?new Map:void 0;return _=function(e){if(null===e||!function(e){try{return-1!==Function.toString.call(e).indexOf("[native code]")}catch(t){return"function"==typeof e}}(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return function(e,t,n){if(v())return Reflect.construct.apply(null,arguments);var r=[null];r.push.apply(r,t);var o=new(e.bind.apply(e,r));return n&&O(o,n.prototype),o}(e,arguments,p(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),O(n,e)},_(e)}function P(e,t){return function(){return e.apply(t,arguments)}}k.prototype["function"==typeof Symbol&&Symbol.asyncIterator||"@@asyncIterator"]=function(){return this},k.prototype.next=function(e){return this._invoke("next",e)},k.prototype.throw=function(e){return this._invoke("throw",e)},k.prototype.return=function(e){return this._invoke("return",e)};var x,C=Object.prototype.toString,N=Object.getPrototypeOf,D=Symbol.iterator,U=Symbol.toStringTag,F=(x=Object.create(null),function(e){var t=C.call(e);return x[t]||(x[t]=t.slice(8,-1).toLowerCase())}),B=function(e){return e=e.toLowerCase(),function(t){return F(t)===e}},L=function(e){return function(t){return T(t)===e}},I=Array.isArray,q=L("undefined");function M(e){return null!==e&&!q(e)&&null!==e.constructor&&!q(e.constructor)&&J(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}var z=B("ArrayBuffer");var H=L("string"),J=L("function"),W=L("number"),K=function(e){return null!==e&&"object"===T(e)},V=function(e){if("object"!==F(e))return!1;var t=N(e);return!(null!==t&&t!==Object.prototype&&null!==Object.getPrototypeOf(t)||U in e||D in e)},X=B("Date"),G=B("File"),$=B("Blob"),Q=B("FileList");var Y="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},Z=void 0!==Y.FormData?Y.FormData:void 0,ee=B("URLSearchParams"),te=E(["ReadableStream","Request","Response","Headers"].map(B),4),ne=te[0],re=te[1],oe=te[2],ie=te[3];function ae(e,t){var n,r,o=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).allOwnKeys,i=void 0!==o&&o;if(null!=e)if("object"!==T(e)&&(e=[e]),I(e))for(n=0,r=e.length;n0;)if(t===(n=r[o]).toLowerCase())return n;return null}var se="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:global,ce=function(e){return!q(e)&&e!==se};var fe,le=(fe="undefined"!=typeof Uint8Array&&N(Uint8Array),function(e){return fe&&e instanceof fe}),de=B("HTMLFormElement"),pe=function(){var e=Object.prototype.hasOwnProperty;return function(t,n){return e.call(t,n)}}(),he=B("RegExp"),ve=function(e,t){var n=Object.getOwnPropertyDescriptors(e),r={};ae(n,function(n,o){var i;!1!==(i=t(n,o,e))&&(r[o]=i||n)}),Object.defineProperties(e,r)};var ye,be,me,ge,we=B("AsyncFunction"),Oe=(ye="function"==typeof setImmediate,be=J(se.postMessage),ye?setImmediate:be?(me="axios@".concat(Math.random()),ge=[],se.addEventListener("message",function(e){var t=e.source,n=e.data;t===se&&n===me&&ge.length&&ge.shift()()},!1),function(e){ge.push(e),se.postMessage(me,"*")}):function(e){return setTimeout(e)}),Ee="undefined"!=typeof queueMicrotask?queueMicrotask.bind(se):"undefined"!=typeof process&&process.nextTick||Oe,Re={isArray:I,isArrayBuffer:z,isBuffer:M,isFormData:function(e){if(!e)return!1;if(Z&&e instanceof Z)return!0;var t=N(e);if(!t||t===Object.prototype)return!1;if(!J(e.append))return!1;var n=F(e);return"formdata"===n||"object"===n&&J(e.toString)&&"[object FormData]"===e.toString()},isArrayBufferView:function(e){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&z(e.buffer)},isString:H,isNumber:W,isBoolean:function(e){return!0===e||!1===e},isObject:K,isPlainObject:V,isEmptyObject:function(e){if(!K(e)||M(e))return!1;try{return 0===Object.keys(e).length&&Object.getPrototypeOf(e)===Object.prototype}catch(e){return!1}},isReadableStream:ne,isRequest:re,isResponse:oe,isHeaders:ie,isUndefined:q,isDate:X,isFile:G,isReactNativeBlob:function(e){return!(!e||void 0===e.uri)},isReactNative:function(e){return e&&void 0!==e.getParts},isBlob:$,isRegExp:he,isFunction:J,isStream:function(e){return K(e)&&J(e.pipe)},isURLSearchParams:ee,isTypedArray:le,isFileList:Q,forEach:ae,merge:function e(){for(var t=ce(this)&&this||{},n=t.caseless,r=t.skipUndefined,o={},i=function(t,i){if("__proto__"!==i&&"constructor"!==i&&"prototype"!==i){var a=n&&ue(o,i)||i;V(o[a])&&V(t)?o[a]=e(o[a],t):V(t)?o[a]=e({},t):I(t)?o[a]=t.slice():r&&q(t)||(o[a]=t)}},a=0,u=arguments.length;a3&&void 0!==arguments[3]?arguments[3]:{}).allOwnKeys}),e},trim:function(e){return e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")},stripBOM:function(e){return 65279===e.charCodeAt(0)&&(e=e.slice(1)),e},inherits:function(e,t,n,r){e.prototype=Object.create(t.prototype,r),Object.defineProperty(e.prototype,"constructor",{value:e,writable:!0,enumerable:!1,configurable:!0}),Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},toFlatObject:function(e,t,n,r){var o,i,a,u={};if(t=t||{},null==e)return t;do{for(i=(o=Object.getOwnPropertyNames(e)).length;i-- >0;)a=o[i],r&&!r(a,e,t)||u[a]||(t[a]=e[a],u[a]=!0);e=!1!==n&&N(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},kindOf:F,kindOfTest:B,endsWith:function(e,t,n){e=String(e),(void 0===n||n>e.length)&&(n=e.length),n-=t.length;var r=e.indexOf(t,n);return-1!==r&&r===n},toArray:function(e){if(!e)return null;if(I(e))return e;var t=e.length;if(!W(t))return null;for(var n=new Array(t);t-- >0;)n[t]=e[t];return n},forEachEntry:function(e,t){for(var n,r=(e&&e[D]).call(e);(n=r.next())&&!n.done;){var o=n.value;t.call(e,o[0],o[1])}},matchAll:function(e,t){for(var n,r=[];null!==(n=e.exec(t));)r.push(n);return r},isHTMLForm:de,hasOwnProperty:pe,hasOwnProp:pe,reduceDescriptors:ve,freezeMethods:function(e){ve(e,function(t,n){if(J(e)&&-1!==["arguments","caller","callee"].indexOf(n))return!1;var r=e[n];J(r)&&(t.enumerable=!1,"writable"in t?t.writable=!1:t.set||(t.set=function(){throw Error("Can not rewrite read-only method '"+n+"'")}))})},toObjectSet:function(e,t){var n={},r=function(e){e.forEach(function(e){n[e]=!0})};return I(e)?r(e):r(String(e).split(t)),n},toCamelCase:function(e){return e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(e,t,n){return t.toUpperCase()+n})},noop:function(){},toFiniteNumber:function(e,t){return null!=e&&Number.isFinite(e=+e)?e:t},findKey:ue,global:se,isContextDefined:ce,isSpecCompliantForm:function(e){return!!(e&&J(e.append)&&"FormData"===e[U]&&e[D])},toJSONObject:function(e){var t=new Array(10),n=function(e,r){if(K(e)){if(t.indexOf(e)>=0)return;if(M(e))return e;if(!("toJSON"in e)){t[r]=e;var o=I(e)?[]:{};return ae(e,function(e,t){var i=n(e,r+1);!q(i)&&(o[t]=i)}),t[r]=void 0,o}}return e};return n(e,0)},isAsyncFn:we,isThenable:function(e){return e&&(K(e)||J(e))&&J(e.then)&&J(e.catch)},setImmediate:Oe,asap:Ee,isIterable:function(e){return null!=e&&J(e[D])}},Se=function(e){function t(e,n,r,o,i){var a;return c(this,t),a=s(this,t,[e]),Object.defineProperty(a,"message",{value:e,enumerable:!0,writable:!0,configurable:!0}),a.name="AxiosError",a.isAxiosError=!0,n&&(a.code=n),r&&(a.config=r),o&&(a.request=o),i&&(a.response=i,a.status=i.status),a}return h(t,e),l(t,[{key:"toJSON",value:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:Re.toJSONObject(this.config),code:this.code,status:this.status}}}],[{key:"from",value:function(e,n,r,o,i,a){var u=new t(e.message,n||e.code,r,o,i);return u.cause=e,u.name=e.name,null!=e.status&&null==u.status&&(u.status=e.status),a&&Object.assign(u,a),u}}])}(_(Error));Se.ERR_BAD_OPTION_VALUE="ERR_BAD_OPTION_VALUE",Se.ERR_BAD_OPTION="ERR_BAD_OPTION",Se.ECONNABORTED="ECONNABORTED",Se.ETIMEDOUT="ETIMEDOUT",Se.ERR_NETWORK="ERR_NETWORK",Se.ERR_FR_TOO_MANY_REDIRECTS="ERR_FR_TOO_MANY_REDIRECTS",Se.ERR_DEPRECATED="ERR_DEPRECATED",Se.ERR_BAD_RESPONSE="ERR_BAD_RESPONSE",Se.ERR_BAD_REQUEST="ERR_BAD_REQUEST",Se.ERR_CANCELED="ERR_CANCELED",Se.ERR_NOT_SUPPORT="ERR_NOT_SUPPORT",Se.ERR_INVALID_URL="ERR_INVALID_URL",Se.ERR_FORM_DATA_DEPTH_EXCEEDED="ERR_FORM_DATA_DEPTH_EXCEEDED";function Te(e){return Re.isPlainObject(e)||Re.isArray(e)}function Ae(e){return Re.endsWith(e,"[]")?e.slice(0,-2):e}function je(e,t,n){return e?e.concat(t).map(function(e,t){return e=Ae(e),!n&&t?"["+e+"]":e}).join(n?".":""):t}var ke=Re.toFlatObject(Re,{},null,function(e){return/^is[A-Z]/.test(e)});function _e(e,t,n){if(!Re.isObject(e))throw new TypeError("target must be an object");t=t||new FormData;var r=(n=Re.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(e,t){return!Re.isUndefined(t[e])})).metaTokens,o=n.visitor||l,i=n.dots,a=n.indexes,u=n.Blob||"undefined"!=typeof Blob&&Blob,s=void 0===n.maxDepth?100:n.maxDepth,c=u&&Re.isSpecCompliantForm(t);if(!Re.isFunction(o))throw new TypeError("visitor must be a function");function f(e){if(null===e)return"";if(Re.isDate(e))return e.toISOString();if(Re.isBoolean(e))return e.toString();if(!c&&Re.isBlob(e))throw new Se("Blob is not supported. Use a Buffer instead.");return Re.isArrayBuffer(e)||Re.isTypedArray(e)?c&&"function"==typeof Blob?new Blob([e]):Buffer.from(e):e}function l(e,n,o){var u=e;if(Re.isReactNative(t)&&Re.isReactNativeBlob(e))return t.append(je(o,n,i),f(e)),!1;if(e&&!o&&"object"===T(e))if(Re.endsWith(n,"{}"))n=r?n:n.slice(0,-2),e=JSON.stringify(e);else if(Re.isArray(e)&&function(e){return Re.isArray(e)&&!e.some(Te)}(e)||(Re.isFileList(e)||Re.endsWith(n,"[]"))&&(u=Re.toArray(e)))return n=Ae(n),u.forEach(function(e,r){!Re.isUndefined(e)&&null!==e&&t.append(!0===a?je([n],r,i):null===a?n:n+"[]",f(e))}),!1;return!!Te(e)||(t.append(je(o,n,i),f(e)),!1)}var d=[],p=Object.assign(ke,{defaultVisitor:l,convertValue:f,isVisitable:Te});if(!Re.isObject(e))throw new TypeError("data must be an object");return function e(n,r){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;if(!Re.isUndefined(n)){if(i>s)throw new Se("Object is too deeply nested ("+i+" levels). Max depth: "+s,Se.ERR_FORM_DATA_DEPTH_EXCEEDED);if(-1!==d.indexOf(n))throw Error("Circular reference detected in "+r.join("."));d.push(n),Re.forEach(n,function(n,a){!0===(!(Re.isUndefined(n)||null===n)&&o.call(t,n,Re.isString(a)?a.trim():a,r,p))&&e(n,r?r.concat(a):[a],i+1)}),d.pop()}}(e),t}function Pe(e){var t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"};return encodeURIComponent(e).replace(/[!'()~]|%20/g,function(e){return t[e]})}function xe(e,t){this._pairs=[],e&&_e(e,this,t)}var Ce=xe.prototype;function Ne(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function De(e,t,n){if(!t)return e;var r,o=n&&n.encode||Ne,i=Re.isFunction(n)?{serialize:n}:n,a=i&&i.serialize;if(r=a?a(t,i):Re.isURLSearchParams(t)?t.toString():new xe(t,i).toString(o)){var u=e.indexOf("#");-1!==u&&(e=e.slice(0,u)),e+=(-1===e.indexOf("?")?"?":"&")+r}return e}Ce.append=function(e,t){this._pairs.push([e,t])},Ce.toString=function(e){var t=e?function(t){return e.call(this,t,Pe)}:Pe;return this._pairs.map(function(e){return t(e[0])+"="+t(e[1])},"").join("&")};var Ue=function(){return l(function e(){c(this,e),this.handlers=[]},[{key:"use",value:function(e,t,n){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1}},{key:"eject",value:function(e){this.handlers[e]&&(this.handlers[e]=null)}},{key:"clear",value:function(){this.handlers&&(this.handlers=[])}},{key:"forEach",value:function(e){Re.forEach(this.handlers,function(t){null!==t&&e(t)})}}])}(),Fe={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1,legacyInterceptorReqResOrdering:!0},Be={isBrowser:!0,classes:{URLSearchParams:"undefined"!=typeof URLSearchParams?URLSearchParams:xe,FormData:"undefined"!=typeof FormData?FormData:null,Blob:"undefined"!=typeof Blob?Blob:null},protocols:["http","https","file","blob","url","data"]},Le="undefined"!=typeof window&&"undefined"!=typeof document,Ie="object"===("undefined"==typeof navigator?"undefined":T(navigator))&&navigator||void 0,qe=Le&&(!Ie||["ReactNative","NativeScript","NS"].indexOf(Ie.product)<0),Me="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,ze=Le&&window.location.href||"http://localhost",He=b(b({},Object.freeze({__proto__:null,hasBrowserEnv:Le,hasStandardBrowserEnv:qe,hasStandardBrowserWebWorkerEnv:Me,navigator:Ie,origin:ze})),Be);function Je(e){function t(e,n,r,o){var i=e[o++];if("__proto__"===i)return!0;var a=Number.isFinite(+i),u=o>=e.length;return i=!i&&Re.isArray(r)?r.length:i,u?(Re.hasOwnProp(r,i)?r[i]=Re.isArray(r[i])?r[i].concat(n):[r[i],n]:r[i]=n,!a):(r[i]&&Re.isObject(r[i])||(r[i]=[]),t(e,n,r[i],o)&&Re.isArray(r[i])&&(r[i]=function(e){var t,n,r={},o=Object.keys(e),i=o.length;for(t=0;t-1,i=Re.isObject(e);if(i&&Re.isHTMLForm(e)&&(e=new FormData(e)),Re.isFormData(e))return o?JSON.stringify(Je(e)):e;if(Re.isArrayBuffer(e)||Re.isBuffer(e)||Re.isStream(e)||Re.isFile(e)||Re.isBlob(e)||Re.isReadableStream(e))return e;if(Re.isArrayBufferView(e))return e.buffer;if(Re.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();if(i){var a=We(this,"formSerializer");if(r.indexOf("application/x-www-form-urlencoded")>-1)return function(e,t){return _e(e,new He.classes.URLSearchParams,b({visitor:function(e,t,n,r){return He.isNode&&Re.isBuffer(e)?(this.append(t,e.toString("base64")),!1):r.defaultVisitor.apply(this,arguments)}},t))}(e,a).toString();if((n=Re.isFileList(e))||r.indexOf("multipart/form-data")>-1){var u=We(this,"env"),s=u&&u.FormData;return _e(n?{"files[]":e}:e,s&&new s,a)}}return i||o?(t.setContentType("application/json",!1),function(e,t,n){if(Re.isString(e))try{return(t||JSON.parse)(e),Re.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(n||JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){var t=We(this,"transitional")||Ke.transitional,n=t&&t.forcedJSONParsing,r=We(this,"responseType"),o="json"===r;if(Re.isResponse(e)||Re.isReadableStream(e))return e;if(e&&Re.isString(e)&&(n&&!r||o)){var i=!(t&&t.silentJSONParsing)&&o;try{return JSON.parse(e,We(this,"parseReviver"))}catch(e){if(i){if("SyntaxError"===e.name)throw Se.from(e,Se.ERR_BAD_RESPONSE,this,null,We(this,"response"));throw e}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:He.classes.FormData,Blob:He.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};Re.forEach(["delete","get","head","post","put","patch"],function(e){Ke.headers[e]={}});var Ve=Re.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),Xe=Symbol("internals"),Ge=/[^\x09\x20-\x7E\x80-\xFF]/g;function $e(e){return e&&String(e).trim().toLowerCase()}function Qe(e){return!1===e||null==e?e:Re.isArray(e)?e.map(Qe):function(e){for(var t=0,n=e.length;tt;){var o=e.charCodeAt(n-1);if(9!==o&&32!==o)break;n-=1}return 0===t&&n===e.length?e:e.slice(t,n)}(String(e).replace(Ge,""))}function Ye(e,t,n,r,o){return Re.isFunction(r)?r.call(this,t,n):(o&&(t=n),Re.isString(t)?Re.isString(r)?-1!==t.indexOf(r):Re.isRegExp(r)?r.test(t):void 0:void 0)}var Ze=function(){return l(function e(t){c(this,e),t&&this.set(t)},[{key:"set",value:function(e,t,n){var r=this;function o(e,t,n){var o=$e(t);if(!o)throw new Error("header name must be a non-empty string");var i=Re.findKey(r,o);(!i||void 0===r[i]||!0===n||void 0===n&&!1!==r[i])&&(r[i||t]=Qe(e))}var i=function(e,t){return Re.forEach(e,function(e,n){return o(e,n,t)})};if(Re.isPlainObject(e)||e instanceof this.constructor)i(e,t);else if(Re.isString(e)&&(e=e.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim()))i(function(e){var t,n,r,o={};return e&&e.split("\n").forEach(function(e){r=e.indexOf(":"),t=e.substring(0,r).trim().toLowerCase(),n=e.substring(r+1).trim(),!t||o[t]&&Ve[t]||("set-cookie"===t?o[t]?o[t].push(n):o[t]=[n]:o[t]=o[t]?o[t]+", "+n:n)}),o}(e),t);else if(Re.isObject(e)&&Re.isIterable(e)){var a,u,s,c={},f=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=A(e))||t){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,u=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){u=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(u)throw i}}}}(e);try{for(f.s();!(s=f.n()).done;){var l=s.value;if(!Re.isArray(l))throw TypeError("Object iterator must return a key-value pair");c[u=l[0]]=(a=c[u])?Re.isArray(a)?[].concat(R(a),[l[1]]):[a,l[1]]:l[1]}}catch(e){f.e(e)}finally{f.f()}i(c,t)}else null!=e&&o(t,e,n);return this}},{key:"get",value:function(e,t){if(e=$e(e)){var n=Re.findKey(this,e);if(n){var r=this[n];if(!t)return r;if(!0===t)return function(e){for(var t,n=Object.create(null),r=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;t=r.exec(e);)n[t[1]]=t[2];return n}(r);if(Re.isFunction(t))return t.call(this,r,n);if(Re.isRegExp(t))return t.exec(r);throw new TypeError("parser must be boolean|regexp|function")}}}},{key:"has",value:function(e,t){if(e=$e(e)){var n=Re.findKey(this,e);return!(!n||void 0===this[n]||t&&!Ye(0,this[n],n,t))}return!1}},{key:"delete",value:function(e,t){var n=this,r=!1;function o(e){if(e=$e(e)){var o=Re.findKey(n,e);!o||t&&!Ye(0,n[o],o,t)||(delete n[o],r=!0)}}return Re.isArray(e)?e.forEach(o):o(e),r}},{key:"clear",value:function(e){for(var t=Object.keys(this),n=t.length,r=!1;n--;){var o=t[n];e&&!Ye(0,this[o],o,e,!0)||(delete this[o],r=!0)}return r}},{key:"normalize",value:function(e){var t=this,n={};return Re.forEach(this,function(r,o){var i=Re.findKey(n,o);if(i)return t[i]=Qe(r),void delete t[o];var a=e?function(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,function(e,t,n){return t.toUpperCase()+n})}(o):String(o).trim();a!==o&&delete t[o],t[a]=Qe(r),n[a]=!0}),this}},{key:"concat",value:function(){for(var e,t=arguments.length,n=new Array(t),r=0;r1?n-1:0),o=1;o2&&void 0!==arguments[2]?arguments[2]:3,r=0,o=function(e,t){e=e||10;var n,r=new Array(e),o=new Array(e),i=0,a=0;return t=void 0!==t?t:1e3,function(u){var s=Date.now(),c=o[a];n||(n=s),r[i]=u,o[i]=s;for(var f=a,l=0;f!==i;)l+=r[f++],f%=e;if((i=(i+1)%e)===a&&(a=(a+1)%e),!(s-n1&&void 0!==arguments[1]?arguments[1]:Date.now();o=i,n=null,r&&(clearTimeout(r),r=null),e.apply(void 0,R(t))};return[function(){for(var e=Date.now(),t=e-o,u=arguments.length,s=new Array(u),c=0;c=i?a(s,e):(n=s,r||(r=setTimeout(function(){r=null,a(n)},i-t)))},function(){return n&&a(n)}]}(function(n){var i=n.loaded,a=n.lengthComputable?n.total:void 0,u=null!=a?Math.min(i,a):i,s=Math.max(0,u-r),c=o(s);r=Math.max(r,u);var f=d({loaded:u,total:a,progress:a?u/a:void 0,bytes:s,rate:c||void 0,estimated:c&&a?(a-u)/c:void 0,event:n,lengthComputable:null!=a},t?"download":"upload",!0);e(f)},n)},it=function(e,t){var n=null!=e;return[function(r){return t[0]({lengthComputable:n,total:e,loaded:r})},t[1]]},at=function(e){return function(){for(var t=arguments.length,n=new Array(t),r=0;r1?t-1:0),r=1;r1?"since :\n"+s.map(Pt).join("\n"):" "+Pt(s[0]):"as no adapter specified";throw new Se("There is no suitable adapter to dispatch the request "+c,"ERR_NOT_SUPPORT")}return r},adapters:_t};function Nt(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new nt(null,e)}function Dt(e){return Nt(e),e.headers=Ze.from(e.headers),e.data=et.call(e,e.transformRequest),-1!==["post","put","patch"].indexOf(e.method)&&e.headers.setContentType("application/x-www-form-urlencoded",!1),Ct.getAdapter(e.adapter||Ke.adapter,e)(e).then(function(t){return Nt(e),t.data=et.call(e,e.transformResponse,t),t.headers=Ze.from(t.headers),t},function(t){return tt(t)||(Nt(e),t&&t.response&&(t.response.data=et.call(e,e.transformResponse,t.response),t.response.headers=Ze.from(t.response.headers))),Promise.reject(t)})}var Ut="1.15.1",Ft={};["object","boolean","number","function","string","symbol"].forEach(function(e,t){Ft[e]=function(n){return T(n)===e||"a"+(t<1?"n ":" ")+e}});var Bt={};Ft.transitional=function(e,t,n){function r(e,t){return"[Axios v"+Ut+"] Transitional option '"+e+"'"+t+(n?". "+n:"")}return function(n,o,i){if(!1===e)throw new Se(r(o," has been removed"+(t?" in "+t:"")),Se.ERR_DEPRECATED);return t&&!Bt[o]&&(Bt[o]=!0,console.warn(r(o," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(n,o,i)}},Ft.spelling=function(e){return function(t,n){return console.warn("".concat(n," is likely a misspelling of ").concat(e)),!0}};var Lt={assertOptions:function(e,t,n){if("object"!==T(e))throw new Se("options must be an object",Se.ERR_BAD_OPTION_VALUE);for(var r=Object.keys(e),o=r.length;o-- >0;){var i=r[o],a=t[i];if(a){var u=e[i],s=void 0===u||a(u,i,e);if(!0!==s)throw new Se("option "+i+" must be "+s,Se.ERR_BAD_OPTION_VALUE)}else if(!0!==n)throw new Se("Unknown option "+i,Se.ERR_BAD_OPTION)}},validators:Ft},It=Lt.validators,qt=function(){return l(function e(t){c(this,e),this.defaults=t||{},this.interceptors={request:new Ue,response:new Ue}},[{key:"request",value:(e=a(m().m(function e(t,n){var r,o,i,a,u,s;return m().w(function(e){for(;;)switch(e.p=e.n){case 0:return e.p=0,e.n=1,this._request(t,n);case 1:return e.a(2,e.v);case 2:if(e.p=2,(s=e.v)instanceof Error){r={},Error.captureStackTrace?Error.captureStackTrace(r):r=new Error,o=function(){if(!r.stack)return"";var e=r.stack.indexOf("\n");return-1===e?"":r.stack.slice(e+1)}();try{s.stack?o&&(i=o.indexOf("\n"),a=-1===i?-1:o.indexOf("\n",i+1),u=-1===a?"":o.slice(a+1),String(s.stack).endsWith(u)||(s.stack+="\n"+o)):s.stack=o}catch(e){}}throw s;case 3:return e.a(2)}},e,this,[[0,2]])})),function(t,n){return e.apply(this,arguments)})},{key:"_request",value:function(e,t){"string"==typeof e?(t=t||{}).url=e:t=e||{};var n=t=lt(this.defaults,t),r=n.transitional,o=n.paramsSerializer,i=n.headers;void 0!==r&&Lt.assertOptions(r,{silentJSONParsing:It.transitional(It.boolean),forcedJSONParsing:It.transitional(It.boolean),clarifyTimeoutError:It.transitional(It.boolean),legacyInterceptorReqResOrdering:It.transitional(It.boolean)},!1),null!=o&&(Re.isFunction(o)?t.paramsSerializer={serialize:o}:Lt.assertOptions(o,{encode:It.function,serialize:It.function},!0)),void 0!==t.allowAbsoluteUrls||(void 0!==this.defaults.allowAbsoluteUrls?t.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:t.allowAbsoluteUrls=!0),Lt.assertOptions(t,{baseUrl:It.spelling("baseURL"),withXsrfToken:It.spelling("withXSRFToken")},!0),t.method=(t.method||this.defaults.method||"get").toLowerCase();var a=i&&Re.merge(i.common,i[t.method]);i&&Re.forEach(["delete","get","head","post","put","patch","common"],function(e){delete i[e]}),t.headers=Ze.concat(a,i);var u=[],s=!0;this.interceptors.request.forEach(function(e){if("function"!=typeof e.runWhen||!1!==e.runWhen(t)){s=s&&e.synchronous;var n=t.transitional||Fe;n&&n.legacyInterceptorReqResOrdering?u.unshift(e.fulfilled,e.rejected):u.push(e.fulfilled,e.rejected)}});var c,f=[];this.interceptors.response.forEach(function(e){f.push(e.fulfilled,e.rejected)});var l,d=0;if(!s){var p=[Dt.bind(this),void 0];for(p.unshift.apply(p,u),p.push.apply(p,f),l=p.length,c=Promise.resolve(t);d0;)r._listeners[t](e);r._listeners=null}}),this.promise.then=function(e){var t,n=new Promise(function(e){r.subscribe(e),t=e}).then(e);return n.cancel=function(){r.unsubscribe(t)},n},t(function(e,t,o){r.reason||(r.reason=new nt(e,t,o),n(r.reason))})}return l(e,[{key:"throwIfRequested",value:function(){if(this.reason)throw this.reason}},{key:"subscribe",value:function(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]}},{key:"unsubscribe",value:function(e){if(this._listeners){var t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}}},{key:"toAbortSignal",value:function(){var e=this,t=new AbortController,n=function(e){t.abort(e)};return this.subscribe(n),t.signal.unsubscribe=function(){return e.unsubscribe(n)},t.signal}}],[{key:"source",value:function(){var t;return{token:new e(function(e){t=e}),cancel:t}}}])}();var zt={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(zt).forEach(function(e){var t=E(e,2),n=t[0],r=t[1];zt[r]=n});var Ht=function e(t){var n=new qt(t),r=P(qt.prototype.request,n);return Re.extend(r,qt.prototype,n,{allOwnKeys:!0}),Re.extend(r,n,null,{allOwnKeys:!0}),r.create=function(n){return e(lt(t,n))},r}(Ke);return Ht.Axios=qt,Ht.CanceledError=nt,Ht.CancelToken=Mt,Ht.isCancel=tt,Ht.VERSION=Ut,Ht.toFormData=_e,Ht.AxiosError=Se,Ht.Cancel=Ht.CanceledError,Ht.all=function(e){return Promise.all(e)},Ht.spread=function(e){return function(t){return e.apply(null,t)}},Ht.isAxiosError=function(e){return Re.isObject(e)&&!0===e.isAxiosError},Ht.mergeConfig=lt,Ht.AxiosHeaders=Ze,Ht.formToJSON=function(e){return Je(Re.isHTMLForm(e)?new FormData(e):e)},Ht.getAdapter=Ct.getAdapter,Ht.HttpStatusCode=zt,Ht.default=Ht,Ht}); +//# sourceMappingURL=axios.min.js.map diff --git a/server/api/node_modules/axios/dist/axios.min.js.map b/server/api/node_modules/axios/dist/axios.min.js.map new file mode 100644 index 0000000..1d41d12 --- /dev/null +++ b/server/api/node_modules/axios/dist/axios.min.js.map @@ -0,0 +1 @@ +{"version":3,"file":"axios.min.js","sources":["../lib/helpers/bind.js","../lib/utils.js","../lib/core/AxiosError.js","../lib/helpers/toFormData.js","../lib/helpers/AxiosURLSearchParams.js","../lib/helpers/buildURL.js","../lib/core/InterceptorManager.js","../lib/defaults/transitional.js","../lib/platform/browser/index.js","../lib/platform/browser/classes/URLSearchParams.js","../lib/platform/browser/classes/FormData.js","../lib/platform/browser/classes/Blob.js","../lib/platform/common/utils.js","../lib/platform/index.js","../lib/helpers/formDataToJSON.js","../lib/defaults/index.js","../lib/helpers/toURLEncodedForm.js","../lib/helpers/parseHeaders.js","../lib/core/AxiosHeaders.js","../lib/core/transformData.js","../lib/cancel/isCancel.js","../lib/cancel/CanceledError.js","../lib/core/settle.js","../lib/helpers/progressEventReducer.js","../lib/helpers/speedometer.js","../lib/helpers/throttle.js","../lib/helpers/isURLSameOrigin.js","../lib/helpers/cookies.js","../lib/core/buildFullPath.js","../lib/helpers/isAbsoluteURL.js","../lib/helpers/combineURLs.js","../lib/core/mergeConfig.js","../lib/helpers/resolveConfig.js","../lib/adapters/fetch.js","../lib/adapters/xhr.js","../lib/helpers/parseProtocol.js","../lib/helpers/composeSignals.js","../lib/helpers/trackStream.js","../lib/adapters/adapters.js","../lib/helpers/null.js","../lib/core/dispatchRequest.js","../lib/env/data.js","../lib/helpers/validator.js","../lib/core/Axios.js","../lib/cancel/CancelToken.js","../lib/helpers/HttpStatusCode.js","../lib/axios.js","../lib/helpers/spread.js","../lib/helpers/isAxiosError.js"],"sourcesContent":["'use strict';\n\n/**\n * Create a bound version of a function with a specified `this` context\n *\n * @param {Function} fn - The function to bind\n * @param {*} thisArg - The value to be passed as the `this` parameter\n * @returns {Function} A new function that will call the original function with the specified `this` context\n */\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst { toString } = Object.prototype;\nconst { getPrototypeOf } = Object;\nconst { iterator, toStringTag } = Symbol;\n\nconst kindOf = ((cache) => (thing) => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type;\n};\n\nconst typeOfTest = (type) => (thing) => typeof thing === type;\n\n/**\n * Determine if a value is a non-null object\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst { isArray } = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return (\n val !== null &&\n !isUndefined(val) &&\n val.constructor !== null &&\n !isUndefined(val.constructor) &&\n isFunction(val.constructor.isBuffer) &&\n val.constructor.isBuffer(val)\n );\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n result = ArrayBuffer.isView(val);\n } else {\n result = val && val.buffer && isArrayBuffer(val.buffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = (thing) => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (\n (prototype === null ||\n prototype === Object.prototype ||\n Object.getPrototypeOf(prototype) === null) &&\n !(toStringTag in val) &&\n !(iterator in val)\n );\n};\n\n/**\n * Determine if a value is an empty object (safely handles Buffers)\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an empty object, otherwise false\n */\nconst isEmptyObject = (val) => {\n // Early return for non-objects or Buffers to prevent RangeError\n if (!isObject(val) || isBuffer(val)) {\n return false;\n }\n\n try {\n return Object.keys(val).length === 0 && Object.getPrototypeOf(val) === Object.prototype;\n } catch (e) {\n // Fallback for any other objects that might cause RangeError with Object.keys()\n return false;\n }\n};\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a React Native Blob\n * React Native \"blob\": an object with a `uri` attribute. Optionally, it can\n * also have a `name` and `type` attribute to specify filename and content type\n *\n * @see https://github.com/facebook/react-native/blob/26684cf3adf4094eb6c405d345a75bf8c7c0bf88/Libraries/Network/FormData.js#L68-L71\n * \n * @param {*} value The value to test\n * \n * @returns {boolean} True if value is a React Native Blob, otherwise false\n */\nconst isReactNativeBlob = (value) => {\n return !!(value && typeof value.uri !== 'undefined');\n}\n\n/**\n * Determine if environment is React Native\n * ReactNative `FormData` has a non-standard `getParts()` method\n * \n * @param {*} formData The formData to test\n * \n * @returns {boolean} True if environment is React Native, otherwise false\n */\nconst isReactNative = (formData) => formData && typeof formData.getParts !== 'undefined';\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction getGlobal() {\n if (typeof globalThis !== 'undefined') return globalThis;\n if (typeof self !== 'undefined') return self;\n if (typeof window !== 'undefined') return window;\n if (typeof global !== 'undefined') return global;\n return {};\n}\n\nconst G = getGlobal();\nconst FormDataCtor = typeof G.FormData !== 'undefined' ? G.FormData : undefined;\n\nconst isFormData = (thing) => {\n if (!thing) return false;\n if (FormDataCtor && thing instanceof FormDataCtor) return true;\n // Reject plain objects inheriting directly from Object.prototype so prototype-pollution gadgets can't spoof FormData (GHSA-6chq-wfr3-2hj9).\n const proto = getPrototypeOf(thing);\n if (!proto || proto === Object.prototype) return false;\n if (!isFunction(thing.append)) return false;\n const kind = kindOf(thing);\n return kind === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]');\n};\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = [\n 'ReadableStream',\n 'Request',\n 'Response',\n 'Headers',\n].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => {\n return str.trim ? str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n};\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Object} [options]\n * @param {Boolean} [options.allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, { allOwnKeys = false } = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Buffer check\n if (isBuffer(obj)) {\n return;\n }\n\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\n/**\n * Finds a key in an object, case-insensitive, returning the actual key name.\n * Returns null if the object is a Buffer or if no match is found.\n *\n * @param {Object} obj - The object to search.\n * @param {string} key - The key to find (case-insensitive).\n * @returns {?string} The actual key name if found, otherwise null.\n */\nfunction findKey(obj, key) {\n if (isBuffer(obj)) {\n return null;\n }\n\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== 'undefined') return globalThis;\n return typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : global;\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * const result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const { caseless, skipUndefined } = (isContextDefined(this) && this) || {};\n const result = {};\n const assignValue = (val, key) => {\n // Skip dangerous property names to prevent prototype pollution\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return;\n }\n\n const targetKey = (caseless && findKey(result, key)) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else if (!skipUndefined || !isUndefined(val)) {\n result[targetKey] = val;\n }\n };\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Object} [options]\n * @param {Boolean} [options.allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, { allOwnKeys } = {}) => {\n forEach(\n b,\n (val, key) => {\n if (thisArg && isFunction(val)) {\n Object.defineProperty(a, key, {\n value: bind(val, thisArg),\n writable: true,\n enumerable: true,\n configurable: true,\n });\n } else {\n Object.defineProperty(a, key, {\n value: val,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n }\n },\n { allOwnKeys }\n );\n return a;\n};\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xfeff) {\n content = content.slice(1);\n }\n return content;\n};\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n Object.defineProperty(constructor.prototype, 'constructor', {\n value: constructor,\n writable: true,\n enumerable: false,\n configurable: true,\n });\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype,\n });\n props && Object.assign(constructor.prototype, props);\n};\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n};\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n};\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n};\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = ((TypedArray) => {\n // eslint-disable-next-line func-names\n return (thing) => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[iterator];\n\n const _iterator = generator.call(obj);\n\n let result;\n\n while ((result = _iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n};\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n};\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = (str) => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g, function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n });\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (\n ({ hasOwnProperty }) =>\n (obj, prop) =>\n hasOwnProperty.call(obj, prop)\n)(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n};\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error(\"Can not rewrite read-only method '\" + name + \"'\");\n };\n }\n });\n};\n\n/**\n * Converts an array or a delimited string into an object set with values as keys and true as values.\n * Useful for fast membership checks.\n *\n * @param {Array|string} arrayOrString - The array or string to convert.\n * @param {string} delimiter - The delimiter to use if input is a string.\n * @returns {Object} An object with keys from the array or string, values set to true.\n */\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach((value) => {\n obj[value] = true;\n });\n };\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n};\n\nconst noop = () => {};\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite((value = +value)) ? value : defaultValue;\n};\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(\n thing &&\n isFunction(thing.append) &&\n thing[toStringTag] === 'FormData' &&\n thing[iterator]\n );\n}\n\n/**\n * Recursively converts an object to a JSON-compatible object, handling circular references and Buffers.\n *\n * @param {Object} obj - The object to convert.\n * @returns {Object} The JSON-compatible object.\n */\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n //Buffer check\n if (isBuffer(source)) {\n return source;\n }\n\n if (!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n };\n\n return visit(obj, 0);\n};\n\n/**\n * Determines if a value is an async function.\n *\n * @param {*} thing - The value to test.\n * @returns {boolean} True if value is an async function, otherwise false.\n */\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\n/**\n * Determines if a value is thenable (has then and catch methods).\n *\n * @param {*} thing - The value to test.\n * @returns {boolean} True if value is thenable, otherwise false.\n */\nconst isThenable = (thing) =>\n thing &&\n (isObject(thing) || isFunction(thing)) &&\n isFunction(thing.then) &&\n isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\n/**\n * Provides a cross-platform setImmediate implementation.\n * Uses native setImmediate if available, otherwise falls back to postMessage or setTimeout.\n *\n * @param {boolean} setImmediateSupported - Whether setImmediate is supported.\n * @param {boolean} postMessageSupported - Whether postMessage is supported.\n * @returns {Function} A function to schedule a callback asynchronously.\n */\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported\n ? ((token, callbacks) => {\n _global.addEventListener(\n 'message',\n ({ source, data }) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n },\n false\n );\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, '*');\n };\n })(`axios@${Math.random()}`, [])\n : (cb) => setTimeout(cb);\n})(typeof setImmediate === 'function', isFunction(_global.postMessage));\n\n/**\n * Schedules a microtask or asynchronous callback as soon as possible.\n * Uses queueMicrotask if available, otherwise falls back to process.nextTick or _setImmediate.\n *\n * @type {Function}\n */\nconst asap =\n typeof queueMicrotask !== 'undefined'\n ? queueMicrotask.bind(_global)\n : (typeof process !== 'undefined' && process.nextTick) || _setImmediate;\n\n// *********************\n\nconst isIterable = (thing) => thing != null && isFunction(thing[iterator]);\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isEmptyObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isReactNativeBlob,\n isReactNative,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap,\n isIterable,\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\nclass AxiosError extends Error {\n static from(error, code, config, request, response, customProps) {\n const axiosError = new AxiosError(error.message, code || error.code, config, request, response);\n axiosError.cause = error;\n axiosError.name = error.name;\n\n // Preserve status from the original error if not already set from response\n if (error.status != null && axiosError.status == null) {\n axiosError.status = error.status;\n }\n\n customProps && Object.assign(axiosError, customProps);\n return axiosError;\n }\n\n /**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\n constructor(message, code, config, request, response) {\n super(message);\n\n // Make message enumerable to maintain backward compatibility\n // The native Error constructor sets message as non-enumerable,\n // but axios < v1.13.3 had it as enumerable\n Object.defineProperty(this, 'message', {\n value: message,\n enumerable: true,\n writable: true,\n configurable: true,\n });\n\n this.name = 'AxiosError';\n this.isAxiosError = true;\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status;\n }\n }\n\n toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.status,\n };\n }\n}\n\n// This can be changed to static properties as soon as the parser options in .eslint.cjs are updated.\nAxiosError.ERR_BAD_OPTION_VALUE = 'ERR_BAD_OPTION_VALUE';\nAxiosError.ERR_BAD_OPTION = 'ERR_BAD_OPTION';\nAxiosError.ECONNABORTED = 'ECONNABORTED';\nAxiosError.ETIMEDOUT = 'ETIMEDOUT';\nAxiosError.ERR_NETWORK = 'ERR_NETWORK';\nAxiosError.ERR_FR_TOO_MANY_REDIRECTS = 'ERR_FR_TOO_MANY_REDIRECTS';\nAxiosError.ERR_DEPRECATED = 'ERR_DEPRECATED';\nAxiosError.ERR_BAD_RESPONSE = 'ERR_BAD_RESPONSE';\nAxiosError.ERR_BAD_REQUEST = 'ERR_BAD_REQUEST';\nAxiosError.ERR_CANCELED = 'ERR_CANCELED';\nAxiosError.ERR_NOT_SUPPORT = 'ERR_NOT_SUPPORT';\nAxiosError.ERR_INVALID_URL = 'ERR_INVALID_URL';\nAxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED = 'ERR_FORM_DATA_DEPTH_EXCEEDED';\n\nexport default AxiosError;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path\n .concat(key)\n .map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n })\n .join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(\n options,\n {\n metaTokens: true,\n dots: false,\n indexes: false,\n },\n false,\n function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n }\n );\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || (typeof Blob !== 'undefined' && Blob);\n const maxDepth = options.maxDepth === undefined ? 100 : options.maxDepth;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (utils.isBoolean(value)) {\n return value.toString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (utils.isReactNative(formData) && utils.isReactNativeBlob(value)) {\n formData.append(renderKey(path, key, dots), convertValue(value));\n return false;\n }\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value)))\n ) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) &&\n formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true\n ? renderKey([key], index, dots)\n : indexes === null\n ? key\n : key + '[]',\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable,\n });\n\n function build(value, path, depth = 0) {\n if (utils.isUndefined(value)) return;\n\n if (depth > maxDepth) {\n throw new AxiosError(\n 'Object is too deeply nested (' + depth + ' levels). Max depth: ' + maxDepth,\n AxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED\n );\n }\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result =\n !(utils.isUndefined(el) || el === null) &&\n visitor.call(formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers);\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key], depth + 1);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder\n ? function (value) {\n return encoder.call(this, value, encode);\n }\n : encode;\n\n return this._pairs\n .map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '')\n .join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces URL-encoded forms of `:`, `$`, `,`, and spaces with\n * their plain counterparts (`:`, `$`, `,`, `+`).\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val)\n .replace(/%3A/gi, ':')\n .replace(/%24/g, '$')\n .replace(/%2C/gi, ',')\n .replace(/%20/g, '+');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?(object|Function)} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n if (!params) {\n return url;\n }\n\n const _encode = (options && options.encode) || encode;\n\n const _options = utils.isFunction(options)\n ? {\n serialize: options,\n }\n : options;\n\n const serializeFn = _options && _options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, _options);\n } else {\n serializedParams = utils.isURLSearchParams(params)\n ? params.toString()\n : new AxiosURLSearchParams(params, _options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf('#');\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n * @param {Object} options The options for the interceptor, synchronous and runWhen\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null,\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {void}\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false,\n legacyInterceptorReqResOrdering: true,\n};\n","import URLSearchParams from './classes/URLSearchParams.js';\nimport FormData from './classes/FormData.js';\nimport Blob from './classes/Blob.js';\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob,\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data'],\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict';\n\nexport default typeof Blob !== 'undefined' ? Blob : null;\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = (typeof navigator === 'object' && navigator) || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv =\n hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = (hasBrowserEnv && window.location.href) || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n _navigator as navigator,\n origin,\n};\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform,\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map((match) => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = utils.isArray(target[name])\n ? target[name].concat(value)\n : [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\nconst own = (obj, key) => (obj != null && utils.hasOwnProp(obj, key) ? obj[key] : undefined);\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [\n function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data) ||\n utils.isReadableStream(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n const formSerializer = own(this, 'formSerializer');\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, formSerializer).toString();\n }\n\n if (\n (isFileList = utils.isFileList(data)) ||\n contentType.indexOf('multipart/form-data') > -1\n ) {\n const env = own(this, 'env');\n const _FormData = env && env.FormData;\n\n return toFormData(\n isFileList ? { 'files[]': data } : data,\n _FormData && new _FormData(),\n formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n },\n ],\n\n transformResponse: [\n function transformResponse(data) {\n const transitional = own(this, 'transitional') || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const responseType = own(this, 'responseType');\n const JSONRequested = responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (\n data &&\n utils.isString(data) &&\n ((forcedJSONParsing && !responseType) || JSONRequested)\n ) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data, own(this, 'parseReviver'));\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, own(this, 'response'));\n }\n throw e;\n }\n }\n }\n\n return data;\n },\n ],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob,\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n Accept: 'application/json, text/plain, */*',\n 'Content-Type': undefined,\n },\n },\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), {\n visitor: function (value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n },\n ...options,\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age',\n 'authorization',\n 'content-length',\n 'content-type',\n 'etag',\n 'expires',\n 'from',\n 'host',\n 'if-modified-since',\n 'if-unmodified-since',\n 'last-modified',\n 'location',\n 'max-forwards',\n 'proxy-authorization',\n 'referer',\n 'retry-after',\n 'user-agent',\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default (rawHeaders) => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders &&\n rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nconst INVALID_HEADER_VALUE_CHARS_RE = /[^\\x09\\x20-\\x7E\\x80-\\xFF]/g;\n\nfunction trimSPorHTAB(str) {\n let start = 0;\n let end = str.length;\n\n while (start < end) {\n const code = str.charCodeAt(start);\n\n if (code !== 0x09 && code !== 0x20) {\n break;\n }\n\n start += 1;\n }\n\n while (end > start) {\n const code = str.charCodeAt(end - 1);\n\n if (code !== 0x09 && code !== 0x20) {\n break;\n }\n\n end -= 1;\n }\n\n return start === 0 && end === str.length ? str : str.slice(start, end);\n}\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction sanitizeHeaderValue(str) {\n return trimSPorHTAB(str.replace(INVALID_HEADER_VALUE_CHARS_RE, ''));\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : sanitizeHeaderValue(String(value));\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header\n .trim()\n .toLowerCase()\n .replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach((methodName) => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function (arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true,\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if (\n !key ||\n self[key] === undefined ||\n _rewrite === true ||\n (_rewrite === undefined && self[key] !== false)\n ) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite);\n } else if (utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isObject(header) && utils.isIterable(header)) {\n let obj = {},\n dest,\n key;\n for (const entry of header) {\n if (!utils.isArray(entry)) {\n throw TypeError('Object iterator must return a key-value pair');\n }\n\n obj[(key = entry[0])] = (dest = obj[key])\n ? utils.isArray(dest)\n ? [...dest, entry[1]]\n : [dest, entry[1]]\n : entry[1];\n }\n\n setHeaders(obj, valueOrRewrite);\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(\n key &&\n this[key] !== undefined &&\n (!matcher || matchHeaderValue(this, this[key], key, matcher))\n );\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if (!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null &&\n value !== false &&\n (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON())\n .map(([header, value]) => header + ': ' + value)\n .join('\\n');\n }\n\n getSetCookie() {\n return this.get('set-cookie') || [];\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals =\n (this[$internals] =\n this[$internals] =\n {\n accessors: {},\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor([\n 'Content-Type',\n 'Content-Length',\n 'Accept',\n 'Accept-Encoding',\n 'User-Agent',\n 'Authorization',\n]);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({ value }, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n },\n };\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from '../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\n\nclass CanceledError extends AxiosError {\n /**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\n constructor(message, config, request) {\n super(message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n this.__CANCEL__ = true;\n }\n}\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(\n new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][\n Math.floor(response.status / 100) - 4\n ],\n response.config,\n response.request,\n response\n )\n );\n }\n}\n","import speedometer from './speedometer.js';\nimport throttle from './throttle.js';\nimport utils from '../utils.js';\n\nexport const progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle((e) => {\n const rawLoaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const loaded = total != null ? Math.min(rawLoaded, total) : rawLoaded;\n const progressBytes = Math.max(0, loaded - bytesNotified);\n const rate = _speedometer(progressBytes);\n\n bytesNotified = Math.max(bytesNotified, loaded);\n\n const data = {\n loaded,\n total,\n progress: total ? loaded / total : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true,\n };\n\n listener(data);\n }, freq);\n};\n\nexport const progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [\n (loaded) =>\n throttled[0]({\n lengthComputable,\n total,\n loaded,\n }),\n throttled[1],\n ];\n};\n\nexport const asyncDecorator =\n (fn) =>\n (...args) =>\n utils.asap(() => fn(...args));\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round((bytesCount * 1000) / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn(...args);\n };\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if (passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs);\n }, threshold - passed);\n }\n }\n };\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nexport default throttle;\n","import platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv\n ? ((origin, isMSIE) => (url) => {\n url = new URL(url, platform.origin);\n\n return (\n origin.protocol === url.protocol &&\n origin.host === url.host &&\n (isMSIE || origin.port === url.port)\n );\n })(\n new URL(platform.origin),\n platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)\n )\n : () => true;\n","import utils from '../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv\n ? // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure, sameSite) {\n if (typeof document === 'undefined') return;\n\n const cookie = [`${name}=${encodeURIComponent(value)}`];\n\n if (utils.isNumber(expires)) {\n cookie.push(`expires=${new Date(expires).toUTCString()}`);\n }\n if (utils.isString(path)) {\n cookie.push(`path=${path}`);\n }\n if (utils.isString(domain)) {\n cookie.push(`domain=${domain}`);\n }\n if (secure === true) {\n cookie.push('secure');\n }\n if (utils.isString(sameSite)) {\n cookie.push(`SameSite=${sameSite}`);\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n if (typeof document === 'undefined') return null;\n const match = document.cookie.match(new RegExp('(?:^|; )' + name + '=([^;]*)'));\n return match ? decodeURIComponent(match[1]) : null;\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000, '/');\n },\n }\n : // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {},\n };\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) {\n let isRelativeUrl = !isAbsoluteURL(requestedURL);\n if (baseURL && (isRelativeUrl || allowAbsoluteUrls === false)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n if (typeof url !== 'string') {\n return false;\n }\n\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst headersToObject = (thing) => (thing instanceof AxiosHeaders ? { ...thing } : thing);\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, prop, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({ caseless }, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(a, b, prop, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, prop, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, prop, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (utils.hasOwnProp(config2, prop)) {\n return getMergedValue(a, b);\n } else if (utils.hasOwnProp(config1, prop)) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b, prop) =>\n mergeDeepProperties(headersToObject(a), headersToObject(b), prop, true),\n };\n\n utils.forEach(Object.keys({ ...config1, ...config2 }), function computeConfigValue(prop) {\n if (prop === '__proto__' || prop === 'constructor' || prop === 'prototype') return;\n const merge = utils.hasOwnProp(mergeMap, prop) ? mergeMap[prop] : mergeDeepProperties;\n const a = utils.hasOwnProp(config1, prop) ? config1[prop] : undefined;\n const b = utils.hasOwnProp(config2, prop) ? config2[prop] : undefined;\n const configValue = merge(a, b, prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","import platform from '../platform/index.js';\nimport utils from '../utils.js';\nimport isURLSameOrigin from './isURLSameOrigin.js';\nimport cookies from './cookies.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport mergeConfig from '../core/mergeConfig.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport buildURL from './buildURL.js';\n\nexport default (config) => {\n const newConfig = mergeConfig({}, config);\n\n let { data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth } = newConfig;\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(\n buildFullPath(newConfig.baseURL, newConfig.url, newConfig.allowAbsoluteUrls),\n config.params,\n config.paramsSerializer\n );\n\n // HTTP basic authentication\n if (auth) {\n headers.set(\n 'Authorization',\n 'Basic ' +\n btoa(\n (auth.username || '') +\n ':' +\n (auth.password ? unescape(encodeURIComponent(auth.password)) : '')\n )\n );\n }\n\n if (utils.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // browser handles it\n } else if (utils.isFunction(data.getHeaders)) {\n // Node.js FormData (like form-data package)\n const formHeaders = data.getHeaders();\n // Only set safe headers to avoid overwriting security headers\n const allowedHeaders = ['content-type', 'content-length'];\n Object.entries(formHeaders).forEach(([key, val]) => {\n if (allowedHeaders.includes(key.toLowerCase())) {\n headers.set(key, val);\n }\n });\n }\n }\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n if (utils.isFunction(withXSRFToken)) {\n withXSRFToken = withXSRFToken(newConfig);\n }\n\n // Strict boolean check — prevents proto-pollution gadgets (e.g. Object.prototype.withXSRFToken = 1)\n // and misconfigurations (e.g. \"false\") from short-circuiting the same-origin check and leaking\n // the XSRF token cross-origin. See GHSA-xx6v-rp6x-q39c.\n const shouldSendXSRF =\n withXSRFToken === true ||\n (withXSRFToken == null && isURLSameOrigin(newConfig.url));\n\n if (shouldSendXSRF) {\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n};\n","import platform from '../platform/index.js';\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport composeSignals from '../helpers/composeSignals.js';\nimport { trackStream } from '../helpers/trackStream.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport {\n progressEventReducer,\n progressEventDecorator,\n asyncDecorator,\n} from '../helpers/progressEventReducer.js';\nimport resolveConfig from '../helpers/resolveConfig.js';\nimport settle from '../core/settle.js';\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst { isFunction } = utils;\n\nconst globalFetchAPI = (({ Request, Response }) => ({\n Request,\n Response,\n}))(utils.global);\n\nconst { ReadableStream, TextEncoder } = utils.global;\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false;\n }\n};\n\nconst factory = (env) => {\n env = utils.merge.call(\n {\n skipUndefined: true,\n },\n globalFetchAPI,\n env\n );\n\n const { fetch: envFetch, Request, Response } = env;\n const isFetchSupported = envFetch ? isFunction(envFetch) : typeof fetch === 'function';\n const isRequestSupported = isFunction(Request);\n const isResponseSupported = isFunction(Response);\n\n if (!isFetchSupported) {\n return false;\n }\n\n const isReadableStreamSupported = isFetchSupported && isFunction(ReadableStream);\n\n const encodeText =\n isFetchSupported &&\n (typeof TextEncoder === 'function'\n ? (\n (encoder) => (str) =>\n encoder.encode(str)\n )(new TextEncoder())\n : async (str) => new Uint8Array(await new Request(str).arrayBuffer()));\n\n const supportsRequestStream =\n isRequestSupported &&\n isReadableStreamSupported &&\n test(() => {\n let duplexAccessed = false;\n\n const request = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n });\n\n const hasContentType = request.headers.has('Content-Type');\n\n if (request.body != null) {\n request.body.cancel();\n }\n\n return duplexAccessed && !hasContentType;\n });\n\n const supportsResponseStream =\n isResponseSupported &&\n isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n const resolvers = {\n stream: supportsResponseStream && ((res) => res.body),\n };\n\n isFetchSupported &&\n (() => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach((type) => {\n !resolvers[type] &&\n (resolvers[type] = (res, config) => {\n let method = res && res[type];\n\n if (method) {\n return method.call(res);\n }\n\n throw new AxiosError(\n `Response type '${type}' is not supported`,\n AxiosError.ERR_NOT_SUPPORT,\n config\n );\n });\n });\n })();\n\n const getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if (utils.isBlob(body)) {\n return body.size;\n }\n\n if (utils.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if (utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if (utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if (utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n };\n\n const resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n };\n\n return async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions,\n } = resolveConfig(config);\n\n let _fetch = envFetch || fetch;\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals(\n [signal, cancelToken && cancelToken.toAbortSignal()],\n timeout\n );\n\n let request = null;\n\n const unsubscribe =\n composedSignal &&\n composedSignal.unsubscribe &&\n (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress &&\n supportsRequestStream &&\n method !== 'get' &&\n method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: 'half',\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader);\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n }\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = isRequestSupported && 'credentials' in Request.prototype;\n\n // If data is FormData and Content-Type is multipart/form-data without boundary,\n // delete it so fetch can set it correctly with the boundary\n if (utils.isFormData(data)) {\n const contentType = headers.getContentType();\n if (\n contentType &&\n /^multipart\\/form-data/i.test(contentType) &&\n !/boundary=/i.test(contentType)\n ) {\n headers.delete('content-type');\n }\n }\n\n const resolvedOptions = {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: 'half',\n credentials: isCredentialsSupported ? withCredentials : undefined,\n };\n\n request = isRequestSupported && new Request(url, resolvedOptions);\n\n let response = await (isRequestSupported\n ? _fetch(request, fetchOptions)\n : _fetch(url, resolvedOptions));\n\n const isStreamResponse =\n supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach((prop) => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] =\n (onDownloadProgress &&\n progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n )) ||\n [];\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](\n response,\n config\n );\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request,\n });\n });\n } catch (err) {\n unsubscribe && unsubscribe();\n\n if (err && err.name === 'TypeError' && /Load failed|fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError(\n 'Network Error',\n AxiosError.ERR_NETWORK,\n config,\n request,\n err && err.response\n ),\n {\n cause: err.cause || err,\n }\n );\n }\n\n throw AxiosError.from(err, err && err.code, config, request, err && err.response);\n }\n };\n};\n\nconst seedCache = new Map();\n\nexport const getFetch = (config) => {\n let env = (config && config.env) || {};\n const { fetch, Request, Response } = env;\n const seeds = [Request, Response, fetch];\n\n let len = seeds.length,\n i = len,\n seed,\n target,\n map = seedCache;\n\n while (i--) {\n seed = seeds[i];\n target = map.get(seed);\n\n target === undefined && map.set(seed, (target = i ? new Map() : factory(env)));\n\n map = target;\n }\n\n return target;\n};\n\nconst adapter = getFetch();\n\nexport default adapter;\n","import utils from '../utils.js';\nimport settle from '../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport { progressEventReducer } from '../helpers/progressEventReducer.js';\nimport resolveConfig from '../helpers/resolveConfig.js';\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported &&\n function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let { responseType, onUploadProgress, onDownloadProgress } = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData =\n !responseType || responseType === 'text' || responseType === 'json'\n ? request.responseText\n : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request,\n };\n\n settle(\n function _resolve(value) {\n resolve(value);\n done();\n },\n function _reject(err) {\n reject(err);\n done();\n },\n response\n );\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (\n request.status === 0 &&\n !(request.responseURL && request.responseURL.indexOf('file:') === 0)\n ) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError(event) {\n // Browsers deliver a ProgressEvent in XHR onerror\n // (message may be empty; when present, surface it)\n // See https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/error_event\n const msg = event && event.message ? event.message : 'Network Error';\n const err = new AxiosError(msg, AxiosError.ERR_NETWORK, config, request);\n // attach the underlying event for consumers who want details\n err.event = event || null;\n reject(err);\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout\n ? 'timeout of ' + _config.timeout + 'ms exceeded'\n : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(\n new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request\n )\n );\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n [downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true);\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n [uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress);\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = (cancel) => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted\n ? onCanceled()\n : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(\n new AxiosError(\n 'Unsupported protocol ' + protocol + ':',\n AxiosError.ERR_BAD_REQUEST,\n config\n )\n );\n return;\n }\n\n // Send the request\n request.send(requestData || null);\n });\n };\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return (match && match[1]) || '';\n}\n","import CanceledError from '../cancel/CanceledError.js';\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\nconst composeSignals = (signals, timeout) => {\n const { length } = (signals = signals ? signals.filter(Boolean) : []);\n\n if (timeout || length) {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(\n err instanceof AxiosError\n ? err\n : new CanceledError(err instanceof Error ? err.message : err)\n );\n }\n };\n\n let timer =\n timeout &&\n setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout of ${timeout}ms exceeded`, AxiosError.ETIMEDOUT));\n }, timeout);\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach((signal) => {\n signal.unsubscribe\n ? signal.unsubscribe(onabort)\n : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n }\n };\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n const { signal } = controller;\n\n signal.unsubscribe = () => utils.asap(unsubscribe);\n\n return signal;\n }\n};\n\nexport default composeSignals;\n","export const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n};\n\nexport const readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n};\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const { done, value } = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n};\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n };\n\n return new ReadableStream(\n {\n async pull(controller) {\n try {\n const { done, value } = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = (bytes += len);\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n },\n },\n {\n highWaterMark: 2,\n }\n );\n};\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport * as fetchAdapter from './fetch.js';\nimport AxiosError from '../core/AxiosError.js';\n\n/**\n * Known adapters mapping.\n * Provides environment-specific adapters for Axios:\n * - `http` for Node.js\n * - `xhr` for browsers\n * - `fetch` for fetch API-based requests\n *\n * @type {Object}\n */\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: {\n get: fetchAdapter.getFetch,\n },\n};\n\n// Assign adapter names for easier debugging and identification\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', { value });\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', { value });\n }\n});\n\n/**\n * Render a rejection reason string for unknown or unsupported adapters\n *\n * @param {string} reason\n * @returns {string}\n */\nconst renderReason = (reason) => `- ${reason}`;\n\n/**\n * Check if the adapter is resolved (function, null, or false)\n *\n * @param {Function|null|false} adapter\n * @returns {boolean}\n */\nconst isResolvedHandle = (adapter) =>\n utils.isFunction(adapter) || adapter === null || adapter === false;\n\n/**\n * Get the first suitable adapter from the provided list.\n * Tries each adapter in order until a supported one is found.\n * Throws an AxiosError if no adapter is suitable.\n *\n * @param {Array|string|Function} adapters - Adapter(s) by name or function.\n * @param {Object} config - Axios request configuration\n * @throws {AxiosError} If no suitable adapter is available\n * @returns {Function} The resolved adapter function\n */\nfunction getAdapter(adapters, config) {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const { length } = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter && (utils.isFunction(adapter) || (adapter = adapter.get(config)))) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n const reasons = Object.entries(rejectedReasons).map(\n ([id, state]) =>\n `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length\n ? reasons.length > 1\n ? 'since :\\n' + reasons.map(renderReason).join('\\n')\n : ' ' + renderReason(reasons[0])\n : 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n}\n\n/**\n * Exports Axios adapters and utility to resolve an adapter\n */\nexport default {\n /**\n * Resolve an adapter from a list of adapter names or functions.\n * @type {Function}\n */\n getAdapter,\n\n /**\n * Exposes all known adapters\n * @type {Object}\n */\n adapters: knownAdapters,\n};\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from '../adapters/adapters.js';\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(config, config.transformRequest);\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter, config);\n\n return adapter(config).then(\n function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(config, config.transformResponse, response);\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n },\n function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n }\n );\n}\n","export const VERSION = \"1.15.1\";","'use strict';\n\nimport { VERSION } from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return (\n '[Axios v' +\n VERSION +\n \"] Transitional option '\" +\n opt +\n \"'\" +\n desc +\n (message ? '. ' + message : '')\n );\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\nvalidators.spelling = function spelling(correctSpelling) {\n return (value, opt) => {\n // eslint-disable-next-line no-console\n console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);\n return true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError(\n 'option ' + opt + ' must be ' + result,\n AxiosError.ERR_BAD_OPTION_VALUE\n );\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators,\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\nimport transitionalDefaults from '../defaults/transitional.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig || {};\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager(),\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy = {};\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = (() => {\n if (!dummy.stack) {\n return '';\n }\n\n const firstNewlineIndex = dummy.stack.indexOf('\\n');\n\n return firstNewlineIndex === -1 ? '' : dummy.stack.slice(firstNewlineIndex + 1);\n })();\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack) {\n const firstNewlineIndex = stack.indexOf('\\n');\n const secondNewlineIndex =\n firstNewlineIndex === -1 ? -1 : stack.indexOf('\\n', firstNewlineIndex + 1);\n const stackWithoutTwoTopLines =\n secondNewlineIndex === -1 ? '' : stack.slice(secondNewlineIndex + 1);\n\n if (!String(err.stack).endsWith(stackWithoutTwoTopLines)) {\n err.stack += '\\n' + stack;\n }\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const { transitional, paramsSerializer, headers } = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(\n transitional,\n {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean),\n legacyInterceptorReqResOrdering: validators.transitional(validators.boolean),\n },\n false\n );\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer,\n };\n } else {\n validator.assertOptions(\n paramsSerializer,\n {\n encode: validators.function,\n serialize: validators.function,\n },\n true\n );\n }\n }\n\n // Set config.allowAbsoluteUrls\n if (config.allowAbsoluteUrls !== undefined) {\n // do nothing\n } else if (this.defaults.allowAbsoluteUrls !== undefined) {\n config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls;\n } else {\n config.allowAbsoluteUrls = true;\n }\n\n validator.assertOptions(\n config,\n {\n baseUrl: validators.spelling('baseURL'),\n withXsrfToken: validators.spelling('withXSRFToken'),\n },\n true\n );\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(headers.common, headers[config.method]);\n\n headers &&\n utils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], (method) => {\n delete headers[method];\n });\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n const transitional = config.transitional || transitionalDefaults;\n const legacyInterceptorReqResOrdering =\n transitional && transitional.legacyInterceptorReqResOrdering;\n\n if (legacyInterceptorReqResOrdering) {\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n } else {\n requestInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n }\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift(...requestInterceptorChain);\n chain.push(...responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function (url, config) {\n return this.request(\n mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data,\n })\n );\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(\n mergeConfig(config || {}, {\n method,\n headers: isForm\n ? {\n 'Content-Type': 'multipart/form-data',\n }\n : {},\n url,\n data,\n })\n );\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then((cancel) => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = (onfulfilled) => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise((resolve) => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel,\n };\n }\n}\n\nexport default CancelToken;\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n WebServerIsDown: 521,\n ConnectionTimedOut: 522,\n OriginIsUnreachable: 523,\n TimeoutOccurred: 524,\n SslHandshakeFailed: 525,\n InvalidSslCertificate: 526,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport { VERSION } from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from './core/AxiosHeaders.js';\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, { allOwnKeys: true });\n\n // Copy context to instance\n utils.extend(instance, context, null, { allOwnKeys: true });\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = (thing) => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * const args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && payload.isAxiosError === true;\n}\n"],"names":["bind","fn","thisArg","apply","arguments","cache","toString","Object","prototype","getPrototypeOf","iterator","Symbol","toStringTag","kindOf","create","thing","str","call","slice","toLowerCase","kindOfTest","type","typeOfTest","_typeof","isArray","Array","isUndefined","isBuffer","val","constructor","isFunction","isArrayBuffer","isString","isNumber","isObject","isPlainObject","isDate","isFile","isBlob","isFileList","G","globalThis","self","window","global","FormDataCtor","FormData","undefined","isURLSearchParams","_map2","_slicedToArray","map","isReadableStream","isRequest","isResponse","isHeaders","forEach","obj","i","l","_ref$allOwnKeys","length","allOwnKeys","key","keys","getOwnPropertyNames","len","findKey","_key","_global","isContextDefined","context","TypedArray","isTypedArray","Uint8Array","isHTMLForm","hasOwnProperty","prop","isRegExp","reduceDescriptors","reducer","descriptors","getOwnPropertyDescriptors","reducedDescriptors","descriptor","name","ret","defineProperties","setImmediateSupported","postMessageSupported","token","callbacks","isAsyncFn","_setImmediate","setImmediate","postMessage","concat","Math","random","addEventListener","_ref5","source","data","shift","cb","push","setTimeout","asap","queueMicrotask","process","nextTick","utils$1","isFormData","proto","append","kind","isArrayBufferView","ArrayBuffer","isView","buffer","isBoolean","isEmptyObject","e","isReactNativeBlob","value","uri","isReactNative","formData","getParts","isStream","pipe","merge","_ref2","this","caseless","skipUndefined","result","assignValue","targetKey","extend","a","b","defineProperty","writable","enumerable","configurable","trim","replace","stripBOM","content","charCodeAt","inherits","superConstructor","props","assign","toFlatObject","sourceObj","destObj","filter","propFilter","merged","endsWith","searchString","position","String","lastIndex","indexOf","toArray","arr","forEachEntry","_iterator","next","done","pair","matchAll","regExp","matches","exec","hasOwnProp","freezeMethods","set","Error","toObjectSet","arrayOrString","delimiter","define","split","toCamelCase","m","p1","p2","toUpperCase","noop","toFiniteNumber","defaultValue","Number","isFinite","isSpecCompliantForm","toJSONObject","stack","visit","target","reducedValue","isThenable","then","isIterable","AxiosError","_Error","message","code","config","request","response","_this","_classCallCheck","_callSuper","isAxiosError","status","_inherits","_createClass","description","number","fileName","lineNumber","columnNumber","utils","error","customProps","axiosError","cause","_wrapNativeSuper","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL","ERR_FORM_DATA_DEPTH_EXCEEDED","isVisitable","removeBrackets","renderKey","path","dots","join","predicates","test","toFormData","options","TypeError","metaTokens","indexes","option","visitor","defaultVisitor","_Blob","Blob","maxDepth","useBlob","convertValue","toISOString","Buffer","from","JSON","stringify","some","isFlatArray","el","index","exposedHelpers","build","depth","pop","encode","charMap","encodeURIComponent","match","AxiosURLSearchParams","params","_pairs","buildURL","url","serializedParams","_encode","_options","serialize","serializeFn","hashmarkIndex","encoder","InterceptorManager","handlers","fulfilled","rejected","synchronous","runWhen","id","h","transitionalDefaults","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","legacyInterceptorReqResOrdering","platform$1","isBrowser","classes","URLSearchParams","protocols","hasBrowserEnv","document","_navigator","navigator","hasStandardBrowserEnv","product","hasStandardBrowserWebWorkerEnv","WorkerGlobalScope","importScripts","origin","location","href","platform","_objectSpread","formDataToJSON","buildPath","isNumericKey","isLast","arrayToObject","entries","parsePropPath","own","defaults","transitional","adapter","transformRequest","headers","contentType","getContentType","hasJSONContentType","isObjectPayload","setContentType","formSerializer","helpers","isNode","toURLEncodedForm","env","_FormData","rawValue","parser","parse","stringifySafely","transformResponse","responseType","JSONRequested","strictJSONParsing","timeout","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","Accept","method","ignoreDuplicateOf","$internals","INVALID_HEADER_VALUE_CHARS_RE","normalizeHeader","header","normalizeValue","start","end","trimSPorHTAB","matchHeaderValue","isHeaderNameFilter","AxiosHeaders","valueOrRewrite","rewrite","setHeader","_value","_header","_rewrite","lHeader","setHeaders","rawHeaders","parsed","line","substring","parseHeaders","dest","_step","_createForOfIteratorHelper","s","n","entry","_toConsumableArray","err","f","tokens","tokensRE","parseTokens","matcher","deleted","deleteHeader","format","normalized","w","char","formatHeader","_this$constructor","_len","targets","asStrings","toJSON","_ref","get","first","computed","_len2","_key2","accessors","defineAccessor","accessorName","methodName","arg1","arg2","arg3","buildAccessors","transformData","fns","normalize","isCancel","__CANCEL__","accessor","_ref3","mapped","headerValue","CanceledError","_AxiosError","settle","resolve","reject","floor","progressEventReducer","listener","isDownloadStream","freq","bytesNotified","_speedometer","samplesCount","min","firstSampleTS","bytes","timestamps","head","tail","chunkLength","now","Date","startedAt","bytesCount","passed","round","speedometer","lastArgs","timer","timestamp","threshold","invoke","args","clearTimeout","throttle","rawLoaded","loaded","total","lengthComputable","progressBytes","max","rate","_defineProperty","progress","estimated","event","progressEventDecorator","throttled","asyncDecorator","isURLSameOrigin","isMSIE","URL","protocol","host","port","userAgent","cookies","write","expires","domain","secure","sameSite","cookie","toUTCString","read","RegExp","decodeURIComponent","remove","buildFullPath","baseURL","requestedURL","allowAbsoluteUrls","isRelativeUrl","relativeURL","combineURLs","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","paramsSerializer","timeoutMessage","withCredentials","withXSRFToken","onUploadProgress","onDownloadProgress","decompress","beforeRedirect","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding","configValue","resolveConfig","newConfig","auth","btoa","username","password","unescape","getHeaders","formHeaders","allowedHeaders","includes","xsrfValue","xhrAdapter","XMLHttpRequest","Promise","onCanceled","uploadThrottled","downloadThrottled","flushUpload","flushDownload","_config","requestData","requestHeaders","unsubscribe","signal","removeEventListener","onloadend","responseHeaders","getAllResponseHeaders","responseText","statusText","open","onreadystatechange","readyState","responseURL","onabort","onerror","msg","ontimeout","timeoutErrorMessage","setRequestHeader","_progressEventReducer2","upload","_progressEventReducer4","cancel","abort","subscribe","aborted","send","composeSignals","signals","Boolean","controller","AbortController","reason","streamChunk","_regenerator","chunk","chunkSize","pos","_context","byteLength","readBytes","_wrapAsyncGenerator","_callee","iterable","_iteratorAbruptCompletion","_didIteratorError","_iteratorError","_t","_context2","p","_asyncIterator","readStream","_awaitAsyncGenerator","v","d","_regeneratorValues","_asyncGeneratorDelegate","_x","_x2","_callee2","stream","reader","_yield$_awaitAsyncGen","_context3","asyncIterator","getReader","_x3","trackStream","onProgress","onFinish","_onFinish","ReadableStream","pull","_asyncToGenerator","_callee3","_yield$iterator$next","_done","loadedBytes","_t2","_context4","close","enqueue","highWaterMark","globalFetchAPI","Request","Response","_utils$global","TextEncoder","factory","_env","envFetch","fetch","isFetchSupported","isRequestSupported","isResponseSupported","isReadableStreamSupported","encodeText","arrayBuffer","supportsRequestStream","duplexAccessed","body","duplex","hasContentType","has","supportsResponseStream","resolvers","res","getBodyLength","_request","size","resolveBodyLength","_ref4","getContentLength","_x4","_callee4","_resolveConfig","_resolveConfig$withCr","fetchOptions","_fetch","composedSignal","requestContentLength","contentTypeHeader","_progressEventDecorat","_progressEventDecorat2","flush","isCredentialsSupported","resolvedOptions","isStreamResponse","responseContentLength","_ref6","_ref7","_onProgress","_flush","responseData","_t3","_t4","_t5","toAbortSignal","credentials","_x5","seedCache","Map","getFetch","seed","seeds","knownAdapters","http","xhr","fetchAdapter","renderReason","isResolvedHandle","adapters","getAdapter","nameOrAdapter","rejectedReasons","reasons","state","throwIfCancellationRequested","throwIfRequested","dispatchRequest","VERSION","validators","deprecatedWarnings","validator","version","formatMessage","opt","desc","opts","console","warn","spelling","correctSpelling","assertOptions","schema","allowUnknown","Axios","instanceConfig","interceptors","_request2","configOrUrl","dummy","firstNewlineIndex","secondNewlineIndex","stackWithoutTwoTopLines","captureStackTrace","baseUrl","withXsrfToken","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","unshift","promise","responseInterceptorChain","chain","onFulfilled","onRejected","generateHTTPMethod","isForm","CancelToken","executor","resolvePromise","_listeners","onfulfilled","_resolve","splice","c","HttpStatusCode","Continue","SwitchingProtocols","Processing","EarlyHints","Ok","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","WebServerIsDown","ConnectionTimedOut","OriginIsUnreachable","TimeoutOccurred","SslHandshakeFailed","InvalidSslCertificate","axios","createInstance","defaultConfig","instance","Cancel","all","promises","spread","callback","payload","formToJSON"],"mappings":"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"} \ No newline at end of file diff --git a/server/api/node_modules/axios/dist/browser/axios.cjs b/server/api/node_modules/axios/dist/browser/axios.cjs new file mode 100644 index 0000000..3193650 --- /dev/null +++ b/server/api/node_modules/axios/dist/browser/axios.cjs @@ -0,0 +1,4312 @@ +/*! Axios v1.15.1 Copyright (c) 2026 Matt Zabriskie and contributors */ +'use strict'; + +/** + * Create a bound version of a function with a specified `this` context + * + * @param {Function} fn - The function to bind + * @param {*} thisArg - The value to be passed as the `this` parameter + * @returns {Function} A new function that will call the original function with the specified `this` context + */ +function bind(fn, thisArg) { + return function wrap() { + return fn.apply(thisArg, arguments); + }; +} + +// utils is a library of generic helper functions non-specific to axios + +const { toString } = Object.prototype; +const { getPrototypeOf } = Object; +const { iterator, toStringTag } = Symbol; + +const kindOf = ((cache) => (thing) => { + const str = toString.call(thing); + return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase()); +})(Object.create(null)); + +const kindOfTest = (type) => { + type = type.toLowerCase(); + return (thing) => kindOf(thing) === type; +}; + +const typeOfTest = (type) => (thing) => typeof thing === type; + +/** + * Determine if a value is a non-null object + * + * @param {Object} val The value to test + * + * @returns {boolean} True if value is an Array, otherwise false + */ +const { isArray } = Array; + +/** + * Determine if a value is undefined + * + * @param {*} val The value to test + * + * @returns {boolean} True if the value is undefined, otherwise false + */ +const isUndefined = typeOfTest('undefined'); + +/** + * Determine if a value is a Buffer + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a Buffer, otherwise false + */ +function isBuffer(val) { + return ( + val !== null && + !isUndefined(val) && + val.constructor !== null && + !isUndefined(val.constructor) && + isFunction$1(val.constructor.isBuffer) && + val.constructor.isBuffer(val) + ); +} + +/** + * Determine if a value is an ArrayBuffer + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is an ArrayBuffer, otherwise false + */ +const isArrayBuffer = kindOfTest('ArrayBuffer'); + +/** + * Determine if a value is a view on an ArrayBuffer + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false + */ +function isArrayBufferView(val) { + let result; + if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) { + result = ArrayBuffer.isView(val); + } else { + result = val && val.buffer && isArrayBuffer(val.buffer); + } + return result; +} + +/** + * Determine if a value is a String + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a String, otherwise false + */ +const isString = typeOfTest('string'); + +/** + * Determine if a value is a Function + * + * @param {*} val The value to test + * @returns {boolean} True if value is a Function, otherwise false + */ +const isFunction$1 = typeOfTest('function'); + +/** + * Determine if a value is a Number + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a Number, otherwise false + */ +const isNumber = typeOfTest('number'); + +/** + * Determine if a value is an Object + * + * @param {*} thing The value to test + * + * @returns {boolean} True if value is an Object, otherwise false + */ +const isObject = (thing) => thing !== null && typeof thing === 'object'; + +/** + * Determine if a value is a Boolean + * + * @param {*} thing The value to test + * @returns {boolean} True if value is a Boolean, otherwise false + */ +const isBoolean = (thing) => thing === true || thing === false; + +/** + * Determine if a value is a plain Object + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a plain Object, otherwise false + */ +const isPlainObject = (val) => { + if (kindOf(val) !== 'object') { + return false; + } + + const prototype = getPrototypeOf(val); + return ( + (prototype === null || + prototype === Object.prototype || + Object.getPrototypeOf(prototype) === null) && + !(toStringTag in val) && + !(iterator in val) + ); +}; + +/** + * Determine if a value is an empty object (safely handles Buffers) + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is an empty object, otherwise false + */ +const isEmptyObject = (val) => { + // Early return for non-objects or Buffers to prevent RangeError + if (!isObject(val) || isBuffer(val)) { + return false; + } + + try { + return Object.keys(val).length === 0 && Object.getPrototypeOf(val) === Object.prototype; + } catch (e) { + // Fallback for any other objects that might cause RangeError with Object.keys() + return false; + } +}; + +/** + * Determine if a value is a Date + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a Date, otherwise false + */ +const isDate = kindOfTest('Date'); + +/** + * Determine if a value is a File + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a File, otherwise false + */ +const isFile = kindOfTest('File'); + +/** + * Determine if a value is a React Native Blob + * React Native "blob": an object with a `uri` attribute. Optionally, it can + * also have a `name` and `type` attribute to specify filename and content type + * + * @see https://github.com/facebook/react-native/blob/26684cf3adf4094eb6c405d345a75bf8c7c0bf88/Libraries/Network/FormData.js#L68-L71 + * + * @param {*} value The value to test + * + * @returns {boolean} True if value is a React Native Blob, otherwise false + */ +const isReactNativeBlob = (value) => { + return !!(value && typeof value.uri !== 'undefined'); +}; + +/** + * Determine if environment is React Native + * ReactNative `FormData` has a non-standard `getParts()` method + * + * @param {*} formData The formData to test + * + * @returns {boolean} True if environment is React Native, otherwise false + */ +const isReactNative = (formData) => formData && typeof formData.getParts !== 'undefined'; + +/** + * Determine if a value is a Blob + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a Blob, otherwise false + */ +const isBlob = kindOfTest('Blob'); + +/** + * Determine if a value is a FileList + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a File, otherwise false + */ +const isFileList = kindOfTest('FileList'); + +/** + * Determine if a value is a Stream + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a Stream, otherwise false + */ +const isStream = (val) => isObject(val) && isFunction$1(val.pipe); + +/** + * Determine if a value is a FormData + * + * @param {*} thing The value to test + * + * @returns {boolean} True if value is an FormData, otherwise false + */ +function getGlobal() { + if (typeof globalThis !== 'undefined') return globalThis; + if (typeof self !== 'undefined') return self; + if (typeof window !== 'undefined') return window; + if (typeof global !== 'undefined') return global; + return {}; +} + +const G = getGlobal(); +const FormDataCtor = typeof G.FormData !== 'undefined' ? G.FormData : undefined; + +const isFormData = (thing) => { + if (!thing) return false; + if (FormDataCtor && thing instanceof FormDataCtor) return true; + // Reject plain objects inheriting directly from Object.prototype so prototype-pollution gadgets can't spoof FormData (GHSA-6chq-wfr3-2hj9). + const proto = getPrototypeOf(thing); + if (!proto || proto === Object.prototype) return false; + if (!isFunction$1(thing.append)) return false; + const kind = kindOf(thing); + return kind === 'formdata' || + // detect form-data instance + (kind === 'object' && isFunction$1(thing.toString) && thing.toString() === '[object FormData]'); +}; + +/** + * Determine if a value is a URLSearchParams object + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a URLSearchParams object, otherwise false + */ +const isURLSearchParams = kindOfTest('URLSearchParams'); + +const [isReadableStream, isRequest, isResponse, isHeaders] = [ + 'ReadableStream', + 'Request', + 'Response', + 'Headers', +].map(kindOfTest); + +/** + * Trim excess whitespace off the beginning and end of a string + * + * @param {String} str The String to trim + * + * @returns {String} The String freed of excess whitespace + */ +const trim = (str) => { + return str.trim ? str.trim() : str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ''); +}; +/** + * Iterate over an Array or an Object invoking a function for each item. + * + * If `obj` is an Array callback will be called passing + * the value, index, and complete array for each item. + * + * If 'obj' is an Object callback will be called passing + * the value, key, and complete object for each property. + * + * @param {Object|Array} obj The object to iterate + * @param {Function} fn The callback to invoke for each item + * + * @param {Object} [options] + * @param {Boolean} [options.allOwnKeys = false] + * @returns {any} + */ +function forEach(obj, fn, { allOwnKeys = false } = {}) { + // Don't bother if no value provided + if (obj === null || typeof obj === 'undefined') { + return; + } + + let i; + let l; + + // Force an array if not already something iterable + if (typeof obj !== 'object') { + /*eslint no-param-reassign:0*/ + obj = [obj]; + } + + if (isArray(obj)) { + // Iterate over array values + for (i = 0, l = obj.length; i < l; i++) { + fn.call(null, obj[i], i, obj); + } + } else { + // Buffer check + if (isBuffer(obj)) { + return; + } + + // Iterate over object keys + const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj); + const len = keys.length; + let key; + + for (i = 0; i < len; i++) { + key = keys[i]; + fn.call(null, obj[key], key, obj); + } + } +} + +/** + * Finds a key in an object, case-insensitive, returning the actual key name. + * Returns null if the object is a Buffer or if no match is found. + * + * @param {Object} obj - The object to search. + * @param {string} key - The key to find (case-insensitive). + * @returns {?string} The actual key name if found, otherwise null. + */ +function findKey(obj, key) { + if (isBuffer(obj)) { + return null; + } + + key = key.toLowerCase(); + const keys = Object.keys(obj); + let i = keys.length; + let _key; + while (i-- > 0) { + _key = keys[i]; + if (key === _key.toLowerCase()) { + return _key; + } + } + return null; +} + +const _global = (() => { + /*eslint no-undef:0*/ + if (typeof globalThis !== 'undefined') return globalThis; + return typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : global; +})(); + +const isContextDefined = (context) => !isUndefined(context) && context !== _global; + +/** + * Accepts varargs expecting each argument to be an object, then + * immutably merges the properties of each object and returns result. + * + * When multiple objects contain the same key the later object in + * the arguments list will take precedence. + * + * Example: + * + * ```js + * const result = merge({foo: 123}, {foo: 456}); + * console.log(result.foo); // outputs 456 + * ``` + * + * @param {Object} obj1 Object to merge + * + * @returns {Object} Result of all merge properties + */ +function merge(/* obj1, obj2, obj3, ... */) { + const { caseless, skipUndefined } = (isContextDefined(this) && this) || {}; + const result = {}; + const assignValue = (val, key) => { + // Skip dangerous property names to prevent prototype pollution + if (key === '__proto__' || key === 'constructor' || key === 'prototype') { + return; + } + + const targetKey = (caseless && findKey(result, key)) || key; + if (isPlainObject(result[targetKey]) && isPlainObject(val)) { + result[targetKey] = merge(result[targetKey], val); + } else if (isPlainObject(val)) { + result[targetKey] = merge({}, val); + } else if (isArray(val)) { + result[targetKey] = val.slice(); + } else if (!skipUndefined || !isUndefined(val)) { + result[targetKey] = val; + } + }; + + for (let i = 0, l = arguments.length; i < l; i++) { + arguments[i] && forEach(arguments[i], assignValue); + } + return result; +} + +/** + * Extends object a by mutably adding to it the properties of object b. + * + * @param {Object} a The object to be extended + * @param {Object} b The object to copy properties from + * @param {Object} thisArg The object to bind function to + * + * @param {Object} [options] + * @param {Boolean} [options.allOwnKeys] + * @returns {Object} The resulting value of object a + */ +const extend = (a, b, thisArg, { allOwnKeys } = {}) => { + forEach( + b, + (val, key) => { + if (thisArg && isFunction$1(val)) { + Object.defineProperty(a, key, { + value: bind(val, thisArg), + writable: true, + enumerable: true, + configurable: true, + }); + } else { + Object.defineProperty(a, key, { + value: val, + writable: true, + enumerable: true, + configurable: true, + }); + } + }, + { allOwnKeys } + ); + return a; +}; + +/** + * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM) + * + * @param {string} content with BOM + * + * @returns {string} content value without BOM + */ +const stripBOM = (content) => { + if (content.charCodeAt(0) === 0xfeff) { + content = content.slice(1); + } + return content; +}; + +/** + * Inherit the prototype methods from one constructor into another + * @param {function} constructor + * @param {function} superConstructor + * @param {object} [props] + * @param {object} [descriptors] + * + * @returns {void} + */ +const inherits = (constructor, superConstructor, props, descriptors) => { + constructor.prototype = Object.create(superConstructor.prototype, descriptors); + Object.defineProperty(constructor.prototype, 'constructor', { + value: constructor, + writable: true, + enumerable: false, + configurable: true, + }); + Object.defineProperty(constructor, 'super', { + value: superConstructor.prototype, + }); + props && Object.assign(constructor.prototype, props); +}; + +/** + * Resolve object with deep prototype chain to a flat object + * @param {Object} sourceObj source object + * @param {Object} [destObj] + * @param {Function|Boolean} [filter] + * @param {Function} [propFilter] + * + * @returns {Object} + */ +const toFlatObject = (sourceObj, destObj, filter, propFilter) => { + let props; + let i; + let prop; + const merged = {}; + + destObj = destObj || {}; + // eslint-disable-next-line no-eq-null,eqeqeq + if (sourceObj == null) return destObj; + + do { + props = Object.getOwnPropertyNames(sourceObj); + i = props.length; + while (i-- > 0) { + prop = props[i]; + if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) { + destObj[prop] = sourceObj[prop]; + merged[prop] = true; + } + } + sourceObj = filter !== false && getPrototypeOf(sourceObj); + } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype); + + return destObj; +}; + +/** + * Determines whether a string ends with the characters of a specified string + * + * @param {String} str + * @param {String} searchString + * @param {Number} [position= 0] + * + * @returns {boolean} + */ +const endsWith = (str, searchString, position) => { + str = String(str); + if (position === undefined || position > str.length) { + position = str.length; + } + position -= searchString.length; + const lastIndex = str.indexOf(searchString, position); + return lastIndex !== -1 && lastIndex === position; +}; + +/** + * Returns new array from array like object or null if failed + * + * @param {*} [thing] + * + * @returns {?Array} + */ +const toArray = (thing) => { + if (!thing) return null; + if (isArray(thing)) return thing; + let i = thing.length; + if (!isNumber(i)) return null; + const arr = new Array(i); + while (i-- > 0) { + arr[i] = thing[i]; + } + return arr; +}; + +/** + * Checking if the Uint8Array exists and if it does, it returns a function that checks if the + * thing passed in is an instance of Uint8Array + * + * @param {TypedArray} + * + * @returns {Array} + */ +// eslint-disable-next-line func-names +const isTypedArray = ((TypedArray) => { + // eslint-disable-next-line func-names + return (thing) => { + return TypedArray && thing instanceof TypedArray; + }; +})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array)); + +/** + * For each entry in the object, call the function with the key and value. + * + * @param {Object} obj - The object to iterate over. + * @param {Function} fn - The function to call for each entry. + * + * @returns {void} + */ +const forEachEntry = (obj, fn) => { + const generator = obj && obj[iterator]; + + const _iterator = generator.call(obj); + + let result; + + while ((result = _iterator.next()) && !result.done) { + const pair = result.value; + fn.call(obj, pair[0], pair[1]); + } +}; + +/** + * It takes a regular expression and a string, and returns an array of all the matches + * + * @param {string} regExp - The regular expression to match against. + * @param {string} str - The string to search. + * + * @returns {Array} + */ +const matchAll = (regExp, str) => { + let matches; + const arr = []; + + while ((matches = regExp.exec(str)) !== null) { + arr.push(matches); + } + + return arr; +}; + +/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */ +const isHTMLForm = kindOfTest('HTMLFormElement'); + +const toCamelCase = (str) => { + return str.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g, function replacer(m, p1, p2) { + return p1.toUpperCase() + p2; + }); +}; + +/* Creating a function that will check if an object has a property. */ +const hasOwnProperty = ( + ({ hasOwnProperty }) => + (obj, prop) => + hasOwnProperty.call(obj, prop) +)(Object.prototype); + +/** + * Determine if a value is a RegExp object + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a RegExp object, otherwise false + */ +const isRegExp = kindOfTest('RegExp'); + +const reduceDescriptors = (obj, reducer) => { + const descriptors = Object.getOwnPropertyDescriptors(obj); + const reducedDescriptors = {}; + + forEach(descriptors, (descriptor, name) => { + let ret; + if ((ret = reducer(descriptor, name, obj)) !== false) { + reducedDescriptors[name] = ret || descriptor; + } + }); + + Object.defineProperties(obj, reducedDescriptors); +}; + +/** + * Makes all methods read-only + * @param {Object} obj + */ + +const freezeMethods = (obj) => { + reduceDescriptors(obj, (descriptor, name) => { + // skip restricted props in strict mode + if (isFunction$1(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) { + return false; + } + + const value = obj[name]; + + if (!isFunction$1(value)) return; + + descriptor.enumerable = false; + + if ('writable' in descriptor) { + descriptor.writable = false; + return; + } + + if (!descriptor.set) { + descriptor.set = () => { + throw Error("Can not rewrite read-only method '" + name + "'"); + }; + } + }); +}; + +/** + * Converts an array or a delimited string into an object set with values as keys and true as values. + * Useful for fast membership checks. + * + * @param {Array|string} arrayOrString - The array or string to convert. + * @param {string} delimiter - The delimiter to use if input is a string. + * @returns {Object} An object with keys from the array or string, values set to true. + */ +const toObjectSet = (arrayOrString, delimiter) => { + const obj = {}; + + const define = (arr) => { + arr.forEach((value) => { + obj[value] = true; + }); + }; + + isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter)); + + return obj; +}; + +const noop = () => {}; + +const toFiniteNumber = (value, defaultValue) => { + return value != null && Number.isFinite((value = +value)) ? value : defaultValue; +}; + +/** + * If the thing is a FormData object, return true, otherwise return false. + * + * @param {unknown} thing - The thing to check. + * + * @returns {boolean} + */ +function isSpecCompliantForm(thing) { + return !!( + thing && + isFunction$1(thing.append) && + thing[toStringTag] === 'FormData' && + thing[iterator] + ); +} + +/** + * Recursively converts an object to a JSON-compatible object, handling circular references and Buffers. + * + * @param {Object} obj - The object to convert. + * @returns {Object} The JSON-compatible object. + */ +const toJSONObject = (obj) => { + const stack = new Array(10); + + const visit = (source, i) => { + if (isObject(source)) { + if (stack.indexOf(source) >= 0) { + return; + } + + //Buffer check + if (isBuffer(source)) { + return source; + } + + if (!('toJSON' in source)) { + stack[i] = source; + const target = isArray(source) ? [] : {}; + + forEach(source, (value, key) => { + const reducedValue = visit(value, i + 1); + !isUndefined(reducedValue) && (target[key] = reducedValue); + }); + + stack[i] = undefined; + + return target; + } + } + + return source; + }; + + return visit(obj, 0); +}; + +/** + * Determines if a value is an async function. + * + * @param {*} thing - The value to test. + * @returns {boolean} True if value is an async function, otherwise false. + */ +const isAsyncFn = kindOfTest('AsyncFunction'); + +/** + * Determines if a value is thenable (has then and catch methods). + * + * @param {*} thing - The value to test. + * @returns {boolean} True if value is thenable, otherwise false. + */ +const isThenable = (thing) => + thing && + (isObject(thing) || isFunction$1(thing)) && + isFunction$1(thing.then) && + isFunction$1(thing.catch); + +// original code +// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34 + +/** + * Provides a cross-platform setImmediate implementation. + * Uses native setImmediate if available, otherwise falls back to postMessage or setTimeout. + * + * @param {boolean} setImmediateSupported - Whether setImmediate is supported. + * @param {boolean} postMessageSupported - Whether postMessage is supported. + * @returns {Function} A function to schedule a callback asynchronously. + */ +const _setImmediate = ((setImmediateSupported, postMessageSupported) => { + if (setImmediateSupported) { + return setImmediate; + } + + return postMessageSupported + ? ((token, callbacks) => { + _global.addEventListener( + 'message', + ({ source, data }) => { + if (source === _global && data === token) { + callbacks.length && callbacks.shift()(); + } + }, + false + ); + + return (cb) => { + callbacks.push(cb); + _global.postMessage(token, '*'); + }; + })(`axios@${Math.random()}`, []) + : (cb) => setTimeout(cb); +})(typeof setImmediate === 'function', isFunction$1(_global.postMessage)); + +/** + * Schedules a microtask or asynchronous callback as soon as possible. + * Uses queueMicrotask if available, otherwise falls back to process.nextTick or _setImmediate. + * + * @type {Function} + */ +const asap = + typeof queueMicrotask !== 'undefined' + ? queueMicrotask.bind(_global) + : (typeof process !== 'undefined' && process.nextTick) || _setImmediate; + +// ********************* + +const isIterable = (thing) => thing != null && isFunction$1(thing[iterator]); + +var utils$1 = { + isArray, + isArrayBuffer, + isBuffer, + isFormData, + isArrayBufferView, + isString, + isNumber, + isBoolean, + isObject, + isPlainObject, + isEmptyObject, + isReadableStream, + isRequest, + isResponse, + isHeaders, + isUndefined, + isDate, + isFile, + isReactNativeBlob, + isReactNative, + isBlob, + isRegExp, + isFunction: isFunction$1, + isStream, + isURLSearchParams, + isTypedArray, + isFileList, + forEach, + merge, + extend, + trim, + stripBOM, + inherits, + toFlatObject, + kindOf, + kindOfTest, + endsWith, + toArray, + forEachEntry, + matchAll, + isHTMLForm, + hasOwnProperty, + hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection + reduceDescriptors, + freezeMethods, + toObjectSet, + toCamelCase, + noop, + toFiniteNumber, + findKey, + global: _global, + isContextDefined, + isSpecCompliantForm, + toJSONObject, + isAsyncFn, + isThenable, + setImmediate: _setImmediate, + asap, + isIterable, +}; + +class AxiosError extends Error { + static from(error, code, config, request, response, customProps) { + const axiosError = new AxiosError(error.message, code || error.code, config, request, response); + axiosError.cause = error; + axiosError.name = error.name; + + // Preserve status from the original error if not already set from response + if (error.status != null && axiosError.status == null) { + axiosError.status = error.status; + } + + customProps && Object.assign(axiosError, customProps); + return axiosError; + } + + /** + * Create an Error with the specified message, config, error code, request and response. + * + * @param {string} message The error message. + * @param {string} [code] The error code (for example, 'ECONNABORTED'). + * @param {Object} [config] The config. + * @param {Object} [request] The request. + * @param {Object} [response] The response. + * + * @returns {Error} The created error. + */ + constructor(message, code, config, request, response) { + super(message); + + // Make message enumerable to maintain backward compatibility + // The native Error constructor sets message as non-enumerable, + // but axios < v1.13.3 had it as enumerable + Object.defineProperty(this, 'message', { + value: message, + enumerable: true, + writable: true, + configurable: true, + }); + + this.name = 'AxiosError'; + this.isAxiosError = true; + code && (this.code = code); + config && (this.config = config); + request && (this.request = request); + if (response) { + this.response = response; + this.status = response.status; + } + } + + toJSON() { + return { + // Standard + message: this.message, + name: this.name, + // Microsoft + description: this.description, + number: this.number, + // Mozilla + fileName: this.fileName, + lineNumber: this.lineNumber, + columnNumber: this.columnNumber, + stack: this.stack, + // Axios + config: utils$1.toJSONObject(this.config), + code: this.code, + status: this.status, + }; + } +} + +// This can be changed to static properties as soon as the parser options in .eslint.cjs are updated. +AxiosError.ERR_BAD_OPTION_VALUE = 'ERR_BAD_OPTION_VALUE'; +AxiosError.ERR_BAD_OPTION = 'ERR_BAD_OPTION'; +AxiosError.ECONNABORTED = 'ECONNABORTED'; +AxiosError.ETIMEDOUT = 'ETIMEDOUT'; +AxiosError.ERR_NETWORK = 'ERR_NETWORK'; +AxiosError.ERR_FR_TOO_MANY_REDIRECTS = 'ERR_FR_TOO_MANY_REDIRECTS'; +AxiosError.ERR_DEPRECATED = 'ERR_DEPRECATED'; +AxiosError.ERR_BAD_RESPONSE = 'ERR_BAD_RESPONSE'; +AxiosError.ERR_BAD_REQUEST = 'ERR_BAD_REQUEST'; +AxiosError.ERR_CANCELED = 'ERR_CANCELED'; +AxiosError.ERR_NOT_SUPPORT = 'ERR_NOT_SUPPORT'; +AxiosError.ERR_INVALID_URL = 'ERR_INVALID_URL'; +AxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED = 'ERR_FORM_DATA_DEPTH_EXCEEDED'; + +// eslint-disable-next-line strict +var httpAdapter = null; + +/** + * Determines if the given thing is a array or js object. + * + * @param {string} thing - The object or array to be visited. + * + * @returns {boolean} + */ +function isVisitable(thing) { + return utils$1.isPlainObject(thing) || utils$1.isArray(thing); +} + +/** + * It removes the brackets from the end of a string + * + * @param {string} key - The key of the parameter. + * + * @returns {string} the key without the brackets. + */ +function removeBrackets(key) { + return utils$1.endsWith(key, '[]') ? key.slice(0, -2) : key; +} + +/** + * It takes a path, a key, and a boolean, and returns a string + * + * @param {string} path - The path to the current key. + * @param {string} key - The key of the current object being iterated over. + * @param {string} dots - If true, the key will be rendered with dots instead of brackets. + * + * @returns {string} The path to the current key. + */ +function renderKey(path, key, dots) { + if (!path) return key; + return path + .concat(key) + .map(function each(token, i) { + // eslint-disable-next-line no-param-reassign + token = removeBrackets(token); + return !dots && i ? '[' + token + ']' : token; + }) + .join(dots ? '.' : ''); +} + +/** + * If the array is an array and none of its elements are visitable, then it's a flat array. + * + * @param {Array} arr - The array to check + * + * @returns {boolean} + */ +function isFlatArray(arr) { + return utils$1.isArray(arr) && !arr.some(isVisitable); +} + +const predicates = utils$1.toFlatObject(utils$1, {}, null, function filter(prop) { + return /^is[A-Z]/.test(prop); +}); + +/** + * Convert a data object to FormData + * + * @param {Object} obj + * @param {?Object} [formData] + * @param {?Object} [options] + * @param {Function} [options.visitor] + * @param {Boolean} [options.metaTokens = true] + * @param {Boolean} [options.dots = false] + * @param {?Boolean} [options.indexes = false] + * + * @returns {Object} + **/ + +/** + * It converts an object into a FormData object + * + * @param {Object} obj - The object to convert to form data. + * @param {string} formData - The FormData object to append to. + * @param {Object} options + * + * @returns + */ +function toFormData(obj, formData, options) { + if (!utils$1.isObject(obj)) { + throw new TypeError('target must be an object'); + } + + // eslint-disable-next-line no-param-reassign + formData = formData || new (FormData)(); + + // eslint-disable-next-line no-param-reassign + options = utils$1.toFlatObject( + options, + { + metaTokens: true, + dots: false, + indexes: false, + }, + false, + function defined(option, source) { + // eslint-disable-next-line no-eq-null,eqeqeq + return !utils$1.isUndefined(source[option]); + } + ); + + const metaTokens = options.metaTokens; + // eslint-disable-next-line no-use-before-define + const visitor = options.visitor || defaultVisitor; + const dots = options.dots; + const indexes = options.indexes; + const _Blob = options.Blob || (typeof Blob !== 'undefined' && Blob); + const maxDepth = options.maxDepth === undefined ? 100 : options.maxDepth; + const useBlob = _Blob && utils$1.isSpecCompliantForm(formData); + + if (!utils$1.isFunction(visitor)) { + throw new TypeError('visitor must be a function'); + } + + function convertValue(value) { + if (value === null) return ''; + + if (utils$1.isDate(value)) { + return value.toISOString(); + } + + if (utils$1.isBoolean(value)) { + return value.toString(); + } + + if (!useBlob && utils$1.isBlob(value)) { + throw new AxiosError('Blob is not supported. Use a Buffer instead.'); + } + + if (utils$1.isArrayBuffer(value) || utils$1.isTypedArray(value)) { + return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value); + } + + return value; + } + + /** + * Default visitor. + * + * @param {*} value + * @param {String|Number} key + * @param {Array} path + * @this {FormData} + * + * @returns {boolean} return true to visit the each prop of the value recursively + */ + function defaultVisitor(value, key, path) { + let arr = value; + + if (utils$1.isReactNative(formData) && utils$1.isReactNativeBlob(value)) { + formData.append(renderKey(path, key, dots), convertValue(value)); + return false; + } + + if (value && !path && typeof value === 'object') { + if (utils$1.endsWith(key, '{}')) { + // eslint-disable-next-line no-param-reassign + key = metaTokens ? key : key.slice(0, -2); + // eslint-disable-next-line no-param-reassign + value = JSON.stringify(value); + } else if ( + (utils$1.isArray(value) && isFlatArray(value)) || + ((utils$1.isFileList(value) || utils$1.endsWith(key, '[]')) && (arr = utils$1.toArray(value))) + ) { + // eslint-disable-next-line no-param-reassign + key = removeBrackets(key); + + arr.forEach(function each(el, index) { + !(utils$1.isUndefined(el) || el === null) && + formData.append( + // eslint-disable-next-line no-nested-ternary + indexes === true + ? renderKey([key], index, dots) + : indexes === null + ? key + : key + '[]', + convertValue(el) + ); + }); + return false; + } + } + + if (isVisitable(value)) { + return true; + } + + formData.append(renderKey(path, key, dots), convertValue(value)); + + return false; + } + + const stack = []; + + const exposedHelpers = Object.assign(predicates, { + defaultVisitor, + convertValue, + isVisitable, + }); + + function build(value, path, depth = 0) { + if (utils$1.isUndefined(value)) return; + + if (depth > maxDepth) { + throw new AxiosError( + 'Object is too deeply nested (' + depth + ' levels). Max depth: ' + maxDepth, + AxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED + ); + } + + if (stack.indexOf(value) !== -1) { + throw Error('Circular reference detected in ' + path.join('.')); + } + + stack.push(value); + + utils$1.forEach(value, function each(el, key) { + const result = + !(utils$1.isUndefined(el) || el === null) && + visitor.call(formData, el, utils$1.isString(key) ? key.trim() : key, path, exposedHelpers); + + if (result === true) { + build(el, path ? path.concat(key) : [key], depth + 1); + } + }); + + stack.pop(); + } + + if (!utils$1.isObject(obj)) { + throw new TypeError('data must be an object'); + } + + build(obj); + + return formData; +} + +/** + * It encodes a string by replacing all characters that are not in the unreserved set with + * their percent-encoded equivalents + * + * @param {string} str - The string to encode. + * + * @returns {string} The encoded string. + */ +function encode$1(str) { + const charMap = { + '!': '%21', + "'": '%27', + '(': '%28', + ')': '%29', + '~': '%7E', + '%20': '+', + }; + return encodeURIComponent(str).replace(/[!'()~]|%20/g, function replacer(match) { + return charMap[match]; + }); +} + +/** + * It takes a params object and converts it to a FormData object + * + * @param {Object} params - The parameters to be converted to a FormData object. + * @param {Object} options - The options object passed to the Axios constructor. + * + * @returns {void} + */ +function AxiosURLSearchParams(params, options) { + this._pairs = []; + + params && toFormData(params, this, options); +} + +const prototype = AxiosURLSearchParams.prototype; + +prototype.append = function append(name, value) { + this._pairs.push([name, value]); +}; + +prototype.toString = function toString(encoder) { + const _encode = encoder + ? function (value) { + return encoder.call(this, value, encode$1); + } + : encode$1; + + return this._pairs + .map(function each(pair) { + return _encode(pair[0]) + '=' + _encode(pair[1]); + }, '') + .join('&'); +}; + +/** + * It replaces URL-encoded forms of `:`, `$`, `,`, and spaces with + * their plain counterparts (`:`, `$`, `,`, `+`). + * + * @param {string} val The value to be encoded. + * + * @returns {string} The encoded value. + */ +function encode(val) { + return encodeURIComponent(val) + .replace(/%3A/gi, ':') + .replace(/%24/g, '$') + .replace(/%2C/gi, ',') + .replace(/%20/g, '+'); +} + +/** + * Build a URL by appending params to the end + * + * @param {string} url The base of the url (e.g., http://www.google.com) + * @param {object} [params] The params to be appended + * @param {?(object|Function)} options + * + * @returns {string} The formatted url + */ +function buildURL(url, params, options) { + if (!params) { + return url; + } + + const _encode = (options && options.encode) || encode; + + const _options = utils$1.isFunction(options) + ? { + serialize: options, + } + : options; + + const serializeFn = _options && _options.serialize; + + let serializedParams; + + if (serializeFn) { + serializedParams = serializeFn(params, _options); + } else { + serializedParams = utils$1.isURLSearchParams(params) + ? params.toString() + : new AxiosURLSearchParams(params, _options).toString(_encode); + } + + if (serializedParams) { + const hashmarkIndex = url.indexOf('#'); + + if (hashmarkIndex !== -1) { + url = url.slice(0, hashmarkIndex); + } + url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams; + } + + return url; +} + +class InterceptorManager { + constructor() { + this.handlers = []; + } + + /** + * Add a new interceptor to the stack + * + * @param {Function} fulfilled The function to handle `then` for a `Promise` + * @param {Function} rejected The function to handle `reject` for a `Promise` + * @param {Object} options The options for the interceptor, synchronous and runWhen + * + * @return {Number} An ID used to remove interceptor later + */ + use(fulfilled, rejected, options) { + this.handlers.push({ + fulfilled, + rejected, + synchronous: options ? options.synchronous : false, + runWhen: options ? options.runWhen : null, + }); + return this.handlers.length - 1; + } + + /** + * Remove an interceptor from the stack + * + * @param {Number} id The ID that was returned by `use` + * + * @returns {void} + */ + eject(id) { + if (this.handlers[id]) { + this.handlers[id] = null; + } + } + + /** + * Clear all interceptors from the stack + * + * @returns {void} + */ + clear() { + if (this.handlers) { + this.handlers = []; + } + } + + /** + * Iterate over all the registered interceptors + * + * This method is particularly useful for skipping over any + * interceptors that may have become `null` calling `eject`. + * + * @param {Function} fn The function to call for each interceptor + * + * @returns {void} + */ + forEach(fn) { + utils$1.forEach(this.handlers, function forEachHandler(h) { + if (h !== null) { + fn(h); + } + }); + } +} + +var transitionalDefaults = { + silentJSONParsing: true, + forcedJSONParsing: true, + clarifyTimeoutError: false, + legacyInterceptorReqResOrdering: true, +}; + +var URLSearchParams$1 = typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams; + +var FormData$1 = typeof FormData !== 'undefined' ? FormData : null; + +var Blob$1 = typeof Blob !== 'undefined' ? Blob : null; + +var platform$1 = { + isBrowser: true, + classes: { + URLSearchParams: URLSearchParams$1, + FormData: FormData$1, + Blob: Blob$1, + }, + protocols: ['http', 'https', 'file', 'blob', 'url', 'data'], +}; + +const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined'; + +const _navigator = (typeof navigator === 'object' && navigator) || undefined; + +/** + * Determine if we're running in a standard browser environment + * + * This allows axios to run in a web worker, and react-native. + * Both environments support XMLHttpRequest, but not fully standard globals. + * + * web workers: + * typeof window -> undefined + * typeof document -> undefined + * + * react-native: + * navigator.product -> 'ReactNative' + * nativescript + * navigator.product -> 'NativeScript' or 'NS' + * + * @returns {boolean} + */ +const hasStandardBrowserEnv = + hasBrowserEnv && + (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0); + +/** + * Determine if we're running in a standard browser webWorker environment + * + * Although the `isStandardBrowserEnv` method indicates that + * `allows axios to run in a web worker`, the WebWorker will still be + * filtered out due to its judgment standard + * `typeof window !== 'undefined' && typeof document !== 'undefined'`. + * This leads to a problem when axios post `FormData` in webWorker + */ +const hasStandardBrowserWebWorkerEnv = (() => { + return ( + typeof WorkerGlobalScope !== 'undefined' && + // eslint-disable-next-line no-undef + self instanceof WorkerGlobalScope && + typeof self.importScripts === 'function' + ); +})(); + +const origin = (hasBrowserEnv && window.location.href) || 'http://localhost'; + +var utils = /*#__PURE__*/Object.freeze({ + __proto__: null, + hasBrowserEnv: hasBrowserEnv, + hasStandardBrowserEnv: hasStandardBrowserEnv, + hasStandardBrowserWebWorkerEnv: hasStandardBrowserWebWorkerEnv, + navigator: _navigator, + origin: origin +}); + +var platform = { + ...utils, + ...platform$1, +}; + +function toURLEncodedForm(data, options) { + return toFormData(data, new platform.classes.URLSearchParams(), { + visitor: function (value, key, path, helpers) { + if (platform.isNode && utils$1.isBuffer(value)) { + this.append(key, value.toString('base64')); + return false; + } + + return helpers.defaultVisitor.apply(this, arguments); + }, + ...options, + }); +} + +/** + * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z'] + * + * @param {string} name - The name of the property to get. + * + * @returns An array of strings. + */ +function parsePropPath(name) { + // foo[x][y][z] + // foo.x.y.z + // foo-x-y-z + // foo x y z + return utils$1.matchAll(/\w+|\[(\w*)]/g, name).map((match) => { + return match[0] === '[]' ? '' : match[1] || match[0]; + }); +} + +/** + * Convert an array to an object. + * + * @param {Array} arr - The array to convert to an object. + * + * @returns An object with the same keys and values as the array. + */ +function arrayToObject(arr) { + const obj = {}; + const keys = Object.keys(arr); + let i; + const len = keys.length; + let key; + for (i = 0; i < len; i++) { + key = keys[i]; + obj[key] = arr[key]; + } + return obj; +} + +/** + * It takes a FormData object and returns a JavaScript object + * + * @param {string} formData The FormData object to convert to JSON. + * + * @returns {Object | null} The converted object. + */ +function formDataToJSON(formData) { + function buildPath(path, value, target, index) { + let name = path[index++]; + + if (name === '__proto__') return true; + + const isNumericKey = Number.isFinite(+name); + const isLast = index >= path.length; + name = !name && utils$1.isArray(target) ? target.length : name; + + if (isLast) { + if (utils$1.hasOwnProp(target, name)) { + target[name] = utils$1.isArray(target[name]) + ? target[name].concat(value) + : [target[name], value]; + } else { + target[name] = value; + } + + return !isNumericKey; + } + + if (!target[name] || !utils$1.isObject(target[name])) { + target[name] = []; + } + + const result = buildPath(path, value, target[name], index); + + if (result && utils$1.isArray(target[name])) { + target[name] = arrayToObject(target[name]); + } + + return !isNumericKey; + } + + if (utils$1.isFormData(formData) && utils$1.isFunction(formData.entries)) { + const obj = {}; + + utils$1.forEachEntry(formData, (name, value) => { + buildPath(parsePropPath(name), value, obj, 0); + }); + + return obj; + } + + return null; +} + +const own = (obj, key) => (obj != null && utils$1.hasOwnProp(obj, key) ? obj[key] : undefined); + +/** + * It takes a string, tries to parse it, and if it fails, it returns the stringified version + * of the input + * + * @param {any} rawValue - The value to be stringified. + * @param {Function} parser - A function that parses a string into a JavaScript object. + * @param {Function} encoder - A function that takes a value and returns a string. + * + * @returns {string} A stringified version of the rawValue. + */ +function stringifySafely(rawValue, parser, encoder) { + if (utils$1.isString(rawValue)) { + try { + (parser || JSON.parse)(rawValue); + return utils$1.trim(rawValue); + } catch (e) { + if (e.name !== 'SyntaxError') { + throw e; + } + } + } + + return (encoder || JSON.stringify)(rawValue); +} + +const defaults = { + transitional: transitionalDefaults, + + adapter: ['xhr', 'http', 'fetch'], + + transformRequest: [ + function transformRequest(data, headers) { + const contentType = headers.getContentType() || ''; + const hasJSONContentType = contentType.indexOf('application/json') > -1; + const isObjectPayload = utils$1.isObject(data); + + if (isObjectPayload && utils$1.isHTMLForm(data)) { + data = new FormData(data); + } + + const isFormData = utils$1.isFormData(data); + + if (isFormData) { + return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data; + } + + if ( + utils$1.isArrayBuffer(data) || + utils$1.isBuffer(data) || + utils$1.isStream(data) || + utils$1.isFile(data) || + utils$1.isBlob(data) || + utils$1.isReadableStream(data) + ) { + return data; + } + if (utils$1.isArrayBufferView(data)) { + return data.buffer; + } + if (utils$1.isURLSearchParams(data)) { + headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false); + return data.toString(); + } + + let isFileList; + + if (isObjectPayload) { + const formSerializer = own(this, 'formSerializer'); + if (contentType.indexOf('application/x-www-form-urlencoded') > -1) { + return toURLEncodedForm(data, formSerializer).toString(); + } + + if ( + (isFileList = utils$1.isFileList(data)) || + contentType.indexOf('multipart/form-data') > -1 + ) { + const env = own(this, 'env'); + const _FormData = env && env.FormData; + + return toFormData( + isFileList ? { 'files[]': data } : data, + _FormData && new _FormData(), + formSerializer + ); + } + } + + if (isObjectPayload || hasJSONContentType) { + headers.setContentType('application/json', false); + return stringifySafely(data); + } + + return data; + }, + ], + + transformResponse: [ + function transformResponse(data) { + const transitional = own(this, 'transitional') || defaults.transitional; + const forcedJSONParsing = transitional && transitional.forcedJSONParsing; + const responseType = own(this, 'responseType'); + const JSONRequested = responseType === 'json'; + + if (utils$1.isResponse(data) || utils$1.isReadableStream(data)) { + return data; + } + + if ( + data && + utils$1.isString(data) && + ((forcedJSONParsing && !responseType) || JSONRequested) + ) { + const silentJSONParsing = transitional && transitional.silentJSONParsing; + const strictJSONParsing = !silentJSONParsing && JSONRequested; + + try { + return JSON.parse(data, own(this, 'parseReviver')); + } catch (e) { + if (strictJSONParsing) { + if (e.name === 'SyntaxError') { + throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, own(this, 'response')); + } + throw e; + } + } + } + + return data; + }, + ], + + /** + * A timeout in milliseconds to abort a request. If set to 0 (default) a + * timeout is not created. + */ + timeout: 0, + + xsrfCookieName: 'XSRF-TOKEN', + xsrfHeaderName: 'X-XSRF-TOKEN', + + maxContentLength: -1, + maxBodyLength: -1, + + env: { + FormData: platform.classes.FormData, + Blob: platform.classes.Blob, + }, + + validateStatus: function validateStatus(status) { + return status >= 200 && status < 300; + }, + + headers: { + common: { + Accept: 'application/json, text/plain, */*', + 'Content-Type': undefined, + }, + }, +}; + +utils$1.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => { + defaults.headers[method] = {}; +}); + +// RawAxiosHeaders whose duplicates are ignored by node +// c.f. https://nodejs.org/api/http.html#http_message_headers +const ignoreDuplicateOf = utils$1.toObjectSet([ + 'age', + 'authorization', + 'content-length', + 'content-type', + 'etag', + 'expires', + 'from', + 'host', + 'if-modified-since', + 'if-unmodified-since', + 'last-modified', + 'location', + 'max-forwards', + 'proxy-authorization', + 'referer', + 'retry-after', + 'user-agent', +]); + +/** + * Parse headers into an object + * + * ``` + * Date: Wed, 27 Aug 2014 08:58:49 GMT + * Content-Type: application/json + * Connection: keep-alive + * Transfer-Encoding: chunked + * ``` + * + * @param {String} rawHeaders Headers needing to be parsed + * + * @returns {Object} Headers parsed into an object + */ +var parseHeaders = (rawHeaders) => { + const parsed = {}; + let key; + let val; + let i; + + rawHeaders && + rawHeaders.split('\n').forEach(function parser(line) { + i = line.indexOf(':'); + key = line.substring(0, i).trim().toLowerCase(); + val = line.substring(i + 1).trim(); + + if (!key || (parsed[key] && ignoreDuplicateOf[key])) { + return; + } + + if (key === 'set-cookie') { + if (parsed[key]) { + parsed[key].push(val); + } else { + parsed[key] = [val]; + } + } else { + parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val; + } + }); + + return parsed; +}; + +const $internals = Symbol('internals'); + +const INVALID_HEADER_VALUE_CHARS_RE = /[^\x09\x20-\x7E\x80-\xFF]/g; + +function trimSPorHTAB(str) { + let start = 0; + let end = str.length; + + while (start < end) { + const code = str.charCodeAt(start); + + if (code !== 0x09 && code !== 0x20) { + break; + } + + start += 1; + } + + while (end > start) { + const code = str.charCodeAt(end - 1); + + if (code !== 0x09 && code !== 0x20) { + break; + } + + end -= 1; + } + + return start === 0 && end === str.length ? str : str.slice(start, end); +} + +function normalizeHeader(header) { + return header && String(header).trim().toLowerCase(); +} + +function sanitizeHeaderValue(str) { + return trimSPorHTAB(str.replace(INVALID_HEADER_VALUE_CHARS_RE, '')); +} + +function normalizeValue(value) { + if (value === false || value == null) { + return value; + } + + return utils$1.isArray(value) ? value.map(normalizeValue) : sanitizeHeaderValue(String(value)); +} + +function parseTokens(str) { + const tokens = Object.create(null); + const tokensRE = /([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g; + let match; + + while ((match = tokensRE.exec(str))) { + tokens[match[1]] = match[2]; + } + + return tokens; +} + +const isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim()); + +function matchHeaderValue(context, value, header, filter, isHeaderNameFilter) { + if (utils$1.isFunction(filter)) { + return filter.call(this, value, header); + } + + if (isHeaderNameFilter) { + value = header; + } + + if (!utils$1.isString(value)) return; + + if (utils$1.isString(filter)) { + return value.indexOf(filter) !== -1; + } + + if (utils$1.isRegExp(filter)) { + return filter.test(value); + } +} + +function formatHeader(header) { + return header + .trim() + .toLowerCase() + .replace(/([a-z\d])(\w*)/g, (w, char, str) => { + return char.toUpperCase() + str; + }); +} + +function buildAccessors(obj, header) { + const accessorName = utils$1.toCamelCase(' ' + header); + + ['get', 'set', 'has'].forEach((methodName) => { + Object.defineProperty(obj, methodName + accessorName, { + value: function (arg1, arg2, arg3) { + return this[methodName].call(this, header, arg1, arg2, arg3); + }, + configurable: true, + }); + }); +} + +class AxiosHeaders { + constructor(headers) { + headers && this.set(headers); + } + + set(header, valueOrRewrite, rewrite) { + const self = this; + + function setHeader(_value, _header, _rewrite) { + const lHeader = normalizeHeader(_header); + + if (!lHeader) { + throw new Error('header name must be a non-empty string'); + } + + const key = utils$1.findKey(self, lHeader); + + if ( + !key || + self[key] === undefined || + _rewrite === true || + (_rewrite === undefined && self[key] !== false) + ) { + self[key || _header] = normalizeValue(_value); + } + } + + const setHeaders = (headers, _rewrite) => + utils$1.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite)); + + if (utils$1.isPlainObject(header) || header instanceof this.constructor) { + setHeaders(header, valueOrRewrite); + } else if (utils$1.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) { + setHeaders(parseHeaders(header), valueOrRewrite); + } else if (utils$1.isObject(header) && utils$1.isIterable(header)) { + let obj = {}, + dest, + key; + for (const entry of header) { + if (!utils$1.isArray(entry)) { + throw TypeError('Object iterator must return a key-value pair'); + } + + obj[(key = entry[0])] = (dest = obj[key]) + ? utils$1.isArray(dest) + ? [...dest, entry[1]] + : [dest, entry[1]] + : entry[1]; + } + + setHeaders(obj, valueOrRewrite); + } else { + header != null && setHeader(valueOrRewrite, header, rewrite); + } + + return this; + } + + get(header, parser) { + header = normalizeHeader(header); + + if (header) { + const key = utils$1.findKey(this, header); + + if (key) { + const value = this[key]; + + if (!parser) { + return value; + } + + if (parser === true) { + return parseTokens(value); + } + + if (utils$1.isFunction(parser)) { + return parser.call(this, value, key); + } + + if (utils$1.isRegExp(parser)) { + return parser.exec(value); + } + + throw new TypeError('parser must be boolean|regexp|function'); + } + } + } + + has(header, matcher) { + header = normalizeHeader(header); + + if (header) { + const key = utils$1.findKey(this, header); + + return !!( + key && + this[key] !== undefined && + (!matcher || matchHeaderValue(this, this[key], key, matcher)) + ); + } + + return false; + } + + delete(header, matcher) { + const self = this; + let deleted = false; + + function deleteHeader(_header) { + _header = normalizeHeader(_header); + + if (_header) { + const key = utils$1.findKey(self, _header); + + if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) { + delete self[key]; + + deleted = true; + } + } + } + + if (utils$1.isArray(header)) { + header.forEach(deleteHeader); + } else { + deleteHeader(header); + } + + return deleted; + } + + clear(matcher) { + const keys = Object.keys(this); + let i = keys.length; + let deleted = false; + + while (i--) { + const key = keys[i]; + if (!matcher || matchHeaderValue(this, this[key], key, matcher, true)) { + delete this[key]; + deleted = true; + } + } + + return deleted; + } + + normalize(format) { + const self = this; + const headers = {}; + + utils$1.forEach(this, (value, header) => { + const key = utils$1.findKey(headers, header); + + if (key) { + self[key] = normalizeValue(value); + delete self[header]; + return; + } + + const normalized = format ? formatHeader(header) : String(header).trim(); + + if (normalized !== header) { + delete self[header]; + } + + self[normalized] = normalizeValue(value); + + headers[normalized] = true; + }); + + return this; + } + + concat(...targets) { + return this.constructor.concat(this, ...targets); + } + + toJSON(asStrings) { + const obj = Object.create(null); + + utils$1.forEach(this, (value, header) => { + value != null && + value !== false && + (obj[header] = asStrings && utils$1.isArray(value) ? value.join(', ') : value); + }); + + return obj; + } + + [Symbol.iterator]() { + return Object.entries(this.toJSON())[Symbol.iterator](); + } + + toString() { + return Object.entries(this.toJSON()) + .map(([header, value]) => header + ': ' + value) + .join('\n'); + } + + getSetCookie() { + return this.get('set-cookie') || []; + } + + get [Symbol.toStringTag]() { + return 'AxiosHeaders'; + } + + static from(thing) { + return thing instanceof this ? thing : new this(thing); + } + + static concat(first, ...targets) { + const computed = new this(first); + + targets.forEach((target) => computed.set(target)); + + return computed; + } + + static accessor(header) { + const internals = + (this[$internals] = + this[$internals] = + { + accessors: {}, + }); + + const accessors = internals.accessors; + const prototype = this.prototype; + + function defineAccessor(_header) { + const lHeader = normalizeHeader(_header); + + if (!accessors[lHeader]) { + buildAccessors(prototype, _header); + accessors[lHeader] = true; + } + } + + utils$1.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header); + + return this; + } +} + +AxiosHeaders.accessor([ + 'Content-Type', + 'Content-Length', + 'Accept', + 'Accept-Encoding', + 'User-Agent', + 'Authorization', +]); + +// reserved names hotfix +utils$1.reduceDescriptors(AxiosHeaders.prototype, ({ value }, key) => { + let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set` + return { + get: () => value, + set(headerValue) { + this[mapped] = headerValue; + }, + }; +}); + +utils$1.freezeMethods(AxiosHeaders); + +/** + * Transform the data for a request or a response + * + * @param {Array|Function} fns A single function or Array of functions + * @param {?Object} response The response object + * + * @returns {*} The resulting transformed data + */ +function transformData(fns, response) { + const config = this || defaults; + const context = response || config; + const headers = AxiosHeaders.from(context.headers); + let data = context.data; + + utils$1.forEach(fns, function transform(fn) { + data = fn.call(config, data, headers.normalize(), response ? response.status : undefined); + }); + + headers.normalize(); + + return data; +} + +function isCancel(value) { + return !!(value && value.__CANCEL__); +} + +class CanceledError extends AxiosError { + /** + * A `CanceledError` is an object that is thrown when an operation is canceled. + * + * @param {string=} message The message. + * @param {Object=} config The config. + * @param {Object=} request The request. + * + * @returns {CanceledError} The created error. + */ + constructor(message, config, request) { + super(message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request); + this.name = 'CanceledError'; + this.__CANCEL__ = true; + } +} + +/** + * Resolve or reject a Promise based on response status. + * + * @param {Function} resolve A function that resolves the promise. + * @param {Function} reject A function that rejects the promise. + * @param {object} response The response. + * + * @returns {object} The response. + */ +function settle(resolve, reject, response) { + const validateStatus = response.config.validateStatus; + if (!response.status || !validateStatus || validateStatus(response.status)) { + resolve(response); + } else { + reject( + new AxiosError( + 'Request failed with status code ' + response.status, + [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][ + Math.floor(response.status / 100) - 4 + ], + response.config, + response.request, + response + ) + ); + } +} + +function parseProtocol(url) { + const match = /^([-+\w]{1,25})(:?\/\/|:)/.exec(url); + return (match && match[1]) || ''; +} + +/** + * Calculate data maxRate + * @param {Number} [samplesCount= 10] + * @param {Number} [min= 1000] + * @returns {Function} + */ +function speedometer(samplesCount, min) { + samplesCount = samplesCount || 10; + const bytes = new Array(samplesCount); + const timestamps = new Array(samplesCount); + let head = 0; + let tail = 0; + let firstSampleTS; + + min = min !== undefined ? min : 1000; + + return function push(chunkLength) { + const now = Date.now(); + + const startedAt = timestamps[tail]; + + if (!firstSampleTS) { + firstSampleTS = now; + } + + bytes[head] = chunkLength; + timestamps[head] = now; + + let i = tail; + let bytesCount = 0; + + while (i !== head) { + bytesCount += bytes[i++]; + i = i % samplesCount; + } + + head = (head + 1) % samplesCount; + + if (head === tail) { + tail = (tail + 1) % samplesCount; + } + + if (now - firstSampleTS < min) { + return; + } + + const passed = startedAt && now - startedAt; + + return passed ? Math.round((bytesCount * 1000) / passed) : undefined; + }; +} + +/** + * Throttle decorator + * @param {Function} fn + * @param {Number} freq + * @return {Function} + */ +function throttle(fn, freq) { + let timestamp = 0; + let threshold = 1000 / freq; + let lastArgs; + let timer; + + const invoke = (args, now = Date.now()) => { + timestamp = now; + lastArgs = null; + if (timer) { + clearTimeout(timer); + timer = null; + } + fn(...args); + }; + + const throttled = (...args) => { + const now = Date.now(); + const passed = now - timestamp; + if (passed >= threshold) { + invoke(args, now); + } else { + lastArgs = args; + if (!timer) { + timer = setTimeout(() => { + timer = null; + invoke(lastArgs); + }, threshold - passed); + } + } + }; + + const flush = () => lastArgs && invoke(lastArgs); + + return [throttled, flush]; +} + +const progressEventReducer = (listener, isDownloadStream, freq = 3) => { + let bytesNotified = 0; + const _speedometer = speedometer(50, 250); + + return throttle((e) => { + const rawLoaded = e.loaded; + const total = e.lengthComputable ? e.total : undefined; + const loaded = total != null ? Math.min(rawLoaded, total) : rawLoaded; + const progressBytes = Math.max(0, loaded - bytesNotified); + const rate = _speedometer(progressBytes); + + bytesNotified = Math.max(bytesNotified, loaded); + + const data = { + loaded, + total, + progress: total ? loaded / total : undefined, + bytes: progressBytes, + rate: rate ? rate : undefined, + estimated: rate && total ? (total - loaded) / rate : undefined, + event: e, + lengthComputable: total != null, + [isDownloadStream ? 'download' : 'upload']: true, + }; + + listener(data); + }, freq); +}; + +const progressEventDecorator = (total, throttled) => { + const lengthComputable = total != null; + + return [ + (loaded) => + throttled[0]({ + lengthComputable, + total, + loaded, + }), + throttled[1], + ]; +}; + +const asyncDecorator = + (fn) => + (...args) => + utils$1.asap(() => fn(...args)); + +var isURLSameOrigin = platform.hasStandardBrowserEnv + ? ((origin, isMSIE) => (url) => { + url = new URL(url, platform.origin); + + return ( + origin.protocol === url.protocol && + origin.host === url.host && + (isMSIE || origin.port === url.port) + ); + })( + new URL(platform.origin), + platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent) + ) + : () => true; + +var cookies = platform.hasStandardBrowserEnv + ? // Standard browser envs support document.cookie + { + write(name, value, expires, path, domain, secure, sameSite) { + if (typeof document === 'undefined') return; + + const cookie = [`${name}=${encodeURIComponent(value)}`]; + + if (utils$1.isNumber(expires)) { + cookie.push(`expires=${new Date(expires).toUTCString()}`); + } + if (utils$1.isString(path)) { + cookie.push(`path=${path}`); + } + if (utils$1.isString(domain)) { + cookie.push(`domain=${domain}`); + } + if (secure === true) { + cookie.push('secure'); + } + if (utils$1.isString(sameSite)) { + cookie.push(`SameSite=${sameSite}`); + } + + document.cookie = cookie.join('; '); + }, + + read(name) { + if (typeof document === 'undefined') return null; + const match = document.cookie.match(new RegExp('(?:^|; )' + name + '=([^;]*)')); + return match ? decodeURIComponent(match[1]) : null; + }, + + remove(name) { + this.write(name, '', Date.now() - 86400000, '/'); + }, + } + : // Non-standard browser env (web workers, react-native) lack needed support. + { + write() {}, + read() { + return null; + }, + remove() {}, + }; + +/** + * Determines whether the specified URL is absolute + * + * @param {string} url The URL to test + * + * @returns {boolean} True if the specified URL is absolute, otherwise false + */ +function isAbsoluteURL(url) { + // A URL is considered absolute if it begins with "://" or "//" (protocol-relative URL). + // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed + // by any combination of letters, digits, plus, period, or hyphen. + if (typeof url !== 'string') { + return false; + } + + return /^([a-z][a-z\d+\-.]*:)?\/\//i.test(url); +} + +/** + * Creates a new URL by combining the specified URLs + * + * @param {string} baseURL The base URL + * @param {string} relativeURL The relative URL + * + * @returns {string} The combined URL + */ +function combineURLs(baseURL, relativeURL) { + return relativeURL + ? baseURL.replace(/\/?\/$/, '') + '/' + relativeURL.replace(/^\/+/, '') + : baseURL; +} + +/** + * Creates a new URL by combining the baseURL with the requestedURL, + * only when the requestedURL is not already an absolute URL. + * If the requestURL is absolute, this function returns the requestedURL untouched. + * + * @param {string} baseURL The base URL + * @param {string} requestedURL Absolute or relative URL to combine + * + * @returns {string} The combined full path + */ +function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) { + let isRelativeUrl = !isAbsoluteURL(requestedURL); + if (baseURL && (isRelativeUrl || allowAbsoluteUrls === false)) { + return combineURLs(baseURL, requestedURL); + } + return requestedURL; +} + +const headersToObject = (thing) => (thing instanceof AxiosHeaders ? { ...thing } : thing); + +/** + * Config-specific merge-function which creates a new config-object + * by merging two configuration objects together. + * + * @param {Object} config1 + * @param {Object} config2 + * + * @returns {Object} New object resulting from merging config2 to config1 + */ +function mergeConfig(config1, config2) { + // eslint-disable-next-line no-param-reassign + config2 = config2 || {}; + const config = {}; + + function getMergedValue(target, source, prop, caseless) { + if (utils$1.isPlainObject(target) && utils$1.isPlainObject(source)) { + return utils$1.merge.call({ caseless }, target, source); + } else if (utils$1.isPlainObject(source)) { + return utils$1.merge({}, source); + } else if (utils$1.isArray(source)) { + return source.slice(); + } + return source; + } + + function mergeDeepProperties(a, b, prop, caseless) { + if (!utils$1.isUndefined(b)) { + return getMergedValue(a, b, prop, caseless); + } else if (!utils$1.isUndefined(a)) { + return getMergedValue(undefined, a, prop, caseless); + } + } + + // eslint-disable-next-line consistent-return + function valueFromConfig2(a, b) { + if (!utils$1.isUndefined(b)) { + return getMergedValue(undefined, b); + } + } + + // eslint-disable-next-line consistent-return + function defaultToConfig2(a, b) { + if (!utils$1.isUndefined(b)) { + return getMergedValue(undefined, b); + } else if (!utils$1.isUndefined(a)) { + return getMergedValue(undefined, a); + } + } + + // eslint-disable-next-line consistent-return + function mergeDirectKeys(a, b, prop) { + if (utils$1.hasOwnProp(config2, prop)) { + return getMergedValue(a, b); + } else if (utils$1.hasOwnProp(config1, prop)) { + return getMergedValue(undefined, a); + } + } + + const mergeMap = { + url: valueFromConfig2, + method: valueFromConfig2, + data: valueFromConfig2, + baseURL: defaultToConfig2, + transformRequest: defaultToConfig2, + transformResponse: defaultToConfig2, + paramsSerializer: defaultToConfig2, + timeout: defaultToConfig2, + timeoutMessage: defaultToConfig2, + withCredentials: defaultToConfig2, + withXSRFToken: defaultToConfig2, + adapter: defaultToConfig2, + responseType: defaultToConfig2, + xsrfCookieName: defaultToConfig2, + xsrfHeaderName: defaultToConfig2, + onUploadProgress: defaultToConfig2, + onDownloadProgress: defaultToConfig2, + decompress: defaultToConfig2, + maxContentLength: defaultToConfig2, + maxBodyLength: defaultToConfig2, + beforeRedirect: defaultToConfig2, + transport: defaultToConfig2, + httpAgent: defaultToConfig2, + httpsAgent: defaultToConfig2, + cancelToken: defaultToConfig2, + socketPath: defaultToConfig2, + responseEncoding: defaultToConfig2, + validateStatus: mergeDirectKeys, + headers: (a, b, prop) => + mergeDeepProperties(headersToObject(a), headersToObject(b), prop, true), + }; + + utils$1.forEach(Object.keys({ ...config1, ...config2 }), function computeConfigValue(prop) { + if (prop === '__proto__' || prop === 'constructor' || prop === 'prototype') return; + const merge = utils$1.hasOwnProp(mergeMap, prop) ? mergeMap[prop] : mergeDeepProperties; + const a = utils$1.hasOwnProp(config1, prop) ? config1[prop] : undefined; + const b = utils$1.hasOwnProp(config2, prop) ? config2[prop] : undefined; + const configValue = merge(a, b, prop); + (utils$1.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue); + }); + + return config; +} + +var resolveConfig = (config) => { + const newConfig = mergeConfig({}, config); + + let { data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth } = newConfig; + + newConfig.headers = headers = AxiosHeaders.from(headers); + + newConfig.url = buildURL( + buildFullPath(newConfig.baseURL, newConfig.url, newConfig.allowAbsoluteUrls), + config.params, + config.paramsSerializer + ); + + // HTTP basic authentication + if (auth) { + headers.set( + 'Authorization', + 'Basic ' + + btoa( + (auth.username || '') + + ':' + + (auth.password ? unescape(encodeURIComponent(auth.password)) : '') + ) + ); + } + + if (utils$1.isFormData(data)) { + if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) { + headers.setContentType(undefined); // browser handles it + } else if (utils$1.isFunction(data.getHeaders)) { + // Node.js FormData (like form-data package) + const formHeaders = data.getHeaders(); + // Only set safe headers to avoid overwriting security headers + const allowedHeaders = ['content-type', 'content-length']; + Object.entries(formHeaders).forEach(([key, val]) => { + if (allowedHeaders.includes(key.toLowerCase())) { + headers.set(key, val); + } + }); + } + } + + // Add xsrf header + // This is only done if running in a standard browser environment. + // Specifically not if we're in a web worker, or react-native. + + if (platform.hasStandardBrowserEnv) { + if (utils$1.isFunction(withXSRFToken)) { + withXSRFToken = withXSRFToken(newConfig); + } + + // Strict boolean check — prevents proto-pollution gadgets (e.g. Object.prototype.withXSRFToken = 1) + // and misconfigurations (e.g. "false") from short-circuiting the same-origin check and leaking + // the XSRF token cross-origin. See GHSA-xx6v-rp6x-q39c. + const shouldSendXSRF = + withXSRFToken === true || + (withXSRFToken == null && isURLSameOrigin(newConfig.url)); + + if (shouldSendXSRF) { + const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName); + + if (xsrfValue) { + headers.set(xsrfHeaderName, xsrfValue); + } + } + } + + return newConfig; +}; + +const isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined'; + +var xhrAdapter = isXHRAdapterSupported && + function (config) { + return new Promise(function dispatchXhrRequest(resolve, reject) { + const _config = resolveConfig(config); + let requestData = _config.data; + const requestHeaders = AxiosHeaders.from(_config.headers).normalize(); + let { responseType, onUploadProgress, onDownloadProgress } = _config; + let onCanceled; + let uploadThrottled, downloadThrottled; + let flushUpload, flushDownload; + + function done() { + flushUpload && flushUpload(); // flush events + flushDownload && flushDownload(); // flush events + + _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled); + + _config.signal && _config.signal.removeEventListener('abort', onCanceled); + } + + let request = new XMLHttpRequest(); + + request.open(_config.method.toUpperCase(), _config.url, true); + + // Set the request timeout in MS + request.timeout = _config.timeout; + + function onloadend() { + if (!request) { + return; + } + // Prepare the response + const responseHeaders = AxiosHeaders.from( + 'getAllResponseHeaders' in request && request.getAllResponseHeaders() + ); + const responseData = + !responseType || responseType === 'text' || responseType === 'json' + ? request.responseText + : request.response; + const response = { + data: responseData, + status: request.status, + statusText: request.statusText, + headers: responseHeaders, + config, + request, + }; + + settle( + function _resolve(value) { + resolve(value); + done(); + }, + function _reject(err) { + reject(err); + done(); + }, + response + ); + + // Clean up request + request = null; + } + + if ('onloadend' in request) { + // Use onloadend if available + request.onloadend = onloadend; + } else { + // Listen for ready state to emulate onloadend + request.onreadystatechange = function handleLoad() { + if (!request || request.readyState !== 4) { + return; + } + + // The request errored out and we didn't get a response, this will be + // handled by onerror instead + // With one exception: request that using file: protocol, most browsers + // will return status as 0 even though it's a successful request + if ( + request.status === 0 && + !(request.responseURL && request.responseURL.indexOf('file:') === 0) + ) { + return; + } + // readystate handler is calling before onerror or ontimeout handlers, + // so we should call onloadend on the next 'tick' + setTimeout(onloadend); + }; + } + + // Handle browser request cancellation (as opposed to a manual cancellation) + request.onabort = function handleAbort() { + if (!request) { + return; + } + + reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request)); + + // Clean up request + request = null; + }; + + // Handle low level network errors + request.onerror = function handleError(event) { + // Browsers deliver a ProgressEvent in XHR onerror + // (message may be empty; when present, surface it) + // See https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/error_event + const msg = event && event.message ? event.message : 'Network Error'; + const err = new AxiosError(msg, AxiosError.ERR_NETWORK, config, request); + // attach the underlying event for consumers who want details + err.event = event || null; + reject(err); + request = null; + }; + + // Handle timeout + request.ontimeout = function handleTimeout() { + let timeoutErrorMessage = _config.timeout + ? 'timeout of ' + _config.timeout + 'ms exceeded' + : 'timeout exceeded'; + const transitional = _config.transitional || transitionalDefaults; + if (_config.timeoutErrorMessage) { + timeoutErrorMessage = _config.timeoutErrorMessage; + } + reject( + new AxiosError( + timeoutErrorMessage, + transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED, + config, + request + ) + ); + + // Clean up request + request = null; + }; + + // Remove Content-Type if data is undefined + requestData === undefined && requestHeaders.setContentType(null); + + // Add headers to the request + if ('setRequestHeader' in request) { + utils$1.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) { + request.setRequestHeader(key, val); + }); + } + + // Add withCredentials to request if needed + if (!utils$1.isUndefined(_config.withCredentials)) { + request.withCredentials = !!_config.withCredentials; + } + + // Add responseType to request if needed + if (responseType && responseType !== 'json') { + request.responseType = _config.responseType; + } + + // Handle progress if needed + if (onDownloadProgress) { + [downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true); + request.addEventListener('progress', downloadThrottled); + } + + // Not all browsers support upload events + if (onUploadProgress && request.upload) { + [uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress); + + request.upload.addEventListener('progress', uploadThrottled); + + request.upload.addEventListener('loadend', flushUpload); + } + + if (_config.cancelToken || _config.signal) { + // Handle cancellation + // eslint-disable-next-line func-names + onCanceled = (cancel) => { + if (!request) { + return; + } + reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel); + request.abort(); + request = null; + }; + + _config.cancelToken && _config.cancelToken.subscribe(onCanceled); + if (_config.signal) { + _config.signal.aborted + ? onCanceled() + : _config.signal.addEventListener('abort', onCanceled); + } + } + + const protocol = parseProtocol(_config.url); + + if (protocol && platform.protocols.indexOf(protocol) === -1) { + reject( + new AxiosError( + 'Unsupported protocol ' + protocol + ':', + AxiosError.ERR_BAD_REQUEST, + config + ) + ); + return; + } + + // Send the request + request.send(requestData || null); + }); + }; + +const composeSignals = (signals, timeout) => { + const { length } = (signals = signals ? signals.filter(Boolean) : []); + + if (timeout || length) { + let controller = new AbortController(); + + let aborted; + + const onabort = function (reason) { + if (!aborted) { + aborted = true; + unsubscribe(); + const err = reason instanceof Error ? reason : this.reason; + controller.abort( + err instanceof AxiosError + ? err + : new CanceledError(err instanceof Error ? err.message : err) + ); + } + }; + + let timer = + timeout && + setTimeout(() => { + timer = null; + onabort(new AxiosError(`timeout of ${timeout}ms exceeded`, AxiosError.ETIMEDOUT)); + }, timeout); + + const unsubscribe = () => { + if (signals) { + timer && clearTimeout(timer); + timer = null; + signals.forEach((signal) => { + signal.unsubscribe + ? signal.unsubscribe(onabort) + : signal.removeEventListener('abort', onabort); + }); + signals = null; + } + }; + + signals.forEach((signal) => signal.addEventListener('abort', onabort)); + + const { signal } = controller; + + signal.unsubscribe = () => utils$1.asap(unsubscribe); + + return signal; + } +}; + +const streamChunk = function* (chunk, chunkSize) { + let len = chunk.byteLength; + + if (len < chunkSize) { + yield chunk; + return; + } + + let pos = 0; + let end; + + while (pos < len) { + end = pos + chunkSize; + yield chunk.slice(pos, end); + pos = end; + } +}; + +const readBytes = async function* (iterable, chunkSize) { + for await (const chunk of readStream(iterable)) { + yield* streamChunk(chunk, chunkSize); + } +}; + +const readStream = async function* (stream) { + if (stream[Symbol.asyncIterator]) { + yield* stream; + return; + } + + const reader = stream.getReader(); + try { + for (;;) { + const { done, value } = await reader.read(); + if (done) { + break; + } + yield value; + } + } finally { + await reader.cancel(); + } +}; + +const trackStream = (stream, chunkSize, onProgress, onFinish) => { + const iterator = readBytes(stream, chunkSize); + + let bytes = 0; + let done; + let _onFinish = (e) => { + if (!done) { + done = true; + onFinish && onFinish(e); + } + }; + + return new ReadableStream( + { + async pull(controller) { + try { + const { done, value } = await iterator.next(); + + if (done) { + _onFinish(); + controller.close(); + return; + } + + let len = value.byteLength; + if (onProgress) { + let loadedBytes = (bytes += len); + onProgress(loadedBytes); + } + controller.enqueue(new Uint8Array(value)); + } catch (err) { + _onFinish(err); + throw err; + } + }, + cancel(reason) { + _onFinish(reason); + return iterator.return(); + }, + }, + { + highWaterMark: 2, + } + ); +}; + +const DEFAULT_CHUNK_SIZE = 64 * 1024; + +const { isFunction } = utils$1; + +const globalFetchAPI = (({ Request, Response }) => ({ + Request, + Response, +}))(utils$1.global); + +const { ReadableStream: ReadableStream$1, TextEncoder } = utils$1.global; + +const test = (fn, ...args) => { + try { + return !!fn(...args); + } catch (e) { + return false; + } +}; + +const factory = (env) => { + env = utils$1.merge.call( + { + skipUndefined: true, + }, + globalFetchAPI, + env + ); + + const { fetch: envFetch, Request, Response } = env; + const isFetchSupported = envFetch ? isFunction(envFetch) : typeof fetch === 'function'; + const isRequestSupported = isFunction(Request); + const isResponseSupported = isFunction(Response); + + if (!isFetchSupported) { + return false; + } + + const isReadableStreamSupported = isFetchSupported && isFunction(ReadableStream$1); + + const encodeText = + isFetchSupported && + (typeof TextEncoder === 'function' + ? ( + (encoder) => (str) => + encoder.encode(str) + )(new TextEncoder()) + : async (str) => new Uint8Array(await new Request(str).arrayBuffer())); + + const supportsRequestStream = + isRequestSupported && + isReadableStreamSupported && + test(() => { + let duplexAccessed = false; + + const request = new Request(platform.origin, { + body: new ReadableStream$1(), + method: 'POST', + get duplex() { + duplexAccessed = true; + return 'half'; + }, + }); + + const hasContentType = request.headers.has('Content-Type'); + + if (request.body != null) { + request.body.cancel(); + } + + return duplexAccessed && !hasContentType; + }); + + const supportsResponseStream = + isResponseSupported && + isReadableStreamSupported && + test(() => utils$1.isReadableStream(new Response('').body)); + + const resolvers = { + stream: supportsResponseStream && ((res) => res.body), + }; + + isFetchSupported && + (() => { + ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach((type) => { + !resolvers[type] && + (resolvers[type] = (res, config) => { + let method = res && res[type]; + + if (method) { + return method.call(res); + } + + throw new AxiosError( + `Response type '${type}' is not supported`, + AxiosError.ERR_NOT_SUPPORT, + config + ); + }); + }); + })(); + + const getBodyLength = async (body) => { + if (body == null) { + return 0; + } + + if (utils$1.isBlob(body)) { + return body.size; + } + + if (utils$1.isSpecCompliantForm(body)) { + const _request = new Request(platform.origin, { + method: 'POST', + body, + }); + return (await _request.arrayBuffer()).byteLength; + } + + if (utils$1.isArrayBufferView(body) || utils$1.isArrayBuffer(body)) { + return body.byteLength; + } + + if (utils$1.isURLSearchParams(body)) { + body = body + ''; + } + + if (utils$1.isString(body)) { + return (await encodeText(body)).byteLength; + } + }; + + const resolveBodyLength = async (headers, body) => { + const length = utils$1.toFiniteNumber(headers.getContentLength()); + + return length == null ? getBodyLength(body) : length; + }; + + return async (config) => { + let { + url, + method, + data, + signal, + cancelToken, + timeout, + onDownloadProgress, + onUploadProgress, + responseType, + headers, + withCredentials = 'same-origin', + fetchOptions, + } = resolveConfig(config); + + let _fetch = envFetch || fetch; + + responseType = responseType ? (responseType + '').toLowerCase() : 'text'; + + let composedSignal = composeSignals( + [signal, cancelToken && cancelToken.toAbortSignal()], + timeout + ); + + let request = null; + + const unsubscribe = + composedSignal && + composedSignal.unsubscribe && + (() => { + composedSignal.unsubscribe(); + }); + + let requestContentLength; + + try { + if ( + onUploadProgress && + supportsRequestStream && + method !== 'get' && + method !== 'head' && + (requestContentLength = await resolveBodyLength(headers, data)) !== 0 + ) { + let _request = new Request(url, { + method: 'POST', + body: data, + duplex: 'half', + }); + + let contentTypeHeader; + + if (utils$1.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) { + headers.setContentType(contentTypeHeader); + } + + if (_request.body) { + const [onProgress, flush] = progressEventDecorator( + requestContentLength, + progressEventReducer(asyncDecorator(onUploadProgress)) + ); + + data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush); + } + } + + if (!utils$1.isString(withCredentials)) { + withCredentials = withCredentials ? 'include' : 'omit'; + } + + // Cloudflare Workers throws when credentials are defined + // see https://github.com/cloudflare/workerd/issues/902 + const isCredentialsSupported = isRequestSupported && 'credentials' in Request.prototype; + + // If data is FormData and Content-Type is multipart/form-data without boundary, + // delete it so fetch can set it correctly with the boundary + if (utils$1.isFormData(data)) { + const contentType = headers.getContentType(); + if ( + contentType && + /^multipart\/form-data/i.test(contentType) && + !/boundary=/i.test(contentType) + ) { + headers.delete('content-type'); + } + } + + const resolvedOptions = { + ...fetchOptions, + signal: composedSignal, + method: method.toUpperCase(), + headers: headers.normalize().toJSON(), + body: data, + duplex: 'half', + credentials: isCredentialsSupported ? withCredentials : undefined, + }; + + request = isRequestSupported && new Request(url, resolvedOptions); + + let response = await (isRequestSupported + ? _fetch(request, fetchOptions) + : _fetch(url, resolvedOptions)); + + const isStreamResponse = + supportsResponseStream && (responseType === 'stream' || responseType === 'response'); + + if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) { + const options = {}; + + ['status', 'statusText', 'headers'].forEach((prop) => { + options[prop] = response[prop]; + }); + + const responseContentLength = utils$1.toFiniteNumber(response.headers.get('content-length')); + + const [onProgress, flush] = + (onDownloadProgress && + progressEventDecorator( + responseContentLength, + progressEventReducer(asyncDecorator(onDownloadProgress), true) + )) || + []; + + response = new Response( + trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => { + flush && flush(); + unsubscribe && unsubscribe(); + }), + options + ); + } + + responseType = responseType || 'text'; + + let responseData = await resolvers[utils$1.findKey(resolvers, responseType) || 'text']( + response, + config + ); + + !isStreamResponse && unsubscribe && unsubscribe(); + + return await new Promise((resolve, reject) => { + settle(resolve, reject, { + data: responseData, + headers: AxiosHeaders.from(response.headers), + status: response.status, + statusText: response.statusText, + config, + request, + }); + }); + } catch (err) { + unsubscribe && unsubscribe(); + + if (err && err.name === 'TypeError' && /Load failed|fetch/i.test(err.message)) { + throw Object.assign( + new AxiosError( + 'Network Error', + AxiosError.ERR_NETWORK, + config, + request, + err && err.response + ), + { + cause: err.cause || err, + } + ); + } + + throw AxiosError.from(err, err && err.code, config, request, err && err.response); + } + }; +}; + +const seedCache = new Map(); + +const getFetch = (config) => { + let env = (config && config.env) || {}; + const { fetch, Request, Response } = env; + const seeds = [Request, Response, fetch]; + + let len = seeds.length, + i = len, + seed, + target, + map = seedCache; + + while (i--) { + seed = seeds[i]; + target = map.get(seed); + + target === undefined && map.set(seed, (target = i ? new Map() : factory(env))); + + map = target; + } + + return target; +}; + +getFetch(); + +/** + * Known adapters mapping. + * Provides environment-specific adapters for Axios: + * - `http` for Node.js + * - `xhr` for browsers + * - `fetch` for fetch API-based requests + * + * @type {Object} + */ +const knownAdapters = { + http: httpAdapter, + xhr: xhrAdapter, + fetch: { + get: getFetch, + }, +}; + +// Assign adapter names for easier debugging and identification +utils$1.forEach(knownAdapters, (fn, value) => { + if (fn) { + try { + Object.defineProperty(fn, 'name', { value }); + } catch (e) { + // eslint-disable-next-line no-empty + } + Object.defineProperty(fn, 'adapterName', { value }); + } +}); + +/** + * Render a rejection reason string for unknown or unsupported adapters + * + * @param {string} reason + * @returns {string} + */ +const renderReason = (reason) => `- ${reason}`; + +/** + * Check if the adapter is resolved (function, null, or false) + * + * @param {Function|null|false} adapter + * @returns {boolean} + */ +const isResolvedHandle = (adapter) => + utils$1.isFunction(adapter) || adapter === null || adapter === false; + +/** + * Get the first suitable adapter from the provided list. + * Tries each adapter in order until a supported one is found. + * Throws an AxiosError if no adapter is suitable. + * + * @param {Array|string|Function} adapters - Adapter(s) by name or function. + * @param {Object} config - Axios request configuration + * @throws {AxiosError} If no suitable adapter is available + * @returns {Function} The resolved adapter function + */ +function getAdapter(adapters, config) { + adapters = utils$1.isArray(adapters) ? adapters : [adapters]; + + const { length } = adapters; + let nameOrAdapter; + let adapter; + + const rejectedReasons = {}; + + for (let i = 0; i < length; i++) { + nameOrAdapter = adapters[i]; + let id; + + adapter = nameOrAdapter; + + if (!isResolvedHandle(nameOrAdapter)) { + adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()]; + + if (adapter === undefined) { + throw new AxiosError(`Unknown adapter '${id}'`); + } + } + + if (adapter && (utils$1.isFunction(adapter) || (adapter = adapter.get(config)))) { + break; + } + + rejectedReasons[id || '#' + i] = adapter; + } + + if (!adapter) { + const reasons = Object.entries(rejectedReasons).map( + ([id, state]) => + `adapter ${id} ` + + (state === false ? 'is not supported by the environment' : 'is not available in the build') + ); + + let s = length + ? reasons.length > 1 + ? 'since :\n' + reasons.map(renderReason).join('\n') + : ' ' + renderReason(reasons[0]) + : 'as no adapter specified'; + + throw new AxiosError( + `There is no suitable adapter to dispatch the request ` + s, + 'ERR_NOT_SUPPORT' + ); + } + + return adapter; +} + +/** + * Exports Axios adapters and utility to resolve an adapter + */ +var adapters = { + /** + * Resolve an adapter from a list of adapter names or functions. + * @type {Function} + */ + getAdapter, + + /** + * Exposes all known adapters + * @type {Object} + */ + adapters: knownAdapters, +}; + +/** + * Throws a `CanceledError` if cancellation has been requested. + * + * @param {Object} config The config that is to be used for the request + * + * @returns {void} + */ +function throwIfCancellationRequested(config) { + if (config.cancelToken) { + config.cancelToken.throwIfRequested(); + } + + if (config.signal && config.signal.aborted) { + throw new CanceledError(null, config); + } +} + +/** + * Dispatch a request to the server using the configured adapter. + * + * @param {object} config The config that is to be used for the request + * + * @returns {Promise} The Promise to be fulfilled + */ +function dispatchRequest(config) { + throwIfCancellationRequested(config); + + config.headers = AxiosHeaders.from(config.headers); + + // Transform request data + config.data = transformData.call(config, config.transformRequest); + + if (['post', 'put', 'patch'].indexOf(config.method) !== -1) { + config.headers.setContentType('application/x-www-form-urlencoded', false); + } + + const adapter = adapters.getAdapter(config.adapter || defaults.adapter, config); + + return adapter(config).then( + function onAdapterResolution(response) { + throwIfCancellationRequested(config); + + // Transform response data + response.data = transformData.call(config, config.transformResponse, response); + + response.headers = AxiosHeaders.from(response.headers); + + return response; + }, + function onAdapterRejection(reason) { + if (!isCancel(reason)) { + throwIfCancellationRequested(config); + + // Transform response data + if (reason && reason.response) { + reason.response.data = transformData.call( + config, + config.transformResponse, + reason.response + ); + reason.response.headers = AxiosHeaders.from(reason.response.headers); + } + } + + return Promise.reject(reason); + } + ); +} + +const VERSION = "1.15.1"; + +const validators$1 = {}; + +// eslint-disable-next-line func-names +['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => { + validators$1[type] = function validator(thing) { + return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type; + }; +}); + +const deprecatedWarnings = {}; + +/** + * Transitional option validator + * + * @param {function|boolean?} validator - set to false if the transitional option has been removed + * @param {string?} version - deprecated version / removed since version + * @param {string?} message - some message with additional info + * + * @returns {function} + */ +validators$1.transitional = function transitional(validator, version, message) { + function formatMessage(opt, desc) { + return ( + '[Axios v' + + VERSION + + "] Transitional option '" + + opt + + "'" + + desc + + (message ? '. ' + message : '') + ); + } + + // eslint-disable-next-line func-names + return (value, opt, opts) => { + if (validator === false) { + throw new AxiosError( + formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')), + AxiosError.ERR_DEPRECATED + ); + } + + if (version && !deprecatedWarnings[opt]) { + deprecatedWarnings[opt] = true; + // eslint-disable-next-line no-console + console.warn( + formatMessage( + opt, + ' has been deprecated since v' + version + ' and will be removed in the near future' + ) + ); + } + + return validator ? validator(value, opt, opts) : true; + }; +}; + +validators$1.spelling = function spelling(correctSpelling) { + return (value, opt) => { + // eslint-disable-next-line no-console + console.warn(`${opt} is likely a misspelling of ${correctSpelling}`); + return true; + }; +}; + +/** + * Assert object's properties type + * + * @param {object} options + * @param {object} schema + * @param {boolean?} allowUnknown + * + * @returns {object} + */ + +function assertOptions(options, schema, allowUnknown) { + if (typeof options !== 'object') { + throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE); + } + const keys = Object.keys(options); + let i = keys.length; + while (i-- > 0) { + const opt = keys[i]; + const validator = schema[opt]; + if (validator) { + const value = options[opt]; + const result = value === undefined || validator(value, opt, options); + if (result !== true) { + throw new AxiosError( + 'option ' + opt + ' must be ' + result, + AxiosError.ERR_BAD_OPTION_VALUE + ); + } + continue; + } + if (allowUnknown !== true) { + throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION); + } + } +} + +var validator = { + assertOptions, + validators: validators$1, +}; + +const validators = validator.validators; + +/** + * Create a new instance of Axios + * + * @param {Object} instanceConfig The default config for the instance + * + * @return {Axios} A new instance of Axios + */ +class Axios { + constructor(instanceConfig) { + this.defaults = instanceConfig || {}; + this.interceptors = { + request: new InterceptorManager(), + response: new InterceptorManager(), + }; + } + + /** + * Dispatch a request + * + * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults) + * @param {?Object} config + * + * @returns {Promise} The Promise to be fulfilled + */ + async request(configOrUrl, config) { + try { + return await this._request(configOrUrl, config); + } catch (err) { + if (err instanceof Error) { + let dummy = {}; + + Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error()); + + // slice off the Error: ... line + const stack = (() => { + if (!dummy.stack) { + return ''; + } + + const firstNewlineIndex = dummy.stack.indexOf('\n'); + + return firstNewlineIndex === -1 ? '' : dummy.stack.slice(firstNewlineIndex + 1); + })(); + try { + if (!err.stack) { + err.stack = stack; + // match without the 2 top stack lines + } else if (stack) { + const firstNewlineIndex = stack.indexOf('\n'); + const secondNewlineIndex = + firstNewlineIndex === -1 ? -1 : stack.indexOf('\n', firstNewlineIndex + 1); + const stackWithoutTwoTopLines = + secondNewlineIndex === -1 ? '' : stack.slice(secondNewlineIndex + 1); + + if (!String(err.stack).endsWith(stackWithoutTwoTopLines)) { + err.stack += '\n' + stack; + } + } + } catch (e) { + // ignore the case where "stack" is an un-writable property + } + } + + throw err; + } + } + + _request(configOrUrl, config) { + /*eslint no-param-reassign:0*/ + // Allow for axios('example/url'[, config]) a la fetch API + if (typeof configOrUrl === 'string') { + config = config || {}; + config.url = configOrUrl; + } else { + config = configOrUrl || {}; + } + + config = mergeConfig(this.defaults, config); + + const { transitional, paramsSerializer, headers } = config; + + if (transitional !== undefined) { + validator.assertOptions( + transitional, + { + silentJSONParsing: validators.transitional(validators.boolean), + forcedJSONParsing: validators.transitional(validators.boolean), + clarifyTimeoutError: validators.transitional(validators.boolean), + legacyInterceptorReqResOrdering: validators.transitional(validators.boolean), + }, + false + ); + } + + if (paramsSerializer != null) { + if (utils$1.isFunction(paramsSerializer)) { + config.paramsSerializer = { + serialize: paramsSerializer, + }; + } else { + validator.assertOptions( + paramsSerializer, + { + encode: validators.function, + serialize: validators.function, + }, + true + ); + } + } + + // Set config.allowAbsoluteUrls + if (config.allowAbsoluteUrls !== undefined) ; else if (this.defaults.allowAbsoluteUrls !== undefined) { + config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls; + } else { + config.allowAbsoluteUrls = true; + } + + validator.assertOptions( + config, + { + baseUrl: validators.spelling('baseURL'), + withXsrfToken: validators.spelling('withXSRFToken'), + }, + true + ); + + // Set config.method + config.method = (config.method || this.defaults.method || 'get').toLowerCase(); + + // Flatten headers + let contextHeaders = headers && utils$1.merge(headers.common, headers[config.method]); + + headers && + utils$1.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], (method) => { + delete headers[method]; + }); + + config.headers = AxiosHeaders.concat(contextHeaders, headers); + + // filter out skipped interceptors + const requestInterceptorChain = []; + let synchronousRequestInterceptors = true; + this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) { + if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) { + return; + } + + synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous; + + const transitional = config.transitional || transitionalDefaults; + const legacyInterceptorReqResOrdering = + transitional && transitional.legacyInterceptorReqResOrdering; + + if (legacyInterceptorReqResOrdering) { + requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected); + } else { + requestInterceptorChain.push(interceptor.fulfilled, interceptor.rejected); + } + }); + + const responseInterceptorChain = []; + this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) { + responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected); + }); + + let promise; + let i = 0; + let len; + + if (!synchronousRequestInterceptors) { + const chain = [dispatchRequest.bind(this), undefined]; + chain.unshift(...requestInterceptorChain); + chain.push(...responseInterceptorChain); + len = chain.length; + + promise = Promise.resolve(config); + + while (i < len) { + promise = promise.then(chain[i++], chain[i++]); + } + + return promise; + } + + len = requestInterceptorChain.length; + + let newConfig = config; + + while (i < len) { + const onFulfilled = requestInterceptorChain[i++]; + const onRejected = requestInterceptorChain[i++]; + try { + newConfig = onFulfilled(newConfig); + } catch (error) { + onRejected.call(this, error); + break; + } + } + + try { + promise = dispatchRequest.call(this, newConfig); + } catch (error) { + return Promise.reject(error); + } + + i = 0; + len = responseInterceptorChain.length; + + while (i < len) { + promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]); + } + + return promise; + } + + getUri(config) { + config = mergeConfig(this.defaults, config); + const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls); + return buildURL(fullPath, config.params, config.paramsSerializer); + } +} + +// Provide aliases for supported request methods +utils$1.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) { + /*eslint func-names:0*/ + Axios.prototype[method] = function (url, config) { + return this.request( + mergeConfig(config || {}, { + method, + url, + data: (config || {}).data, + }) + ); + }; +}); + +utils$1.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) { + function generateHTTPMethod(isForm) { + return function httpMethod(url, data, config) { + return this.request( + mergeConfig(config || {}, { + method, + headers: isForm + ? { + 'Content-Type': 'multipart/form-data', + } + : {}, + url, + data, + }) + ); + }; + } + + Axios.prototype[method] = generateHTTPMethod(); + + Axios.prototype[method + 'Form'] = generateHTTPMethod(true); +}); + +/** + * A `CancelToken` is an object that can be used to request cancellation of an operation. + * + * @param {Function} executor The executor function. + * + * @returns {CancelToken} + */ +class CancelToken { + constructor(executor) { + if (typeof executor !== 'function') { + throw new TypeError('executor must be a function.'); + } + + let resolvePromise; + + this.promise = new Promise(function promiseExecutor(resolve) { + resolvePromise = resolve; + }); + + const token = this; + + // eslint-disable-next-line func-names + this.promise.then((cancel) => { + if (!token._listeners) return; + + let i = token._listeners.length; + + while (i-- > 0) { + token._listeners[i](cancel); + } + token._listeners = null; + }); + + // eslint-disable-next-line func-names + this.promise.then = (onfulfilled) => { + let _resolve; + // eslint-disable-next-line func-names + const promise = new Promise((resolve) => { + token.subscribe(resolve); + _resolve = resolve; + }).then(onfulfilled); + + promise.cancel = function reject() { + token.unsubscribe(_resolve); + }; + + return promise; + }; + + executor(function cancel(message, config, request) { + if (token.reason) { + // Cancellation has already been requested + return; + } + + token.reason = new CanceledError(message, config, request); + resolvePromise(token.reason); + }); + } + + /** + * Throws a `CanceledError` if cancellation has been requested. + */ + throwIfRequested() { + if (this.reason) { + throw this.reason; + } + } + + /** + * Subscribe to the cancel signal + */ + + subscribe(listener) { + if (this.reason) { + listener(this.reason); + return; + } + + if (this._listeners) { + this._listeners.push(listener); + } else { + this._listeners = [listener]; + } + } + + /** + * Unsubscribe from the cancel signal + */ + + unsubscribe(listener) { + if (!this._listeners) { + return; + } + const index = this._listeners.indexOf(listener); + if (index !== -1) { + this._listeners.splice(index, 1); + } + } + + toAbortSignal() { + const controller = new AbortController(); + + const abort = (err) => { + controller.abort(err); + }; + + this.subscribe(abort); + + controller.signal.unsubscribe = () => this.unsubscribe(abort); + + return controller.signal; + } + + /** + * Returns an object that contains a new `CancelToken` and a function that, when called, + * cancels the `CancelToken`. + */ + static source() { + let cancel; + const token = new CancelToken(function executor(c) { + cancel = c; + }); + return { + token, + cancel, + }; + } +} + +/** + * Syntactic sugar for invoking a function and expanding an array for arguments. + * + * Common use case would be to use `Function.prototype.apply`. + * + * ```js + * function f(x, y, z) {} + * const args = [1, 2, 3]; + * f.apply(null, args); + * ``` + * + * With `spread` this example can be re-written. + * + * ```js + * spread(function(x, y, z) {})([1, 2, 3]); + * ``` + * + * @param {Function} callback + * + * @returns {Function} + */ +function spread(callback) { + return function wrap(arr) { + return callback.apply(null, arr); + }; +} + +/** + * Determines whether the payload is an error thrown by Axios + * + * @param {*} payload The value to test + * + * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false + */ +function isAxiosError(payload) { + return utils$1.isObject(payload) && payload.isAxiosError === true; +} + +const HttpStatusCode = { + Continue: 100, + SwitchingProtocols: 101, + Processing: 102, + EarlyHints: 103, + Ok: 200, + Created: 201, + Accepted: 202, + NonAuthoritativeInformation: 203, + NoContent: 204, + ResetContent: 205, + PartialContent: 206, + MultiStatus: 207, + AlreadyReported: 208, + ImUsed: 226, + MultipleChoices: 300, + MovedPermanently: 301, + Found: 302, + SeeOther: 303, + NotModified: 304, + UseProxy: 305, + Unused: 306, + TemporaryRedirect: 307, + PermanentRedirect: 308, + BadRequest: 400, + Unauthorized: 401, + PaymentRequired: 402, + Forbidden: 403, + NotFound: 404, + MethodNotAllowed: 405, + NotAcceptable: 406, + ProxyAuthenticationRequired: 407, + RequestTimeout: 408, + Conflict: 409, + Gone: 410, + LengthRequired: 411, + PreconditionFailed: 412, + PayloadTooLarge: 413, + UriTooLong: 414, + UnsupportedMediaType: 415, + RangeNotSatisfiable: 416, + ExpectationFailed: 417, + ImATeapot: 418, + MisdirectedRequest: 421, + UnprocessableEntity: 422, + Locked: 423, + FailedDependency: 424, + TooEarly: 425, + UpgradeRequired: 426, + PreconditionRequired: 428, + TooManyRequests: 429, + RequestHeaderFieldsTooLarge: 431, + UnavailableForLegalReasons: 451, + InternalServerError: 500, + NotImplemented: 501, + BadGateway: 502, + ServiceUnavailable: 503, + GatewayTimeout: 504, + HttpVersionNotSupported: 505, + VariantAlsoNegotiates: 506, + InsufficientStorage: 507, + LoopDetected: 508, + NotExtended: 510, + NetworkAuthenticationRequired: 511, + WebServerIsDown: 521, + ConnectionTimedOut: 522, + OriginIsUnreachable: 523, + TimeoutOccurred: 524, + SslHandshakeFailed: 525, + InvalidSslCertificate: 526, +}; + +Object.entries(HttpStatusCode).forEach(([key, value]) => { + HttpStatusCode[value] = key; +}); + +/** + * Create an instance of Axios + * + * @param {Object} defaultConfig The default config for the instance + * + * @returns {Axios} A new instance of Axios + */ +function createInstance(defaultConfig) { + const context = new Axios(defaultConfig); + const instance = bind(Axios.prototype.request, context); + + // Copy axios.prototype to instance + utils$1.extend(instance, Axios.prototype, context, { allOwnKeys: true }); + + // Copy context to instance + utils$1.extend(instance, context, null, { allOwnKeys: true }); + + // Factory for creating new instances + instance.create = function create(instanceConfig) { + return createInstance(mergeConfig(defaultConfig, instanceConfig)); + }; + + return instance; +} + +// Create the default instance to be exported +const axios = createInstance(defaults); + +// Expose Axios class to allow class inheritance +axios.Axios = Axios; + +// Expose Cancel & CancelToken +axios.CanceledError = CanceledError; +axios.CancelToken = CancelToken; +axios.isCancel = isCancel; +axios.VERSION = VERSION; +axios.toFormData = toFormData; + +// Expose AxiosError class +axios.AxiosError = AxiosError; + +// alias for CanceledError for backward compatibility +axios.Cancel = axios.CanceledError; + +// Expose all/spread +axios.all = function all(promises) { + return Promise.all(promises); +}; + +axios.spread = spread; + +// Expose isAxiosError +axios.isAxiosError = isAxiosError; + +// Expose mergeConfig +axios.mergeConfig = mergeConfig; + +axios.AxiosHeaders = AxiosHeaders; + +axios.formToJSON = (thing) => formDataToJSON(utils$1.isHTMLForm(thing) ? new FormData(thing) : thing); + +axios.getAdapter = adapters.getAdapter; + +axios.HttpStatusCode = HttpStatusCode; + +axios.default = axios; + +module.exports = axios; +//# sourceMappingURL=axios.cjs.map diff --git a/server/api/node_modules/axios/dist/browser/axios.cjs.map b/server/api/node_modules/axios/dist/browser/axios.cjs.map new file mode 100644 index 0000000..d174345 --- /dev/null +++ b/server/api/node_modules/axios/dist/browser/axios.cjs.map @@ -0,0 +1 @@ +{"version":3,"file":"axios.cjs","sources":["../../lib/helpers/bind.js","../../lib/utils.js","../../lib/core/AxiosError.js","../../lib/helpers/null.js","../../lib/helpers/toFormData.js","../../lib/helpers/AxiosURLSearchParams.js","../../lib/helpers/buildURL.js","../../lib/core/InterceptorManager.js","../../lib/defaults/transitional.js","../../lib/platform/browser/classes/URLSearchParams.js","../../lib/platform/browser/classes/FormData.js","../../lib/platform/browser/classes/Blob.js","../../lib/platform/browser/index.js","../../lib/platform/common/utils.js","../../lib/platform/index.js","../../lib/helpers/toURLEncodedForm.js","../../lib/helpers/formDataToJSON.js","../../lib/defaults/index.js","../../lib/helpers/parseHeaders.js","../../lib/core/AxiosHeaders.js","../../lib/core/transformData.js","../../lib/cancel/isCancel.js","../../lib/cancel/CanceledError.js","../../lib/core/settle.js","../../lib/helpers/parseProtocol.js","../../lib/helpers/speedometer.js","../../lib/helpers/throttle.js","../../lib/helpers/progressEventReducer.js","../../lib/helpers/isURLSameOrigin.js","../../lib/helpers/cookies.js","../../lib/helpers/isAbsoluteURL.js","../../lib/helpers/combineURLs.js","../../lib/core/buildFullPath.js","../../lib/core/mergeConfig.js","../../lib/helpers/resolveConfig.js","../../lib/adapters/xhr.js","../../lib/helpers/composeSignals.js","../../lib/helpers/trackStream.js","../../lib/adapters/fetch.js","../../lib/adapters/adapters.js","../../lib/core/dispatchRequest.js","../../lib/env/data.js","../../lib/helpers/validator.js","../../lib/core/Axios.js","../../lib/cancel/CancelToken.js","../../lib/helpers/spread.js","../../lib/helpers/isAxiosError.js","../../lib/helpers/HttpStatusCode.js","../../lib/axios.js"],"sourcesContent":["'use strict';\n\n/**\n * Create a bound version of a function with a specified `this` context\n *\n * @param {Function} fn - The function to bind\n * @param {*} thisArg - The value to be passed as the `this` parameter\n * @returns {Function} A new function that will call the original function with the specified `this` context\n */\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst { toString } = Object.prototype;\nconst { getPrototypeOf } = Object;\nconst { iterator, toStringTag } = Symbol;\n\nconst kindOf = ((cache) => (thing) => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type;\n};\n\nconst typeOfTest = (type) => (thing) => typeof thing === type;\n\n/**\n * Determine if a value is a non-null object\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst { isArray } = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return (\n val !== null &&\n !isUndefined(val) &&\n val.constructor !== null &&\n !isUndefined(val.constructor) &&\n isFunction(val.constructor.isBuffer) &&\n val.constructor.isBuffer(val)\n );\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n result = ArrayBuffer.isView(val);\n } else {\n result = val && val.buffer && isArrayBuffer(val.buffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = (thing) => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (\n (prototype === null ||\n prototype === Object.prototype ||\n Object.getPrototypeOf(prototype) === null) &&\n !(toStringTag in val) &&\n !(iterator in val)\n );\n};\n\n/**\n * Determine if a value is an empty object (safely handles Buffers)\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an empty object, otherwise false\n */\nconst isEmptyObject = (val) => {\n // Early return for non-objects or Buffers to prevent RangeError\n if (!isObject(val) || isBuffer(val)) {\n return false;\n }\n\n try {\n return Object.keys(val).length === 0 && Object.getPrototypeOf(val) === Object.prototype;\n } catch (e) {\n // Fallback for any other objects that might cause RangeError with Object.keys()\n return false;\n }\n};\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a React Native Blob\n * React Native \"blob\": an object with a `uri` attribute. Optionally, it can\n * also have a `name` and `type` attribute to specify filename and content type\n *\n * @see https://github.com/facebook/react-native/blob/26684cf3adf4094eb6c405d345a75bf8c7c0bf88/Libraries/Network/FormData.js#L68-L71\n * \n * @param {*} value The value to test\n * \n * @returns {boolean} True if value is a React Native Blob, otherwise false\n */\nconst isReactNativeBlob = (value) => {\n return !!(value && typeof value.uri !== 'undefined');\n}\n\n/**\n * Determine if environment is React Native\n * ReactNative `FormData` has a non-standard `getParts()` method\n * \n * @param {*} formData The formData to test\n * \n * @returns {boolean} True if environment is React Native, otherwise false\n */\nconst isReactNative = (formData) => formData && typeof formData.getParts !== 'undefined';\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction getGlobal() {\n if (typeof globalThis !== 'undefined') return globalThis;\n if (typeof self !== 'undefined') return self;\n if (typeof window !== 'undefined') return window;\n if (typeof global !== 'undefined') return global;\n return {};\n}\n\nconst G = getGlobal();\nconst FormDataCtor = typeof G.FormData !== 'undefined' ? G.FormData : undefined;\n\nconst isFormData = (thing) => {\n if (!thing) return false;\n if (FormDataCtor && thing instanceof FormDataCtor) return true;\n // Reject plain objects inheriting directly from Object.prototype so prototype-pollution gadgets can't spoof FormData (GHSA-6chq-wfr3-2hj9).\n const proto = getPrototypeOf(thing);\n if (!proto || proto === Object.prototype) return false;\n if (!isFunction(thing.append)) return false;\n const kind = kindOf(thing);\n return kind === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]');\n};\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = [\n 'ReadableStream',\n 'Request',\n 'Response',\n 'Headers',\n].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => {\n return str.trim ? str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n};\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Object} [options]\n * @param {Boolean} [options.allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, { allOwnKeys = false } = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Buffer check\n if (isBuffer(obj)) {\n return;\n }\n\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\n/**\n * Finds a key in an object, case-insensitive, returning the actual key name.\n * Returns null if the object is a Buffer or if no match is found.\n *\n * @param {Object} obj - The object to search.\n * @param {string} key - The key to find (case-insensitive).\n * @returns {?string} The actual key name if found, otherwise null.\n */\nfunction findKey(obj, key) {\n if (isBuffer(obj)) {\n return null;\n }\n\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== 'undefined') return globalThis;\n return typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : global;\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * const result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const { caseless, skipUndefined } = (isContextDefined(this) && this) || {};\n const result = {};\n const assignValue = (val, key) => {\n // Skip dangerous property names to prevent prototype pollution\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return;\n }\n\n const targetKey = (caseless && findKey(result, key)) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else if (!skipUndefined || !isUndefined(val)) {\n result[targetKey] = val;\n }\n };\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Object} [options]\n * @param {Boolean} [options.allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, { allOwnKeys } = {}) => {\n forEach(\n b,\n (val, key) => {\n if (thisArg && isFunction(val)) {\n Object.defineProperty(a, key, {\n value: bind(val, thisArg),\n writable: true,\n enumerable: true,\n configurable: true,\n });\n } else {\n Object.defineProperty(a, key, {\n value: val,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n }\n },\n { allOwnKeys }\n );\n return a;\n};\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xfeff) {\n content = content.slice(1);\n }\n return content;\n};\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n Object.defineProperty(constructor.prototype, 'constructor', {\n value: constructor,\n writable: true,\n enumerable: false,\n configurable: true,\n });\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype,\n });\n props && Object.assign(constructor.prototype, props);\n};\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n};\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n};\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n};\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = ((TypedArray) => {\n // eslint-disable-next-line func-names\n return (thing) => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[iterator];\n\n const _iterator = generator.call(obj);\n\n let result;\n\n while ((result = _iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n};\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n};\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = (str) => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g, function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n });\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (\n ({ hasOwnProperty }) =>\n (obj, prop) =>\n hasOwnProperty.call(obj, prop)\n)(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n};\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error(\"Can not rewrite read-only method '\" + name + \"'\");\n };\n }\n });\n};\n\n/**\n * Converts an array or a delimited string into an object set with values as keys and true as values.\n * Useful for fast membership checks.\n *\n * @param {Array|string} arrayOrString - The array or string to convert.\n * @param {string} delimiter - The delimiter to use if input is a string.\n * @returns {Object} An object with keys from the array or string, values set to true.\n */\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach((value) => {\n obj[value] = true;\n });\n };\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n};\n\nconst noop = () => {};\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite((value = +value)) ? value : defaultValue;\n};\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(\n thing &&\n isFunction(thing.append) &&\n thing[toStringTag] === 'FormData' &&\n thing[iterator]\n );\n}\n\n/**\n * Recursively converts an object to a JSON-compatible object, handling circular references and Buffers.\n *\n * @param {Object} obj - The object to convert.\n * @returns {Object} The JSON-compatible object.\n */\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n //Buffer check\n if (isBuffer(source)) {\n return source;\n }\n\n if (!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n };\n\n return visit(obj, 0);\n};\n\n/**\n * Determines if a value is an async function.\n *\n * @param {*} thing - The value to test.\n * @returns {boolean} True if value is an async function, otherwise false.\n */\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\n/**\n * Determines if a value is thenable (has then and catch methods).\n *\n * @param {*} thing - The value to test.\n * @returns {boolean} True if value is thenable, otherwise false.\n */\nconst isThenable = (thing) =>\n thing &&\n (isObject(thing) || isFunction(thing)) &&\n isFunction(thing.then) &&\n isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\n/**\n * Provides a cross-platform setImmediate implementation.\n * Uses native setImmediate if available, otherwise falls back to postMessage or setTimeout.\n *\n * @param {boolean} setImmediateSupported - Whether setImmediate is supported.\n * @param {boolean} postMessageSupported - Whether postMessage is supported.\n * @returns {Function} A function to schedule a callback asynchronously.\n */\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported\n ? ((token, callbacks) => {\n _global.addEventListener(\n 'message',\n ({ source, data }) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n },\n false\n );\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, '*');\n };\n })(`axios@${Math.random()}`, [])\n : (cb) => setTimeout(cb);\n})(typeof setImmediate === 'function', isFunction(_global.postMessage));\n\n/**\n * Schedules a microtask or asynchronous callback as soon as possible.\n * Uses queueMicrotask if available, otherwise falls back to process.nextTick or _setImmediate.\n *\n * @type {Function}\n */\nconst asap =\n typeof queueMicrotask !== 'undefined'\n ? queueMicrotask.bind(_global)\n : (typeof process !== 'undefined' && process.nextTick) || _setImmediate;\n\n// *********************\n\nconst isIterable = (thing) => thing != null && isFunction(thing[iterator]);\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isEmptyObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isReactNativeBlob,\n isReactNative,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap,\n isIterable,\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\nclass AxiosError extends Error {\n static from(error, code, config, request, response, customProps) {\n const axiosError = new AxiosError(error.message, code || error.code, config, request, response);\n axiosError.cause = error;\n axiosError.name = error.name;\n\n // Preserve status from the original error if not already set from response\n if (error.status != null && axiosError.status == null) {\n axiosError.status = error.status;\n }\n\n customProps && Object.assign(axiosError, customProps);\n return axiosError;\n }\n\n /**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\n constructor(message, code, config, request, response) {\n super(message);\n\n // Make message enumerable to maintain backward compatibility\n // The native Error constructor sets message as non-enumerable,\n // but axios < v1.13.3 had it as enumerable\n Object.defineProperty(this, 'message', {\n value: message,\n enumerable: true,\n writable: true,\n configurable: true,\n });\n\n this.name = 'AxiosError';\n this.isAxiosError = true;\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status;\n }\n }\n\n toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.status,\n };\n }\n}\n\n// This can be changed to static properties as soon as the parser options in .eslint.cjs are updated.\nAxiosError.ERR_BAD_OPTION_VALUE = 'ERR_BAD_OPTION_VALUE';\nAxiosError.ERR_BAD_OPTION = 'ERR_BAD_OPTION';\nAxiosError.ECONNABORTED = 'ECONNABORTED';\nAxiosError.ETIMEDOUT = 'ETIMEDOUT';\nAxiosError.ERR_NETWORK = 'ERR_NETWORK';\nAxiosError.ERR_FR_TOO_MANY_REDIRECTS = 'ERR_FR_TOO_MANY_REDIRECTS';\nAxiosError.ERR_DEPRECATED = 'ERR_DEPRECATED';\nAxiosError.ERR_BAD_RESPONSE = 'ERR_BAD_RESPONSE';\nAxiosError.ERR_BAD_REQUEST = 'ERR_BAD_REQUEST';\nAxiosError.ERR_CANCELED = 'ERR_CANCELED';\nAxiosError.ERR_NOT_SUPPORT = 'ERR_NOT_SUPPORT';\nAxiosError.ERR_INVALID_URL = 'ERR_INVALID_URL';\nAxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED = 'ERR_FORM_DATA_DEPTH_EXCEEDED';\n\nexport default AxiosError;\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path\n .concat(key)\n .map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n })\n .join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(\n options,\n {\n metaTokens: true,\n dots: false,\n indexes: false,\n },\n false,\n function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n }\n );\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || (typeof Blob !== 'undefined' && Blob);\n const maxDepth = options.maxDepth === undefined ? 100 : options.maxDepth;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (utils.isBoolean(value)) {\n return value.toString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (utils.isReactNative(formData) && utils.isReactNativeBlob(value)) {\n formData.append(renderKey(path, key, dots), convertValue(value));\n return false;\n }\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value)))\n ) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) &&\n formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true\n ? renderKey([key], index, dots)\n : indexes === null\n ? key\n : key + '[]',\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable,\n });\n\n function build(value, path, depth = 0) {\n if (utils.isUndefined(value)) return;\n\n if (depth > maxDepth) {\n throw new AxiosError(\n 'Object is too deeply nested (' + depth + ' levels). Max depth: ' + maxDepth,\n AxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED\n );\n }\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result =\n !(utils.isUndefined(el) || el === null) &&\n visitor.call(formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers);\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key], depth + 1);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder\n ? function (value) {\n return encoder.call(this, value, encode);\n }\n : encode;\n\n return this._pairs\n .map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '')\n .join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces URL-encoded forms of `:`, `$`, `,`, and spaces with\n * their plain counterparts (`:`, `$`, `,`, `+`).\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val)\n .replace(/%3A/gi, ':')\n .replace(/%24/g, '$')\n .replace(/%2C/gi, ',')\n .replace(/%20/g, '+');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?(object|Function)} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n if (!params) {\n return url;\n }\n\n const _encode = (options && options.encode) || encode;\n\n const _options = utils.isFunction(options)\n ? {\n serialize: options,\n }\n : options;\n\n const serializeFn = _options && _options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, _options);\n } else {\n serializedParams = utils.isURLSearchParams(params)\n ? params.toString()\n : new AxiosURLSearchParams(params, _options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf('#');\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n * @param {Object} options The options for the interceptor, synchronous and runWhen\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null,\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {void}\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false,\n legacyInterceptorReqResOrdering: true,\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict';\n\nexport default typeof Blob !== 'undefined' ? Blob : null;\n","import URLSearchParams from './classes/URLSearchParams.js';\nimport FormData from './classes/FormData.js';\nimport Blob from './classes/Blob.js';\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob,\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data'],\n};\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = (typeof navigator === 'object' && navigator) || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv =\n hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = (hasBrowserEnv && window.location.href) || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n _navigator as navigator,\n origin,\n};\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform,\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), {\n visitor: function (value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n },\n ...options,\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map((match) => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = utils.isArray(target[name])\n ? target[name].concat(value)\n : [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\nconst own = (obj, key) => (obj != null && utils.hasOwnProp(obj, key) ? obj[key] : undefined);\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [\n function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data) ||\n utils.isReadableStream(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n const formSerializer = own(this, 'formSerializer');\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, formSerializer).toString();\n }\n\n if (\n (isFileList = utils.isFileList(data)) ||\n contentType.indexOf('multipart/form-data') > -1\n ) {\n const env = own(this, 'env');\n const _FormData = env && env.FormData;\n\n return toFormData(\n isFileList ? { 'files[]': data } : data,\n _FormData && new _FormData(),\n formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n },\n ],\n\n transformResponse: [\n function transformResponse(data) {\n const transitional = own(this, 'transitional') || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const responseType = own(this, 'responseType');\n const JSONRequested = responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (\n data &&\n utils.isString(data) &&\n ((forcedJSONParsing && !responseType) || JSONRequested)\n ) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data, own(this, 'parseReviver'));\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, own(this, 'response'));\n }\n throw e;\n }\n }\n }\n\n return data;\n },\n ],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob,\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n Accept: 'application/json, text/plain, */*',\n 'Content-Type': undefined,\n },\n },\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from '../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age',\n 'authorization',\n 'content-length',\n 'content-type',\n 'etag',\n 'expires',\n 'from',\n 'host',\n 'if-modified-since',\n 'if-unmodified-since',\n 'last-modified',\n 'location',\n 'max-forwards',\n 'proxy-authorization',\n 'referer',\n 'retry-after',\n 'user-agent',\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default (rawHeaders) => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders &&\n rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nconst INVALID_HEADER_VALUE_CHARS_RE = /[^\\x09\\x20-\\x7E\\x80-\\xFF]/g;\n\nfunction trimSPorHTAB(str) {\n let start = 0;\n let end = str.length;\n\n while (start < end) {\n const code = str.charCodeAt(start);\n\n if (code !== 0x09 && code !== 0x20) {\n break;\n }\n\n start += 1;\n }\n\n while (end > start) {\n const code = str.charCodeAt(end - 1);\n\n if (code !== 0x09 && code !== 0x20) {\n break;\n }\n\n end -= 1;\n }\n\n return start === 0 && end === str.length ? str : str.slice(start, end);\n}\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction sanitizeHeaderValue(str) {\n return trimSPorHTAB(str.replace(INVALID_HEADER_VALUE_CHARS_RE, ''));\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : sanitizeHeaderValue(String(value));\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header\n .trim()\n .toLowerCase()\n .replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach((methodName) => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function (arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true,\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if (\n !key ||\n self[key] === undefined ||\n _rewrite === true ||\n (_rewrite === undefined && self[key] !== false)\n ) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite);\n } else if (utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isObject(header) && utils.isIterable(header)) {\n let obj = {},\n dest,\n key;\n for (const entry of header) {\n if (!utils.isArray(entry)) {\n throw TypeError('Object iterator must return a key-value pair');\n }\n\n obj[(key = entry[0])] = (dest = obj[key])\n ? utils.isArray(dest)\n ? [...dest, entry[1]]\n : [dest, entry[1]]\n : entry[1];\n }\n\n setHeaders(obj, valueOrRewrite);\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(\n key &&\n this[key] !== undefined &&\n (!matcher || matchHeaderValue(this, this[key], key, matcher))\n );\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if (!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null &&\n value !== false &&\n (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON())\n .map(([header, value]) => header + ': ' + value)\n .join('\\n');\n }\n\n getSetCookie() {\n return this.get('set-cookie') || [];\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals =\n (this[$internals] =\n this[$internals] =\n {\n accessors: {},\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor([\n 'Content-Type',\n 'Content-Length',\n 'Accept',\n 'Accept-Encoding',\n 'User-Agent',\n 'Authorization',\n]);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({ value }, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n },\n };\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from '../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\n\nclass CanceledError extends AxiosError {\n /**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\n constructor(message, config, request) {\n super(message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n this.__CANCEL__ = true;\n }\n}\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(\n new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][\n Math.floor(response.status / 100) - 4\n ],\n response.config,\n response.request,\n response\n )\n );\n }\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return (match && match[1]) || '';\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round((bytesCount * 1000) / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn(...args);\n };\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if (passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs);\n }, threshold - passed);\n }\n }\n };\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nexport default throttle;\n","import speedometer from './speedometer.js';\nimport throttle from './throttle.js';\nimport utils from '../utils.js';\n\nexport const progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle((e) => {\n const rawLoaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const loaded = total != null ? Math.min(rawLoaded, total) : rawLoaded;\n const progressBytes = Math.max(0, loaded - bytesNotified);\n const rate = _speedometer(progressBytes);\n\n bytesNotified = Math.max(bytesNotified, loaded);\n\n const data = {\n loaded,\n total,\n progress: total ? loaded / total : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true,\n };\n\n listener(data);\n }, freq);\n};\n\nexport const progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [\n (loaded) =>\n throttled[0]({\n lengthComputable,\n total,\n loaded,\n }),\n throttled[1],\n ];\n};\n\nexport const asyncDecorator =\n (fn) =>\n (...args) =>\n utils.asap(() => fn(...args));\n","import platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv\n ? ((origin, isMSIE) => (url) => {\n url = new URL(url, platform.origin);\n\n return (\n origin.protocol === url.protocol &&\n origin.host === url.host &&\n (isMSIE || origin.port === url.port)\n );\n })(\n new URL(platform.origin),\n platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)\n )\n : () => true;\n","import utils from '../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv\n ? // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure, sameSite) {\n if (typeof document === 'undefined') return;\n\n const cookie = [`${name}=${encodeURIComponent(value)}`];\n\n if (utils.isNumber(expires)) {\n cookie.push(`expires=${new Date(expires).toUTCString()}`);\n }\n if (utils.isString(path)) {\n cookie.push(`path=${path}`);\n }\n if (utils.isString(domain)) {\n cookie.push(`domain=${domain}`);\n }\n if (secure === true) {\n cookie.push('secure');\n }\n if (utils.isString(sameSite)) {\n cookie.push(`SameSite=${sameSite}`);\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n if (typeof document === 'undefined') return null;\n const match = document.cookie.match(new RegExp('(?:^|; )' + name + '=([^;]*)'));\n return match ? decodeURIComponent(match[1]) : null;\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000, '/');\n },\n }\n : // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {},\n };\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n if (typeof url !== 'string') {\n return false;\n }\n\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) {\n let isRelativeUrl = !isAbsoluteURL(requestedURL);\n if (baseURL && (isRelativeUrl || allowAbsoluteUrls === false)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst headersToObject = (thing) => (thing instanceof AxiosHeaders ? { ...thing } : thing);\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, prop, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({ caseless }, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(a, b, prop, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, prop, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, prop, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (utils.hasOwnProp(config2, prop)) {\n return getMergedValue(a, b);\n } else if (utils.hasOwnProp(config1, prop)) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b, prop) =>\n mergeDeepProperties(headersToObject(a), headersToObject(b), prop, true),\n };\n\n utils.forEach(Object.keys({ ...config1, ...config2 }), function computeConfigValue(prop) {\n if (prop === '__proto__' || prop === 'constructor' || prop === 'prototype') return;\n const merge = utils.hasOwnProp(mergeMap, prop) ? mergeMap[prop] : mergeDeepProperties;\n const a = utils.hasOwnProp(config1, prop) ? config1[prop] : undefined;\n const b = utils.hasOwnProp(config2, prop) ? config2[prop] : undefined;\n const configValue = merge(a, b, prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","import platform from '../platform/index.js';\nimport utils from '../utils.js';\nimport isURLSameOrigin from './isURLSameOrigin.js';\nimport cookies from './cookies.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport mergeConfig from '../core/mergeConfig.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport buildURL from './buildURL.js';\n\nexport default (config) => {\n const newConfig = mergeConfig({}, config);\n\n let { data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth } = newConfig;\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(\n buildFullPath(newConfig.baseURL, newConfig.url, newConfig.allowAbsoluteUrls),\n config.params,\n config.paramsSerializer\n );\n\n // HTTP basic authentication\n if (auth) {\n headers.set(\n 'Authorization',\n 'Basic ' +\n btoa(\n (auth.username || '') +\n ':' +\n (auth.password ? unescape(encodeURIComponent(auth.password)) : '')\n )\n );\n }\n\n if (utils.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // browser handles it\n } else if (utils.isFunction(data.getHeaders)) {\n // Node.js FormData (like form-data package)\n const formHeaders = data.getHeaders();\n // Only set safe headers to avoid overwriting security headers\n const allowedHeaders = ['content-type', 'content-length'];\n Object.entries(formHeaders).forEach(([key, val]) => {\n if (allowedHeaders.includes(key.toLowerCase())) {\n headers.set(key, val);\n }\n });\n }\n }\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n if (utils.isFunction(withXSRFToken)) {\n withXSRFToken = withXSRFToken(newConfig);\n }\n\n // Strict boolean check — prevents proto-pollution gadgets (e.g. Object.prototype.withXSRFToken = 1)\n // and misconfigurations (e.g. \"false\") from short-circuiting the same-origin check and leaking\n // the XSRF token cross-origin. See GHSA-xx6v-rp6x-q39c.\n const shouldSendXSRF =\n withXSRFToken === true ||\n (withXSRFToken == null && isURLSameOrigin(newConfig.url));\n\n if (shouldSendXSRF) {\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n};\n","import utils from '../utils.js';\nimport settle from '../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport { progressEventReducer } from '../helpers/progressEventReducer.js';\nimport resolveConfig from '../helpers/resolveConfig.js';\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported &&\n function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let { responseType, onUploadProgress, onDownloadProgress } = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData =\n !responseType || responseType === 'text' || responseType === 'json'\n ? request.responseText\n : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request,\n };\n\n settle(\n function _resolve(value) {\n resolve(value);\n done();\n },\n function _reject(err) {\n reject(err);\n done();\n },\n response\n );\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (\n request.status === 0 &&\n !(request.responseURL && request.responseURL.indexOf('file:') === 0)\n ) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError(event) {\n // Browsers deliver a ProgressEvent in XHR onerror\n // (message may be empty; when present, surface it)\n // See https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/error_event\n const msg = event && event.message ? event.message : 'Network Error';\n const err = new AxiosError(msg, AxiosError.ERR_NETWORK, config, request);\n // attach the underlying event for consumers who want details\n err.event = event || null;\n reject(err);\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout\n ? 'timeout of ' + _config.timeout + 'ms exceeded'\n : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(\n new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request\n )\n );\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n [downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true);\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n [uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress);\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = (cancel) => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted\n ? onCanceled()\n : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(\n new AxiosError(\n 'Unsupported protocol ' + protocol + ':',\n AxiosError.ERR_BAD_REQUEST,\n config\n )\n );\n return;\n }\n\n // Send the request\n request.send(requestData || null);\n });\n };\n","import CanceledError from '../cancel/CanceledError.js';\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\nconst composeSignals = (signals, timeout) => {\n const { length } = (signals = signals ? signals.filter(Boolean) : []);\n\n if (timeout || length) {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(\n err instanceof AxiosError\n ? err\n : new CanceledError(err instanceof Error ? err.message : err)\n );\n }\n };\n\n let timer =\n timeout &&\n setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout of ${timeout}ms exceeded`, AxiosError.ETIMEDOUT));\n }, timeout);\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach((signal) => {\n signal.unsubscribe\n ? signal.unsubscribe(onabort)\n : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n }\n };\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n const { signal } = controller;\n\n signal.unsubscribe = () => utils.asap(unsubscribe);\n\n return signal;\n }\n};\n\nexport default composeSignals;\n","export const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n};\n\nexport const readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n};\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const { done, value } = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n};\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n };\n\n return new ReadableStream(\n {\n async pull(controller) {\n try {\n const { done, value } = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = (bytes += len);\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n },\n },\n {\n highWaterMark: 2,\n }\n );\n};\n","import platform from '../platform/index.js';\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport composeSignals from '../helpers/composeSignals.js';\nimport { trackStream } from '../helpers/trackStream.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport {\n progressEventReducer,\n progressEventDecorator,\n asyncDecorator,\n} from '../helpers/progressEventReducer.js';\nimport resolveConfig from '../helpers/resolveConfig.js';\nimport settle from '../core/settle.js';\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst { isFunction } = utils;\n\nconst globalFetchAPI = (({ Request, Response }) => ({\n Request,\n Response,\n}))(utils.global);\n\nconst { ReadableStream, TextEncoder } = utils.global;\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false;\n }\n};\n\nconst factory = (env) => {\n env = utils.merge.call(\n {\n skipUndefined: true,\n },\n globalFetchAPI,\n env\n );\n\n const { fetch: envFetch, Request, Response } = env;\n const isFetchSupported = envFetch ? isFunction(envFetch) : typeof fetch === 'function';\n const isRequestSupported = isFunction(Request);\n const isResponseSupported = isFunction(Response);\n\n if (!isFetchSupported) {\n return false;\n }\n\n const isReadableStreamSupported = isFetchSupported && isFunction(ReadableStream);\n\n const encodeText =\n isFetchSupported &&\n (typeof TextEncoder === 'function'\n ? (\n (encoder) => (str) =>\n encoder.encode(str)\n )(new TextEncoder())\n : async (str) => new Uint8Array(await new Request(str).arrayBuffer()));\n\n const supportsRequestStream =\n isRequestSupported &&\n isReadableStreamSupported &&\n test(() => {\n let duplexAccessed = false;\n\n const request = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n });\n\n const hasContentType = request.headers.has('Content-Type');\n\n if (request.body != null) {\n request.body.cancel();\n }\n\n return duplexAccessed && !hasContentType;\n });\n\n const supportsResponseStream =\n isResponseSupported &&\n isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n const resolvers = {\n stream: supportsResponseStream && ((res) => res.body),\n };\n\n isFetchSupported &&\n (() => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach((type) => {\n !resolvers[type] &&\n (resolvers[type] = (res, config) => {\n let method = res && res[type];\n\n if (method) {\n return method.call(res);\n }\n\n throw new AxiosError(\n `Response type '${type}' is not supported`,\n AxiosError.ERR_NOT_SUPPORT,\n config\n );\n });\n });\n })();\n\n const getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if (utils.isBlob(body)) {\n return body.size;\n }\n\n if (utils.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if (utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if (utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if (utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n };\n\n const resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n };\n\n return async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions,\n } = resolveConfig(config);\n\n let _fetch = envFetch || fetch;\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals(\n [signal, cancelToken && cancelToken.toAbortSignal()],\n timeout\n );\n\n let request = null;\n\n const unsubscribe =\n composedSignal &&\n composedSignal.unsubscribe &&\n (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress &&\n supportsRequestStream &&\n method !== 'get' &&\n method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: 'half',\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader);\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n }\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = isRequestSupported && 'credentials' in Request.prototype;\n\n // If data is FormData and Content-Type is multipart/form-data without boundary,\n // delete it so fetch can set it correctly with the boundary\n if (utils.isFormData(data)) {\n const contentType = headers.getContentType();\n if (\n contentType &&\n /^multipart\\/form-data/i.test(contentType) &&\n !/boundary=/i.test(contentType)\n ) {\n headers.delete('content-type');\n }\n }\n\n const resolvedOptions = {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: 'half',\n credentials: isCredentialsSupported ? withCredentials : undefined,\n };\n\n request = isRequestSupported && new Request(url, resolvedOptions);\n\n let response = await (isRequestSupported\n ? _fetch(request, fetchOptions)\n : _fetch(url, resolvedOptions));\n\n const isStreamResponse =\n supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach((prop) => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] =\n (onDownloadProgress &&\n progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n )) ||\n [];\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](\n response,\n config\n );\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request,\n });\n });\n } catch (err) {\n unsubscribe && unsubscribe();\n\n if (err && err.name === 'TypeError' && /Load failed|fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError(\n 'Network Error',\n AxiosError.ERR_NETWORK,\n config,\n request,\n err && err.response\n ),\n {\n cause: err.cause || err,\n }\n );\n }\n\n throw AxiosError.from(err, err && err.code, config, request, err && err.response);\n }\n };\n};\n\nconst seedCache = new Map();\n\nexport const getFetch = (config) => {\n let env = (config && config.env) || {};\n const { fetch, Request, Response } = env;\n const seeds = [Request, Response, fetch];\n\n let len = seeds.length,\n i = len,\n seed,\n target,\n map = seedCache;\n\n while (i--) {\n seed = seeds[i];\n target = map.get(seed);\n\n target === undefined && map.set(seed, (target = i ? new Map() : factory(env)));\n\n map = target;\n }\n\n return target;\n};\n\nconst adapter = getFetch();\n\nexport default adapter;\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport * as fetchAdapter from './fetch.js';\nimport AxiosError from '../core/AxiosError.js';\n\n/**\n * Known adapters mapping.\n * Provides environment-specific adapters for Axios:\n * - `http` for Node.js\n * - `xhr` for browsers\n * - `fetch` for fetch API-based requests\n *\n * @type {Object}\n */\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: {\n get: fetchAdapter.getFetch,\n },\n};\n\n// Assign adapter names for easier debugging and identification\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', { value });\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', { value });\n }\n});\n\n/**\n * Render a rejection reason string for unknown or unsupported adapters\n *\n * @param {string} reason\n * @returns {string}\n */\nconst renderReason = (reason) => `- ${reason}`;\n\n/**\n * Check if the adapter is resolved (function, null, or false)\n *\n * @param {Function|null|false} adapter\n * @returns {boolean}\n */\nconst isResolvedHandle = (adapter) =>\n utils.isFunction(adapter) || adapter === null || adapter === false;\n\n/**\n * Get the first suitable adapter from the provided list.\n * Tries each adapter in order until a supported one is found.\n * Throws an AxiosError if no adapter is suitable.\n *\n * @param {Array|string|Function} adapters - Adapter(s) by name or function.\n * @param {Object} config - Axios request configuration\n * @throws {AxiosError} If no suitable adapter is available\n * @returns {Function} The resolved adapter function\n */\nfunction getAdapter(adapters, config) {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const { length } = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter && (utils.isFunction(adapter) || (adapter = adapter.get(config)))) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n const reasons = Object.entries(rejectedReasons).map(\n ([id, state]) =>\n `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length\n ? reasons.length > 1\n ? 'since :\\n' + reasons.map(renderReason).join('\\n')\n : ' ' + renderReason(reasons[0])\n : 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n}\n\n/**\n * Exports Axios adapters and utility to resolve an adapter\n */\nexport default {\n /**\n * Resolve an adapter from a list of adapter names or functions.\n * @type {Function}\n */\n getAdapter,\n\n /**\n * Exposes all known adapters\n * @type {Object}\n */\n adapters: knownAdapters,\n};\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from '../adapters/adapters.js';\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(config, config.transformRequest);\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter, config);\n\n return adapter(config).then(\n function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(config, config.transformResponse, response);\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n },\n function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n }\n );\n}\n","export const VERSION = \"1.15.1\";","'use strict';\n\nimport { VERSION } from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return (\n '[Axios v' +\n VERSION +\n \"] Transitional option '\" +\n opt +\n \"'\" +\n desc +\n (message ? '. ' + message : '')\n );\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\nvalidators.spelling = function spelling(correctSpelling) {\n return (value, opt) => {\n // eslint-disable-next-line no-console\n console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);\n return true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError(\n 'option ' + opt + ' must be ' + result,\n AxiosError.ERR_BAD_OPTION_VALUE\n );\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators,\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\nimport transitionalDefaults from '../defaults/transitional.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig || {};\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager(),\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy = {};\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = (() => {\n if (!dummy.stack) {\n return '';\n }\n\n const firstNewlineIndex = dummy.stack.indexOf('\\n');\n\n return firstNewlineIndex === -1 ? '' : dummy.stack.slice(firstNewlineIndex + 1);\n })();\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack) {\n const firstNewlineIndex = stack.indexOf('\\n');\n const secondNewlineIndex =\n firstNewlineIndex === -1 ? -1 : stack.indexOf('\\n', firstNewlineIndex + 1);\n const stackWithoutTwoTopLines =\n secondNewlineIndex === -1 ? '' : stack.slice(secondNewlineIndex + 1);\n\n if (!String(err.stack).endsWith(stackWithoutTwoTopLines)) {\n err.stack += '\\n' + stack;\n }\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const { transitional, paramsSerializer, headers } = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(\n transitional,\n {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean),\n legacyInterceptorReqResOrdering: validators.transitional(validators.boolean),\n },\n false\n );\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer,\n };\n } else {\n validator.assertOptions(\n paramsSerializer,\n {\n encode: validators.function,\n serialize: validators.function,\n },\n true\n );\n }\n }\n\n // Set config.allowAbsoluteUrls\n if (config.allowAbsoluteUrls !== undefined) {\n // do nothing\n } else if (this.defaults.allowAbsoluteUrls !== undefined) {\n config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls;\n } else {\n config.allowAbsoluteUrls = true;\n }\n\n validator.assertOptions(\n config,\n {\n baseUrl: validators.spelling('baseURL'),\n withXsrfToken: validators.spelling('withXSRFToken'),\n },\n true\n );\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(headers.common, headers[config.method]);\n\n headers &&\n utils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], (method) => {\n delete headers[method];\n });\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n const transitional = config.transitional || transitionalDefaults;\n const legacyInterceptorReqResOrdering =\n transitional && transitional.legacyInterceptorReqResOrdering;\n\n if (legacyInterceptorReqResOrdering) {\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n } else {\n requestInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n }\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift(...requestInterceptorChain);\n chain.push(...responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function (url, config) {\n return this.request(\n mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data,\n })\n );\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(\n mergeConfig(config || {}, {\n method,\n headers: isForm\n ? {\n 'Content-Type': 'multipart/form-data',\n }\n : {},\n url,\n data,\n })\n );\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then((cancel) => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = (onfulfilled) => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise((resolve) => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel,\n };\n }\n}\n\nexport default CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * const args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && payload.isAxiosError === true;\n}\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n WebServerIsDown: 521,\n ConnectionTimedOut: 522,\n OriginIsUnreachable: 523,\n TimeoutOccurred: 524,\n SslHandshakeFailed: 525,\n InvalidSslCertificate: 526,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport { VERSION } from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from './core/AxiosHeaders.js';\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, { allOwnKeys: true });\n\n // Copy context to instance\n utils.extend(instance, context, null, { allOwnKeys: true });\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = (thing) => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios;\n"],"names":["isFunction","utils","encode","URLSearchParams","FormData","Blob","platform","ReadableStream","fetchAdapter.getFetch","validators"],"mappings":"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"} \ No newline at end of file diff --git a/server/api/node_modules/axios/dist/esm/axios.js b/server/api/node_modules/axios/dist/esm/axios.js new file mode 100644 index 0000000..66e3451 --- /dev/null +++ b/server/api/node_modules/axios/dist/esm/axios.js @@ -0,0 +1,4332 @@ +/*! Axios v1.15.1 Copyright (c) 2026 Matt Zabriskie and contributors */ +/** + * Create a bound version of a function with a specified `this` context + * + * @param {Function} fn - The function to bind + * @param {*} thisArg - The value to be passed as the `this` parameter + * @returns {Function} A new function that will call the original function with the specified `this` context + */ +function bind(fn, thisArg) { + return function wrap() { + return fn.apply(thisArg, arguments); + }; +} + +// utils is a library of generic helper functions non-specific to axios + +const { toString } = Object.prototype; +const { getPrototypeOf } = Object; +const { iterator, toStringTag } = Symbol; + +const kindOf = ((cache) => (thing) => { + const str = toString.call(thing); + return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase()); +})(Object.create(null)); + +const kindOfTest = (type) => { + type = type.toLowerCase(); + return (thing) => kindOf(thing) === type; +}; + +const typeOfTest = (type) => (thing) => typeof thing === type; + +/** + * Determine if a value is a non-null object + * + * @param {Object} val The value to test + * + * @returns {boolean} True if value is an Array, otherwise false + */ +const { isArray } = Array; + +/** + * Determine if a value is undefined + * + * @param {*} val The value to test + * + * @returns {boolean} True if the value is undefined, otherwise false + */ +const isUndefined = typeOfTest('undefined'); + +/** + * Determine if a value is a Buffer + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a Buffer, otherwise false + */ +function isBuffer(val) { + return ( + val !== null && + !isUndefined(val) && + val.constructor !== null && + !isUndefined(val.constructor) && + isFunction$1(val.constructor.isBuffer) && + val.constructor.isBuffer(val) + ); +} + +/** + * Determine if a value is an ArrayBuffer + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is an ArrayBuffer, otherwise false + */ +const isArrayBuffer = kindOfTest('ArrayBuffer'); + +/** + * Determine if a value is a view on an ArrayBuffer + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false + */ +function isArrayBufferView(val) { + let result; + if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) { + result = ArrayBuffer.isView(val); + } else { + result = val && val.buffer && isArrayBuffer(val.buffer); + } + return result; +} + +/** + * Determine if a value is a String + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a String, otherwise false + */ +const isString = typeOfTest('string'); + +/** + * Determine if a value is a Function + * + * @param {*} val The value to test + * @returns {boolean} True if value is a Function, otherwise false + */ +const isFunction$1 = typeOfTest('function'); + +/** + * Determine if a value is a Number + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a Number, otherwise false + */ +const isNumber = typeOfTest('number'); + +/** + * Determine if a value is an Object + * + * @param {*} thing The value to test + * + * @returns {boolean} True if value is an Object, otherwise false + */ +const isObject = (thing) => thing !== null && typeof thing === 'object'; + +/** + * Determine if a value is a Boolean + * + * @param {*} thing The value to test + * @returns {boolean} True if value is a Boolean, otherwise false + */ +const isBoolean = (thing) => thing === true || thing === false; + +/** + * Determine if a value is a plain Object + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a plain Object, otherwise false + */ +const isPlainObject = (val) => { + if (kindOf(val) !== 'object') { + return false; + } + + const prototype = getPrototypeOf(val); + return ( + (prototype === null || + prototype === Object.prototype || + Object.getPrototypeOf(prototype) === null) && + !(toStringTag in val) && + !(iterator in val) + ); +}; + +/** + * Determine if a value is an empty object (safely handles Buffers) + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is an empty object, otherwise false + */ +const isEmptyObject = (val) => { + // Early return for non-objects or Buffers to prevent RangeError + if (!isObject(val) || isBuffer(val)) { + return false; + } + + try { + return Object.keys(val).length === 0 && Object.getPrototypeOf(val) === Object.prototype; + } catch (e) { + // Fallback for any other objects that might cause RangeError with Object.keys() + return false; + } +}; + +/** + * Determine if a value is a Date + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a Date, otherwise false + */ +const isDate = kindOfTest('Date'); + +/** + * Determine if a value is a File + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a File, otherwise false + */ +const isFile = kindOfTest('File'); + +/** + * Determine if a value is a React Native Blob + * React Native "blob": an object with a `uri` attribute. Optionally, it can + * also have a `name` and `type` attribute to specify filename and content type + * + * @see https://github.com/facebook/react-native/blob/26684cf3adf4094eb6c405d345a75bf8c7c0bf88/Libraries/Network/FormData.js#L68-L71 + * + * @param {*} value The value to test + * + * @returns {boolean} True if value is a React Native Blob, otherwise false + */ +const isReactNativeBlob = (value) => { + return !!(value && typeof value.uri !== 'undefined'); +}; + +/** + * Determine if environment is React Native + * ReactNative `FormData` has a non-standard `getParts()` method + * + * @param {*} formData The formData to test + * + * @returns {boolean} True if environment is React Native, otherwise false + */ +const isReactNative = (formData) => formData && typeof formData.getParts !== 'undefined'; + +/** + * Determine if a value is a Blob + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a Blob, otherwise false + */ +const isBlob = kindOfTest('Blob'); + +/** + * Determine if a value is a FileList + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a File, otherwise false + */ +const isFileList = kindOfTest('FileList'); + +/** + * Determine if a value is a Stream + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a Stream, otherwise false + */ +const isStream = (val) => isObject(val) && isFunction$1(val.pipe); + +/** + * Determine if a value is a FormData + * + * @param {*} thing The value to test + * + * @returns {boolean} True if value is an FormData, otherwise false + */ +function getGlobal() { + if (typeof globalThis !== 'undefined') return globalThis; + if (typeof self !== 'undefined') return self; + if (typeof window !== 'undefined') return window; + if (typeof global !== 'undefined') return global; + return {}; +} + +const G = getGlobal(); +const FormDataCtor = typeof G.FormData !== 'undefined' ? G.FormData : undefined; + +const isFormData = (thing) => { + if (!thing) return false; + if (FormDataCtor && thing instanceof FormDataCtor) return true; + // Reject plain objects inheriting directly from Object.prototype so prototype-pollution gadgets can't spoof FormData (GHSA-6chq-wfr3-2hj9). + const proto = getPrototypeOf(thing); + if (!proto || proto === Object.prototype) return false; + if (!isFunction$1(thing.append)) return false; + const kind = kindOf(thing); + return kind === 'formdata' || + // detect form-data instance + (kind === 'object' && isFunction$1(thing.toString) && thing.toString() === '[object FormData]'); +}; + +/** + * Determine if a value is a URLSearchParams object + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a URLSearchParams object, otherwise false + */ +const isURLSearchParams = kindOfTest('URLSearchParams'); + +const [isReadableStream, isRequest, isResponse, isHeaders] = [ + 'ReadableStream', + 'Request', + 'Response', + 'Headers', +].map(kindOfTest); + +/** + * Trim excess whitespace off the beginning and end of a string + * + * @param {String} str The String to trim + * + * @returns {String} The String freed of excess whitespace + */ +const trim = (str) => { + return str.trim ? str.trim() : str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ''); +}; +/** + * Iterate over an Array or an Object invoking a function for each item. + * + * If `obj` is an Array callback will be called passing + * the value, index, and complete array for each item. + * + * If 'obj' is an Object callback will be called passing + * the value, key, and complete object for each property. + * + * @param {Object|Array} obj The object to iterate + * @param {Function} fn The callback to invoke for each item + * + * @param {Object} [options] + * @param {Boolean} [options.allOwnKeys = false] + * @returns {any} + */ +function forEach(obj, fn, { allOwnKeys = false } = {}) { + // Don't bother if no value provided + if (obj === null || typeof obj === 'undefined') { + return; + } + + let i; + let l; + + // Force an array if not already something iterable + if (typeof obj !== 'object') { + /*eslint no-param-reassign:0*/ + obj = [obj]; + } + + if (isArray(obj)) { + // Iterate over array values + for (i = 0, l = obj.length; i < l; i++) { + fn.call(null, obj[i], i, obj); + } + } else { + // Buffer check + if (isBuffer(obj)) { + return; + } + + // Iterate over object keys + const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj); + const len = keys.length; + let key; + + for (i = 0; i < len; i++) { + key = keys[i]; + fn.call(null, obj[key], key, obj); + } + } +} + +/** + * Finds a key in an object, case-insensitive, returning the actual key name. + * Returns null if the object is a Buffer or if no match is found. + * + * @param {Object} obj - The object to search. + * @param {string} key - The key to find (case-insensitive). + * @returns {?string} The actual key name if found, otherwise null. + */ +function findKey(obj, key) { + if (isBuffer(obj)) { + return null; + } + + key = key.toLowerCase(); + const keys = Object.keys(obj); + let i = keys.length; + let _key; + while (i-- > 0) { + _key = keys[i]; + if (key === _key.toLowerCase()) { + return _key; + } + } + return null; +} + +const _global = (() => { + /*eslint no-undef:0*/ + if (typeof globalThis !== 'undefined') return globalThis; + return typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : global; +})(); + +const isContextDefined = (context) => !isUndefined(context) && context !== _global; + +/** + * Accepts varargs expecting each argument to be an object, then + * immutably merges the properties of each object and returns result. + * + * When multiple objects contain the same key the later object in + * the arguments list will take precedence. + * + * Example: + * + * ```js + * const result = merge({foo: 123}, {foo: 456}); + * console.log(result.foo); // outputs 456 + * ``` + * + * @param {Object} obj1 Object to merge + * + * @returns {Object} Result of all merge properties + */ +function merge(/* obj1, obj2, obj3, ... */) { + const { caseless, skipUndefined } = (isContextDefined(this) && this) || {}; + const result = {}; + const assignValue = (val, key) => { + // Skip dangerous property names to prevent prototype pollution + if (key === '__proto__' || key === 'constructor' || key === 'prototype') { + return; + } + + const targetKey = (caseless && findKey(result, key)) || key; + if (isPlainObject(result[targetKey]) && isPlainObject(val)) { + result[targetKey] = merge(result[targetKey], val); + } else if (isPlainObject(val)) { + result[targetKey] = merge({}, val); + } else if (isArray(val)) { + result[targetKey] = val.slice(); + } else if (!skipUndefined || !isUndefined(val)) { + result[targetKey] = val; + } + }; + + for (let i = 0, l = arguments.length; i < l; i++) { + arguments[i] && forEach(arguments[i], assignValue); + } + return result; +} + +/** + * Extends object a by mutably adding to it the properties of object b. + * + * @param {Object} a The object to be extended + * @param {Object} b The object to copy properties from + * @param {Object} thisArg The object to bind function to + * + * @param {Object} [options] + * @param {Boolean} [options.allOwnKeys] + * @returns {Object} The resulting value of object a + */ +const extend = (a, b, thisArg, { allOwnKeys } = {}) => { + forEach( + b, + (val, key) => { + if (thisArg && isFunction$1(val)) { + Object.defineProperty(a, key, { + value: bind(val, thisArg), + writable: true, + enumerable: true, + configurable: true, + }); + } else { + Object.defineProperty(a, key, { + value: val, + writable: true, + enumerable: true, + configurable: true, + }); + } + }, + { allOwnKeys } + ); + return a; +}; + +/** + * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM) + * + * @param {string} content with BOM + * + * @returns {string} content value without BOM + */ +const stripBOM = (content) => { + if (content.charCodeAt(0) === 0xfeff) { + content = content.slice(1); + } + return content; +}; + +/** + * Inherit the prototype methods from one constructor into another + * @param {function} constructor + * @param {function} superConstructor + * @param {object} [props] + * @param {object} [descriptors] + * + * @returns {void} + */ +const inherits = (constructor, superConstructor, props, descriptors) => { + constructor.prototype = Object.create(superConstructor.prototype, descriptors); + Object.defineProperty(constructor.prototype, 'constructor', { + value: constructor, + writable: true, + enumerable: false, + configurable: true, + }); + Object.defineProperty(constructor, 'super', { + value: superConstructor.prototype, + }); + props && Object.assign(constructor.prototype, props); +}; + +/** + * Resolve object with deep prototype chain to a flat object + * @param {Object} sourceObj source object + * @param {Object} [destObj] + * @param {Function|Boolean} [filter] + * @param {Function} [propFilter] + * + * @returns {Object} + */ +const toFlatObject = (sourceObj, destObj, filter, propFilter) => { + let props; + let i; + let prop; + const merged = {}; + + destObj = destObj || {}; + // eslint-disable-next-line no-eq-null,eqeqeq + if (sourceObj == null) return destObj; + + do { + props = Object.getOwnPropertyNames(sourceObj); + i = props.length; + while (i-- > 0) { + prop = props[i]; + if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) { + destObj[prop] = sourceObj[prop]; + merged[prop] = true; + } + } + sourceObj = filter !== false && getPrototypeOf(sourceObj); + } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype); + + return destObj; +}; + +/** + * Determines whether a string ends with the characters of a specified string + * + * @param {String} str + * @param {String} searchString + * @param {Number} [position= 0] + * + * @returns {boolean} + */ +const endsWith = (str, searchString, position) => { + str = String(str); + if (position === undefined || position > str.length) { + position = str.length; + } + position -= searchString.length; + const lastIndex = str.indexOf(searchString, position); + return lastIndex !== -1 && lastIndex === position; +}; + +/** + * Returns new array from array like object or null if failed + * + * @param {*} [thing] + * + * @returns {?Array} + */ +const toArray = (thing) => { + if (!thing) return null; + if (isArray(thing)) return thing; + let i = thing.length; + if (!isNumber(i)) return null; + const arr = new Array(i); + while (i-- > 0) { + arr[i] = thing[i]; + } + return arr; +}; + +/** + * Checking if the Uint8Array exists and if it does, it returns a function that checks if the + * thing passed in is an instance of Uint8Array + * + * @param {TypedArray} + * + * @returns {Array} + */ +// eslint-disable-next-line func-names +const isTypedArray = ((TypedArray) => { + // eslint-disable-next-line func-names + return (thing) => { + return TypedArray && thing instanceof TypedArray; + }; +})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array)); + +/** + * For each entry in the object, call the function with the key and value. + * + * @param {Object} obj - The object to iterate over. + * @param {Function} fn - The function to call for each entry. + * + * @returns {void} + */ +const forEachEntry = (obj, fn) => { + const generator = obj && obj[iterator]; + + const _iterator = generator.call(obj); + + let result; + + while ((result = _iterator.next()) && !result.done) { + const pair = result.value; + fn.call(obj, pair[0], pair[1]); + } +}; + +/** + * It takes a regular expression and a string, and returns an array of all the matches + * + * @param {string} regExp - The regular expression to match against. + * @param {string} str - The string to search. + * + * @returns {Array} + */ +const matchAll = (regExp, str) => { + let matches; + const arr = []; + + while ((matches = regExp.exec(str)) !== null) { + arr.push(matches); + } + + return arr; +}; + +/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */ +const isHTMLForm = kindOfTest('HTMLFormElement'); + +const toCamelCase = (str) => { + return str.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g, function replacer(m, p1, p2) { + return p1.toUpperCase() + p2; + }); +}; + +/* Creating a function that will check if an object has a property. */ +const hasOwnProperty = ( + ({ hasOwnProperty }) => + (obj, prop) => + hasOwnProperty.call(obj, prop) +)(Object.prototype); + +/** + * Determine if a value is a RegExp object + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a RegExp object, otherwise false + */ +const isRegExp = kindOfTest('RegExp'); + +const reduceDescriptors = (obj, reducer) => { + const descriptors = Object.getOwnPropertyDescriptors(obj); + const reducedDescriptors = {}; + + forEach(descriptors, (descriptor, name) => { + let ret; + if ((ret = reducer(descriptor, name, obj)) !== false) { + reducedDescriptors[name] = ret || descriptor; + } + }); + + Object.defineProperties(obj, reducedDescriptors); +}; + +/** + * Makes all methods read-only + * @param {Object} obj + */ + +const freezeMethods = (obj) => { + reduceDescriptors(obj, (descriptor, name) => { + // skip restricted props in strict mode + if (isFunction$1(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) { + return false; + } + + const value = obj[name]; + + if (!isFunction$1(value)) return; + + descriptor.enumerable = false; + + if ('writable' in descriptor) { + descriptor.writable = false; + return; + } + + if (!descriptor.set) { + descriptor.set = () => { + throw Error("Can not rewrite read-only method '" + name + "'"); + }; + } + }); +}; + +/** + * Converts an array or a delimited string into an object set with values as keys and true as values. + * Useful for fast membership checks. + * + * @param {Array|string} arrayOrString - The array or string to convert. + * @param {string} delimiter - The delimiter to use if input is a string. + * @returns {Object} An object with keys from the array or string, values set to true. + */ +const toObjectSet = (arrayOrString, delimiter) => { + const obj = {}; + + const define = (arr) => { + arr.forEach((value) => { + obj[value] = true; + }); + }; + + isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter)); + + return obj; +}; + +const noop = () => {}; + +const toFiniteNumber = (value, defaultValue) => { + return value != null && Number.isFinite((value = +value)) ? value : defaultValue; +}; + +/** + * If the thing is a FormData object, return true, otherwise return false. + * + * @param {unknown} thing - The thing to check. + * + * @returns {boolean} + */ +function isSpecCompliantForm(thing) { + return !!( + thing && + isFunction$1(thing.append) && + thing[toStringTag] === 'FormData' && + thing[iterator] + ); +} + +/** + * Recursively converts an object to a JSON-compatible object, handling circular references and Buffers. + * + * @param {Object} obj - The object to convert. + * @returns {Object} The JSON-compatible object. + */ +const toJSONObject = (obj) => { + const stack = new Array(10); + + const visit = (source, i) => { + if (isObject(source)) { + if (stack.indexOf(source) >= 0) { + return; + } + + //Buffer check + if (isBuffer(source)) { + return source; + } + + if (!('toJSON' in source)) { + stack[i] = source; + const target = isArray(source) ? [] : {}; + + forEach(source, (value, key) => { + const reducedValue = visit(value, i + 1); + !isUndefined(reducedValue) && (target[key] = reducedValue); + }); + + stack[i] = undefined; + + return target; + } + } + + return source; + }; + + return visit(obj, 0); +}; + +/** + * Determines if a value is an async function. + * + * @param {*} thing - The value to test. + * @returns {boolean} True if value is an async function, otherwise false. + */ +const isAsyncFn = kindOfTest('AsyncFunction'); + +/** + * Determines if a value is thenable (has then and catch methods). + * + * @param {*} thing - The value to test. + * @returns {boolean} True if value is thenable, otherwise false. + */ +const isThenable = (thing) => + thing && + (isObject(thing) || isFunction$1(thing)) && + isFunction$1(thing.then) && + isFunction$1(thing.catch); + +// original code +// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34 + +/** + * Provides a cross-platform setImmediate implementation. + * Uses native setImmediate if available, otherwise falls back to postMessage or setTimeout. + * + * @param {boolean} setImmediateSupported - Whether setImmediate is supported. + * @param {boolean} postMessageSupported - Whether postMessage is supported. + * @returns {Function} A function to schedule a callback asynchronously. + */ +const _setImmediate = ((setImmediateSupported, postMessageSupported) => { + if (setImmediateSupported) { + return setImmediate; + } + + return postMessageSupported + ? ((token, callbacks) => { + _global.addEventListener( + 'message', + ({ source, data }) => { + if (source === _global && data === token) { + callbacks.length && callbacks.shift()(); + } + }, + false + ); + + return (cb) => { + callbacks.push(cb); + _global.postMessage(token, '*'); + }; + })(`axios@${Math.random()}`, []) + : (cb) => setTimeout(cb); +})(typeof setImmediate === 'function', isFunction$1(_global.postMessage)); + +/** + * Schedules a microtask or asynchronous callback as soon as possible. + * Uses queueMicrotask if available, otherwise falls back to process.nextTick or _setImmediate. + * + * @type {Function} + */ +const asap = + typeof queueMicrotask !== 'undefined' + ? queueMicrotask.bind(_global) + : (typeof process !== 'undefined' && process.nextTick) || _setImmediate; + +// ********************* + +const isIterable = (thing) => thing != null && isFunction$1(thing[iterator]); + +var utils$1 = { + isArray, + isArrayBuffer, + isBuffer, + isFormData, + isArrayBufferView, + isString, + isNumber, + isBoolean, + isObject, + isPlainObject, + isEmptyObject, + isReadableStream, + isRequest, + isResponse, + isHeaders, + isUndefined, + isDate, + isFile, + isReactNativeBlob, + isReactNative, + isBlob, + isRegExp, + isFunction: isFunction$1, + isStream, + isURLSearchParams, + isTypedArray, + isFileList, + forEach, + merge, + extend, + trim, + stripBOM, + inherits, + toFlatObject, + kindOf, + kindOfTest, + endsWith, + toArray, + forEachEntry, + matchAll, + isHTMLForm, + hasOwnProperty, + hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection + reduceDescriptors, + freezeMethods, + toObjectSet, + toCamelCase, + noop, + toFiniteNumber, + findKey, + global: _global, + isContextDefined, + isSpecCompliantForm, + toJSONObject, + isAsyncFn, + isThenable, + setImmediate: _setImmediate, + asap, + isIterable, +}; + +let AxiosError$1 = class AxiosError extends Error { + static from(error, code, config, request, response, customProps) { + const axiosError = new AxiosError(error.message, code || error.code, config, request, response); + axiosError.cause = error; + axiosError.name = error.name; + + // Preserve status from the original error if not already set from response + if (error.status != null && axiosError.status == null) { + axiosError.status = error.status; + } + + customProps && Object.assign(axiosError, customProps); + return axiosError; + } + + /** + * Create an Error with the specified message, config, error code, request and response. + * + * @param {string} message The error message. + * @param {string} [code] The error code (for example, 'ECONNABORTED'). + * @param {Object} [config] The config. + * @param {Object} [request] The request. + * @param {Object} [response] The response. + * + * @returns {Error} The created error. + */ + constructor(message, code, config, request, response) { + super(message); + + // Make message enumerable to maintain backward compatibility + // The native Error constructor sets message as non-enumerable, + // but axios < v1.13.3 had it as enumerable + Object.defineProperty(this, 'message', { + value: message, + enumerable: true, + writable: true, + configurable: true, + }); + + this.name = 'AxiosError'; + this.isAxiosError = true; + code && (this.code = code); + config && (this.config = config); + request && (this.request = request); + if (response) { + this.response = response; + this.status = response.status; + } + } + + toJSON() { + return { + // Standard + message: this.message, + name: this.name, + // Microsoft + description: this.description, + number: this.number, + // Mozilla + fileName: this.fileName, + lineNumber: this.lineNumber, + columnNumber: this.columnNumber, + stack: this.stack, + // Axios + config: utils$1.toJSONObject(this.config), + code: this.code, + status: this.status, + }; + } +}; + +// This can be changed to static properties as soon as the parser options in .eslint.cjs are updated. +AxiosError$1.ERR_BAD_OPTION_VALUE = 'ERR_BAD_OPTION_VALUE'; +AxiosError$1.ERR_BAD_OPTION = 'ERR_BAD_OPTION'; +AxiosError$1.ECONNABORTED = 'ECONNABORTED'; +AxiosError$1.ETIMEDOUT = 'ETIMEDOUT'; +AxiosError$1.ERR_NETWORK = 'ERR_NETWORK'; +AxiosError$1.ERR_FR_TOO_MANY_REDIRECTS = 'ERR_FR_TOO_MANY_REDIRECTS'; +AxiosError$1.ERR_DEPRECATED = 'ERR_DEPRECATED'; +AxiosError$1.ERR_BAD_RESPONSE = 'ERR_BAD_RESPONSE'; +AxiosError$1.ERR_BAD_REQUEST = 'ERR_BAD_REQUEST'; +AxiosError$1.ERR_CANCELED = 'ERR_CANCELED'; +AxiosError$1.ERR_NOT_SUPPORT = 'ERR_NOT_SUPPORT'; +AxiosError$1.ERR_INVALID_URL = 'ERR_INVALID_URL'; +AxiosError$1.ERR_FORM_DATA_DEPTH_EXCEEDED = 'ERR_FORM_DATA_DEPTH_EXCEEDED'; + +// eslint-disable-next-line strict +var httpAdapter = null; + +/** + * Determines if the given thing is a array or js object. + * + * @param {string} thing - The object or array to be visited. + * + * @returns {boolean} + */ +function isVisitable(thing) { + return utils$1.isPlainObject(thing) || utils$1.isArray(thing); +} + +/** + * It removes the brackets from the end of a string + * + * @param {string} key - The key of the parameter. + * + * @returns {string} the key without the brackets. + */ +function removeBrackets(key) { + return utils$1.endsWith(key, '[]') ? key.slice(0, -2) : key; +} + +/** + * It takes a path, a key, and a boolean, and returns a string + * + * @param {string} path - The path to the current key. + * @param {string} key - The key of the current object being iterated over. + * @param {string} dots - If true, the key will be rendered with dots instead of brackets. + * + * @returns {string} The path to the current key. + */ +function renderKey(path, key, dots) { + if (!path) return key; + return path + .concat(key) + .map(function each(token, i) { + // eslint-disable-next-line no-param-reassign + token = removeBrackets(token); + return !dots && i ? '[' + token + ']' : token; + }) + .join(dots ? '.' : ''); +} + +/** + * If the array is an array and none of its elements are visitable, then it's a flat array. + * + * @param {Array} arr - The array to check + * + * @returns {boolean} + */ +function isFlatArray(arr) { + return utils$1.isArray(arr) && !arr.some(isVisitable); +} + +const predicates = utils$1.toFlatObject(utils$1, {}, null, function filter(prop) { + return /^is[A-Z]/.test(prop); +}); + +/** + * Convert a data object to FormData + * + * @param {Object} obj + * @param {?Object} [formData] + * @param {?Object} [options] + * @param {Function} [options.visitor] + * @param {Boolean} [options.metaTokens = true] + * @param {Boolean} [options.dots = false] + * @param {?Boolean} [options.indexes = false] + * + * @returns {Object} + **/ + +/** + * It converts an object into a FormData object + * + * @param {Object} obj - The object to convert to form data. + * @param {string} formData - The FormData object to append to. + * @param {Object} options + * + * @returns + */ +function toFormData$1(obj, formData, options) { + if (!utils$1.isObject(obj)) { + throw new TypeError('target must be an object'); + } + + // eslint-disable-next-line no-param-reassign + formData = formData || new (FormData)(); + + // eslint-disable-next-line no-param-reassign + options = utils$1.toFlatObject( + options, + { + metaTokens: true, + dots: false, + indexes: false, + }, + false, + function defined(option, source) { + // eslint-disable-next-line no-eq-null,eqeqeq + return !utils$1.isUndefined(source[option]); + } + ); + + const metaTokens = options.metaTokens; + // eslint-disable-next-line no-use-before-define + const visitor = options.visitor || defaultVisitor; + const dots = options.dots; + const indexes = options.indexes; + const _Blob = options.Blob || (typeof Blob !== 'undefined' && Blob); + const maxDepth = options.maxDepth === undefined ? 100 : options.maxDepth; + const useBlob = _Blob && utils$1.isSpecCompliantForm(formData); + + if (!utils$1.isFunction(visitor)) { + throw new TypeError('visitor must be a function'); + } + + function convertValue(value) { + if (value === null) return ''; + + if (utils$1.isDate(value)) { + return value.toISOString(); + } + + if (utils$1.isBoolean(value)) { + return value.toString(); + } + + if (!useBlob && utils$1.isBlob(value)) { + throw new AxiosError$1('Blob is not supported. Use a Buffer instead.'); + } + + if (utils$1.isArrayBuffer(value) || utils$1.isTypedArray(value)) { + return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value); + } + + return value; + } + + /** + * Default visitor. + * + * @param {*} value + * @param {String|Number} key + * @param {Array} path + * @this {FormData} + * + * @returns {boolean} return true to visit the each prop of the value recursively + */ + function defaultVisitor(value, key, path) { + let arr = value; + + if (utils$1.isReactNative(formData) && utils$1.isReactNativeBlob(value)) { + formData.append(renderKey(path, key, dots), convertValue(value)); + return false; + } + + if (value && !path && typeof value === 'object') { + if (utils$1.endsWith(key, '{}')) { + // eslint-disable-next-line no-param-reassign + key = metaTokens ? key : key.slice(0, -2); + // eslint-disable-next-line no-param-reassign + value = JSON.stringify(value); + } else if ( + (utils$1.isArray(value) && isFlatArray(value)) || + ((utils$1.isFileList(value) || utils$1.endsWith(key, '[]')) && (arr = utils$1.toArray(value))) + ) { + // eslint-disable-next-line no-param-reassign + key = removeBrackets(key); + + arr.forEach(function each(el, index) { + !(utils$1.isUndefined(el) || el === null) && + formData.append( + // eslint-disable-next-line no-nested-ternary + indexes === true + ? renderKey([key], index, dots) + : indexes === null + ? key + : key + '[]', + convertValue(el) + ); + }); + return false; + } + } + + if (isVisitable(value)) { + return true; + } + + formData.append(renderKey(path, key, dots), convertValue(value)); + + return false; + } + + const stack = []; + + const exposedHelpers = Object.assign(predicates, { + defaultVisitor, + convertValue, + isVisitable, + }); + + function build(value, path, depth = 0) { + if (utils$1.isUndefined(value)) return; + + if (depth > maxDepth) { + throw new AxiosError$1( + 'Object is too deeply nested (' + depth + ' levels). Max depth: ' + maxDepth, + AxiosError$1.ERR_FORM_DATA_DEPTH_EXCEEDED + ); + } + + if (stack.indexOf(value) !== -1) { + throw Error('Circular reference detected in ' + path.join('.')); + } + + stack.push(value); + + utils$1.forEach(value, function each(el, key) { + const result = + !(utils$1.isUndefined(el) || el === null) && + visitor.call(formData, el, utils$1.isString(key) ? key.trim() : key, path, exposedHelpers); + + if (result === true) { + build(el, path ? path.concat(key) : [key], depth + 1); + } + }); + + stack.pop(); + } + + if (!utils$1.isObject(obj)) { + throw new TypeError('data must be an object'); + } + + build(obj); + + return formData; +} + +/** + * It encodes a string by replacing all characters that are not in the unreserved set with + * their percent-encoded equivalents + * + * @param {string} str - The string to encode. + * + * @returns {string} The encoded string. + */ +function encode$1(str) { + const charMap = { + '!': '%21', + "'": '%27', + '(': '%28', + ')': '%29', + '~': '%7E', + '%20': '+', + }; + return encodeURIComponent(str).replace(/[!'()~]|%20/g, function replacer(match) { + return charMap[match]; + }); +} + +/** + * It takes a params object and converts it to a FormData object + * + * @param {Object} params - The parameters to be converted to a FormData object. + * @param {Object} options - The options object passed to the Axios constructor. + * + * @returns {void} + */ +function AxiosURLSearchParams(params, options) { + this._pairs = []; + + params && toFormData$1(params, this, options); +} + +const prototype = AxiosURLSearchParams.prototype; + +prototype.append = function append(name, value) { + this._pairs.push([name, value]); +}; + +prototype.toString = function toString(encoder) { + const _encode = encoder + ? function (value) { + return encoder.call(this, value, encode$1); + } + : encode$1; + + return this._pairs + .map(function each(pair) { + return _encode(pair[0]) + '=' + _encode(pair[1]); + }, '') + .join('&'); +}; + +/** + * It replaces URL-encoded forms of `:`, `$`, `,`, and spaces with + * their plain counterparts (`:`, `$`, `,`, `+`). + * + * @param {string} val The value to be encoded. + * + * @returns {string} The encoded value. + */ +function encode(val) { + return encodeURIComponent(val) + .replace(/%3A/gi, ':') + .replace(/%24/g, '$') + .replace(/%2C/gi, ',') + .replace(/%20/g, '+'); +} + +/** + * Build a URL by appending params to the end + * + * @param {string} url The base of the url (e.g., http://www.google.com) + * @param {object} [params] The params to be appended + * @param {?(object|Function)} options + * + * @returns {string} The formatted url + */ +function buildURL(url, params, options) { + if (!params) { + return url; + } + + const _encode = (options && options.encode) || encode; + + const _options = utils$1.isFunction(options) + ? { + serialize: options, + } + : options; + + const serializeFn = _options && _options.serialize; + + let serializedParams; + + if (serializeFn) { + serializedParams = serializeFn(params, _options); + } else { + serializedParams = utils$1.isURLSearchParams(params) + ? params.toString() + : new AxiosURLSearchParams(params, _options).toString(_encode); + } + + if (serializedParams) { + const hashmarkIndex = url.indexOf('#'); + + if (hashmarkIndex !== -1) { + url = url.slice(0, hashmarkIndex); + } + url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams; + } + + return url; +} + +class InterceptorManager { + constructor() { + this.handlers = []; + } + + /** + * Add a new interceptor to the stack + * + * @param {Function} fulfilled The function to handle `then` for a `Promise` + * @param {Function} rejected The function to handle `reject` for a `Promise` + * @param {Object} options The options for the interceptor, synchronous and runWhen + * + * @return {Number} An ID used to remove interceptor later + */ + use(fulfilled, rejected, options) { + this.handlers.push({ + fulfilled, + rejected, + synchronous: options ? options.synchronous : false, + runWhen: options ? options.runWhen : null, + }); + return this.handlers.length - 1; + } + + /** + * Remove an interceptor from the stack + * + * @param {Number} id The ID that was returned by `use` + * + * @returns {void} + */ + eject(id) { + if (this.handlers[id]) { + this.handlers[id] = null; + } + } + + /** + * Clear all interceptors from the stack + * + * @returns {void} + */ + clear() { + if (this.handlers) { + this.handlers = []; + } + } + + /** + * Iterate over all the registered interceptors + * + * This method is particularly useful for skipping over any + * interceptors that may have become `null` calling `eject`. + * + * @param {Function} fn The function to call for each interceptor + * + * @returns {void} + */ + forEach(fn) { + utils$1.forEach(this.handlers, function forEachHandler(h) { + if (h !== null) { + fn(h); + } + }); + } +} + +var transitionalDefaults = { + silentJSONParsing: true, + forcedJSONParsing: true, + clarifyTimeoutError: false, + legacyInterceptorReqResOrdering: true, +}; + +var URLSearchParams$1 = typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams; + +var FormData$1 = typeof FormData !== 'undefined' ? FormData : null; + +var Blob$1 = typeof Blob !== 'undefined' ? Blob : null; + +var platform$1 = { + isBrowser: true, + classes: { + URLSearchParams: URLSearchParams$1, + FormData: FormData$1, + Blob: Blob$1, + }, + protocols: ['http', 'https', 'file', 'blob', 'url', 'data'], +}; + +const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined'; + +const _navigator = (typeof navigator === 'object' && navigator) || undefined; + +/** + * Determine if we're running in a standard browser environment + * + * This allows axios to run in a web worker, and react-native. + * Both environments support XMLHttpRequest, but not fully standard globals. + * + * web workers: + * typeof window -> undefined + * typeof document -> undefined + * + * react-native: + * navigator.product -> 'ReactNative' + * nativescript + * navigator.product -> 'NativeScript' or 'NS' + * + * @returns {boolean} + */ +const hasStandardBrowserEnv = + hasBrowserEnv && + (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0); + +/** + * Determine if we're running in a standard browser webWorker environment + * + * Although the `isStandardBrowserEnv` method indicates that + * `allows axios to run in a web worker`, the WebWorker will still be + * filtered out due to its judgment standard + * `typeof window !== 'undefined' && typeof document !== 'undefined'`. + * This leads to a problem when axios post `FormData` in webWorker + */ +const hasStandardBrowserWebWorkerEnv = (() => { + return ( + typeof WorkerGlobalScope !== 'undefined' && + // eslint-disable-next-line no-undef + self instanceof WorkerGlobalScope && + typeof self.importScripts === 'function' + ); +})(); + +const origin = (hasBrowserEnv && window.location.href) || 'http://localhost'; + +var utils = /*#__PURE__*/Object.freeze({ + __proto__: null, + hasBrowserEnv: hasBrowserEnv, + hasStandardBrowserEnv: hasStandardBrowserEnv, + hasStandardBrowserWebWorkerEnv: hasStandardBrowserWebWorkerEnv, + navigator: _navigator, + origin: origin +}); + +var platform = { + ...utils, + ...platform$1, +}; + +function toURLEncodedForm(data, options) { + return toFormData$1(data, new platform.classes.URLSearchParams(), { + visitor: function (value, key, path, helpers) { + if (platform.isNode && utils$1.isBuffer(value)) { + this.append(key, value.toString('base64')); + return false; + } + + return helpers.defaultVisitor.apply(this, arguments); + }, + ...options, + }); +} + +/** + * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z'] + * + * @param {string} name - The name of the property to get. + * + * @returns An array of strings. + */ +function parsePropPath(name) { + // foo[x][y][z] + // foo.x.y.z + // foo-x-y-z + // foo x y z + return utils$1.matchAll(/\w+|\[(\w*)]/g, name).map((match) => { + return match[0] === '[]' ? '' : match[1] || match[0]; + }); +} + +/** + * Convert an array to an object. + * + * @param {Array} arr - The array to convert to an object. + * + * @returns An object with the same keys and values as the array. + */ +function arrayToObject(arr) { + const obj = {}; + const keys = Object.keys(arr); + let i; + const len = keys.length; + let key; + for (i = 0; i < len; i++) { + key = keys[i]; + obj[key] = arr[key]; + } + return obj; +} + +/** + * It takes a FormData object and returns a JavaScript object + * + * @param {string} formData The FormData object to convert to JSON. + * + * @returns {Object | null} The converted object. + */ +function formDataToJSON(formData) { + function buildPath(path, value, target, index) { + let name = path[index++]; + + if (name === '__proto__') return true; + + const isNumericKey = Number.isFinite(+name); + const isLast = index >= path.length; + name = !name && utils$1.isArray(target) ? target.length : name; + + if (isLast) { + if (utils$1.hasOwnProp(target, name)) { + target[name] = utils$1.isArray(target[name]) + ? target[name].concat(value) + : [target[name], value]; + } else { + target[name] = value; + } + + return !isNumericKey; + } + + if (!target[name] || !utils$1.isObject(target[name])) { + target[name] = []; + } + + const result = buildPath(path, value, target[name], index); + + if (result && utils$1.isArray(target[name])) { + target[name] = arrayToObject(target[name]); + } + + return !isNumericKey; + } + + if (utils$1.isFormData(formData) && utils$1.isFunction(formData.entries)) { + const obj = {}; + + utils$1.forEachEntry(formData, (name, value) => { + buildPath(parsePropPath(name), value, obj, 0); + }); + + return obj; + } + + return null; +} + +const own = (obj, key) => (obj != null && utils$1.hasOwnProp(obj, key) ? obj[key] : undefined); + +/** + * It takes a string, tries to parse it, and if it fails, it returns the stringified version + * of the input + * + * @param {any} rawValue - The value to be stringified. + * @param {Function} parser - A function that parses a string into a JavaScript object. + * @param {Function} encoder - A function that takes a value and returns a string. + * + * @returns {string} A stringified version of the rawValue. + */ +function stringifySafely(rawValue, parser, encoder) { + if (utils$1.isString(rawValue)) { + try { + (parser || JSON.parse)(rawValue); + return utils$1.trim(rawValue); + } catch (e) { + if (e.name !== 'SyntaxError') { + throw e; + } + } + } + + return (encoder || JSON.stringify)(rawValue); +} + +const defaults = { + transitional: transitionalDefaults, + + adapter: ['xhr', 'http', 'fetch'], + + transformRequest: [ + function transformRequest(data, headers) { + const contentType = headers.getContentType() || ''; + const hasJSONContentType = contentType.indexOf('application/json') > -1; + const isObjectPayload = utils$1.isObject(data); + + if (isObjectPayload && utils$1.isHTMLForm(data)) { + data = new FormData(data); + } + + const isFormData = utils$1.isFormData(data); + + if (isFormData) { + return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data; + } + + if ( + utils$1.isArrayBuffer(data) || + utils$1.isBuffer(data) || + utils$1.isStream(data) || + utils$1.isFile(data) || + utils$1.isBlob(data) || + utils$1.isReadableStream(data) + ) { + return data; + } + if (utils$1.isArrayBufferView(data)) { + return data.buffer; + } + if (utils$1.isURLSearchParams(data)) { + headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false); + return data.toString(); + } + + let isFileList; + + if (isObjectPayload) { + const formSerializer = own(this, 'formSerializer'); + if (contentType.indexOf('application/x-www-form-urlencoded') > -1) { + return toURLEncodedForm(data, formSerializer).toString(); + } + + if ( + (isFileList = utils$1.isFileList(data)) || + contentType.indexOf('multipart/form-data') > -1 + ) { + const env = own(this, 'env'); + const _FormData = env && env.FormData; + + return toFormData$1( + isFileList ? { 'files[]': data } : data, + _FormData && new _FormData(), + formSerializer + ); + } + } + + if (isObjectPayload || hasJSONContentType) { + headers.setContentType('application/json', false); + return stringifySafely(data); + } + + return data; + }, + ], + + transformResponse: [ + function transformResponse(data) { + const transitional = own(this, 'transitional') || defaults.transitional; + const forcedJSONParsing = transitional && transitional.forcedJSONParsing; + const responseType = own(this, 'responseType'); + const JSONRequested = responseType === 'json'; + + if (utils$1.isResponse(data) || utils$1.isReadableStream(data)) { + return data; + } + + if ( + data && + utils$1.isString(data) && + ((forcedJSONParsing && !responseType) || JSONRequested) + ) { + const silentJSONParsing = transitional && transitional.silentJSONParsing; + const strictJSONParsing = !silentJSONParsing && JSONRequested; + + try { + return JSON.parse(data, own(this, 'parseReviver')); + } catch (e) { + if (strictJSONParsing) { + if (e.name === 'SyntaxError') { + throw AxiosError$1.from(e, AxiosError$1.ERR_BAD_RESPONSE, this, null, own(this, 'response')); + } + throw e; + } + } + } + + return data; + }, + ], + + /** + * A timeout in milliseconds to abort a request. If set to 0 (default) a + * timeout is not created. + */ + timeout: 0, + + xsrfCookieName: 'XSRF-TOKEN', + xsrfHeaderName: 'X-XSRF-TOKEN', + + maxContentLength: -1, + maxBodyLength: -1, + + env: { + FormData: platform.classes.FormData, + Blob: platform.classes.Blob, + }, + + validateStatus: function validateStatus(status) { + return status >= 200 && status < 300; + }, + + headers: { + common: { + Accept: 'application/json, text/plain, */*', + 'Content-Type': undefined, + }, + }, +}; + +utils$1.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => { + defaults.headers[method] = {}; +}); + +// RawAxiosHeaders whose duplicates are ignored by node +// c.f. https://nodejs.org/api/http.html#http_message_headers +const ignoreDuplicateOf = utils$1.toObjectSet([ + 'age', + 'authorization', + 'content-length', + 'content-type', + 'etag', + 'expires', + 'from', + 'host', + 'if-modified-since', + 'if-unmodified-since', + 'last-modified', + 'location', + 'max-forwards', + 'proxy-authorization', + 'referer', + 'retry-after', + 'user-agent', +]); + +/** + * Parse headers into an object + * + * ``` + * Date: Wed, 27 Aug 2014 08:58:49 GMT + * Content-Type: application/json + * Connection: keep-alive + * Transfer-Encoding: chunked + * ``` + * + * @param {String} rawHeaders Headers needing to be parsed + * + * @returns {Object} Headers parsed into an object + */ +var parseHeaders = (rawHeaders) => { + const parsed = {}; + let key; + let val; + let i; + + rawHeaders && + rawHeaders.split('\n').forEach(function parser(line) { + i = line.indexOf(':'); + key = line.substring(0, i).trim().toLowerCase(); + val = line.substring(i + 1).trim(); + + if (!key || (parsed[key] && ignoreDuplicateOf[key])) { + return; + } + + if (key === 'set-cookie') { + if (parsed[key]) { + parsed[key].push(val); + } else { + parsed[key] = [val]; + } + } else { + parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val; + } + }); + + return parsed; +}; + +const $internals = Symbol('internals'); + +const INVALID_HEADER_VALUE_CHARS_RE = /[^\x09\x20-\x7E\x80-\xFF]/g; + +function trimSPorHTAB(str) { + let start = 0; + let end = str.length; + + while (start < end) { + const code = str.charCodeAt(start); + + if (code !== 0x09 && code !== 0x20) { + break; + } + + start += 1; + } + + while (end > start) { + const code = str.charCodeAt(end - 1); + + if (code !== 0x09 && code !== 0x20) { + break; + } + + end -= 1; + } + + return start === 0 && end === str.length ? str : str.slice(start, end); +} + +function normalizeHeader(header) { + return header && String(header).trim().toLowerCase(); +} + +function sanitizeHeaderValue(str) { + return trimSPorHTAB(str.replace(INVALID_HEADER_VALUE_CHARS_RE, '')); +} + +function normalizeValue(value) { + if (value === false || value == null) { + return value; + } + + return utils$1.isArray(value) ? value.map(normalizeValue) : sanitizeHeaderValue(String(value)); +} + +function parseTokens(str) { + const tokens = Object.create(null); + const tokensRE = /([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g; + let match; + + while ((match = tokensRE.exec(str))) { + tokens[match[1]] = match[2]; + } + + return tokens; +} + +const isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim()); + +function matchHeaderValue(context, value, header, filter, isHeaderNameFilter) { + if (utils$1.isFunction(filter)) { + return filter.call(this, value, header); + } + + if (isHeaderNameFilter) { + value = header; + } + + if (!utils$1.isString(value)) return; + + if (utils$1.isString(filter)) { + return value.indexOf(filter) !== -1; + } + + if (utils$1.isRegExp(filter)) { + return filter.test(value); + } +} + +function formatHeader(header) { + return header + .trim() + .toLowerCase() + .replace(/([a-z\d])(\w*)/g, (w, char, str) => { + return char.toUpperCase() + str; + }); +} + +function buildAccessors(obj, header) { + const accessorName = utils$1.toCamelCase(' ' + header); + + ['get', 'set', 'has'].forEach((methodName) => { + Object.defineProperty(obj, methodName + accessorName, { + value: function (arg1, arg2, arg3) { + return this[methodName].call(this, header, arg1, arg2, arg3); + }, + configurable: true, + }); + }); +} + +let AxiosHeaders$1 = class AxiosHeaders { + constructor(headers) { + headers && this.set(headers); + } + + set(header, valueOrRewrite, rewrite) { + const self = this; + + function setHeader(_value, _header, _rewrite) { + const lHeader = normalizeHeader(_header); + + if (!lHeader) { + throw new Error('header name must be a non-empty string'); + } + + const key = utils$1.findKey(self, lHeader); + + if ( + !key || + self[key] === undefined || + _rewrite === true || + (_rewrite === undefined && self[key] !== false) + ) { + self[key || _header] = normalizeValue(_value); + } + } + + const setHeaders = (headers, _rewrite) => + utils$1.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite)); + + if (utils$1.isPlainObject(header) || header instanceof this.constructor) { + setHeaders(header, valueOrRewrite); + } else if (utils$1.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) { + setHeaders(parseHeaders(header), valueOrRewrite); + } else if (utils$1.isObject(header) && utils$1.isIterable(header)) { + let obj = {}, + dest, + key; + for (const entry of header) { + if (!utils$1.isArray(entry)) { + throw TypeError('Object iterator must return a key-value pair'); + } + + obj[(key = entry[0])] = (dest = obj[key]) + ? utils$1.isArray(dest) + ? [...dest, entry[1]] + : [dest, entry[1]] + : entry[1]; + } + + setHeaders(obj, valueOrRewrite); + } else { + header != null && setHeader(valueOrRewrite, header, rewrite); + } + + return this; + } + + get(header, parser) { + header = normalizeHeader(header); + + if (header) { + const key = utils$1.findKey(this, header); + + if (key) { + const value = this[key]; + + if (!parser) { + return value; + } + + if (parser === true) { + return parseTokens(value); + } + + if (utils$1.isFunction(parser)) { + return parser.call(this, value, key); + } + + if (utils$1.isRegExp(parser)) { + return parser.exec(value); + } + + throw new TypeError('parser must be boolean|regexp|function'); + } + } + } + + has(header, matcher) { + header = normalizeHeader(header); + + if (header) { + const key = utils$1.findKey(this, header); + + return !!( + key && + this[key] !== undefined && + (!matcher || matchHeaderValue(this, this[key], key, matcher)) + ); + } + + return false; + } + + delete(header, matcher) { + const self = this; + let deleted = false; + + function deleteHeader(_header) { + _header = normalizeHeader(_header); + + if (_header) { + const key = utils$1.findKey(self, _header); + + if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) { + delete self[key]; + + deleted = true; + } + } + } + + if (utils$1.isArray(header)) { + header.forEach(deleteHeader); + } else { + deleteHeader(header); + } + + return deleted; + } + + clear(matcher) { + const keys = Object.keys(this); + let i = keys.length; + let deleted = false; + + while (i--) { + const key = keys[i]; + if (!matcher || matchHeaderValue(this, this[key], key, matcher, true)) { + delete this[key]; + deleted = true; + } + } + + return deleted; + } + + normalize(format) { + const self = this; + const headers = {}; + + utils$1.forEach(this, (value, header) => { + const key = utils$1.findKey(headers, header); + + if (key) { + self[key] = normalizeValue(value); + delete self[header]; + return; + } + + const normalized = format ? formatHeader(header) : String(header).trim(); + + if (normalized !== header) { + delete self[header]; + } + + self[normalized] = normalizeValue(value); + + headers[normalized] = true; + }); + + return this; + } + + concat(...targets) { + return this.constructor.concat(this, ...targets); + } + + toJSON(asStrings) { + const obj = Object.create(null); + + utils$1.forEach(this, (value, header) => { + value != null && + value !== false && + (obj[header] = asStrings && utils$1.isArray(value) ? value.join(', ') : value); + }); + + return obj; + } + + [Symbol.iterator]() { + return Object.entries(this.toJSON())[Symbol.iterator](); + } + + toString() { + return Object.entries(this.toJSON()) + .map(([header, value]) => header + ': ' + value) + .join('\n'); + } + + getSetCookie() { + return this.get('set-cookie') || []; + } + + get [Symbol.toStringTag]() { + return 'AxiosHeaders'; + } + + static from(thing) { + return thing instanceof this ? thing : new this(thing); + } + + static concat(first, ...targets) { + const computed = new this(first); + + targets.forEach((target) => computed.set(target)); + + return computed; + } + + static accessor(header) { + const internals = + (this[$internals] = + this[$internals] = + { + accessors: {}, + }); + + const accessors = internals.accessors; + const prototype = this.prototype; + + function defineAccessor(_header) { + const lHeader = normalizeHeader(_header); + + if (!accessors[lHeader]) { + buildAccessors(prototype, _header); + accessors[lHeader] = true; + } + } + + utils$1.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header); + + return this; + } +}; + +AxiosHeaders$1.accessor([ + 'Content-Type', + 'Content-Length', + 'Accept', + 'Accept-Encoding', + 'User-Agent', + 'Authorization', +]); + +// reserved names hotfix +utils$1.reduceDescriptors(AxiosHeaders$1.prototype, ({ value }, key) => { + let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set` + return { + get: () => value, + set(headerValue) { + this[mapped] = headerValue; + }, + }; +}); + +utils$1.freezeMethods(AxiosHeaders$1); + +/** + * Transform the data for a request or a response + * + * @param {Array|Function} fns A single function or Array of functions + * @param {?Object} response The response object + * + * @returns {*} The resulting transformed data + */ +function transformData(fns, response) { + const config = this || defaults; + const context = response || config; + const headers = AxiosHeaders$1.from(context.headers); + let data = context.data; + + utils$1.forEach(fns, function transform(fn) { + data = fn.call(config, data, headers.normalize(), response ? response.status : undefined); + }); + + headers.normalize(); + + return data; +} + +function isCancel$1(value) { + return !!(value && value.__CANCEL__); +} + +let CanceledError$1 = class CanceledError extends AxiosError$1 { + /** + * A `CanceledError` is an object that is thrown when an operation is canceled. + * + * @param {string=} message The message. + * @param {Object=} config The config. + * @param {Object=} request The request. + * + * @returns {CanceledError} The created error. + */ + constructor(message, config, request) { + super(message == null ? 'canceled' : message, AxiosError$1.ERR_CANCELED, config, request); + this.name = 'CanceledError'; + this.__CANCEL__ = true; + } +}; + +/** + * Resolve or reject a Promise based on response status. + * + * @param {Function} resolve A function that resolves the promise. + * @param {Function} reject A function that rejects the promise. + * @param {object} response The response. + * + * @returns {object} The response. + */ +function settle(resolve, reject, response) { + const validateStatus = response.config.validateStatus; + if (!response.status || !validateStatus || validateStatus(response.status)) { + resolve(response); + } else { + reject( + new AxiosError$1( + 'Request failed with status code ' + response.status, + [AxiosError$1.ERR_BAD_REQUEST, AxiosError$1.ERR_BAD_RESPONSE][ + Math.floor(response.status / 100) - 4 + ], + response.config, + response.request, + response + ) + ); + } +} + +function parseProtocol(url) { + const match = /^([-+\w]{1,25})(:?\/\/|:)/.exec(url); + return (match && match[1]) || ''; +} + +/** + * Calculate data maxRate + * @param {Number} [samplesCount= 10] + * @param {Number} [min= 1000] + * @returns {Function} + */ +function speedometer(samplesCount, min) { + samplesCount = samplesCount || 10; + const bytes = new Array(samplesCount); + const timestamps = new Array(samplesCount); + let head = 0; + let tail = 0; + let firstSampleTS; + + min = min !== undefined ? min : 1000; + + return function push(chunkLength) { + const now = Date.now(); + + const startedAt = timestamps[tail]; + + if (!firstSampleTS) { + firstSampleTS = now; + } + + bytes[head] = chunkLength; + timestamps[head] = now; + + let i = tail; + let bytesCount = 0; + + while (i !== head) { + bytesCount += bytes[i++]; + i = i % samplesCount; + } + + head = (head + 1) % samplesCount; + + if (head === tail) { + tail = (tail + 1) % samplesCount; + } + + if (now - firstSampleTS < min) { + return; + } + + const passed = startedAt && now - startedAt; + + return passed ? Math.round((bytesCount * 1000) / passed) : undefined; + }; +} + +/** + * Throttle decorator + * @param {Function} fn + * @param {Number} freq + * @return {Function} + */ +function throttle(fn, freq) { + let timestamp = 0; + let threshold = 1000 / freq; + let lastArgs; + let timer; + + const invoke = (args, now = Date.now()) => { + timestamp = now; + lastArgs = null; + if (timer) { + clearTimeout(timer); + timer = null; + } + fn(...args); + }; + + const throttled = (...args) => { + const now = Date.now(); + const passed = now - timestamp; + if (passed >= threshold) { + invoke(args, now); + } else { + lastArgs = args; + if (!timer) { + timer = setTimeout(() => { + timer = null; + invoke(lastArgs); + }, threshold - passed); + } + } + }; + + const flush = () => lastArgs && invoke(lastArgs); + + return [throttled, flush]; +} + +const progressEventReducer = (listener, isDownloadStream, freq = 3) => { + let bytesNotified = 0; + const _speedometer = speedometer(50, 250); + + return throttle((e) => { + const rawLoaded = e.loaded; + const total = e.lengthComputable ? e.total : undefined; + const loaded = total != null ? Math.min(rawLoaded, total) : rawLoaded; + const progressBytes = Math.max(0, loaded - bytesNotified); + const rate = _speedometer(progressBytes); + + bytesNotified = Math.max(bytesNotified, loaded); + + const data = { + loaded, + total, + progress: total ? loaded / total : undefined, + bytes: progressBytes, + rate: rate ? rate : undefined, + estimated: rate && total ? (total - loaded) / rate : undefined, + event: e, + lengthComputable: total != null, + [isDownloadStream ? 'download' : 'upload']: true, + }; + + listener(data); + }, freq); +}; + +const progressEventDecorator = (total, throttled) => { + const lengthComputable = total != null; + + return [ + (loaded) => + throttled[0]({ + lengthComputable, + total, + loaded, + }), + throttled[1], + ]; +}; + +const asyncDecorator = + (fn) => + (...args) => + utils$1.asap(() => fn(...args)); + +var isURLSameOrigin = platform.hasStandardBrowserEnv + ? ((origin, isMSIE) => (url) => { + url = new URL(url, platform.origin); + + return ( + origin.protocol === url.protocol && + origin.host === url.host && + (isMSIE || origin.port === url.port) + ); + })( + new URL(platform.origin), + platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent) + ) + : () => true; + +var cookies = platform.hasStandardBrowserEnv + ? // Standard browser envs support document.cookie + { + write(name, value, expires, path, domain, secure, sameSite) { + if (typeof document === 'undefined') return; + + const cookie = [`${name}=${encodeURIComponent(value)}`]; + + if (utils$1.isNumber(expires)) { + cookie.push(`expires=${new Date(expires).toUTCString()}`); + } + if (utils$1.isString(path)) { + cookie.push(`path=${path}`); + } + if (utils$1.isString(domain)) { + cookie.push(`domain=${domain}`); + } + if (secure === true) { + cookie.push('secure'); + } + if (utils$1.isString(sameSite)) { + cookie.push(`SameSite=${sameSite}`); + } + + document.cookie = cookie.join('; '); + }, + + read(name) { + if (typeof document === 'undefined') return null; + const match = document.cookie.match(new RegExp('(?:^|; )' + name + '=([^;]*)')); + return match ? decodeURIComponent(match[1]) : null; + }, + + remove(name) { + this.write(name, '', Date.now() - 86400000, '/'); + }, + } + : // Non-standard browser env (web workers, react-native) lack needed support. + { + write() {}, + read() { + return null; + }, + remove() {}, + }; + +/** + * Determines whether the specified URL is absolute + * + * @param {string} url The URL to test + * + * @returns {boolean} True if the specified URL is absolute, otherwise false + */ +function isAbsoluteURL(url) { + // A URL is considered absolute if it begins with "://" or "//" (protocol-relative URL). + // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed + // by any combination of letters, digits, plus, period, or hyphen. + if (typeof url !== 'string') { + return false; + } + + return /^([a-z][a-z\d+\-.]*:)?\/\//i.test(url); +} + +/** + * Creates a new URL by combining the specified URLs + * + * @param {string} baseURL The base URL + * @param {string} relativeURL The relative URL + * + * @returns {string} The combined URL + */ +function combineURLs(baseURL, relativeURL) { + return relativeURL + ? baseURL.replace(/\/?\/$/, '') + '/' + relativeURL.replace(/^\/+/, '') + : baseURL; +} + +/** + * Creates a new URL by combining the baseURL with the requestedURL, + * only when the requestedURL is not already an absolute URL. + * If the requestURL is absolute, this function returns the requestedURL untouched. + * + * @param {string} baseURL The base URL + * @param {string} requestedURL Absolute or relative URL to combine + * + * @returns {string} The combined full path + */ +function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) { + let isRelativeUrl = !isAbsoluteURL(requestedURL); + if (baseURL && (isRelativeUrl || allowAbsoluteUrls === false)) { + return combineURLs(baseURL, requestedURL); + } + return requestedURL; +} + +const headersToObject = (thing) => (thing instanceof AxiosHeaders$1 ? { ...thing } : thing); + +/** + * Config-specific merge-function which creates a new config-object + * by merging two configuration objects together. + * + * @param {Object} config1 + * @param {Object} config2 + * + * @returns {Object} New object resulting from merging config2 to config1 + */ +function mergeConfig$1(config1, config2) { + // eslint-disable-next-line no-param-reassign + config2 = config2 || {}; + const config = {}; + + function getMergedValue(target, source, prop, caseless) { + if (utils$1.isPlainObject(target) && utils$1.isPlainObject(source)) { + return utils$1.merge.call({ caseless }, target, source); + } else if (utils$1.isPlainObject(source)) { + return utils$1.merge({}, source); + } else if (utils$1.isArray(source)) { + return source.slice(); + } + return source; + } + + function mergeDeepProperties(a, b, prop, caseless) { + if (!utils$1.isUndefined(b)) { + return getMergedValue(a, b, prop, caseless); + } else if (!utils$1.isUndefined(a)) { + return getMergedValue(undefined, a, prop, caseless); + } + } + + // eslint-disable-next-line consistent-return + function valueFromConfig2(a, b) { + if (!utils$1.isUndefined(b)) { + return getMergedValue(undefined, b); + } + } + + // eslint-disable-next-line consistent-return + function defaultToConfig2(a, b) { + if (!utils$1.isUndefined(b)) { + return getMergedValue(undefined, b); + } else if (!utils$1.isUndefined(a)) { + return getMergedValue(undefined, a); + } + } + + // eslint-disable-next-line consistent-return + function mergeDirectKeys(a, b, prop) { + if (utils$1.hasOwnProp(config2, prop)) { + return getMergedValue(a, b); + } else if (utils$1.hasOwnProp(config1, prop)) { + return getMergedValue(undefined, a); + } + } + + const mergeMap = { + url: valueFromConfig2, + method: valueFromConfig2, + data: valueFromConfig2, + baseURL: defaultToConfig2, + transformRequest: defaultToConfig2, + transformResponse: defaultToConfig2, + paramsSerializer: defaultToConfig2, + timeout: defaultToConfig2, + timeoutMessage: defaultToConfig2, + withCredentials: defaultToConfig2, + withXSRFToken: defaultToConfig2, + adapter: defaultToConfig2, + responseType: defaultToConfig2, + xsrfCookieName: defaultToConfig2, + xsrfHeaderName: defaultToConfig2, + onUploadProgress: defaultToConfig2, + onDownloadProgress: defaultToConfig2, + decompress: defaultToConfig2, + maxContentLength: defaultToConfig2, + maxBodyLength: defaultToConfig2, + beforeRedirect: defaultToConfig2, + transport: defaultToConfig2, + httpAgent: defaultToConfig2, + httpsAgent: defaultToConfig2, + cancelToken: defaultToConfig2, + socketPath: defaultToConfig2, + responseEncoding: defaultToConfig2, + validateStatus: mergeDirectKeys, + headers: (a, b, prop) => + mergeDeepProperties(headersToObject(a), headersToObject(b), prop, true), + }; + + utils$1.forEach(Object.keys({ ...config1, ...config2 }), function computeConfigValue(prop) { + if (prop === '__proto__' || prop === 'constructor' || prop === 'prototype') return; + const merge = utils$1.hasOwnProp(mergeMap, prop) ? mergeMap[prop] : mergeDeepProperties; + const a = utils$1.hasOwnProp(config1, prop) ? config1[prop] : undefined; + const b = utils$1.hasOwnProp(config2, prop) ? config2[prop] : undefined; + const configValue = merge(a, b, prop); + (utils$1.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue); + }); + + return config; +} + +var resolveConfig = (config) => { + const newConfig = mergeConfig$1({}, config); + + let { data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth } = newConfig; + + newConfig.headers = headers = AxiosHeaders$1.from(headers); + + newConfig.url = buildURL( + buildFullPath(newConfig.baseURL, newConfig.url, newConfig.allowAbsoluteUrls), + config.params, + config.paramsSerializer + ); + + // HTTP basic authentication + if (auth) { + headers.set( + 'Authorization', + 'Basic ' + + btoa( + (auth.username || '') + + ':' + + (auth.password ? unescape(encodeURIComponent(auth.password)) : '') + ) + ); + } + + if (utils$1.isFormData(data)) { + if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) { + headers.setContentType(undefined); // browser handles it + } else if (utils$1.isFunction(data.getHeaders)) { + // Node.js FormData (like form-data package) + const formHeaders = data.getHeaders(); + // Only set safe headers to avoid overwriting security headers + const allowedHeaders = ['content-type', 'content-length']; + Object.entries(formHeaders).forEach(([key, val]) => { + if (allowedHeaders.includes(key.toLowerCase())) { + headers.set(key, val); + } + }); + } + } + + // Add xsrf header + // This is only done if running in a standard browser environment. + // Specifically not if we're in a web worker, or react-native. + + if (platform.hasStandardBrowserEnv) { + if (utils$1.isFunction(withXSRFToken)) { + withXSRFToken = withXSRFToken(newConfig); + } + + // Strict boolean check — prevents proto-pollution gadgets (e.g. Object.prototype.withXSRFToken = 1) + // and misconfigurations (e.g. "false") from short-circuiting the same-origin check and leaking + // the XSRF token cross-origin. See GHSA-xx6v-rp6x-q39c. + const shouldSendXSRF = + withXSRFToken === true || + (withXSRFToken == null && isURLSameOrigin(newConfig.url)); + + if (shouldSendXSRF) { + const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName); + + if (xsrfValue) { + headers.set(xsrfHeaderName, xsrfValue); + } + } + } + + return newConfig; +}; + +const isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined'; + +var xhrAdapter = isXHRAdapterSupported && + function (config) { + return new Promise(function dispatchXhrRequest(resolve, reject) { + const _config = resolveConfig(config); + let requestData = _config.data; + const requestHeaders = AxiosHeaders$1.from(_config.headers).normalize(); + let { responseType, onUploadProgress, onDownloadProgress } = _config; + let onCanceled; + let uploadThrottled, downloadThrottled; + let flushUpload, flushDownload; + + function done() { + flushUpload && flushUpload(); // flush events + flushDownload && flushDownload(); // flush events + + _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled); + + _config.signal && _config.signal.removeEventListener('abort', onCanceled); + } + + let request = new XMLHttpRequest(); + + request.open(_config.method.toUpperCase(), _config.url, true); + + // Set the request timeout in MS + request.timeout = _config.timeout; + + function onloadend() { + if (!request) { + return; + } + // Prepare the response + const responseHeaders = AxiosHeaders$1.from( + 'getAllResponseHeaders' in request && request.getAllResponseHeaders() + ); + const responseData = + !responseType || responseType === 'text' || responseType === 'json' + ? request.responseText + : request.response; + const response = { + data: responseData, + status: request.status, + statusText: request.statusText, + headers: responseHeaders, + config, + request, + }; + + settle( + function _resolve(value) { + resolve(value); + done(); + }, + function _reject(err) { + reject(err); + done(); + }, + response + ); + + // Clean up request + request = null; + } + + if ('onloadend' in request) { + // Use onloadend if available + request.onloadend = onloadend; + } else { + // Listen for ready state to emulate onloadend + request.onreadystatechange = function handleLoad() { + if (!request || request.readyState !== 4) { + return; + } + + // The request errored out and we didn't get a response, this will be + // handled by onerror instead + // With one exception: request that using file: protocol, most browsers + // will return status as 0 even though it's a successful request + if ( + request.status === 0 && + !(request.responseURL && request.responseURL.indexOf('file:') === 0) + ) { + return; + } + // readystate handler is calling before onerror or ontimeout handlers, + // so we should call onloadend on the next 'tick' + setTimeout(onloadend); + }; + } + + // Handle browser request cancellation (as opposed to a manual cancellation) + request.onabort = function handleAbort() { + if (!request) { + return; + } + + reject(new AxiosError$1('Request aborted', AxiosError$1.ECONNABORTED, config, request)); + + // Clean up request + request = null; + }; + + // Handle low level network errors + request.onerror = function handleError(event) { + // Browsers deliver a ProgressEvent in XHR onerror + // (message may be empty; when present, surface it) + // See https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/error_event + const msg = event && event.message ? event.message : 'Network Error'; + const err = new AxiosError$1(msg, AxiosError$1.ERR_NETWORK, config, request); + // attach the underlying event for consumers who want details + err.event = event || null; + reject(err); + request = null; + }; + + // Handle timeout + request.ontimeout = function handleTimeout() { + let timeoutErrorMessage = _config.timeout + ? 'timeout of ' + _config.timeout + 'ms exceeded' + : 'timeout exceeded'; + const transitional = _config.transitional || transitionalDefaults; + if (_config.timeoutErrorMessage) { + timeoutErrorMessage = _config.timeoutErrorMessage; + } + reject( + new AxiosError$1( + timeoutErrorMessage, + transitional.clarifyTimeoutError ? AxiosError$1.ETIMEDOUT : AxiosError$1.ECONNABORTED, + config, + request + ) + ); + + // Clean up request + request = null; + }; + + // Remove Content-Type if data is undefined + requestData === undefined && requestHeaders.setContentType(null); + + // Add headers to the request + if ('setRequestHeader' in request) { + utils$1.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) { + request.setRequestHeader(key, val); + }); + } + + // Add withCredentials to request if needed + if (!utils$1.isUndefined(_config.withCredentials)) { + request.withCredentials = !!_config.withCredentials; + } + + // Add responseType to request if needed + if (responseType && responseType !== 'json') { + request.responseType = _config.responseType; + } + + // Handle progress if needed + if (onDownloadProgress) { + [downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true); + request.addEventListener('progress', downloadThrottled); + } + + // Not all browsers support upload events + if (onUploadProgress && request.upload) { + [uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress); + + request.upload.addEventListener('progress', uploadThrottled); + + request.upload.addEventListener('loadend', flushUpload); + } + + if (_config.cancelToken || _config.signal) { + // Handle cancellation + // eslint-disable-next-line func-names + onCanceled = (cancel) => { + if (!request) { + return; + } + reject(!cancel || cancel.type ? new CanceledError$1(null, config, request) : cancel); + request.abort(); + request = null; + }; + + _config.cancelToken && _config.cancelToken.subscribe(onCanceled); + if (_config.signal) { + _config.signal.aborted + ? onCanceled() + : _config.signal.addEventListener('abort', onCanceled); + } + } + + const protocol = parseProtocol(_config.url); + + if (protocol && platform.protocols.indexOf(protocol) === -1) { + reject( + new AxiosError$1( + 'Unsupported protocol ' + protocol + ':', + AxiosError$1.ERR_BAD_REQUEST, + config + ) + ); + return; + } + + // Send the request + request.send(requestData || null); + }); + }; + +const composeSignals = (signals, timeout) => { + const { length } = (signals = signals ? signals.filter(Boolean) : []); + + if (timeout || length) { + let controller = new AbortController(); + + let aborted; + + const onabort = function (reason) { + if (!aborted) { + aborted = true; + unsubscribe(); + const err = reason instanceof Error ? reason : this.reason; + controller.abort( + err instanceof AxiosError$1 + ? err + : new CanceledError$1(err instanceof Error ? err.message : err) + ); + } + }; + + let timer = + timeout && + setTimeout(() => { + timer = null; + onabort(new AxiosError$1(`timeout of ${timeout}ms exceeded`, AxiosError$1.ETIMEDOUT)); + }, timeout); + + const unsubscribe = () => { + if (signals) { + timer && clearTimeout(timer); + timer = null; + signals.forEach((signal) => { + signal.unsubscribe + ? signal.unsubscribe(onabort) + : signal.removeEventListener('abort', onabort); + }); + signals = null; + } + }; + + signals.forEach((signal) => signal.addEventListener('abort', onabort)); + + const { signal } = controller; + + signal.unsubscribe = () => utils$1.asap(unsubscribe); + + return signal; + } +}; + +const streamChunk = function* (chunk, chunkSize) { + let len = chunk.byteLength; + + if (len < chunkSize) { + yield chunk; + return; + } + + let pos = 0; + let end; + + while (pos < len) { + end = pos + chunkSize; + yield chunk.slice(pos, end); + pos = end; + } +}; + +const readBytes = async function* (iterable, chunkSize) { + for await (const chunk of readStream(iterable)) { + yield* streamChunk(chunk, chunkSize); + } +}; + +const readStream = async function* (stream) { + if (stream[Symbol.asyncIterator]) { + yield* stream; + return; + } + + const reader = stream.getReader(); + try { + for (;;) { + const { done, value } = await reader.read(); + if (done) { + break; + } + yield value; + } + } finally { + await reader.cancel(); + } +}; + +const trackStream = (stream, chunkSize, onProgress, onFinish) => { + const iterator = readBytes(stream, chunkSize); + + let bytes = 0; + let done; + let _onFinish = (e) => { + if (!done) { + done = true; + onFinish && onFinish(e); + } + }; + + return new ReadableStream( + { + async pull(controller) { + try { + const { done, value } = await iterator.next(); + + if (done) { + _onFinish(); + controller.close(); + return; + } + + let len = value.byteLength; + if (onProgress) { + let loadedBytes = (bytes += len); + onProgress(loadedBytes); + } + controller.enqueue(new Uint8Array(value)); + } catch (err) { + _onFinish(err); + throw err; + } + }, + cancel(reason) { + _onFinish(reason); + return iterator.return(); + }, + }, + { + highWaterMark: 2, + } + ); +}; + +const DEFAULT_CHUNK_SIZE = 64 * 1024; + +const { isFunction } = utils$1; + +const globalFetchAPI = (({ Request, Response }) => ({ + Request, + Response, +}))(utils$1.global); + +const { ReadableStream: ReadableStream$1, TextEncoder } = utils$1.global; + +const test = (fn, ...args) => { + try { + return !!fn(...args); + } catch (e) { + return false; + } +}; + +const factory = (env) => { + env = utils$1.merge.call( + { + skipUndefined: true, + }, + globalFetchAPI, + env + ); + + const { fetch: envFetch, Request, Response } = env; + const isFetchSupported = envFetch ? isFunction(envFetch) : typeof fetch === 'function'; + const isRequestSupported = isFunction(Request); + const isResponseSupported = isFunction(Response); + + if (!isFetchSupported) { + return false; + } + + const isReadableStreamSupported = isFetchSupported && isFunction(ReadableStream$1); + + const encodeText = + isFetchSupported && + (typeof TextEncoder === 'function' + ? ( + (encoder) => (str) => + encoder.encode(str) + )(new TextEncoder()) + : async (str) => new Uint8Array(await new Request(str).arrayBuffer())); + + const supportsRequestStream = + isRequestSupported && + isReadableStreamSupported && + test(() => { + let duplexAccessed = false; + + const request = new Request(platform.origin, { + body: new ReadableStream$1(), + method: 'POST', + get duplex() { + duplexAccessed = true; + return 'half'; + }, + }); + + const hasContentType = request.headers.has('Content-Type'); + + if (request.body != null) { + request.body.cancel(); + } + + return duplexAccessed && !hasContentType; + }); + + const supportsResponseStream = + isResponseSupported && + isReadableStreamSupported && + test(() => utils$1.isReadableStream(new Response('').body)); + + const resolvers = { + stream: supportsResponseStream && ((res) => res.body), + }; + + isFetchSupported && + (() => { + ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach((type) => { + !resolvers[type] && + (resolvers[type] = (res, config) => { + let method = res && res[type]; + + if (method) { + return method.call(res); + } + + throw new AxiosError$1( + `Response type '${type}' is not supported`, + AxiosError$1.ERR_NOT_SUPPORT, + config + ); + }); + }); + })(); + + const getBodyLength = async (body) => { + if (body == null) { + return 0; + } + + if (utils$1.isBlob(body)) { + return body.size; + } + + if (utils$1.isSpecCompliantForm(body)) { + const _request = new Request(platform.origin, { + method: 'POST', + body, + }); + return (await _request.arrayBuffer()).byteLength; + } + + if (utils$1.isArrayBufferView(body) || utils$1.isArrayBuffer(body)) { + return body.byteLength; + } + + if (utils$1.isURLSearchParams(body)) { + body = body + ''; + } + + if (utils$1.isString(body)) { + return (await encodeText(body)).byteLength; + } + }; + + const resolveBodyLength = async (headers, body) => { + const length = utils$1.toFiniteNumber(headers.getContentLength()); + + return length == null ? getBodyLength(body) : length; + }; + + return async (config) => { + let { + url, + method, + data, + signal, + cancelToken, + timeout, + onDownloadProgress, + onUploadProgress, + responseType, + headers, + withCredentials = 'same-origin', + fetchOptions, + } = resolveConfig(config); + + let _fetch = envFetch || fetch; + + responseType = responseType ? (responseType + '').toLowerCase() : 'text'; + + let composedSignal = composeSignals( + [signal, cancelToken && cancelToken.toAbortSignal()], + timeout + ); + + let request = null; + + const unsubscribe = + composedSignal && + composedSignal.unsubscribe && + (() => { + composedSignal.unsubscribe(); + }); + + let requestContentLength; + + try { + if ( + onUploadProgress && + supportsRequestStream && + method !== 'get' && + method !== 'head' && + (requestContentLength = await resolveBodyLength(headers, data)) !== 0 + ) { + let _request = new Request(url, { + method: 'POST', + body: data, + duplex: 'half', + }); + + let contentTypeHeader; + + if (utils$1.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) { + headers.setContentType(contentTypeHeader); + } + + if (_request.body) { + const [onProgress, flush] = progressEventDecorator( + requestContentLength, + progressEventReducer(asyncDecorator(onUploadProgress)) + ); + + data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush); + } + } + + if (!utils$1.isString(withCredentials)) { + withCredentials = withCredentials ? 'include' : 'omit'; + } + + // Cloudflare Workers throws when credentials are defined + // see https://github.com/cloudflare/workerd/issues/902 + const isCredentialsSupported = isRequestSupported && 'credentials' in Request.prototype; + + // If data is FormData and Content-Type is multipart/form-data without boundary, + // delete it so fetch can set it correctly with the boundary + if (utils$1.isFormData(data)) { + const contentType = headers.getContentType(); + if ( + contentType && + /^multipart\/form-data/i.test(contentType) && + !/boundary=/i.test(contentType) + ) { + headers.delete('content-type'); + } + } + + const resolvedOptions = { + ...fetchOptions, + signal: composedSignal, + method: method.toUpperCase(), + headers: headers.normalize().toJSON(), + body: data, + duplex: 'half', + credentials: isCredentialsSupported ? withCredentials : undefined, + }; + + request = isRequestSupported && new Request(url, resolvedOptions); + + let response = await (isRequestSupported + ? _fetch(request, fetchOptions) + : _fetch(url, resolvedOptions)); + + const isStreamResponse = + supportsResponseStream && (responseType === 'stream' || responseType === 'response'); + + if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) { + const options = {}; + + ['status', 'statusText', 'headers'].forEach((prop) => { + options[prop] = response[prop]; + }); + + const responseContentLength = utils$1.toFiniteNumber(response.headers.get('content-length')); + + const [onProgress, flush] = + (onDownloadProgress && + progressEventDecorator( + responseContentLength, + progressEventReducer(asyncDecorator(onDownloadProgress), true) + )) || + []; + + response = new Response( + trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => { + flush && flush(); + unsubscribe && unsubscribe(); + }), + options + ); + } + + responseType = responseType || 'text'; + + let responseData = await resolvers[utils$1.findKey(resolvers, responseType) || 'text']( + response, + config + ); + + !isStreamResponse && unsubscribe && unsubscribe(); + + return await new Promise((resolve, reject) => { + settle(resolve, reject, { + data: responseData, + headers: AxiosHeaders$1.from(response.headers), + status: response.status, + statusText: response.statusText, + config, + request, + }); + }); + } catch (err) { + unsubscribe && unsubscribe(); + + if (err && err.name === 'TypeError' && /Load failed|fetch/i.test(err.message)) { + throw Object.assign( + new AxiosError$1( + 'Network Error', + AxiosError$1.ERR_NETWORK, + config, + request, + err && err.response + ), + { + cause: err.cause || err, + } + ); + } + + throw AxiosError$1.from(err, err && err.code, config, request, err && err.response); + } + }; +}; + +const seedCache = new Map(); + +const getFetch = (config) => { + let env = (config && config.env) || {}; + const { fetch, Request, Response } = env; + const seeds = [Request, Response, fetch]; + + let len = seeds.length, + i = len, + seed, + target, + map = seedCache; + + while (i--) { + seed = seeds[i]; + target = map.get(seed); + + target === undefined && map.set(seed, (target = i ? new Map() : factory(env))); + + map = target; + } + + return target; +}; + +getFetch(); + +/** + * Known adapters mapping. + * Provides environment-specific adapters for Axios: + * - `http` for Node.js + * - `xhr` for browsers + * - `fetch` for fetch API-based requests + * + * @type {Object} + */ +const knownAdapters = { + http: httpAdapter, + xhr: xhrAdapter, + fetch: { + get: getFetch, + }, +}; + +// Assign adapter names for easier debugging and identification +utils$1.forEach(knownAdapters, (fn, value) => { + if (fn) { + try { + Object.defineProperty(fn, 'name', { value }); + } catch (e) { + // eslint-disable-next-line no-empty + } + Object.defineProperty(fn, 'adapterName', { value }); + } +}); + +/** + * Render a rejection reason string for unknown or unsupported adapters + * + * @param {string} reason + * @returns {string} + */ +const renderReason = (reason) => `- ${reason}`; + +/** + * Check if the adapter is resolved (function, null, or false) + * + * @param {Function|null|false} adapter + * @returns {boolean} + */ +const isResolvedHandle = (adapter) => + utils$1.isFunction(adapter) || adapter === null || adapter === false; + +/** + * Get the first suitable adapter from the provided list. + * Tries each adapter in order until a supported one is found. + * Throws an AxiosError if no adapter is suitable. + * + * @param {Array|string|Function} adapters - Adapter(s) by name or function. + * @param {Object} config - Axios request configuration + * @throws {AxiosError} If no suitable adapter is available + * @returns {Function} The resolved adapter function + */ +function getAdapter$1(adapters, config) { + adapters = utils$1.isArray(adapters) ? adapters : [adapters]; + + const { length } = adapters; + let nameOrAdapter; + let adapter; + + const rejectedReasons = {}; + + for (let i = 0; i < length; i++) { + nameOrAdapter = adapters[i]; + let id; + + adapter = nameOrAdapter; + + if (!isResolvedHandle(nameOrAdapter)) { + adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()]; + + if (adapter === undefined) { + throw new AxiosError$1(`Unknown adapter '${id}'`); + } + } + + if (adapter && (utils$1.isFunction(adapter) || (adapter = adapter.get(config)))) { + break; + } + + rejectedReasons[id || '#' + i] = adapter; + } + + if (!adapter) { + const reasons = Object.entries(rejectedReasons).map( + ([id, state]) => + `adapter ${id} ` + + (state === false ? 'is not supported by the environment' : 'is not available in the build') + ); + + let s = length + ? reasons.length > 1 + ? 'since :\n' + reasons.map(renderReason).join('\n') + : ' ' + renderReason(reasons[0]) + : 'as no adapter specified'; + + throw new AxiosError$1( + `There is no suitable adapter to dispatch the request ` + s, + 'ERR_NOT_SUPPORT' + ); + } + + return adapter; +} + +/** + * Exports Axios adapters and utility to resolve an adapter + */ +var adapters = { + /** + * Resolve an adapter from a list of adapter names or functions. + * @type {Function} + */ + getAdapter: getAdapter$1, + + /** + * Exposes all known adapters + * @type {Object} + */ + adapters: knownAdapters, +}; + +/** + * Throws a `CanceledError` if cancellation has been requested. + * + * @param {Object} config The config that is to be used for the request + * + * @returns {void} + */ +function throwIfCancellationRequested(config) { + if (config.cancelToken) { + config.cancelToken.throwIfRequested(); + } + + if (config.signal && config.signal.aborted) { + throw new CanceledError$1(null, config); + } +} + +/** + * Dispatch a request to the server using the configured adapter. + * + * @param {object} config The config that is to be used for the request + * + * @returns {Promise} The Promise to be fulfilled + */ +function dispatchRequest(config) { + throwIfCancellationRequested(config); + + config.headers = AxiosHeaders$1.from(config.headers); + + // Transform request data + config.data = transformData.call(config, config.transformRequest); + + if (['post', 'put', 'patch'].indexOf(config.method) !== -1) { + config.headers.setContentType('application/x-www-form-urlencoded', false); + } + + const adapter = adapters.getAdapter(config.adapter || defaults.adapter, config); + + return adapter(config).then( + function onAdapterResolution(response) { + throwIfCancellationRequested(config); + + // Transform response data + response.data = transformData.call(config, config.transformResponse, response); + + response.headers = AxiosHeaders$1.from(response.headers); + + return response; + }, + function onAdapterRejection(reason) { + if (!isCancel$1(reason)) { + throwIfCancellationRequested(config); + + // Transform response data + if (reason && reason.response) { + reason.response.data = transformData.call( + config, + config.transformResponse, + reason.response + ); + reason.response.headers = AxiosHeaders$1.from(reason.response.headers); + } + } + + return Promise.reject(reason); + } + ); +} + +const VERSION$1 = "1.15.1"; + +const validators$1 = {}; + +// eslint-disable-next-line func-names +['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => { + validators$1[type] = function validator(thing) { + return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type; + }; +}); + +const deprecatedWarnings = {}; + +/** + * Transitional option validator + * + * @param {function|boolean?} validator - set to false if the transitional option has been removed + * @param {string?} version - deprecated version / removed since version + * @param {string?} message - some message with additional info + * + * @returns {function} + */ +validators$1.transitional = function transitional(validator, version, message) { + function formatMessage(opt, desc) { + return ( + '[Axios v' + + VERSION$1 + + "] Transitional option '" + + opt + + "'" + + desc + + (message ? '. ' + message : '') + ); + } + + // eslint-disable-next-line func-names + return (value, opt, opts) => { + if (validator === false) { + throw new AxiosError$1( + formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')), + AxiosError$1.ERR_DEPRECATED + ); + } + + if (version && !deprecatedWarnings[opt]) { + deprecatedWarnings[opt] = true; + // eslint-disable-next-line no-console + console.warn( + formatMessage( + opt, + ' has been deprecated since v' + version + ' and will be removed in the near future' + ) + ); + } + + return validator ? validator(value, opt, opts) : true; + }; +}; + +validators$1.spelling = function spelling(correctSpelling) { + return (value, opt) => { + // eslint-disable-next-line no-console + console.warn(`${opt} is likely a misspelling of ${correctSpelling}`); + return true; + }; +}; + +/** + * Assert object's properties type + * + * @param {object} options + * @param {object} schema + * @param {boolean?} allowUnknown + * + * @returns {object} + */ + +function assertOptions(options, schema, allowUnknown) { + if (typeof options !== 'object') { + throw new AxiosError$1('options must be an object', AxiosError$1.ERR_BAD_OPTION_VALUE); + } + const keys = Object.keys(options); + let i = keys.length; + while (i-- > 0) { + const opt = keys[i]; + const validator = schema[opt]; + if (validator) { + const value = options[opt]; + const result = value === undefined || validator(value, opt, options); + if (result !== true) { + throw new AxiosError$1( + 'option ' + opt + ' must be ' + result, + AxiosError$1.ERR_BAD_OPTION_VALUE + ); + } + continue; + } + if (allowUnknown !== true) { + throw new AxiosError$1('Unknown option ' + opt, AxiosError$1.ERR_BAD_OPTION); + } + } +} + +var validator = { + assertOptions, + validators: validators$1, +}; + +const validators = validator.validators; + +/** + * Create a new instance of Axios + * + * @param {Object} instanceConfig The default config for the instance + * + * @return {Axios} A new instance of Axios + */ +let Axios$1 = class Axios { + constructor(instanceConfig) { + this.defaults = instanceConfig || {}; + this.interceptors = { + request: new InterceptorManager(), + response: new InterceptorManager(), + }; + } + + /** + * Dispatch a request + * + * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults) + * @param {?Object} config + * + * @returns {Promise} The Promise to be fulfilled + */ + async request(configOrUrl, config) { + try { + return await this._request(configOrUrl, config); + } catch (err) { + if (err instanceof Error) { + let dummy = {}; + + Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error()); + + // slice off the Error: ... line + const stack = (() => { + if (!dummy.stack) { + return ''; + } + + const firstNewlineIndex = dummy.stack.indexOf('\n'); + + return firstNewlineIndex === -1 ? '' : dummy.stack.slice(firstNewlineIndex + 1); + })(); + try { + if (!err.stack) { + err.stack = stack; + // match without the 2 top stack lines + } else if (stack) { + const firstNewlineIndex = stack.indexOf('\n'); + const secondNewlineIndex = + firstNewlineIndex === -1 ? -1 : stack.indexOf('\n', firstNewlineIndex + 1); + const stackWithoutTwoTopLines = + secondNewlineIndex === -1 ? '' : stack.slice(secondNewlineIndex + 1); + + if (!String(err.stack).endsWith(stackWithoutTwoTopLines)) { + err.stack += '\n' + stack; + } + } + } catch (e) { + // ignore the case where "stack" is an un-writable property + } + } + + throw err; + } + } + + _request(configOrUrl, config) { + /*eslint no-param-reassign:0*/ + // Allow for axios('example/url'[, config]) a la fetch API + if (typeof configOrUrl === 'string') { + config = config || {}; + config.url = configOrUrl; + } else { + config = configOrUrl || {}; + } + + config = mergeConfig$1(this.defaults, config); + + const { transitional, paramsSerializer, headers } = config; + + if (transitional !== undefined) { + validator.assertOptions( + transitional, + { + silentJSONParsing: validators.transitional(validators.boolean), + forcedJSONParsing: validators.transitional(validators.boolean), + clarifyTimeoutError: validators.transitional(validators.boolean), + legacyInterceptorReqResOrdering: validators.transitional(validators.boolean), + }, + false + ); + } + + if (paramsSerializer != null) { + if (utils$1.isFunction(paramsSerializer)) { + config.paramsSerializer = { + serialize: paramsSerializer, + }; + } else { + validator.assertOptions( + paramsSerializer, + { + encode: validators.function, + serialize: validators.function, + }, + true + ); + } + } + + // Set config.allowAbsoluteUrls + if (config.allowAbsoluteUrls !== undefined) ; else if (this.defaults.allowAbsoluteUrls !== undefined) { + config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls; + } else { + config.allowAbsoluteUrls = true; + } + + validator.assertOptions( + config, + { + baseUrl: validators.spelling('baseURL'), + withXsrfToken: validators.spelling('withXSRFToken'), + }, + true + ); + + // Set config.method + config.method = (config.method || this.defaults.method || 'get').toLowerCase(); + + // Flatten headers + let contextHeaders = headers && utils$1.merge(headers.common, headers[config.method]); + + headers && + utils$1.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], (method) => { + delete headers[method]; + }); + + config.headers = AxiosHeaders$1.concat(contextHeaders, headers); + + // filter out skipped interceptors + const requestInterceptorChain = []; + let synchronousRequestInterceptors = true; + this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) { + if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) { + return; + } + + synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous; + + const transitional = config.transitional || transitionalDefaults; + const legacyInterceptorReqResOrdering = + transitional && transitional.legacyInterceptorReqResOrdering; + + if (legacyInterceptorReqResOrdering) { + requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected); + } else { + requestInterceptorChain.push(interceptor.fulfilled, interceptor.rejected); + } + }); + + const responseInterceptorChain = []; + this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) { + responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected); + }); + + let promise; + let i = 0; + let len; + + if (!synchronousRequestInterceptors) { + const chain = [dispatchRequest.bind(this), undefined]; + chain.unshift(...requestInterceptorChain); + chain.push(...responseInterceptorChain); + len = chain.length; + + promise = Promise.resolve(config); + + while (i < len) { + promise = promise.then(chain[i++], chain[i++]); + } + + return promise; + } + + len = requestInterceptorChain.length; + + let newConfig = config; + + while (i < len) { + const onFulfilled = requestInterceptorChain[i++]; + const onRejected = requestInterceptorChain[i++]; + try { + newConfig = onFulfilled(newConfig); + } catch (error) { + onRejected.call(this, error); + break; + } + } + + try { + promise = dispatchRequest.call(this, newConfig); + } catch (error) { + return Promise.reject(error); + } + + i = 0; + len = responseInterceptorChain.length; + + while (i < len) { + promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]); + } + + return promise; + } + + getUri(config) { + config = mergeConfig$1(this.defaults, config); + const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls); + return buildURL(fullPath, config.params, config.paramsSerializer); + } +}; + +// Provide aliases for supported request methods +utils$1.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) { + /*eslint func-names:0*/ + Axios$1.prototype[method] = function (url, config) { + return this.request( + mergeConfig$1(config || {}, { + method, + url, + data: (config || {}).data, + }) + ); + }; +}); + +utils$1.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) { + function generateHTTPMethod(isForm) { + return function httpMethod(url, data, config) { + return this.request( + mergeConfig$1(config || {}, { + method, + headers: isForm + ? { + 'Content-Type': 'multipart/form-data', + } + : {}, + url, + data, + }) + ); + }; + } + + Axios$1.prototype[method] = generateHTTPMethod(); + + Axios$1.prototype[method + 'Form'] = generateHTTPMethod(true); +}); + +/** + * A `CancelToken` is an object that can be used to request cancellation of an operation. + * + * @param {Function} executor The executor function. + * + * @returns {CancelToken} + */ +let CancelToken$1 = class CancelToken { + constructor(executor) { + if (typeof executor !== 'function') { + throw new TypeError('executor must be a function.'); + } + + let resolvePromise; + + this.promise = new Promise(function promiseExecutor(resolve) { + resolvePromise = resolve; + }); + + const token = this; + + // eslint-disable-next-line func-names + this.promise.then((cancel) => { + if (!token._listeners) return; + + let i = token._listeners.length; + + while (i-- > 0) { + token._listeners[i](cancel); + } + token._listeners = null; + }); + + // eslint-disable-next-line func-names + this.promise.then = (onfulfilled) => { + let _resolve; + // eslint-disable-next-line func-names + const promise = new Promise((resolve) => { + token.subscribe(resolve); + _resolve = resolve; + }).then(onfulfilled); + + promise.cancel = function reject() { + token.unsubscribe(_resolve); + }; + + return promise; + }; + + executor(function cancel(message, config, request) { + if (token.reason) { + // Cancellation has already been requested + return; + } + + token.reason = new CanceledError$1(message, config, request); + resolvePromise(token.reason); + }); + } + + /** + * Throws a `CanceledError` if cancellation has been requested. + */ + throwIfRequested() { + if (this.reason) { + throw this.reason; + } + } + + /** + * Subscribe to the cancel signal + */ + + subscribe(listener) { + if (this.reason) { + listener(this.reason); + return; + } + + if (this._listeners) { + this._listeners.push(listener); + } else { + this._listeners = [listener]; + } + } + + /** + * Unsubscribe from the cancel signal + */ + + unsubscribe(listener) { + if (!this._listeners) { + return; + } + const index = this._listeners.indexOf(listener); + if (index !== -1) { + this._listeners.splice(index, 1); + } + } + + toAbortSignal() { + const controller = new AbortController(); + + const abort = (err) => { + controller.abort(err); + }; + + this.subscribe(abort); + + controller.signal.unsubscribe = () => this.unsubscribe(abort); + + return controller.signal; + } + + /** + * Returns an object that contains a new `CancelToken` and a function that, when called, + * cancels the `CancelToken`. + */ + static source() { + let cancel; + const token = new CancelToken(function executor(c) { + cancel = c; + }); + return { + token, + cancel, + }; + } +}; + +/** + * Syntactic sugar for invoking a function and expanding an array for arguments. + * + * Common use case would be to use `Function.prototype.apply`. + * + * ```js + * function f(x, y, z) {} + * const args = [1, 2, 3]; + * f.apply(null, args); + * ``` + * + * With `spread` this example can be re-written. + * + * ```js + * spread(function(x, y, z) {})([1, 2, 3]); + * ``` + * + * @param {Function} callback + * + * @returns {Function} + */ +function spread$1(callback) { + return function wrap(arr) { + return callback.apply(null, arr); + }; +} + +/** + * Determines whether the payload is an error thrown by Axios + * + * @param {*} payload The value to test + * + * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false + */ +function isAxiosError$1(payload) { + return utils$1.isObject(payload) && payload.isAxiosError === true; +} + +const HttpStatusCode$1 = { + Continue: 100, + SwitchingProtocols: 101, + Processing: 102, + EarlyHints: 103, + Ok: 200, + Created: 201, + Accepted: 202, + NonAuthoritativeInformation: 203, + NoContent: 204, + ResetContent: 205, + PartialContent: 206, + MultiStatus: 207, + AlreadyReported: 208, + ImUsed: 226, + MultipleChoices: 300, + MovedPermanently: 301, + Found: 302, + SeeOther: 303, + NotModified: 304, + UseProxy: 305, + Unused: 306, + TemporaryRedirect: 307, + PermanentRedirect: 308, + BadRequest: 400, + Unauthorized: 401, + PaymentRequired: 402, + Forbidden: 403, + NotFound: 404, + MethodNotAllowed: 405, + NotAcceptable: 406, + ProxyAuthenticationRequired: 407, + RequestTimeout: 408, + Conflict: 409, + Gone: 410, + LengthRequired: 411, + PreconditionFailed: 412, + PayloadTooLarge: 413, + UriTooLong: 414, + UnsupportedMediaType: 415, + RangeNotSatisfiable: 416, + ExpectationFailed: 417, + ImATeapot: 418, + MisdirectedRequest: 421, + UnprocessableEntity: 422, + Locked: 423, + FailedDependency: 424, + TooEarly: 425, + UpgradeRequired: 426, + PreconditionRequired: 428, + TooManyRequests: 429, + RequestHeaderFieldsTooLarge: 431, + UnavailableForLegalReasons: 451, + InternalServerError: 500, + NotImplemented: 501, + BadGateway: 502, + ServiceUnavailable: 503, + GatewayTimeout: 504, + HttpVersionNotSupported: 505, + VariantAlsoNegotiates: 506, + InsufficientStorage: 507, + LoopDetected: 508, + NotExtended: 510, + NetworkAuthenticationRequired: 511, + WebServerIsDown: 521, + ConnectionTimedOut: 522, + OriginIsUnreachable: 523, + TimeoutOccurred: 524, + SslHandshakeFailed: 525, + InvalidSslCertificate: 526, +}; + +Object.entries(HttpStatusCode$1).forEach(([key, value]) => { + HttpStatusCode$1[value] = key; +}); + +/** + * Create an instance of Axios + * + * @param {Object} defaultConfig The default config for the instance + * + * @returns {Axios} A new instance of Axios + */ +function createInstance(defaultConfig) { + const context = new Axios$1(defaultConfig); + const instance = bind(Axios$1.prototype.request, context); + + // Copy axios.prototype to instance + utils$1.extend(instance, Axios$1.prototype, context, { allOwnKeys: true }); + + // Copy context to instance + utils$1.extend(instance, context, null, { allOwnKeys: true }); + + // Factory for creating new instances + instance.create = function create(instanceConfig) { + return createInstance(mergeConfig$1(defaultConfig, instanceConfig)); + }; + + return instance; +} + +// Create the default instance to be exported +const axios = createInstance(defaults); + +// Expose Axios class to allow class inheritance +axios.Axios = Axios$1; + +// Expose Cancel & CancelToken +axios.CanceledError = CanceledError$1; +axios.CancelToken = CancelToken$1; +axios.isCancel = isCancel$1; +axios.VERSION = VERSION$1; +axios.toFormData = toFormData$1; + +// Expose AxiosError class +axios.AxiosError = AxiosError$1; + +// alias for CanceledError for backward compatibility +axios.Cancel = axios.CanceledError; + +// Expose all/spread +axios.all = function all(promises) { + return Promise.all(promises); +}; + +axios.spread = spread$1; + +// Expose isAxiosError +axios.isAxiosError = isAxiosError$1; + +// Expose mergeConfig +axios.mergeConfig = mergeConfig$1; + +axios.AxiosHeaders = AxiosHeaders$1; + +axios.formToJSON = (thing) => formDataToJSON(utils$1.isHTMLForm(thing) ? new FormData(thing) : thing); + +axios.getAdapter = adapters.getAdapter; + +axios.HttpStatusCode = HttpStatusCode$1; + +axios.default = axios; + +// This module is intended to unwrap Axios default export as named. +// Keep top-level export same with static properties +// so that it can keep same with es module or cjs +const { + Axios, + AxiosError, + CanceledError, + isCancel, + CancelToken, + VERSION, + all, + Cancel, + isAxiosError, + spread, + toFormData, + AxiosHeaders, + HttpStatusCode, + formToJSON, + getAdapter, + mergeConfig, +} = axios; + +export { Axios, AxiosError, AxiosHeaders, Cancel, CancelToken, CanceledError, HttpStatusCode, VERSION, all, axios as default, formToJSON, getAdapter, isAxiosError, isCancel, mergeConfig, spread, toFormData }; +//# sourceMappingURL=axios.js.map diff --git a/server/api/node_modules/axios/dist/esm/axios.js.map b/server/api/node_modules/axios/dist/esm/axios.js.map new file mode 100644 index 0000000..ac3f499 --- /dev/null +++ b/server/api/node_modules/axios/dist/esm/axios.js.map @@ -0,0 +1 @@ +{"version":3,"file":"axios.js","sources":["../../lib/helpers/bind.js","../../lib/utils.js","../../lib/core/AxiosError.js","../../lib/helpers/null.js","../../lib/helpers/toFormData.js","../../lib/helpers/AxiosURLSearchParams.js","../../lib/helpers/buildURL.js","../../lib/core/InterceptorManager.js","../../lib/defaults/transitional.js","../../lib/platform/browser/classes/URLSearchParams.js","../../lib/platform/browser/classes/FormData.js","../../lib/platform/browser/classes/Blob.js","../../lib/platform/browser/index.js","../../lib/platform/common/utils.js","../../lib/platform/index.js","../../lib/helpers/toURLEncodedForm.js","../../lib/helpers/formDataToJSON.js","../../lib/defaults/index.js","../../lib/helpers/parseHeaders.js","../../lib/core/AxiosHeaders.js","../../lib/core/transformData.js","../../lib/cancel/isCancel.js","../../lib/cancel/CanceledError.js","../../lib/core/settle.js","../../lib/helpers/parseProtocol.js","../../lib/helpers/speedometer.js","../../lib/helpers/throttle.js","../../lib/helpers/progressEventReducer.js","../../lib/helpers/isURLSameOrigin.js","../../lib/helpers/cookies.js","../../lib/helpers/isAbsoluteURL.js","../../lib/helpers/combineURLs.js","../../lib/core/buildFullPath.js","../../lib/core/mergeConfig.js","../../lib/helpers/resolveConfig.js","../../lib/adapters/xhr.js","../../lib/helpers/composeSignals.js","../../lib/helpers/trackStream.js","../../lib/adapters/fetch.js","../../lib/adapters/adapters.js","../../lib/core/dispatchRequest.js","../../lib/env/data.js","../../lib/helpers/validator.js","../../lib/core/Axios.js","../../lib/cancel/CancelToken.js","../../lib/helpers/spread.js","../../lib/helpers/isAxiosError.js","../../lib/helpers/HttpStatusCode.js","../../lib/axios.js","../../index.js"],"sourcesContent":["'use strict';\n\n/**\n * Create a bound version of a function with a specified `this` context\n *\n * @param {Function} fn - The function to bind\n * @param {*} thisArg - The value to be passed as the `this` parameter\n * @returns {Function} A new function that will call the original function with the specified `this` context\n */\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst { toString } = Object.prototype;\nconst { getPrototypeOf } = Object;\nconst { iterator, toStringTag } = Symbol;\n\nconst kindOf = ((cache) => (thing) => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type;\n};\n\nconst typeOfTest = (type) => (thing) => typeof thing === type;\n\n/**\n * Determine if a value is a non-null object\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst { isArray } = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return (\n val !== null &&\n !isUndefined(val) &&\n val.constructor !== null &&\n !isUndefined(val.constructor) &&\n isFunction(val.constructor.isBuffer) &&\n val.constructor.isBuffer(val)\n );\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n result = ArrayBuffer.isView(val);\n } else {\n result = val && val.buffer && isArrayBuffer(val.buffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = (thing) => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (\n (prototype === null ||\n prototype === Object.prototype ||\n Object.getPrototypeOf(prototype) === null) &&\n !(toStringTag in val) &&\n !(iterator in val)\n );\n};\n\n/**\n * Determine if a value is an empty object (safely handles Buffers)\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an empty object, otherwise false\n */\nconst isEmptyObject = (val) => {\n // Early return for non-objects or Buffers to prevent RangeError\n if (!isObject(val) || isBuffer(val)) {\n return false;\n }\n\n try {\n return Object.keys(val).length === 0 && Object.getPrototypeOf(val) === Object.prototype;\n } catch (e) {\n // Fallback for any other objects that might cause RangeError with Object.keys()\n return false;\n }\n};\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a React Native Blob\n * React Native \"blob\": an object with a `uri` attribute. Optionally, it can\n * also have a `name` and `type` attribute to specify filename and content type\n *\n * @see https://github.com/facebook/react-native/blob/26684cf3adf4094eb6c405d345a75bf8c7c0bf88/Libraries/Network/FormData.js#L68-L71\n * \n * @param {*} value The value to test\n * \n * @returns {boolean} True if value is a React Native Blob, otherwise false\n */\nconst isReactNativeBlob = (value) => {\n return !!(value && typeof value.uri !== 'undefined');\n}\n\n/**\n * Determine if environment is React Native\n * ReactNative `FormData` has a non-standard `getParts()` method\n * \n * @param {*} formData The formData to test\n * \n * @returns {boolean} True if environment is React Native, otherwise false\n */\nconst isReactNative = (formData) => formData && typeof formData.getParts !== 'undefined';\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction getGlobal() {\n if (typeof globalThis !== 'undefined') return globalThis;\n if (typeof self !== 'undefined') return self;\n if (typeof window !== 'undefined') return window;\n if (typeof global !== 'undefined') return global;\n return {};\n}\n\nconst G = getGlobal();\nconst FormDataCtor = typeof G.FormData !== 'undefined' ? G.FormData : undefined;\n\nconst isFormData = (thing) => {\n if (!thing) return false;\n if (FormDataCtor && thing instanceof FormDataCtor) return true;\n // Reject plain objects inheriting directly from Object.prototype so prototype-pollution gadgets can't spoof FormData (GHSA-6chq-wfr3-2hj9).\n const proto = getPrototypeOf(thing);\n if (!proto || proto === Object.prototype) return false;\n if (!isFunction(thing.append)) return false;\n const kind = kindOf(thing);\n return kind === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]');\n};\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = [\n 'ReadableStream',\n 'Request',\n 'Response',\n 'Headers',\n].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => {\n return str.trim ? str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n};\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Object} [options]\n * @param {Boolean} [options.allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, { allOwnKeys = false } = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Buffer check\n if (isBuffer(obj)) {\n return;\n }\n\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\n/**\n * Finds a key in an object, case-insensitive, returning the actual key name.\n * Returns null if the object is a Buffer or if no match is found.\n *\n * @param {Object} obj - The object to search.\n * @param {string} key - The key to find (case-insensitive).\n * @returns {?string} The actual key name if found, otherwise null.\n */\nfunction findKey(obj, key) {\n if (isBuffer(obj)) {\n return null;\n }\n\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== 'undefined') return globalThis;\n return typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : global;\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * const result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const { caseless, skipUndefined } = (isContextDefined(this) && this) || {};\n const result = {};\n const assignValue = (val, key) => {\n // Skip dangerous property names to prevent prototype pollution\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return;\n }\n\n const targetKey = (caseless && findKey(result, key)) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else if (!skipUndefined || !isUndefined(val)) {\n result[targetKey] = val;\n }\n };\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Object} [options]\n * @param {Boolean} [options.allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, { allOwnKeys } = {}) => {\n forEach(\n b,\n (val, key) => {\n if (thisArg && isFunction(val)) {\n Object.defineProperty(a, key, {\n value: bind(val, thisArg),\n writable: true,\n enumerable: true,\n configurable: true,\n });\n } else {\n Object.defineProperty(a, key, {\n value: val,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n }\n },\n { allOwnKeys }\n );\n return a;\n};\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xfeff) {\n content = content.slice(1);\n }\n return content;\n};\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n Object.defineProperty(constructor.prototype, 'constructor', {\n value: constructor,\n writable: true,\n enumerable: false,\n configurable: true,\n });\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype,\n });\n props && Object.assign(constructor.prototype, props);\n};\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n};\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n};\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n};\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = ((TypedArray) => {\n // eslint-disable-next-line func-names\n return (thing) => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[iterator];\n\n const _iterator = generator.call(obj);\n\n let result;\n\n while ((result = _iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n};\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n};\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = (str) => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g, function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n });\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (\n ({ hasOwnProperty }) =>\n (obj, prop) =>\n hasOwnProperty.call(obj, prop)\n)(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n};\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error(\"Can not rewrite read-only method '\" + name + \"'\");\n };\n }\n });\n};\n\n/**\n * Converts an array or a delimited string into an object set with values as keys and true as values.\n * Useful for fast membership checks.\n *\n * @param {Array|string} arrayOrString - The array or string to convert.\n * @param {string} delimiter - The delimiter to use if input is a string.\n * @returns {Object} An object with keys from the array or string, values set to true.\n */\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach((value) => {\n obj[value] = true;\n });\n };\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n};\n\nconst noop = () => {};\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite((value = +value)) ? value : defaultValue;\n};\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(\n thing &&\n isFunction(thing.append) &&\n thing[toStringTag] === 'FormData' &&\n thing[iterator]\n );\n}\n\n/**\n * Recursively converts an object to a JSON-compatible object, handling circular references and Buffers.\n *\n * @param {Object} obj - The object to convert.\n * @returns {Object} The JSON-compatible object.\n */\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n //Buffer check\n if (isBuffer(source)) {\n return source;\n }\n\n if (!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n };\n\n return visit(obj, 0);\n};\n\n/**\n * Determines if a value is an async function.\n *\n * @param {*} thing - The value to test.\n * @returns {boolean} True if value is an async function, otherwise false.\n */\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\n/**\n * Determines if a value is thenable (has then and catch methods).\n *\n * @param {*} thing - The value to test.\n * @returns {boolean} True if value is thenable, otherwise false.\n */\nconst isThenable = (thing) =>\n thing &&\n (isObject(thing) || isFunction(thing)) &&\n isFunction(thing.then) &&\n isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\n/**\n * Provides a cross-platform setImmediate implementation.\n * Uses native setImmediate if available, otherwise falls back to postMessage or setTimeout.\n *\n * @param {boolean} setImmediateSupported - Whether setImmediate is supported.\n * @param {boolean} postMessageSupported - Whether postMessage is supported.\n * @returns {Function} A function to schedule a callback asynchronously.\n */\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported\n ? ((token, callbacks) => {\n _global.addEventListener(\n 'message',\n ({ source, data }) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n },\n false\n );\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, '*');\n };\n })(`axios@${Math.random()}`, [])\n : (cb) => setTimeout(cb);\n})(typeof setImmediate === 'function', isFunction(_global.postMessage));\n\n/**\n * Schedules a microtask or asynchronous callback as soon as possible.\n * Uses queueMicrotask if available, otherwise falls back to process.nextTick or _setImmediate.\n *\n * @type {Function}\n */\nconst asap =\n typeof queueMicrotask !== 'undefined'\n ? queueMicrotask.bind(_global)\n : (typeof process !== 'undefined' && process.nextTick) || _setImmediate;\n\n// *********************\n\nconst isIterable = (thing) => thing != null && isFunction(thing[iterator]);\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isEmptyObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isReactNativeBlob,\n isReactNative,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap,\n isIterable,\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\nclass AxiosError extends Error {\n static from(error, code, config, request, response, customProps) {\n const axiosError = new AxiosError(error.message, code || error.code, config, request, response);\n axiosError.cause = error;\n axiosError.name = error.name;\n\n // Preserve status from the original error if not already set from response\n if (error.status != null && axiosError.status == null) {\n axiosError.status = error.status;\n }\n\n customProps && Object.assign(axiosError, customProps);\n return axiosError;\n }\n\n /**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\n constructor(message, code, config, request, response) {\n super(message);\n\n // Make message enumerable to maintain backward compatibility\n // The native Error constructor sets message as non-enumerable,\n // but axios < v1.13.3 had it as enumerable\n Object.defineProperty(this, 'message', {\n value: message,\n enumerable: true,\n writable: true,\n configurable: true,\n });\n\n this.name = 'AxiosError';\n this.isAxiosError = true;\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status;\n }\n }\n\n toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.status,\n };\n }\n}\n\n// This can be changed to static properties as soon as the parser options in .eslint.cjs are updated.\nAxiosError.ERR_BAD_OPTION_VALUE = 'ERR_BAD_OPTION_VALUE';\nAxiosError.ERR_BAD_OPTION = 'ERR_BAD_OPTION';\nAxiosError.ECONNABORTED = 'ECONNABORTED';\nAxiosError.ETIMEDOUT = 'ETIMEDOUT';\nAxiosError.ERR_NETWORK = 'ERR_NETWORK';\nAxiosError.ERR_FR_TOO_MANY_REDIRECTS = 'ERR_FR_TOO_MANY_REDIRECTS';\nAxiosError.ERR_DEPRECATED = 'ERR_DEPRECATED';\nAxiosError.ERR_BAD_RESPONSE = 'ERR_BAD_RESPONSE';\nAxiosError.ERR_BAD_REQUEST = 'ERR_BAD_REQUEST';\nAxiosError.ERR_CANCELED = 'ERR_CANCELED';\nAxiosError.ERR_NOT_SUPPORT = 'ERR_NOT_SUPPORT';\nAxiosError.ERR_INVALID_URL = 'ERR_INVALID_URL';\nAxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED = 'ERR_FORM_DATA_DEPTH_EXCEEDED';\n\nexport default AxiosError;\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path\n .concat(key)\n .map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n })\n .join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(\n options,\n {\n metaTokens: true,\n dots: false,\n indexes: false,\n },\n false,\n function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n }\n );\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || (typeof Blob !== 'undefined' && Blob);\n const maxDepth = options.maxDepth === undefined ? 100 : options.maxDepth;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (utils.isBoolean(value)) {\n return value.toString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (utils.isReactNative(formData) && utils.isReactNativeBlob(value)) {\n formData.append(renderKey(path, key, dots), convertValue(value));\n return false;\n }\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value)))\n ) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) &&\n formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true\n ? renderKey([key], index, dots)\n : indexes === null\n ? key\n : key + '[]',\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable,\n });\n\n function build(value, path, depth = 0) {\n if (utils.isUndefined(value)) return;\n\n if (depth > maxDepth) {\n throw new AxiosError(\n 'Object is too deeply nested (' + depth + ' levels). Max depth: ' + maxDepth,\n AxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED\n );\n }\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result =\n !(utils.isUndefined(el) || el === null) &&\n visitor.call(formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers);\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key], depth + 1);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder\n ? function (value) {\n return encoder.call(this, value, encode);\n }\n : encode;\n\n return this._pairs\n .map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '')\n .join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces URL-encoded forms of `:`, `$`, `,`, and spaces with\n * their plain counterparts (`:`, `$`, `,`, `+`).\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val)\n .replace(/%3A/gi, ':')\n .replace(/%24/g, '$')\n .replace(/%2C/gi, ',')\n .replace(/%20/g, '+');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?(object|Function)} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n if (!params) {\n return url;\n }\n\n const _encode = (options && options.encode) || encode;\n\n const _options = utils.isFunction(options)\n ? {\n serialize: options,\n }\n : options;\n\n const serializeFn = _options && _options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, _options);\n } else {\n serializedParams = utils.isURLSearchParams(params)\n ? params.toString()\n : new AxiosURLSearchParams(params, _options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf('#');\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n * @param {Object} options The options for the interceptor, synchronous and runWhen\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null,\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {void}\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false,\n legacyInterceptorReqResOrdering: true,\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict';\n\nexport default typeof Blob !== 'undefined' ? Blob : null;\n","import URLSearchParams from './classes/URLSearchParams.js';\nimport FormData from './classes/FormData.js';\nimport Blob from './classes/Blob.js';\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob,\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data'],\n};\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = (typeof navigator === 'object' && navigator) || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv =\n hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = (hasBrowserEnv && window.location.href) || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n _navigator as navigator,\n origin,\n};\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform,\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), {\n visitor: function (value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n },\n ...options,\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map((match) => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = utils.isArray(target[name])\n ? target[name].concat(value)\n : [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\nconst own = (obj, key) => (obj != null && utils.hasOwnProp(obj, key) ? obj[key] : undefined);\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [\n function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data) ||\n utils.isReadableStream(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n const formSerializer = own(this, 'formSerializer');\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, formSerializer).toString();\n }\n\n if (\n (isFileList = utils.isFileList(data)) ||\n contentType.indexOf('multipart/form-data') > -1\n ) {\n const env = own(this, 'env');\n const _FormData = env && env.FormData;\n\n return toFormData(\n isFileList ? { 'files[]': data } : data,\n _FormData && new _FormData(),\n formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n },\n ],\n\n transformResponse: [\n function transformResponse(data) {\n const transitional = own(this, 'transitional') || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const responseType = own(this, 'responseType');\n const JSONRequested = responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (\n data &&\n utils.isString(data) &&\n ((forcedJSONParsing && !responseType) || JSONRequested)\n ) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data, own(this, 'parseReviver'));\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, own(this, 'response'));\n }\n throw e;\n }\n }\n }\n\n return data;\n },\n ],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob,\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n Accept: 'application/json, text/plain, */*',\n 'Content-Type': undefined,\n },\n },\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from '../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age',\n 'authorization',\n 'content-length',\n 'content-type',\n 'etag',\n 'expires',\n 'from',\n 'host',\n 'if-modified-since',\n 'if-unmodified-since',\n 'last-modified',\n 'location',\n 'max-forwards',\n 'proxy-authorization',\n 'referer',\n 'retry-after',\n 'user-agent',\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default (rawHeaders) => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders &&\n rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nconst INVALID_HEADER_VALUE_CHARS_RE = /[^\\x09\\x20-\\x7E\\x80-\\xFF]/g;\n\nfunction trimSPorHTAB(str) {\n let start = 0;\n let end = str.length;\n\n while (start < end) {\n const code = str.charCodeAt(start);\n\n if (code !== 0x09 && code !== 0x20) {\n break;\n }\n\n start += 1;\n }\n\n while (end > start) {\n const code = str.charCodeAt(end - 1);\n\n if (code !== 0x09 && code !== 0x20) {\n break;\n }\n\n end -= 1;\n }\n\n return start === 0 && end === str.length ? str : str.slice(start, end);\n}\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction sanitizeHeaderValue(str) {\n return trimSPorHTAB(str.replace(INVALID_HEADER_VALUE_CHARS_RE, ''));\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : sanitizeHeaderValue(String(value));\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header\n .trim()\n .toLowerCase()\n .replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach((methodName) => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function (arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true,\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if (\n !key ||\n self[key] === undefined ||\n _rewrite === true ||\n (_rewrite === undefined && self[key] !== false)\n ) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite);\n } else if (utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isObject(header) && utils.isIterable(header)) {\n let obj = {},\n dest,\n key;\n for (const entry of header) {\n if (!utils.isArray(entry)) {\n throw TypeError('Object iterator must return a key-value pair');\n }\n\n obj[(key = entry[0])] = (dest = obj[key])\n ? utils.isArray(dest)\n ? [...dest, entry[1]]\n : [dest, entry[1]]\n : entry[1];\n }\n\n setHeaders(obj, valueOrRewrite);\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(\n key &&\n this[key] !== undefined &&\n (!matcher || matchHeaderValue(this, this[key], key, matcher))\n );\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if (!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null &&\n value !== false &&\n (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON())\n .map(([header, value]) => header + ': ' + value)\n .join('\\n');\n }\n\n getSetCookie() {\n return this.get('set-cookie') || [];\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals =\n (this[$internals] =\n this[$internals] =\n {\n accessors: {},\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor([\n 'Content-Type',\n 'Content-Length',\n 'Accept',\n 'Accept-Encoding',\n 'User-Agent',\n 'Authorization',\n]);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({ value }, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n },\n };\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from '../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\n\nclass CanceledError extends AxiosError {\n /**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\n constructor(message, config, request) {\n super(message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n this.__CANCEL__ = true;\n }\n}\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(\n new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][\n Math.floor(response.status / 100) - 4\n ],\n response.config,\n response.request,\n response\n )\n );\n }\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return (match && match[1]) || '';\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round((bytesCount * 1000) / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn(...args);\n };\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if (passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs);\n }, threshold - passed);\n }\n }\n };\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nexport default throttle;\n","import speedometer from './speedometer.js';\nimport throttle from './throttle.js';\nimport utils from '../utils.js';\n\nexport const progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle((e) => {\n const rawLoaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const loaded = total != null ? Math.min(rawLoaded, total) : rawLoaded;\n const progressBytes = Math.max(0, loaded - bytesNotified);\n const rate = _speedometer(progressBytes);\n\n bytesNotified = Math.max(bytesNotified, loaded);\n\n const data = {\n loaded,\n total,\n progress: total ? loaded / total : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true,\n };\n\n listener(data);\n }, freq);\n};\n\nexport const progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [\n (loaded) =>\n throttled[0]({\n lengthComputable,\n total,\n loaded,\n }),\n throttled[1],\n ];\n};\n\nexport const asyncDecorator =\n (fn) =>\n (...args) =>\n utils.asap(() => fn(...args));\n","import platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv\n ? ((origin, isMSIE) => (url) => {\n url = new URL(url, platform.origin);\n\n return (\n origin.protocol === url.protocol &&\n origin.host === url.host &&\n (isMSIE || origin.port === url.port)\n );\n })(\n new URL(platform.origin),\n platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)\n )\n : () => true;\n","import utils from '../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv\n ? // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure, sameSite) {\n if (typeof document === 'undefined') return;\n\n const cookie = [`${name}=${encodeURIComponent(value)}`];\n\n if (utils.isNumber(expires)) {\n cookie.push(`expires=${new Date(expires).toUTCString()}`);\n }\n if (utils.isString(path)) {\n cookie.push(`path=${path}`);\n }\n if (utils.isString(domain)) {\n cookie.push(`domain=${domain}`);\n }\n if (secure === true) {\n cookie.push('secure');\n }\n if (utils.isString(sameSite)) {\n cookie.push(`SameSite=${sameSite}`);\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n if (typeof document === 'undefined') return null;\n const match = document.cookie.match(new RegExp('(?:^|; )' + name + '=([^;]*)'));\n return match ? decodeURIComponent(match[1]) : null;\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000, '/');\n },\n }\n : // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {},\n };\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n if (typeof url !== 'string') {\n return false;\n }\n\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) {\n let isRelativeUrl = !isAbsoluteURL(requestedURL);\n if (baseURL && (isRelativeUrl || allowAbsoluteUrls === false)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst headersToObject = (thing) => (thing instanceof AxiosHeaders ? { ...thing } : thing);\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, prop, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({ caseless }, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(a, b, prop, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, prop, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, prop, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (utils.hasOwnProp(config2, prop)) {\n return getMergedValue(a, b);\n } else if (utils.hasOwnProp(config1, prop)) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b, prop) =>\n mergeDeepProperties(headersToObject(a), headersToObject(b), prop, true),\n };\n\n utils.forEach(Object.keys({ ...config1, ...config2 }), function computeConfigValue(prop) {\n if (prop === '__proto__' || prop === 'constructor' || prop === 'prototype') return;\n const merge = utils.hasOwnProp(mergeMap, prop) ? mergeMap[prop] : mergeDeepProperties;\n const a = utils.hasOwnProp(config1, prop) ? config1[prop] : undefined;\n const b = utils.hasOwnProp(config2, prop) ? config2[prop] : undefined;\n const configValue = merge(a, b, prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","import platform from '../platform/index.js';\nimport utils from '../utils.js';\nimport isURLSameOrigin from './isURLSameOrigin.js';\nimport cookies from './cookies.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport mergeConfig from '../core/mergeConfig.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport buildURL from './buildURL.js';\n\nexport default (config) => {\n const newConfig = mergeConfig({}, config);\n\n let { data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth } = newConfig;\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(\n buildFullPath(newConfig.baseURL, newConfig.url, newConfig.allowAbsoluteUrls),\n config.params,\n config.paramsSerializer\n );\n\n // HTTP basic authentication\n if (auth) {\n headers.set(\n 'Authorization',\n 'Basic ' +\n btoa(\n (auth.username || '') +\n ':' +\n (auth.password ? unescape(encodeURIComponent(auth.password)) : '')\n )\n );\n }\n\n if (utils.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // browser handles it\n } else if (utils.isFunction(data.getHeaders)) {\n // Node.js FormData (like form-data package)\n const formHeaders = data.getHeaders();\n // Only set safe headers to avoid overwriting security headers\n const allowedHeaders = ['content-type', 'content-length'];\n Object.entries(formHeaders).forEach(([key, val]) => {\n if (allowedHeaders.includes(key.toLowerCase())) {\n headers.set(key, val);\n }\n });\n }\n }\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n if (utils.isFunction(withXSRFToken)) {\n withXSRFToken = withXSRFToken(newConfig);\n }\n\n // Strict boolean check — prevents proto-pollution gadgets (e.g. Object.prototype.withXSRFToken = 1)\n // and misconfigurations (e.g. \"false\") from short-circuiting the same-origin check and leaking\n // the XSRF token cross-origin. See GHSA-xx6v-rp6x-q39c.\n const shouldSendXSRF =\n withXSRFToken === true ||\n (withXSRFToken == null && isURLSameOrigin(newConfig.url));\n\n if (shouldSendXSRF) {\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n};\n","import utils from '../utils.js';\nimport settle from '../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport { progressEventReducer } from '../helpers/progressEventReducer.js';\nimport resolveConfig from '../helpers/resolveConfig.js';\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported &&\n function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let { responseType, onUploadProgress, onDownloadProgress } = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData =\n !responseType || responseType === 'text' || responseType === 'json'\n ? request.responseText\n : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request,\n };\n\n settle(\n function _resolve(value) {\n resolve(value);\n done();\n },\n function _reject(err) {\n reject(err);\n done();\n },\n response\n );\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (\n request.status === 0 &&\n !(request.responseURL && request.responseURL.indexOf('file:') === 0)\n ) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError(event) {\n // Browsers deliver a ProgressEvent in XHR onerror\n // (message may be empty; when present, surface it)\n // See https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/error_event\n const msg = event && event.message ? event.message : 'Network Error';\n const err = new AxiosError(msg, AxiosError.ERR_NETWORK, config, request);\n // attach the underlying event for consumers who want details\n err.event = event || null;\n reject(err);\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout\n ? 'timeout of ' + _config.timeout + 'ms exceeded'\n : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(\n new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request\n )\n );\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n [downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true);\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n [uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress);\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = (cancel) => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted\n ? onCanceled()\n : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(\n new AxiosError(\n 'Unsupported protocol ' + protocol + ':',\n AxiosError.ERR_BAD_REQUEST,\n config\n )\n );\n return;\n }\n\n // Send the request\n request.send(requestData || null);\n });\n };\n","import CanceledError from '../cancel/CanceledError.js';\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\nconst composeSignals = (signals, timeout) => {\n const { length } = (signals = signals ? signals.filter(Boolean) : []);\n\n if (timeout || length) {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(\n err instanceof AxiosError\n ? err\n : new CanceledError(err instanceof Error ? err.message : err)\n );\n }\n };\n\n let timer =\n timeout &&\n setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout of ${timeout}ms exceeded`, AxiosError.ETIMEDOUT));\n }, timeout);\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach((signal) => {\n signal.unsubscribe\n ? signal.unsubscribe(onabort)\n : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n }\n };\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n const { signal } = controller;\n\n signal.unsubscribe = () => utils.asap(unsubscribe);\n\n return signal;\n }\n};\n\nexport default composeSignals;\n","export const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n};\n\nexport const readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n};\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const { done, value } = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n};\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n };\n\n return new ReadableStream(\n {\n async pull(controller) {\n try {\n const { done, value } = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = (bytes += len);\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n },\n },\n {\n highWaterMark: 2,\n }\n );\n};\n","import platform from '../platform/index.js';\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport composeSignals from '../helpers/composeSignals.js';\nimport { trackStream } from '../helpers/trackStream.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport {\n progressEventReducer,\n progressEventDecorator,\n asyncDecorator,\n} from '../helpers/progressEventReducer.js';\nimport resolveConfig from '../helpers/resolveConfig.js';\nimport settle from '../core/settle.js';\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst { isFunction } = utils;\n\nconst globalFetchAPI = (({ Request, Response }) => ({\n Request,\n Response,\n}))(utils.global);\n\nconst { ReadableStream, TextEncoder } = utils.global;\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false;\n }\n};\n\nconst factory = (env) => {\n env = utils.merge.call(\n {\n skipUndefined: true,\n },\n globalFetchAPI,\n env\n );\n\n const { fetch: envFetch, Request, Response } = env;\n const isFetchSupported = envFetch ? isFunction(envFetch) : typeof fetch === 'function';\n const isRequestSupported = isFunction(Request);\n const isResponseSupported = isFunction(Response);\n\n if (!isFetchSupported) {\n return false;\n }\n\n const isReadableStreamSupported = isFetchSupported && isFunction(ReadableStream);\n\n const encodeText =\n isFetchSupported &&\n (typeof TextEncoder === 'function'\n ? (\n (encoder) => (str) =>\n encoder.encode(str)\n )(new TextEncoder())\n : async (str) => new Uint8Array(await new Request(str).arrayBuffer()));\n\n const supportsRequestStream =\n isRequestSupported &&\n isReadableStreamSupported &&\n test(() => {\n let duplexAccessed = false;\n\n const request = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n });\n\n const hasContentType = request.headers.has('Content-Type');\n\n if (request.body != null) {\n request.body.cancel();\n }\n\n return duplexAccessed && !hasContentType;\n });\n\n const supportsResponseStream =\n isResponseSupported &&\n isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n const resolvers = {\n stream: supportsResponseStream && ((res) => res.body),\n };\n\n isFetchSupported &&\n (() => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach((type) => {\n !resolvers[type] &&\n (resolvers[type] = (res, config) => {\n let method = res && res[type];\n\n if (method) {\n return method.call(res);\n }\n\n throw new AxiosError(\n `Response type '${type}' is not supported`,\n AxiosError.ERR_NOT_SUPPORT,\n config\n );\n });\n });\n })();\n\n const getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if (utils.isBlob(body)) {\n return body.size;\n }\n\n if (utils.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if (utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if (utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if (utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n };\n\n const resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n };\n\n return async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions,\n } = resolveConfig(config);\n\n let _fetch = envFetch || fetch;\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals(\n [signal, cancelToken && cancelToken.toAbortSignal()],\n timeout\n );\n\n let request = null;\n\n const unsubscribe =\n composedSignal &&\n composedSignal.unsubscribe &&\n (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress &&\n supportsRequestStream &&\n method !== 'get' &&\n method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: 'half',\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader);\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n }\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = isRequestSupported && 'credentials' in Request.prototype;\n\n // If data is FormData and Content-Type is multipart/form-data without boundary,\n // delete it so fetch can set it correctly with the boundary\n if (utils.isFormData(data)) {\n const contentType = headers.getContentType();\n if (\n contentType &&\n /^multipart\\/form-data/i.test(contentType) &&\n !/boundary=/i.test(contentType)\n ) {\n headers.delete('content-type');\n }\n }\n\n const resolvedOptions = {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: 'half',\n credentials: isCredentialsSupported ? withCredentials : undefined,\n };\n\n request = isRequestSupported && new Request(url, resolvedOptions);\n\n let response = await (isRequestSupported\n ? _fetch(request, fetchOptions)\n : _fetch(url, resolvedOptions));\n\n const isStreamResponse =\n supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach((prop) => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] =\n (onDownloadProgress &&\n progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n )) ||\n [];\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](\n response,\n config\n );\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request,\n });\n });\n } catch (err) {\n unsubscribe && unsubscribe();\n\n if (err && err.name === 'TypeError' && /Load failed|fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError(\n 'Network Error',\n AxiosError.ERR_NETWORK,\n config,\n request,\n err && err.response\n ),\n {\n cause: err.cause || err,\n }\n );\n }\n\n throw AxiosError.from(err, err && err.code, config, request, err && err.response);\n }\n };\n};\n\nconst seedCache = new Map();\n\nexport const getFetch = (config) => {\n let env = (config && config.env) || {};\n const { fetch, Request, Response } = env;\n const seeds = [Request, Response, fetch];\n\n let len = seeds.length,\n i = len,\n seed,\n target,\n map = seedCache;\n\n while (i--) {\n seed = seeds[i];\n target = map.get(seed);\n\n target === undefined && map.set(seed, (target = i ? new Map() : factory(env)));\n\n map = target;\n }\n\n return target;\n};\n\nconst adapter = getFetch();\n\nexport default adapter;\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport * as fetchAdapter from './fetch.js';\nimport AxiosError from '../core/AxiosError.js';\n\n/**\n * Known adapters mapping.\n * Provides environment-specific adapters for Axios:\n * - `http` for Node.js\n * - `xhr` for browsers\n * - `fetch` for fetch API-based requests\n *\n * @type {Object}\n */\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: {\n get: fetchAdapter.getFetch,\n },\n};\n\n// Assign adapter names for easier debugging and identification\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', { value });\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', { value });\n }\n});\n\n/**\n * Render a rejection reason string for unknown or unsupported adapters\n *\n * @param {string} reason\n * @returns {string}\n */\nconst renderReason = (reason) => `- ${reason}`;\n\n/**\n * Check if the adapter is resolved (function, null, or false)\n *\n * @param {Function|null|false} adapter\n * @returns {boolean}\n */\nconst isResolvedHandle = (adapter) =>\n utils.isFunction(adapter) || adapter === null || adapter === false;\n\n/**\n * Get the first suitable adapter from the provided list.\n * Tries each adapter in order until a supported one is found.\n * Throws an AxiosError if no adapter is suitable.\n *\n * @param {Array|string|Function} adapters - Adapter(s) by name or function.\n * @param {Object} config - Axios request configuration\n * @throws {AxiosError} If no suitable adapter is available\n * @returns {Function} The resolved adapter function\n */\nfunction getAdapter(adapters, config) {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const { length } = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter && (utils.isFunction(adapter) || (adapter = adapter.get(config)))) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n const reasons = Object.entries(rejectedReasons).map(\n ([id, state]) =>\n `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length\n ? reasons.length > 1\n ? 'since :\\n' + reasons.map(renderReason).join('\\n')\n : ' ' + renderReason(reasons[0])\n : 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n}\n\n/**\n * Exports Axios adapters and utility to resolve an adapter\n */\nexport default {\n /**\n * Resolve an adapter from a list of adapter names or functions.\n * @type {Function}\n */\n getAdapter,\n\n /**\n * Exposes all known adapters\n * @type {Object}\n */\n adapters: knownAdapters,\n};\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from '../adapters/adapters.js';\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(config, config.transformRequest);\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter, config);\n\n return adapter(config).then(\n function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(config, config.transformResponse, response);\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n },\n function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n }\n );\n}\n","export const VERSION = \"1.15.1\";","'use strict';\n\nimport { VERSION } from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return (\n '[Axios v' +\n VERSION +\n \"] Transitional option '\" +\n opt +\n \"'\" +\n desc +\n (message ? '. ' + message : '')\n );\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\nvalidators.spelling = function spelling(correctSpelling) {\n return (value, opt) => {\n // eslint-disable-next-line no-console\n console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);\n return true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError(\n 'option ' + opt + ' must be ' + result,\n AxiosError.ERR_BAD_OPTION_VALUE\n );\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators,\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\nimport transitionalDefaults from '../defaults/transitional.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig || {};\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager(),\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy = {};\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = (() => {\n if (!dummy.stack) {\n return '';\n }\n\n const firstNewlineIndex = dummy.stack.indexOf('\\n');\n\n return firstNewlineIndex === -1 ? '' : dummy.stack.slice(firstNewlineIndex + 1);\n })();\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack) {\n const firstNewlineIndex = stack.indexOf('\\n');\n const secondNewlineIndex =\n firstNewlineIndex === -1 ? -1 : stack.indexOf('\\n', firstNewlineIndex + 1);\n const stackWithoutTwoTopLines =\n secondNewlineIndex === -1 ? '' : stack.slice(secondNewlineIndex + 1);\n\n if (!String(err.stack).endsWith(stackWithoutTwoTopLines)) {\n err.stack += '\\n' + stack;\n }\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const { transitional, paramsSerializer, headers } = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(\n transitional,\n {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean),\n legacyInterceptorReqResOrdering: validators.transitional(validators.boolean),\n },\n false\n );\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer,\n };\n } else {\n validator.assertOptions(\n paramsSerializer,\n {\n encode: validators.function,\n serialize: validators.function,\n },\n true\n );\n }\n }\n\n // Set config.allowAbsoluteUrls\n if (config.allowAbsoluteUrls !== undefined) {\n // do nothing\n } else if (this.defaults.allowAbsoluteUrls !== undefined) {\n config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls;\n } else {\n config.allowAbsoluteUrls = true;\n }\n\n validator.assertOptions(\n config,\n {\n baseUrl: validators.spelling('baseURL'),\n withXsrfToken: validators.spelling('withXSRFToken'),\n },\n true\n );\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(headers.common, headers[config.method]);\n\n headers &&\n utils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], (method) => {\n delete headers[method];\n });\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n const transitional = config.transitional || transitionalDefaults;\n const legacyInterceptorReqResOrdering =\n transitional && transitional.legacyInterceptorReqResOrdering;\n\n if (legacyInterceptorReqResOrdering) {\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n } else {\n requestInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n }\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift(...requestInterceptorChain);\n chain.push(...responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function (url, config) {\n return this.request(\n mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data,\n })\n );\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(\n mergeConfig(config || {}, {\n method,\n headers: isForm\n ? {\n 'Content-Type': 'multipart/form-data',\n }\n : {},\n url,\n data,\n })\n );\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then((cancel) => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = (onfulfilled) => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise((resolve) => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel,\n };\n }\n}\n\nexport default CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * const args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && payload.isAxiosError === true;\n}\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n WebServerIsDown: 521,\n ConnectionTimedOut: 522,\n OriginIsUnreachable: 523,\n TimeoutOccurred: 524,\n SslHandshakeFailed: 525,\n InvalidSslCertificate: 526,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport { VERSION } from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from './core/AxiosHeaders.js';\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, { allOwnKeys: true });\n\n // Copy context to instance\n utils.extend(instance, context, null, { allOwnKeys: true });\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = (thing) => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios;\n","import axios from './lib/axios.js';\n\n// This module is intended to unwrap Axios default export as named.\n// Keep top-level export same with static properties\n// so that it can keep same with es module or cjs\nconst {\n Axios,\n AxiosError,\n CanceledError,\n isCancel,\n CancelToken,\n VERSION,\n all,\n Cancel,\n isAxiosError,\n spread,\n toFormData,\n AxiosHeaders,\n HttpStatusCode,\n formToJSON,\n getAdapter,\n mergeConfig,\n} = axios;\n\nexport {\n axios as default,\n Axios,\n AxiosError,\n CanceledError,\n isCancel,\n CancelToken,\n VERSION,\n all,\n Cancel,\n isAxiosError,\n spread,\n toFormData,\n AxiosHeaders,\n HttpStatusCode,\n formToJSON,\n getAdapter,\n mergeConfig,\n};\n"],"names":["isFunction","utils","AxiosError","toFormData","encode","URLSearchParams","FormData","Blob","platform","AxiosHeaders","isCancel","mergeConfig","CanceledError","ReadableStream","fetchAdapter.getFetch","getAdapter","VERSION","validators","Axios","spread","isAxiosError","HttpStatusCode","CancelToken"],"mappings":"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"} \ No newline at end of file diff --git a/server/api/node_modules/axios/dist/esm/axios.min.js b/server/api/node_modules/axios/dist/esm/axios.min.js new file mode 100644 index 0000000..7a25a0c --- /dev/null +++ b/server/api/node_modules/axios/dist/esm/axios.min.js @@ -0,0 +1,3 @@ +/*! Axios v1.15.1 Copyright (c) 2026 Matt Zabriskie and contributors */ +function e(e,t){return function(){return e.apply(t,arguments)}}const{toString:t}=Object.prototype,{getPrototypeOf:n}=Object,{iterator:r,toStringTag:o}=Symbol,s=(i=Object.create(null),e=>{const n=t.call(e);return i[n]||(i[n]=n.slice(8,-1).toLowerCase())});var i;const a=e=>(e=e.toLowerCase(),t=>s(t)===e),c=e=>t=>typeof t===e,{isArray:l}=Array,u=c("undefined");function f(e){return null!==e&&!u(e)&&null!==e.constructor&&!u(e.constructor)&&h(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const d=a("ArrayBuffer");const p=c("string"),h=c("function"),m=c("number"),b=e=>null!==e&&"object"==typeof e,y=e=>{if("object"!==s(e))return!1;const t=n(e);return!(null!==t&&t!==Object.prototype&&null!==Object.getPrototypeOf(t)||o in e||r in e)},g=a("Date"),w=a("File"),E=a("Blob"),R=a("FileList");const O="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},S=void 0!==O.FormData?O.FormData:void 0,T=a("URLSearchParams"),[A,v,_,x]=["ReadableStream","Request","Response","Headers"].map(a);function C(e,t,{allOwnKeys:n=!1}={}){if(null==e)return;let r,o;if("object"!=typeof e&&(e=[e]),l(e))for(r=0,o=e.length;r0;)if(r=n[o],t===r.toLowerCase())return r;return null}const P="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:global,j=e=>!u(e)&&e!==P;const U=(D="undefined"!=typeof Uint8Array&&n(Uint8Array),e=>D&&e instanceof D);var D;const F=a("HTMLFormElement"),L=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),B=a("RegExp"),k=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};C(n,(n,o)=>{let s;!1!==(s=t(n,o,e))&&(r[o]=s||n)}),Object.defineProperties(e,r)};const q=a("AsyncFunction"),I=(M="function"==typeof setImmediate,z=h(P.postMessage),M?setImmediate:z?(H=`axios@${Math.random()}`,J=[],P.addEventListener("message",({source:e,data:t})=>{e===P&&t===H&&J.length&&J.shift()()},!1),e=>{J.push(e),P.postMessage(H,"*")}):e=>setTimeout(e));var M,z,H,J;const W="undefined"!=typeof queueMicrotask?queueMicrotask.bind(P):"undefined"!=typeof process&&process.nextTick||I;var V={isArray:l,isArrayBuffer:d,isBuffer:f,isFormData:e=>{if(!e)return!1;if(S&&e instanceof S)return!0;const t=n(e);if(!t||t===Object.prototype)return!1;if(!h(e.append))return!1;const r=s(e);return"formdata"===r||"object"===r&&h(e.toString)&&"[object FormData]"===e.toString()},isArrayBufferView:function(e){let t;return t="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&d(e.buffer),t},isString:p,isNumber:m,isBoolean:e=>!0===e||!1===e,isObject:b,isPlainObject:y,isEmptyObject:e=>{if(!b(e)||f(e))return!1;try{return 0===Object.keys(e).length&&Object.getPrototypeOf(e)===Object.prototype}catch(e){return!1}},isReadableStream:A,isRequest:v,isResponse:_,isHeaders:x,isUndefined:u,isDate:g,isFile:w,isReactNativeBlob:e=>!(!e||void 0===e.uri),isReactNative:e=>e&&void 0!==e.getParts,isBlob:E,isRegExp:B,isFunction:h,isStream:e=>b(e)&&h(e.pipe),isURLSearchParams:T,isTypedArray:U,isFileList:R,forEach:C,merge:function e(){const{caseless:t,skipUndefined:n}=j(this)&&this||{},r={},o=(o,s)=>{if("__proto__"===s||"constructor"===s||"prototype"===s)return;const i=t&&N(r,s)||s;y(r[i])&&y(o)?r[i]=e(r[i],o):y(o)?r[i]=e({},o):l(o)?r[i]=o.slice():n&&u(o)||(r[i]=o)};for(let e=0,t=arguments.length;e(C(n,(n,o)=>{r&&h(n)?Object.defineProperty(t,o,{value:e(n,r),writable:!0,enumerable:!0,configurable:!0}):Object.defineProperty(t,o,{value:n,writable:!0,enumerable:!0,configurable:!0})},{allOwnKeys:o}),t),trim:e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""),stripBOM:e=>(65279===e.charCodeAt(0)&&(e=e.slice(1)),e),inherits:(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),Object.defineProperty(e.prototype,"constructor",{value:e,writable:!0,enumerable:!1,configurable:!0}),Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},toFlatObject:(e,t,r,o)=>{let s,i,a;const c={};if(t=t||{},null==e)return t;do{for(s=Object.getOwnPropertyNames(e),i=s.length;i-- >0;)a=s[i],o&&!o(a,e,t)||c[a]||(t[a]=e[a],c[a]=!0);e=!1!==r&&n(e)}while(e&&(!r||r(e,t))&&e!==Object.prototype);return t},kindOf:s,kindOfTest:a,endsWith:(e,t,n)=>{e=String(e),(void 0===n||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return-1!==r&&r===n},toArray:e=>{if(!e)return null;if(l(e))return e;let t=e.length;if(!m(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},forEachEntry:(e,t)=>{const n=(e&&e[r]).call(e);let o;for(;(o=n.next())&&!o.done;){const n=o.value;t.call(e,n[0],n[1])}},matchAll:(e,t)=>{let n;const r=[];for(;null!==(n=e.exec(t));)r.push(n);return r},isHTMLForm:F,hasOwnProperty:L,hasOwnProp:L,reduceDescriptors:k,freezeMethods:e=>{k(e,(t,n)=>{if(h(e)&&-1!==["arguments","caller","callee"].indexOf(n))return!1;const r=e[n];h(r)&&(t.enumerable=!1,"writable"in t?t.writable=!1:t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")}))})},toObjectSet:(e,t)=>{const n={},r=e=>{e.forEach(e=>{n[e]=!0})};return l(e)?r(e):r(String(e).split(t)),n},toCamelCase:e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(e,t,n){return t.toUpperCase()+n}),noop:()=>{},toFiniteNumber:(e,t)=>null!=e&&Number.isFinite(e=+e)?e:t,findKey:N,global:P,isContextDefined:j,isSpecCompliantForm:function(e){return!!(e&&h(e.append)&&"FormData"===e[o]&&e[r])},toJSONObject:e=>{const t=new Array(10),n=(e,r)=>{if(b(e)){if(t.indexOf(e)>=0)return;if(f(e))return e;if(!("toJSON"in e)){t[r]=e;const o=l(e)?[]:{};return C(e,(e,t)=>{const s=n(e,r+1);!u(s)&&(o[t]=s)}),t[r]=void 0,o}}return e};return n(e,0)},isAsyncFn:q,isThenable:e=>e&&(b(e)||h(e))&&h(e.then)&&h(e.catch),setImmediate:I,asap:W,isIterable:e=>null!=e&&h(e[r])};let $=class e extends Error{static from(t,n,r,o,s,i){const a=new e(t.message,n||t.code,r,o,s);return a.cause=t,a.name=t.name,null!=t.status&&null==a.status&&(a.status=t.status),i&&Object.assign(a,i),a}constructor(e,t,n,r,o){super(e),Object.defineProperty(this,"message",{value:e,enumerable:!0,writable:!0,configurable:!0}),this.name="AxiosError",this.isAxiosError=!0,t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),o&&(this.response=o,this.status=o.status)}toJSON(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:V.toJSONObject(this.config),code:this.code,status:this.status}}};$.ERR_BAD_OPTION_VALUE="ERR_BAD_OPTION_VALUE",$.ERR_BAD_OPTION="ERR_BAD_OPTION",$.ECONNABORTED="ECONNABORTED",$.ETIMEDOUT="ETIMEDOUT",$.ERR_NETWORK="ERR_NETWORK",$.ERR_FR_TOO_MANY_REDIRECTS="ERR_FR_TOO_MANY_REDIRECTS",$.ERR_DEPRECATED="ERR_DEPRECATED",$.ERR_BAD_RESPONSE="ERR_BAD_RESPONSE",$.ERR_BAD_REQUEST="ERR_BAD_REQUEST",$.ERR_CANCELED="ERR_CANCELED",$.ERR_NOT_SUPPORT="ERR_NOT_SUPPORT",$.ERR_INVALID_URL="ERR_INVALID_URL",$.ERR_FORM_DATA_DEPTH_EXCEEDED="ERR_FORM_DATA_DEPTH_EXCEEDED";function K(e){return V.isPlainObject(e)||V.isArray(e)}function X(e){return V.endsWith(e,"[]")?e.slice(0,-2):e}function G(e,t,n){return e?e.concat(t).map(function(e,t){return e=X(e),!n&&t?"["+e+"]":e}).join(n?".":""):t}const Q=V.toFlatObject(V,{},null,function(e){return/^is[A-Z]/.test(e)});function Y(e,t,n){if(!V.isObject(e))throw new TypeError("target must be an object");t=t||new FormData;const r=(n=V.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(e,t){return!V.isUndefined(t[e])})).metaTokens,o=n.visitor||f,s=n.dots,i=n.indexes,a=n.Blob||"undefined"!=typeof Blob&&Blob,c=void 0===n.maxDepth?100:n.maxDepth,l=a&&V.isSpecCompliantForm(t);if(!V.isFunction(o))throw new TypeError("visitor must be a function");function u(e){if(null===e)return"";if(V.isDate(e))return e.toISOString();if(V.isBoolean(e))return e.toString();if(!l&&V.isBlob(e))throw new $("Blob is not supported. Use a Buffer instead.");return V.isArrayBuffer(e)||V.isTypedArray(e)?l&&"function"==typeof Blob?new Blob([e]):Buffer.from(e):e}function f(e,n,o){let a=e;if(V.isReactNative(t)&&V.isReactNativeBlob(e))return t.append(G(o,n,s),u(e)),!1;if(e&&!o&&"object"==typeof e)if(V.endsWith(n,"{}"))n=r?n:n.slice(0,-2),e=JSON.stringify(e);else if(V.isArray(e)&&function(e){return V.isArray(e)&&!e.some(K)}(e)||(V.isFileList(e)||V.endsWith(n,"[]"))&&(a=V.toArray(e)))return n=X(n),a.forEach(function(e,r){!V.isUndefined(e)&&null!==e&&t.append(!0===i?G([n],r,s):null===i?n:n+"[]",u(e))}),!1;return!!K(e)||(t.append(G(o,n,s),u(e)),!1)}const d=[],p=Object.assign(Q,{defaultVisitor:f,convertValue:u,isVisitable:K});if(!V.isObject(e))throw new TypeError("data must be an object");return function e(n,r,s=0){if(!V.isUndefined(n)){if(s>c)throw new $("Object is too deeply nested ("+s+" levels). Max depth: "+c,$.ERR_FORM_DATA_DEPTH_EXCEEDED);if(-1!==d.indexOf(n))throw Error("Circular reference detected in "+r.join("."));d.push(n),V.forEach(n,function(n,i){!0===(!(V.isUndefined(n)||null===n)&&o.call(t,n,V.isString(i)?i.trim():i,r,p))&&e(n,r?r.concat(i):[i],s+1)}),d.pop()}}(e),t}function Z(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"};return encodeURIComponent(e).replace(/[!'()~]|%20/g,function(e){return t[e]})}function ee(e,t){this._pairs=[],e&&Y(e,this,t)}const te=ee.prototype;function ne(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function re(e,t,n){if(!t)return e;const r=n&&n.encode||ne,o=V.isFunction(n)?{serialize:n}:n,s=o&&o.serialize;let i;if(i=s?s(t,o):V.isURLSearchParams(t)?t.toString():new ee(t,o).toString(r),i){const t=e.indexOf("#");-1!==t&&(e=e.slice(0,t)),e+=(-1===e.indexOf("?")?"?":"&")+i}return e}te.append=function(e,t){this._pairs.push([e,t])},te.toString=function(e){const t=e?function(t){return e.call(this,t,Z)}:Z;return this._pairs.map(function(e){return t(e[0])+"="+t(e[1])},"").join("&")};class oe{constructor(){this.handlers=[]}use(e,t,n){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){V.forEach(this.handlers,function(t){null!==t&&e(t)})}}var se={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1,legacyInterceptorReqResOrdering:!0},ie={isBrowser:!0,classes:{URLSearchParams:"undefined"!=typeof URLSearchParams?URLSearchParams:ee,FormData:"undefined"!=typeof FormData?FormData:null,Blob:"undefined"!=typeof Blob?Blob:null},protocols:["http","https","file","blob","url","data"]};const ae="undefined"!=typeof window&&"undefined"!=typeof document,ce="object"==typeof navigator&&navigator||void 0,le=ae&&(!ce||["ReactNative","NativeScript","NS"].indexOf(ce.product)<0),ue="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,fe=ae&&window.location.href||"http://localhost";var de={...Object.freeze({__proto__:null,hasBrowserEnv:ae,hasStandardBrowserEnv:le,hasStandardBrowserWebWorkerEnv:ue,navigator:ce,origin:fe}),...ie};function pe(e){function t(e,n,r,o){let s=e[o++];if("__proto__"===s)return!0;const i=Number.isFinite(+s),a=o>=e.length;if(s=!s&&V.isArray(r)?r.length:s,a)return V.hasOwnProp(r,s)?r[s]=V.isArray(r[s])?r[s].concat(n):[r[s],n]:r[s]=n,!i;r[s]&&V.isObject(r[s])||(r[s]=[]);return t(e,n,r[s],o)&&V.isArray(r[s])&&(r[s]=function(e){const t={},n=Object.keys(e);let r;const o=n.length;let s;for(r=0;r{t(function(e){return V.matchAll(/\w+|\[(\w*)]/g,e).map(e=>"[]"===e[0]?"":e[1]||e[0])}(e),r,n,0)}),n}return null}const he=(e,t)=>null!=e&&V.hasOwnProp(e,t)?e[t]:void 0;const me={transitional:se,adapter:["xhr","http","fetch"],transformRequest:[function(e,t){const n=t.getContentType()||"",r=n.indexOf("application/json")>-1,o=V.isObject(e);o&&V.isHTMLForm(e)&&(e=new FormData(e));if(V.isFormData(e))return r?JSON.stringify(pe(e)):e;if(V.isArrayBuffer(e)||V.isBuffer(e)||V.isStream(e)||V.isFile(e)||V.isBlob(e)||V.isReadableStream(e))return e;if(V.isArrayBufferView(e))return e.buffer;if(V.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let s;if(o){const t=he(this,"formSerializer");if(n.indexOf("application/x-www-form-urlencoded")>-1)return function(e,t){return Y(e,new de.classes.URLSearchParams,{visitor:function(e,t,n,r){return de.isNode&&V.isBuffer(e)?(this.append(t,e.toString("base64")),!1):r.defaultVisitor.apply(this,arguments)},...t})}(e,t).toString();if((s=V.isFileList(e))||n.indexOf("multipart/form-data")>-1){const n=he(this,"env"),r=n&&n.FormData;return Y(s?{"files[]":e}:e,r&&new r,t)}}return o||r?(t.setContentType("application/json",!1),function(e,t,n){if(V.isString(e))try{return(t||JSON.parse)(e),V.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(n||JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){const t=he(this,"transitional")||me.transitional,n=t&&t.forcedJSONParsing,r=he(this,"responseType"),o="json"===r;if(V.isResponse(e)||V.isReadableStream(e))return e;if(e&&V.isString(e)&&(n&&!r||o)){const n=!(t&&t.silentJSONParsing)&&o;try{return JSON.parse(e,he(this,"parseReviver"))}catch(e){if(n){if("SyntaxError"===e.name)throw $.from(e,$.ERR_BAD_RESPONSE,this,null,he(this,"response"));throw e}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:de.classes.FormData,Blob:de.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};V.forEach(["delete","get","head","post","put","patch"],e=>{me.headers[e]={}});const be=V.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]);const ye=Symbol("internals"),ge=/[^\x09\x20-\x7E\x80-\xFF]/g;function we(e){return e&&String(e).trim().toLowerCase()}function Ee(e){return!1===e||null==e?e:V.isArray(e)?e.map(Ee):function(e){let t=0,n=e.length;for(;tt;){const t=e.charCodeAt(n-1);if(9!==t&&32!==t)break;n-=1}return 0===t&&n===e.length?e:e.slice(t,n)}(String(e).replace(ge,""))}function Re(e,t,n,r,o){return V.isFunction(r)?r.call(this,t,n):(o&&(t=n),V.isString(t)?V.isString(r)?-1!==t.indexOf(r):V.isRegExp(r)?r.test(t):void 0:void 0)}let Oe=class{constructor(e){e&&this.set(e)}set(e,t,n){const r=this;function o(e,t,n){const o=we(t);if(!o)throw new Error("header name must be a non-empty string");const s=V.findKey(r,o);(!s||void 0===r[s]||!0===n||void 0===n&&!1!==r[s])&&(r[s||t]=Ee(e))}const s=(e,t)=>V.forEach(e,(e,n)=>o(e,n,t));if(V.isPlainObject(e)||e instanceof this.constructor)s(e,t);else if(V.isString(e)&&(e=e.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim()))s((e=>{const t={};let n,r,o;return e&&e.split("\n").forEach(function(e){o=e.indexOf(":"),n=e.substring(0,o).trim().toLowerCase(),r=e.substring(o+1).trim(),!n||t[n]&&be[n]||("set-cookie"===n?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t})(e),t);else if(V.isObject(e)&&V.isIterable(e)){let n,r,o={};for(const t of e){if(!V.isArray(t))throw TypeError("Object iterator must return a key-value pair");o[r=t[0]]=(n=o[r])?V.isArray(n)?[...n,t[1]]:[n,t[1]]:t[1]}s(o,t)}else null!=e&&o(t,e,n);return this}get(e,t){if(e=we(e)){const n=V.findKey(this,e);if(n){const e=this[n];if(!t)return e;if(!0===t)return function(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}(e);if(V.isFunction(t))return t.call(this,e,n);if(V.isRegExp(t))return t.exec(e);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,t){if(e=we(e)){const n=V.findKey(this,e);return!(!n||void 0===this[n]||t&&!Re(0,this[n],n,t))}return!1}delete(e,t){const n=this;let r=!1;function o(e){if(e=we(e)){const o=V.findKey(n,e);!o||t&&!Re(0,n[o],o,t)||(delete n[o],r=!0)}}return V.isArray(e)?e.forEach(o):o(e),r}clear(e){const t=Object.keys(this);let n=t.length,r=!1;for(;n--;){const o=t[n];e&&!Re(0,this[o],o,e,!0)||(delete this[o],r=!0)}return r}normalize(e){const t=this,n={};return V.forEach(this,(r,o)=>{const s=V.findKey(n,o);if(s)return t[s]=Ee(r),void delete t[o];const i=e?function(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(e,t,n)=>t.toUpperCase()+n)}(o):String(o).trim();i!==o&&delete t[o],t[i]=Ee(r),n[i]=!0}),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const t=Object.create(null);return V.forEach(this,(n,r)=>{null!=n&&!1!==n&&(t[r]=e&&V.isArray(n)?n.join(", "):n)}),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([e,t])=>e+": "+t).join("\n")}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){const n=new this(e);return t.forEach(e=>n.set(e)),n}static accessor(e){const t=(this[ye]=this[ye]={accessors:{}}).accessors,n=this.prototype;function r(e){const r=we(e);t[r]||(!function(e,t){const n=V.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(e,n,o){return this[r].call(this,t,e,n,o)},configurable:!0})})}(n,e),t[r]=!0)}return V.isArray(e)?e.forEach(r):r(e),this}};function Se(e,t){const n=this||me,r=t||n,o=Oe.from(r.headers);let s=r.data;return V.forEach(e,function(e){s=e.call(n,s,o.normalize(),t?t.status:void 0)}),o.normalize(),s}function Te(e){return!(!e||!e.__CANCEL__)}Oe.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),V.reduceDescriptors(Oe.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(e){this[n]=e}}}),V.freezeMethods(Oe);let Ae=class extends ${constructor(e,t,n){super(null==e?"canceled":e,$.ERR_CANCELED,t,n),this.name="CanceledError",this.__CANCEL__=!0}};function ve(e,t,n){const r=n.config.validateStatus;n.status&&r&&!r(n.status)?t(new $("Request failed with status code "+n.status,[$.ERR_BAD_REQUEST,$.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n)):e(n)}const _e=(e,t,n=3)=>{let r=0;const o=function(e,t){e=e||10;const n=new Array(e),r=new Array(e);let o,s=0,i=0;return t=void 0!==t?t:1e3,function(a){const c=Date.now(),l=r[i];o||(o=c),n[s]=a,r[s]=c;let u=i,f=0;for(;u!==s;)f+=n[u++],u%=e;if(s=(s+1)%e,s===i&&(i=(i+1)%e),c-o{o=s,n=null,r&&(clearTimeout(r),r=null),e(...t)};return[(...e)=>{const t=Date.now(),a=t-o;a>=s?i(e,t):(n=e,r||(r=setTimeout(()=>{r=null,i(n)},s-a)))},()=>n&&i(n)]}(n=>{const s=n.loaded,i=n.lengthComputable?n.total:void 0,a=null!=i?Math.min(s,i):s,c=Math.max(0,a-r),l=o(c);r=Math.max(r,a);e({loaded:a,total:i,progress:i?a/i:void 0,bytes:c,rate:l||void 0,estimated:l&&i?(i-a)/l:void 0,event:n,lengthComputable:null!=i,[t?"download":"upload"]:!0})},n)},xe=(e,t)=>{const n=null!=e;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},Ce=e=>(...t)=>V.asap(()=>e(...t));var Ne=de.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,de.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(de.origin),de.navigator&&/(msie|trident)/i.test(de.navigator.userAgent)):()=>!0,Pe=de.hasStandardBrowserEnv?{write(e,t,n,r,o,s,i){if("undefined"==typeof document)return;const a=[`${e}=${encodeURIComponent(t)}`];V.isNumber(n)&&a.push(`expires=${new Date(n).toUTCString()}`),V.isString(r)&&a.push(`path=${r}`),V.isString(o)&&a.push(`domain=${o}`),!0===s&&a.push("secure"),V.isString(i)&&a.push(`SameSite=${i}`),document.cookie=a.join("; ")},read(e){if("undefined"==typeof document)return null;const t=document.cookie.match(new RegExp("(?:^|; )"+e+"=([^;]*)"));return t?decodeURIComponent(t[1]):null},remove(e){this.write(e,"",Date.now()-864e5,"/")}}:{write(){},read:()=>null,remove(){}};function je(e,t,n){let r=!("string"==typeof(o=t)&&/^([a-z][a-z\d+\-.]*:)?\/\//i.test(o));var o;return e&&(r||!1===n)?function(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}(e,t):t}const Ue=e=>e instanceof Oe?{...e}:e;function De(e,t){t=t||{};const n={};function r(e,t,n,r){return V.isPlainObject(e)&&V.isPlainObject(t)?V.merge.call({caseless:r},e,t):V.isPlainObject(t)?V.merge({},t):V.isArray(t)?t.slice():t}function o(e,t,n,o){return V.isUndefined(t)?V.isUndefined(e)?void 0:r(void 0,e,0,o):r(e,t,0,o)}function s(e,t){if(!V.isUndefined(t))return r(void 0,t)}function i(e,t){return V.isUndefined(t)?V.isUndefined(e)?void 0:r(void 0,e):r(void 0,t)}function a(n,o,s){return V.hasOwnProp(t,s)?r(n,o):V.hasOwnProp(e,s)?r(void 0,n):void 0}const c={url:s,method:s,data:s,baseURL:i,transformRequest:i,transformResponse:i,paramsSerializer:i,timeout:i,timeoutMessage:i,withCredentials:i,withXSRFToken:i,adapter:i,responseType:i,xsrfCookieName:i,xsrfHeaderName:i,onUploadProgress:i,onDownloadProgress:i,decompress:i,maxContentLength:i,maxBodyLength:i,beforeRedirect:i,transport:i,httpAgent:i,httpsAgent:i,cancelToken:i,socketPath:i,responseEncoding:i,validateStatus:a,headers:(e,t,n)=>o(Ue(e),Ue(t),0,!0)};return V.forEach(Object.keys({...e,...t}),function(r){if("__proto__"===r||"constructor"===r||"prototype"===r)return;const s=V.hasOwnProp(c,r)?c[r]:o,i=s(V.hasOwnProp(e,r)?e[r]:void 0,V.hasOwnProp(t,r)?t[r]:void 0,r);V.isUndefined(i)&&s!==a||(n[r]=i)}),n}var Fe=e=>{const t=De({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:o,xsrfCookieName:s,headers:i,auth:a}=t;if(t.headers=i=Oe.from(i),t.url=re(je(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),a&&i.set("Authorization","Basic "+btoa((a.username||"")+":"+(a.password?unescape(encodeURIComponent(a.password)):""))),V.isFormData(n))if(de.hasStandardBrowserEnv||de.hasStandardBrowserWebWorkerEnv)i.setContentType(void 0);else if(V.isFunction(n.getHeaders)){const e=n.getHeaders(),t=["content-type","content-length"];Object.entries(e).forEach(([e,n])=>{t.includes(e.toLowerCase())&&i.set(e,n)})}if(de.hasStandardBrowserEnv){V.isFunction(r)&&(r=r(t));if(!0===r||null==r&&Ne(t.url)){const e=o&&s&&Pe.read(s);e&&i.set(o,e)}}return t};var Le="undefined"!=typeof XMLHttpRequest&&function(e){return new Promise(function(t,n){const r=Fe(e);let o=r.data;const s=Oe.from(r.headers).normalize();let i,a,c,l,u,{responseType:f,onUploadProgress:d,onDownloadProgress:p}=r;function h(){l&&l(),u&&u(),r.cancelToken&&r.cancelToken.unsubscribe(i),r.signal&&r.signal.removeEventListener("abort",i)}let m=new XMLHttpRequest;function b(){if(!m)return;const r=Oe.from("getAllResponseHeaders"in m&&m.getAllResponseHeaders());ve(function(e){t(e),h()},function(e){n(e),h()},{data:f&&"text"!==f&&"json"!==f?m.response:m.responseText,status:m.status,statusText:m.statusText,headers:r,config:e,request:m}),m=null}m.open(r.method.toUpperCase(),r.url,!0),m.timeout=r.timeout,"onloadend"in m?m.onloadend=b:m.onreadystatechange=function(){m&&4===m.readyState&&(0!==m.status||m.responseURL&&0===m.responseURL.indexOf("file:"))&&setTimeout(b)},m.onabort=function(){m&&(n(new $("Request aborted",$.ECONNABORTED,e,m)),m=null)},m.onerror=function(t){const r=t&&t.message?t.message:"Network Error",o=new $(r,$.ERR_NETWORK,e,m);o.event=t||null,n(o),m=null},m.ontimeout=function(){let t=r.timeout?"timeout of "+r.timeout+"ms exceeded":"timeout exceeded";const o=r.transitional||se;r.timeoutErrorMessage&&(t=r.timeoutErrorMessage),n(new $(t,o.clarifyTimeoutError?$.ETIMEDOUT:$.ECONNABORTED,e,m)),m=null},void 0===o&&s.setContentType(null),"setRequestHeader"in m&&V.forEach(s.toJSON(),function(e,t){m.setRequestHeader(t,e)}),V.isUndefined(r.withCredentials)||(m.withCredentials=!!r.withCredentials),f&&"json"!==f&&(m.responseType=r.responseType),p&&([c,u]=_e(p,!0),m.addEventListener("progress",c)),d&&m.upload&&([a,l]=_e(d),m.upload.addEventListener("progress",a),m.upload.addEventListener("loadend",l)),(r.cancelToken||r.signal)&&(i=t=>{m&&(n(!t||t.type?new Ae(null,e,m):t),m.abort(),m=null)},r.cancelToken&&r.cancelToken.subscribe(i),r.signal&&(r.signal.aborted?i():r.signal.addEventListener("abort",i)));const y=function(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}(r.url);y&&-1===de.protocols.indexOf(y)?n(new $("Unsupported protocol "+y+":",$.ERR_BAD_REQUEST,e)):m.send(o||null)})};const Be=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let n,r=new AbortController;const o=function(e){if(!n){n=!0,i();const t=e instanceof Error?e:this.reason;r.abort(t instanceof $?t:new Ae(t instanceof Error?t.message:t))}};let s=t&&setTimeout(()=>{s=null,o(new $(`timeout of ${t}ms exceeded`,$.ETIMEDOUT))},t);const i=()=>{e&&(s&&clearTimeout(s),s=null,e.forEach(e=>{e.unsubscribe?e.unsubscribe(o):e.removeEventListener("abort",o)}),e=null)};e.forEach(e=>e.addEventListener("abort",o));const{signal:a}=r;return a.unsubscribe=()=>V.asap(i),a}},ke=function*(e,t){let n=e.byteLength;if(n{const o=async function*(e,t){for await(const n of qe(e))yield*ke(n,t)}(e,t);let s,i=0,a=e=>{s||(s=!0,r&&r(e))};return new ReadableStream({async pull(e){try{const{done:t,value:r}=await o.next();if(t)return a(),void e.close();let s=r.byteLength;if(n){let e=i+=s;n(e)}e.enqueue(new Uint8Array(r))}catch(e){throw a(e),e}},cancel:e=>(a(e),o.return())},{highWaterMark:2})},{isFunction:Me}=V,ze=(({Request:e,Response:t})=>({Request:e,Response:t}))(V.global),{ReadableStream:He,TextEncoder:Je}=V.global,We=(e,...t)=>{try{return!!e(...t)}catch(e){return!1}},Ve=e=>{e=V.merge.call({skipUndefined:!0},ze,e);const{fetch:t,Request:n,Response:r}=e,o=t?Me(t):"function"==typeof fetch,s=Me(n),i=Me(r);if(!o)return!1;const a=o&&Me(He),c=o&&("function"==typeof Je?(l=new Je,e=>l.encode(e)):async e=>new Uint8Array(await new n(e).arrayBuffer()));var l;const u=s&&a&&We(()=>{let e=!1;const t=new n(de.origin,{body:new He,method:"POST",get duplex(){return e=!0,"half"}}),r=t.headers.has("Content-Type");return null!=t.body&&t.body.cancel(),e&&!r}),f=i&&a&&We(()=>V.isReadableStream(new r("").body)),d={stream:f&&(e=>e.body)};o&&["text","arrayBuffer","blob","formData","stream"].forEach(e=>{!d[e]&&(d[e]=(t,n)=>{let r=t&&t[e];if(r)return r.call(t);throw new $(`Response type '${e}' is not supported`,$.ERR_NOT_SUPPORT,n)})});const p=async(e,t)=>{const r=V.toFiniteNumber(e.getContentLength());return null==r?(async e=>{if(null==e)return 0;if(V.isBlob(e))return e.size;if(V.isSpecCompliantForm(e)){const t=new n(de.origin,{method:"POST",body:e});return(await t.arrayBuffer()).byteLength}return V.isArrayBufferView(e)||V.isArrayBuffer(e)?e.byteLength:(V.isURLSearchParams(e)&&(e+=""),V.isString(e)?(await c(e)).byteLength:void 0)})(t):r};return async e=>{let{url:o,method:i,data:a,signal:c,cancelToken:l,timeout:h,onDownloadProgress:m,onUploadProgress:b,responseType:y,headers:g,withCredentials:w="same-origin",fetchOptions:E}=Fe(e),R=t||fetch;y=y?(y+"").toLowerCase():"text";let O=Be([c,l&&l.toAbortSignal()],h),S=null;const T=O&&O.unsubscribe&&(()=>{O.unsubscribe()});let A;try{if(b&&u&&"get"!==i&&"head"!==i&&0!==(A=await p(g,a))){let e,t=new n(o,{method:"POST",body:a,duplex:"half"});if(V.isFormData(a)&&(e=t.headers.get("content-type"))&&g.setContentType(e),t.body){const[e,n]=xe(A,_e(Ce(b)));a=Ie(t.body,65536,e,n)}}V.isString(w)||(w=w?"include":"omit");const t=s&&"credentials"in n.prototype;if(V.isFormData(a)){const e=g.getContentType();e&&/^multipart\/form-data/i.test(e)&&!/boundary=/i.test(e)&&g.delete("content-type")}const c={...E,signal:O,method:i.toUpperCase(),headers:g.normalize().toJSON(),body:a,duplex:"half",credentials:t?w:void 0};S=s&&new n(o,c);let l=await(s?R(S,E):R(o,c));const h=f&&("stream"===y||"response"===y);if(f&&(m||h&&T)){const e={};["status","statusText","headers"].forEach(t=>{e[t]=l[t]});const t=V.toFiniteNumber(l.headers.get("content-length")),[n,o]=m&&xe(t,_e(Ce(m),!0))||[];l=new r(Ie(l.body,65536,n,()=>{o&&o(),T&&T()}),e)}y=y||"text";let v=await d[V.findKey(d,y)||"text"](l,e);return!h&&T&&T(),await new Promise((t,n)=>{ve(t,n,{data:v,headers:Oe.from(l.headers),status:l.status,statusText:l.statusText,config:e,request:S})})}catch(t){if(T&&T(),t&&"TypeError"===t.name&&/Load failed|fetch/i.test(t.message))throw Object.assign(new $("Network Error",$.ERR_NETWORK,e,S,t&&t.response),{cause:t.cause||t});throw $.from(t,t&&t.code,e,S,t&&t.response)}}},$e=new Map,Ke=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:o}=t,s=[r,o,n];let i,a,c=s.length,l=$e;for(;c--;)i=s[c],a=l.get(i),void 0===a&&l.set(i,a=c?new Map:Ve(t)),l=a;return a};Ke();const Xe={http:null,xhr:Le,fetch:{get:Ke}};V.forEach(Xe,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch(e){}Object.defineProperty(e,"adapterName",{value:t})}});const Ge=e=>`- ${e}`,Qe=e=>V.isFunction(e)||null===e||!1===e;var Ye={getAdapter:function(e,t){e=V.isArray(e)?e:[e];const{length:n}=e;let r,o;const s={};for(let i=0;i`adapter ${e} `+(!1===t?"is not supported by the environment":"is not available in the build"));let t=n?e.length>1?"since :\n"+e.map(Ge).join("\n"):" "+Ge(e[0]):"as no adapter specified";throw new $("There is no suitable adapter to dispatch the request "+t,"ERR_NOT_SUPPORT")}return o},adapters:Xe};function Ze(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Ae(null,e)}function et(e){Ze(e),e.headers=Oe.from(e.headers),e.data=Se.call(e,e.transformRequest),-1!==["post","put","patch"].indexOf(e.method)&&e.headers.setContentType("application/x-www-form-urlencoded",!1);return Ye.getAdapter(e.adapter||me.adapter,e)(e).then(function(t){return Ze(e),t.data=Se.call(e,e.transformResponse,t),t.headers=Oe.from(t.headers),t},function(t){return Te(t)||(Ze(e),t&&t.response&&(t.response.data=Se.call(e,e.transformResponse,t.response),t.response.headers=Oe.from(t.response.headers))),Promise.reject(t)})}const tt="1.15.1",nt={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{nt[e]=function(n){return typeof n===e||"a"+(t<1?"n ":" ")+e}});const rt={};nt.transitional=function(e,t,n){function r(e,t){return"[Axios v"+tt+"] Transitional option '"+e+"'"+t+(n?". "+n:"")}return(n,o,s)=>{if(!1===e)throw new $(r(o," has been removed"+(t?" in "+t:"")),$.ERR_DEPRECATED);return t&&!rt[o]&&(rt[o]=!0,console.warn(r(o," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(n,o,s)}},nt.spelling=function(e){return(t,n)=>(console.warn(`${n} is likely a misspelling of ${e}`),!0)};var ot={assertOptions:function(e,t,n){if("object"!=typeof e)throw new $("options must be an object",$.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let o=r.length;for(;o-- >0;){const s=r[o],i=t[s];if(i){const t=e[s],n=void 0===t||i(t,s,e);if(!0!==n)throw new $("option "+s+" must be "+n,$.ERR_BAD_OPTION_VALUE);continue}if(!0!==n)throw new $("Unknown option "+s,$.ERR_BAD_OPTION)}},validators:nt};const st=ot.validators;let it=class{constructor(e){this.defaults=e||{},this.interceptors={request:new oe,response:new oe}}async request(e,t){try{return await this._request(e,t)}catch(e){if(e instanceof Error){let t={};Error.captureStackTrace?Error.captureStackTrace(t):t=new Error;const n=(()=>{if(!t.stack)return"";const e=t.stack.indexOf("\n");return-1===e?"":t.stack.slice(e+1)})();try{if(e.stack){if(n){const t=n.indexOf("\n"),r=-1===t?-1:n.indexOf("\n",t+1),o=-1===r?"":n.slice(r+1);String(e.stack).endsWith(o)||(e.stack+="\n"+n)}}else e.stack=n}catch(e){}}throw e}}_request(e,t){"string"==typeof e?(t=t||{}).url=e:t=e||{},t=De(this.defaults,t);const{transitional:n,paramsSerializer:r,headers:o}=t;void 0!==n&&ot.assertOptions(n,{silentJSONParsing:st.transitional(st.boolean),forcedJSONParsing:st.transitional(st.boolean),clarifyTimeoutError:st.transitional(st.boolean),legacyInterceptorReqResOrdering:st.transitional(st.boolean)},!1),null!=r&&(V.isFunction(r)?t.paramsSerializer={serialize:r}:ot.assertOptions(r,{encode:st.function,serialize:st.function},!0)),void 0!==t.allowAbsoluteUrls||(void 0!==this.defaults.allowAbsoluteUrls?t.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:t.allowAbsoluteUrls=!0),ot.assertOptions(t,{baseUrl:st.spelling("baseURL"),withXsrfToken:st.spelling("withXSRFToken")},!0),t.method=(t.method||this.defaults.method||"get").toLowerCase();let s=o&&V.merge(o.common,o[t.method]);o&&V.forEach(["delete","get","head","post","put","patch","common"],e=>{delete o[e]}),t.headers=Oe.concat(s,o);const i=[];let a=!0;this.interceptors.request.forEach(function(e){if("function"==typeof e.runWhen&&!1===e.runWhen(t))return;a=a&&e.synchronous;const n=t.transitional||se;n&&n.legacyInterceptorReqResOrdering?i.unshift(e.fulfilled,e.rejected):i.push(e.fulfilled,e.rejected)});const c=[];let l;this.interceptors.response.forEach(function(e){c.push(e.fulfilled,e.rejected)});let u,f=0;if(!a){const e=[et.bind(this),void 0];for(e.unshift(...i),e.push(...c),u=e.length,l=Promise.resolve(t);f{at[t]=e});const ct=function t(n){const r=new it(n),o=e(it.prototype.request,r);return V.extend(o,it.prototype,r,{allOwnKeys:!0}),V.extend(o,r,null,{allOwnKeys:!0}),o.create=function(e){return t(De(n,e))},o}(me);ct.Axios=it,ct.CanceledError=Ae,ct.CancelToken=class e{constructor(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");let t;this.promise=new Promise(function(e){t=e});const n=this;this.promise.then(e=>{if(!n._listeners)return;let t=n._listeners.length;for(;t-- >0;)n._listeners[t](e);n._listeners=null}),this.promise.then=e=>{let t;const r=new Promise(e=>{n.subscribe(e),t=e}).then(e);return r.cancel=function(){n.unsubscribe(t)},r},e(function(e,r,o){n.reason||(n.reason=new Ae(e,r,o),t(n.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}toAbortSignal(){const e=new AbortController,t=t=>{e.abort(t)};return this.subscribe(t),e.signal.unsubscribe=()=>this.unsubscribe(t),e.signal}static source(){let t;return{token:new e(function(e){t=e}),cancel:t}}},ct.isCancel=Te,ct.VERSION=tt,ct.toFormData=Y,ct.AxiosError=$,ct.Cancel=ct.CanceledError,ct.all=function(e){return Promise.all(e)},ct.spread=function(e){return function(t){return e.apply(null,t)}},ct.isAxiosError=function(e){return V.isObject(e)&&!0===e.isAxiosError},ct.mergeConfig=De,ct.AxiosHeaders=Oe,ct.formToJSON=e=>pe(V.isHTMLForm(e)?new FormData(e):e),ct.getAdapter=Ye.getAdapter,ct.HttpStatusCode=at,ct.default=ct;const{Axios:lt,AxiosError:ut,CanceledError:ft,isCancel:dt,CancelToken:pt,VERSION:ht,all:mt,Cancel:bt,isAxiosError:yt,spread:gt,toFormData:wt,AxiosHeaders:Et,HttpStatusCode:Rt,formToJSON:Ot,getAdapter:St,mergeConfig:Tt}=ct;export{lt as Axios,ut as AxiosError,Et as AxiosHeaders,bt as Cancel,pt as CancelToken,ft as CanceledError,Rt as HttpStatusCode,ht as VERSION,mt as all,ct as default,Ot as formToJSON,St as getAdapter,yt as isAxiosError,dt as isCancel,Tt as mergeConfig,gt as spread,wt as toFormData}; +//# sourceMappingURL=axios.min.js.map diff --git a/server/api/node_modules/axios/dist/esm/axios.min.js.map b/server/api/node_modules/axios/dist/esm/axios.min.js.map new file mode 100644 index 0000000..f33ab93 --- /dev/null +++ b/server/api/node_modules/axios/dist/esm/axios.min.js.map @@ -0,0 +1 @@ +{"version":3,"file":"axios.min.js","sources":["../../lib/helpers/bind.js","../../lib/utils.js","../../lib/core/AxiosError.js","../../lib/helpers/toFormData.js","../../lib/helpers/AxiosURLSearchParams.js","../../lib/helpers/buildURL.js","../../lib/core/InterceptorManager.js","../../lib/defaults/transitional.js","../../lib/platform/browser/index.js","../../lib/platform/browser/classes/URLSearchParams.js","../../lib/platform/browser/classes/FormData.js","../../lib/platform/browser/classes/Blob.js","../../lib/platform/common/utils.js","../../lib/platform/index.js","../../lib/helpers/formDataToJSON.js","../../lib/defaults/index.js","../../lib/helpers/toURLEncodedForm.js","../../lib/helpers/parseHeaders.js","../../lib/core/AxiosHeaders.js","../../lib/core/transformData.js","../../lib/cancel/isCancel.js","../../lib/cancel/CanceledError.js","../../lib/core/settle.js","../../lib/helpers/progressEventReducer.js","../../lib/helpers/speedometer.js","../../lib/helpers/throttle.js","../../lib/helpers/isURLSameOrigin.js","../../lib/helpers/cookies.js","../../lib/core/buildFullPath.js","../../lib/helpers/isAbsoluteURL.js","../../lib/helpers/combineURLs.js","../../lib/core/mergeConfig.js","../../lib/helpers/resolveConfig.js","../../lib/adapters/xhr.js","../../lib/helpers/parseProtocol.js","../../lib/helpers/composeSignals.js","../../lib/helpers/trackStream.js","../../lib/adapters/fetch.js","../../lib/adapters/adapters.js","../../lib/helpers/null.js","../../lib/core/dispatchRequest.js","../../lib/env/data.js","../../lib/helpers/validator.js","../../lib/core/Axios.js","../../lib/helpers/HttpStatusCode.js","../../lib/axios.js","../../lib/cancel/CancelToken.js","../../lib/helpers/spread.js","../../lib/helpers/isAxiosError.js","../../index.js"],"sourcesContent":["'use strict';\n\n/**\n * Create a bound version of a function with a specified `this` context\n *\n * @param {Function} fn - The function to bind\n * @param {*} thisArg - The value to be passed as the `this` parameter\n * @returns {Function} A new function that will call the original function with the specified `this` context\n */\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst { toString } = Object.prototype;\nconst { getPrototypeOf } = Object;\nconst { iterator, toStringTag } = Symbol;\n\nconst kindOf = ((cache) => (thing) => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type;\n};\n\nconst typeOfTest = (type) => (thing) => typeof thing === type;\n\n/**\n * Determine if a value is a non-null object\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst { isArray } = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return (\n val !== null &&\n !isUndefined(val) &&\n val.constructor !== null &&\n !isUndefined(val.constructor) &&\n isFunction(val.constructor.isBuffer) &&\n val.constructor.isBuffer(val)\n );\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n result = ArrayBuffer.isView(val);\n } else {\n result = val && val.buffer && isArrayBuffer(val.buffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = (thing) => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (\n (prototype === null ||\n prototype === Object.prototype ||\n Object.getPrototypeOf(prototype) === null) &&\n !(toStringTag in val) &&\n !(iterator in val)\n );\n};\n\n/**\n * Determine if a value is an empty object (safely handles Buffers)\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an empty object, otherwise false\n */\nconst isEmptyObject = (val) => {\n // Early return for non-objects or Buffers to prevent RangeError\n if (!isObject(val) || isBuffer(val)) {\n return false;\n }\n\n try {\n return Object.keys(val).length === 0 && Object.getPrototypeOf(val) === Object.prototype;\n } catch (e) {\n // Fallback for any other objects that might cause RangeError with Object.keys()\n return false;\n }\n};\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a React Native Blob\n * React Native \"blob\": an object with a `uri` attribute. Optionally, it can\n * also have a `name` and `type` attribute to specify filename and content type\n *\n * @see https://github.com/facebook/react-native/blob/26684cf3adf4094eb6c405d345a75bf8c7c0bf88/Libraries/Network/FormData.js#L68-L71\n * \n * @param {*} value The value to test\n * \n * @returns {boolean} True if value is a React Native Blob, otherwise false\n */\nconst isReactNativeBlob = (value) => {\n return !!(value && typeof value.uri !== 'undefined');\n}\n\n/**\n * Determine if environment is React Native\n * ReactNative `FormData` has a non-standard `getParts()` method\n * \n * @param {*} formData The formData to test\n * \n * @returns {boolean} True if environment is React Native, otherwise false\n */\nconst isReactNative = (formData) => formData && typeof formData.getParts !== 'undefined';\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction getGlobal() {\n if (typeof globalThis !== 'undefined') return globalThis;\n if (typeof self !== 'undefined') return self;\n if (typeof window !== 'undefined') return window;\n if (typeof global !== 'undefined') return global;\n return {};\n}\n\nconst G = getGlobal();\nconst FormDataCtor = typeof G.FormData !== 'undefined' ? G.FormData : undefined;\n\nconst isFormData = (thing) => {\n if (!thing) return false;\n if (FormDataCtor && thing instanceof FormDataCtor) return true;\n // Reject plain objects inheriting directly from Object.prototype so prototype-pollution gadgets can't spoof FormData (GHSA-6chq-wfr3-2hj9).\n const proto = getPrototypeOf(thing);\n if (!proto || proto === Object.prototype) return false;\n if (!isFunction(thing.append)) return false;\n const kind = kindOf(thing);\n return kind === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]');\n};\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = [\n 'ReadableStream',\n 'Request',\n 'Response',\n 'Headers',\n].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => {\n return str.trim ? str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n};\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Object} [options]\n * @param {Boolean} [options.allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, { allOwnKeys = false } = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Buffer check\n if (isBuffer(obj)) {\n return;\n }\n\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\n/**\n * Finds a key in an object, case-insensitive, returning the actual key name.\n * Returns null if the object is a Buffer or if no match is found.\n *\n * @param {Object} obj - The object to search.\n * @param {string} key - The key to find (case-insensitive).\n * @returns {?string} The actual key name if found, otherwise null.\n */\nfunction findKey(obj, key) {\n if (isBuffer(obj)) {\n return null;\n }\n\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== 'undefined') return globalThis;\n return typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : global;\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * const result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const { caseless, skipUndefined } = (isContextDefined(this) && this) || {};\n const result = {};\n const assignValue = (val, key) => {\n // Skip dangerous property names to prevent prototype pollution\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return;\n }\n\n const targetKey = (caseless && findKey(result, key)) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else if (!skipUndefined || !isUndefined(val)) {\n result[targetKey] = val;\n }\n };\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Object} [options]\n * @param {Boolean} [options.allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, { allOwnKeys } = {}) => {\n forEach(\n b,\n (val, key) => {\n if (thisArg && isFunction(val)) {\n Object.defineProperty(a, key, {\n value: bind(val, thisArg),\n writable: true,\n enumerable: true,\n configurable: true,\n });\n } else {\n Object.defineProperty(a, key, {\n value: val,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n }\n },\n { allOwnKeys }\n );\n return a;\n};\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xfeff) {\n content = content.slice(1);\n }\n return content;\n};\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n Object.defineProperty(constructor.prototype, 'constructor', {\n value: constructor,\n writable: true,\n enumerable: false,\n configurable: true,\n });\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype,\n });\n props && Object.assign(constructor.prototype, props);\n};\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n};\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n};\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n};\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = ((TypedArray) => {\n // eslint-disable-next-line func-names\n return (thing) => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[iterator];\n\n const _iterator = generator.call(obj);\n\n let result;\n\n while ((result = _iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n};\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n};\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = (str) => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g, function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n });\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (\n ({ hasOwnProperty }) =>\n (obj, prop) =>\n hasOwnProperty.call(obj, prop)\n)(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n};\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error(\"Can not rewrite read-only method '\" + name + \"'\");\n };\n }\n });\n};\n\n/**\n * Converts an array or a delimited string into an object set with values as keys and true as values.\n * Useful for fast membership checks.\n *\n * @param {Array|string} arrayOrString - The array or string to convert.\n * @param {string} delimiter - The delimiter to use if input is a string.\n * @returns {Object} An object with keys from the array or string, values set to true.\n */\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach((value) => {\n obj[value] = true;\n });\n };\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n};\n\nconst noop = () => {};\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite((value = +value)) ? value : defaultValue;\n};\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(\n thing &&\n isFunction(thing.append) &&\n thing[toStringTag] === 'FormData' &&\n thing[iterator]\n );\n}\n\n/**\n * Recursively converts an object to a JSON-compatible object, handling circular references and Buffers.\n *\n * @param {Object} obj - The object to convert.\n * @returns {Object} The JSON-compatible object.\n */\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n //Buffer check\n if (isBuffer(source)) {\n return source;\n }\n\n if (!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n };\n\n return visit(obj, 0);\n};\n\n/**\n * Determines if a value is an async function.\n *\n * @param {*} thing - The value to test.\n * @returns {boolean} True if value is an async function, otherwise false.\n */\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\n/**\n * Determines if a value is thenable (has then and catch methods).\n *\n * @param {*} thing - The value to test.\n * @returns {boolean} True if value is thenable, otherwise false.\n */\nconst isThenable = (thing) =>\n thing &&\n (isObject(thing) || isFunction(thing)) &&\n isFunction(thing.then) &&\n isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\n/**\n * Provides a cross-platform setImmediate implementation.\n * Uses native setImmediate if available, otherwise falls back to postMessage or setTimeout.\n *\n * @param {boolean} setImmediateSupported - Whether setImmediate is supported.\n * @param {boolean} postMessageSupported - Whether postMessage is supported.\n * @returns {Function} A function to schedule a callback asynchronously.\n */\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported\n ? ((token, callbacks) => {\n _global.addEventListener(\n 'message',\n ({ source, data }) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n },\n false\n );\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, '*');\n };\n })(`axios@${Math.random()}`, [])\n : (cb) => setTimeout(cb);\n})(typeof setImmediate === 'function', isFunction(_global.postMessage));\n\n/**\n * Schedules a microtask or asynchronous callback as soon as possible.\n * Uses queueMicrotask if available, otherwise falls back to process.nextTick or _setImmediate.\n *\n * @type {Function}\n */\nconst asap =\n typeof queueMicrotask !== 'undefined'\n ? queueMicrotask.bind(_global)\n : (typeof process !== 'undefined' && process.nextTick) || _setImmediate;\n\n// *********************\n\nconst isIterable = (thing) => thing != null && isFunction(thing[iterator]);\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isEmptyObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isReactNativeBlob,\n isReactNative,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap,\n isIterable,\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\nclass AxiosError extends Error {\n static from(error, code, config, request, response, customProps) {\n const axiosError = new AxiosError(error.message, code || error.code, config, request, response);\n axiosError.cause = error;\n axiosError.name = error.name;\n\n // Preserve status from the original error if not already set from response\n if (error.status != null && axiosError.status == null) {\n axiosError.status = error.status;\n }\n\n customProps && Object.assign(axiosError, customProps);\n return axiosError;\n }\n\n /**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\n constructor(message, code, config, request, response) {\n super(message);\n\n // Make message enumerable to maintain backward compatibility\n // The native Error constructor sets message as non-enumerable,\n // but axios < v1.13.3 had it as enumerable\n Object.defineProperty(this, 'message', {\n value: message,\n enumerable: true,\n writable: true,\n configurable: true,\n });\n\n this.name = 'AxiosError';\n this.isAxiosError = true;\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status;\n }\n }\n\n toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.status,\n };\n }\n}\n\n// This can be changed to static properties as soon as the parser options in .eslint.cjs are updated.\nAxiosError.ERR_BAD_OPTION_VALUE = 'ERR_BAD_OPTION_VALUE';\nAxiosError.ERR_BAD_OPTION = 'ERR_BAD_OPTION';\nAxiosError.ECONNABORTED = 'ECONNABORTED';\nAxiosError.ETIMEDOUT = 'ETIMEDOUT';\nAxiosError.ERR_NETWORK = 'ERR_NETWORK';\nAxiosError.ERR_FR_TOO_MANY_REDIRECTS = 'ERR_FR_TOO_MANY_REDIRECTS';\nAxiosError.ERR_DEPRECATED = 'ERR_DEPRECATED';\nAxiosError.ERR_BAD_RESPONSE = 'ERR_BAD_RESPONSE';\nAxiosError.ERR_BAD_REQUEST = 'ERR_BAD_REQUEST';\nAxiosError.ERR_CANCELED = 'ERR_CANCELED';\nAxiosError.ERR_NOT_SUPPORT = 'ERR_NOT_SUPPORT';\nAxiosError.ERR_INVALID_URL = 'ERR_INVALID_URL';\nAxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED = 'ERR_FORM_DATA_DEPTH_EXCEEDED';\n\nexport default AxiosError;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path\n .concat(key)\n .map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n })\n .join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(\n options,\n {\n metaTokens: true,\n dots: false,\n indexes: false,\n },\n false,\n function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n }\n );\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || (typeof Blob !== 'undefined' && Blob);\n const maxDepth = options.maxDepth === undefined ? 100 : options.maxDepth;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (utils.isBoolean(value)) {\n return value.toString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (utils.isReactNative(formData) && utils.isReactNativeBlob(value)) {\n formData.append(renderKey(path, key, dots), convertValue(value));\n return false;\n }\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value)))\n ) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) &&\n formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true\n ? renderKey([key], index, dots)\n : indexes === null\n ? key\n : key + '[]',\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable,\n });\n\n function build(value, path, depth = 0) {\n if (utils.isUndefined(value)) return;\n\n if (depth > maxDepth) {\n throw new AxiosError(\n 'Object is too deeply nested (' + depth + ' levels). Max depth: ' + maxDepth,\n AxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED\n );\n }\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result =\n !(utils.isUndefined(el) || el === null) &&\n visitor.call(formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers);\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key], depth + 1);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder\n ? function (value) {\n return encoder.call(this, value, encode);\n }\n : encode;\n\n return this._pairs\n .map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '')\n .join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces URL-encoded forms of `:`, `$`, `,`, and spaces with\n * their plain counterparts (`:`, `$`, `,`, `+`).\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val)\n .replace(/%3A/gi, ':')\n .replace(/%24/g, '$')\n .replace(/%2C/gi, ',')\n .replace(/%20/g, '+');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?(object|Function)} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n if (!params) {\n return url;\n }\n\n const _encode = (options && options.encode) || encode;\n\n const _options = utils.isFunction(options)\n ? {\n serialize: options,\n }\n : options;\n\n const serializeFn = _options && _options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, _options);\n } else {\n serializedParams = utils.isURLSearchParams(params)\n ? params.toString()\n : new AxiosURLSearchParams(params, _options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf('#');\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n * @param {Object} options The options for the interceptor, synchronous and runWhen\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null,\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {void}\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false,\n legacyInterceptorReqResOrdering: true,\n};\n","import URLSearchParams from './classes/URLSearchParams.js';\nimport FormData from './classes/FormData.js';\nimport Blob from './classes/Blob.js';\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob,\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data'],\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict';\n\nexport default typeof Blob !== 'undefined' ? Blob : null;\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = (typeof navigator === 'object' && navigator) || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv =\n hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = (hasBrowserEnv && window.location.href) || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n _navigator as navigator,\n origin,\n};\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform,\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map((match) => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = utils.isArray(target[name])\n ? target[name].concat(value)\n : [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\nconst own = (obj, key) => (obj != null && utils.hasOwnProp(obj, key) ? obj[key] : undefined);\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [\n function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data) ||\n utils.isReadableStream(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n const formSerializer = own(this, 'formSerializer');\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, formSerializer).toString();\n }\n\n if (\n (isFileList = utils.isFileList(data)) ||\n contentType.indexOf('multipart/form-data') > -1\n ) {\n const env = own(this, 'env');\n const _FormData = env && env.FormData;\n\n return toFormData(\n isFileList ? { 'files[]': data } : data,\n _FormData && new _FormData(),\n formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n },\n ],\n\n transformResponse: [\n function transformResponse(data) {\n const transitional = own(this, 'transitional') || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const responseType = own(this, 'responseType');\n const JSONRequested = responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (\n data &&\n utils.isString(data) &&\n ((forcedJSONParsing && !responseType) || JSONRequested)\n ) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data, own(this, 'parseReviver'));\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, own(this, 'response'));\n }\n throw e;\n }\n }\n }\n\n return data;\n },\n ],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob,\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n Accept: 'application/json, text/plain, */*',\n 'Content-Type': undefined,\n },\n },\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), {\n visitor: function (value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n },\n ...options,\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age',\n 'authorization',\n 'content-length',\n 'content-type',\n 'etag',\n 'expires',\n 'from',\n 'host',\n 'if-modified-since',\n 'if-unmodified-since',\n 'last-modified',\n 'location',\n 'max-forwards',\n 'proxy-authorization',\n 'referer',\n 'retry-after',\n 'user-agent',\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default (rawHeaders) => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders &&\n rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nconst INVALID_HEADER_VALUE_CHARS_RE = /[^\\x09\\x20-\\x7E\\x80-\\xFF]/g;\n\nfunction trimSPorHTAB(str) {\n let start = 0;\n let end = str.length;\n\n while (start < end) {\n const code = str.charCodeAt(start);\n\n if (code !== 0x09 && code !== 0x20) {\n break;\n }\n\n start += 1;\n }\n\n while (end > start) {\n const code = str.charCodeAt(end - 1);\n\n if (code !== 0x09 && code !== 0x20) {\n break;\n }\n\n end -= 1;\n }\n\n return start === 0 && end === str.length ? str : str.slice(start, end);\n}\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction sanitizeHeaderValue(str) {\n return trimSPorHTAB(str.replace(INVALID_HEADER_VALUE_CHARS_RE, ''));\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : sanitizeHeaderValue(String(value));\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header\n .trim()\n .toLowerCase()\n .replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach((methodName) => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function (arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true,\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if (\n !key ||\n self[key] === undefined ||\n _rewrite === true ||\n (_rewrite === undefined && self[key] !== false)\n ) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite);\n } else if (utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isObject(header) && utils.isIterable(header)) {\n let obj = {},\n dest,\n key;\n for (const entry of header) {\n if (!utils.isArray(entry)) {\n throw TypeError('Object iterator must return a key-value pair');\n }\n\n obj[(key = entry[0])] = (dest = obj[key])\n ? utils.isArray(dest)\n ? [...dest, entry[1]]\n : [dest, entry[1]]\n : entry[1];\n }\n\n setHeaders(obj, valueOrRewrite);\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(\n key &&\n this[key] !== undefined &&\n (!matcher || matchHeaderValue(this, this[key], key, matcher))\n );\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if (!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null &&\n value !== false &&\n (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON())\n .map(([header, value]) => header + ': ' + value)\n .join('\\n');\n }\n\n getSetCookie() {\n return this.get('set-cookie') || [];\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals =\n (this[$internals] =\n this[$internals] =\n {\n accessors: {},\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor([\n 'Content-Type',\n 'Content-Length',\n 'Accept',\n 'Accept-Encoding',\n 'User-Agent',\n 'Authorization',\n]);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({ value }, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n },\n };\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from '../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\n\nclass CanceledError extends AxiosError {\n /**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\n constructor(message, config, request) {\n super(message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n this.__CANCEL__ = true;\n }\n}\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(\n new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][\n Math.floor(response.status / 100) - 4\n ],\n response.config,\n response.request,\n response\n )\n );\n }\n}\n","import speedometer from './speedometer.js';\nimport throttle from './throttle.js';\nimport utils from '../utils.js';\n\nexport const progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle((e) => {\n const rawLoaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const loaded = total != null ? Math.min(rawLoaded, total) : rawLoaded;\n const progressBytes = Math.max(0, loaded - bytesNotified);\n const rate = _speedometer(progressBytes);\n\n bytesNotified = Math.max(bytesNotified, loaded);\n\n const data = {\n loaded,\n total,\n progress: total ? loaded / total : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true,\n };\n\n listener(data);\n }, freq);\n};\n\nexport const progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [\n (loaded) =>\n throttled[0]({\n lengthComputable,\n total,\n loaded,\n }),\n throttled[1],\n ];\n};\n\nexport const asyncDecorator =\n (fn) =>\n (...args) =>\n utils.asap(() => fn(...args));\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round((bytesCount * 1000) / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn(...args);\n };\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if (passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs);\n }, threshold - passed);\n }\n }\n };\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nexport default throttle;\n","import platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv\n ? ((origin, isMSIE) => (url) => {\n url = new URL(url, platform.origin);\n\n return (\n origin.protocol === url.protocol &&\n origin.host === url.host &&\n (isMSIE || origin.port === url.port)\n );\n })(\n new URL(platform.origin),\n platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)\n )\n : () => true;\n","import utils from '../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv\n ? // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure, sameSite) {\n if (typeof document === 'undefined') return;\n\n const cookie = [`${name}=${encodeURIComponent(value)}`];\n\n if (utils.isNumber(expires)) {\n cookie.push(`expires=${new Date(expires).toUTCString()}`);\n }\n if (utils.isString(path)) {\n cookie.push(`path=${path}`);\n }\n if (utils.isString(domain)) {\n cookie.push(`domain=${domain}`);\n }\n if (secure === true) {\n cookie.push('secure');\n }\n if (utils.isString(sameSite)) {\n cookie.push(`SameSite=${sameSite}`);\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n if (typeof document === 'undefined') return null;\n const match = document.cookie.match(new RegExp('(?:^|; )' + name + '=([^;]*)'));\n return match ? decodeURIComponent(match[1]) : null;\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000, '/');\n },\n }\n : // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {},\n };\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) {\n let isRelativeUrl = !isAbsoluteURL(requestedURL);\n if (baseURL && (isRelativeUrl || allowAbsoluteUrls === false)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n if (typeof url !== 'string') {\n return false;\n }\n\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst headersToObject = (thing) => (thing instanceof AxiosHeaders ? { ...thing } : thing);\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, prop, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({ caseless }, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(a, b, prop, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, prop, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, prop, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (utils.hasOwnProp(config2, prop)) {\n return getMergedValue(a, b);\n } else if (utils.hasOwnProp(config1, prop)) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b, prop) =>\n mergeDeepProperties(headersToObject(a), headersToObject(b), prop, true),\n };\n\n utils.forEach(Object.keys({ ...config1, ...config2 }), function computeConfigValue(prop) {\n if (prop === '__proto__' || prop === 'constructor' || prop === 'prototype') return;\n const merge = utils.hasOwnProp(mergeMap, prop) ? mergeMap[prop] : mergeDeepProperties;\n const a = utils.hasOwnProp(config1, prop) ? config1[prop] : undefined;\n const b = utils.hasOwnProp(config2, prop) ? config2[prop] : undefined;\n const configValue = merge(a, b, prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","import platform from '../platform/index.js';\nimport utils from '../utils.js';\nimport isURLSameOrigin from './isURLSameOrigin.js';\nimport cookies from './cookies.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport mergeConfig from '../core/mergeConfig.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport buildURL from './buildURL.js';\n\nexport default (config) => {\n const newConfig = mergeConfig({}, config);\n\n let { data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth } = newConfig;\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(\n buildFullPath(newConfig.baseURL, newConfig.url, newConfig.allowAbsoluteUrls),\n config.params,\n config.paramsSerializer\n );\n\n // HTTP basic authentication\n if (auth) {\n headers.set(\n 'Authorization',\n 'Basic ' +\n btoa(\n (auth.username || '') +\n ':' +\n (auth.password ? unescape(encodeURIComponent(auth.password)) : '')\n )\n );\n }\n\n if (utils.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // browser handles it\n } else if (utils.isFunction(data.getHeaders)) {\n // Node.js FormData (like form-data package)\n const formHeaders = data.getHeaders();\n // Only set safe headers to avoid overwriting security headers\n const allowedHeaders = ['content-type', 'content-length'];\n Object.entries(formHeaders).forEach(([key, val]) => {\n if (allowedHeaders.includes(key.toLowerCase())) {\n headers.set(key, val);\n }\n });\n }\n }\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n if (utils.isFunction(withXSRFToken)) {\n withXSRFToken = withXSRFToken(newConfig);\n }\n\n // Strict boolean check — prevents proto-pollution gadgets (e.g. Object.prototype.withXSRFToken = 1)\n // and misconfigurations (e.g. \"false\") from short-circuiting the same-origin check and leaking\n // the XSRF token cross-origin. See GHSA-xx6v-rp6x-q39c.\n const shouldSendXSRF =\n withXSRFToken === true ||\n (withXSRFToken == null && isURLSameOrigin(newConfig.url));\n\n if (shouldSendXSRF) {\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n};\n","import utils from '../utils.js';\nimport settle from '../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport { progressEventReducer } from '../helpers/progressEventReducer.js';\nimport resolveConfig from '../helpers/resolveConfig.js';\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported &&\n function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let { responseType, onUploadProgress, onDownloadProgress } = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData =\n !responseType || responseType === 'text' || responseType === 'json'\n ? request.responseText\n : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request,\n };\n\n settle(\n function _resolve(value) {\n resolve(value);\n done();\n },\n function _reject(err) {\n reject(err);\n done();\n },\n response\n );\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (\n request.status === 0 &&\n !(request.responseURL && request.responseURL.indexOf('file:') === 0)\n ) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError(event) {\n // Browsers deliver a ProgressEvent in XHR onerror\n // (message may be empty; when present, surface it)\n // See https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/error_event\n const msg = event && event.message ? event.message : 'Network Error';\n const err = new AxiosError(msg, AxiosError.ERR_NETWORK, config, request);\n // attach the underlying event for consumers who want details\n err.event = event || null;\n reject(err);\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout\n ? 'timeout of ' + _config.timeout + 'ms exceeded'\n : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(\n new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request\n )\n );\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n [downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true);\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n [uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress);\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = (cancel) => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted\n ? onCanceled()\n : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(\n new AxiosError(\n 'Unsupported protocol ' + protocol + ':',\n AxiosError.ERR_BAD_REQUEST,\n config\n )\n );\n return;\n }\n\n // Send the request\n request.send(requestData || null);\n });\n };\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return (match && match[1]) || '';\n}\n","import CanceledError from '../cancel/CanceledError.js';\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\nconst composeSignals = (signals, timeout) => {\n const { length } = (signals = signals ? signals.filter(Boolean) : []);\n\n if (timeout || length) {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(\n err instanceof AxiosError\n ? err\n : new CanceledError(err instanceof Error ? err.message : err)\n );\n }\n };\n\n let timer =\n timeout &&\n setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout of ${timeout}ms exceeded`, AxiosError.ETIMEDOUT));\n }, timeout);\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach((signal) => {\n signal.unsubscribe\n ? signal.unsubscribe(onabort)\n : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n }\n };\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n const { signal } = controller;\n\n signal.unsubscribe = () => utils.asap(unsubscribe);\n\n return signal;\n }\n};\n\nexport default composeSignals;\n","export const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n};\n\nexport const readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n};\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const { done, value } = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n};\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n };\n\n return new ReadableStream(\n {\n async pull(controller) {\n try {\n const { done, value } = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = (bytes += len);\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n },\n },\n {\n highWaterMark: 2,\n }\n );\n};\n","import platform from '../platform/index.js';\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport composeSignals from '../helpers/composeSignals.js';\nimport { trackStream } from '../helpers/trackStream.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport {\n progressEventReducer,\n progressEventDecorator,\n asyncDecorator,\n} from '../helpers/progressEventReducer.js';\nimport resolveConfig from '../helpers/resolveConfig.js';\nimport settle from '../core/settle.js';\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst { isFunction } = utils;\n\nconst globalFetchAPI = (({ Request, Response }) => ({\n Request,\n Response,\n}))(utils.global);\n\nconst { ReadableStream, TextEncoder } = utils.global;\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false;\n }\n};\n\nconst factory = (env) => {\n env = utils.merge.call(\n {\n skipUndefined: true,\n },\n globalFetchAPI,\n env\n );\n\n const { fetch: envFetch, Request, Response } = env;\n const isFetchSupported = envFetch ? isFunction(envFetch) : typeof fetch === 'function';\n const isRequestSupported = isFunction(Request);\n const isResponseSupported = isFunction(Response);\n\n if (!isFetchSupported) {\n return false;\n }\n\n const isReadableStreamSupported = isFetchSupported && isFunction(ReadableStream);\n\n const encodeText =\n isFetchSupported &&\n (typeof TextEncoder === 'function'\n ? (\n (encoder) => (str) =>\n encoder.encode(str)\n )(new TextEncoder())\n : async (str) => new Uint8Array(await new Request(str).arrayBuffer()));\n\n const supportsRequestStream =\n isRequestSupported &&\n isReadableStreamSupported &&\n test(() => {\n let duplexAccessed = false;\n\n const request = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n });\n\n const hasContentType = request.headers.has('Content-Type');\n\n if (request.body != null) {\n request.body.cancel();\n }\n\n return duplexAccessed && !hasContentType;\n });\n\n const supportsResponseStream =\n isResponseSupported &&\n isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n const resolvers = {\n stream: supportsResponseStream && ((res) => res.body),\n };\n\n isFetchSupported &&\n (() => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach((type) => {\n !resolvers[type] &&\n (resolvers[type] = (res, config) => {\n let method = res && res[type];\n\n if (method) {\n return method.call(res);\n }\n\n throw new AxiosError(\n `Response type '${type}' is not supported`,\n AxiosError.ERR_NOT_SUPPORT,\n config\n );\n });\n });\n })();\n\n const getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if (utils.isBlob(body)) {\n return body.size;\n }\n\n if (utils.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if (utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if (utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if (utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n };\n\n const resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n };\n\n return async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions,\n } = resolveConfig(config);\n\n let _fetch = envFetch || fetch;\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals(\n [signal, cancelToken && cancelToken.toAbortSignal()],\n timeout\n );\n\n let request = null;\n\n const unsubscribe =\n composedSignal &&\n composedSignal.unsubscribe &&\n (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress &&\n supportsRequestStream &&\n method !== 'get' &&\n method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: 'half',\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader);\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n }\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = isRequestSupported && 'credentials' in Request.prototype;\n\n // If data is FormData and Content-Type is multipart/form-data without boundary,\n // delete it so fetch can set it correctly with the boundary\n if (utils.isFormData(data)) {\n const contentType = headers.getContentType();\n if (\n contentType &&\n /^multipart\\/form-data/i.test(contentType) &&\n !/boundary=/i.test(contentType)\n ) {\n headers.delete('content-type');\n }\n }\n\n const resolvedOptions = {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: 'half',\n credentials: isCredentialsSupported ? withCredentials : undefined,\n };\n\n request = isRequestSupported && new Request(url, resolvedOptions);\n\n let response = await (isRequestSupported\n ? _fetch(request, fetchOptions)\n : _fetch(url, resolvedOptions));\n\n const isStreamResponse =\n supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach((prop) => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] =\n (onDownloadProgress &&\n progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n )) ||\n [];\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](\n response,\n config\n );\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request,\n });\n });\n } catch (err) {\n unsubscribe && unsubscribe();\n\n if (err && err.name === 'TypeError' && /Load failed|fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError(\n 'Network Error',\n AxiosError.ERR_NETWORK,\n config,\n request,\n err && err.response\n ),\n {\n cause: err.cause || err,\n }\n );\n }\n\n throw AxiosError.from(err, err && err.code, config, request, err && err.response);\n }\n };\n};\n\nconst seedCache = new Map();\n\nexport const getFetch = (config) => {\n let env = (config && config.env) || {};\n const { fetch, Request, Response } = env;\n const seeds = [Request, Response, fetch];\n\n let len = seeds.length,\n i = len,\n seed,\n target,\n map = seedCache;\n\n while (i--) {\n seed = seeds[i];\n target = map.get(seed);\n\n target === undefined && map.set(seed, (target = i ? new Map() : factory(env)));\n\n map = target;\n }\n\n return target;\n};\n\nconst adapter = getFetch();\n\nexport default adapter;\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport * as fetchAdapter from './fetch.js';\nimport AxiosError from '../core/AxiosError.js';\n\n/**\n * Known adapters mapping.\n * Provides environment-specific adapters for Axios:\n * - `http` for Node.js\n * - `xhr` for browsers\n * - `fetch` for fetch API-based requests\n *\n * @type {Object}\n */\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: {\n get: fetchAdapter.getFetch,\n },\n};\n\n// Assign adapter names for easier debugging and identification\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', { value });\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', { value });\n }\n});\n\n/**\n * Render a rejection reason string for unknown or unsupported adapters\n *\n * @param {string} reason\n * @returns {string}\n */\nconst renderReason = (reason) => `- ${reason}`;\n\n/**\n * Check if the adapter is resolved (function, null, or false)\n *\n * @param {Function|null|false} adapter\n * @returns {boolean}\n */\nconst isResolvedHandle = (adapter) =>\n utils.isFunction(adapter) || adapter === null || adapter === false;\n\n/**\n * Get the first suitable adapter from the provided list.\n * Tries each adapter in order until a supported one is found.\n * Throws an AxiosError if no adapter is suitable.\n *\n * @param {Array|string|Function} adapters - Adapter(s) by name or function.\n * @param {Object} config - Axios request configuration\n * @throws {AxiosError} If no suitable adapter is available\n * @returns {Function} The resolved adapter function\n */\nfunction getAdapter(adapters, config) {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const { length } = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter && (utils.isFunction(adapter) || (adapter = adapter.get(config)))) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n const reasons = Object.entries(rejectedReasons).map(\n ([id, state]) =>\n `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length\n ? reasons.length > 1\n ? 'since :\\n' + reasons.map(renderReason).join('\\n')\n : ' ' + renderReason(reasons[0])\n : 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n}\n\n/**\n * Exports Axios adapters and utility to resolve an adapter\n */\nexport default {\n /**\n * Resolve an adapter from a list of adapter names or functions.\n * @type {Function}\n */\n getAdapter,\n\n /**\n * Exposes all known adapters\n * @type {Object}\n */\n adapters: knownAdapters,\n};\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from '../adapters/adapters.js';\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(config, config.transformRequest);\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter, config);\n\n return adapter(config).then(\n function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(config, config.transformResponse, response);\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n },\n function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n }\n );\n}\n","export const VERSION = \"1.15.1\";","'use strict';\n\nimport { VERSION } from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return (\n '[Axios v' +\n VERSION +\n \"] Transitional option '\" +\n opt +\n \"'\" +\n desc +\n (message ? '. ' + message : '')\n );\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\nvalidators.spelling = function spelling(correctSpelling) {\n return (value, opt) => {\n // eslint-disable-next-line no-console\n console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);\n return true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError(\n 'option ' + opt + ' must be ' + result,\n AxiosError.ERR_BAD_OPTION_VALUE\n );\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators,\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\nimport transitionalDefaults from '../defaults/transitional.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig || {};\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager(),\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy = {};\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = (() => {\n if (!dummy.stack) {\n return '';\n }\n\n const firstNewlineIndex = dummy.stack.indexOf('\\n');\n\n return firstNewlineIndex === -1 ? '' : dummy.stack.slice(firstNewlineIndex + 1);\n })();\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack) {\n const firstNewlineIndex = stack.indexOf('\\n');\n const secondNewlineIndex =\n firstNewlineIndex === -1 ? -1 : stack.indexOf('\\n', firstNewlineIndex + 1);\n const stackWithoutTwoTopLines =\n secondNewlineIndex === -1 ? '' : stack.slice(secondNewlineIndex + 1);\n\n if (!String(err.stack).endsWith(stackWithoutTwoTopLines)) {\n err.stack += '\\n' + stack;\n }\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const { transitional, paramsSerializer, headers } = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(\n transitional,\n {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean),\n legacyInterceptorReqResOrdering: validators.transitional(validators.boolean),\n },\n false\n );\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer,\n };\n } else {\n validator.assertOptions(\n paramsSerializer,\n {\n encode: validators.function,\n serialize: validators.function,\n },\n true\n );\n }\n }\n\n // Set config.allowAbsoluteUrls\n if (config.allowAbsoluteUrls !== undefined) {\n // do nothing\n } else if (this.defaults.allowAbsoluteUrls !== undefined) {\n config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls;\n } else {\n config.allowAbsoluteUrls = true;\n }\n\n validator.assertOptions(\n config,\n {\n baseUrl: validators.spelling('baseURL'),\n withXsrfToken: validators.spelling('withXSRFToken'),\n },\n true\n );\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(headers.common, headers[config.method]);\n\n headers &&\n utils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], (method) => {\n delete headers[method];\n });\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n const transitional = config.transitional || transitionalDefaults;\n const legacyInterceptorReqResOrdering =\n transitional && transitional.legacyInterceptorReqResOrdering;\n\n if (legacyInterceptorReqResOrdering) {\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n } else {\n requestInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n }\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift(...requestInterceptorChain);\n chain.push(...responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function (url, config) {\n return this.request(\n mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data,\n })\n );\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(\n mergeConfig(config || {}, {\n method,\n headers: isForm\n ? {\n 'Content-Type': 'multipart/form-data',\n }\n : {},\n url,\n data,\n })\n );\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n WebServerIsDown: 521,\n ConnectionTimedOut: 522,\n OriginIsUnreachable: 523,\n TimeoutOccurred: 524,\n SslHandshakeFailed: 525,\n InvalidSslCertificate: 526,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport { VERSION } from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from './core/AxiosHeaders.js';\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, { allOwnKeys: true });\n\n // Copy context to instance\n utils.extend(instance, context, null, { allOwnKeys: true });\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = (thing) => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then((cancel) => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = (onfulfilled) => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise((resolve) => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel,\n };\n }\n}\n\nexport default CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * const args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && payload.isAxiosError === true;\n}\n","import axios from './lib/axios.js';\n\n// This module is intended to unwrap Axios default export as named.\n// Keep top-level export same with static properties\n// so that it can keep same with es module or cjs\nconst {\n Axios,\n AxiosError,\n CanceledError,\n isCancel,\n CancelToken,\n VERSION,\n all,\n Cancel,\n isAxiosError,\n spread,\n toFormData,\n AxiosHeaders,\n HttpStatusCode,\n formToJSON,\n getAdapter,\n mergeConfig,\n} = axios;\n\nexport {\n axios as default,\n Axios,\n AxiosError,\n CanceledError,\n isCancel,\n CancelToken,\n VERSION,\n all,\n Cancel,\n isAxiosError,\n spread,\n toFormData,\n AxiosHeaders,\n HttpStatusCode,\n formToJSON,\n getAdapter,\n mergeConfig,\n};\n"],"names":["bind","fn","thisArg","apply","arguments","toString","Object","prototype","getPrototypeOf","iterator","toStringTag","Symbol","kindOf","cache","create","thing","str","call","slice","toLowerCase","kindOfTest","type","typeOfTest","isArray","Array","isUndefined","isBuffer","val","constructor","isFunction","isArrayBuffer","isString","isNumber","isObject","isPlainObject","isDate","isFile","isBlob","isFileList","G","globalThis","self","window","global","FormDataCtor","FormData","undefined","isURLSearchParams","isReadableStream","isRequest","isResponse","isHeaders","map","forEach","obj","allOwnKeys","i","l","length","keys","getOwnPropertyNames","len","key","findKey","_key","_global","isContextDefined","context","isTypedArray","TypedArray","Uint8Array","isHTMLForm","hasOwnProperty","prop","isRegExp","reduceDescriptors","reducer","descriptors","getOwnPropertyDescriptors","reducedDescriptors","descriptor","name","ret","defineProperties","isAsyncFn","_setImmediate","setImmediateSupported","setImmediate","postMessageSupported","postMessage","token","Math","random","callbacks","addEventListener","source","data","shift","cb","push","setTimeout","asap","queueMicrotask","process","nextTick","utils$1","isFormData","proto","append","kind","isArrayBufferView","result","ArrayBuffer","isView","buffer","isBoolean","isEmptyObject","e","isReactNativeBlob","value","uri","isReactNative","formData","getParts","isStream","pipe","merge","caseless","skipUndefined","this","assignValue","targetKey","extend","a","b","defineProperty","writable","enumerable","configurable","trim","replace","stripBOM","content","charCodeAt","inherits","superConstructor","props","assign","toFlatObject","sourceObj","destObj","filter","propFilter","merged","endsWith","searchString","position","String","lastIndex","indexOf","toArray","arr","forEachEntry","_iterator","next","done","pair","matchAll","regExp","matches","exec","hasOwnProp","freezeMethods","set","Error","toObjectSet","arrayOrString","delimiter","define","split","toCamelCase","m","p1","p2","toUpperCase","noop","toFiniteNumber","defaultValue","Number","isFinite","isSpecCompliantForm","toJSONObject","stack","visit","target","reducedValue","isThenable","then","catch","isIterable","AxiosError","from","error","code","config","request","response","customProps","axiosError","message","cause","status","super","isAxiosError","toJSON","description","number","fileName","lineNumber","columnNumber","utils","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL","ERR_FORM_DATA_DEPTH_EXCEEDED","isVisitable","removeBrackets","renderKey","path","dots","concat","join","predicates","test","toFormData","options","TypeError","metaTokens","indexes","option","visitor","defaultVisitor","_Blob","Blob","maxDepth","useBlob","convertValue","toISOString","Buffer","JSON","stringify","some","isFlatArray","el","index","exposedHelpers","build","depth","pop","encode","charMap","encodeURIComponent","match","AxiosURLSearchParams","params","_pairs","buildURL","url","_encode","_options","serialize","serializeFn","serializedParams","hashmarkIndex","encoder","InterceptorManager","handlers","use","fulfilled","rejected","synchronous","runWhen","eject","id","clear","h","transitionalDefaults","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","legacyInterceptorReqResOrdering","platform$1","isBrowser","classes","URLSearchParams","protocols","hasBrowserEnv","document","_navigator","navigator","hasStandardBrowserEnv","product","hasStandardBrowserWebWorkerEnv","WorkerGlobalScope","importScripts","origin","location","href","platform","formDataToJSON","buildPath","isNumericKey","isLast","arrayToObject","entries","parsePropPath","own","defaults","transitional","adapter","transformRequest","headers","contentType","getContentType","hasJSONContentType","isObjectPayload","setContentType","formSerializer","helpers","isNode","toURLEncodedForm","env","_FormData","rawValue","parser","parse","stringifySafely","transformResponse","responseType","JSONRequested","strictJSONParsing","timeout","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","Accept","method","ignoreDuplicateOf","$internals","INVALID_HEADER_VALUE_CHARS_RE","normalizeHeader","header","normalizeValue","start","end","trimSPorHTAB","matchHeaderValue","isHeaderNameFilter","AxiosHeaders$1","valueOrRewrite","rewrite","setHeader","_value","_header","_rewrite","lHeader","setHeaders","rawHeaders","parsed","line","substring","parseHeaders","dest","entry","get","tokens","tokensRE","parseTokens","has","matcher","deleted","deleteHeader","normalize","format","normalized","w","char","formatHeader","targets","asStrings","getSetCookie","first","computed","accessor","accessors","defineAccessor","accessorName","methodName","arg1","arg2","arg3","buildAccessors","transformData","fns","AxiosHeaders","isCancel","__CANCEL__","mapped","headerValue","settle","resolve","reject","floor","progressEventReducer","listener","isDownloadStream","freq","bytesNotified","_speedometer","samplesCount","min","bytes","timestamps","firstSampleTS","head","tail","chunkLength","now","Date","startedAt","bytesCount","passed","round","speedometer","lastArgs","timer","timestamp","threshold","invoke","args","clearTimeout","throttle","rawLoaded","loaded","total","lengthComputable","progressBytes","max","rate","progress","estimated","event","progressEventDecorator","throttled","asyncDecorator","isURLSameOrigin","isMSIE","URL","protocol","host","port","userAgent","cookies","write","expires","domain","secure","sameSite","cookie","toUTCString","read","RegExp","decodeURIComponent","remove","buildFullPath","baseURL","requestedURL","allowAbsoluteUrls","isRelativeUrl","relativeURL","combineURLs","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","paramsSerializer","timeoutMessage","withCredentials","withXSRFToken","onUploadProgress","onDownloadProgress","decompress","beforeRedirect","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding","configValue","resolveConfig","newConfig","auth","btoa","username","password","unescape","getHeaders","formHeaders","allowedHeaders","includes","xsrfValue","xhrAdapter","XMLHttpRequest","Promise","_config","requestData","requestHeaders","onCanceled","uploadThrottled","downloadThrottled","flushUpload","flushDownload","unsubscribe","signal","removeEventListener","onloadend","responseHeaders","getAllResponseHeaders","err","responseText","statusText","open","onreadystatechange","readyState","responseURL","onabort","onerror","msg","ontimeout","timeoutErrorMessage","setRequestHeader","upload","cancel","CanceledError","abort","subscribe","aborted","parseProtocol","send","composeSignals","signals","Boolean","controller","AbortController","reason","streamChunk","chunk","chunkSize","byteLength","pos","readStream","async","stream","asyncIterator","reader","getReader","trackStream","onProgress","onFinish","iterable","readBytes","_onFinish","ReadableStream","pull","close","loadedBytes","enqueue","return","highWaterMark","globalFetchAPI","Request","Response","TextEncoder","factory","fetch","envFetch","isFetchSupported","isRequestSupported","isResponseSupported","isReadableStreamSupported","encodeText","arrayBuffer","supportsRequestStream","duplexAccessed","body","duplex","hasContentType","supportsResponseStream","resolvers","res","resolveBodyLength","getContentLength","size","_request","getBodyLength","fetchOptions","_fetch","composedSignal","toAbortSignal","requestContentLength","contentTypeHeader","flush","isCredentialsSupported","delete","resolvedOptions","credentials","isStreamResponse","responseContentLength","responseData","seedCache","Map","getFetch","seeds","seed","knownAdapters","http","xhr","fetchAdapter.getFetch","renderReason","isResolvedHandle","adapters","getAdapter","nameOrAdapter","rejectedReasons","reasons","state","s","throwIfCancellationRequested","throwIfRequested","dispatchRequest","VERSION","validators","deprecatedWarnings","validator","version","formatMessage","opt","desc","opts","console","warn","spelling","correctSpelling","assertOptions","schema","allowUnknown","Axios$1","instanceConfig","interceptors","configOrUrl","dummy","captureStackTrace","firstNewlineIndex","secondNewlineIndex","stackWithoutTwoTopLines","boolean","function","baseUrl","withXsrfToken","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","unshift","responseInterceptorChain","promise","chain","onFulfilled","onRejected","getUri","Axios","generateHTTPMethod","isForm","HttpStatusCode","Continue","SwitchingProtocols","Processing","EarlyHints","Ok","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","WebServerIsDown","ConnectionTimedOut","OriginIsUnreachable","TimeoutOccurred","SslHandshakeFailed","InvalidSslCertificate","axios","createInstance","defaultConfig","instance","CancelToken","executor","resolvePromise","_listeners","onfulfilled","_resolve","splice","c","Cancel","all","promises","spread","callback","payload","formToJSON","default"],"mappings":"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"} \ No newline at end of file diff --git a/server/api/node_modules/axios/dist/node/axios.cjs b/server/api/node_modules/axios/dist/node/axios.cjs new file mode 100644 index 0000000..68c552b --- /dev/null +++ b/server/api/node_modules/axios/dist/node/axios.cjs @@ -0,0 +1,4935 @@ +/*! Axios v1.15.1 Copyright (c) 2026 Matt Zabriskie and contributors */ +'use strict'; + +var FormData$1 = require('form-data'); +var crypto = require('crypto'); +var url = require('url'); +var http = require('http'); +var https = require('https'); +var http2 = require('http2'); +var util = require('util'); +var followRedirects = require('follow-redirects'); +var zlib = require('zlib'); +var stream = require('stream'); +var events = require('events'); + +/** + * Create a bound version of a function with a specified `this` context + * + * @param {Function} fn - The function to bind + * @param {*} thisArg - The value to be passed as the `this` parameter + * @returns {Function} A new function that will call the original function with the specified `this` context + */ +function bind(fn, thisArg) { + return function wrap() { + return fn.apply(thisArg, arguments); + }; +} + +// utils is a library of generic helper functions non-specific to axios + +const { + toString +} = Object.prototype; +const { + getPrototypeOf +} = Object; +const { + iterator, + toStringTag +} = Symbol; +const kindOf = (cache => thing => { + const str = toString.call(thing); + return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase()); +})(Object.create(null)); +const kindOfTest = type => { + type = type.toLowerCase(); + return thing => kindOf(thing) === type; +}; +const typeOfTest = type => thing => typeof thing === type; + +/** + * Determine if a value is a non-null object + * + * @param {Object} val The value to test + * + * @returns {boolean} True if value is an Array, otherwise false + */ +const { + isArray +} = Array; + +/** + * Determine if a value is undefined + * + * @param {*} val The value to test + * + * @returns {boolean} True if the value is undefined, otherwise false + */ +const isUndefined = typeOfTest('undefined'); + +/** + * Determine if a value is a Buffer + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a Buffer, otherwise false + */ +function isBuffer(val) { + return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor) && isFunction$1(val.constructor.isBuffer) && val.constructor.isBuffer(val); +} + +/** + * Determine if a value is an ArrayBuffer + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is an ArrayBuffer, otherwise false + */ +const isArrayBuffer = kindOfTest('ArrayBuffer'); + +/** + * Determine if a value is a view on an ArrayBuffer + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false + */ +function isArrayBufferView(val) { + let result; + if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) { + result = ArrayBuffer.isView(val); + } else { + result = val && val.buffer && isArrayBuffer(val.buffer); + } + return result; +} + +/** + * Determine if a value is a String + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a String, otherwise false + */ +const isString = typeOfTest('string'); + +/** + * Determine if a value is a Function + * + * @param {*} val The value to test + * @returns {boolean} True if value is a Function, otherwise false + */ +const isFunction$1 = typeOfTest('function'); + +/** + * Determine if a value is a Number + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a Number, otherwise false + */ +const isNumber = typeOfTest('number'); + +/** + * Determine if a value is an Object + * + * @param {*} thing The value to test + * + * @returns {boolean} True if value is an Object, otherwise false + */ +const isObject = thing => thing !== null && typeof thing === 'object'; + +/** + * Determine if a value is a Boolean + * + * @param {*} thing The value to test + * @returns {boolean} True if value is a Boolean, otherwise false + */ +const isBoolean = thing => thing === true || thing === false; + +/** + * Determine if a value is a plain Object + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a plain Object, otherwise false + */ +const isPlainObject = val => { + if (kindOf(val) !== 'object') { + return false; + } + const prototype = getPrototypeOf(val); + return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(toStringTag in val) && !(iterator in val); +}; + +/** + * Determine if a value is an empty object (safely handles Buffers) + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is an empty object, otherwise false + */ +const isEmptyObject = val => { + // Early return for non-objects or Buffers to prevent RangeError + if (!isObject(val) || isBuffer(val)) { + return false; + } + try { + return Object.keys(val).length === 0 && Object.getPrototypeOf(val) === Object.prototype; + } catch (e) { + // Fallback for any other objects that might cause RangeError with Object.keys() + return false; + } +}; + +/** + * Determine if a value is a Date + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a Date, otherwise false + */ +const isDate = kindOfTest('Date'); + +/** + * Determine if a value is a File + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a File, otherwise false + */ +const isFile = kindOfTest('File'); + +/** + * Determine if a value is a React Native Blob + * React Native "blob": an object with a `uri` attribute. Optionally, it can + * also have a `name` and `type` attribute to specify filename and content type + * + * @see https://github.com/facebook/react-native/blob/26684cf3adf4094eb6c405d345a75bf8c7c0bf88/Libraries/Network/FormData.js#L68-L71 + * + * @param {*} value The value to test + * + * @returns {boolean} True if value is a React Native Blob, otherwise false + */ +const isReactNativeBlob = value => { + return !!(value && typeof value.uri !== 'undefined'); +}; + +/** + * Determine if environment is React Native + * ReactNative `FormData` has a non-standard `getParts()` method + * + * @param {*} formData The formData to test + * + * @returns {boolean} True if environment is React Native, otherwise false + */ +const isReactNative = formData => formData && typeof formData.getParts !== 'undefined'; + +/** + * Determine if a value is a Blob + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a Blob, otherwise false + */ +const isBlob = kindOfTest('Blob'); + +/** + * Determine if a value is a FileList + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a File, otherwise false + */ +const isFileList = kindOfTest('FileList'); + +/** + * Determine if a value is a Stream + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a Stream, otherwise false + */ +const isStream = val => isObject(val) && isFunction$1(val.pipe); + +/** + * Determine if a value is a FormData + * + * @param {*} thing The value to test + * + * @returns {boolean} True if value is an FormData, otherwise false + */ +function getGlobal() { + if (typeof globalThis !== 'undefined') return globalThis; + if (typeof self !== 'undefined') return self; + if (typeof window !== 'undefined') return window; + if (typeof global !== 'undefined') return global; + return {}; +} +const G = getGlobal(); +const FormDataCtor = typeof G.FormData !== 'undefined' ? G.FormData : undefined; +const isFormData = thing => { + if (!thing) return false; + if (FormDataCtor && thing instanceof FormDataCtor) return true; + // Reject plain objects inheriting directly from Object.prototype so prototype-pollution gadgets can't spoof FormData (GHSA-6chq-wfr3-2hj9). + const proto = getPrototypeOf(thing); + if (!proto || proto === Object.prototype) return false; + if (!isFunction$1(thing.append)) return false; + const kind = kindOf(thing); + return kind === 'formdata' || + // detect form-data instance + kind === 'object' && isFunction$1(thing.toString) && thing.toString() === '[object FormData]'; +}; + +/** + * Determine if a value is a URLSearchParams object + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a URLSearchParams object, otherwise false + */ +const isURLSearchParams = kindOfTest('URLSearchParams'); +const [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest); + +/** + * Trim excess whitespace off the beginning and end of a string + * + * @param {String} str The String to trim + * + * @returns {String} The String freed of excess whitespace + */ +const trim = str => { + return str.trim ? str.trim() : str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ''); +}; +/** + * Iterate over an Array or an Object invoking a function for each item. + * + * If `obj` is an Array callback will be called passing + * the value, index, and complete array for each item. + * + * If 'obj' is an Object callback will be called passing + * the value, key, and complete object for each property. + * + * @param {Object|Array} obj The object to iterate + * @param {Function} fn The callback to invoke for each item + * + * @param {Object} [options] + * @param {Boolean} [options.allOwnKeys = false] + * @returns {any} + */ +function forEach(obj, fn, { + allOwnKeys = false +} = {}) { + // Don't bother if no value provided + if (obj === null || typeof obj === 'undefined') { + return; + } + let i; + let l; + + // Force an array if not already something iterable + if (typeof obj !== 'object') { + /*eslint no-param-reassign:0*/ + obj = [obj]; + } + if (isArray(obj)) { + // Iterate over array values + for (i = 0, l = obj.length; i < l; i++) { + fn.call(null, obj[i], i, obj); + } + } else { + // Buffer check + if (isBuffer(obj)) { + return; + } + + // Iterate over object keys + const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj); + const len = keys.length; + let key; + for (i = 0; i < len; i++) { + key = keys[i]; + fn.call(null, obj[key], key, obj); + } + } +} + +/** + * Finds a key in an object, case-insensitive, returning the actual key name. + * Returns null if the object is a Buffer or if no match is found. + * + * @param {Object} obj - The object to search. + * @param {string} key - The key to find (case-insensitive). + * @returns {?string} The actual key name if found, otherwise null. + */ +function findKey(obj, key) { + if (isBuffer(obj)) { + return null; + } + key = key.toLowerCase(); + const keys = Object.keys(obj); + let i = keys.length; + let _key; + while (i-- > 0) { + _key = keys[i]; + if (key === _key.toLowerCase()) { + return _key; + } + } + return null; +} +const _global = (() => { + /*eslint no-undef:0*/ + if (typeof globalThis !== 'undefined') return globalThis; + return typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : global; +})(); +const isContextDefined = context => !isUndefined(context) && context !== _global; + +/** + * Accepts varargs expecting each argument to be an object, then + * immutably merges the properties of each object and returns result. + * + * When multiple objects contain the same key the later object in + * the arguments list will take precedence. + * + * Example: + * + * ```js + * const result = merge({foo: 123}, {foo: 456}); + * console.log(result.foo); // outputs 456 + * ``` + * + * @param {Object} obj1 Object to merge + * + * @returns {Object} Result of all merge properties + */ +function merge(/* obj1, obj2, obj3, ... */ +) { + const { + caseless, + skipUndefined + } = isContextDefined(this) && this || {}; + const result = {}; + const assignValue = (val, key) => { + // Skip dangerous property names to prevent prototype pollution + if (key === '__proto__' || key === 'constructor' || key === 'prototype') { + return; + } + const targetKey = caseless && findKey(result, key) || key; + if (isPlainObject(result[targetKey]) && isPlainObject(val)) { + result[targetKey] = merge(result[targetKey], val); + } else if (isPlainObject(val)) { + result[targetKey] = merge({}, val); + } else if (isArray(val)) { + result[targetKey] = val.slice(); + } else if (!skipUndefined || !isUndefined(val)) { + result[targetKey] = val; + } + }; + for (let i = 0, l = arguments.length; i < l; i++) { + arguments[i] && forEach(arguments[i], assignValue); + } + return result; +} + +/** + * Extends object a by mutably adding to it the properties of object b. + * + * @param {Object} a The object to be extended + * @param {Object} b The object to copy properties from + * @param {Object} thisArg The object to bind function to + * + * @param {Object} [options] + * @param {Boolean} [options.allOwnKeys] + * @returns {Object} The resulting value of object a + */ +const extend = (a, b, thisArg, { + allOwnKeys +} = {}) => { + forEach(b, (val, key) => { + if (thisArg && isFunction$1(val)) { + Object.defineProperty(a, key, { + value: bind(val, thisArg), + writable: true, + enumerable: true, + configurable: true + }); + } else { + Object.defineProperty(a, key, { + value: val, + writable: true, + enumerable: true, + configurable: true + }); + } + }, { + allOwnKeys + }); + return a; +}; + +/** + * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM) + * + * @param {string} content with BOM + * + * @returns {string} content value without BOM + */ +const stripBOM = content => { + if (content.charCodeAt(0) === 0xfeff) { + content = content.slice(1); + } + return content; +}; + +/** + * Inherit the prototype methods from one constructor into another + * @param {function} constructor + * @param {function} superConstructor + * @param {object} [props] + * @param {object} [descriptors] + * + * @returns {void} + */ +const inherits = (constructor, superConstructor, props, descriptors) => { + constructor.prototype = Object.create(superConstructor.prototype, descriptors); + Object.defineProperty(constructor.prototype, 'constructor', { + value: constructor, + writable: true, + enumerable: false, + configurable: true + }); + Object.defineProperty(constructor, 'super', { + value: superConstructor.prototype + }); + props && Object.assign(constructor.prototype, props); +}; + +/** + * Resolve object with deep prototype chain to a flat object + * @param {Object} sourceObj source object + * @param {Object} [destObj] + * @param {Function|Boolean} [filter] + * @param {Function} [propFilter] + * + * @returns {Object} + */ +const toFlatObject = (sourceObj, destObj, filter, propFilter) => { + let props; + let i; + let prop; + const merged = {}; + destObj = destObj || {}; + // eslint-disable-next-line no-eq-null,eqeqeq + if (sourceObj == null) return destObj; + do { + props = Object.getOwnPropertyNames(sourceObj); + i = props.length; + while (i-- > 0) { + prop = props[i]; + if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) { + destObj[prop] = sourceObj[prop]; + merged[prop] = true; + } + } + sourceObj = filter !== false && getPrototypeOf(sourceObj); + } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype); + return destObj; +}; + +/** + * Determines whether a string ends with the characters of a specified string + * + * @param {String} str + * @param {String} searchString + * @param {Number} [position= 0] + * + * @returns {boolean} + */ +const endsWith = (str, searchString, position) => { + str = String(str); + if (position === undefined || position > str.length) { + position = str.length; + } + position -= searchString.length; + const lastIndex = str.indexOf(searchString, position); + return lastIndex !== -1 && lastIndex === position; +}; + +/** + * Returns new array from array like object or null if failed + * + * @param {*} [thing] + * + * @returns {?Array} + */ +const toArray = thing => { + if (!thing) return null; + if (isArray(thing)) return thing; + let i = thing.length; + if (!isNumber(i)) return null; + const arr = new Array(i); + while (i-- > 0) { + arr[i] = thing[i]; + } + return arr; +}; + +/** + * Checking if the Uint8Array exists and if it does, it returns a function that checks if the + * thing passed in is an instance of Uint8Array + * + * @param {TypedArray} + * + * @returns {Array} + */ +// eslint-disable-next-line func-names +const isTypedArray = (TypedArray => { + // eslint-disable-next-line func-names + return thing => { + return TypedArray && thing instanceof TypedArray; + }; +})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array)); + +/** + * For each entry in the object, call the function with the key and value. + * + * @param {Object} obj - The object to iterate over. + * @param {Function} fn - The function to call for each entry. + * + * @returns {void} + */ +const forEachEntry = (obj, fn) => { + const generator = obj && obj[iterator]; + const _iterator = generator.call(obj); + let result; + while ((result = _iterator.next()) && !result.done) { + const pair = result.value; + fn.call(obj, pair[0], pair[1]); + } +}; + +/** + * It takes a regular expression and a string, and returns an array of all the matches + * + * @param {string} regExp - The regular expression to match against. + * @param {string} str - The string to search. + * + * @returns {Array} + */ +const matchAll = (regExp, str) => { + let matches; + const arr = []; + while ((matches = regExp.exec(str)) !== null) { + arr.push(matches); + } + return arr; +}; + +/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */ +const isHTMLForm = kindOfTest('HTMLFormElement'); +const toCamelCase = str => { + return str.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g, function replacer(m, p1, p2) { + return p1.toUpperCase() + p2; + }); +}; + +/* Creating a function that will check if an object has a property. */ +const hasOwnProperty = (({ + hasOwnProperty +}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype); + +/** + * Determine if a value is a RegExp object + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a RegExp object, otherwise false + */ +const isRegExp = kindOfTest('RegExp'); +const reduceDescriptors = (obj, reducer) => { + const descriptors = Object.getOwnPropertyDescriptors(obj); + const reducedDescriptors = {}; + forEach(descriptors, (descriptor, name) => { + let ret; + if ((ret = reducer(descriptor, name, obj)) !== false) { + reducedDescriptors[name] = ret || descriptor; + } + }); + Object.defineProperties(obj, reducedDescriptors); +}; + +/** + * Makes all methods read-only + * @param {Object} obj + */ + +const freezeMethods = obj => { + reduceDescriptors(obj, (descriptor, name) => { + // skip restricted props in strict mode + if (isFunction$1(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) { + return false; + } + const value = obj[name]; + if (!isFunction$1(value)) return; + descriptor.enumerable = false; + if ('writable' in descriptor) { + descriptor.writable = false; + return; + } + if (!descriptor.set) { + descriptor.set = () => { + throw Error("Can not rewrite read-only method '" + name + "'"); + }; + } + }); +}; + +/** + * Converts an array or a delimited string into an object set with values as keys and true as values. + * Useful for fast membership checks. + * + * @param {Array|string} arrayOrString - The array or string to convert. + * @param {string} delimiter - The delimiter to use if input is a string. + * @returns {Object} An object with keys from the array or string, values set to true. + */ +const toObjectSet = (arrayOrString, delimiter) => { + const obj = {}; + const define = arr => { + arr.forEach(value => { + obj[value] = true; + }); + }; + isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter)); + return obj; +}; +const noop = () => {}; +const toFiniteNumber = (value, defaultValue) => { + return value != null && Number.isFinite(value = +value) ? value : defaultValue; +}; + +/** + * If the thing is a FormData object, return true, otherwise return false. + * + * @param {unknown} thing - The thing to check. + * + * @returns {boolean} + */ +function isSpecCompliantForm(thing) { + return !!(thing && isFunction$1(thing.append) && thing[toStringTag] === 'FormData' && thing[iterator]); +} + +/** + * Recursively converts an object to a JSON-compatible object, handling circular references and Buffers. + * + * @param {Object} obj - The object to convert. + * @returns {Object} The JSON-compatible object. + */ +const toJSONObject = obj => { + const stack = new Array(10); + const visit = (source, i) => { + if (isObject(source)) { + if (stack.indexOf(source) >= 0) { + return; + } + + //Buffer check + if (isBuffer(source)) { + return source; + } + if (!('toJSON' in source)) { + stack[i] = source; + const target = isArray(source) ? [] : {}; + forEach(source, (value, key) => { + const reducedValue = visit(value, i + 1); + !isUndefined(reducedValue) && (target[key] = reducedValue); + }); + stack[i] = undefined; + return target; + } + } + return source; + }; + return visit(obj, 0); +}; + +/** + * Determines if a value is an async function. + * + * @param {*} thing - The value to test. + * @returns {boolean} True if value is an async function, otherwise false. + */ +const isAsyncFn = kindOfTest('AsyncFunction'); + +/** + * Determines if a value is thenable (has then and catch methods). + * + * @param {*} thing - The value to test. + * @returns {boolean} True if value is thenable, otherwise false. + */ +const isThenable = thing => thing && (isObject(thing) || isFunction$1(thing)) && isFunction$1(thing.then) && isFunction$1(thing.catch); + +// original code +// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34 + +/** + * Provides a cross-platform setImmediate implementation. + * Uses native setImmediate if available, otherwise falls back to postMessage or setTimeout. + * + * @param {boolean} setImmediateSupported - Whether setImmediate is supported. + * @param {boolean} postMessageSupported - Whether postMessage is supported. + * @returns {Function} A function to schedule a callback asynchronously. + */ +const _setImmediate = ((setImmediateSupported, postMessageSupported) => { + if (setImmediateSupported) { + return setImmediate; + } + return postMessageSupported ? ((token, callbacks) => { + _global.addEventListener('message', ({ + source, + data + }) => { + if (source === _global && data === token) { + callbacks.length && callbacks.shift()(); + } + }, false); + return cb => { + callbacks.push(cb); + _global.postMessage(token, '*'); + }; + })(`axios@${Math.random()}`, []) : cb => setTimeout(cb); +})(typeof setImmediate === 'function', isFunction$1(_global.postMessage)); + +/** + * Schedules a microtask or asynchronous callback as soon as possible. + * Uses queueMicrotask if available, otherwise falls back to process.nextTick or _setImmediate. + * + * @type {Function} + */ +const asap = typeof queueMicrotask !== 'undefined' ? queueMicrotask.bind(_global) : typeof process !== 'undefined' && process.nextTick || _setImmediate; + +// ********************* + +const isIterable = thing => thing != null && isFunction$1(thing[iterator]); +var utils$1 = { + isArray, + isArrayBuffer, + isBuffer, + isFormData, + isArrayBufferView, + isString, + isNumber, + isBoolean, + isObject, + isPlainObject, + isEmptyObject, + isReadableStream, + isRequest, + isResponse, + isHeaders, + isUndefined, + isDate, + isFile, + isReactNativeBlob, + isReactNative, + isBlob, + isRegExp, + isFunction: isFunction$1, + isStream, + isURLSearchParams, + isTypedArray, + isFileList, + forEach, + merge, + extend, + trim, + stripBOM, + inherits, + toFlatObject, + kindOf, + kindOfTest, + endsWith, + toArray, + forEachEntry, + matchAll, + isHTMLForm, + hasOwnProperty, + hasOwnProp: hasOwnProperty, + // an alias to avoid ESLint no-prototype-builtins detection + reduceDescriptors, + freezeMethods, + toObjectSet, + toCamelCase, + noop, + toFiniteNumber, + findKey, + global: _global, + isContextDefined, + isSpecCompliantForm, + toJSONObject, + isAsyncFn, + isThenable, + setImmediate: _setImmediate, + asap, + isIterable +}; + +class AxiosError extends Error { + static from(error, code, config, request, response, customProps) { + const axiosError = new AxiosError(error.message, code || error.code, config, request, response); + axiosError.cause = error; + axiosError.name = error.name; + + // Preserve status from the original error if not already set from response + if (error.status != null && axiosError.status == null) { + axiosError.status = error.status; + } + customProps && Object.assign(axiosError, customProps); + return axiosError; + } + + /** + * Create an Error with the specified message, config, error code, request and response. + * + * @param {string} message The error message. + * @param {string} [code] The error code (for example, 'ECONNABORTED'). + * @param {Object} [config] The config. + * @param {Object} [request] The request. + * @param {Object} [response] The response. + * + * @returns {Error} The created error. + */ + constructor(message, code, config, request, response) { + super(message); + + // Make message enumerable to maintain backward compatibility + // The native Error constructor sets message as non-enumerable, + // but axios < v1.13.3 had it as enumerable + Object.defineProperty(this, 'message', { + value: message, + enumerable: true, + writable: true, + configurable: true + }); + this.name = 'AxiosError'; + this.isAxiosError = true; + code && (this.code = code); + config && (this.config = config); + request && (this.request = request); + if (response) { + this.response = response; + this.status = response.status; + } + } + toJSON() { + return { + // Standard + message: this.message, + name: this.name, + // Microsoft + description: this.description, + number: this.number, + // Mozilla + fileName: this.fileName, + lineNumber: this.lineNumber, + columnNumber: this.columnNumber, + stack: this.stack, + // Axios + config: utils$1.toJSONObject(this.config), + code: this.code, + status: this.status + }; + } +} + +// This can be changed to static properties as soon as the parser options in .eslint.cjs are updated. +AxiosError.ERR_BAD_OPTION_VALUE = 'ERR_BAD_OPTION_VALUE'; +AxiosError.ERR_BAD_OPTION = 'ERR_BAD_OPTION'; +AxiosError.ECONNABORTED = 'ECONNABORTED'; +AxiosError.ETIMEDOUT = 'ETIMEDOUT'; +AxiosError.ERR_NETWORK = 'ERR_NETWORK'; +AxiosError.ERR_FR_TOO_MANY_REDIRECTS = 'ERR_FR_TOO_MANY_REDIRECTS'; +AxiosError.ERR_DEPRECATED = 'ERR_DEPRECATED'; +AxiosError.ERR_BAD_RESPONSE = 'ERR_BAD_RESPONSE'; +AxiosError.ERR_BAD_REQUEST = 'ERR_BAD_REQUEST'; +AxiosError.ERR_CANCELED = 'ERR_CANCELED'; +AxiosError.ERR_NOT_SUPPORT = 'ERR_NOT_SUPPORT'; +AxiosError.ERR_INVALID_URL = 'ERR_INVALID_URL'; +AxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED = 'ERR_FORM_DATA_DEPTH_EXCEEDED'; + +/** + * Determines if the given thing is a array or js object. + * + * @param {string} thing - The object or array to be visited. + * + * @returns {boolean} + */ +function isVisitable(thing) { + return utils$1.isPlainObject(thing) || utils$1.isArray(thing); +} + +/** + * It removes the brackets from the end of a string + * + * @param {string} key - The key of the parameter. + * + * @returns {string} the key without the brackets. + */ +function removeBrackets(key) { + return utils$1.endsWith(key, '[]') ? key.slice(0, -2) : key; +} + +/** + * It takes a path, a key, and a boolean, and returns a string + * + * @param {string} path - The path to the current key. + * @param {string} key - The key of the current object being iterated over. + * @param {string} dots - If true, the key will be rendered with dots instead of brackets. + * + * @returns {string} The path to the current key. + */ +function renderKey(path, key, dots) { + if (!path) return key; + return path.concat(key).map(function each(token, i) { + // eslint-disable-next-line no-param-reassign + token = removeBrackets(token); + return !dots && i ? '[' + token + ']' : token; + }).join(dots ? '.' : ''); +} + +/** + * If the array is an array and none of its elements are visitable, then it's a flat array. + * + * @param {Array} arr - The array to check + * + * @returns {boolean} + */ +function isFlatArray(arr) { + return utils$1.isArray(arr) && !arr.some(isVisitable); +} +const predicates = utils$1.toFlatObject(utils$1, {}, null, function filter(prop) { + return /^is[A-Z]/.test(prop); +}); + +/** + * Convert a data object to FormData + * + * @param {Object} obj + * @param {?Object} [formData] + * @param {?Object} [options] + * @param {Function} [options.visitor] + * @param {Boolean} [options.metaTokens = true] + * @param {Boolean} [options.dots = false] + * @param {?Boolean} [options.indexes = false] + * + * @returns {Object} + **/ + +/** + * It converts an object into a FormData object + * + * @param {Object} obj - The object to convert to form data. + * @param {string} formData - The FormData object to append to. + * @param {Object} options + * + * @returns + */ +function toFormData(obj, formData, options) { + if (!utils$1.isObject(obj)) { + throw new TypeError('target must be an object'); + } + + // eslint-disable-next-line no-param-reassign + formData = formData || new (FormData$1 || FormData)(); + + // eslint-disable-next-line no-param-reassign + options = utils$1.toFlatObject(options, { + metaTokens: true, + dots: false, + indexes: false + }, false, function defined(option, source) { + // eslint-disable-next-line no-eq-null,eqeqeq + return !utils$1.isUndefined(source[option]); + }); + const metaTokens = options.metaTokens; + // eslint-disable-next-line no-use-before-define + const visitor = options.visitor || defaultVisitor; + const dots = options.dots; + const indexes = options.indexes; + const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob; + const maxDepth = options.maxDepth === undefined ? 100 : options.maxDepth; + const useBlob = _Blob && utils$1.isSpecCompliantForm(formData); + if (!utils$1.isFunction(visitor)) { + throw new TypeError('visitor must be a function'); + } + function convertValue(value) { + if (value === null) return ''; + if (utils$1.isDate(value)) { + return value.toISOString(); + } + if (utils$1.isBoolean(value)) { + return value.toString(); + } + if (!useBlob && utils$1.isBlob(value)) { + throw new AxiosError('Blob is not supported. Use a Buffer instead.'); + } + if (utils$1.isArrayBuffer(value) || utils$1.isTypedArray(value)) { + return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value); + } + return value; + } + + /** + * Default visitor. + * + * @param {*} value + * @param {String|Number} key + * @param {Array} path + * @this {FormData} + * + * @returns {boolean} return true to visit the each prop of the value recursively + */ + function defaultVisitor(value, key, path) { + let arr = value; + if (utils$1.isReactNative(formData) && utils$1.isReactNativeBlob(value)) { + formData.append(renderKey(path, key, dots), convertValue(value)); + return false; + } + if (value && !path && typeof value === 'object') { + if (utils$1.endsWith(key, '{}')) { + // eslint-disable-next-line no-param-reassign + key = metaTokens ? key : key.slice(0, -2); + // eslint-disable-next-line no-param-reassign + value = JSON.stringify(value); + } else if (utils$1.isArray(value) && isFlatArray(value) || (utils$1.isFileList(value) || utils$1.endsWith(key, '[]')) && (arr = utils$1.toArray(value))) { + // eslint-disable-next-line no-param-reassign + key = removeBrackets(key); + arr.forEach(function each(el, index) { + !(utils$1.isUndefined(el) || el === null) && formData.append( + // eslint-disable-next-line no-nested-ternary + indexes === true ? renderKey([key], index, dots) : indexes === null ? key : key + '[]', convertValue(el)); + }); + return false; + } + } + if (isVisitable(value)) { + return true; + } + formData.append(renderKey(path, key, dots), convertValue(value)); + return false; + } + const stack = []; + const exposedHelpers = Object.assign(predicates, { + defaultVisitor, + convertValue, + isVisitable + }); + function build(value, path, depth = 0) { + if (utils$1.isUndefined(value)) return; + if (depth > maxDepth) { + throw new AxiosError('Object is too deeply nested (' + depth + ' levels). Max depth: ' + maxDepth, AxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED); + } + if (stack.indexOf(value) !== -1) { + throw Error('Circular reference detected in ' + path.join('.')); + } + stack.push(value); + utils$1.forEach(value, function each(el, key) { + const result = !(utils$1.isUndefined(el) || el === null) && visitor.call(formData, el, utils$1.isString(key) ? key.trim() : key, path, exposedHelpers); + if (result === true) { + build(el, path ? path.concat(key) : [key], depth + 1); + } + }); + stack.pop(); + } + if (!utils$1.isObject(obj)) { + throw new TypeError('data must be an object'); + } + build(obj); + return formData; +} + +/** + * It encodes a string by replacing all characters that are not in the unreserved set with + * their percent-encoded equivalents + * + * @param {string} str - The string to encode. + * + * @returns {string} The encoded string. + */ +function encode$1(str) { + const charMap = { + '!': '%21', + "'": '%27', + '(': '%28', + ')': '%29', + '~': '%7E', + '%20': '+' + }; + return encodeURIComponent(str).replace(/[!'()~]|%20/g, function replacer(match) { + return charMap[match]; + }); +} + +/** + * It takes a params object and converts it to a FormData object + * + * @param {Object} params - The parameters to be converted to a FormData object. + * @param {Object} options - The options object passed to the Axios constructor. + * + * @returns {void} + */ +function AxiosURLSearchParams(params, options) { + this._pairs = []; + params && toFormData(params, this, options); +} +const prototype = AxiosURLSearchParams.prototype; +prototype.append = function append(name, value) { + this._pairs.push([name, value]); +}; +prototype.toString = function toString(encoder) { + const _encode = encoder ? function (value) { + return encoder.call(this, value, encode$1); + } : encode$1; + return this._pairs.map(function each(pair) { + return _encode(pair[0]) + '=' + _encode(pair[1]); + }, '').join('&'); +}; + +/** + * It replaces URL-encoded forms of `:`, `$`, `,`, and spaces with + * their plain counterparts (`:`, `$`, `,`, `+`). + * + * @param {string} val The value to be encoded. + * + * @returns {string} The encoded value. + */ +function encode(val) { + return encodeURIComponent(val).replace(/%3A/gi, ':').replace(/%24/g, '$').replace(/%2C/gi, ',').replace(/%20/g, '+'); +} + +/** + * Build a URL by appending params to the end + * + * @param {string} url The base of the url (e.g., http://www.google.com) + * @param {object} [params] The params to be appended + * @param {?(object|Function)} options + * + * @returns {string} The formatted url + */ +function buildURL(url, params, options) { + if (!params) { + return url; + } + const _encode = options && options.encode || encode; + const _options = utils$1.isFunction(options) ? { + serialize: options + } : options; + const serializeFn = _options && _options.serialize; + let serializedParams; + if (serializeFn) { + serializedParams = serializeFn(params, _options); + } else { + serializedParams = utils$1.isURLSearchParams(params) ? params.toString() : new AxiosURLSearchParams(params, _options).toString(_encode); + } + if (serializedParams) { + const hashmarkIndex = url.indexOf('#'); + if (hashmarkIndex !== -1) { + url = url.slice(0, hashmarkIndex); + } + url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams; + } + return url; +} + +class InterceptorManager { + constructor() { + this.handlers = []; + } + + /** + * Add a new interceptor to the stack + * + * @param {Function} fulfilled The function to handle `then` for a `Promise` + * @param {Function} rejected The function to handle `reject` for a `Promise` + * @param {Object} options The options for the interceptor, synchronous and runWhen + * + * @return {Number} An ID used to remove interceptor later + */ + use(fulfilled, rejected, options) { + this.handlers.push({ + fulfilled, + rejected, + synchronous: options ? options.synchronous : false, + runWhen: options ? options.runWhen : null + }); + return this.handlers.length - 1; + } + + /** + * Remove an interceptor from the stack + * + * @param {Number} id The ID that was returned by `use` + * + * @returns {void} + */ + eject(id) { + if (this.handlers[id]) { + this.handlers[id] = null; + } + } + + /** + * Clear all interceptors from the stack + * + * @returns {void} + */ + clear() { + if (this.handlers) { + this.handlers = []; + } + } + + /** + * Iterate over all the registered interceptors + * + * This method is particularly useful for skipping over any + * interceptors that may have become `null` calling `eject`. + * + * @param {Function} fn The function to call for each interceptor + * + * @returns {void} + */ + forEach(fn) { + utils$1.forEach(this.handlers, function forEachHandler(h) { + if (h !== null) { + fn(h); + } + }); + } +} + +var transitionalDefaults = { + silentJSONParsing: true, + forcedJSONParsing: true, + clarifyTimeoutError: false, + legacyInterceptorReqResOrdering: true +}; + +var URLSearchParams = url.URLSearchParams; + +const ALPHA = 'abcdefghijklmnopqrstuvwxyz'; +const DIGIT = '0123456789'; +const ALPHABET = { + DIGIT, + ALPHA, + ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT +}; +const generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => { + let str = ''; + const { + length + } = alphabet; + const randomValues = new Uint32Array(size); + crypto.randomFillSync(randomValues); + for (let i = 0; i < size; i++) { + str += alphabet[randomValues[i] % length]; + } + return str; +}; +var platform$1 = { + isNode: true, + classes: { + URLSearchParams, + FormData: FormData$1, + Blob: typeof Blob !== 'undefined' && Blob || null + }, + ALPHABET, + generateString, + protocols: ['http', 'https', 'file', 'data'] +}; + +const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined'; +const _navigator = typeof navigator === 'object' && navigator || undefined; + +/** + * Determine if we're running in a standard browser environment + * + * This allows axios to run in a web worker, and react-native. + * Both environments support XMLHttpRequest, but not fully standard globals. + * + * web workers: + * typeof window -> undefined + * typeof document -> undefined + * + * react-native: + * navigator.product -> 'ReactNative' + * nativescript + * navigator.product -> 'NativeScript' or 'NS' + * + * @returns {boolean} + */ +const hasStandardBrowserEnv = hasBrowserEnv && (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0); + +/** + * Determine if we're running in a standard browser webWorker environment + * + * Although the `isStandardBrowserEnv` method indicates that + * `allows axios to run in a web worker`, the WebWorker will still be + * filtered out due to its judgment standard + * `typeof window !== 'undefined' && typeof document !== 'undefined'`. + * This leads to a problem when axios post `FormData` in webWorker + */ +const hasStandardBrowserWebWorkerEnv = (() => { + return typeof WorkerGlobalScope !== 'undefined' && + // eslint-disable-next-line no-undef + self instanceof WorkerGlobalScope && typeof self.importScripts === 'function'; +})(); +const origin = hasBrowserEnv && window.location.href || 'http://localhost'; + +var utils = /*#__PURE__*/Object.freeze({ + __proto__: null, + hasBrowserEnv: hasBrowserEnv, + hasStandardBrowserEnv: hasStandardBrowserEnv, + hasStandardBrowserWebWorkerEnv: hasStandardBrowserWebWorkerEnv, + navigator: _navigator, + origin: origin +}); + +var platform = { + ...utils, + ...platform$1 +}; + +function toURLEncodedForm(data, options) { + return toFormData(data, new platform.classes.URLSearchParams(), { + visitor: function (value, key, path, helpers) { + if (platform.isNode && utils$1.isBuffer(value)) { + this.append(key, value.toString('base64')); + return false; + } + return helpers.defaultVisitor.apply(this, arguments); + }, + ...options + }); +} + +/** + * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z'] + * + * @param {string} name - The name of the property to get. + * + * @returns An array of strings. + */ +function parsePropPath(name) { + // foo[x][y][z] + // foo.x.y.z + // foo-x-y-z + // foo x y z + return utils$1.matchAll(/\w+|\[(\w*)]/g, name).map(match => { + return match[0] === '[]' ? '' : match[1] || match[0]; + }); +} + +/** + * Convert an array to an object. + * + * @param {Array} arr - The array to convert to an object. + * + * @returns An object with the same keys and values as the array. + */ +function arrayToObject(arr) { + const obj = {}; + const keys = Object.keys(arr); + let i; + const len = keys.length; + let key; + for (i = 0; i < len; i++) { + key = keys[i]; + obj[key] = arr[key]; + } + return obj; +} + +/** + * It takes a FormData object and returns a JavaScript object + * + * @param {string} formData The FormData object to convert to JSON. + * + * @returns {Object | null} The converted object. + */ +function formDataToJSON(formData) { + function buildPath(path, value, target, index) { + let name = path[index++]; + if (name === '__proto__') return true; + const isNumericKey = Number.isFinite(+name); + const isLast = index >= path.length; + name = !name && utils$1.isArray(target) ? target.length : name; + if (isLast) { + if (utils$1.hasOwnProp(target, name)) { + target[name] = utils$1.isArray(target[name]) ? target[name].concat(value) : [target[name], value]; + } else { + target[name] = value; + } + return !isNumericKey; + } + if (!target[name] || !utils$1.isObject(target[name])) { + target[name] = []; + } + const result = buildPath(path, value, target[name], index); + if (result && utils$1.isArray(target[name])) { + target[name] = arrayToObject(target[name]); + } + return !isNumericKey; + } + if (utils$1.isFormData(formData) && utils$1.isFunction(formData.entries)) { + const obj = {}; + utils$1.forEachEntry(formData, (name, value) => { + buildPath(parsePropPath(name), value, obj, 0); + }); + return obj; + } + return null; +} + +const own = (obj, key) => obj != null && utils$1.hasOwnProp(obj, key) ? obj[key] : undefined; + +/** + * It takes a string, tries to parse it, and if it fails, it returns the stringified version + * of the input + * + * @param {any} rawValue - The value to be stringified. + * @param {Function} parser - A function that parses a string into a JavaScript object. + * @param {Function} encoder - A function that takes a value and returns a string. + * + * @returns {string} A stringified version of the rawValue. + */ +function stringifySafely(rawValue, parser, encoder) { + if (utils$1.isString(rawValue)) { + try { + (parser || JSON.parse)(rawValue); + return utils$1.trim(rawValue); + } catch (e) { + if (e.name !== 'SyntaxError') { + throw e; + } + } + } + return (encoder || JSON.stringify)(rawValue); +} +const defaults = { + transitional: transitionalDefaults, + adapter: ['xhr', 'http', 'fetch'], + transformRequest: [function transformRequest(data, headers) { + const contentType = headers.getContentType() || ''; + const hasJSONContentType = contentType.indexOf('application/json') > -1; + const isObjectPayload = utils$1.isObject(data); + if (isObjectPayload && utils$1.isHTMLForm(data)) { + data = new FormData(data); + } + const isFormData = utils$1.isFormData(data); + if (isFormData) { + return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data; + } + if (utils$1.isArrayBuffer(data) || utils$1.isBuffer(data) || utils$1.isStream(data) || utils$1.isFile(data) || utils$1.isBlob(data) || utils$1.isReadableStream(data)) { + return data; + } + if (utils$1.isArrayBufferView(data)) { + return data.buffer; + } + if (utils$1.isURLSearchParams(data)) { + headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false); + return data.toString(); + } + let isFileList; + if (isObjectPayload) { + const formSerializer = own(this, 'formSerializer'); + if (contentType.indexOf('application/x-www-form-urlencoded') > -1) { + return toURLEncodedForm(data, formSerializer).toString(); + } + if ((isFileList = utils$1.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) { + const env = own(this, 'env'); + const _FormData = env && env.FormData; + return toFormData(isFileList ? { + 'files[]': data + } : data, _FormData && new _FormData(), formSerializer); + } + } + if (isObjectPayload || hasJSONContentType) { + headers.setContentType('application/json', false); + return stringifySafely(data); + } + return data; + }], + transformResponse: [function transformResponse(data) { + const transitional = own(this, 'transitional') || defaults.transitional; + const forcedJSONParsing = transitional && transitional.forcedJSONParsing; + const responseType = own(this, 'responseType'); + const JSONRequested = responseType === 'json'; + if (utils$1.isResponse(data) || utils$1.isReadableStream(data)) { + return data; + } + if (data && utils$1.isString(data) && (forcedJSONParsing && !responseType || JSONRequested)) { + const silentJSONParsing = transitional && transitional.silentJSONParsing; + const strictJSONParsing = !silentJSONParsing && JSONRequested; + try { + return JSON.parse(data, own(this, 'parseReviver')); + } catch (e) { + if (strictJSONParsing) { + if (e.name === 'SyntaxError') { + throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, own(this, 'response')); + } + throw e; + } + } + } + return data; + }], + /** + * A timeout in milliseconds to abort a request. If set to 0 (default) a + * timeout is not created. + */ + timeout: 0, + xsrfCookieName: 'XSRF-TOKEN', + xsrfHeaderName: 'X-XSRF-TOKEN', + maxContentLength: -1, + maxBodyLength: -1, + env: { + FormData: platform.classes.FormData, + Blob: platform.classes.Blob + }, + validateStatus: function validateStatus(status) { + return status >= 200 && status < 300; + }, + headers: { + common: { + Accept: 'application/json, text/plain, */*', + 'Content-Type': undefined + } + } +}; +utils$1.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], method => { + defaults.headers[method] = {}; +}); + +// RawAxiosHeaders whose duplicates are ignored by node +// c.f. https://nodejs.org/api/http.html#http_message_headers +const ignoreDuplicateOf = utils$1.toObjectSet(['age', 'authorization', 'content-length', 'content-type', 'etag', 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since', 'last-modified', 'location', 'max-forwards', 'proxy-authorization', 'referer', 'retry-after', 'user-agent']); + +/** + * Parse headers into an object + * + * ``` + * Date: Wed, 27 Aug 2014 08:58:49 GMT + * Content-Type: application/json + * Connection: keep-alive + * Transfer-Encoding: chunked + * ``` + * + * @param {String} rawHeaders Headers needing to be parsed + * + * @returns {Object} Headers parsed into an object + */ +var parseHeaders = rawHeaders => { + const parsed = {}; + let key; + let val; + let i; + rawHeaders && rawHeaders.split('\n').forEach(function parser(line) { + i = line.indexOf(':'); + key = line.substring(0, i).trim().toLowerCase(); + val = line.substring(i + 1).trim(); + if (!key || parsed[key] && ignoreDuplicateOf[key]) { + return; + } + if (key === 'set-cookie') { + if (parsed[key]) { + parsed[key].push(val); + } else { + parsed[key] = [val]; + } + } else { + parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val; + } + }); + return parsed; +}; + +const $internals = Symbol('internals'); +const INVALID_HEADER_VALUE_CHARS_RE = /[^\x09\x20-\x7E\x80-\xFF]/g; +function trimSPorHTAB(str) { + let start = 0; + let end = str.length; + while (start < end) { + const code = str.charCodeAt(start); + if (code !== 0x09 && code !== 0x20) { + break; + } + start += 1; + } + while (end > start) { + const code = str.charCodeAt(end - 1); + if (code !== 0x09 && code !== 0x20) { + break; + } + end -= 1; + } + return start === 0 && end === str.length ? str : str.slice(start, end); +} +function normalizeHeader(header) { + return header && String(header).trim().toLowerCase(); +} +function sanitizeHeaderValue(str) { + return trimSPorHTAB(str.replace(INVALID_HEADER_VALUE_CHARS_RE, '')); +} +function normalizeValue(value) { + if (value === false || value == null) { + return value; + } + return utils$1.isArray(value) ? value.map(normalizeValue) : sanitizeHeaderValue(String(value)); +} +function parseTokens(str) { + const tokens = Object.create(null); + const tokensRE = /([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g; + let match; + while (match = tokensRE.exec(str)) { + tokens[match[1]] = match[2]; + } + return tokens; +} +const isValidHeaderName = str => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim()); +function matchHeaderValue(context, value, header, filter, isHeaderNameFilter) { + if (utils$1.isFunction(filter)) { + return filter.call(this, value, header); + } + if (isHeaderNameFilter) { + value = header; + } + if (!utils$1.isString(value)) return; + if (utils$1.isString(filter)) { + return value.indexOf(filter) !== -1; + } + if (utils$1.isRegExp(filter)) { + return filter.test(value); + } +} +function formatHeader(header) { + return header.trim().toLowerCase().replace(/([a-z\d])(\w*)/g, (w, char, str) => { + return char.toUpperCase() + str; + }); +} +function buildAccessors(obj, header) { + const accessorName = utils$1.toCamelCase(' ' + header); + ['get', 'set', 'has'].forEach(methodName => { + Object.defineProperty(obj, methodName + accessorName, { + value: function (arg1, arg2, arg3) { + return this[methodName].call(this, header, arg1, arg2, arg3); + }, + configurable: true + }); + }); +} +class AxiosHeaders { + constructor(headers) { + headers && this.set(headers); + } + set(header, valueOrRewrite, rewrite) { + const self = this; + function setHeader(_value, _header, _rewrite) { + const lHeader = normalizeHeader(_header); + if (!lHeader) { + throw new Error('header name must be a non-empty string'); + } + const key = utils$1.findKey(self, lHeader); + if (!key || self[key] === undefined || _rewrite === true || _rewrite === undefined && self[key] !== false) { + self[key || _header] = normalizeValue(_value); + } + } + const setHeaders = (headers, _rewrite) => utils$1.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite)); + if (utils$1.isPlainObject(header) || header instanceof this.constructor) { + setHeaders(header, valueOrRewrite); + } else if (utils$1.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) { + setHeaders(parseHeaders(header), valueOrRewrite); + } else if (utils$1.isObject(header) && utils$1.isIterable(header)) { + let obj = {}, + dest, + key; + for (const entry of header) { + if (!utils$1.isArray(entry)) { + throw TypeError('Object iterator must return a key-value pair'); + } + obj[key = entry[0]] = (dest = obj[key]) ? utils$1.isArray(dest) ? [...dest, entry[1]] : [dest, entry[1]] : entry[1]; + } + setHeaders(obj, valueOrRewrite); + } else { + header != null && setHeader(valueOrRewrite, header, rewrite); + } + return this; + } + get(header, parser) { + header = normalizeHeader(header); + if (header) { + const key = utils$1.findKey(this, header); + if (key) { + const value = this[key]; + if (!parser) { + return value; + } + if (parser === true) { + return parseTokens(value); + } + if (utils$1.isFunction(parser)) { + return parser.call(this, value, key); + } + if (utils$1.isRegExp(parser)) { + return parser.exec(value); + } + throw new TypeError('parser must be boolean|regexp|function'); + } + } + } + has(header, matcher) { + header = normalizeHeader(header); + if (header) { + const key = utils$1.findKey(this, header); + return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher))); + } + return false; + } + delete(header, matcher) { + const self = this; + let deleted = false; + function deleteHeader(_header) { + _header = normalizeHeader(_header); + if (_header) { + const key = utils$1.findKey(self, _header); + if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) { + delete self[key]; + deleted = true; + } + } + } + if (utils$1.isArray(header)) { + header.forEach(deleteHeader); + } else { + deleteHeader(header); + } + return deleted; + } + clear(matcher) { + const keys = Object.keys(this); + let i = keys.length; + let deleted = false; + while (i--) { + const key = keys[i]; + if (!matcher || matchHeaderValue(this, this[key], key, matcher, true)) { + delete this[key]; + deleted = true; + } + } + return deleted; + } + normalize(format) { + const self = this; + const headers = {}; + utils$1.forEach(this, (value, header) => { + const key = utils$1.findKey(headers, header); + if (key) { + self[key] = normalizeValue(value); + delete self[header]; + return; + } + const normalized = format ? formatHeader(header) : String(header).trim(); + if (normalized !== header) { + delete self[header]; + } + self[normalized] = normalizeValue(value); + headers[normalized] = true; + }); + return this; + } + concat(...targets) { + return this.constructor.concat(this, ...targets); + } + toJSON(asStrings) { + const obj = Object.create(null); + utils$1.forEach(this, (value, header) => { + value != null && value !== false && (obj[header] = asStrings && utils$1.isArray(value) ? value.join(', ') : value); + }); + return obj; + } + [Symbol.iterator]() { + return Object.entries(this.toJSON())[Symbol.iterator](); + } + toString() { + return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\n'); + } + getSetCookie() { + return this.get('set-cookie') || []; + } + get [Symbol.toStringTag]() { + return 'AxiosHeaders'; + } + static from(thing) { + return thing instanceof this ? thing : new this(thing); + } + static concat(first, ...targets) { + const computed = new this(first); + targets.forEach(target => computed.set(target)); + return computed; + } + static accessor(header) { + const internals = this[$internals] = this[$internals] = { + accessors: {} + }; + const accessors = internals.accessors; + const prototype = this.prototype; + function defineAccessor(_header) { + const lHeader = normalizeHeader(_header); + if (!accessors[lHeader]) { + buildAccessors(prototype, _header); + accessors[lHeader] = true; + } + } + utils$1.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header); + return this; + } +} +AxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']); + +// reserved names hotfix +utils$1.reduceDescriptors(AxiosHeaders.prototype, ({ + value +}, key) => { + let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set` + return { + get: () => value, + set(headerValue) { + this[mapped] = headerValue; + } + }; +}); +utils$1.freezeMethods(AxiosHeaders); + +/** + * Transform the data for a request or a response + * + * @param {Array|Function} fns A single function or Array of functions + * @param {?Object} response The response object + * + * @returns {*} The resulting transformed data + */ +function transformData(fns, response) { + const config = this || defaults; + const context = response || config; + const headers = AxiosHeaders.from(context.headers); + let data = context.data; + utils$1.forEach(fns, function transform(fn) { + data = fn.call(config, data, headers.normalize(), response ? response.status : undefined); + }); + headers.normalize(); + return data; +} + +function isCancel(value) { + return !!(value && value.__CANCEL__); +} + +class CanceledError extends AxiosError { + /** + * A `CanceledError` is an object that is thrown when an operation is canceled. + * + * @param {string=} message The message. + * @param {Object=} config The config. + * @param {Object=} request The request. + * + * @returns {CanceledError} The created error. + */ + constructor(message, config, request) { + super(message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request); + this.name = 'CanceledError'; + this.__CANCEL__ = true; + } +} + +/** + * Resolve or reject a Promise based on response status. + * + * @param {Function} resolve A function that resolves the promise. + * @param {Function} reject A function that rejects the promise. + * @param {object} response The response. + * + * @returns {object} The response. + */ +function settle(resolve, reject, response) { + const validateStatus = response.config.validateStatus; + if (!response.status || !validateStatus || validateStatus(response.status)) { + resolve(response); + } else { + reject(new AxiosError('Request failed with status code ' + response.status, [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4], response.config, response.request, response)); + } +} + +/** + * Determines whether the specified URL is absolute + * + * @param {string} url The URL to test + * + * @returns {boolean} True if the specified URL is absolute, otherwise false + */ +function isAbsoluteURL(url) { + // A URL is considered absolute if it begins with "://" or "//" (protocol-relative URL). + // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed + // by any combination of letters, digits, plus, period, or hyphen. + if (typeof url !== 'string') { + return false; + } + return /^([a-z][a-z\d+\-.]*:)?\/\//i.test(url); +} + +/** + * Creates a new URL by combining the specified URLs + * + * @param {string} baseURL The base URL + * @param {string} relativeURL The relative URL + * + * @returns {string} The combined URL + */ +function combineURLs(baseURL, relativeURL) { + return relativeURL ? baseURL.replace(/\/?\/$/, '') + '/' + relativeURL.replace(/^\/+/, '') : baseURL; +} + +/** + * Creates a new URL by combining the baseURL with the requestedURL, + * only when the requestedURL is not already an absolute URL. + * If the requestURL is absolute, this function returns the requestedURL untouched. + * + * @param {string} baseURL The base URL + * @param {string} requestedURL Absolute or relative URL to combine + * + * @returns {string} The combined full path + */ +function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) { + let isRelativeUrl = !isAbsoluteURL(requestedURL); + if (baseURL && (isRelativeUrl || allowAbsoluteUrls === false)) { + return combineURLs(baseURL, requestedURL); + } + return requestedURL; +} + +var DEFAULT_PORTS$1 = { + ftp: 21, + gopher: 70, + http: 80, + https: 443, + ws: 80, + wss: 443 +}; +function parseUrl(urlString) { + try { + return new URL(urlString); + } catch { + return null; + } +} + +/** + * @param {string|object|URL} url - The URL as a string or URL instance, or a + * compatible object (such as the result from legacy url.parse). + * @return {string} The URL of the proxy that should handle the request to the + * given URL. If no proxy is set, this will be an empty string. + */ +function getProxyForUrl(url) { + var parsedUrl = (typeof url === 'string' ? parseUrl(url) : url) || {}; + var proto = parsedUrl.protocol; + var hostname = parsedUrl.host; + var port = parsedUrl.port; + if (typeof hostname !== 'string' || !hostname || typeof proto !== 'string') { + return ''; // Don't proxy URLs without a valid scheme or host. + } + proto = proto.split(':', 1)[0]; + // Stripping ports in this way instead of using parsedUrl.hostname to make + // sure that the brackets around IPv6 addresses are kept. + hostname = hostname.replace(/:\d*$/, ''); + port = parseInt(port) || DEFAULT_PORTS$1[proto] || 0; + if (!shouldProxy(hostname, port)) { + return ''; // Don't proxy URLs that match NO_PROXY. + } + var proxy = getEnv(proto + '_proxy') || getEnv('all_proxy'); + if (proxy && proxy.indexOf('://') === -1) { + // Missing scheme in proxy, default to the requested URL's scheme. + proxy = proto + '://' + proxy; + } + return proxy; +} + +/** + * Determines whether a given URL should be proxied. + * + * @param {string} hostname - The host name of the URL. + * @param {number} port - The effective port of the URL. + * @returns {boolean} Whether the given URL should be proxied. + * @private + */ +function shouldProxy(hostname, port) { + var NO_PROXY = getEnv('no_proxy').toLowerCase(); + if (!NO_PROXY) { + return true; // Always proxy if NO_PROXY is not set. + } + if (NO_PROXY === '*') { + return false; // Never proxy if wildcard is set. + } + return NO_PROXY.split(/[,\s]/).every(function (proxy) { + if (!proxy) { + return true; // Skip zero-length hosts. + } + var parsedProxy = proxy.match(/^(.+):(\d+)$/); + var parsedProxyHostname = parsedProxy ? parsedProxy[1] : proxy; + var parsedProxyPort = parsedProxy ? parseInt(parsedProxy[2]) : 0; + if (parsedProxyPort && parsedProxyPort !== port) { + return true; // Skip if ports don't match. + } + if (!/^[.*]/.test(parsedProxyHostname)) { + // No wildcards, so stop proxying if there is an exact match. + return hostname !== parsedProxyHostname; + } + if (parsedProxyHostname.charAt(0) === '*') { + // Remove leading wildcard. + parsedProxyHostname = parsedProxyHostname.slice(1); + } + // Stop proxying if the hostname ends with the no_proxy host. + return !hostname.endsWith(parsedProxyHostname); + }); +} + +/** + * Get the value for an environment variable. + * + * @param {string} key - The name of the environment variable. + * @return {string} The value of the environment variable. + * @private + */ +function getEnv(key) { + return process.env[key.toLowerCase()] || process.env[key.toUpperCase()] || ''; +} + +const VERSION = "1.15.1"; + +function parseProtocol(url) { + const match = /^([-+\w]{1,25})(:?\/\/|:)/.exec(url); + return match && match[1] || ''; +} + +const DATA_URL_PATTERN = /^(?:([^;]+);)?(?:[^;]+;)?(base64|),([\s\S]*)$/; + +/** + * Parse data uri to a Buffer or Blob + * + * @param {String} uri + * @param {?Boolean} asBlob + * @param {?Object} options + * @param {?Function} options.Blob + * + * @returns {Buffer|Blob} + */ +function fromDataURI(uri, asBlob, options) { + const _Blob = options && options.Blob || platform.classes.Blob; + const protocol = parseProtocol(uri); + if (asBlob === undefined && _Blob) { + asBlob = true; + } + if (protocol === 'data') { + uri = protocol.length ? uri.slice(protocol.length + 1) : uri; + const match = DATA_URL_PATTERN.exec(uri); + if (!match) { + throw new AxiosError('Invalid URL', AxiosError.ERR_INVALID_URL); + } + const mime = match[1]; + const isBase64 = match[2]; + const body = match[3]; + const buffer = Buffer.from(decodeURIComponent(body), isBase64 ? 'base64' : 'utf8'); + if (asBlob) { + if (!_Blob) { + throw new AxiosError('Blob is not supported', AxiosError.ERR_NOT_SUPPORT); + } + return new _Blob([buffer], { + type: mime + }); + } + return buffer; + } + throw new AxiosError('Unsupported protocol ' + protocol, AxiosError.ERR_NOT_SUPPORT); +} + +const kInternals = Symbol('internals'); +class AxiosTransformStream extends stream.Transform { + constructor(options) { + options = utils$1.toFlatObject(options, { + maxRate: 0, + chunkSize: 64 * 1024, + minChunkSize: 100, + timeWindow: 500, + ticksRate: 2, + samplesCount: 15 + }, null, (prop, source) => { + return !utils$1.isUndefined(source[prop]); + }); + super({ + readableHighWaterMark: options.chunkSize + }); + const internals = this[kInternals] = { + timeWindow: options.timeWindow, + chunkSize: options.chunkSize, + maxRate: options.maxRate, + minChunkSize: options.minChunkSize, + bytesSeen: 0, + isCaptured: false, + notifiedBytesLoaded: 0, + ts: Date.now(), + bytes: 0, + onReadCallback: null + }; + this.on('newListener', event => { + if (event === 'progress') { + if (!internals.isCaptured) { + internals.isCaptured = true; + } + } + }); + } + _read(size) { + const internals = this[kInternals]; + if (internals.onReadCallback) { + internals.onReadCallback(); + } + return super._read(size); + } + _transform(chunk, encoding, callback) { + const internals = this[kInternals]; + const maxRate = internals.maxRate; + const readableHighWaterMark = this.readableHighWaterMark; + const timeWindow = internals.timeWindow; + const divider = 1000 / timeWindow; + const bytesThreshold = maxRate / divider; + const minChunkSize = internals.minChunkSize !== false ? Math.max(internals.minChunkSize, bytesThreshold * 0.01) : 0; + const pushChunk = (_chunk, _callback) => { + const bytes = Buffer.byteLength(_chunk); + internals.bytesSeen += bytes; + internals.bytes += bytes; + internals.isCaptured && this.emit('progress', internals.bytesSeen); + if (this.push(_chunk)) { + process.nextTick(_callback); + } else { + internals.onReadCallback = () => { + internals.onReadCallback = null; + process.nextTick(_callback); + }; + } + }; + const transformChunk = (_chunk, _callback) => { + const chunkSize = Buffer.byteLength(_chunk); + let chunkRemainder = null; + let maxChunkSize = readableHighWaterMark; + let bytesLeft; + let passed = 0; + if (maxRate) { + const now = Date.now(); + if (!internals.ts || (passed = now - internals.ts) >= timeWindow) { + internals.ts = now; + bytesLeft = bytesThreshold - internals.bytes; + internals.bytes = bytesLeft < 0 ? -bytesLeft : 0; + passed = 0; + } + bytesLeft = bytesThreshold - internals.bytes; + } + if (maxRate) { + if (bytesLeft <= 0) { + // next time window + return setTimeout(() => { + _callback(null, _chunk); + }, timeWindow - passed); + } + if (bytesLeft < maxChunkSize) { + maxChunkSize = bytesLeft; + } + } + if (maxChunkSize && chunkSize > maxChunkSize && chunkSize - maxChunkSize > minChunkSize) { + chunkRemainder = _chunk.subarray(maxChunkSize); + _chunk = _chunk.subarray(0, maxChunkSize); + } + pushChunk(_chunk, chunkRemainder ? () => { + process.nextTick(_callback, null, chunkRemainder); + } : _callback); + }; + transformChunk(chunk, function transformNextChunk(err, _chunk) { + if (err) { + return callback(err); + } + if (_chunk) { + transformChunk(_chunk, transformNextChunk); + } else { + callback(null); + } + }); + } +} + +const { + asyncIterator +} = Symbol; +const readBlob = async function* (blob) { + if (blob.stream) { + yield* blob.stream(); + } else if (blob.arrayBuffer) { + yield await blob.arrayBuffer(); + } else if (blob[asyncIterator]) { + yield* blob[asyncIterator](); + } else { + yield blob; + } +}; + +const BOUNDARY_ALPHABET = platform.ALPHABET.ALPHA_DIGIT + '-_'; +const textEncoder = typeof TextEncoder === 'function' ? new TextEncoder() : new util.TextEncoder(); +const CRLF = '\r\n'; +const CRLF_BYTES = textEncoder.encode(CRLF); +const CRLF_BYTES_COUNT = 2; +class FormDataPart { + constructor(name, value) { + const { + escapeName + } = this.constructor; + const isStringValue = utils$1.isString(value); + let headers = `Content-Disposition: form-data; name="${escapeName(name)}"${!isStringValue && value.name ? `; filename="${escapeName(value.name)}"` : ''}${CRLF}`; + if (isStringValue) { + value = textEncoder.encode(String(value).replace(/\r?\n|\r\n?/g, CRLF)); + } else { + const safeType = String(value.type || 'application/octet-stream').replace(/[\r\n]/g, ''); + headers += `Content-Type: ${safeType}${CRLF}`; + } + this.headers = textEncoder.encode(headers + CRLF); + this.contentLength = isStringValue ? value.byteLength : value.size; + this.size = this.headers.byteLength + this.contentLength + CRLF_BYTES_COUNT; + this.name = name; + this.value = value; + } + async *encode() { + yield this.headers; + const { + value + } = this; + if (utils$1.isTypedArray(value)) { + yield value; + } else { + yield* readBlob(value); + } + yield CRLF_BYTES; + } + static escapeName(name) { + return String(name).replace(/[\r\n"]/g, match => ({ + '\r': '%0D', + '\n': '%0A', + '"': '%22' + })[match]); + } +} +const formDataToStream = (form, headersHandler, options) => { + const { + tag = 'form-data-boundary', + size = 25, + boundary = tag + '-' + platform.generateString(size, BOUNDARY_ALPHABET) + } = options || {}; + if (!utils$1.isFormData(form)) { + throw TypeError('FormData instance required'); + } + if (boundary.length < 1 || boundary.length > 70) { + throw Error('boundary must be 10-70 characters long'); + } + const boundaryBytes = textEncoder.encode('--' + boundary + CRLF); + const footerBytes = textEncoder.encode('--' + boundary + '--' + CRLF); + let contentLength = footerBytes.byteLength; + const parts = Array.from(form.entries()).map(([name, value]) => { + const part = new FormDataPart(name, value); + contentLength += part.size; + return part; + }); + contentLength += boundaryBytes.byteLength * parts.length; + contentLength = utils$1.toFiniteNumber(contentLength); + const computedHeaders = { + 'Content-Type': `multipart/form-data; boundary=${boundary}` + }; + if (Number.isFinite(contentLength)) { + computedHeaders['Content-Length'] = contentLength; + } + headersHandler && headersHandler(computedHeaders); + return stream.Readable.from(async function* () { + for (const part of parts) { + yield boundaryBytes; + yield* part.encode(); + } + yield footerBytes; + }()); +}; + +class ZlibHeaderTransformStream extends stream.Transform { + __transform(chunk, encoding, callback) { + this.push(chunk); + callback(); + } + _transform(chunk, encoding, callback) { + if (chunk.length !== 0) { + this._transform = this.__transform; + + // Add Default Compression headers if no zlib headers are present + if (chunk[0] !== 120) { + // Hex: 78 + const header = Buffer.alloc(2); + header[0] = 120; // Hex: 78 + header[1] = 156; // Hex: 9C + this.push(header, encoding); + } + } + this.__transform(chunk, encoding, callback); + } +} + +const callbackify = (fn, reducer) => { + return utils$1.isAsyncFn(fn) ? function (...args) { + const cb = args.pop(); + fn.apply(this, args).then(value => { + try { + reducer ? cb(null, ...reducer(value)) : cb(null, value); + } catch (err) { + cb(err); + } + }, cb); + } : fn; +}; + +const LOOPBACK_HOSTNAMES = new Set(['localhost']); +const isIPv4Loopback = host => { + const parts = host.split('.'); + if (parts.length !== 4) return false; + if (parts[0] !== '127') return false; + return parts.every(p => /^\d+$/.test(p) && Number(p) >= 0 && Number(p) <= 255); +}; +const isIPv6Loopback = host => { + // Collapse all-zero groups: any form of ::1 / 0:0:...:0:1 + // First, strip any leading "::" by normalising with Set lookup of common forms, + // then fall back to structural check. + if (host === '::1') return true; + + // Check IPv4-mapped IPv6 loopback: ::ffff: or ::ffff: + // Node's URL parser normalises ::ffff:127.0.0.1 → ::ffff:7f00:1 + const v4MappedDotted = host.match(/^::ffff:(\d+\.\d+\.\d+\.\d+)$/i); + if (v4MappedDotted) return isIPv4Loopback(v4MappedDotted[1]); + const v4MappedHex = host.match(/^::ffff:([0-9a-f]{1,4}):([0-9a-f]{1,4})$/i); + if (v4MappedHex) { + const high = parseInt(v4MappedHex[1], 16); + // High 16 bits must start with 127 (0x7f) — i.e. 0x7f00..0x7fff + return high >= 0x7f00 && high <= 0x7fff; + } + + // Full-form ::1 variants: any number of zero groups followed by trailing 1 + // e.g. 0:0:0:0:0:0:0:1, 0000:...:0001 + const groups = host.split(':'); + if (groups.length === 8) { + for (let i = 0; i < 7; i++) { + if (!/^0+$/.test(groups[i])) return false; + } + return /^0*1$/.test(groups[7]); + } + return false; +}; +const isLoopback = host => { + if (!host) return false; + if (LOOPBACK_HOSTNAMES.has(host)) return true; + if (isIPv4Loopback(host)) return true; + return isIPv6Loopback(host); +}; +const DEFAULT_PORTS = { + http: 80, + https: 443, + ws: 80, + wss: 443, + ftp: 21 +}; +const parseNoProxyEntry = entry => { + let entryHost = entry; + let entryPort = 0; + if (entryHost.charAt(0) === '[') { + const bracketIndex = entryHost.indexOf(']'); + if (bracketIndex !== -1) { + const host = entryHost.slice(1, bracketIndex); + const rest = entryHost.slice(bracketIndex + 1); + if (rest.charAt(0) === ':' && /^\d+$/.test(rest.slice(1))) { + entryPort = Number.parseInt(rest.slice(1), 10); + } + return [host, entryPort]; + } + } + const firstColon = entryHost.indexOf(':'); + const lastColon = entryHost.lastIndexOf(':'); + if (firstColon !== -1 && firstColon === lastColon && /^\d+$/.test(entryHost.slice(lastColon + 1))) { + entryPort = Number.parseInt(entryHost.slice(lastColon + 1), 10); + entryHost = entryHost.slice(0, lastColon); + } + return [entryHost, entryPort]; +}; +const normalizeNoProxyHost = hostname => { + if (!hostname) { + return hostname; + } + if (hostname.charAt(0) === '[' && hostname.charAt(hostname.length - 1) === ']') { + hostname = hostname.slice(1, -1); + } + return hostname.replace(/\.+$/, ''); +}; +function shouldBypassProxy(location) { + let parsed; + try { + parsed = new URL(location); + } catch (_err) { + return false; + } + const noProxy = (process.env.no_proxy || process.env.NO_PROXY || '').toLowerCase(); + if (!noProxy) { + return false; + } + if (noProxy === '*') { + return true; + } + const port = Number.parseInt(parsed.port, 10) || DEFAULT_PORTS[parsed.protocol.split(':', 1)[0]] || 0; + const hostname = normalizeNoProxyHost(parsed.hostname.toLowerCase()); + return noProxy.split(/[\s,]+/).some(entry => { + if (!entry) { + return false; + } + let [entryHost, entryPort] = parseNoProxyEntry(entry); + entryHost = normalizeNoProxyHost(entryHost); + if (!entryHost) { + return false; + } + if (entryPort && entryPort !== port) { + return false; + } + if (entryHost.charAt(0) === '*') { + entryHost = entryHost.slice(1); + } + if (entryHost.charAt(0) === '.') { + return hostname.endsWith(entryHost); + } + return hostname === entryHost || isLoopback(hostname) && isLoopback(entryHost); + }); +} + +/** + * Calculate data maxRate + * @param {Number} [samplesCount= 10] + * @param {Number} [min= 1000] + * @returns {Function} + */ +function speedometer(samplesCount, min) { + samplesCount = samplesCount || 10; + const bytes = new Array(samplesCount); + const timestamps = new Array(samplesCount); + let head = 0; + let tail = 0; + let firstSampleTS; + min = min !== undefined ? min : 1000; + return function push(chunkLength) { + const now = Date.now(); + const startedAt = timestamps[tail]; + if (!firstSampleTS) { + firstSampleTS = now; + } + bytes[head] = chunkLength; + timestamps[head] = now; + let i = tail; + let bytesCount = 0; + while (i !== head) { + bytesCount += bytes[i++]; + i = i % samplesCount; + } + head = (head + 1) % samplesCount; + if (head === tail) { + tail = (tail + 1) % samplesCount; + } + if (now - firstSampleTS < min) { + return; + } + const passed = startedAt && now - startedAt; + return passed ? Math.round(bytesCount * 1000 / passed) : undefined; + }; +} + +/** + * Throttle decorator + * @param {Function} fn + * @param {Number} freq + * @return {Function} + */ +function throttle(fn, freq) { + let timestamp = 0; + let threshold = 1000 / freq; + let lastArgs; + let timer; + const invoke = (args, now = Date.now()) => { + timestamp = now; + lastArgs = null; + if (timer) { + clearTimeout(timer); + timer = null; + } + fn(...args); + }; + const throttled = (...args) => { + const now = Date.now(); + const passed = now - timestamp; + if (passed >= threshold) { + invoke(args, now); + } else { + lastArgs = args; + if (!timer) { + timer = setTimeout(() => { + timer = null; + invoke(lastArgs); + }, threshold - passed); + } + } + }; + const flush = () => lastArgs && invoke(lastArgs); + return [throttled, flush]; +} + +const progressEventReducer = (listener, isDownloadStream, freq = 3) => { + let bytesNotified = 0; + const _speedometer = speedometer(50, 250); + return throttle(e => { + const rawLoaded = e.loaded; + const total = e.lengthComputable ? e.total : undefined; + const loaded = total != null ? Math.min(rawLoaded, total) : rawLoaded; + const progressBytes = Math.max(0, loaded - bytesNotified); + const rate = _speedometer(progressBytes); + bytesNotified = Math.max(bytesNotified, loaded); + const data = { + loaded, + total, + progress: total ? loaded / total : undefined, + bytes: progressBytes, + rate: rate ? rate : undefined, + estimated: rate && total ? (total - loaded) / rate : undefined, + event: e, + lengthComputable: total != null, + [isDownloadStream ? 'download' : 'upload']: true + }; + listener(data); + }, freq); +}; +const progressEventDecorator = (total, throttled) => { + const lengthComputable = total != null; + return [loaded => throttled[0]({ + lengthComputable, + total, + loaded + }), throttled[1]]; +}; +const asyncDecorator = fn => (...args) => utils$1.asap(() => fn(...args)); + +/** + * Estimate decoded byte length of a data:// URL *without* allocating large buffers. + * - For base64: compute exact decoded size using length and padding; + * handle %XX at the character-count level (no string allocation). + * - For non-base64: use UTF-8 byteLength of the encoded body as a safe upper bound. + * + * @param {string} url + * @returns {number} + */ +function estimateDataURLDecodedBytes(url) { + if (!url || typeof url !== 'string') return 0; + if (!url.startsWith('data:')) return 0; + const comma = url.indexOf(','); + if (comma < 0) return 0; + const meta = url.slice(5, comma); + const body = url.slice(comma + 1); + const isBase64 = /;base64/i.test(meta); + if (isBase64) { + let effectiveLen = body.length; + const len = body.length; // cache length + + for (let i = 0; i < len; i++) { + if (body.charCodeAt(i) === 37 /* '%' */ && i + 2 < len) { + const a = body.charCodeAt(i + 1); + const b = body.charCodeAt(i + 2); + const isHex = (a >= 48 && a <= 57 || a >= 65 && a <= 70 || a >= 97 && a <= 102) && (b >= 48 && b <= 57 || b >= 65 && b <= 70 || b >= 97 && b <= 102); + if (isHex) { + effectiveLen -= 2; + i += 2; + } + } + } + let pad = 0; + let idx = len - 1; + const tailIsPct3D = j => j >= 2 && body.charCodeAt(j - 2) === 37 && + // '%' + body.charCodeAt(j - 1) === 51 && ( + // '3' + body.charCodeAt(j) === 68 || body.charCodeAt(j) === 100); // 'D' or 'd' + + if (idx >= 0) { + if (body.charCodeAt(idx) === 61 /* '=' */) { + pad++; + idx--; + } else if (tailIsPct3D(idx)) { + pad++; + idx -= 3; + } + } + if (pad === 1 && idx >= 0) { + if (body.charCodeAt(idx) === 61 /* '=' */) { + pad++; + } else if (tailIsPct3D(idx)) { + pad++; + } + } + const groups = Math.floor(effectiveLen / 4); + const bytes = groups * 3 - (pad || 0); + return bytes > 0 ? bytes : 0; + } + return Buffer.byteLength(body, 'utf8'); +} + +const zlibOptions = { + flush: zlib.constants.Z_SYNC_FLUSH, + finishFlush: zlib.constants.Z_SYNC_FLUSH +}; +const brotliOptions = { + flush: zlib.constants.BROTLI_OPERATION_FLUSH, + finishFlush: zlib.constants.BROTLI_OPERATION_FLUSH +}; +const isBrotliSupported = utils$1.isFunction(zlib.createBrotliDecompress); +const { + http: httpFollow, + https: httpsFollow +} = followRedirects; +const isHttps = /https:?/; +const supportedProtocols = platform.protocols.map(protocol => { + return protocol + ':'; +}); +const flushOnFinish = (stream, [throttled, flush]) => { + stream.on('end', flush).on('error', flush); + return throttled; +}; +class Http2Sessions { + constructor() { + this.sessions = Object.create(null); + } + getSession(authority, options) { + options = Object.assign({ + sessionTimeout: 1000 + }, options); + let authoritySessions = this.sessions[authority]; + if (authoritySessions) { + let len = authoritySessions.length; + for (let i = 0; i < len; i++) { + const [sessionHandle, sessionOptions] = authoritySessions[i]; + if (!sessionHandle.destroyed && !sessionHandle.closed && util.isDeepStrictEqual(sessionOptions, options)) { + return sessionHandle; + } + } + } + const session = http2.connect(authority, options); + let removed; + const removeSession = () => { + if (removed) { + return; + } + removed = true; + let entries = authoritySessions, + len = entries.length, + i = len; + while (i--) { + if (entries[i][0] === session) { + if (len === 1) { + delete this.sessions[authority]; + } else { + entries.splice(i, 1); + } + if (!session.closed) { + session.close(); + } + return; + } + } + }; + const originalRequestFn = session.request; + const { + sessionTimeout + } = options; + if (sessionTimeout != null) { + let timer; + let streamsCount = 0; + session.request = function () { + const stream = originalRequestFn.apply(this, arguments); + streamsCount++; + if (timer) { + clearTimeout(timer); + timer = null; + } + stream.once('close', () => { + if (! --streamsCount) { + timer = setTimeout(() => { + timer = null; + removeSession(); + }, sessionTimeout); + } + }); + return stream; + }; + } + session.once('close', removeSession); + let entry = [session, options]; + authoritySessions ? authoritySessions.push(entry) : authoritySessions = this.sessions[authority] = [entry]; + return session; + } +} +const http2Sessions = new Http2Sessions(); + +/** + * If the proxy or config beforeRedirects functions are defined, call them with the options + * object. + * + * @param {Object} options - The options object that was passed to the request. + * + * @returns {Object} + */ +function dispatchBeforeRedirect(options, responseDetails) { + if (options.beforeRedirects.proxy) { + options.beforeRedirects.proxy(options); + } + if (options.beforeRedirects.config) { + options.beforeRedirects.config(options, responseDetails); + } +} + +/** + * If the proxy or config afterRedirects functions are defined, call them with the options + * + * @param {http.ClientRequestArgs} options + * @param {AxiosProxyConfig} configProxy configuration from Axios options object + * @param {string} location + * + * @returns {http.ClientRequestArgs} + */ +function setProxy(options, configProxy, location) { + let proxy = configProxy; + if (!proxy && proxy !== false) { + const proxyUrl = getProxyForUrl(location); + if (proxyUrl) { + if (!shouldBypassProxy(location)) { + proxy = new URL(proxyUrl); + } + } + } + if (proxy) { + // Basic proxy authorization + if (proxy.username) { + proxy.auth = (proxy.username || '') + ':' + (proxy.password || ''); + } + if (proxy.auth) { + // Support proxy auth object form + const validProxyAuth = Boolean(proxy.auth.username || proxy.auth.password); + if (validProxyAuth) { + proxy.auth = (proxy.auth.username || '') + ':' + (proxy.auth.password || ''); + } else if (typeof proxy.auth === 'object') { + throw new AxiosError('Invalid proxy authorization', AxiosError.ERR_BAD_OPTION, { + proxy + }); + } + const base64 = Buffer.from(proxy.auth, 'utf8').toString('base64'); + options.headers['Proxy-Authorization'] = 'Basic ' + base64; + } + options.headers.host = options.hostname + (options.port ? ':' + options.port : ''); + const proxyHost = proxy.hostname || proxy.host; + options.hostname = proxyHost; + // Replace 'host' since options is not a URL object + options.host = proxyHost; + options.port = proxy.port; + options.path = location; + if (proxy.protocol) { + options.protocol = proxy.protocol.includes(':') ? proxy.protocol : `${proxy.protocol}:`; + } + } + options.beforeRedirects.proxy = function beforeRedirect(redirectOptions) { + // Configure proxy for redirected request, passing the original config proxy to apply + // the exact same logic as if the redirected request was performed by axios directly. + setProxy(redirectOptions, configProxy, redirectOptions.href); + }; +} +const isHttpAdapterSupported = typeof process !== 'undefined' && utils$1.kindOf(process) === 'process'; + +// temporary hotfix + +const wrapAsync = asyncExecutor => { + return new Promise((resolve, reject) => { + let onDone; + let isDone; + const done = (value, isRejected) => { + if (isDone) return; + isDone = true; + onDone && onDone(value, isRejected); + }; + const _resolve = value => { + done(value); + resolve(value); + }; + const _reject = reason => { + done(reason, true); + reject(reason); + }; + asyncExecutor(_resolve, _reject, onDoneHandler => onDone = onDoneHandler).catch(_reject); + }); +}; +const resolveFamily = ({ + address, + family +}) => { + if (!utils$1.isString(address)) { + throw TypeError('address must be a string'); + } + return { + address, + family: family || (address.indexOf('.') < 0 ? 6 : 4) + }; +}; +const buildAddressEntry = (address, family) => resolveFamily(utils$1.isObject(address) ? address : { + address, + family +}); +const http2Transport = { + request(options, cb) { + const authority = options.protocol + '//' + options.hostname + ':' + (options.port || (options.protocol === 'https:' ? 443 : 80)); + const { + http2Options, + headers + } = options; + const session = http2Sessions.getSession(authority, http2Options); + const { + HTTP2_HEADER_SCHEME, + HTTP2_HEADER_METHOD, + HTTP2_HEADER_PATH, + HTTP2_HEADER_STATUS + } = http2.constants; + const http2Headers = { + [HTTP2_HEADER_SCHEME]: options.protocol.replace(':', ''), + [HTTP2_HEADER_METHOD]: options.method, + [HTTP2_HEADER_PATH]: options.path + }; + utils$1.forEach(headers, (header, name) => { + name.charAt(0) !== ':' && (http2Headers[name] = header); + }); + const req = session.request(http2Headers); + req.once('response', responseHeaders => { + const response = req; //duplex + + responseHeaders = Object.assign({}, responseHeaders); + const status = responseHeaders[HTTP2_HEADER_STATUS]; + delete responseHeaders[HTTP2_HEADER_STATUS]; + response.headers = responseHeaders; + response.statusCode = +status; + cb(response); + }); + return req; + } +}; + +/*eslint consistent-return:0*/ +var httpAdapter = isHttpAdapterSupported && function httpAdapter(config) { + return wrapAsync(async function dispatchHttpRequest(resolve, reject, onDone) { + const own = key => utils$1.hasOwnProp(config, key) ? config[key] : undefined; + let data = own('data'); + let lookup = own('lookup'); + let family = own('family'); + let httpVersion = own('httpVersion'); + if (httpVersion === undefined) httpVersion = 1; + let http2Options = own('http2Options'); + const responseType = own('responseType'); + const responseEncoding = own('responseEncoding'); + const method = config.method.toUpperCase(); + let isDone; + let rejected = false; + let req; + httpVersion = +httpVersion; + if (Number.isNaN(httpVersion)) { + throw TypeError(`Invalid protocol version: '${config.httpVersion}' is not a number`); + } + if (httpVersion !== 1 && httpVersion !== 2) { + throw TypeError(`Unsupported protocol version '${httpVersion}'`); + } + const isHttp2 = httpVersion === 2; + if (lookup) { + const _lookup = callbackify(lookup, value => utils$1.isArray(value) ? value : [value]); + // hotfix to support opt.all option which is required for node 20.x + lookup = (hostname, opt, cb) => { + _lookup(hostname, opt, (err, arg0, arg1) => { + if (err) { + return cb(err); + } + const addresses = utils$1.isArray(arg0) ? arg0.map(addr => buildAddressEntry(addr)) : [buildAddressEntry(arg0, arg1)]; + opt.all ? cb(err, addresses) : cb(err, addresses[0].address, addresses[0].family); + }); + }; + } + const abortEmitter = new events.EventEmitter(); + function abort(reason) { + try { + abortEmitter.emit('abort', !reason || reason.type ? new CanceledError(null, config, req) : reason); + } catch (err) { + console.warn('emit error', err); + } + } + abortEmitter.once('abort', reject); + const onFinished = () => { + if (config.cancelToken) { + config.cancelToken.unsubscribe(abort); + } + if (config.signal) { + config.signal.removeEventListener('abort', abort); + } + abortEmitter.removeAllListeners(); + }; + if (config.cancelToken || config.signal) { + config.cancelToken && config.cancelToken.subscribe(abort); + if (config.signal) { + config.signal.aborted ? abort() : config.signal.addEventListener('abort', abort); + } + } + onDone((response, isRejected) => { + isDone = true; + if (isRejected) { + rejected = true; + onFinished(); + return; + } + const { + data + } = response; + if (data instanceof stream.Readable || data instanceof stream.Duplex) { + const offListeners = stream.finished(data, () => { + offListeners(); + onFinished(); + }); + } else { + onFinished(); + } + }); + + // Parse url + const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls); + const parsed = new URL(fullPath, platform.hasBrowserEnv ? platform.origin : undefined); + const protocol = parsed.protocol || supportedProtocols[0]; + if (protocol === 'data:') { + // Apply the same semantics as HTTP: only enforce if a finite, non-negative cap is set. + if (config.maxContentLength > -1) { + // Use the exact string passed to fromDataURI (config.url); fall back to fullPath if needed. + const dataUrl = String(config.url || fullPath || ''); + const estimated = estimateDataURLDecodedBytes(dataUrl); + if (estimated > config.maxContentLength) { + return reject(new AxiosError('maxContentLength size of ' + config.maxContentLength + ' exceeded', AxiosError.ERR_BAD_RESPONSE, config)); + } + } + let convertedData; + if (method !== 'GET') { + return settle(resolve, reject, { + status: 405, + statusText: 'method not allowed', + headers: {}, + config + }); + } + try { + convertedData = fromDataURI(config.url, responseType === 'blob', { + Blob: config.env && config.env.Blob + }); + } catch (err) { + throw AxiosError.from(err, AxiosError.ERR_BAD_REQUEST, config); + } + if (responseType === 'text') { + convertedData = convertedData.toString(responseEncoding); + if (!responseEncoding || responseEncoding === 'utf8') { + convertedData = utils$1.stripBOM(convertedData); + } + } else if (responseType === 'stream') { + convertedData = stream.Readable.from(convertedData); + } + return settle(resolve, reject, { + data: convertedData, + status: 200, + statusText: 'OK', + headers: new AxiosHeaders(), + config + }); + } + if (supportedProtocols.indexOf(protocol) === -1) { + return reject(new AxiosError('Unsupported protocol ' + protocol, AxiosError.ERR_BAD_REQUEST, config)); + } + const headers = AxiosHeaders.from(config.headers).normalize(); + + // Set User-Agent (required by some servers) + // See https://github.com/axios/axios/issues/69 + // User-Agent is specified; handle case where no UA header is desired + // Only set header if it hasn't been set in config + headers.set('User-Agent', 'axios/' + VERSION, false); + const { + onUploadProgress, + onDownloadProgress + } = config; + const maxRate = config.maxRate; + let maxUploadRate = undefined; + let maxDownloadRate = undefined; + + // support for spec compliant FormData objects + if (utils$1.isSpecCompliantForm(data)) { + const userBoundary = headers.getContentType(/boundary=([-_\w\d]{10,70})/i); + data = formDataToStream(data, formHeaders => { + headers.set(formHeaders); + }, { + tag: `axios-${VERSION}-boundary`, + boundary: userBoundary && userBoundary[1] || undefined + }); + // support for https://www.npmjs.com/package/form-data api + } else if (utils$1.isFormData(data) && utils$1.isFunction(data.getHeaders) && data.getHeaders !== Object.prototype.getHeaders) { + headers.set(data.getHeaders()); + if (!headers.hasContentLength()) { + try { + const knownLength = await util.promisify(data.getLength).call(data); + Number.isFinite(knownLength) && knownLength >= 0 && headers.setContentLength(knownLength); + /*eslint no-empty:0*/ + } catch (e) {} + } + } else if (utils$1.isBlob(data) || utils$1.isFile(data)) { + data.size && headers.setContentType(data.type || 'application/octet-stream'); + headers.setContentLength(data.size || 0); + data = stream.Readable.from(readBlob(data)); + } else if (data && !utils$1.isStream(data)) { + if (Buffer.isBuffer(data)) ; else if (utils$1.isArrayBuffer(data)) { + data = Buffer.from(new Uint8Array(data)); + } else if (utils$1.isString(data)) { + data = Buffer.from(data, 'utf-8'); + } else { + return reject(new AxiosError('Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream', AxiosError.ERR_BAD_REQUEST, config)); + } + + // Add Content-Length header if data exists + headers.setContentLength(data.length, false); + if (config.maxBodyLength > -1 && data.length > config.maxBodyLength) { + return reject(new AxiosError('Request body larger than maxBodyLength limit', AxiosError.ERR_BAD_REQUEST, config)); + } + } + const contentLength = utils$1.toFiniteNumber(headers.getContentLength()); + if (utils$1.isArray(maxRate)) { + maxUploadRate = maxRate[0]; + maxDownloadRate = maxRate[1]; + } else { + maxUploadRate = maxDownloadRate = maxRate; + } + if (data && (onUploadProgress || maxUploadRate)) { + if (!utils$1.isStream(data)) { + data = stream.Readable.from(data, { + objectMode: false + }); + } + data = stream.pipeline([data, new AxiosTransformStream({ + maxRate: utils$1.toFiniteNumber(maxUploadRate) + })], utils$1.noop); + onUploadProgress && data.on('progress', flushOnFinish(data, progressEventDecorator(contentLength, progressEventReducer(asyncDecorator(onUploadProgress), false, 3)))); + } + + // HTTP basic authentication + let auth = undefined; + if (config.auth) { + const username = config.auth.username || ''; + const password = config.auth.password || ''; + auth = username + ':' + password; + } + if (!auth && parsed.username) { + const urlUsername = parsed.username; + const urlPassword = parsed.password; + auth = urlUsername + ':' + urlPassword; + } + auth && headers.delete('authorization'); + let path; + try { + path = buildURL(parsed.pathname + parsed.search, config.params, config.paramsSerializer).replace(/^\?/, ''); + } catch (err) { + const customErr = new Error(err.message); + customErr.config = config; + customErr.url = config.url; + customErr.exists = true; + return reject(customErr); + } + headers.set('Accept-Encoding', 'gzip, compress, deflate' + (isBrotliSupported ? ', br' : ''), false); + const options = { + path, + method: method, + headers: headers.toJSON(), + agents: { + http: config.httpAgent, + https: config.httpsAgent + }, + auth, + protocol, + family, + beforeRedirect: dispatchBeforeRedirect, + beforeRedirects: {}, + http2Options + }; + + // cacheable-lookup integration hotfix + !utils$1.isUndefined(lookup) && (options.lookup = lookup); + if (config.socketPath) { + options.socketPath = config.socketPath; + } else { + options.hostname = parsed.hostname.startsWith('[') ? parsed.hostname.slice(1, -1) : parsed.hostname; + options.port = parsed.port; + setProxy(options, config.proxy, protocol + '//' + parsed.hostname + (parsed.port ? ':' + parsed.port : '') + options.path); + } + let transport; + const isHttpsRequest = isHttps.test(options.protocol); + options.agent = isHttpsRequest ? config.httpsAgent : config.httpAgent; + if (isHttp2) { + transport = http2Transport; + } else { + const configTransport = own('transport'); + if (configTransport) { + transport = configTransport; + } else if (config.maxRedirects === 0) { + transport = isHttpsRequest ? https : http; + } else { + if (config.maxRedirects) { + options.maxRedirects = config.maxRedirects; + } + if (config.beforeRedirect) { + options.beforeRedirects.config = config.beforeRedirect; + } + transport = isHttpsRequest ? httpsFollow : httpFollow; + } + } + if (config.maxBodyLength > -1) { + options.maxBodyLength = config.maxBodyLength; + } else { + // follow-redirects does not skip comparison, so it should always succeed for axios -1 unlimited + options.maxBodyLength = Infinity; + } + if (config.insecureHTTPParser) { + options.insecureHTTPParser = config.insecureHTTPParser; + } + + // Create the request + req = transport.request(options, function handleResponse(res) { + if (req.destroyed) return; + const streams = [res]; + const responseLength = utils$1.toFiniteNumber(res.headers['content-length']); + if (onDownloadProgress || maxDownloadRate) { + const transformStream = new AxiosTransformStream({ + maxRate: utils$1.toFiniteNumber(maxDownloadRate) + }); + onDownloadProgress && transformStream.on('progress', flushOnFinish(transformStream, progressEventDecorator(responseLength, progressEventReducer(asyncDecorator(onDownloadProgress), true, 3)))); + streams.push(transformStream); + } + + // decompress the response body transparently if required + let responseStream = res; + + // return the last request in case of redirects + const lastRequest = res.req || req; + + // if decompress disabled we should not decompress + if (config.decompress !== false && res.headers['content-encoding']) { + // if no content, but headers still say that it is encoded, + // remove the header not confuse downstream operations + if (method === 'HEAD' || res.statusCode === 204) { + delete res.headers['content-encoding']; + } + switch ((res.headers['content-encoding'] || '').toLowerCase()) { + /*eslint default-case:0*/ + case 'gzip': + case 'x-gzip': + case 'compress': + case 'x-compress': + // add the unzipper to the body stream processing pipeline + streams.push(zlib.createUnzip(zlibOptions)); + + // remove the content-encoding in order to not confuse downstream operations + delete res.headers['content-encoding']; + break; + case 'deflate': + streams.push(new ZlibHeaderTransformStream()); + + // add the unzipper to the body stream processing pipeline + streams.push(zlib.createUnzip(zlibOptions)); + + // remove the content-encoding in order to not confuse downstream operations + delete res.headers['content-encoding']; + break; + case 'br': + if (isBrotliSupported) { + streams.push(zlib.createBrotliDecompress(brotliOptions)); + delete res.headers['content-encoding']; + } + } + } + responseStream = streams.length > 1 ? stream.pipeline(streams, utils$1.noop) : streams[0]; + const response = { + status: res.statusCode, + statusText: res.statusMessage, + headers: new AxiosHeaders(res.headers), + config, + request: lastRequest + }; + if (responseType === 'stream') { + // Enforce maxContentLength on streamed responses; previously this + // was applied only to buffered responses. See GHSA-vf2m-468p-8v99. + if (config.maxContentLength > -1) { + const limit = config.maxContentLength; + const source = responseStream; + async function* enforceMaxContentLength() { + let totalResponseBytes = 0; + for await (const chunk of source) { + totalResponseBytes += chunk.length; + if (totalResponseBytes > limit) { + throw new AxiosError('maxContentLength size of ' + limit + ' exceeded', AxiosError.ERR_BAD_RESPONSE, config, lastRequest); + } + yield chunk; + } + } + responseStream = stream.Readable.from(enforceMaxContentLength(), { + objectMode: false + }); + } + response.data = responseStream; + settle(resolve, reject, response); + } else { + const responseBuffer = []; + let totalResponseBytes = 0; + responseStream.on('data', function handleStreamData(chunk) { + responseBuffer.push(chunk); + totalResponseBytes += chunk.length; + + // make sure the content length is not over the maxContentLength if specified + if (config.maxContentLength > -1 && totalResponseBytes > config.maxContentLength) { + // stream.destroy() emit aborted event before calling reject() on Node.js v16 + rejected = true; + responseStream.destroy(); + abort(new AxiosError('maxContentLength size of ' + config.maxContentLength + ' exceeded', AxiosError.ERR_BAD_RESPONSE, config, lastRequest)); + } + }); + responseStream.on('aborted', function handlerStreamAborted() { + if (rejected) { + return; + } + const err = new AxiosError('stream has been aborted', AxiosError.ERR_BAD_RESPONSE, config, lastRequest); + responseStream.destroy(err); + reject(err); + }); + responseStream.on('error', function handleStreamError(err) { + if (req.destroyed) return; + reject(AxiosError.from(err, null, config, lastRequest)); + }); + responseStream.on('end', function handleStreamEnd() { + try { + let responseData = responseBuffer.length === 1 ? responseBuffer[0] : Buffer.concat(responseBuffer); + if (responseType !== 'arraybuffer') { + responseData = responseData.toString(responseEncoding); + if (!responseEncoding || responseEncoding === 'utf8') { + responseData = utils$1.stripBOM(responseData); + } + } + response.data = responseData; + } catch (err) { + return reject(AxiosError.from(err, null, config, response.request, response)); + } + settle(resolve, reject, response); + }); + } + abortEmitter.once('abort', err => { + if (!responseStream.destroyed) { + responseStream.emit('error', err); + responseStream.destroy(); + } + }); + }); + abortEmitter.once('abort', err => { + if (req.close) { + req.close(); + } else { + req.destroy(err); + } + }); + + // Handle errors + req.on('error', function handleRequestError(err) { + reject(AxiosError.from(err, null, config, req)); + }); + + // set tcp keep alive to prevent drop connection by peer + req.on('socket', function handleRequestSocket(socket) { + // default interval of sending ack packet is 1 minute + socket.setKeepAlive(true, 1000 * 60); + const removeSocketErrorListener = () => { + socket.removeListener('error', handleRequestSocketError); + }; + function handleRequestSocketError(err) { + removeSocketErrorListener(); + if (!req.destroyed) { + req.destroy(err); + } + } + socket.on('error', handleRequestSocketError); + req.once('close', removeSocketErrorListener); + }); + + // Handle request timeout + if (config.timeout) { + // This is forcing a int timeout to avoid problems if the `req` interface doesn't handle other types. + const timeout = parseInt(config.timeout, 10); + if (Number.isNaN(timeout)) { + abort(new AxiosError('error trying to parse `config.timeout` to int', AxiosError.ERR_BAD_OPTION_VALUE, config, req)); + return; + } + + // Sometime, the response will be very slow, and does not respond, the connect event will be block by event loop system. + // And timer callback will be fired, and abort() will be invoked before connection, then get "socket hang up" and code ECONNRESET. + // At this time, if we have a large number of request, nodejs will hang up some socket on background. and the number will up and up. + // And then these socket which be hang up will devouring CPU little by little. + // ClientRequest.setTimeout will be fired on the specify milliseconds, and can make sure that abort() will be fired after connect. + req.setTimeout(timeout, function handleRequestTimeout() { + if (isDone) return; + let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded'; + const transitional = config.transitional || transitionalDefaults; + if (config.timeoutErrorMessage) { + timeoutErrorMessage = config.timeoutErrorMessage; + } + abort(new AxiosError(timeoutErrorMessage, transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED, config, req)); + }); + } else { + // explicitly reset the socket timeout value for a possible `keep-alive` request + req.setTimeout(0); + } + + // Send the request + if (utils$1.isStream(data)) { + let ended = false; + let errored = false; + data.on('end', () => { + ended = true; + }); + data.once('error', err => { + errored = true; + req.destroy(err); + }); + data.on('close', () => { + if (!ended && !errored) { + abort(new CanceledError('Request stream has been aborted', config, req)); + } + }); + + // Enforce maxBodyLength for streamed uploads on the native http/https + // transport (maxRedirects === 0); follow-redirects enforces it on the + // other path. See GHSA-5c9x-8gcm-mpgx. + let uploadStream = data; + if (config.maxBodyLength > -1 && config.maxRedirects === 0) { + const limit = config.maxBodyLength; + let bytesSent = 0; + uploadStream = stream.pipeline([data, new stream.Transform({ + transform(chunk, _enc, cb) { + bytesSent += chunk.length; + if (bytesSent > limit) { + return cb(new AxiosError('Request body larger than maxBodyLength limit', AxiosError.ERR_BAD_REQUEST, config, req)); + } + cb(null, chunk); + } + })], utils$1.noop); + uploadStream.on('error', err => { + if (!req.destroyed) req.destroy(err); + }); + } + uploadStream.pipe(req); + } else { + data && req.write(data); + req.end(); + } + }); +}; + +var isURLSameOrigin = platform.hasStandardBrowserEnv ? ((origin, isMSIE) => url => { + url = new URL(url, platform.origin); + return origin.protocol === url.protocol && origin.host === url.host && (isMSIE || origin.port === url.port); +})(new URL(platform.origin), platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)) : () => true; + +var cookies = platform.hasStandardBrowserEnv ? +// Standard browser envs support document.cookie +{ + write(name, value, expires, path, domain, secure, sameSite) { + if (typeof document === 'undefined') return; + const cookie = [`${name}=${encodeURIComponent(value)}`]; + if (utils$1.isNumber(expires)) { + cookie.push(`expires=${new Date(expires).toUTCString()}`); + } + if (utils$1.isString(path)) { + cookie.push(`path=${path}`); + } + if (utils$1.isString(domain)) { + cookie.push(`domain=${domain}`); + } + if (secure === true) { + cookie.push('secure'); + } + if (utils$1.isString(sameSite)) { + cookie.push(`SameSite=${sameSite}`); + } + document.cookie = cookie.join('; '); + }, + read(name) { + if (typeof document === 'undefined') return null; + const match = document.cookie.match(new RegExp('(?:^|; )' + name + '=([^;]*)')); + return match ? decodeURIComponent(match[1]) : null; + }, + remove(name) { + this.write(name, '', Date.now() - 86400000, '/'); + } +} : +// Non-standard browser env (web workers, react-native) lack needed support. +{ + write() {}, + read() { + return null; + }, + remove() {} +}; + +const headersToObject = thing => thing instanceof AxiosHeaders ? { + ...thing +} : thing; + +/** + * Config-specific merge-function which creates a new config-object + * by merging two configuration objects together. + * + * @param {Object} config1 + * @param {Object} config2 + * + * @returns {Object} New object resulting from merging config2 to config1 + */ +function mergeConfig(config1, config2) { + // eslint-disable-next-line no-param-reassign + config2 = config2 || {}; + const config = {}; + function getMergedValue(target, source, prop, caseless) { + if (utils$1.isPlainObject(target) && utils$1.isPlainObject(source)) { + return utils$1.merge.call({ + caseless + }, target, source); + } else if (utils$1.isPlainObject(source)) { + return utils$1.merge({}, source); + } else if (utils$1.isArray(source)) { + return source.slice(); + } + return source; + } + function mergeDeepProperties(a, b, prop, caseless) { + if (!utils$1.isUndefined(b)) { + return getMergedValue(a, b, prop, caseless); + } else if (!utils$1.isUndefined(a)) { + return getMergedValue(undefined, a, prop, caseless); + } + } + + // eslint-disable-next-line consistent-return + function valueFromConfig2(a, b) { + if (!utils$1.isUndefined(b)) { + return getMergedValue(undefined, b); + } + } + + // eslint-disable-next-line consistent-return + function defaultToConfig2(a, b) { + if (!utils$1.isUndefined(b)) { + return getMergedValue(undefined, b); + } else if (!utils$1.isUndefined(a)) { + return getMergedValue(undefined, a); + } + } + + // eslint-disable-next-line consistent-return + function mergeDirectKeys(a, b, prop) { + if (utils$1.hasOwnProp(config2, prop)) { + return getMergedValue(a, b); + } else if (utils$1.hasOwnProp(config1, prop)) { + return getMergedValue(undefined, a); + } + } + const mergeMap = { + url: valueFromConfig2, + method: valueFromConfig2, + data: valueFromConfig2, + baseURL: defaultToConfig2, + transformRequest: defaultToConfig2, + transformResponse: defaultToConfig2, + paramsSerializer: defaultToConfig2, + timeout: defaultToConfig2, + timeoutMessage: defaultToConfig2, + withCredentials: defaultToConfig2, + withXSRFToken: defaultToConfig2, + adapter: defaultToConfig2, + responseType: defaultToConfig2, + xsrfCookieName: defaultToConfig2, + xsrfHeaderName: defaultToConfig2, + onUploadProgress: defaultToConfig2, + onDownloadProgress: defaultToConfig2, + decompress: defaultToConfig2, + maxContentLength: defaultToConfig2, + maxBodyLength: defaultToConfig2, + beforeRedirect: defaultToConfig2, + transport: defaultToConfig2, + httpAgent: defaultToConfig2, + httpsAgent: defaultToConfig2, + cancelToken: defaultToConfig2, + socketPath: defaultToConfig2, + responseEncoding: defaultToConfig2, + validateStatus: mergeDirectKeys, + headers: (a, b, prop) => mergeDeepProperties(headersToObject(a), headersToObject(b), prop, true) + }; + utils$1.forEach(Object.keys({ + ...config1, + ...config2 + }), function computeConfigValue(prop) { + if (prop === '__proto__' || prop === 'constructor' || prop === 'prototype') return; + const merge = utils$1.hasOwnProp(mergeMap, prop) ? mergeMap[prop] : mergeDeepProperties; + const a = utils$1.hasOwnProp(config1, prop) ? config1[prop] : undefined; + const b = utils$1.hasOwnProp(config2, prop) ? config2[prop] : undefined; + const configValue = merge(a, b, prop); + utils$1.isUndefined(configValue) && merge !== mergeDirectKeys || (config[prop] = configValue); + }); + return config; +} + +var resolveConfig = config => { + const newConfig = mergeConfig({}, config); + let { + data, + withXSRFToken, + xsrfHeaderName, + xsrfCookieName, + headers, + auth + } = newConfig; + newConfig.headers = headers = AxiosHeaders.from(headers); + newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url, newConfig.allowAbsoluteUrls), config.params, config.paramsSerializer); + + // HTTP basic authentication + if (auth) { + headers.set('Authorization', 'Basic ' + btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))); + } + if (utils$1.isFormData(data)) { + if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) { + headers.setContentType(undefined); // browser handles it + } else if (utils$1.isFunction(data.getHeaders)) { + // Node.js FormData (like form-data package) + const formHeaders = data.getHeaders(); + // Only set safe headers to avoid overwriting security headers + const allowedHeaders = ['content-type', 'content-length']; + Object.entries(formHeaders).forEach(([key, val]) => { + if (allowedHeaders.includes(key.toLowerCase())) { + headers.set(key, val); + } + }); + } + } + + // Add xsrf header + // This is only done if running in a standard browser environment. + // Specifically not if we're in a web worker, or react-native. + + if (platform.hasStandardBrowserEnv) { + if (utils$1.isFunction(withXSRFToken)) { + withXSRFToken = withXSRFToken(newConfig); + } + + // Strict boolean check — prevents proto-pollution gadgets (e.g. Object.prototype.withXSRFToken = 1) + // and misconfigurations (e.g. "false") from short-circuiting the same-origin check and leaking + // the XSRF token cross-origin. See GHSA-xx6v-rp6x-q39c. + const shouldSendXSRF = withXSRFToken === true || withXSRFToken == null && isURLSameOrigin(newConfig.url); + if (shouldSendXSRF) { + const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName); + if (xsrfValue) { + headers.set(xsrfHeaderName, xsrfValue); + } + } + } + return newConfig; +}; + +const isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined'; +var xhrAdapter = isXHRAdapterSupported && function (config) { + return new Promise(function dispatchXhrRequest(resolve, reject) { + const _config = resolveConfig(config); + let requestData = _config.data; + const requestHeaders = AxiosHeaders.from(_config.headers).normalize(); + let { + responseType, + onUploadProgress, + onDownloadProgress + } = _config; + let onCanceled; + let uploadThrottled, downloadThrottled; + let flushUpload, flushDownload; + function done() { + flushUpload && flushUpload(); // flush events + flushDownload && flushDownload(); // flush events + + _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled); + _config.signal && _config.signal.removeEventListener('abort', onCanceled); + } + let request = new XMLHttpRequest(); + request.open(_config.method.toUpperCase(), _config.url, true); + + // Set the request timeout in MS + request.timeout = _config.timeout; + function onloadend() { + if (!request) { + return; + } + // Prepare the response + const responseHeaders = AxiosHeaders.from('getAllResponseHeaders' in request && request.getAllResponseHeaders()); + const responseData = !responseType || responseType === 'text' || responseType === 'json' ? request.responseText : request.response; + const response = { + data: responseData, + status: request.status, + statusText: request.statusText, + headers: responseHeaders, + config, + request + }; + settle(function _resolve(value) { + resolve(value); + done(); + }, function _reject(err) { + reject(err); + done(); + }, response); + + // Clean up request + request = null; + } + if ('onloadend' in request) { + // Use onloadend if available + request.onloadend = onloadend; + } else { + // Listen for ready state to emulate onloadend + request.onreadystatechange = function handleLoad() { + if (!request || request.readyState !== 4) { + return; + } + + // The request errored out and we didn't get a response, this will be + // handled by onerror instead + // With one exception: request that using file: protocol, most browsers + // will return status as 0 even though it's a successful request + if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) { + return; + } + // readystate handler is calling before onerror or ontimeout handlers, + // so we should call onloadend on the next 'tick' + setTimeout(onloadend); + }; + } + + // Handle browser request cancellation (as opposed to a manual cancellation) + request.onabort = function handleAbort() { + if (!request) { + return; + } + reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request)); + + // Clean up request + request = null; + }; + + // Handle low level network errors + request.onerror = function handleError(event) { + // Browsers deliver a ProgressEvent in XHR onerror + // (message may be empty; when present, surface it) + // See https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/error_event + const msg = event && event.message ? event.message : 'Network Error'; + const err = new AxiosError(msg, AxiosError.ERR_NETWORK, config, request); + // attach the underlying event for consumers who want details + err.event = event || null; + reject(err); + request = null; + }; + + // Handle timeout + request.ontimeout = function handleTimeout() { + let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded'; + const transitional = _config.transitional || transitionalDefaults; + if (_config.timeoutErrorMessage) { + timeoutErrorMessage = _config.timeoutErrorMessage; + } + reject(new AxiosError(timeoutErrorMessage, transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED, config, request)); + + // Clean up request + request = null; + }; + + // Remove Content-Type if data is undefined + requestData === undefined && requestHeaders.setContentType(null); + + // Add headers to the request + if ('setRequestHeader' in request) { + utils$1.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) { + request.setRequestHeader(key, val); + }); + } + + // Add withCredentials to request if needed + if (!utils$1.isUndefined(_config.withCredentials)) { + request.withCredentials = !!_config.withCredentials; + } + + // Add responseType to request if needed + if (responseType && responseType !== 'json') { + request.responseType = _config.responseType; + } + + // Handle progress if needed + if (onDownloadProgress) { + [downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true); + request.addEventListener('progress', downloadThrottled); + } + + // Not all browsers support upload events + if (onUploadProgress && request.upload) { + [uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress); + request.upload.addEventListener('progress', uploadThrottled); + request.upload.addEventListener('loadend', flushUpload); + } + if (_config.cancelToken || _config.signal) { + // Handle cancellation + // eslint-disable-next-line func-names + onCanceled = cancel => { + if (!request) { + return; + } + reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel); + request.abort(); + request = null; + }; + _config.cancelToken && _config.cancelToken.subscribe(onCanceled); + if (_config.signal) { + _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled); + } + } + const protocol = parseProtocol(_config.url); + if (protocol && platform.protocols.indexOf(protocol) === -1) { + reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config)); + return; + } + + // Send the request + request.send(requestData || null); + }); +}; + +const composeSignals = (signals, timeout) => { + const { + length + } = signals = signals ? signals.filter(Boolean) : []; + if (timeout || length) { + let controller = new AbortController(); + let aborted; + const onabort = function (reason) { + if (!aborted) { + aborted = true; + unsubscribe(); + const err = reason instanceof Error ? reason : this.reason; + controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err)); + } + }; + let timer = timeout && setTimeout(() => { + timer = null; + onabort(new AxiosError(`timeout of ${timeout}ms exceeded`, AxiosError.ETIMEDOUT)); + }, timeout); + const unsubscribe = () => { + if (signals) { + timer && clearTimeout(timer); + timer = null; + signals.forEach(signal => { + signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener('abort', onabort); + }); + signals = null; + } + }; + signals.forEach(signal => signal.addEventListener('abort', onabort)); + const { + signal + } = controller; + signal.unsubscribe = () => utils$1.asap(unsubscribe); + return signal; + } +}; + +const streamChunk = function* (chunk, chunkSize) { + let len = chunk.byteLength; + if (len < chunkSize) { + yield chunk; + return; + } + let pos = 0; + let end; + while (pos < len) { + end = pos + chunkSize; + yield chunk.slice(pos, end); + pos = end; + } +}; +const readBytes = async function* (iterable, chunkSize) { + for await (const chunk of readStream(iterable)) { + yield* streamChunk(chunk, chunkSize); + } +}; +const readStream = async function* (stream) { + if (stream[Symbol.asyncIterator]) { + yield* stream; + return; + } + const reader = stream.getReader(); + try { + for (;;) { + const { + done, + value + } = await reader.read(); + if (done) { + break; + } + yield value; + } + } finally { + await reader.cancel(); + } +}; +const trackStream = (stream, chunkSize, onProgress, onFinish) => { + const iterator = readBytes(stream, chunkSize); + let bytes = 0; + let done; + let _onFinish = e => { + if (!done) { + done = true; + onFinish && onFinish(e); + } + }; + return new ReadableStream({ + async pull(controller) { + try { + const { + done, + value + } = await iterator.next(); + if (done) { + _onFinish(); + controller.close(); + return; + } + let len = value.byteLength; + if (onProgress) { + let loadedBytes = bytes += len; + onProgress(loadedBytes); + } + controller.enqueue(new Uint8Array(value)); + } catch (err) { + _onFinish(err); + throw err; + } + }, + cancel(reason) { + _onFinish(reason); + return iterator.return(); + } + }, { + highWaterMark: 2 + }); +}; + +const DEFAULT_CHUNK_SIZE = 64 * 1024; +const { + isFunction +} = utils$1; +const globalFetchAPI = (({ + Request, + Response +}) => ({ + Request, + Response +}))(utils$1.global); +const { + ReadableStream: ReadableStream$1, + TextEncoder: TextEncoder$1 +} = utils$1.global; +const test = (fn, ...args) => { + try { + return !!fn(...args); + } catch (e) { + return false; + } +}; +const factory = env => { + env = utils$1.merge.call({ + skipUndefined: true + }, globalFetchAPI, env); + const { + fetch: envFetch, + Request, + Response + } = env; + const isFetchSupported = envFetch ? isFunction(envFetch) : typeof fetch === 'function'; + const isRequestSupported = isFunction(Request); + const isResponseSupported = isFunction(Response); + if (!isFetchSupported) { + return false; + } + const isReadableStreamSupported = isFetchSupported && isFunction(ReadableStream$1); + const encodeText = isFetchSupported && (typeof TextEncoder$1 === 'function' ? (encoder => str => encoder.encode(str))(new TextEncoder$1()) : async str => new Uint8Array(await new Request(str).arrayBuffer())); + const supportsRequestStream = isRequestSupported && isReadableStreamSupported && test(() => { + let duplexAccessed = false; + const request = new Request(platform.origin, { + body: new ReadableStream$1(), + method: 'POST', + get duplex() { + duplexAccessed = true; + return 'half'; + } + }); + const hasContentType = request.headers.has('Content-Type'); + if (request.body != null) { + request.body.cancel(); + } + return duplexAccessed && !hasContentType; + }); + const supportsResponseStream = isResponseSupported && isReadableStreamSupported && test(() => utils$1.isReadableStream(new Response('').body)); + const resolvers = { + stream: supportsResponseStream && (res => res.body) + }; + isFetchSupported && (() => { + ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => { + !resolvers[type] && (resolvers[type] = (res, config) => { + let method = res && res[type]; + if (method) { + return method.call(res); + } + throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config); + }); + }); + })(); + const getBodyLength = async body => { + if (body == null) { + return 0; + } + if (utils$1.isBlob(body)) { + return body.size; + } + if (utils$1.isSpecCompliantForm(body)) { + const _request = new Request(platform.origin, { + method: 'POST', + body + }); + return (await _request.arrayBuffer()).byteLength; + } + if (utils$1.isArrayBufferView(body) || utils$1.isArrayBuffer(body)) { + return body.byteLength; + } + if (utils$1.isURLSearchParams(body)) { + body = body + ''; + } + if (utils$1.isString(body)) { + return (await encodeText(body)).byteLength; + } + }; + const resolveBodyLength = async (headers, body) => { + const length = utils$1.toFiniteNumber(headers.getContentLength()); + return length == null ? getBodyLength(body) : length; + }; + return async config => { + let { + url, + method, + data, + signal, + cancelToken, + timeout, + onDownloadProgress, + onUploadProgress, + responseType, + headers, + withCredentials = 'same-origin', + fetchOptions + } = resolveConfig(config); + let _fetch = envFetch || fetch; + responseType = responseType ? (responseType + '').toLowerCase() : 'text'; + let composedSignal = composeSignals([signal, cancelToken && cancelToken.toAbortSignal()], timeout); + let request = null; + const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => { + composedSignal.unsubscribe(); + }); + let requestContentLength; + try { + if (onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' && (requestContentLength = await resolveBodyLength(headers, data)) !== 0) { + let _request = new Request(url, { + method: 'POST', + body: data, + duplex: 'half' + }); + let contentTypeHeader; + if (utils$1.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) { + headers.setContentType(contentTypeHeader); + } + if (_request.body) { + const [onProgress, flush] = progressEventDecorator(requestContentLength, progressEventReducer(asyncDecorator(onUploadProgress))); + data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush); + } + } + if (!utils$1.isString(withCredentials)) { + withCredentials = withCredentials ? 'include' : 'omit'; + } + + // Cloudflare Workers throws when credentials are defined + // see https://github.com/cloudflare/workerd/issues/902 + const isCredentialsSupported = isRequestSupported && 'credentials' in Request.prototype; + + // If data is FormData and Content-Type is multipart/form-data without boundary, + // delete it so fetch can set it correctly with the boundary + if (utils$1.isFormData(data)) { + const contentType = headers.getContentType(); + if (contentType && /^multipart\/form-data/i.test(contentType) && !/boundary=/i.test(contentType)) { + headers.delete('content-type'); + } + } + const resolvedOptions = { + ...fetchOptions, + signal: composedSignal, + method: method.toUpperCase(), + headers: headers.normalize().toJSON(), + body: data, + duplex: 'half', + credentials: isCredentialsSupported ? withCredentials : undefined + }; + request = isRequestSupported && new Request(url, resolvedOptions); + let response = await (isRequestSupported ? _fetch(request, fetchOptions) : _fetch(url, resolvedOptions)); + const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response'); + if (supportsResponseStream && (onDownloadProgress || isStreamResponse && unsubscribe)) { + const options = {}; + ['status', 'statusText', 'headers'].forEach(prop => { + options[prop] = response[prop]; + }); + const responseContentLength = utils$1.toFiniteNumber(response.headers.get('content-length')); + const [onProgress, flush] = onDownloadProgress && progressEventDecorator(responseContentLength, progressEventReducer(asyncDecorator(onDownloadProgress), true)) || []; + response = new Response(trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => { + flush && flush(); + unsubscribe && unsubscribe(); + }), options); + } + responseType = responseType || 'text'; + let responseData = await resolvers[utils$1.findKey(resolvers, responseType) || 'text'](response, config); + !isStreamResponse && unsubscribe && unsubscribe(); + return await new Promise((resolve, reject) => { + settle(resolve, reject, { + data: responseData, + headers: AxiosHeaders.from(response.headers), + status: response.status, + statusText: response.statusText, + config, + request + }); + }); + } catch (err) { + unsubscribe && unsubscribe(); + if (err && err.name === 'TypeError' && /Load failed|fetch/i.test(err.message)) { + throw Object.assign(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request, err && err.response), { + cause: err.cause || err + }); + } + throw AxiosError.from(err, err && err.code, config, request, err && err.response); + } + }; +}; +const seedCache = new Map(); +const getFetch = config => { + let env = config && config.env || {}; + const { + fetch, + Request, + Response + } = env; + const seeds = [Request, Response, fetch]; + let len = seeds.length, + i = len, + seed, + target, + map = seedCache; + while (i--) { + seed = seeds[i]; + target = map.get(seed); + target === undefined && map.set(seed, target = i ? new Map() : factory(env)); + map = target; + } + return target; +}; +getFetch(); + +/** + * Known adapters mapping. + * Provides environment-specific adapters for Axios: + * - `http` for Node.js + * - `xhr` for browsers + * - `fetch` for fetch API-based requests + * + * @type {Object} + */ +const knownAdapters = { + http: httpAdapter, + xhr: xhrAdapter, + fetch: { + get: getFetch + } +}; + +// Assign adapter names for easier debugging and identification +utils$1.forEach(knownAdapters, (fn, value) => { + if (fn) { + try { + Object.defineProperty(fn, 'name', { + value + }); + } catch (e) { + // eslint-disable-next-line no-empty + } + Object.defineProperty(fn, 'adapterName', { + value + }); + } +}); + +/** + * Render a rejection reason string for unknown or unsupported adapters + * + * @param {string} reason + * @returns {string} + */ +const renderReason = reason => `- ${reason}`; + +/** + * Check if the adapter is resolved (function, null, or false) + * + * @param {Function|null|false} adapter + * @returns {boolean} + */ +const isResolvedHandle = adapter => utils$1.isFunction(adapter) || adapter === null || adapter === false; + +/** + * Get the first suitable adapter from the provided list. + * Tries each adapter in order until a supported one is found. + * Throws an AxiosError if no adapter is suitable. + * + * @param {Array|string|Function} adapters - Adapter(s) by name or function. + * @param {Object} config - Axios request configuration + * @throws {AxiosError} If no suitable adapter is available + * @returns {Function} The resolved adapter function + */ +function getAdapter(adapters, config) { + adapters = utils$1.isArray(adapters) ? adapters : [adapters]; + const { + length + } = adapters; + let nameOrAdapter; + let adapter; + const rejectedReasons = {}; + for (let i = 0; i < length; i++) { + nameOrAdapter = adapters[i]; + let id; + adapter = nameOrAdapter; + if (!isResolvedHandle(nameOrAdapter)) { + adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()]; + if (adapter === undefined) { + throw new AxiosError(`Unknown adapter '${id}'`); + } + } + if (adapter && (utils$1.isFunction(adapter) || (adapter = adapter.get(config)))) { + break; + } + rejectedReasons[id || '#' + i] = adapter; + } + if (!adapter) { + const reasons = Object.entries(rejectedReasons).map(([id, state]) => `adapter ${id} ` + (state === false ? 'is not supported by the environment' : 'is not available in the build')); + let s = length ? reasons.length > 1 ? 'since :\n' + reasons.map(renderReason).join('\n') : ' ' + renderReason(reasons[0]) : 'as no adapter specified'; + throw new AxiosError(`There is no suitable adapter to dispatch the request ` + s, 'ERR_NOT_SUPPORT'); + } + return adapter; +} + +/** + * Exports Axios adapters and utility to resolve an adapter + */ +var adapters = { + /** + * Resolve an adapter from a list of adapter names or functions. + * @type {Function} + */ + getAdapter, + /** + * Exposes all known adapters + * @type {Object} + */ + adapters: knownAdapters +}; + +/** + * Throws a `CanceledError` if cancellation has been requested. + * + * @param {Object} config The config that is to be used for the request + * + * @returns {void} + */ +function throwIfCancellationRequested(config) { + if (config.cancelToken) { + config.cancelToken.throwIfRequested(); + } + if (config.signal && config.signal.aborted) { + throw new CanceledError(null, config); + } +} + +/** + * Dispatch a request to the server using the configured adapter. + * + * @param {object} config The config that is to be used for the request + * + * @returns {Promise} The Promise to be fulfilled + */ +function dispatchRequest(config) { + throwIfCancellationRequested(config); + config.headers = AxiosHeaders.from(config.headers); + + // Transform request data + config.data = transformData.call(config, config.transformRequest); + if (['post', 'put', 'patch'].indexOf(config.method) !== -1) { + config.headers.setContentType('application/x-www-form-urlencoded', false); + } + const adapter = adapters.getAdapter(config.adapter || defaults.adapter, config); + return adapter(config).then(function onAdapterResolution(response) { + throwIfCancellationRequested(config); + + // Transform response data + response.data = transformData.call(config, config.transformResponse, response); + response.headers = AxiosHeaders.from(response.headers); + return response; + }, function onAdapterRejection(reason) { + if (!isCancel(reason)) { + throwIfCancellationRequested(config); + + // Transform response data + if (reason && reason.response) { + reason.response.data = transformData.call(config, config.transformResponse, reason.response); + reason.response.headers = AxiosHeaders.from(reason.response.headers); + } + } + return Promise.reject(reason); + }); +} + +const validators$1 = {}; + +// eslint-disable-next-line func-names +['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => { + validators$1[type] = function validator(thing) { + return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type; + }; +}); +const deprecatedWarnings = {}; + +/** + * Transitional option validator + * + * @param {function|boolean?} validator - set to false if the transitional option has been removed + * @param {string?} version - deprecated version / removed since version + * @param {string?} message - some message with additional info + * + * @returns {function} + */ +validators$1.transitional = function transitional(validator, version, message) { + function formatMessage(opt, desc) { + return '[Axios v' + VERSION + "] Transitional option '" + opt + "'" + desc + (message ? '. ' + message : ''); + } + + // eslint-disable-next-line func-names + return (value, opt, opts) => { + if (validator === false) { + throw new AxiosError(formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')), AxiosError.ERR_DEPRECATED); + } + if (version && !deprecatedWarnings[opt]) { + deprecatedWarnings[opt] = true; + // eslint-disable-next-line no-console + console.warn(formatMessage(opt, ' has been deprecated since v' + version + ' and will be removed in the near future')); + } + return validator ? validator(value, opt, opts) : true; + }; +}; +validators$1.spelling = function spelling(correctSpelling) { + return (value, opt) => { + // eslint-disable-next-line no-console + console.warn(`${opt} is likely a misspelling of ${correctSpelling}`); + return true; + }; +}; + +/** + * Assert object's properties type + * + * @param {object} options + * @param {object} schema + * @param {boolean?} allowUnknown + * + * @returns {object} + */ + +function assertOptions(options, schema, allowUnknown) { + if (typeof options !== 'object') { + throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE); + } + const keys = Object.keys(options); + let i = keys.length; + while (i-- > 0) { + const opt = keys[i]; + const validator = schema[opt]; + if (validator) { + const value = options[opt]; + const result = value === undefined || validator(value, opt, options); + if (result !== true) { + throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE); + } + continue; + } + if (allowUnknown !== true) { + throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION); + } + } +} +var validator = { + assertOptions, + validators: validators$1 +}; + +const validators = validator.validators; + +/** + * Create a new instance of Axios + * + * @param {Object} instanceConfig The default config for the instance + * + * @return {Axios} A new instance of Axios + */ +class Axios { + constructor(instanceConfig) { + this.defaults = instanceConfig || {}; + this.interceptors = { + request: new InterceptorManager(), + response: new InterceptorManager() + }; + } + + /** + * Dispatch a request + * + * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults) + * @param {?Object} config + * + * @returns {Promise} The Promise to be fulfilled + */ + async request(configOrUrl, config) { + try { + return await this._request(configOrUrl, config); + } catch (err) { + if (err instanceof Error) { + let dummy = {}; + Error.captureStackTrace ? Error.captureStackTrace(dummy) : dummy = new Error(); + + // slice off the Error: ... line + const stack = (() => { + if (!dummy.stack) { + return ''; + } + const firstNewlineIndex = dummy.stack.indexOf('\n'); + return firstNewlineIndex === -1 ? '' : dummy.stack.slice(firstNewlineIndex + 1); + })(); + try { + if (!err.stack) { + err.stack = stack; + // match without the 2 top stack lines + } else if (stack) { + const firstNewlineIndex = stack.indexOf('\n'); + const secondNewlineIndex = firstNewlineIndex === -1 ? -1 : stack.indexOf('\n', firstNewlineIndex + 1); + const stackWithoutTwoTopLines = secondNewlineIndex === -1 ? '' : stack.slice(secondNewlineIndex + 1); + if (!String(err.stack).endsWith(stackWithoutTwoTopLines)) { + err.stack += '\n' + stack; + } + } + } catch (e) { + // ignore the case where "stack" is an un-writable property + } + } + throw err; + } + } + _request(configOrUrl, config) { + /*eslint no-param-reassign:0*/ + // Allow for axios('example/url'[, config]) a la fetch API + if (typeof configOrUrl === 'string') { + config = config || {}; + config.url = configOrUrl; + } else { + config = configOrUrl || {}; + } + config = mergeConfig(this.defaults, config); + const { + transitional, + paramsSerializer, + headers + } = config; + if (transitional !== undefined) { + validator.assertOptions(transitional, { + silentJSONParsing: validators.transitional(validators.boolean), + forcedJSONParsing: validators.transitional(validators.boolean), + clarifyTimeoutError: validators.transitional(validators.boolean), + legacyInterceptorReqResOrdering: validators.transitional(validators.boolean) + }, false); + } + if (paramsSerializer != null) { + if (utils$1.isFunction(paramsSerializer)) { + config.paramsSerializer = { + serialize: paramsSerializer + }; + } else { + validator.assertOptions(paramsSerializer, { + encode: validators.function, + serialize: validators.function + }, true); + } + } + + // Set config.allowAbsoluteUrls + if (config.allowAbsoluteUrls !== undefined) ; else if (this.defaults.allowAbsoluteUrls !== undefined) { + config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls; + } else { + config.allowAbsoluteUrls = true; + } + validator.assertOptions(config, { + baseUrl: validators.spelling('baseURL'), + withXsrfToken: validators.spelling('withXSRFToken') + }, true); + + // Set config.method + config.method = (config.method || this.defaults.method || 'get').toLowerCase(); + + // Flatten headers + let contextHeaders = headers && utils$1.merge(headers.common, headers[config.method]); + headers && utils$1.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], method => { + delete headers[method]; + }); + config.headers = AxiosHeaders.concat(contextHeaders, headers); + + // filter out skipped interceptors + const requestInterceptorChain = []; + let synchronousRequestInterceptors = true; + this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) { + if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) { + return; + } + synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous; + const transitional = config.transitional || transitionalDefaults; + const legacyInterceptorReqResOrdering = transitional && transitional.legacyInterceptorReqResOrdering; + if (legacyInterceptorReqResOrdering) { + requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected); + } else { + requestInterceptorChain.push(interceptor.fulfilled, interceptor.rejected); + } + }); + const responseInterceptorChain = []; + this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) { + responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected); + }); + let promise; + let i = 0; + let len; + if (!synchronousRequestInterceptors) { + const chain = [dispatchRequest.bind(this), undefined]; + chain.unshift(...requestInterceptorChain); + chain.push(...responseInterceptorChain); + len = chain.length; + promise = Promise.resolve(config); + while (i < len) { + promise = promise.then(chain[i++], chain[i++]); + } + return promise; + } + len = requestInterceptorChain.length; + let newConfig = config; + while (i < len) { + const onFulfilled = requestInterceptorChain[i++]; + const onRejected = requestInterceptorChain[i++]; + try { + newConfig = onFulfilled(newConfig); + } catch (error) { + onRejected.call(this, error); + break; + } + } + try { + promise = dispatchRequest.call(this, newConfig); + } catch (error) { + return Promise.reject(error); + } + i = 0; + len = responseInterceptorChain.length; + while (i < len) { + promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]); + } + return promise; + } + getUri(config) { + config = mergeConfig(this.defaults, config); + const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls); + return buildURL(fullPath, config.params, config.paramsSerializer); + } +} + +// Provide aliases for supported request methods +utils$1.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) { + /*eslint func-names:0*/ + Axios.prototype[method] = function (url, config) { + return this.request(mergeConfig(config || {}, { + method, + url, + data: (config || {}).data + })); + }; +}); +utils$1.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) { + function generateHTTPMethod(isForm) { + return function httpMethod(url, data, config) { + return this.request(mergeConfig(config || {}, { + method, + headers: isForm ? { + 'Content-Type': 'multipart/form-data' + } : {}, + url, + data + })); + }; + } + Axios.prototype[method] = generateHTTPMethod(); + Axios.prototype[method + 'Form'] = generateHTTPMethod(true); +}); + +/** + * A `CancelToken` is an object that can be used to request cancellation of an operation. + * + * @param {Function} executor The executor function. + * + * @returns {CancelToken} + */ +class CancelToken { + constructor(executor) { + if (typeof executor !== 'function') { + throw new TypeError('executor must be a function.'); + } + let resolvePromise; + this.promise = new Promise(function promiseExecutor(resolve) { + resolvePromise = resolve; + }); + const token = this; + + // eslint-disable-next-line func-names + this.promise.then(cancel => { + if (!token._listeners) return; + let i = token._listeners.length; + while (i-- > 0) { + token._listeners[i](cancel); + } + token._listeners = null; + }); + + // eslint-disable-next-line func-names + this.promise.then = onfulfilled => { + let _resolve; + // eslint-disable-next-line func-names + const promise = new Promise(resolve => { + token.subscribe(resolve); + _resolve = resolve; + }).then(onfulfilled); + promise.cancel = function reject() { + token.unsubscribe(_resolve); + }; + return promise; + }; + executor(function cancel(message, config, request) { + if (token.reason) { + // Cancellation has already been requested + return; + } + token.reason = new CanceledError(message, config, request); + resolvePromise(token.reason); + }); + } + + /** + * Throws a `CanceledError` if cancellation has been requested. + */ + throwIfRequested() { + if (this.reason) { + throw this.reason; + } + } + + /** + * Subscribe to the cancel signal + */ + + subscribe(listener) { + if (this.reason) { + listener(this.reason); + return; + } + if (this._listeners) { + this._listeners.push(listener); + } else { + this._listeners = [listener]; + } + } + + /** + * Unsubscribe from the cancel signal + */ + + unsubscribe(listener) { + if (!this._listeners) { + return; + } + const index = this._listeners.indexOf(listener); + if (index !== -1) { + this._listeners.splice(index, 1); + } + } + toAbortSignal() { + const controller = new AbortController(); + const abort = err => { + controller.abort(err); + }; + this.subscribe(abort); + controller.signal.unsubscribe = () => this.unsubscribe(abort); + return controller.signal; + } + + /** + * Returns an object that contains a new `CancelToken` and a function that, when called, + * cancels the `CancelToken`. + */ + static source() { + let cancel; + const token = new CancelToken(function executor(c) { + cancel = c; + }); + return { + token, + cancel + }; + } +} + +/** + * Syntactic sugar for invoking a function and expanding an array for arguments. + * + * Common use case would be to use `Function.prototype.apply`. + * + * ```js + * function f(x, y, z) {} + * const args = [1, 2, 3]; + * f.apply(null, args); + * ``` + * + * With `spread` this example can be re-written. + * + * ```js + * spread(function(x, y, z) {})([1, 2, 3]); + * ``` + * + * @param {Function} callback + * + * @returns {Function} + */ +function spread(callback) { + return function wrap(arr) { + return callback.apply(null, arr); + }; +} + +/** + * Determines whether the payload is an error thrown by Axios + * + * @param {*} payload The value to test + * + * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false + */ +function isAxiosError(payload) { + return utils$1.isObject(payload) && payload.isAxiosError === true; +} + +const HttpStatusCode = { + Continue: 100, + SwitchingProtocols: 101, + Processing: 102, + EarlyHints: 103, + Ok: 200, + Created: 201, + Accepted: 202, + NonAuthoritativeInformation: 203, + NoContent: 204, + ResetContent: 205, + PartialContent: 206, + MultiStatus: 207, + AlreadyReported: 208, + ImUsed: 226, + MultipleChoices: 300, + MovedPermanently: 301, + Found: 302, + SeeOther: 303, + NotModified: 304, + UseProxy: 305, + Unused: 306, + TemporaryRedirect: 307, + PermanentRedirect: 308, + BadRequest: 400, + Unauthorized: 401, + PaymentRequired: 402, + Forbidden: 403, + NotFound: 404, + MethodNotAllowed: 405, + NotAcceptable: 406, + ProxyAuthenticationRequired: 407, + RequestTimeout: 408, + Conflict: 409, + Gone: 410, + LengthRequired: 411, + PreconditionFailed: 412, + PayloadTooLarge: 413, + UriTooLong: 414, + UnsupportedMediaType: 415, + RangeNotSatisfiable: 416, + ExpectationFailed: 417, + ImATeapot: 418, + MisdirectedRequest: 421, + UnprocessableEntity: 422, + Locked: 423, + FailedDependency: 424, + TooEarly: 425, + UpgradeRequired: 426, + PreconditionRequired: 428, + TooManyRequests: 429, + RequestHeaderFieldsTooLarge: 431, + UnavailableForLegalReasons: 451, + InternalServerError: 500, + NotImplemented: 501, + BadGateway: 502, + ServiceUnavailable: 503, + GatewayTimeout: 504, + HttpVersionNotSupported: 505, + VariantAlsoNegotiates: 506, + InsufficientStorage: 507, + LoopDetected: 508, + NotExtended: 510, + NetworkAuthenticationRequired: 511, + WebServerIsDown: 521, + ConnectionTimedOut: 522, + OriginIsUnreachable: 523, + TimeoutOccurred: 524, + SslHandshakeFailed: 525, + InvalidSslCertificate: 526 +}; +Object.entries(HttpStatusCode).forEach(([key, value]) => { + HttpStatusCode[value] = key; +}); + +/** + * Create an instance of Axios + * + * @param {Object} defaultConfig The default config for the instance + * + * @returns {Axios} A new instance of Axios + */ +function createInstance(defaultConfig) { + const context = new Axios(defaultConfig); + const instance = bind(Axios.prototype.request, context); + + // Copy axios.prototype to instance + utils$1.extend(instance, Axios.prototype, context, { + allOwnKeys: true + }); + + // Copy context to instance + utils$1.extend(instance, context, null, { + allOwnKeys: true + }); + + // Factory for creating new instances + instance.create = function create(instanceConfig) { + return createInstance(mergeConfig(defaultConfig, instanceConfig)); + }; + return instance; +} + +// Create the default instance to be exported +const axios = createInstance(defaults); + +// Expose Axios class to allow class inheritance +axios.Axios = Axios; + +// Expose Cancel & CancelToken +axios.CanceledError = CanceledError; +axios.CancelToken = CancelToken; +axios.isCancel = isCancel; +axios.VERSION = VERSION; +axios.toFormData = toFormData; + +// Expose AxiosError class +axios.AxiosError = AxiosError; + +// alias for CanceledError for backward compatibility +axios.Cancel = axios.CanceledError; + +// Expose all/spread +axios.all = function all(promises) { + return Promise.all(promises); +}; +axios.spread = spread; + +// Expose isAxiosError +axios.isAxiosError = isAxiosError; + +// Expose mergeConfig +axios.mergeConfig = mergeConfig; +axios.AxiosHeaders = AxiosHeaders; +axios.formToJSON = thing => formDataToJSON(utils$1.isHTMLForm(thing) ? new FormData(thing) : thing); +axios.getAdapter = adapters.getAdapter; +axios.HttpStatusCode = HttpStatusCode; +axios.default = axios; + +module.exports = axios; +//# sourceMappingURL=axios.cjs.map diff --git a/server/api/node_modules/axios/dist/node/axios.cjs.map b/server/api/node_modules/axios/dist/node/axios.cjs.map new file mode 100644 index 0000000..f7411a6 --- /dev/null +++ b/server/api/node_modules/axios/dist/node/axios.cjs.map @@ -0,0 +1 @@ +{"version":3,"file":"axios.cjs","sources":["../../lib/helpers/bind.js","../../lib/utils.js","../../lib/core/AxiosError.js","../../lib/helpers/toFormData.js","../../lib/helpers/AxiosURLSearchParams.js","../../lib/helpers/buildURL.js","../../lib/core/InterceptorManager.js","../../lib/defaults/transitional.js","../../lib/platform/node/classes/URLSearchParams.js","../../lib/platform/node/index.js","../../lib/platform/common/utils.js","../../lib/platform/index.js","../../lib/helpers/toURLEncodedForm.js","../../lib/helpers/formDataToJSON.js","../../lib/defaults/index.js","../../lib/helpers/parseHeaders.js","../../lib/core/AxiosHeaders.js","../../lib/core/transformData.js","../../lib/cancel/isCancel.js","../../lib/cancel/CanceledError.js","../../lib/core/settle.js","../../lib/helpers/isAbsoluteURL.js","../../lib/helpers/combineURLs.js","../../lib/core/buildFullPath.js","../../node_modules/proxy-from-env/index.js","../../lib/env/data.js","../../lib/helpers/parseProtocol.js","../../lib/helpers/fromDataURI.js","../../lib/helpers/AxiosTransformStream.js","../../lib/helpers/readBlob.js","../../lib/helpers/formDataToStream.js","../../lib/helpers/ZlibHeaderTransformStream.js","../../lib/helpers/callbackify.js","../../lib/helpers/shouldBypassProxy.js","../../lib/helpers/speedometer.js","../../lib/helpers/throttle.js","../../lib/helpers/progressEventReducer.js","../../lib/helpers/estimateDataURLDecodedBytes.js","../../lib/adapters/http.js","../../lib/helpers/isURLSameOrigin.js","../../lib/helpers/cookies.js","../../lib/core/mergeConfig.js","../../lib/helpers/resolveConfig.js","../../lib/adapters/xhr.js","../../lib/helpers/composeSignals.js","../../lib/helpers/trackStream.js","../../lib/adapters/fetch.js","../../lib/adapters/adapters.js","../../lib/core/dispatchRequest.js","../../lib/helpers/validator.js","../../lib/core/Axios.js","../../lib/cancel/CancelToken.js","../../lib/helpers/spread.js","../../lib/helpers/isAxiosError.js","../../lib/helpers/HttpStatusCode.js","../../lib/axios.js"],"sourcesContent":["'use strict';\n\n/**\n * Create a bound version of a function with a specified `this` context\n *\n * @param {Function} fn - The function to bind\n * @param {*} thisArg - The value to be passed as the `this` parameter\n * @returns {Function} A new function that will call the original function with the specified `this` context\n */\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst { toString } = Object.prototype;\nconst { getPrototypeOf } = Object;\nconst { iterator, toStringTag } = Symbol;\n\nconst kindOf = ((cache) => (thing) => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type;\n};\n\nconst typeOfTest = (type) => (thing) => typeof thing === type;\n\n/**\n * Determine if a value is a non-null object\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst { isArray } = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return (\n val !== null &&\n !isUndefined(val) &&\n val.constructor !== null &&\n !isUndefined(val.constructor) &&\n isFunction(val.constructor.isBuffer) &&\n val.constructor.isBuffer(val)\n );\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n result = ArrayBuffer.isView(val);\n } else {\n result = val && val.buffer && isArrayBuffer(val.buffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = (thing) => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (\n (prototype === null ||\n prototype === Object.prototype ||\n Object.getPrototypeOf(prototype) === null) &&\n !(toStringTag in val) &&\n !(iterator in val)\n );\n};\n\n/**\n * Determine if a value is an empty object (safely handles Buffers)\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an empty object, otherwise false\n */\nconst isEmptyObject = (val) => {\n // Early return for non-objects or Buffers to prevent RangeError\n if (!isObject(val) || isBuffer(val)) {\n return false;\n }\n\n try {\n return Object.keys(val).length === 0 && Object.getPrototypeOf(val) === Object.prototype;\n } catch (e) {\n // Fallback for any other objects that might cause RangeError with Object.keys()\n return false;\n }\n};\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a React Native Blob\n * React Native \"blob\": an object with a `uri` attribute. Optionally, it can\n * also have a `name` and `type` attribute to specify filename and content type\n *\n * @see https://github.com/facebook/react-native/blob/26684cf3adf4094eb6c405d345a75bf8c7c0bf88/Libraries/Network/FormData.js#L68-L71\n * \n * @param {*} value The value to test\n * \n * @returns {boolean} True if value is a React Native Blob, otherwise false\n */\nconst isReactNativeBlob = (value) => {\n return !!(value && typeof value.uri !== 'undefined');\n}\n\n/**\n * Determine if environment is React Native\n * ReactNative `FormData` has a non-standard `getParts()` method\n * \n * @param {*} formData The formData to test\n * \n * @returns {boolean} True if environment is React Native, otherwise false\n */\nconst isReactNative = (formData) => formData && typeof formData.getParts !== 'undefined';\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction getGlobal() {\n if (typeof globalThis !== 'undefined') return globalThis;\n if (typeof self !== 'undefined') return self;\n if (typeof window !== 'undefined') return window;\n if (typeof global !== 'undefined') return global;\n return {};\n}\n\nconst G = getGlobal();\nconst FormDataCtor = typeof G.FormData !== 'undefined' ? G.FormData : undefined;\n\nconst isFormData = (thing) => {\n if (!thing) return false;\n if (FormDataCtor && thing instanceof FormDataCtor) return true;\n // Reject plain objects inheriting directly from Object.prototype so prototype-pollution gadgets can't spoof FormData (GHSA-6chq-wfr3-2hj9).\n const proto = getPrototypeOf(thing);\n if (!proto || proto === Object.prototype) return false;\n if (!isFunction(thing.append)) return false;\n const kind = kindOf(thing);\n return kind === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]');\n};\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = [\n 'ReadableStream',\n 'Request',\n 'Response',\n 'Headers',\n].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => {\n return str.trim ? str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n};\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Object} [options]\n * @param {Boolean} [options.allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, { allOwnKeys = false } = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Buffer check\n if (isBuffer(obj)) {\n return;\n }\n\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\n/**\n * Finds a key in an object, case-insensitive, returning the actual key name.\n * Returns null if the object is a Buffer or if no match is found.\n *\n * @param {Object} obj - The object to search.\n * @param {string} key - The key to find (case-insensitive).\n * @returns {?string} The actual key name if found, otherwise null.\n */\nfunction findKey(obj, key) {\n if (isBuffer(obj)) {\n return null;\n }\n\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== 'undefined') return globalThis;\n return typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : global;\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * const result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const { caseless, skipUndefined } = (isContextDefined(this) && this) || {};\n const result = {};\n const assignValue = (val, key) => {\n // Skip dangerous property names to prevent prototype pollution\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return;\n }\n\n const targetKey = (caseless && findKey(result, key)) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else if (!skipUndefined || !isUndefined(val)) {\n result[targetKey] = val;\n }\n };\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Object} [options]\n * @param {Boolean} [options.allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, { allOwnKeys } = {}) => {\n forEach(\n b,\n (val, key) => {\n if (thisArg && isFunction(val)) {\n Object.defineProperty(a, key, {\n value: bind(val, thisArg),\n writable: true,\n enumerable: true,\n configurable: true,\n });\n } else {\n Object.defineProperty(a, key, {\n value: val,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n }\n },\n { allOwnKeys }\n );\n return a;\n};\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xfeff) {\n content = content.slice(1);\n }\n return content;\n};\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n Object.defineProperty(constructor.prototype, 'constructor', {\n value: constructor,\n writable: true,\n enumerable: false,\n configurable: true,\n });\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype,\n });\n props && Object.assign(constructor.prototype, props);\n};\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n};\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n};\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n};\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = ((TypedArray) => {\n // eslint-disable-next-line func-names\n return (thing) => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[iterator];\n\n const _iterator = generator.call(obj);\n\n let result;\n\n while ((result = _iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n};\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n};\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = (str) => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g, function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n });\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (\n ({ hasOwnProperty }) =>\n (obj, prop) =>\n hasOwnProperty.call(obj, prop)\n)(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n};\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error(\"Can not rewrite read-only method '\" + name + \"'\");\n };\n }\n });\n};\n\n/**\n * Converts an array or a delimited string into an object set with values as keys and true as values.\n * Useful for fast membership checks.\n *\n * @param {Array|string} arrayOrString - The array or string to convert.\n * @param {string} delimiter - The delimiter to use if input is a string.\n * @returns {Object} An object with keys from the array or string, values set to true.\n */\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach((value) => {\n obj[value] = true;\n });\n };\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n};\n\nconst noop = () => {};\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite((value = +value)) ? value : defaultValue;\n};\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(\n thing &&\n isFunction(thing.append) &&\n thing[toStringTag] === 'FormData' &&\n thing[iterator]\n );\n}\n\n/**\n * Recursively converts an object to a JSON-compatible object, handling circular references and Buffers.\n *\n * @param {Object} obj - The object to convert.\n * @returns {Object} The JSON-compatible object.\n */\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n //Buffer check\n if (isBuffer(source)) {\n return source;\n }\n\n if (!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n };\n\n return visit(obj, 0);\n};\n\n/**\n * Determines if a value is an async function.\n *\n * @param {*} thing - The value to test.\n * @returns {boolean} True if value is an async function, otherwise false.\n */\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\n/**\n * Determines if a value is thenable (has then and catch methods).\n *\n * @param {*} thing - The value to test.\n * @returns {boolean} True if value is thenable, otherwise false.\n */\nconst isThenable = (thing) =>\n thing &&\n (isObject(thing) || isFunction(thing)) &&\n isFunction(thing.then) &&\n isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\n/**\n * Provides a cross-platform setImmediate implementation.\n * Uses native setImmediate if available, otherwise falls back to postMessage or setTimeout.\n *\n * @param {boolean} setImmediateSupported - Whether setImmediate is supported.\n * @param {boolean} postMessageSupported - Whether postMessage is supported.\n * @returns {Function} A function to schedule a callback asynchronously.\n */\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported\n ? ((token, callbacks) => {\n _global.addEventListener(\n 'message',\n ({ source, data }) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n },\n false\n );\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, '*');\n };\n })(`axios@${Math.random()}`, [])\n : (cb) => setTimeout(cb);\n})(typeof setImmediate === 'function', isFunction(_global.postMessage));\n\n/**\n * Schedules a microtask or asynchronous callback as soon as possible.\n * Uses queueMicrotask if available, otherwise falls back to process.nextTick or _setImmediate.\n *\n * @type {Function}\n */\nconst asap =\n typeof queueMicrotask !== 'undefined'\n ? queueMicrotask.bind(_global)\n : (typeof process !== 'undefined' && process.nextTick) || _setImmediate;\n\n// *********************\n\nconst isIterable = (thing) => thing != null && isFunction(thing[iterator]);\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isEmptyObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isReactNativeBlob,\n isReactNative,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap,\n isIterable,\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\nclass AxiosError extends Error {\n static from(error, code, config, request, response, customProps) {\n const axiosError = new AxiosError(error.message, code || error.code, config, request, response);\n axiosError.cause = error;\n axiosError.name = error.name;\n\n // Preserve status from the original error if not already set from response\n if (error.status != null && axiosError.status == null) {\n axiosError.status = error.status;\n }\n\n customProps && Object.assign(axiosError, customProps);\n return axiosError;\n }\n\n /**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\n constructor(message, code, config, request, response) {\n super(message);\n\n // Make message enumerable to maintain backward compatibility\n // The native Error constructor sets message as non-enumerable,\n // but axios < v1.13.3 had it as enumerable\n Object.defineProperty(this, 'message', {\n value: message,\n enumerable: true,\n writable: true,\n configurable: true,\n });\n\n this.name = 'AxiosError';\n this.isAxiosError = true;\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status;\n }\n }\n\n toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.status,\n };\n }\n}\n\n// This can be changed to static properties as soon as the parser options in .eslint.cjs are updated.\nAxiosError.ERR_BAD_OPTION_VALUE = 'ERR_BAD_OPTION_VALUE';\nAxiosError.ERR_BAD_OPTION = 'ERR_BAD_OPTION';\nAxiosError.ECONNABORTED = 'ECONNABORTED';\nAxiosError.ETIMEDOUT = 'ETIMEDOUT';\nAxiosError.ERR_NETWORK = 'ERR_NETWORK';\nAxiosError.ERR_FR_TOO_MANY_REDIRECTS = 'ERR_FR_TOO_MANY_REDIRECTS';\nAxiosError.ERR_DEPRECATED = 'ERR_DEPRECATED';\nAxiosError.ERR_BAD_RESPONSE = 'ERR_BAD_RESPONSE';\nAxiosError.ERR_BAD_REQUEST = 'ERR_BAD_REQUEST';\nAxiosError.ERR_CANCELED = 'ERR_CANCELED';\nAxiosError.ERR_NOT_SUPPORT = 'ERR_NOT_SUPPORT';\nAxiosError.ERR_INVALID_URL = 'ERR_INVALID_URL';\nAxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED = 'ERR_FORM_DATA_DEPTH_EXCEEDED';\n\nexport default AxiosError;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path\n .concat(key)\n .map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n })\n .join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(\n options,\n {\n metaTokens: true,\n dots: false,\n indexes: false,\n },\n false,\n function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n }\n );\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || (typeof Blob !== 'undefined' && Blob);\n const maxDepth = options.maxDepth === undefined ? 100 : options.maxDepth;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (utils.isBoolean(value)) {\n return value.toString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (utils.isReactNative(formData) && utils.isReactNativeBlob(value)) {\n formData.append(renderKey(path, key, dots), convertValue(value));\n return false;\n }\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value)))\n ) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) &&\n formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true\n ? renderKey([key], index, dots)\n : indexes === null\n ? key\n : key + '[]',\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable,\n });\n\n function build(value, path, depth = 0) {\n if (utils.isUndefined(value)) return;\n\n if (depth > maxDepth) {\n throw new AxiosError(\n 'Object is too deeply nested (' + depth + ' levels). Max depth: ' + maxDepth,\n AxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED\n );\n }\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result =\n !(utils.isUndefined(el) || el === null) &&\n visitor.call(formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers);\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key], depth + 1);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder\n ? function (value) {\n return encoder.call(this, value, encode);\n }\n : encode;\n\n return this._pairs\n .map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '')\n .join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces URL-encoded forms of `:`, `$`, `,`, and spaces with\n * their plain counterparts (`:`, `$`, `,`, `+`).\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val)\n .replace(/%3A/gi, ':')\n .replace(/%24/g, '$')\n .replace(/%2C/gi, ',')\n .replace(/%20/g, '+');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?(object|Function)} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n if (!params) {\n return url;\n }\n\n const _encode = (options && options.encode) || encode;\n\n const _options = utils.isFunction(options)\n ? {\n serialize: options,\n }\n : options;\n\n const serializeFn = _options && _options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, _options);\n } else {\n serializedParams = utils.isURLSearchParams(params)\n ? params.toString()\n : new AxiosURLSearchParams(params, _options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf('#');\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n * @param {Object} options The options for the interceptor, synchronous and runWhen\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null,\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {void}\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false,\n legacyInterceptorReqResOrdering: true,\n};\n","'use strict';\n\nimport url from 'url';\nexport default url.URLSearchParams;\n","import crypto from 'crypto';\nimport URLSearchParams from './classes/URLSearchParams.js';\nimport FormData from './classes/FormData.js';\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz';\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT,\n};\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const { length } = alphabet;\n const randomValues = new Uint32Array(size);\n crypto.randomFillSync(randomValues);\n for (let i = 0; i < size; i++) {\n str += alphabet[randomValues[i] % length];\n }\n\n return str;\n};\n\nexport default {\n isNode: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob: (typeof Blob !== 'undefined' && Blob) || null,\n },\n ALPHABET,\n generateString,\n protocols: ['http', 'https', 'file', 'data'],\n};\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = (typeof navigator === 'object' && navigator) || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv =\n hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = (hasBrowserEnv && window.location.href) || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n _navigator as navigator,\n origin,\n};\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform,\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), {\n visitor: function (value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n },\n ...options,\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map((match) => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = utils.isArray(target[name])\n ? target[name].concat(value)\n : [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\nconst own = (obj, key) => (obj != null && utils.hasOwnProp(obj, key) ? obj[key] : undefined);\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [\n function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data) ||\n utils.isReadableStream(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n const formSerializer = own(this, 'formSerializer');\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, formSerializer).toString();\n }\n\n if (\n (isFileList = utils.isFileList(data)) ||\n contentType.indexOf('multipart/form-data') > -1\n ) {\n const env = own(this, 'env');\n const _FormData = env && env.FormData;\n\n return toFormData(\n isFileList ? { 'files[]': data } : data,\n _FormData && new _FormData(),\n formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n },\n ],\n\n transformResponse: [\n function transformResponse(data) {\n const transitional = own(this, 'transitional') || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const responseType = own(this, 'responseType');\n const JSONRequested = responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (\n data &&\n utils.isString(data) &&\n ((forcedJSONParsing && !responseType) || JSONRequested)\n ) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data, own(this, 'parseReviver'));\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, own(this, 'response'));\n }\n throw e;\n }\n }\n }\n\n return data;\n },\n ],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob,\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n Accept: 'application/json, text/plain, */*',\n 'Content-Type': undefined,\n },\n },\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from '../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age',\n 'authorization',\n 'content-length',\n 'content-type',\n 'etag',\n 'expires',\n 'from',\n 'host',\n 'if-modified-since',\n 'if-unmodified-since',\n 'last-modified',\n 'location',\n 'max-forwards',\n 'proxy-authorization',\n 'referer',\n 'retry-after',\n 'user-agent',\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default (rawHeaders) => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders &&\n rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nconst INVALID_HEADER_VALUE_CHARS_RE = /[^\\x09\\x20-\\x7E\\x80-\\xFF]/g;\n\nfunction trimSPorHTAB(str) {\n let start = 0;\n let end = str.length;\n\n while (start < end) {\n const code = str.charCodeAt(start);\n\n if (code !== 0x09 && code !== 0x20) {\n break;\n }\n\n start += 1;\n }\n\n while (end > start) {\n const code = str.charCodeAt(end - 1);\n\n if (code !== 0x09 && code !== 0x20) {\n break;\n }\n\n end -= 1;\n }\n\n return start === 0 && end === str.length ? str : str.slice(start, end);\n}\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction sanitizeHeaderValue(str) {\n return trimSPorHTAB(str.replace(INVALID_HEADER_VALUE_CHARS_RE, ''));\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : sanitizeHeaderValue(String(value));\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header\n .trim()\n .toLowerCase()\n .replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach((methodName) => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function (arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true,\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if (\n !key ||\n self[key] === undefined ||\n _rewrite === true ||\n (_rewrite === undefined && self[key] !== false)\n ) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite);\n } else if (utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isObject(header) && utils.isIterable(header)) {\n let obj = {},\n dest,\n key;\n for (const entry of header) {\n if (!utils.isArray(entry)) {\n throw TypeError('Object iterator must return a key-value pair');\n }\n\n obj[(key = entry[0])] = (dest = obj[key])\n ? utils.isArray(dest)\n ? [...dest, entry[1]]\n : [dest, entry[1]]\n : entry[1];\n }\n\n setHeaders(obj, valueOrRewrite);\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(\n key &&\n this[key] !== undefined &&\n (!matcher || matchHeaderValue(this, this[key], key, matcher))\n );\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if (!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null &&\n value !== false &&\n (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON())\n .map(([header, value]) => header + ': ' + value)\n .join('\\n');\n }\n\n getSetCookie() {\n return this.get('set-cookie') || [];\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals =\n (this[$internals] =\n this[$internals] =\n {\n accessors: {},\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor([\n 'Content-Type',\n 'Content-Length',\n 'Accept',\n 'Accept-Encoding',\n 'User-Agent',\n 'Authorization',\n]);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({ value }, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n },\n };\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from '../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\n\nclass CanceledError extends AxiosError {\n /**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\n constructor(message, config, request) {\n super(message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n this.__CANCEL__ = true;\n }\n}\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(\n new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][\n Math.floor(response.status / 100) - 4\n ],\n response.config,\n response.request,\n response\n )\n );\n }\n}\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n if (typeof url !== 'string') {\n return false;\n }\n\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) {\n let isRelativeUrl = !isAbsoluteURL(requestedURL);\n if (baseURL && (isRelativeUrl || allowAbsoluteUrls === false)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\nvar DEFAULT_PORTS = {\n ftp: 21,\n gopher: 70,\n http: 80,\n https: 443,\n ws: 80,\n wss: 443,\n};\n\nfunction parseUrl(urlString) {\n try {\n return new URL(urlString);\n } catch {\n return null;\n }\n}\n\n/**\n * @param {string|object|URL} url - The URL as a string or URL instance, or a\n * compatible object (such as the result from legacy url.parse).\n * @return {string} The URL of the proxy that should handle the request to the\n * given URL. If no proxy is set, this will be an empty string.\n */\nexport function getProxyForUrl(url) {\n var parsedUrl = (typeof url === 'string' ? parseUrl(url) : url) || {};\n var proto = parsedUrl.protocol;\n var hostname = parsedUrl.host;\n var port = parsedUrl.port;\n if (typeof hostname !== 'string' || !hostname || typeof proto !== 'string') {\n return ''; // Don't proxy URLs without a valid scheme or host.\n }\n\n proto = proto.split(':', 1)[0];\n // Stripping ports in this way instead of using parsedUrl.hostname to make\n // sure that the brackets around IPv6 addresses are kept.\n hostname = hostname.replace(/:\\d*$/, '');\n port = parseInt(port) || DEFAULT_PORTS[proto] || 0;\n if (!shouldProxy(hostname, port)) {\n return ''; // Don't proxy URLs that match NO_PROXY.\n }\n\n var proxy = getEnv(proto + '_proxy') || getEnv('all_proxy');\n if (proxy && proxy.indexOf('://') === -1) {\n // Missing scheme in proxy, default to the requested URL's scheme.\n proxy = proto + '://' + proxy;\n }\n return proxy;\n}\n\n/**\n * Determines whether a given URL should be proxied.\n *\n * @param {string} hostname - The host name of the URL.\n * @param {number} port - The effective port of the URL.\n * @returns {boolean} Whether the given URL should be proxied.\n * @private\n */\nfunction shouldProxy(hostname, port) {\n var NO_PROXY = getEnv('no_proxy').toLowerCase();\n if (!NO_PROXY) {\n return true; // Always proxy if NO_PROXY is not set.\n }\n if (NO_PROXY === '*') {\n return false; // Never proxy if wildcard is set.\n }\n\n return NO_PROXY.split(/[,\\s]/).every(function(proxy) {\n if (!proxy) {\n return true; // Skip zero-length hosts.\n }\n var parsedProxy = proxy.match(/^(.+):(\\d+)$/);\n var parsedProxyHostname = parsedProxy ? parsedProxy[1] : proxy;\n var parsedProxyPort = parsedProxy ? parseInt(parsedProxy[2]) : 0;\n if (parsedProxyPort && parsedProxyPort !== port) {\n return true; // Skip if ports don't match.\n }\n\n if (!/^[.*]/.test(parsedProxyHostname)) {\n // No wildcards, so stop proxying if there is an exact match.\n return hostname !== parsedProxyHostname;\n }\n\n if (parsedProxyHostname.charAt(0) === '*') {\n // Remove leading wildcard.\n parsedProxyHostname = parsedProxyHostname.slice(1);\n }\n // Stop proxying if the hostname ends with the no_proxy host.\n return !hostname.endsWith(parsedProxyHostname);\n });\n}\n\n/**\n * Get the value for an environment variable.\n *\n * @param {string} key - The name of the environment variable.\n * @return {string} The value of the environment variable.\n * @private\n */\nfunction getEnv(key) {\n return process.env[key.toLowerCase()] || process.env[key.toUpperCase()] || '';\n}\n","export const VERSION = \"1.15.1\";","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return (match && match[1]) || '';\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport parseProtocol from './parseProtocol.js';\nimport platform from '../platform/index.js';\n\nconst DATA_URL_PATTERN = /^(?:([^;]+);)?(?:[^;]+;)?(base64|),([\\s\\S]*)$/;\n\n/**\n * Parse data uri to a Buffer or Blob\n *\n * @param {String} uri\n * @param {?Boolean} asBlob\n * @param {?Object} options\n * @param {?Function} options.Blob\n *\n * @returns {Buffer|Blob}\n */\nexport default function fromDataURI(uri, asBlob, options) {\n const _Blob = (options && options.Blob) || platform.classes.Blob;\n const protocol = parseProtocol(uri);\n\n if (asBlob === undefined && _Blob) {\n asBlob = true;\n }\n\n if (protocol === 'data') {\n uri = protocol.length ? uri.slice(protocol.length + 1) : uri;\n\n const match = DATA_URL_PATTERN.exec(uri);\n\n if (!match) {\n throw new AxiosError('Invalid URL', AxiosError.ERR_INVALID_URL);\n }\n\n const mime = match[1];\n const isBase64 = match[2];\n const body = match[3];\n const buffer = Buffer.from(decodeURIComponent(body), isBase64 ? 'base64' : 'utf8');\n\n if (asBlob) {\n if (!_Blob) {\n throw new AxiosError('Blob is not supported', AxiosError.ERR_NOT_SUPPORT);\n }\n\n return new _Blob([buffer], { type: mime });\n }\n\n return buffer;\n }\n\n throw new AxiosError('Unsupported protocol ' + protocol, AxiosError.ERR_NOT_SUPPORT);\n}\n","'use strict';\n\nimport stream from 'stream';\nimport utils from '../utils.js';\n\nconst kInternals = Symbol('internals');\n\nclass AxiosTransformStream extends stream.Transform {\n constructor(options) {\n options = utils.toFlatObject(\n options,\n {\n maxRate: 0,\n chunkSize: 64 * 1024,\n minChunkSize: 100,\n timeWindow: 500,\n ticksRate: 2,\n samplesCount: 15,\n },\n null,\n (prop, source) => {\n return !utils.isUndefined(source[prop]);\n }\n );\n\n super({\n readableHighWaterMark: options.chunkSize,\n });\n\n const internals = (this[kInternals] = {\n timeWindow: options.timeWindow,\n chunkSize: options.chunkSize,\n maxRate: options.maxRate,\n minChunkSize: options.minChunkSize,\n bytesSeen: 0,\n isCaptured: false,\n notifiedBytesLoaded: 0,\n ts: Date.now(),\n bytes: 0,\n onReadCallback: null,\n });\n\n this.on('newListener', (event) => {\n if (event === 'progress') {\n if (!internals.isCaptured) {\n internals.isCaptured = true;\n }\n }\n });\n }\n\n _read(size) {\n const internals = this[kInternals];\n\n if (internals.onReadCallback) {\n internals.onReadCallback();\n }\n\n return super._read(size);\n }\n\n _transform(chunk, encoding, callback) {\n const internals = this[kInternals];\n const maxRate = internals.maxRate;\n\n const readableHighWaterMark = this.readableHighWaterMark;\n\n const timeWindow = internals.timeWindow;\n\n const divider = 1000 / timeWindow;\n const bytesThreshold = maxRate / divider;\n const minChunkSize =\n internals.minChunkSize !== false\n ? Math.max(internals.minChunkSize, bytesThreshold * 0.01)\n : 0;\n\n const pushChunk = (_chunk, _callback) => {\n const bytes = Buffer.byteLength(_chunk);\n internals.bytesSeen += bytes;\n internals.bytes += bytes;\n\n internals.isCaptured && this.emit('progress', internals.bytesSeen);\n\n if (this.push(_chunk)) {\n process.nextTick(_callback);\n } else {\n internals.onReadCallback = () => {\n internals.onReadCallback = null;\n process.nextTick(_callback);\n };\n }\n };\n\n const transformChunk = (_chunk, _callback) => {\n const chunkSize = Buffer.byteLength(_chunk);\n let chunkRemainder = null;\n let maxChunkSize = readableHighWaterMark;\n let bytesLeft;\n let passed = 0;\n\n if (maxRate) {\n const now = Date.now();\n\n if (!internals.ts || (passed = now - internals.ts) >= timeWindow) {\n internals.ts = now;\n bytesLeft = bytesThreshold - internals.bytes;\n internals.bytes = bytesLeft < 0 ? -bytesLeft : 0;\n passed = 0;\n }\n\n bytesLeft = bytesThreshold - internals.bytes;\n }\n\n if (maxRate) {\n if (bytesLeft <= 0) {\n // next time window\n return setTimeout(() => {\n _callback(null, _chunk);\n }, timeWindow - passed);\n }\n\n if (bytesLeft < maxChunkSize) {\n maxChunkSize = bytesLeft;\n }\n }\n\n if (maxChunkSize && chunkSize > maxChunkSize && chunkSize - maxChunkSize > minChunkSize) {\n chunkRemainder = _chunk.subarray(maxChunkSize);\n _chunk = _chunk.subarray(0, maxChunkSize);\n }\n\n pushChunk(\n _chunk,\n chunkRemainder\n ? () => {\n process.nextTick(_callback, null, chunkRemainder);\n }\n : _callback\n );\n };\n\n transformChunk(chunk, function transformNextChunk(err, _chunk) {\n if (err) {\n return callback(err);\n }\n\n if (_chunk) {\n transformChunk(_chunk, transformNextChunk);\n } else {\n callback(null);\n }\n });\n }\n}\n\nexport default AxiosTransformStream;\n","const { asyncIterator } = Symbol;\n\nconst readBlob = async function* (blob) {\n if (blob.stream) {\n yield* blob.stream();\n } else if (blob.arrayBuffer) {\n yield await blob.arrayBuffer();\n } else if (blob[asyncIterator]) {\n yield* blob[asyncIterator]();\n } else {\n yield blob;\n }\n};\n\nexport default readBlob;\n","import util from 'util';\nimport { Readable } from 'stream';\nimport utils from '../utils.js';\nimport readBlob from './readBlob.js';\nimport platform from '../platform/index.js';\n\nconst BOUNDARY_ALPHABET = platform.ALPHABET.ALPHA_DIGIT + '-_';\n\nconst textEncoder = typeof TextEncoder === 'function' ? new TextEncoder() : new util.TextEncoder();\n\nconst CRLF = '\\r\\n';\nconst CRLF_BYTES = textEncoder.encode(CRLF);\nconst CRLF_BYTES_COUNT = 2;\n\nclass FormDataPart {\n constructor(name, value) {\n const { escapeName } = this.constructor;\n const isStringValue = utils.isString(value);\n\n let headers = `Content-Disposition: form-data; name=\"${escapeName(name)}\"${\n !isStringValue && value.name ? `; filename=\"${escapeName(value.name)}\"` : ''\n }${CRLF}`;\n\n if (isStringValue) {\n value = textEncoder.encode(String(value).replace(/\\r?\\n|\\r\\n?/g, CRLF));\n } else {\n const safeType = String(value.type || 'application/octet-stream').replace(/[\\r\\n]/g, '');\n headers += `Content-Type: ${safeType}${CRLF}`;\n }\n\n this.headers = textEncoder.encode(headers + CRLF);\n\n this.contentLength = isStringValue ? value.byteLength : value.size;\n\n this.size = this.headers.byteLength + this.contentLength + CRLF_BYTES_COUNT;\n\n this.name = name;\n this.value = value;\n }\n\n async *encode() {\n yield this.headers;\n\n const { value } = this;\n\n if (utils.isTypedArray(value)) {\n yield value;\n } else {\n yield* readBlob(value);\n }\n\n yield CRLF_BYTES;\n }\n\n static escapeName(name) {\n return String(name).replace(\n /[\\r\\n\"]/g,\n (match) =>\n ({\n '\\r': '%0D',\n '\\n': '%0A',\n '\"': '%22',\n })[match]\n );\n }\n}\n\nconst formDataToStream = (form, headersHandler, options) => {\n const {\n tag = 'form-data-boundary',\n size = 25,\n boundary = tag + '-' + platform.generateString(size, BOUNDARY_ALPHABET),\n } = options || {};\n\n if (!utils.isFormData(form)) {\n throw TypeError('FormData instance required');\n }\n\n if (boundary.length < 1 || boundary.length > 70) {\n throw Error('boundary must be 10-70 characters long');\n }\n\n const boundaryBytes = textEncoder.encode('--' + boundary + CRLF);\n const footerBytes = textEncoder.encode('--' + boundary + '--' + CRLF);\n let contentLength = footerBytes.byteLength;\n\n const parts = Array.from(form.entries()).map(([name, value]) => {\n const part = new FormDataPart(name, value);\n contentLength += part.size;\n return part;\n });\n\n contentLength += boundaryBytes.byteLength * parts.length;\n\n contentLength = utils.toFiniteNumber(contentLength);\n\n const computedHeaders = {\n 'Content-Type': `multipart/form-data; boundary=${boundary}`,\n };\n\n if (Number.isFinite(contentLength)) {\n computedHeaders['Content-Length'] = contentLength;\n }\n\n headersHandler && headersHandler(computedHeaders);\n\n return Readable.from(\n (async function* () {\n for (const part of parts) {\n yield boundaryBytes;\n yield* part.encode();\n }\n\n yield footerBytes;\n })()\n );\n};\n\nexport default formDataToStream;\n","'use strict';\n\nimport stream from 'stream';\n\nclass ZlibHeaderTransformStream extends stream.Transform {\n __transform(chunk, encoding, callback) {\n this.push(chunk);\n callback();\n }\n\n _transform(chunk, encoding, callback) {\n if (chunk.length !== 0) {\n this._transform = this.__transform;\n\n // Add Default Compression headers if no zlib headers are present\n if (chunk[0] !== 120) {\n // Hex: 78\n const header = Buffer.alloc(2);\n header[0] = 120; // Hex: 78\n header[1] = 156; // Hex: 9C\n this.push(header, encoding);\n }\n }\n\n this.__transform(chunk, encoding, callback);\n }\n}\n\nexport default ZlibHeaderTransformStream;\n","import utils from '../utils.js';\n\nconst callbackify = (fn, reducer) => {\n return utils.isAsyncFn(fn)\n ? function (...args) {\n const cb = args.pop();\n fn.apply(this, args).then((value) => {\n try {\n reducer ? cb(null, ...reducer(value)) : cb(null, value);\n } catch (err) {\n cb(err);\n }\n }, cb);\n }\n : fn;\n};\n\nexport default callbackify;\n","const LOOPBACK_HOSTNAMES = new Set(['localhost']);\n\nconst isIPv4Loopback = (host) => {\n const parts = host.split('.');\n if (parts.length !== 4) return false;\n if (parts[0] !== '127') return false;\n return parts.every((p) => /^\\d+$/.test(p) && Number(p) >= 0 && Number(p) <= 255);\n};\n\nconst isIPv6Loopback = (host) => {\n // Collapse all-zero groups: any form of ::1 / 0:0:...:0:1\n // First, strip any leading \"::\" by normalising with Set lookup of common forms,\n // then fall back to structural check.\n if (host === '::1') return true;\n\n // Check IPv4-mapped IPv6 loopback: ::ffff: or ::ffff:\n // Node's URL parser normalises ::ffff:127.0.0.1 → ::ffff:7f00:1\n const v4MappedDotted = host.match(/^::ffff:(\\d+\\.\\d+\\.\\d+\\.\\d+)$/i);\n if (v4MappedDotted) return isIPv4Loopback(v4MappedDotted[1]);\n\n const v4MappedHex = host.match(/^::ffff:([0-9a-f]{1,4}):([0-9a-f]{1,4})$/i);\n if (v4MappedHex) {\n const high = parseInt(v4MappedHex[1], 16);\n // High 16 bits must start with 127 (0x7f) — i.e. 0x7f00..0x7fff\n return high >= 0x7f00 && high <= 0x7fff;\n }\n\n // Full-form ::1 variants: any number of zero groups followed by trailing 1\n // e.g. 0:0:0:0:0:0:0:1, 0000:...:0001\n const groups = host.split(':');\n if (groups.length === 8) {\n for (let i = 0; i < 7; i++) {\n if (!/^0+$/.test(groups[i])) return false;\n }\n return /^0*1$/.test(groups[7]);\n }\n\n return false;\n};\n\nconst isLoopback = (host) => {\n if (!host) return false;\n if (LOOPBACK_HOSTNAMES.has(host)) return true;\n if (isIPv4Loopback(host)) return true;\n return isIPv6Loopback(host);\n};\n\nconst DEFAULT_PORTS = {\n http: 80,\n https: 443,\n ws: 80,\n wss: 443,\n ftp: 21,\n};\n\nconst parseNoProxyEntry = (entry) => {\n let entryHost = entry;\n let entryPort = 0;\n\n if (entryHost.charAt(0) === '[') {\n const bracketIndex = entryHost.indexOf(']');\n\n if (bracketIndex !== -1) {\n const host = entryHost.slice(1, bracketIndex);\n const rest = entryHost.slice(bracketIndex + 1);\n\n if (rest.charAt(0) === ':' && /^\\d+$/.test(rest.slice(1))) {\n entryPort = Number.parseInt(rest.slice(1), 10);\n }\n\n return [host, entryPort];\n }\n }\n\n const firstColon = entryHost.indexOf(':');\n const lastColon = entryHost.lastIndexOf(':');\n\n if (\n firstColon !== -1 &&\n firstColon === lastColon &&\n /^\\d+$/.test(entryHost.slice(lastColon + 1))\n ) {\n entryPort = Number.parseInt(entryHost.slice(lastColon + 1), 10);\n entryHost = entryHost.slice(0, lastColon);\n }\n\n return [entryHost, entryPort];\n};\n\nconst normalizeNoProxyHost = (hostname) => {\n if (!hostname) {\n return hostname;\n }\n\n if (hostname.charAt(0) === '[' && hostname.charAt(hostname.length - 1) === ']') {\n hostname = hostname.slice(1, -1);\n }\n\n return hostname.replace(/\\.+$/, '');\n};\n\nexport default function shouldBypassProxy(location) {\n let parsed;\n\n try {\n parsed = new URL(location);\n } catch (_err) {\n return false;\n }\n\n const noProxy = (process.env.no_proxy || process.env.NO_PROXY || '').toLowerCase();\n\n if (!noProxy) {\n return false;\n }\n\n if (noProxy === '*') {\n return true;\n }\n\n const port =\n Number.parseInt(parsed.port, 10) || DEFAULT_PORTS[parsed.protocol.split(':', 1)[0]] || 0;\n\n const hostname = normalizeNoProxyHost(parsed.hostname.toLowerCase());\n\n return noProxy.split(/[\\s,]+/).some((entry) => {\n if (!entry) {\n return false;\n }\n\n let [entryHost, entryPort] = parseNoProxyEntry(entry);\n\n entryHost = normalizeNoProxyHost(entryHost);\n\n if (!entryHost) {\n return false;\n }\n\n if (entryPort && entryPort !== port) {\n return false;\n }\n\n if (entryHost.charAt(0) === '*') {\n entryHost = entryHost.slice(1);\n }\n\n if (entryHost.charAt(0) === '.') {\n return hostname.endsWith(entryHost);\n }\n\n return hostname === entryHost || (isLoopback(hostname) && isLoopback(entryHost));\n });\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round((bytesCount * 1000) / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn(...args);\n };\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if (passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs);\n }, threshold - passed);\n }\n }\n };\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nexport default throttle;\n","import speedometer from './speedometer.js';\nimport throttle from './throttle.js';\nimport utils from '../utils.js';\n\nexport const progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle((e) => {\n const rawLoaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const loaded = total != null ? Math.min(rawLoaded, total) : rawLoaded;\n const progressBytes = Math.max(0, loaded - bytesNotified);\n const rate = _speedometer(progressBytes);\n\n bytesNotified = Math.max(bytesNotified, loaded);\n\n const data = {\n loaded,\n total,\n progress: total ? loaded / total : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true,\n };\n\n listener(data);\n }, freq);\n};\n\nexport const progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [\n (loaded) =>\n throttled[0]({\n lengthComputable,\n total,\n loaded,\n }),\n throttled[1],\n ];\n};\n\nexport const asyncDecorator =\n (fn) =>\n (...args) =>\n utils.asap(() => fn(...args));\n","/**\n * Estimate decoded byte length of a data:// URL *without* allocating large buffers.\n * - For base64: compute exact decoded size using length and padding;\n * handle %XX at the character-count level (no string allocation).\n * - For non-base64: use UTF-8 byteLength of the encoded body as a safe upper bound.\n *\n * @param {string} url\n * @returns {number}\n */\nexport default function estimateDataURLDecodedBytes(url) {\n if (!url || typeof url !== 'string') return 0;\n if (!url.startsWith('data:')) return 0;\n\n const comma = url.indexOf(',');\n if (comma < 0) return 0;\n\n const meta = url.slice(5, comma);\n const body = url.slice(comma + 1);\n const isBase64 = /;base64/i.test(meta);\n\n if (isBase64) {\n let effectiveLen = body.length;\n const len = body.length; // cache length\n\n for (let i = 0; i < len; i++) {\n if (body.charCodeAt(i) === 37 /* '%' */ && i + 2 < len) {\n const a = body.charCodeAt(i + 1);\n const b = body.charCodeAt(i + 2);\n const isHex =\n ((a >= 48 && a <= 57) || (a >= 65 && a <= 70) || (a >= 97 && a <= 102)) &&\n ((b >= 48 && b <= 57) || (b >= 65 && b <= 70) || (b >= 97 && b <= 102));\n\n if (isHex) {\n effectiveLen -= 2;\n i += 2;\n }\n }\n }\n\n let pad = 0;\n let idx = len - 1;\n\n const tailIsPct3D = (j) =>\n j >= 2 &&\n body.charCodeAt(j - 2) === 37 && // '%'\n body.charCodeAt(j - 1) === 51 && // '3'\n (body.charCodeAt(j) === 68 || body.charCodeAt(j) === 100); // 'D' or 'd'\n\n if (idx >= 0) {\n if (body.charCodeAt(idx) === 61 /* '=' */) {\n pad++;\n idx--;\n } else if (tailIsPct3D(idx)) {\n pad++;\n idx -= 3;\n }\n }\n\n if (pad === 1 && idx >= 0) {\n if (body.charCodeAt(idx) === 61 /* '=' */) {\n pad++;\n } else if (tailIsPct3D(idx)) {\n pad++;\n }\n }\n\n const groups = Math.floor(effectiveLen / 4);\n const bytes = groups * 3 - (pad || 0);\n return bytes > 0 ? bytes : 0;\n }\n\n return Buffer.byteLength(body, 'utf8');\n}\n","import utils from '../utils.js';\nimport settle from '../core/settle.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport buildURL from '../helpers/buildURL.js';\nimport { getProxyForUrl } from 'proxy-from-env';\nimport http from 'http';\nimport https from 'https';\nimport http2 from 'http2';\nimport util from 'util';\nimport followRedirects from 'follow-redirects';\nimport zlib from 'zlib';\nimport { VERSION } from '../env/data.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport platform from '../platform/index.js';\nimport fromDataURI from '../helpers/fromDataURI.js';\nimport stream from 'stream';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport AxiosTransformStream from '../helpers/AxiosTransformStream.js';\nimport { EventEmitter } from 'events';\nimport formDataToStream from '../helpers/formDataToStream.js';\nimport readBlob from '../helpers/readBlob.js';\nimport ZlibHeaderTransformStream from '../helpers/ZlibHeaderTransformStream.js';\nimport callbackify from '../helpers/callbackify.js';\nimport shouldBypassProxy from '../helpers/shouldBypassProxy.js';\nimport {\n progressEventReducer,\n progressEventDecorator,\n asyncDecorator,\n} from '../helpers/progressEventReducer.js';\nimport estimateDataURLDecodedBytes from '../helpers/estimateDataURLDecodedBytes.js';\n\nconst zlibOptions = {\n flush: zlib.constants.Z_SYNC_FLUSH,\n finishFlush: zlib.constants.Z_SYNC_FLUSH,\n};\n\nconst brotliOptions = {\n flush: zlib.constants.BROTLI_OPERATION_FLUSH,\n finishFlush: zlib.constants.BROTLI_OPERATION_FLUSH,\n};\n\nconst isBrotliSupported = utils.isFunction(zlib.createBrotliDecompress);\n\nconst { http: httpFollow, https: httpsFollow } = followRedirects;\n\nconst isHttps = /https:?/;\n\nconst supportedProtocols = platform.protocols.map((protocol) => {\n return protocol + ':';\n});\n\nconst flushOnFinish = (stream, [throttled, flush]) => {\n stream.on('end', flush).on('error', flush);\n\n return throttled;\n};\n\nclass Http2Sessions {\n constructor() {\n this.sessions = Object.create(null);\n }\n\n getSession(authority, options) {\n options = Object.assign(\n {\n sessionTimeout: 1000,\n },\n options\n );\n\n let authoritySessions = this.sessions[authority];\n\n if (authoritySessions) {\n let len = authoritySessions.length;\n\n for (let i = 0; i < len; i++) {\n const [sessionHandle, sessionOptions] = authoritySessions[i];\n if (\n !sessionHandle.destroyed &&\n !sessionHandle.closed &&\n util.isDeepStrictEqual(sessionOptions, options)\n ) {\n return sessionHandle;\n }\n }\n }\n\n const session = http2.connect(authority, options);\n\n let removed;\n\n const removeSession = () => {\n if (removed) {\n return;\n }\n\n removed = true;\n\n let entries = authoritySessions,\n len = entries.length,\n i = len;\n\n while (i--) {\n if (entries[i][0] === session) {\n if (len === 1) {\n delete this.sessions[authority];\n } else {\n entries.splice(i, 1);\n }\n if (!session.closed) {\n session.close();\n }\n return;\n }\n }\n };\n\n const originalRequestFn = session.request;\n\n const { sessionTimeout } = options;\n\n if (sessionTimeout != null) {\n let timer;\n let streamsCount = 0;\n\n session.request = function () {\n const stream = originalRequestFn.apply(this, arguments);\n\n streamsCount++;\n\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n\n stream.once('close', () => {\n if (!--streamsCount) {\n timer = setTimeout(() => {\n timer = null;\n removeSession();\n }, sessionTimeout);\n }\n });\n\n return stream;\n };\n }\n\n session.once('close', removeSession);\n\n let entry = [session, options];\n\n authoritySessions\n ? authoritySessions.push(entry)\n : (authoritySessions = this.sessions[authority] = [entry]);\n\n return session;\n }\n}\n\nconst http2Sessions = new Http2Sessions();\n\n/**\n * If the proxy or config beforeRedirects functions are defined, call them with the options\n * object.\n *\n * @param {Object} options - The options object that was passed to the request.\n *\n * @returns {Object}\n */\nfunction dispatchBeforeRedirect(options, responseDetails) {\n if (options.beforeRedirects.proxy) {\n options.beforeRedirects.proxy(options);\n }\n if (options.beforeRedirects.config) {\n options.beforeRedirects.config(options, responseDetails);\n }\n}\n\n/**\n * If the proxy or config afterRedirects functions are defined, call them with the options\n *\n * @param {http.ClientRequestArgs} options\n * @param {AxiosProxyConfig} configProxy configuration from Axios options object\n * @param {string} location\n *\n * @returns {http.ClientRequestArgs}\n */\nfunction setProxy(options, configProxy, location) {\n let proxy = configProxy;\n if (!proxy && proxy !== false) {\n const proxyUrl = getProxyForUrl(location);\n if (proxyUrl) {\n if (!shouldBypassProxy(location)) {\n proxy = new URL(proxyUrl);\n }\n }\n }\n if (proxy) {\n // Basic proxy authorization\n if (proxy.username) {\n proxy.auth = (proxy.username || '') + ':' + (proxy.password || '');\n }\n\n if (proxy.auth) {\n // Support proxy auth object form\n const validProxyAuth = Boolean(proxy.auth.username || proxy.auth.password);\n\n if (validProxyAuth) {\n proxy.auth = (proxy.auth.username || '') + ':' + (proxy.auth.password || '');\n } else if (typeof proxy.auth === 'object') {\n throw new AxiosError('Invalid proxy authorization', AxiosError.ERR_BAD_OPTION, { proxy });\n }\n\n const base64 = Buffer.from(proxy.auth, 'utf8').toString('base64');\n\n options.headers['Proxy-Authorization'] = 'Basic ' + base64;\n }\n\n options.headers.host = options.hostname + (options.port ? ':' + options.port : '');\n const proxyHost = proxy.hostname || proxy.host;\n options.hostname = proxyHost;\n // Replace 'host' since options is not a URL object\n options.host = proxyHost;\n options.port = proxy.port;\n options.path = location;\n if (proxy.protocol) {\n options.protocol = proxy.protocol.includes(':') ? proxy.protocol : `${proxy.protocol}:`;\n }\n }\n\n options.beforeRedirects.proxy = function beforeRedirect(redirectOptions) {\n // Configure proxy for redirected request, passing the original config proxy to apply\n // the exact same logic as if the redirected request was performed by axios directly.\n setProxy(redirectOptions, configProxy, redirectOptions.href);\n };\n}\n\nconst isHttpAdapterSupported =\n typeof process !== 'undefined' && utils.kindOf(process) === 'process';\n\n// temporary hotfix\n\nconst wrapAsync = (asyncExecutor) => {\n return new Promise((resolve, reject) => {\n let onDone;\n let isDone;\n\n const done = (value, isRejected) => {\n if (isDone) return;\n isDone = true;\n onDone && onDone(value, isRejected);\n };\n\n const _resolve = (value) => {\n done(value);\n resolve(value);\n };\n\n const _reject = (reason) => {\n done(reason, true);\n reject(reason);\n };\n\n asyncExecutor(_resolve, _reject, (onDoneHandler) => (onDone = onDoneHandler)).catch(_reject);\n });\n};\n\nconst resolveFamily = ({ address, family }) => {\n if (!utils.isString(address)) {\n throw TypeError('address must be a string');\n }\n return {\n address,\n family: family || (address.indexOf('.') < 0 ? 6 : 4),\n };\n};\n\nconst buildAddressEntry = (address, family) =>\n resolveFamily(utils.isObject(address) ? address : { address, family });\n\nconst http2Transport = {\n request(options, cb) {\n const authority =\n options.protocol +\n '//' +\n options.hostname +\n ':' +\n (options.port || (options.protocol === 'https:' ? 443 : 80));\n\n const { http2Options, headers } = options;\n\n const session = http2Sessions.getSession(authority, http2Options);\n\n const { HTTP2_HEADER_SCHEME, HTTP2_HEADER_METHOD, HTTP2_HEADER_PATH, HTTP2_HEADER_STATUS } =\n http2.constants;\n\n const http2Headers = {\n [HTTP2_HEADER_SCHEME]: options.protocol.replace(':', ''),\n [HTTP2_HEADER_METHOD]: options.method,\n [HTTP2_HEADER_PATH]: options.path,\n };\n\n utils.forEach(headers, (header, name) => {\n name.charAt(0) !== ':' && (http2Headers[name] = header);\n });\n\n const req = session.request(http2Headers);\n\n req.once('response', (responseHeaders) => {\n const response = req; //duplex\n\n responseHeaders = Object.assign({}, responseHeaders);\n\n const status = responseHeaders[HTTP2_HEADER_STATUS];\n\n delete responseHeaders[HTTP2_HEADER_STATUS];\n\n response.headers = responseHeaders;\n\n response.statusCode = +status;\n\n cb(response);\n });\n\n return req;\n },\n};\n\n/*eslint consistent-return:0*/\nexport default isHttpAdapterSupported &&\n function httpAdapter(config) {\n return wrapAsync(async function dispatchHttpRequest(resolve, reject, onDone) {\n const own = (key) => (utils.hasOwnProp(config, key) ? config[key] : undefined);\n let data = own('data');\n let lookup = own('lookup');\n let family = own('family');\n let httpVersion = own('httpVersion');\n if (httpVersion === undefined) httpVersion = 1;\n let http2Options = own('http2Options');\n const responseType = own('responseType');\n const responseEncoding = own('responseEncoding');\n const method = config.method.toUpperCase();\n let isDone;\n let rejected = false;\n let req;\n\n httpVersion = +httpVersion;\n\n if (Number.isNaN(httpVersion)) {\n throw TypeError(`Invalid protocol version: '${config.httpVersion}' is not a number`);\n }\n\n if (httpVersion !== 1 && httpVersion !== 2) {\n throw TypeError(`Unsupported protocol version '${httpVersion}'`);\n }\n\n const isHttp2 = httpVersion === 2;\n\n if (lookup) {\n const _lookup = callbackify(lookup, (value) => (utils.isArray(value) ? value : [value]));\n // hotfix to support opt.all option which is required for node 20.x\n lookup = (hostname, opt, cb) => {\n _lookup(hostname, opt, (err, arg0, arg1) => {\n if (err) {\n return cb(err);\n }\n\n const addresses = utils.isArray(arg0)\n ? arg0.map((addr) => buildAddressEntry(addr))\n : [buildAddressEntry(arg0, arg1)];\n\n opt.all ? cb(err, addresses) : cb(err, addresses[0].address, addresses[0].family);\n });\n };\n }\n\n const abortEmitter = new EventEmitter();\n\n function abort(reason) {\n try {\n abortEmitter.emit(\n 'abort',\n !reason || reason.type ? new CanceledError(null, config, req) : reason\n );\n } catch (err) {\n console.warn('emit error', err);\n }\n }\n\n abortEmitter.once('abort', reject);\n\n const onFinished = () => {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(abort);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', abort);\n }\n\n abortEmitter.removeAllListeners();\n };\n\n if (config.cancelToken || config.signal) {\n config.cancelToken && config.cancelToken.subscribe(abort);\n if (config.signal) {\n config.signal.aborted ? abort() : config.signal.addEventListener('abort', abort);\n }\n }\n\n onDone((response, isRejected) => {\n isDone = true;\n\n if (isRejected) {\n rejected = true;\n onFinished();\n return;\n }\n\n const { data } = response;\n\n if (data instanceof stream.Readable || data instanceof stream.Duplex) {\n const offListeners = stream.finished(data, () => {\n offListeners();\n onFinished();\n });\n } else {\n onFinished();\n }\n });\n\n // Parse url\n const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls);\n const parsed = new URL(fullPath, platform.hasBrowserEnv ? platform.origin : undefined);\n const protocol = parsed.protocol || supportedProtocols[0];\n\n if (protocol === 'data:') {\n // Apply the same semantics as HTTP: only enforce if a finite, non-negative cap is set.\n if (config.maxContentLength > -1) {\n // Use the exact string passed to fromDataURI (config.url); fall back to fullPath if needed.\n const dataUrl = String(config.url || fullPath || '');\n const estimated = estimateDataURLDecodedBytes(dataUrl);\n\n if (estimated > config.maxContentLength) {\n return reject(\n new AxiosError(\n 'maxContentLength size of ' + config.maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config\n )\n );\n }\n }\n\n let convertedData;\n\n if (method !== 'GET') {\n return settle(resolve, reject, {\n status: 405,\n statusText: 'method not allowed',\n headers: {},\n config,\n });\n }\n\n try {\n convertedData = fromDataURI(config.url, responseType === 'blob', {\n Blob: config.env && config.env.Blob,\n });\n } catch (err) {\n throw AxiosError.from(err, AxiosError.ERR_BAD_REQUEST, config);\n }\n\n if (responseType === 'text') {\n convertedData = convertedData.toString(responseEncoding);\n\n if (!responseEncoding || responseEncoding === 'utf8') {\n convertedData = utils.stripBOM(convertedData);\n }\n } else if (responseType === 'stream') {\n convertedData = stream.Readable.from(convertedData);\n }\n\n return settle(resolve, reject, {\n data: convertedData,\n status: 200,\n statusText: 'OK',\n headers: new AxiosHeaders(),\n config,\n });\n }\n\n if (supportedProtocols.indexOf(protocol) === -1) {\n return reject(\n new AxiosError('Unsupported protocol ' + protocol, AxiosError.ERR_BAD_REQUEST, config)\n );\n }\n\n const headers = AxiosHeaders.from(config.headers).normalize();\n\n // Set User-Agent (required by some servers)\n // See https://github.com/axios/axios/issues/69\n // User-Agent is specified; handle case where no UA header is desired\n // Only set header if it hasn't been set in config\n headers.set('User-Agent', 'axios/' + VERSION, false);\n\n const { onUploadProgress, onDownloadProgress } = config;\n const maxRate = config.maxRate;\n let maxUploadRate = undefined;\n let maxDownloadRate = undefined;\n\n // support for spec compliant FormData objects\n if (utils.isSpecCompliantForm(data)) {\n const userBoundary = headers.getContentType(/boundary=([-_\\w\\d]{10,70})/i);\n\n data = formDataToStream(\n data,\n (formHeaders) => {\n headers.set(formHeaders);\n },\n {\n tag: `axios-${VERSION}-boundary`,\n boundary: (userBoundary && userBoundary[1]) || undefined,\n }\n );\n // support for https://www.npmjs.com/package/form-data api\n } else if (utils.isFormData(data) && utils.isFunction(data.getHeaders) &&\n data.getHeaders !== Object.prototype.getHeaders) {\n headers.set(data.getHeaders());\n\n if (!headers.hasContentLength()) {\n try {\n const knownLength = await util.promisify(data.getLength).call(data);\n Number.isFinite(knownLength) &&\n knownLength >= 0 &&\n headers.setContentLength(knownLength);\n /*eslint no-empty:0*/\n } catch (e) {}\n }\n } else if (utils.isBlob(data) || utils.isFile(data)) {\n data.size && headers.setContentType(data.type || 'application/octet-stream');\n headers.setContentLength(data.size || 0);\n data = stream.Readable.from(readBlob(data));\n } else if (data && !utils.isStream(data)) {\n if (Buffer.isBuffer(data)) {\n // Nothing to do...\n } else if (utils.isArrayBuffer(data)) {\n data = Buffer.from(new Uint8Array(data));\n } else if (utils.isString(data)) {\n data = Buffer.from(data, 'utf-8');\n } else {\n return reject(\n new AxiosError(\n 'Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream',\n AxiosError.ERR_BAD_REQUEST,\n config\n )\n );\n }\n\n // Add Content-Length header if data exists\n headers.setContentLength(data.length, false);\n\n if (config.maxBodyLength > -1 && data.length > config.maxBodyLength) {\n return reject(\n new AxiosError(\n 'Request body larger than maxBodyLength limit',\n AxiosError.ERR_BAD_REQUEST,\n config\n )\n );\n }\n }\n\n const contentLength = utils.toFiniteNumber(headers.getContentLength());\n\n if (utils.isArray(maxRate)) {\n maxUploadRate = maxRate[0];\n maxDownloadRate = maxRate[1];\n } else {\n maxUploadRate = maxDownloadRate = maxRate;\n }\n\n if (data && (onUploadProgress || maxUploadRate)) {\n if (!utils.isStream(data)) {\n data = stream.Readable.from(data, { objectMode: false });\n }\n\n data = stream.pipeline(\n [\n data,\n new AxiosTransformStream({\n maxRate: utils.toFiniteNumber(maxUploadRate),\n }),\n ],\n utils.noop\n );\n\n onUploadProgress &&\n data.on(\n 'progress',\n flushOnFinish(\n data,\n progressEventDecorator(\n contentLength,\n progressEventReducer(asyncDecorator(onUploadProgress), false, 3)\n )\n )\n );\n }\n\n // HTTP basic authentication\n let auth = undefined;\n if (config.auth) {\n const username = config.auth.username || '';\n const password = config.auth.password || '';\n auth = username + ':' + password;\n }\n\n if (!auth && parsed.username) {\n const urlUsername = parsed.username;\n const urlPassword = parsed.password;\n auth = urlUsername + ':' + urlPassword;\n }\n\n auth && headers.delete('authorization');\n\n let path;\n\n try {\n path = buildURL(\n parsed.pathname + parsed.search,\n config.params,\n config.paramsSerializer\n ).replace(/^\\?/, '');\n } catch (err) {\n const customErr = new Error(err.message);\n customErr.config = config;\n customErr.url = config.url;\n customErr.exists = true;\n return reject(customErr);\n }\n\n headers.set(\n 'Accept-Encoding',\n 'gzip, compress, deflate' + (isBrotliSupported ? ', br' : ''),\n false\n );\n\n const options = {\n path,\n method: method,\n headers: headers.toJSON(),\n agents: { http: config.httpAgent, https: config.httpsAgent },\n auth,\n protocol,\n family,\n beforeRedirect: dispatchBeforeRedirect,\n beforeRedirects: {},\n http2Options,\n };\n\n // cacheable-lookup integration hotfix\n !utils.isUndefined(lookup) && (options.lookup = lookup);\n\n if (config.socketPath) {\n options.socketPath = config.socketPath;\n } else {\n options.hostname = parsed.hostname.startsWith('[')\n ? parsed.hostname.slice(1, -1)\n : parsed.hostname;\n options.port = parsed.port;\n setProxy(\n options,\n config.proxy,\n protocol + '//' + parsed.hostname + (parsed.port ? ':' + parsed.port : '') + options.path\n );\n }\n let transport;\n const isHttpsRequest = isHttps.test(options.protocol);\n options.agent = isHttpsRequest ? config.httpsAgent : config.httpAgent;\n\n if (isHttp2) {\n transport = http2Transport;\n } else {\n const configTransport = own('transport');\n if (configTransport) {\n transport = configTransport;\n } else if (config.maxRedirects === 0) {\n transport = isHttpsRequest ? https : http;\n } else {\n if (config.maxRedirects) {\n options.maxRedirects = config.maxRedirects;\n }\n if (config.beforeRedirect) {\n options.beforeRedirects.config = config.beforeRedirect;\n }\n transport = isHttpsRequest ? httpsFollow : httpFollow;\n }\n }\n\n if (config.maxBodyLength > -1) {\n options.maxBodyLength = config.maxBodyLength;\n } else {\n // follow-redirects does not skip comparison, so it should always succeed for axios -1 unlimited\n options.maxBodyLength = Infinity;\n }\n\n if (config.insecureHTTPParser) {\n options.insecureHTTPParser = config.insecureHTTPParser;\n }\n\n // Create the request\n req = transport.request(options, function handleResponse(res) {\n if (req.destroyed) return;\n\n const streams = [res];\n\n const responseLength = utils.toFiniteNumber(res.headers['content-length']);\n\n if (onDownloadProgress || maxDownloadRate) {\n const transformStream = new AxiosTransformStream({\n maxRate: utils.toFiniteNumber(maxDownloadRate),\n });\n\n onDownloadProgress &&\n transformStream.on(\n 'progress',\n flushOnFinish(\n transformStream,\n progressEventDecorator(\n responseLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true, 3)\n )\n )\n );\n\n streams.push(transformStream);\n }\n\n // decompress the response body transparently if required\n let responseStream = res;\n\n // return the last request in case of redirects\n const lastRequest = res.req || req;\n\n // if decompress disabled we should not decompress\n if (config.decompress !== false && res.headers['content-encoding']) {\n // if no content, but headers still say that it is encoded,\n // remove the header not confuse downstream operations\n if (method === 'HEAD' || res.statusCode === 204) {\n delete res.headers['content-encoding'];\n }\n\n switch ((res.headers['content-encoding'] || '').toLowerCase()) {\n /*eslint default-case:0*/\n case 'gzip':\n case 'x-gzip':\n case 'compress':\n case 'x-compress':\n // add the unzipper to the body stream processing pipeline\n streams.push(zlib.createUnzip(zlibOptions));\n\n // remove the content-encoding in order to not confuse downstream operations\n delete res.headers['content-encoding'];\n break;\n case 'deflate':\n streams.push(new ZlibHeaderTransformStream());\n\n // add the unzipper to the body stream processing pipeline\n streams.push(zlib.createUnzip(zlibOptions));\n\n // remove the content-encoding in order to not confuse downstream operations\n delete res.headers['content-encoding'];\n break;\n case 'br':\n if (isBrotliSupported) {\n streams.push(zlib.createBrotliDecompress(brotliOptions));\n delete res.headers['content-encoding'];\n }\n }\n }\n\n responseStream = streams.length > 1 ? stream.pipeline(streams, utils.noop) : streams[0];\n\n const response = {\n status: res.statusCode,\n statusText: res.statusMessage,\n headers: new AxiosHeaders(res.headers),\n config,\n request: lastRequest,\n };\n\n if (responseType === 'stream') {\n // Enforce maxContentLength on streamed responses; previously this\n // was applied only to buffered responses. See GHSA-vf2m-468p-8v99.\n if (config.maxContentLength > -1) {\n const limit = config.maxContentLength;\n const source = responseStream;\n async function* enforceMaxContentLength() {\n let totalResponseBytes = 0;\n for await (const chunk of source) {\n totalResponseBytes += chunk.length;\n if (totalResponseBytes > limit) {\n throw new AxiosError(\n 'maxContentLength size of ' + limit + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n lastRequest\n );\n }\n yield chunk;\n }\n }\n responseStream = stream.Readable.from(enforceMaxContentLength(), {\n objectMode: false,\n });\n }\n response.data = responseStream;\n settle(resolve, reject, response);\n } else {\n const responseBuffer = [];\n let totalResponseBytes = 0;\n\n responseStream.on('data', function handleStreamData(chunk) {\n responseBuffer.push(chunk);\n totalResponseBytes += chunk.length;\n\n // make sure the content length is not over the maxContentLength if specified\n if (config.maxContentLength > -1 && totalResponseBytes > config.maxContentLength) {\n // stream.destroy() emit aborted event before calling reject() on Node.js v16\n rejected = true;\n responseStream.destroy();\n abort(\n new AxiosError(\n 'maxContentLength size of ' + config.maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n lastRequest\n )\n );\n }\n });\n\n responseStream.on('aborted', function handlerStreamAborted() {\n if (rejected) {\n return;\n }\n\n const err = new AxiosError(\n 'stream has been aborted',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n lastRequest\n );\n responseStream.destroy(err);\n reject(err);\n });\n\n responseStream.on('error', function handleStreamError(err) {\n if (req.destroyed) return;\n reject(AxiosError.from(err, null, config, lastRequest));\n });\n\n responseStream.on('end', function handleStreamEnd() {\n try {\n let responseData =\n responseBuffer.length === 1 ? responseBuffer[0] : Buffer.concat(responseBuffer);\n if (responseType !== 'arraybuffer') {\n responseData = responseData.toString(responseEncoding);\n if (!responseEncoding || responseEncoding === 'utf8') {\n responseData = utils.stripBOM(responseData);\n }\n }\n response.data = responseData;\n } catch (err) {\n return reject(AxiosError.from(err, null, config, response.request, response));\n }\n settle(resolve, reject, response);\n });\n }\n\n abortEmitter.once('abort', (err) => {\n if (!responseStream.destroyed) {\n responseStream.emit('error', err);\n responseStream.destroy();\n }\n });\n });\n\n abortEmitter.once('abort', (err) => {\n if (req.close) {\n req.close();\n } else {\n req.destroy(err);\n }\n });\n\n // Handle errors\n req.on('error', function handleRequestError(err) {\n reject(AxiosError.from(err, null, config, req));\n });\n\n // set tcp keep alive to prevent drop connection by peer\n req.on('socket', function handleRequestSocket(socket) {\n // default interval of sending ack packet is 1 minute\n socket.setKeepAlive(true, 1000 * 60);\n\n const removeSocketErrorListener = () => {\n socket.removeListener('error', handleRequestSocketError);\n };\n\n function handleRequestSocketError(err) {\n removeSocketErrorListener();\n\n if (!req.destroyed) {\n req.destroy(err);\n }\n }\n\n socket.on('error', handleRequestSocketError);\n req.once('close', removeSocketErrorListener);\n });\n\n // Handle request timeout\n if (config.timeout) {\n // This is forcing a int timeout to avoid problems if the `req` interface doesn't handle other types.\n const timeout = parseInt(config.timeout, 10);\n\n if (Number.isNaN(timeout)) {\n abort(\n new AxiosError(\n 'error trying to parse `config.timeout` to int',\n AxiosError.ERR_BAD_OPTION_VALUE,\n config,\n req\n )\n );\n\n return;\n }\n\n // Sometime, the response will be very slow, and does not respond, the connect event will be block by event loop system.\n // And timer callback will be fired, and abort() will be invoked before connection, then get \"socket hang up\" and code ECONNRESET.\n // At this time, if we have a large number of request, nodejs will hang up some socket on background. and the number will up and up.\n // And then these socket which be hang up will devouring CPU little by little.\n // ClientRequest.setTimeout will be fired on the specify milliseconds, and can make sure that abort() will be fired after connect.\n req.setTimeout(timeout, function handleRequestTimeout() {\n if (isDone) return;\n let timeoutErrorMessage = config.timeout\n ? 'timeout of ' + config.timeout + 'ms exceeded'\n : 'timeout exceeded';\n const transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n abort(\n new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n req\n )\n );\n });\n } else {\n // explicitly reset the socket timeout value for a possible `keep-alive` request\n req.setTimeout(0);\n }\n\n // Send the request\n if (utils.isStream(data)) {\n let ended = false;\n let errored = false;\n\n data.on('end', () => {\n ended = true;\n });\n\n data.once('error', (err) => {\n errored = true;\n req.destroy(err);\n });\n\n data.on('close', () => {\n if (!ended && !errored) {\n abort(new CanceledError('Request stream has been aborted', config, req));\n }\n });\n\n // Enforce maxBodyLength for streamed uploads on the native http/https\n // transport (maxRedirects === 0); follow-redirects enforces it on the\n // other path. See GHSA-5c9x-8gcm-mpgx.\n let uploadStream = data;\n if (config.maxBodyLength > -1 && config.maxRedirects === 0) {\n const limit = config.maxBodyLength;\n let bytesSent = 0;\n uploadStream = stream.pipeline(\n [\n data,\n new stream.Transform({\n transform(chunk, _enc, cb) {\n bytesSent += chunk.length;\n if (bytesSent > limit) {\n return cb(\n new AxiosError(\n 'Request body larger than maxBodyLength limit',\n AxiosError.ERR_BAD_REQUEST,\n config,\n req\n )\n );\n }\n cb(null, chunk);\n },\n }),\n ],\n utils.noop\n );\n uploadStream.on('error', (err) => {\n if (!req.destroyed) req.destroy(err);\n });\n }\n\n uploadStream.pipe(req);\n } else {\n data && req.write(data);\n req.end();\n }\n });\n };\n\nexport const __setProxy = setProxy;\n","import platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv\n ? ((origin, isMSIE) => (url) => {\n url = new URL(url, platform.origin);\n\n return (\n origin.protocol === url.protocol &&\n origin.host === url.host &&\n (isMSIE || origin.port === url.port)\n );\n })(\n new URL(platform.origin),\n platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)\n )\n : () => true;\n","import utils from '../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv\n ? // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure, sameSite) {\n if (typeof document === 'undefined') return;\n\n const cookie = [`${name}=${encodeURIComponent(value)}`];\n\n if (utils.isNumber(expires)) {\n cookie.push(`expires=${new Date(expires).toUTCString()}`);\n }\n if (utils.isString(path)) {\n cookie.push(`path=${path}`);\n }\n if (utils.isString(domain)) {\n cookie.push(`domain=${domain}`);\n }\n if (secure === true) {\n cookie.push('secure');\n }\n if (utils.isString(sameSite)) {\n cookie.push(`SameSite=${sameSite}`);\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n if (typeof document === 'undefined') return null;\n const match = document.cookie.match(new RegExp('(?:^|; )' + name + '=([^;]*)'));\n return match ? decodeURIComponent(match[1]) : null;\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000, '/');\n },\n }\n : // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {},\n };\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst headersToObject = (thing) => (thing instanceof AxiosHeaders ? { ...thing } : thing);\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, prop, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({ caseless }, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(a, b, prop, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, prop, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, prop, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (utils.hasOwnProp(config2, prop)) {\n return getMergedValue(a, b);\n } else if (utils.hasOwnProp(config1, prop)) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b, prop) =>\n mergeDeepProperties(headersToObject(a), headersToObject(b), prop, true),\n };\n\n utils.forEach(Object.keys({ ...config1, ...config2 }), function computeConfigValue(prop) {\n if (prop === '__proto__' || prop === 'constructor' || prop === 'prototype') return;\n const merge = utils.hasOwnProp(mergeMap, prop) ? mergeMap[prop] : mergeDeepProperties;\n const a = utils.hasOwnProp(config1, prop) ? config1[prop] : undefined;\n const b = utils.hasOwnProp(config2, prop) ? config2[prop] : undefined;\n const configValue = merge(a, b, prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","import platform from '../platform/index.js';\nimport utils from '../utils.js';\nimport isURLSameOrigin from './isURLSameOrigin.js';\nimport cookies from './cookies.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport mergeConfig from '../core/mergeConfig.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport buildURL from './buildURL.js';\n\nexport default (config) => {\n const newConfig = mergeConfig({}, config);\n\n let { data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth } = newConfig;\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(\n buildFullPath(newConfig.baseURL, newConfig.url, newConfig.allowAbsoluteUrls),\n config.params,\n config.paramsSerializer\n );\n\n // HTTP basic authentication\n if (auth) {\n headers.set(\n 'Authorization',\n 'Basic ' +\n btoa(\n (auth.username || '') +\n ':' +\n (auth.password ? unescape(encodeURIComponent(auth.password)) : '')\n )\n );\n }\n\n if (utils.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // browser handles it\n } else if (utils.isFunction(data.getHeaders)) {\n // Node.js FormData (like form-data package)\n const formHeaders = data.getHeaders();\n // Only set safe headers to avoid overwriting security headers\n const allowedHeaders = ['content-type', 'content-length'];\n Object.entries(formHeaders).forEach(([key, val]) => {\n if (allowedHeaders.includes(key.toLowerCase())) {\n headers.set(key, val);\n }\n });\n }\n }\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n if (utils.isFunction(withXSRFToken)) {\n withXSRFToken = withXSRFToken(newConfig);\n }\n\n // Strict boolean check — prevents proto-pollution gadgets (e.g. Object.prototype.withXSRFToken = 1)\n // and misconfigurations (e.g. \"false\") from short-circuiting the same-origin check and leaking\n // the XSRF token cross-origin. See GHSA-xx6v-rp6x-q39c.\n const shouldSendXSRF =\n withXSRFToken === true ||\n (withXSRFToken == null && isURLSameOrigin(newConfig.url));\n\n if (shouldSendXSRF) {\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n};\n","import utils from '../utils.js';\nimport settle from '../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport { progressEventReducer } from '../helpers/progressEventReducer.js';\nimport resolveConfig from '../helpers/resolveConfig.js';\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported &&\n function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let { responseType, onUploadProgress, onDownloadProgress } = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData =\n !responseType || responseType === 'text' || responseType === 'json'\n ? request.responseText\n : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request,\n };\n\n settle(\n function _resolve(value) {\n resolve(value);\n done();\n },\n function _reject(err) {\n reject(err);\n done();\n },\n response\n );\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (\n request.status === 0 &&\n !(request.responseURL && request.responseURL.indexOf('file:') === 0)\n ) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError(event) {\n // Browsers deliver a ProgressEvent in XHR onerror\n // (message may be empty; when present, surface it)\n // See https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/error_event\n const msg = event && event.message ? event.message : 'Network Error';\n const err = new AxiosError(msg, AxiosError.ERR_NETWORK, config, request);\n // attach the underlying event for consumers who want details\n err.event = event || null;\n reject(err);\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout\n ? 'timeout of ' + _config.timeout + 'ms exceeded'\n : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(\n new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request\n )\n );\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n [downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true);\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n [uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress);\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = (cancel) => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted\n ? onCanceled()\n : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(\n new AxiosError(\n 'Unsupported protocol ' + protocol + ':',\n AxiosError.ERR_BAD_REQUEST,\n config\n )\n );\n return;\n }\n\n // Send the request\n request.send(requestData || null);\n });\n };\n","import CanceledError from '../cancel/CanceledError.js';\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\nconst composeSignals = (signals, timeout) => {\n const { length } = (signals = signals ? signals.filter(Boolean) : []);\n\n if (timeout || length) {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(\n err instanceof AxiosError\n ? err\n : new CanceledError(err instanceof Error ? err.message : err)\n );\n }\n };\n\n let timer =\n timeout &&\n setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout of ${timeout}ms exceeded`, AxiosError.ETIMEDOUT));\n }, timeout);\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach((signal) => {\n signal.unsubscribe\n ? signal.unsubscribe(onabort)\n : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n }\n };\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n const { signal } = controller;\n\n signal.unsubscribe = () => utils.asap(unsubscribe);\n\n return signal;\n }\n};\n\nexport default composeSignals;\n","export const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n};\n\nexport const readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n};\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const { done, value } = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n};\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n };\n\n return new ReadableStream(\n {\n async pull(controller) {\n try {\n const { done, value } = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = (bytes += len);\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n },\n },\n {\n highWaterMark: 2,\n }\n );\n};\n","import platform from '../platform/index.js';\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport composeSignals from '../helpers/composeSignals.js';\nimport { trackStream } from '../helpers/trackStream.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport {\n progressEventReducer,\n progressEventDecorator,\n asyncDecorator,\n} from '../helpers/progressEventReducer.js';\nimport resolveConfig from '../helpers/resolveConfig.js';\nimport settle from '../core/settle.js';\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst { isFunction } = utils;\n\nconst globalFetchAPI = (({ Request, Response }) => ({\n Request,\n Response,\n}))(utils.global);\n\nconst { ReadableStream, TextEncoder } = utils.global;\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false;\n }\n};\n\nconst factory = (env) => {\n env = utils.merge.call(\n {\n skipUndefined: true,\n },\n globalFetchAPI,\n env\n );\n\n const { fetch: envFetch, Request, Response } = env;\n const isFetchSupported = envFetch ? isFunction(envFetch) : typeof fetch === 'function';\n const isRequestSupported = isFunction(Request);\n const isResponseSupported = isFunction(Response);\n\n if (!isFetchSupported) {\n return false;\n }\n\n const isReadableStreamSupported = isFetchSupported && isFunction(ReadableStream);\n\n const encodeText =\n isFetchSupported &&\n (typeof TextEncoder === 'function'\n ? (\n (encoder) => (str) =>\n encoder.encode(str)\n )(new TextEncoder())\n : async (str) => new Uint8Array(await new Request(str).arrayBuffer()));\n\n const supportsRequestStream =\n isRequestSupported &&\n isReadableStreamSupported &&\n test(() => {\n let duplexAccessed = false;\n\n const request = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n });\n\n const hasContentType = request.headers.has('Content-Type');\n\n if (request.body != null) {\n request.body.cancel();\n }\n\n return duplexAccessed && !hasContentType;\n });\n\n const supportsResponseStream =\n isResponseSupported &&\n isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n const resolvers = {\n stream: supportsResponseStream && ((res) => res.body),\n };\n\n isFetchSupported &&\n (() => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach((type) => {\n !resolvers[type] &&\n (resolvers[type] = (res, config) => {\n let method = res && res[type];\n\n if (method) {\n return method.call(res);\n }\n\n throw new AxiosError(\n `Response type '${type}' is not supported`,\n AxiosError.ERR_NOT_SUPPORT,\n config\n );\n });\n });\n })();\n\n const getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if (utils.isBlob(body)) {\n return body.size;\n }\n\n if (utils.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if (utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if (utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if (utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n };\n\n const resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n };\n\n return async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions,\n } = resolveConfig(config);\n\n let _fetch = envFetch || fetch;\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals(\n [signal, cancelToken && cancelToken.toAbortSignal()],\n timeout\n );\n\n let request = null;\n\n const unsubscribe =\n composedSignal &&\n composedSignal.unsubscribe &&\n (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress &&\n supportsRequestStream &&\n method !== 'get' &&\n method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: 'half',\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader);\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n }\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = isRequestSupported && 'credentials' in Request.prototype;\n\n // If data is FormData and Content-Type is multipart/form-data without boundary,\n // delete it so fetch can set it correctly with the boundary\n if (utils.isFormData(data)) {\n const contentType = headers.getContentType();\n if (\n contentType &&\n /^multipart\\/form-data/i.test(contentType) &&\n !/boundary=/i.test(contentType)\n ) {\n headers.delete('content-type');\n }\n }\n\n const resolvedOptions = {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: 'half',\n credentials: isCredentialsSupported ? withCredentials : undefined,\n };\n\n request = isRequestSupported && new Request(url, resolvedOptions);\n\n let response = await (isRequestSupported\n ? _fetch(request, fetchOptions)\n : _fetch(url, resolvedOptions));\n\n const isStreamResponse =\n supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach((prop) => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] =\n (onDownloadProgress &&\n progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n )) ||\n [];\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](\n response,\n config\n );\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request,\n });\n });\n } catch (err) {\n unsubscribe && unsubscribe();\n\n if (err && err.name === 'TypeError' && /Load failed|fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError(\n 'Network Error',\n AxiosError.ERR_NETWORK,\n config,\n request,\n err && err.response\n ),\n {\n cause: err.cause || err,\n }\n );\n }\n\n throw AxiosError.from(err, err && err.code, config, request, err && err.response);\n }\n };\n};\n\nconst seedCache = new Map();\n\nexport const getFetch = (config) => {\n let env = (config && config.env) || {};\n const { fetch, Request, Response } = env;\n const seeds = [Request, Response, fetch];\n\n let len = seeds.length,\n i = len,\n seed,\n target,\n map = seedCache;\n\n while (i--) {\n seed = seeds[i];\n target = map.get(seed);\n\n target === undefined && map.set(seed, (target = i ? new Map() : factory(env)));\n\n map = target;\n }\n\n return target;\n};\n\nconst adapter = getFetch();\n\nexport default adapter;\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport * as fetchAdapter from './fetch.js';\nimport AxiosError from '../core/AxiosError.js';\n\n/**\n * Known adapters mapping.\n * Provides environment-specific adapters for Axios:\n * - `http` for Node.js\n * - `xhr` for browsers\n * - `fetch` for fetch API-based requests\n *\n * @type {Object}\n */\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: {\n get: fetchAdapter.getFetch,\n },\n};\n\n// Assign adapter names for easier debugging and identification\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', { value });\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', { value });\n }\n});\n\n/**\n * Render a rejection reason string for unknown or unsupported adapters\n *\n * @param {string} reason\n * @returns {string}\n */\nconst renderReason = (reason) => `- ${reason}`;\n\n/**\n * Check if the adapter is resolved (function, null, or false)\n *\n * @param {Function|null|false} adapter\n * @returns {boolean}\n */\nconst isResolvedHandle = (adapter) =>\n utils.isFunction(adapter) || adapter === null || adapter === false;\n\n/**\n * Get the first suitable adapter from the provided list.\n * Tries each adapter in order until a supported one is found.\n * Throws an AxiosError if no adapter is suitable.\n *\n * @param {Array|string|Function} adapters - Adapter(s) by name or function.\n * @param {Object} config - Axios request configuration\n * @throws {AxiosError} If no suitable adapter is available\n * @returns {Function} The resolved adapter function\n */\nfunction getAdapter(adapters, config) {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const { length } = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter && (utils.isFunction(adapter) || (adapter = adapter.get(config)))) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n const reasons = Object.entries(rejectedReasons).map(\n ([id, state]) =>\n `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length\n ? reasons.length > 1\n ? 'since :\\n' + reasons.map(renderReason).join('\\n')\n : ' ' + renderReason(reasons[0])\n : 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n}\n\n/**\n * Exports Axios adapters and utility to resolve an adapter\n */\nexport default {\n /**\n * Resolve an adapter from a list of adapter names or functions.\n * @type {Function}\n */\n getAdapter,\n\n /**\n * Exposes all known adapters\n * @type {Object}\n */\n adapters: knownAdapters,\n};\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from '../adapters/adapters.js';\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(config, config.transformRequest);\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter, config);\n\n return adapter(config).then(\n function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(config, config.transformResponse, response);\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n },\n function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n }\n );\n}\n","'use strict';\n\nimport { VERSION } from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return (\n '[Axios v' +\n VERSION +\n \"] Transitional option '\" +\n opt +\n \"'\" +\n desc +\n (message ? '. ' + message : '')\n );\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\nvalidators.spelling = function spelling(correctSpelling) {\n return (value, opt) => {\n // eslint-disable-next-line no-console\n console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);\n return true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError(\n 'option ' + opt + ' must be ' + result,\n AxiosError.ERR_BAD_OPTION_VALUE\n );\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators,\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\nimport transitionalDefaults from '../defaults/transitional.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig || {};\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager(),\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy = {};\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = (() => {\n if (!dummy.stack) {\n return '';\n }\n\n const firstNewlineIndex = dummy.stack.indexOf('\\n');\n\n return firstNewlineIndex === -1 ? '' : dummy.stack.slice(firstNewlineIndex + 1);\n })();\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack) {\n const firstNewlineIndex = stack.indexOf('\\n');\n const secondNewlineIndex =\n firstNewlineIndex === -1 ? -1 : stack.indexOf('\\n', firstNewlineIndex + 1);\n const stackWithoutTwoTopLines =\n secondNewlineIndex === -1 ? '' : stack.slice(secondNewlineIndex + 1);\n\n if (!String(err.stack).endsWith(stackWithoutTwoTopLines)) {\n err.stack += '\\n' + stack;\n }\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const { transitional, paramsSerializer, headers } = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(\n transitional,\n {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean),\n legacyInterceptorReqResOrdering: validators.transitional(validators.boolean),\n },\n false\n );\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer,\n };\n } else {\n validator.assertOptions(\n paramsSerializer,\n {\n encode: validators.function,\n serialize: validators.function,\n },\n true\n );\n }\n }\n\n // Set config.allowAbsoluteUrls\n if (config.allowAbsoluteUrls !== undefined) {\n // do nothing\n } else if (this.defaults.allowAbsoluteUrls !== undefined) {\n config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls;\n } else {\n config.allowAbsoluteUrls = true;\n }\n\n validator.assertOptions(\n config,\n {\n baseUrl: validators.spelling('baseURL'),\n withXsrfToken: validators.spelling('withXSRFToken'),\n },\n true\n );\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(headers.common, headers[config.method]);\n\n headers &&\n utils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], (method) => {\n delete headers[method];\n });\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n const transitional = config.transitional || transitionalDefaults;\n const legacyInterceptorReqResOrdering =\n transitional && transitional.legacyInterceptorReqResOrdering;\n\n if (legacyInterceptorReqResOrdering) {\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n } else {\n requestInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n }\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift(...requestInterceptorChain);\n chain.push(...responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function (url, config) {\n return this.request(\n mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data,\n })\n );\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(\n mergeConfig(config || {}, {\n method,\n headers: isForm\n ? {\n 'Content-Type': 'multipart/form-data',\n }\n : {},\n url,\n data,\n })\n );\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then((cancel) => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = (onfulfilled) => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise((resolve) => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel,\n };\n }\n}\n\nexport default CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * const args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && payload.isAxiosError === true;\n}\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n WebServerIsDown: 521,\n ConnectionTimedOut: 522,\n OriginIsUnreachable: 523,\n TimeoutOccurred: 524,\n SslHandshakeFailed: 525,\n InvalidSslCertificate: 526,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport { VERSION } from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from './core/AxiosHeaders.js';\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, { allOwnKeys: true });\n\n // Copy context to instance\n utils.extend(instance, context, null, { allOwnKeys: true });\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = (thing) => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios;\n"],"names":["bind","fn","thisArg","wrap","apply","arguments","toString","Object","prototype","getPrototypeOf","iterator","toStringTag","Symbol","kindOf","cache","thing","str","call","slice","toLowerCase","create","kindOfTest","type","typeOfTest","isArray","Array","isUndefined","isBuffer","val","constructor","isFunction","isArrayBuffer","isArrayBufferView","result","ArrayBuffer","isView","buffer","isString","isNumber","isObject","isBoolean","isPlainObject","isEmptyObject","keys","length","e","isDate","isFile","isReactNativeBlob","value","uri","isReactNative","formData","getParts","isBlob","isFileList","isStream","pipe","getGlobal","globalThis","self","window","global","G","FormDataCtor","FormData","undefined","isFormData","proto","append","kind","isURLSearchParams","isReadableStream","isRequest","isResponse","isHeaders","map","trim","replace","forEach","obj","allOwnKeys","i","l","getOwnPropertyNames","len","key","findKey","_key","_global","isContextDefined","context","merge","caseless","skipUndefined","assignValue","targetKey","extend","a","b","defineProperty","writable","enumerable","configurable","stripBOM","content","charCodeAt","inherits","superConstructor","props","descriptors","assign","toFlatObject","sourceObj","destObj","filter","propFilter","prop","merged","endsWith","searchString","position","String","lastIndex","indexOf","toArray","arr","isTypedArray","TypedArray","Uint8Array","forEachEntry","generator","_iterator","next","done","pair","matchAll","regExp","matches","exec","push","isHTMLForm","toCamelCase","replacer","m","p1","p2","toUpperCase","hasOwnProperty","isRegExp","reduceDescriptors","reducer","getOwnPropertyDescriptors","reducedDescriptors","descriptor","name","ret","defineProperties","freezeMethods","set","Error","toObjectSet","arrayOrString","delimiter","define","split","noop","toFiniteNumber","defaultValue","Number","isFinite","isSpecCompliantForm","toJSONObject","stack","visit","source","target","reducedValue","isAsyncFn","isThenable","then","catch","_setImmediate","setImmediateSupported","postMessageSupported","setImmediate","token","callbacks","addEventListener","data","shift","cb","postMessage","Math","random","setTimeout","asap","queueMicrotask","process","nextTick","isIterable","hasOwnProp","AxiosError","from","error","code","config","request","response","customProps","axiosError","message","cause","status","isAxiosError","toJSON","description","number","fileName","lineNumber","columnNumber","utils","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL","ERR_FORM_DATA_DEPTH_EXCEEDED","isVisitable","removeBrackets","renderKey","path","dots","concat","each","join","isFlatArray","some","predicates","test","toFormData","options","TypeError","PlatformFormData","metaTokens","indexes","defined","option","visitor","defaultVisitor","_Blob","Blob","maxDepth","useBlob","convertValue","toISOString","Buffer","JSON","stringify","el","index","exposedHelpers","build","depth","pop","encode","charMap","encodeURIComponent","match","AxiosURLSearchParams","params","_pairs","encoder","_encode","buildURL","url","_options","serialize","serializeFn","serializedParams","hashmarkIndex","InterceptorManager","handlers","use","fulfilled","rejected","synchronous","runWhen","eject","id","clear","forEachHandler","h","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","legacyInterceptorReqResOrdering","URLSearchParams","ALPHA","DIGIT","ALPHABET","ALPHA_DIGIT","generateString","size","alphabet","randomValues","Uint32Array","crypto","randomFillSync","isNode","classes","protocols","hasBrowserEnv","document","_navigator","navigator","hasStandardBrowserEnv","product","hasStandardBrowserWebWorkerEnv","WorkerGlobalScope","importScripts","origin","location","href","platform","toURLEncodedForm","helpers","parsePropPath","arrayToObject","formDataToJSON","buildPath","isNumericKey","isLast","entries","own","stringifySafely","rawValue","parser","parse","defaults","transitional","transitionalDefaults","adapter","transformRequest","headers","contentType","getContentType","hasJSONContentType","isObjectPayload","setContentType","formSerializer","env","_FormData","transformResponse","responseType","JSONRequested","strictJSONParsing","timeout","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","Accept","method","ignoreDuplicateOf","rawHeaders","parsed","line","substring","$internals","INVALID_HEADER_VALUE_CHARS_RE","trimSPorHTAB","start","end","normalizeHeader","header","sanitizeHeaderValue","normalizeValue","parseTokens","tokens","tokensRE","isValidHeaderName","matchHeaderValue","isHeaderNameFilter","formatHeader","w","char","buildAccessors","accessorName","methodName","arg1","arg2","arg3","AxiosHeaders","valueOrRewrite","rewrite","setHeader","_value","_header","_rewrite","lHeader","setHeaders","parseHeaders","dest","entry","get","has","matcher","delete","deleted","deleteHeader","normalize","format","normalized","targets","asStrings","getSetCookie","first","computed","accessor","internals","accessors","defineAccessor","mapped","headerValue","transformData","fns","transform","isCancel","__CANCEL__","CanceledError","settle","resolve","reject","floor","isAbsoluteURL","combineURLs","baseURL","relativeURL","buildFullPath","requestedURL","allowAbsoluteUrls","isRelativeUrl","DEFAULT_PORTS","ftp","gopher","http","https","ws","wss","parseUrl","urlString","URL","getProxyForUrl","parsedUrl","protocol","hostname","host","port","parseInt","shouldProxy","proxy","getEnv","NO_PROXY","every","parsedProxy","parsedProxyHostname","parsedProxyPort","charAt","VERSION","parseProtocol","DATA_URL_PATTERN","fromDataURI","asBlob","mime","isBase64","body","decodeURIComponent","kInternals","AxiosTransformStream","stream","Transform","maxRate","chunkSize","minChunkSize","timeWindow","ticksRate","samplesCount","readableHighWaterMark","bytesSeen","isCaptured","notifiedBytesLoaded","ts","Date","now","bytes","onReadCallback","on","event","_read","_transform","chunk","encoding","callback","divider","bytesThreshold","max","pushChunk","_chunk","_callback","byteLength","emit","transformChunk","chunkRemainder","maxChunkSize","bytesLeft","passed","subarray","transformNextChunk","err","asyncIterator","readBlob","blob","arrayBuffer","BOUNDARY_ALPHABET","textEncoder","TextEncoder","util","CRLF","CRLF_BYTES","CRLF_BYTES_COUNT","FormDataPart","escapeName","isStringValue","safeType","contentLength","formDataToStream","form","headersHandler","tag","boundary","boundaryBytes","footerBytes","parts","part","computedHeaders","Readable","ZlibHeaderTransformStream","__transform","alloc","callbackify","args","LOOPBACK_HOSTNAMES","Set","isIPv4Loopback","p","isIPv6Loopback","v4MappedDotted","v4MappedHex","high","groups","isLoopback","parseNoProxyEntry","entryHost","entryPort","bracketIndex","rest","firstColon","lastColon","lastIndexOf","normalizeNoProxyHost","shouldBypassProxy","_err","noProxy","no_proxy","speedometer","min","timestamps","head","tail","firstSampleTS","chunkLength","startedAt","bytesCount","round","throttle","freq","timestamp","threshold","lastArgs","timer","invoke","clearTimeout","throttled","flush","progressEventReducer","listener","isDownloadStream","bytesNotified","_speedometer","rawLoaded","loaded","total","lengthComputable","progressBytes","rate","progress","estimated","progressEventDecorator","asyncDecorator","estimateDataURLDecodedBytes","startsWith","comma","meta","effectiveLen","isHex","pad","idx","tailIsPct3D","j","zlibOptions","zlib","constants","Z_SYNC_FLUSH","finishFlush","brotliOptions","BROTLI_OPERATION_FLUSH","isBrotliSupported","createBrotliDecompress","httpFollow","httpsFollow","followRedirects","isHttps","supportedProtocols","flushOnFinish","Http2Sessions","sessions","getSession","authority","sessionTimeout","authoritySessions","sessionHandle","sessionOptions","destroyed","closed","isDeepStrictEqual","session","http2","connect","removed","removeSession","splice","close","originalRequestFn","streamsCount","once","http2Sessions","dispatchBeforeRedirect","responseDetails","beforeRedirects","setProxy","configProxy","proxyUrl","username","auth","password","validProxyAuth","Boolean","base64","proxyHost","includes","beforeRedirect","redirectOptions","isHttpAdapterSupported","wrapAsync","asyncExecutor","Promise","onDone","isDone","isRejected","_resolve","_reject","reason","onDoneHandler","resolveFamily","address","family","buildAddressEntry","http2Transport","http2Options","HTTP2_HEADER_SCHEME","HTTP2_HEADER_METHOD","HTTP2_HEADER_PATH","HTTP2_HEADER_STATUS","http2Headers","req","responseHeaders","statusCode","httpAdapter","dispatchHttpRequest","lookup","httpVersion","responseEncoding","isNaN","isHttp2","_lookup","opt","arg0","addresses","addr","all","abortEmitter","EventEmitter","abort","console","warn","onFinished","cancelToken","unsubscribe","signal","removeEventListener","removeAllListeners","subscribe","aborted","Duplex","offListeners","finished","fullPath","dataUrl","convertedData","statusText","onUploadProgress","onDownloadProgress","maxUploadRate","maxDownloadRate","userBoundary","formHeaders","getHeaders","hasContentLength","knownLength","promisify","getLength","setContentLength","getContentLength","objectMode","pipeline","urlUsername","urlPassword","pathname","search","paramsSerializer","customErr","exists","agents","httpAgent","httpsAgent","socketPath","transport","isHttpsRequest","agent","configTransport","maxRedirects","Infinity","insecureHTTPParser","handleResponse","res","streams","responseLength","transformStream","responseStream","lastRequest","decompress","createUnzip","statusMessage","limit","enforceMaxContentLength","totalResponseBytes","responseBuffer","handleStreamData","destroy","handlerStreamAborted","handleStreamError","handleStreamEnd","responseData","handleRequestError","handleRequestSocket","socket","setKeepAlive","removeSocketErrorListener","removeListener","handleRequestSocketError","handleRequestTimeout","timeoutErrorMessage","ended","errored","uploadStream","bytesSent","_enc","write","isMSIE","userAgent","expires","domain","secure","sameSite","cookie","toUTCString","read","RegExp","remove","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","timeoutMessage","withCredentials","withXSRFToken","computeConfigValue","configValue","newConfig","btoa","unescape","allowedHeaders","shouldSendXSRF","isURLSameOrigin","xsrfValue","cookies","isXHRAdapterSupported","XMLHttpRequest","dispatchXhrRequest","_config","resolveConfig","requestData","requestHeaders","onCanceled","uploadThrottled","downloadThrottled","flushUpload","flushDownload","open","onloadend","getAllResponseHeaders","responseText","onreadystatechange","handleLoad","readyState","responseURL","onabort","handleAbort","onerror","handleError","msg","ontimeout","handleTimeout","setRequestHeader","upload","cancel","send","composeSignals","signals","controller","AbortController","streamChunk","pos","readBytes","iterable","readStream","reader","getReader","trackStream","onProgress","onFinish","_onFinish","ReadableStream","pull","loadedBytes","enqueue","return","highWaterMark","DEFAULT_CHUNK_SIZE","globalFetchAPI","Request","Response","factory","fetch","envFetch","isFetchSupported","isRequestSupported","isResponseSupported","isReadableStreamSupported","encodeText","supportsRequestStream","duplexAccessed","duplex","hasContentType","supportsResponseStream","resolvers","getBodyLength","_request","resolveBodyLength","fetchOptions","_fetch","composedSignal","toAbortSignal","requestContentLength","contentTypeHeader","isCredentialsSupported","resolvedOptions","credentials","isStreamResponse","responseContentLength","seedCache","Map","getFetch","seeds","seed","knownAdapters","xhr","xhrAdapter","fetchAdapter","renderReason","isResolvedHandle","getAdapter","adapters","nameOrAdapter","rejectedReasons","reasons","state","s","throwIfCancellationRequested","throwIfRequested","dispatchRequest","onAdapterResolution","onAdapterRejection","validators","validator","deprecatedWarnings","version","formatMessage","desc","opts","spelling","correctSpelling","assertOptions","schema","allowUnknown","Axios","instanceConfig","interceptors","configOrUrl","dummy","captureStackTrace","firstNewlineIndex","secondNewlineIndex","stackWithoutTwoTopLines","boolean","function","baseUrl","withXsrfToken","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","unshiftRequestInterceptors","interceptor","unshift","responseInterceptorChain","pushResponseInterceptors","promise","chain","onFulfilled","onRejected","getUri","forEachMethodNoData","forEachMethodWithData","generateHTTPMethod","isForm","httpMethod","CancelToken","executor","resolvePromise","promiseExecutor","_listeners","onfulfilled","c","spread","payload","HttpStatusCode","Continue","SwitchingProtocols","Processing","EarlyHints","Ok","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","WebServerIsDown","ConnectionTimedOut","OriginIsUnreachable","TimeoutOccurred","SslHandshakeFailed","InvalidSslCertificate","createInstance","defaultConfig","instance","axios","Cancel","promises","formToJSON","default"],"mappings":"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","x_google_ignoreList":[24]} \ No newline at end of file diff --git a/server/api/node_modules/axios/index.d.cts b/server/api/node_modules/axios/index.d.cts new file mode 100644 index 0000000..1a9e192 --- /dev/null +++ b/server/api/node_modules/axios/index.d.cts @@ -0,0 +1,702 @@ +interface RawAxiosHeaders { + [key: string]: axios.AxiosHeaderValue; +} + +type MethodsHeaders = Partial< + { + [Key in axios.Method as Lowercase]: AxiosHeaders; + } & { common: AxiosHeaders } +>; + +type AxiosHeaderMatcher = + | string + | RegExp + | ((this: AxiosHeaders, value: string, name: string) => boolean); + +type AxiosHeaderParser = (this: AxiosHeaders, value: axios.AxiosHeaderValue, header: string) => any; + +type CommonRequestHeadersList = + | 'Accept' + | 'Content-Length' + | 'User-Agent' + | 'Content-Encoding' + | 'Authorization' + | 'Location'; + +type ContentType = + | axios.AxiosHeaderValue + | 'text/html' + | 'text/plain' + | 'multipart/form-data' + | 'application/json' + | 'application/x-www-form-urlencoded' + | 'application/octet-stream'; + +type CommonResponseHeadersList = + | 'Server' + | 'Content-Type' + | 'Content-Length' + | 'Cache-Control' + | 'Content-Encoding'; + +type CommonResponseHeaderKey = CommonResponseHeadersList | Lowercase; + +type BrowserProgressEvent = any; + +declare class AxiosHeaders { + constructor(headers?: RawAxiosHeaders | AxiosHeaders | string); + + [key: string]: any; + + set( + headerName?: string, + value?: axios.AxiosHeaderValue, + rewrite?: boolean | AxiosHeaderMatcher + ): AxiosHeaders; + set(headers?: RawAxiosHeaders | AxiosHeaders | string, rewrite?: boolean): AxiosHeaders; + + get(headerName: string, parser: RegExp): RegExpExecArray | null; + get(headerName: string, matcher?: true | AxiosHeaderParser): axios.AxiosHeaderValue; + + has(header: string, matcher?: AxiosHeaderMatcher): boolean; + + delete(header: string | string[], matcher?: AxiosHeaderMatcher): boolean; + + clear(matcher?: AxiosHeaderMatcher): boolean; + + normalize(format: boolean): AxiosHeaders; + + concat( + ...targets: Array + ): AxiosHeaders; + + toJSON(asStrings?: boolean): RawAxiosHeaders; + + static from(thing?: AxiosHeaders | RawAxiosHeaders | string): AxiosHeaders; + + static accessor(header: string | string[]): AxiosHeaders; + + static concat( + ...targets: Array + ): AxiosHeaders; + + setContentType(value: ContentType, rewrite?: boolean | AxiosHeaderMatcher): AxiosHeaders; + getContentType(parser?: RegExp): RegExpExecArray | null; + getContentType(matcher?: AxiosHeaderMatcher): axios.AxiosHeaderValue; + hasContentType(matcher?: AxiosHeaderMatcher): boolean; + + setContentLength( + value: axios.AxiosHeaderValue, + rewrite?: boolean | AxiosHeaderMatcher + ): AxiosHeaders; + getContentLength(parser?: RegExp): RegExpExecArray | null; + getContentLength(matcher?: AxiosHeaderMatcher): axios.AxiosHeaderValue; + hasContentLength(matcher?: AxiosHeaderMatcher): boolean; + + setAccept(value: axios.AxiosHeaderValue, rewrite?: boolean | AxiosHeaderMatcher): AxiosHeaders; + getAccept(parser?: RegExp): RegExpExecArray | null; + getAccept(matcher?: AxiosHeaderMatcher): axios.AxiosHeaderValue; + hasAccept(matcher?: AxiosHeaderMatcher): boolean; + + setUserAgent(value: axios.AxiosHeaderValue, rewrite?: boolean | AxiosHeaderMatcher): AxiosHeaders; + getUserAgent(parser?: RegExp): RegExpExecArray | null; + getUserAgent(matcher?: AxiosHeaderMatcher): axios.AxiosHeaderValue; + hasUserAgent(matcher?: AxiosHeaderMatcher): boolean; + + setContentEncoding( + value: axios.AxiosHeaderValue, + rewrite?: boolean | AxiosHeaderMatcher + ): AxiosHeaders; + getContentEncoding(parser?: RegExp): RegExpExecArray | null; + getContentEncoding(matcher?: AxiosHeaderMatcher): axios.AxiosHeaderValue; + hasContentEncoding(matcher?: AxiosHeaderMatcher): boolean; + + setAuthorization( + value: axios.AxiosHeaderValue, + rewrite?: boolean | AxiosHeaderMatcher + ): AxiosHeaders; + getAuthorization(parser?: RegExp): RegExpExecArray | null; + getAuthorization(matcher?: AxiosHeaderMatcher): axios.AxiosHeaderValue; + hasAuthorization(matcher?: AxiosHeaderMatcher): boolean; + + getSetCookie(): string[]; + + [Symbol.iterator](): IterableIterator<[string, axios.AxiosHeaderValue]>; +} + +declare class AxiosError extends Error { + constructor( + message?: string, + code?: string, + config?: axios.InternalAxiosRequestConfig, + request?: any, + response?: axios.AxiosResponse + ); + + config?: axios.InternalAxiosRequestConfig; + code?: string; + request?: any; + response?: axios.AxiosResponse; + isAxiosError: boolean; + status?: number; + toJSON: () => object; + cause?: Error; + event?: BrowserProgressEvent; + static from( + error: Error | unknown, + code?: string, + config?: axios.InternalAxiosRequestConfig, + request?: any, + response?: axios.AxiosResponse, + customProps?: object + ): AxiosError; + static readonly ERR_FR_TOO_MANY_REDIRECTS = 'ERR_FR_TOO_MANY_REDIRECTS'; + static readonly ERR_BAD_OPTION_VALUE = 'ERR_BAD_OPTION_VALUE'; + static readonly ERR_BAD_OPTION = 'ERR_BAD_OPTION'; + static readonly ERR_NETWORK = 'ERR_NETWORK'; + static readonly ERR_DEPRECATED = 'ERR_DEPRECATED'; + static readonly ERR_BAD_RESPONSE = 'ERR_BAD_RESPONSE'; + static readonly ERR_BAD_REQUEST = 'ERR_BAD_REQUEST'; + static readonly ERR_NOT_SUPPORT = 'ERR_NOT_SUPPORT'; + static readonly ERR_INVALID_URL = 'ERR_INVALID_URL'; + static readonly ERR_CANCELED = 'ERR_CANCELED'; + static readonly ERR_FORM_DATA_DEPTH_EXCEEDED = 'ERR_FORM_DATA_DEPTH_EXCEEDED'; + static readonly ECONNABORTED = 'ECONNABORTED'; + static readonly ETIMEDOUT = 'ETIMEDOUT'; +} + +declare class CanceledError extends AxiosError {} + +declare class Axios { + constructor(config?: axios.AxiosRequestConfig); + defaults: axios.AxiosDefaults; + interceptors: { + request: axios.AxiosInterceptorManager; + response: axios.AxiosInterceptorManager; + }; + getUri(config?: axios.AxiosRequestConfig): string; + request, D = any>( + config: axios.AxiosRequestConfig + ): Promise; + get, D = any>( + url: string, + config?: axios.AxiosRequestConfig + ): Promise; + delete, D = any>( + url: string, + config?: axios.AxiosRequestConfig + ): Promise; + head, D = any>( + url: string, + config?: axios.AxiosRequestConfig + ): Promise; + options, D = any>( + url: string, + config?: axios.AxiosRequestConfig + ): Promise; + post, D = any>( + url: string, + data?: D, + config?: axios.AxiosRequestConfig + ): Promise; + put, D = any>( + url: string, + data?: D, + config?: axios.AxiosRequestConfig + ): Promise; + patch, D = any>( + url: string, + data?: D, + config?: axios.AxiosRequestConfig + ): Promise; + postForm, D = any>( + url: string, + data?: D, + config?: axios.AxiosRequestConfig + ): Promise; + putForm, D = any>( + url: string, + data?: D, + config?: axios.AxiosRequestConfig + ): Promise; + patchForm, D = any>( + url: string, + data?: D, + config?: axios.AxiosRequestConfig + ): Promise; +} + +declare enum HttpStatusCode { + Continue = 100, + SwitchingProtocols = 101, + Processing = 102, + EarlyHints = 103, + Ok = 200, + Created = 201, + Accepted = 202, + NonAuthoritativeInformation = 203, + NoContent = 204, + ResetContent = 205, + PartialContent = 206, + MultiStatus = 207, + AlreadyReported = 208, + ImUsed = 226, + MultipleChoices = 300, + MovedPermanently = 301, + Found = 302, + SeeOther = 303, + NotModified = 304, + UseProxy = 305, + Unused = 306, + TemporaryRedirect = 307, + PermanentRedirect = 308, + BadRequest = 400, + Unauthorized = 401, + PaymentRequired = 402, + Forbidden = 403, + NotFound = 404, + MethodNotAllowed = 405, + NotAcceptable = 406, + ProxyAuthenticationRequired = 407, + RequestTimeout = 408, + Conflict = 409, + Gone = 410, + LengthRequired = 411, + PreconditionFailed = 412, + PayloadTooLarge = 413, + UriTooLong = 414, + UnsupportedMediaType = 415, + RangeNotSatisfiable = 416, + ExpectationFailed = 417, + ImATeapot = 418, + MisdirectedRequest = 421, + UnprocessableEntity = 422, + Locked = 423, + FailedDependency = 424, + TooEarly = 425, + UpgradeRequired = 426, + PreconditionRequired = 428, + TooManyRequests = 429, + RequestHeaderFieldsTooLarge = 431, + UnavailableForLegalReasons = 451, + InternalServerError = 500, + NotImplemented = 501, + BadGateway = 502, + ServiceUnavailable = 503, + GatewayTimeout = 504, + HttpVersionNotSupported = 505, + VariantAlsoNegotiates = 506, + InsufficientStorage = 507, + LoopDetected = 508, + NotExtended = 510, + NetworkAuthenticationRequired = 511, +} + +type InternalAxiosError = AxiosError; + +declare namespace axios { + type AxiosError = InternalAxiosError; + + type RawAxiosRequestHeaders = Partial< + RawAxiosHeaders & { + [Key in CommonRequestHeadersList]: AxiosHeaderValue; + } & { + 'Content-Type': ContentType; + } + >; + + type AxiosRequestHeaders = RawAxiosRequestHeaders & AxiosHeaders; + + type AxiosHeaderValue = AxiosHeaders | string | string[] | number | boolean | null; + + type RawCommonResponseHeaders = { + [Key in CommonResponseHeaderKey]: AxiosHeaderValue; + } & { + 'set-cookie': string[]; + }; + + type RawAxiosResponseHeaders = Partial; + + type AxiosResponseHeaders = RawAxiosResponseHeaders & AxiosHeaders; + + interface AxiosRequestTransformer { + (this: InternalAxiosRequestConfig, data: any, headers: AxiosRequestHeaders): any; + } + + interface AxiosResponseTransformer { + ( + this: InternalAxiosRequestConfig, + data: any, + headers: AxiosResponseHeaders, + status?: number + ): any; + } + + interface AxiosAdapter { + (config: InternalAxiosRequestConfig): AxiosPromise; + } + + interface AxiosBasicCredentials { + username: string; + password: string; + } + + interface AxiosProxyConfig { + host: string; + port: number; + auth?: AxiosBasicCredentials; + protocol?: string; + } + + type UppercaseMethod = + | 'GET' + | 'DELETE' + | 'HEAD' + | 'OPTIONS' + | 'POST' + | 'PUT' + | 'PATCH' + | 'PURGE' + | 'LINK' + | 'UNLINK'; + + type Method = (UppercaseMethod | Lowercase) & {}; + + type ResponseType = 'arraybuffer' | 'blob' | 'document' | 'json' | 'text' | 'stream' | 'formdata'; + + type UppercaseResponseEncoding = + | 'ASCII' + | 'ANSI' + | 'BINARY' + | 'BASE64' + | 'BASE64URL' + | 'HEX' + | 'LATIN1' + | 'UCS-2' + | 'UCS2' + | 'UTF-8' + | 'UTF8' + | 'UTF16LE'; + + type responseEncoding = (UppercaseResponseEncoding | Lowercase) & {}; + + interface TransitionalOptions { + silentJSONParsing?: boolean; + forcedJSONParsing?: boolean; + clarifyTimeoutError?: boolean; + legacyInterceptorReqResOrdering?: boolean; + } + + interface GenericAbortSignal { + readonly aborted: boolean; + onabort?: ((...args: any) => any) | null; + addEventListener?: (...args: any) => any; + removeEventListener?: (...args: any) => any; + } + + interface FormDataVisitorHelpers { + defaultVisitor: SerializerVisitor; + convertValue: (value: any) => any; + isVisitable: (value: any) => boolean; + } + + interface SerializerVisitor { + ( + this: GenericFormData, + value: any, + key: string | number, + path: null | Array, + helpers: FormDataVisitorHelpers + ): boolean; + } + + interface SerializerOptions { + visitor?: SerializerVisitor; + dots?: boolean; + metaTokens?: boolean; + indexes?: boolean | null; + } + + // tslint:disable-next-line + interface FormSerializerOptions extends SerializerOptions {} + + interface ParamEncoder { + (value: any, defaultEncoder: (value: any) => any): any; + } + + interface CustomParamsSerializer { + (params: Record, options?: ParamsSerializerOptions): string; + } + + interface ParamsSerializerOptions extends SerializerOptions { + encode?: ParamEncoder; + serialize?: CustomParamsSerializer; + } + + type MaxUploadRate = number; + + type MaxDownloadRate = number; + + interface AxiosProgressEvent { + loaded: number; + total?: number; + progress?: number; + bytes: number; + rate?: number; + estimated?: number; + upload?: boolean; + download?: boolean; + event?: BrowserProgressEvent; + lengthComputable: boolean; + } + + type Milliseconds = number; + + type AxiosAdapterName = 'fetch' | 'xhr' | 'http' | (string & {}); + + type AxiosAdapterConfig = AxiosAdapter | AxiosAdapterName; + + type AddressFamily = 4 | 6 | undefined; + + interface LookupAddressEntry { + address: string; + family?: AddressFamily; + } + + type LookupAddress = string | LookupAddressEntry; + + interface AxiosRequestConfig { + url?: string; + method?: Method | string; + baseURL?: string; + allowAbsoluteUrls?: boolean; + transformRequest?: AxiosRequestTransformer | AxiosRequestTransformer[]; + transformResponse?: AxiosResponseTransformer | AxiosResponseTransformer[]; + headers?: (RawAxiosRequestHeaders & MethodsHeaders) | AxiosHeaders; + params?: any; + paramsSerializer?: ParamsSerializerOptions | CustomParamsSerializer; + data?: D; + timeout?: Milliseconds; + timeoutErrorMessage?: string; + withCredentials?: boolean; + adapter?: AxiosAdapterConfig | AxiosAdapterConfig[]; + auth?: AxiosBasicCredentials; + responseType?: ResponseType; + responseEncoding?: responseEncoding | string; + xsrfCookieName?: string; + xsrfHeaderName?: string; + onUploadProgress?: (progressEvent: AxiosProgressEvent) => void; + onDownloadProgress?: (progressEvent: AxiosProgressEvent) => void; + maxContentLength?: number; + validateStatus?: ((status: number) => boolean) | null; + maxBodyLength?: number; + maxRedirects?: number; + maxRate?: number | [MaxUploadRate, MaxDownloadRate]; + beforeRedirect?: ( + options: Record, + responseDetails: { headers: Record; statusCode: HttpStatusCode } + ) => void; + socketPath?: string | null; + transport?: any; + httpAgent?: any; + httpsAgent?: any; + proxy?: AxiosProxyConfig | false; + cancelToken?: CancelToken; + decompress?: boolean; + transitional?: TransitionalOptions; + signal?: GenericAbortSignal; + insecureHTTPParser?: boolean; + env?: { + FormData?: new (...args: any[]) => object; + fetch?: (input: URL | Request | string, init?: RequestInit) => Promise; + Request?: new (input: URL | Request | string, init?: RequestInit) => Request; + Response?: new ( + body?: ArrayBuffer | ArrayBufferView | Blob | FormData | URLSearchParams | string | null, + init?: ResponseInit + ) => Response; + }; + formSerializer?: FormSerializerOptions; + family?: AddressFamily; + lookup?: + | (( + hostname: string, + options: object, + cb: ( + err: Error | null, + address: LookupAddress | LookupAddress[], + family?: AddressFamily + ) => void + ) => void) + | (( + hostname: string, + options: object + ) => Promise< + | [address: LookupAddressEntry | LookupAddressEntry[], family?: AddressFamily] + | LookupAddress + >); + withXSRFToken?: boolean | ((config: InternalAxiosRequestConfig) => boolean | undefined); + fetchOptions?: + | Omit + | Record; + httpVersion?: 1 | 2; + http2Options?: Record & { + sessionTimeout?: number; + }; + } + + // Alias + type RawAxiosRequestConfig = AxiosRequestConfig; + + interface InternalAxiosRequestConfig extends AxiosRequestConfig { + headers: AxiosRequestHeaders; + } + + interface HeadersDefaults { + common: RawAxiosRequestHeaders; + delete: RawAxiosRequestHeaders; + get: RawAxiosRequestHeaders; + head: RawAxiosRequestHeaders; + post: RawAxiosRequestHeaders; + put: RawAxiosRequestHeaders; + patch: RawAxiosRequestHeaders; + options?: RawAxiosRequestHeaders; + purge?: RawAxiosRequestHeaders; + link?: RawAxiosRequestHeaders; + unlink?: RawAxiosRequestHeaders; + } + + interface AxiosDefaults extends Omit, 'headers'> { + headers: HeadersDefaults; + } + + interface CreateAxiosDefaults extends Omit, 'headers'> { + headers?: RawAxiosRequestHeaders | AxiosHeaders | Partial; + } + + interface AxiosResponse { + data: T; + status: number; + statusText: string; + headers: (H & RawAxiosResponseHeaders) | AxiosResponseHeaders; + config: InternalAxiosRequestConfig; + request?: any; + } + + type AxiosPromise = Promise>; + + interface CancelStatic { + new (message?: string): Cancel; + } + + interface Cancel { + message: string | undefined; + } + + interface Canceler { + (message?: string, config?: AxiosRequestConfig, request?: any): void; + } + + interface CancelTokenStatic { + new (executor: (cancel: Canceler) => void): CancelToken; + source(): CancelTokenSource; + } + + interface CancelToken { + promise: Promise; + reason?: Cancel; + throwIfRequested(): void; + } + + interface CancelTokenSource { + token: CancelToken; + cancel: Canceler; + } + + interface AxiosInterceptorOptions { + synchronous?: boolean; + runWhen?: ((config: InternalAxiosRequestConfig) => boolean) | null; + } + + type AxiosInterceptorFulfilled = (value: T) => T | Promise; + type AxiosInterceptorRejected = (error: any) => any; + + type AxiosRequestInterceptorUse = ( + onFulfilled?: AxiosInterceptorFulfilled | null, + onRejected?: AxiosInterceptorRejected | null, + options?: AxiosInterceptorOptions + ) => number; + + type AxiosResponseInterceptorUse = ( + onFulfilled?: AxiosInterceptorFulfilled | null, + onRejected?: AxiosInterceptorRejected | null + ) => number; + + interface AxiosInterceptorHandler { + fulfilled: AxiosInterceptorFulfilled; + rejected?: AxiosInterceptorRejected; + synchronous: boolean; + runWhen?: ((config: InternalAxiosRequestConfig) => boolean) | null; + } + + interface AxiosInterceptorManager { + use: V extends AxiosResponse ? AxiosResponseInterceptorUse : AxiosRequestInterceptorUse; + eject(id: number): void; + clear(): void; + handlers?: Array>; + } + + interface AxiosInstance extends Axios { + , D = any>(config: AxiosRequestConfig): Promise; + , D = any>( + url: string, + config?: AxiosRequestConfig + ): Promise; + + create(config?: CreateAxiosDefaults): AxiosInstance; + defaults: Omit & { + headers: HeadersDefaults & { + [key: string]: AxiosHeaderValue; + }; + }; + } + + interface GenericFormData { + append(name: string, value: any, options?: any): any; + } + + interface GenericHTMLFormElement { + name: string; + method: string; + submit(): void; + } + + interface AxiosStatic extends AxiosInstance { + Cancel: CancelStatic; + CancelToken: CancelTokenStatic; + Axios: typeof Axios; + AxiosError: typeof AxiosError; + CanceledError: typeof CanceledError; + HttpStatusCode: typeof HttpStatusCode; + readonly VERSION: string; + isCancel(value: any): value is Cancel; + all(values: Array>): Promise; + spread(callback: (...args: T[]) => R): (array: T[]) => R; + isAxiosError(payload: any): payload is AxiosError; + toFormData( + sourceObj: object, + targetFormData?: GenericFormData, + options?: FormSerializerOptions + ): GenericFormData; + formToJSON(form: GenericFormData | GenericHTMLFormElement): object; + getAdapter(adapters: AxiosAdapterConfig | AxiosAdapterConfig[] | undefined): AxiosAdapter; + AxiosHeaders: typeof AxiosHeaders; + mergeConfig( + config1: AxiosRequestConfig, + config2: AxiosRequestConfig + ): AxiosRequestConfig; + } +} + +declare const axios: axios.AxiosStatic; + +export = axios; diff --git a/server/api/node_modules/axios/index.d.ts b/server/api/node_modules/axios/index.d.ts new file mode 100644 index 0000000..7a9d87a --- /dev/null +++ b/server/api/node_modules/axios/index.d.ts @@ -0,0 +1,716 @@ +// TypeScript Version: 4.7 +type StringLiteralsOrString = Literals | (string & {}); + +export type AxiosHeaderValue = AxiosHeaders | string | string[] | number | boolean | null; + +interface RawAxiosHeaders { + [key: string]: AxiosHeaderValue; +} + +type MethodsHeaders = Partial< + { + [Key in Method as Lowercase]: AxiosHeaders; + } & { common: AxiosHeaders } +>; + +type AxiosHeaderMatcher = + | string + | RegExp + | ((this: AxiosHeaders, value: string, name: string) => boolean); + +type AxiosHeaderParser = (this: AxiosHeaders, value: AxiosHeaderValue, header: string) => any; + +export class AxiosHeaders { + constructor(headers?: RawAxiosHeaders | AxiosHeaders | string); + + [key: string]: any; + + set( + headerName?: string, + value?: AxiosHeaderValue, + rewrite?: boolean | AxiosHeaderMatcher + ): AxiosHeaders; + set(headers?: RawAxiosHeaders | AxiosHeaders | string, rewrite?: boolean): AxiosHeaders; + + get(headerName: string, parser: RegExp): RegExpExecArray | null; + get(headerName: string, matcher?: true | AxiosHeaderParser): AxiosHeaderValue; + + has(header: string, matcher?: AxiosHeaderMatcher): boolean; + + delete(header: string | string[], matcher?: AxiosHeaderMatcher): boolean; + + clear(matcher?: AxiosHeaderMatcher): boolean; + + normalize(format: boolean): AxiosHeaders; + + concat( + ...targets: Array + ): AxiosHeaders; + + toJSON(asStrings?: boolean): RawAxiosHeaders; + + static from(thing?: AxiosHeaders | RawAxiosHeaders | string): AxiosHeaders; + + static accessor(header: string | string[]): AxiosHeaders; + + static concat( + ...targets: Array + ): AxiosHeaders; + + setContentType(value: ContentType, rewrite?: boolean | AxiosHeaderMatcher): AxiosHeaders; + getContentType(parser?: RegExp): RegExpExecArray | null; + getContentType(matcher?: AxiosHeaderMatcher): AxiosHeaderValue; + hasContentType(matcher?: AxiosHeaderMatcher): boolean; + + setContentLength(value: AxiosHeaderValue, rewrite?: boolean | AxiosHeaderMatcher): AxiosHeaders; + getContentLength(parser?: RegExp): RegExpExecArray | null; + getContentLength(matcher?: AxiosHeaderMatcher): AxiosHeaderValue; + hasContentLength(matcher?: AxiosHeaderMatcher): boolean; + + setAccept(value: AxiosHeaderValue, rewrite?: boolean | AxiosHeaderMatcher): AxiosHeaders; + getAccept(parser?: RegExp): RegExpExecArray | null; + getAccept(matcher?: AxiosHeaderMatcher): AxiosHeaderValue; + hasAccept(matcher?: AxiosHeaderMatcher): boolean; + + setUserAgent(value: AxiosHeaderValue, rewrite?: boolean | AxiosHeaderMatcher): AxiosHeaders; + getUserAgent(parser?: RegExp): RegExpExecArray | null; + getUserAgent(matcher?: AxiosHeaderMatcher): AxiosHeaderValue; + hasUserAgent(matcher?: AxiosHeaderMatcher): boolean; + + setContentEncoding(value: AxiosHeaderValue, rewrite?: boolean | AxiosHeaderMatcher): AxiosHeaders; + getContentEncoding(parser?: RegExp): RegExpExecArray | null; + getContentEncoding(matcher?: AxiosHeaderMatcher): AxiosHeaderValue; + hasContentEncoding(matcher?: AxiosHeaderMatcher): boolean; + + setAuthorization(value: AxiosHeaderValue, rewrite?: boolean | AxiosHeaderMatcher): AxiosHeaders; + getAuthorization(parser?: RegExp): RegExpExecArray | null; + getAuthorization(matcher?: AxiosHeaderMatcher): AxiosHeaderValue; + hasAuthorization(matcher?: AxiosHeaderMatcher): boolean; + + getSetCookie(): string[]; + + [Symbol.iterator](): IterableIterator<[string, AxiosHeaderValue]>; +} + +type CommonRequestHeadersList = + | 'Accept' + | 'Content-Length' + | 'User-Agent' + | 'Content-Encoding' + | 'Authorization' + | 'Location'; + +type ContentType = + | AxiosHeaderValue + | 'text/html' + | 'text/plain' + | 'multipart/form-data' + | 'application/json' + | 'application/x-www-form-urlencoded' + | 'application/octet-stream'; + +export type RawAxiosRequestHeaders = Partial< + RawAxiosHeaders & { + [Key in CommonRequestHeadersList]: AxiosHeaderValue; + } & { + 'Content-Type': ContentType; + } +>; + +export type AxiosRequestHeaders = RawAxiosRequestHeaders & AxiosHeaders; + +type CommonResponseHeadersList = + | 'Server' + | 'Content-Type' + | 'Content-Length' + | 'Cache-Control' + | 'Content-Encoding'; + +type CommonResponseHeaderKey = CommonResponseHeadersList | Lowercase; + +type RawCommonResponseHeaders = { + [Key in CommonResponseHeaderKey]: AxiosHeaderValue; +} & { + 'set-cookie': string[]; +}; + +export type RawAxiosResponseHeaders = Partial; + +export type AxiosResponseHeaders = RawAxiosResponseHeaders & AxiosHeaders; + +export interface AxiosRequestTransformer { + (this: InternalAxiosRequestConfig, data: any, headers: AxiosRequestHeaders): any; +} + +export interface AxiosResponseTransformer { + ( + this: InternalAxiosRequestConfig, + data: any, + headers: AxiosResponseHeaders, + status?: number + ): any; +} + +export interface AxiosAdapter { + (config: InternalAxiosRequestConfig): AxiosPromise; +} + +export interface AxiosBasicCredentials { + username: string; + password: string; +} + +export interface AxiosProxyConfig { + host: string; + port: number; + auth?: AxiosBasicCredentials; + protocol?: string; +} + +export enum HttpStatusCode { + Continue = 100, + SwitchingProtocols = 101, + Processing = 102, + EarlyHints = 103, + Ok = 200, + Created = 201, + Accepted = 202, + NonAuthoritativeInformation = 203, + NoContent = 204, + ResetContent = 205, + PartialContent = 206, + MultiStatus = 207, + AlreadyReported = 208, + ImUsed = 226, + MultipleChoices = 300, + MovedPermanently = 301, + Found = 302, + SeeOther = 303, + NotModified = 304, + UseProxy = 305, + Unused = 306, + TemporaryRedirect = 307, + PermanentRedirect = 308, + BadRequest = 400, + Unauthorized = 401, + PaymentRequired = 402, + Forbidden = 403, + NotFound = 404, + MethodNotAllowed = 405, + NotAcceptable = 406, + ProxyAuthenticationRequired = 407, + RequestTimeout = 408, + Conflict = 409, + Gone = 410, + LengthRequired = 411, + PreconditionFailed = 412, + PayloadTooLarge = 413, + UriTooLong = 414, + UnsupportedMediaType = 415, + RangeNotSatisfiable = 416, + ExpectationFailed = 417, + ImATeapot = 418, + MisdirectedRequest = 421, + UnprocessableEntity = 422, + Locked = 423, + FailedDependency = 424, + TooEarly = 425, + UpgradeRequired = 426, + PreconditionRequired = 428, + TooManyRequests = 429, + RequestHeaderFieldsTooLarge = 431, + UnavailableForLegalReasons = 451, + InternalServerError = 500, + NotImplemented = 501, + BadGateway = 502, + ServiceUnavailable = 503, + GatewayTimeout = 504, + HttpVersionNotSupported = 505, + VariantAlsoNegotiates = 506, + InsufficientStorage = 507, + LoopDetected = 508, + NotExtended = 510, + NetworkAuthenticationRequired = 511, +} + +type UppercaseMethod = + | 'GET' + | 'DELETE' + | 'HEAD' + | 'OPTIONS' + | 'POST' + | 'PUT' + | 'PATCH' + | 'PURGE' + | 'LINK' + | 'UNLINK'; + +export type Method = (UppercaseMethod | Lowercase) & {}; + +export type ResponseType = + | 'arraybuffer' + | 'blob' + | 'document' + | 'json' + | 'text' + | 'stream' + | 'formdata'; + +type UppercaseResponseEncoding = + | 'ASCII' + | 'ANSI' + | 'BINARY' + | 'BASE64' + | 'BASE64URL' + | 'HEX' + | 'LATIN1' + | 'UCS-2' + | 'UCS2' + | 'UTF-8' + | 'UTF8' + | 'UTF16LE'; + +export type responseEncoding = ( + | UppercaseResponseEncoding + | Lowercase +) & {}; + +export interface TransitionalOptions { + silentJSONParsing?: boolean; + forcedJSONParsing?: boolean; + clarifyTimeoutError?: boolean; + legacyInterceptorReqResOrdering?: boolean; +} + +export interface GenericAbortSignal { + readonly aborted: boolean; + onabort?: ((...args: any) => any) | null; + addEventListener?: (...args: any) => any; + removeEventListener?: (...args: any) => any; +} + +export interface FormDataVisitorHelpers { + defaultVisitor: SerializerVisitor; + convertValue: (value: any) => any; + isVisitable: (value: any) => boolean; +} + +export interface SerializerVisitor { + ( + this: GenericFormData, + value: any, + key: string | number, + path: null | Array, + helpers: FormDataVisitorHelpers + ): boolean; +} + +export interface SerializerOptions { + visitor?: SerializerVisitor; + dots?: boolean; + metaTokens?: boolean; + indexes?: boolean | null; +} + +// tslint:disable-next-line +export interface FormSerializerOptions extends SerializerOptions {} + +export interface ParamEncoder { + (value: any, defaultEncoder: (value: any) => any): any; +} + +export interface CustomParamsSerializer { + (params: Record, options?: ParamsSerializerOptions): string; +} + +export interface ParamsSerializerOptions extends SerializerOptions { + encode?: ParamEncoder; + serialize?: CustomParamsSerializer; +} + +type MaxUploadRate = number; + +type MaxDownloadRate = number; + +type BrowserProgressEvent = any; + +export interface AxiosProgressEvent { + loaded: number; + total?: number; + progress?: number; + bytes: number; + rate?: number; + estimated?: number; + upload?: boolean; + download?: boolean; + event?: BrowserProgressEvent; + lengthComputable: boolean; +} + +type Milliseconds = number; + +type AxiosAdapterName = StringLiteralsOrString<'xhr' | 'http' | 'fetch'>; + +type AxiosAdapterConfig = AxiosAdapter | AxiosAdapterName; + +export type AddressFamily = 4 | 6 | undefined; + +export interface LookupAddressEntry { + address: string; + family?: AddressFamily; +} + +export type LookupAddress = string | LookupAddressEntry; + +export interface AxiosRequestConfig { + url?: string; + method?: StringLiteralsOrString; + baseURL?: string; + allowAbsoluteUrls?: boolean; + transformRequest?: AxiosRequestTransformer | AxiosRequestTransformer[]; + transformResponse?: AxiosResponseTransformer | AxiosResponseTransformer[]; + headers?: (RawAxiosRequestHeaders & MethodsHeaders) | AxiosHeaders; + params?: any; + paramsSerializer?: ParamsSerializerOptions | CustomParamsSerializer; + data?: D; + timeout?: Milliseconds; + timeoutErrorMessage?: string; + withCredentials?: boolean; + adapter?: AxiosAdapterConfig | AxiosAdapterConfig[]; + auth?: AxiosBasicCredentials; + responseType?: ResponseType; + responseEncoding?: StringLiteralsOrString; + xsrfCookieName?: string; + xsrfHeaderName?: string; + onUploadProgress?: (progressEvent: AxiosProgressEvent) => void; + onDownloadProgress?: (progressEvent: AxiosProgressEvent) => void; + maxContentLength?: number; + validateStatus?: ((status: number) => boolean) | null; + maxBodyLength?: number; + maxRedirects?: number; + maxRate?: number | [MaxUploadRate, MaxDownloadRate]; + beforeRedirect?: ( + options: Record, + responseDetails: { + headers: Record; + statusCode: HttpStatusCode; + } + ) => void; + socketPath?: string | null; + transport?: any; + httpAgent?: any; + httpsAgent?: any; + proxy?: AxiosProxyConfig | false; + cancelToken?: CancelToken | undefined; + decompress?: boolean; + transitional?: TransitionalOptions; + signal?: GenericAbortSignal; + insecureHTTPParser?: boolean; + env?: { + FormData?: new (...args: any[]) => object; + fetch?: (input: URL | Request | string, init?: RequestInit) => Promise; + Request?: new (input: URL | Request | string, init?: RequestInit) => Request; + Response?: new ( + body?: ArrayBuffer | ArrayBufferView | Blob | FormData | URLSearchParams | string | null, + init?: ResponseInit + ) => Response; + }; + formSerializer?: FormSerializerOptions; + family?: AddressFamily; + lookup?: + | (( + hostname: string, + options: object, + cb: ( + err: Error | null, + address: LookupAddress | LookupAddress[], + family?: AddressFamily + ) => void + ) => void) + | (( + hostname: string, + options: object + ) => Promise< + [address: LookupAddressEntry | LookupAddressEntry[], family?: AddressFamily] | LookupAddress + >); + withXSRFToken?: boolean | ((config: InternalAxiosRequestConfig) => boolean | undefined); + parseReviver?: (this: any, key: string, value: any) => any; + fetchOptions?: Omit | Record; + httpVersion?: 1 | 2; + http2Options?: Record & { + sessionTimeout?: number; + }; +} + +// Alias +export type RawAxiosRequestConfig = AxiosRequestConfig; + +export interface InternalAxiosRequestConfig extends AxiosRequestConfig { + headers: AxiosRequestHeaders; +} + +export interface HeadersDefaults { + common: RawAxiosRequestHeaders; + delete: RawAxiosRequestHeaders; + get: RawAxiosRequestHeaders; + head: RawAxiosRequestHeaders; + post: RawAxiosRequestHeaders; + put: RawAxiosRequestHeaders; + patch: RawAxiosRequestHeaders; + options?: RawAxiosRequestHeaders; + purge?: RawAxiosRequestHeaders; + link?: RawAxiosRequestHeaders; + unlink?: RawAxiosRequestHeaders; +} + +export interface AxiosDefaults extends Omit, 'headers'> { + headers: HeadersDefaults; +} + +export interface CreateAxiosDefaults extends Omit, 'headers'> { + headers?: RawAxiosRequestHeaders | AxiosHeaders | Partial; +} + +export interface AxiosResponse { + data: T; + status: number; + statusText: string; + headers: (H & RawAxiosResponseHeaders) | AxiosResponseHeaders; + config: InternalAxiosRequestConfig; + request?: any; +} + +export class AxiosError extends Error { + constructor( + message?: string, + code?: string, + config?: InternalAxiosRequestConfig, + request?: any, + response?: AxiosResponse + ); + + config?: InternalAxiosRequestConfig; + code?: string; + request?: any; + response?: AxiosResponse; + isAxiosError: boolean; + status?: number; + toJSON: () => object; + cause?: Error; + event?: BrowserProgressEvent; + static from( + error: Error | unknown, + code?: string, + config?: InternalAxiosRequestConfig, + request?: any, + response?: AxiosResponse, + customProps?: object + ): AxiosError; + static readonly ERR_FR_TOO_MANY_REDIRECTS = 'ERR_FR_TOO_MANY_REDIRECTS'; + static readonly ERR_BAD_OPTION_VALUE = 'ERR_BAD_OPTION_VALUE'; + static readonly ERR_BAD_OPTION = 'ERR_BAD_OPTION'; + static readonly ERR_NETWORK = 'ERR_NETWORK'; + static readonly ERR_DEPRECATED = 'ERR_DEPRECATED'; + static readonly ERR_BAD_RESPONSE = 'ERR_BAD_RESPONSE'; + static readonly ERR_BAD_REQUEST = 'ERR_BAD_REQUEST'; + static readonly ERR_NOT_SUPPORT = 'ERR_NOT_SUPPORT'; + static readonly ERR_INVALID_URL = 'ERR_INVALID_URL'; + static readonly ERR_CANCELED = 'ERR_CANCELED'; + static readonly ERR_FORM_DATA_DEPTH_EXCEEDED = 'ERR_FORM_DATA_DEPTH_EXCEEDED'; + static readonly ECONNABORTED = 'ECONNABORTED'; + static readonly ETIMEDOUT = 'ETIMEDOUT'; +} + +export class CanceledError extends AxiosError { + readonly name: 'CanceledError'; +} + +export type AxiosPromise = Promise>; + +export interface CancelStatic { + new (message?: string): Cancel; +} + +export interface Cancel { + message: string | undefined; +} + +export interface Canceler { + (message?: string, config?: AxiosRequestConfig, request?: any): void; +} + +export interface CancelTokenStatic { + new (executor: (cancel: Canceler) => void): CancelToken; + source(): CancelTokenSource; +} + +export interface CancelToken { + promise: Promise; + reason?: Cancel; + throwIfRequested(): void; +} + +export interface CancelTokenSource { + token: CancelToken; + cancel: Canceler; +} + +export interface AxiosInterceptorOptions { + synchronous?: boolean; + runWhen?: ((config: InternalAxiosRequestConfig) => boolean) | null; +} + +type AxiosInterceptorFulfilled = (value: T) => T | Promise; +type AxiosInterceptorRejected = (error: any) => any; + +type AxiosRequestInterceptorUse = ( + onFulfilled?: AxiosInterceptorFulfilled | null, + onRejected?: AxiosInterceptorRejected | null, + options?: AxiosInterceptorOptions +) => number; + +type AxiosResponseInterceptorUse = ( + onFulfilled?: AxiosInterceptorFulfilled | null, + onRejected?: AxiosInterceptorRejected | null +) => number; + +interface AxiosInterceptorHandler { + fulfilled: AxiosInterceptorFulfilled; + rejected?: AxiosInterceptorRejected; + synchronous: boolean; + runWhen?: ((config: InternalAxiosRequestConfig) => boolean) | null; +} + +export interface AxiosInterceptorManager { + use: V extends AxiosResponse ? AxiosResponseInterceptorUse : AxiosRequestInterceptorUse; + eject(id: number): void; + clear(): void; + handlers?: Array>; +} + +export class Axios { + constructor(config?: AxiosRequestConfig); + defaults: AxiosDefaults; + interceptors: { + request: AxiosInterceptorManager; + response: AxiosInterceptorManager; + }; + getUri(config?: AxiosRequestConfig): string; + request, D = any>(config: AxiosRequestConfig): Promise; + get, D = any>( + url: string, + config?: AxiosRequestConfig + ): Promise; + delete, D = any>( + url: string, + config?: AxiosRequestConfig + ): Promise; + head, D = any>( + url: string, + config?: AxiosRequestConfig + ): Promise; + options, D = any>( + url: string, + config?: AxiosRequestConfig + ): Promise; + post, D = any>( + url: string, + data?: D, + config?: AxiosRequestConfig + ): Promise; + put, D = any>( + url: string, + data?: D, + config?: AxiosRequestConfig + ): Promise; + patch, D = any>( + url: string, + data?: D, + config?: AxiosRequestConfig + ): Promise; + postForm, D = any>( + url: string, + data?: D, + config?: AxiosRequestConfig + ): Promise; + putForm, D = any>( + url: string, + data?: D, + config?: AxiosRequestConfig + ): Promise; + patchForm, D = any>( + url: string, + data?: D, + config?: AxiosRequestConfig + ): Promise; +} + +export interface AxiosInstance extends Axios { + , D = any>(config: AxiosRequestConfig): Promise; + , D = any>(url: string, config?: AxiosRequestConfig): Promise; + + create(config?: CreateAxiosDefaults): AxiosInstance; + defaults: Omit & { + headers: HeadersDefaults & { + [key: string]: AxiosHeaderValue; + }; + }; +} + +export interface GenericFormData { + append(name: string, value: any, options?: any): any; +} + +export interface GenericHTMLFormElement { + name: string; + method: string; + submit(): void; +} + +export function getAdapter( + adapters: AxiosAdapterConfig | AxiosAdapterConfig[] | undefined +): AxiosAdapter; + +export function toFormData( + sourceObj: object, + targetFormData?: GenericFormData, + options?: FormSerializerOptions +): GenericFormData; + +export function formToJSON(form: GenericFormData | GenericHTMLFormElement): object; + +export function isAxiosError(payload: any): payload is AxiosError; + +export function spread(callback: (...args: T[]) => R): (array: T[]) => R; + +export function isCancel(value: any): value is CanceledError; + +export function all(values: Array>): Promise; + +export function mergeConfig( + config1: AxiosRequestConfig, + config2: AxiosRequestConfig +): AxiosRequestConfig; + +export interface AxiosStatic extends AxiosInstance { + Cancel: CancelStatic; + CancelToken: CancelTokenStatic; + Axios: typeof Axios; + AxiosError: typeof AxiosError; + HttpStatusCode: typeof HttpStatusCode; + readonly VERSION: string; + isCancel: typeof isCancel; + all: typeof all; + spread: typeof spread; + isAxiosError: typeof isAxiosError; + toFormData: typeof toFormData; + formToJSON: typeof formToJSON; + getAdapter: typeof getAdapter; + CanceledError: typeof CanceledError; + AxiosHeaders: typeof AxiosHeaders; + mergeConfig: typeof mergeConfig; +} + +declare const axios: AxiosStatic; + +export default axios; diff --git a/server/api/node_modules/axios/index.js b/server/api/node_modules/axios/index.js new file mode 100644 index 0000000..7dbe23b --- /dev/null +++ b/server/api/node_modules/axios/index.js @@ -0,0 +1,43 @@ +import axios from './lib/axios.js'; + +// This module is intended to unwrap Axios default export as named. +// Keep top-level export same with static properties +// so that it can keep same with es module or cjs +const { + Axios, + AxiosError, + CanceledError, + isCancel, + CancelToken, + VERSION, + all, + Cancel, + isAxiosError, + spread, + toFormData, + AxiosHeaders, + HttpStatusCode, + formToJSON, + getAdapter, + mergeConfig, +} = axios; + +export { + axios as default, + Axios, + AxiosError, + CanceledError, + isCancel, + CancelToken, + VERSION, + all, + Cancel, + isAxiosError, + spread, + toFormData, + AxiosHeaders, + HttpStatusCode, + formToJSON, + getAdapter, + mergeConfig, +}; diff --git a/server/api/node_modules/axios/lib/adapters/README.md b/server/api/node_modules/axios/lib/adapters/README.md new file mode 100644 index 0000000..8d9dd97 --- /dev/null +++ b/server/api/node_modules/axios/lib/adapters/README.md @@ -0,0 +1,36 @@ +# axios // adapters + +The modules under `adapters/` are modules that handle dispatching a request and settling a returned `Promise` once a response is received. + +## Example + +```js +var settle = require('../core/settle'); + +module.exports = function myAdapter(config) { + // At this point: + // - config has been merged with defaults + // - request transformers have already run + // - request interceptors have already run + + // Make the request using config provided + // Upon response settle the Promise + + return new Promise(function (resolve, reject) { + var response = { + data: responseData, + status: request.status, + statusText: request.statusText, + headers: responseHeaders, + config: config, + request: request, + }; + + settle(resolve, reject, response); + + // From here: + // - response transformers will run + // - response interceptors will run + }); +}; +``` diff --git a/server/api/node_modules/axios/lib/adapters/adapters.js b/server/api/node_modules/axios/lib/adapters/adapters.js new file mode 100644 index 0000000..5d18745 --- /dev/null +++ b/server/api/node_modules/axios/lib/adapters/adapters.js @@ -0,0 +1,130 @@ +import utils from '../utils.js'; +import httpAdapter from './http.js'; +import xhrAdapter from './xhr.js'; +import * as fetchAdapter from './fetch.js'; +import AxiosError from '../core/AxiosError.js'; + +/** + * Known adapters mapping. + * Provides environment-specific adapters for Axios: + * - `http` for Node.js + * - `xhr` for browsers + * - `fetch` for fetch API-based requests + * + * @type {Object} + */ +const knownAdapters = { + http: httpAdapter, + xhr: xhrAdapter, + fetch: { + get: fetchAdapter.getFetch, + }, +}; + +// Assign adapter names for easier debugging and identification +utils.forEach(knownAdapters, (fn, value) => { + if (fn) { + try { + Object.defineProperty(fn, 'name', { value }); + } catch (e) { + // eslint-disable-next-line no-empty + } + Object.defineProperty(fn, 'adapterName', { value }); + } +}); + +/** + * Render a rejection reason string for unknown or unsupported adapters + * + * @param {string} reason + * @returns {string} + */ +const renderReason = (reason) => `- ${reason}`; + +/** + * Check if the adapter is resolved (function, null, or false) + * + * @param {Function|null|false} adapter + * @returns {boolean} + */ +const isResolvedHandle = (adapter) => + utils.isFunction(adapter) || adapter === null || adapter === false; + +/** + * Get the first suitable adapter from the provided list. + * Tries each adapter in order until a supported one is found. + * Throws an AxiosError if no adapter is suitable. + * + * @param {Array|string|Function} adapters - Adapter(s) by name or function. + * @param {Object} config - Axios request configuration + * @throws {AxiosError} If no suitable adapter is available + * @returns {Function} The resolved adapter function + */ +function getAdapter(adapters, config) { + adapters = utils.isArray(adapters) ? adapters : [adapters]; + + const { length } = adapters; + let nameOrAdapter; + let adapter; + + const rejectedReasons = {}; + + for (let i = 0; i < length; i++) { + nameOrAdapter = adapters[i]; + let id; + + adapter = nameOrAdapter; + + if (!isResolvedHandle(nameOrAdapter)) { + adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()]; + + if (adapter === undefined) { + throw new AxiosError(`Unknown adapter '${id}'`); + } + } + + if (adapter && (utils.isFunction(adapter) || (adapter = adapter.get(config)))) { + break; + } + + rejectedReasons[id || '#' + i] = adapter; + } + + if (!adapter) { + const reasons = Object.entries(rejectedReasons).map( + ([id, state]) => + `adapter ${id} ` + + (state === false ? 'is not supported by the environment' : 'is not available in the build') + ); + + let s = length + ? reasons.length > 1 + ? 'since :\n' + reasons.map(renderReason).join('\n') + : ' ' + renderReason(reasons[0]) + : 'as no adapter specified'; + + throw new AxiosError( + `There is no suitable adapter to dispatch the request ` + s, + 'ERR_NOT_SUPPORT' + ); + } + + return adapter; +} + +/** + * Exports Axios adapters and utility to resolve an adapter + */ +export default { + /** + * Resolve an adapter from a list of adapter names or functions. + * @type {Function} + */ + getAdapter, + + /** + * Exposes all known adapters + * @type {Object} + */ + adapters: knownAdapters, +}; diff --git a/server/api/node_modules/axios/lib/adapters/fetch.js b/server/api/node_modules/axios/lib/adapters/fetch.js new file mode 100644 index 0000000..0c4a4d5 --- /dev/null +++ b/server/api/node_modules/axios/lib/adapters/fetch.js @@ -0,0 +1,353 @@ +import platform from '../platform/index.js'; +import utils from '../utils.js'; +import AxiosError from '../core/AxiosError.js'; +import composeSignals from '../helpers/composeSignals.js'; +import { trackStream } from '../helpers/trackStream.js'; +import AxiosHeaders from '../core/AxiosHeaders.js'; +import { + progressEventReducer, + progressEventDecorator, + asyncDecorator, +} from '../helpers/progressEventReducer.js'; +import resolveConfig from '../helpers/resolveConfig.js'; +import settle from '../core/settle.js'; + +const DEFAULT_CHUNK_SIZE = 64 * 1024; + +const { isFunction } = utils; + +const globalFetchAPI = (({ Request, Response }) => ({ + Request, + Response, +}))(utils.global); + +const { ReadableStream, TextEncoder } = utils.global; + +const test = (fn, ...args) => { + try { + return !!fn(...args); + } catch (e) { + return false; + } +}; + +const factory = (env) => { + env = utils.merge.call( + { + skipUndefined: true, + }, + globalFetchAPI, + env + ); + + const { fetch: envFetch, Request, Response } = env; + const isFetchSupported = envFetch ? isFunction(envFetch) : typeof fetch === 'function'; + const isRequestSupported = isFunction(Request); + const isResponseSupported = isFunction(Response); + + if (!isFetchSupported) { + return false; + } + + const isReadableStreamSupported = isFetchSupported && isFunction(ReadableStream); + + const encodeText = + isFetchSupported && + (typeof TextEncoder === 'function' + ? ( + (encoder) => (str) => + encoder.encode(str) + )(new TextEncoder()) + : async (str) => new Uint8Array(await new Request(str).arrayBuffer())); + + const supportsRequestStream = + isRequestSupported && + isReadableStreamSupported && + test(() => { + let duplexAccessed = false; + + const request = new Request(platform.origin, { + body: new ReadableStream(), + method: 'POST', + get duplex() { + duplexAccessed = true; + return 'half'; + }, + }); + + const hasContentType = request.headers.has('Content-Type'); + + if (request.body != null) { + request.body.cancel(); + } + + return duplexAccessed && !hasContentType; + }); + + const supportsResponseStream = + isResponseSupported && + isReadableStreamSupported && + test(() => utils.isReadableStream(new Response('').body)); + + const resolvers = { + stream: supportsResponseStream && ((res) => res.body), + }; + + isFetchSupported && + (() => { + ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach((type) => { + !resolvers[type] && + (resolvers[type] = (res, config) => { + let method = res && res[type]; + + if (method) { + return method.call(res); + } + + throw new AxiosError( + `Response type '${type}' is not supported`, + AxiosError.ERR_NOT_SUPPORT, + config + ); + }); + }); + })(); + + const getBodyLength = async (body) => { + if (body == null) { + return 0; + } + + if (utils.isBlob(body)) { + return body.size; + } + + if (utils.isSpecCompliantForm(body)) { + const _request = new Request(platform.origin, { + method: 'POST', + body, + }); + return (await _request.arrayBuffer()).byteLength; + } + + if (utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) { + return body.byteLength; + } + + if (utils.isURLSearchParams(body)) { + body = body + ''; + } + + if (utils.isString(body)) { + return (await encodeText(body)).byteLength; + } + }; + + const resolveBodyLength = async (headers, body) => { + const length = utils.toFiniteNumber(headers.getContentLength()); + + return length == null ? getBodyLength(body) : length; + }; + + return async (config) => { + let { + url, + method, + data, + signal, + cancelToken, + timeout, + onDownloadProgress, + onUploadProgress, + responseType, + headers, + withCredentials = 'same-origin', + fetchOptions, + } = resolveConfig(config); + + let _fetch = envFetch || fetch; + + responseType = responseType ? (responseType + '').toLowerCase() : 'text'; + + let composedSignal = composeSignals( + [signal, cancelToken && cancelToken.toAbortSignal()], + timeout + ); + + let request = null; + + const unsubscribe = + composedSignal && + composedSignal.unsubscribe && + (() => { + composedSignal.unsubscribe(); + }); + + let requestContentLength; + + try { + if ( + onUploadProgress && + supportsRequestStream && + method !== 'get' && + method !== 'head' && + (requestContentLength = await resolveBodyLength(headers, data)) !== 0 + ) { + let _request = new Request(url, { + method: 'POST', + body: data, + duplex: 'half', + }); + + let contentTypeHeader; + + if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) { + headers.setContentType(contentTypeHeader); + } + + if (_request.body) { + const [onProgress, flush] = progressEventDecorator( + requestContentLength, + progressEventReducer(asyncDecorator(onUploadProgress)) + ); + + data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush); + } + } + + if (!utils.isString(withCredentials)) { + withCredentials = withCredentials ? 'include' : 'omit'; + } + + // Cloudflare Workers throws when credentials are defined + // see https://github.com/cloudflare/workerd/issues/902 + const isCredentialsSupported = isRequestSupported && 'credentials' in Request.prototype; + + // If data is FormData and Content-Type is multipart/form-data without boundary, + // delete it so fetch can set it correctly with the boundary + if (utils.isFormData(data)) { + const contentType = headers.getContentType(); + if ( + contentType && + /^multipart\/form-data/i.test(contentType) && + !/boundary=/i.test(contentType) + ) { + headers.delete('content-type'); + } + } + + const resolvedOptions = { + ...fetchOptions, + signal: composedSignal, + method: method.toUpperCase(), + headers: headers.normalize().toJSON(), + body: data, + duplex: 'half', + credentials: isCredentialsSupported ? withCredentials : undefined, + }; + + request = isRequestSupported && new Request(url, resolvedOptions); + + let response = await (isRequestSupported + ? _fetch(request, fetchOptions) + : _fetch(url, resolvedOptions)); + + const isStreamResponse = + supportsResponseStream && (responseType === 'stream' || responseType === 'response'); + + if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) { + const options = {}; + + ['status', 'statusText', 'headers'].forEach((prop) => { + options[prop] = response[prop]; + }); + + const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length')); + + const [onProgress, flush] = + (onDownloadProgress && + progressEventDecorator( + responseContentLength, + progressEventReducer(asyncDecorator(onDownloadProgress), true) + )) || + []; + + response = new Response( + trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => { + flush && flush(); + unsubscribe && unsubscribe(); + }), + options + ); + } + + responseType = responseType || 'text'; + + let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text']( + response, + config + ); + + !isStreamResponse && unsubscribe && unsubscribe(); + + return await new Promise((resolve, reject) => { + settle(resolve, reject, { + data: responseData, + headers: AxiosHeaders.from(response.headers), + status: response.status, + statusText: response.statusText, + config, + request, + }); + }); + } catch (err) { + unsubscribe && unsubscribe(); + + if (err && err.name === 'TypeError' && /Load failed|fetch/i.test(err.message)) { + throw Object.assign( + new AxiosError( + 'Network Error', + AxiosError.ERR_NETWORK, + config, + request, + err && err.response + ), + { + cause: err.cause || err, + } + ); + } + + throw AxiosError.from(err, err && err.code, config, request, err && err.response); + } + }; +}; + +const seedCache = new Map(); + +export const getFetch = (config) => { + let env = (config && config.env) || {}; + const { fetch, Request, Response } = env; + const seeds = [Request, Response, fetch]; + + let len = seeds.length, + i = len, + seed, + target, + map = seedCache; + + while (i--) { + seed = seeds[i]; + target = map.get(seed); + + target === undefined && map.set(seed, (target = i ? new Map() : factory(env))); + + map = target; + } + + return target; +}; + +const adapter = getFetch(); + +export default adapter; diff --git a/server/api/node_modules/axios/lib/adapters/http.js b/server/api/node_modules/axios/lib/adapters/http.js new file mode 100644 index 0000000..5e596b3 --- /dev/null +++ b/server/api/node_modules/axios/lib/adapters/http.js @@ -0,0 +1,1036 @@ +import utils from '../utils.js'; +import settle from '../core/settle.js'; +import buildFullPath from '../core/buildFullPath.js'; +import buildURL from '../helpers/buildURL.js'; +import { getProxyForUrl } from 'proxy-from-env'; +import http from 'http'; +import https from 'https'; +import http2 from 'http2'; +import util from 'util'; +import followRedirects from 'follow-redirects'; +import zlib from 'zlib'; +import { VERSION } from '../env/data.js'; +import transitionalDefaults from '../defaults/transitional.js'; +import AxiosError from '../core/AxiosError.js'; +import CanceledError from '../cancel/CanceledError.js'; +import platform from '../platform/index.js'; +import fromDataURI from '../helpers/fromDataURI.js'; +import stream from 'stream'; +import AxiosHeaders from '../core/AxiosHeaders.js'; +import AxiosTransformStream from '../helpers/AxiosTransformStream.js'; +import { EventEmitter } from 'events'; +import formDataToStream from '../helpers/formDataToStream.js'; +import readBlob from '../helpers/readBlob.js'; +import ZlibHeaderTransformStream from '../helpers/ZlibHeaderTransformStream.js'; +import callbackify from '../helpers/callbackify.js'; +import shouldBypassProxy from '../helpers/shouldBypassProxy.js'; +import { + progressEventReducer, + progressEventDecorator, + asyncDecorator, +} from '../helpers/progressEventReducer.js'; +import estimateDataURLDecodedBytes from '../helpers/estimateDataURLDecodedBytes.js'; + +const zlibOptions = { + flush: zlib.constants.Z_SYNC_FLUSH, + finishFlush: zlib.constants.Z_SYNC_FLUSH, +}; + +const brotliOptions = { + flush: zlib.constants.BROTLI_OPERATION_FLUSH, + finishFlush: zlib.constants.BROTLI_OPERATION_FLUSH, +}; + +const isBrotliSupported = utils.isFunction(zlib.createBrotliDecompress); + +const { http: httpFollow, https: httpsFollow } = followRedirects; + +const isHttps = /https:?/; + +const supportedProtocols = platform.protocols.map((protocol) => { + return protocol + ':'; +}); + +const flushOnFinish = (stream, [throttled, flush]) => { + stream.on('end', flush).on('error', flush); + + return throttled; +}; + +class Http2Sessions { + constructor() { + this.sessions = Object.create(null); + } + + getSession(authority, options) { + options = Object.assign( + { + sessionTimeout: 1000, + }, + options + ); + + let authoritySessions = this.sessions[authority]; + + if (authoritySessions) { + let len = authoritySessions.length; + + for (let i = 0; i < len; i++) { + const [sessionHandle, sessionOptions] = authoritySessions[i]; + if ( + !sessionHandle.destroyed && + !sessionHandle.closed && + util.isDeepStrictEqual(sessionOptions, options) + ) { + return sessionHandle; + } + } + } + + const session = http2.connect(authority, options); + + let removed; + + const removeSession = () => { + if (removed) { + return; + } + + removed = true; + + let entries = authoritySessions, + len = entries.length, + i = len; + + while (i--) { + if (entries[i][0] === session) { + if (len === 1) { + delete this.sessions[authority]; + } else { + entries.splice(i, 1); + } + if (!session.closed) { + session.close(); + } + return; + } + } + }; + + const originalRequestFn = session.request; + + const { sessionTimeout } = options; + + if (sessionTimeout != null) { + let timer; + let streamsCount = 0; + + session.request = function () { + const stream = originalRequestFn.apply(this, arguments); + + streamsCount++; + + if (timer) { + clearTimeout(timer); + timer = null; + } + + stream.once('close', () => { + if (!--streamsCount) { + timer = setTimeout(() => { + timer = null; + removeSession(); + }, sessionTimeout); + } + }); + + return stream; + }; + } + + session.once('close', removeSession); + + let entry = [session, options]; + + authoritySessions + ? authoritySessions.push(entry) + : (authoritySessions = this.sessions[authority] = [entry]); + + return session; + } +} + +const http2Sessions = new Http2Sessions(); + +/** + * If the proxy or config beforeRedirects functions are defined, call them with the options + * object. + * + * @param {Object} options - The options object that was passed to the request. + * + * @returns {Object} + */ +function dispatchBeforeRedirect(options, responseDetails) { + if (options.beforeRedirects.proxy) { + options.beforeRedirects.proxy(options); + } + if (options.beforeRedirects.config) { + options.beforeRedirects.config(options, responseDetails); + } +} + +/** + * If the proxy or config afterRedirects functions are defined, call them with the options + * + * @param {http.ClientRequestArgs} options + * @param {AxiosProxyConfig} configProxy configuration from Axios options object + * @param {string} location + * + * @returns {http.ClientRequestArgs} + */ +function setProxy(options, configProxy, location) { + let proxy = configProxy; + if (!proxy && proxy !== false) { + const proxyUrl = getProxyForUrl(location); + if (proxyUrl) { + if (!shouldBypassProxy(location)) { + proxy = new URL(proxyUrl); + } + } + } + if (proxy) { + // Basic proxy authorization + if (proxy.username) { + proxy.auth = (proxy.username || '') + ':' + (proxy.password || ''); + } + + if (proxy.auth) { + // Support proxy auth object form + const validProxyAuth = Boolean(proxy.auth.username || proxy.auth.password); + + if (validProxyAuth) { + proxy.auth = (proxy.auth.username || '') + ':' + (proxy.auth.password || ''); + } else if (typeof proxy.auth === 'object') { + throw new AxiosError('Invalid proxy authorization', AxiosError.ERR_BAD_OPTION, { proxy }); + } + + const base64 = Buffer.from(proxy.auth, 'utf8').toString('base64'); + + options.headers['Proxy-Authorization'] = 'Basic ' + base64; + } + + options.headers.host = options.hostname + (options.port ? ':' + options.port : ''); + const proxyHost = proxy.hostname || proxy.host; + options.hostname = proxyHost; + // Replace 'host' since options is not a URL object + options.host = proxyHost; + options.port = proxy.port; + options.path = location; + if (proxy.protocol) { + options.protocol = proxy.protocol.includes(':') ? proxy.protocol : `${proxy.protocol}:`; + } + } + + options.beforeRedirects.proxy = function beforeRedirect(redirectOptions) { + // Configure proxy for redirected request, passing the original config proxy to apply + // the exact same logic as if the redirected request was performed by axios directly. + setProxy(redirectOptions, configProxy, redirectOptions.href); + }; +} + +const isHttpAdapterSupported = + typeof process !== 'undefined' && utils.kindOf(process) === 'process'; + +// temporary hotfix + +const wrapAsync = (asyncExecutor) => { + return new Promise((resolve, reject) => { + let onDone; + let isDone; + + const done = (value, isRejected) => { + if (isDone) return; + isDone = true; + onDone && onDone(value, isRejected); + }; + + const _resolve = (value) => { + done(value); + resolve(value); + }; + + const _reject = (reason) => { + done(reason, true); + reject(reason); + }; + + asyncExecutor(_resolve, _reject, (onDoneHandler) => (onDone = onDoneHandler)).catch(_reject); + }); +}; + +const resolveFamily = ({ address, family }) => { + if (!utils.isString(address)) { + throw TypeError('address must be a string'); + } + return { + address, + family: family || (address.indexOf('.') < 0 ? 6 : 4), + }; +}; + +const buildAddressEntry = (address, family) => + resolveFamily(utils.isObject(address) ? address : { address, family }); + +const http2Transport = { + request(options, cb) { + const authority = + options.protocol + + '//' + + options.hostname + + ':' + + (options.port || (options.protocol === 'https:' ? 443 : 80)); + + const { http2Options, headers } = options; + + const session = http2Sessions.getSession(authority, http2Options); + + const { HTTP2_HEADER_SCHEME, HTTP2_HEADER_METHOD, HTTP2_HEADER_PATH, HTTP2_HEADER_STATUS } = + http2.constants; + + const http2Headers = { + [HTTP2_HEADER_SCHEME]: options.protocol.replace(':', ''), + [HTTP2_HEADER_METHOD]: options.method, + [HTTP2_HEADER_PATH]: options.path, + }; + + utils.forEach(headers, (header, name) => { + name.charAt(0) !== ':' && (http2Headers[name] = header); + }); + + const req = session.request(http2Headers); + + req.once('response', (responseHeaders) => { + const response = req; //duplex + + responseHeaders = Object.assign({}, responseHeaders); + + const status = responseHeaders[HTTP2_HEADER_STATUS]; + + delete responseHeaders[HTTP2_HEADER_STATUS]; + + response.headers = responseHeaders; + + response.statusCode = +status; + + cb(response); + }); + + return req; + }, +}; + +/*eslint consistent-return:0*/ +export default isHttpAdapterSupported && + function httpAdapter(config) { + return wrapAsync(async function dispatchHttpRequest(resolve, reject, onDone) { + const own = (key) => (utils.hasOwnProp(config, key) ? config[key] : undefined); + let data = own('data'); + let lookup = own('lookup'); + let family = own('family'); + let httpVersion = own('httpVersion'); + if (httpVersion === undefined) httpVersion = 1; + let http2Options = own('http2Options'); + const responseType = own('responseType'); + const responseEncoding = own('responseEncoding'); + const method = config.method.toUpperCase(); + let isDone; + let rejected = false; + let req; + + httpVersion = +httpVersion; + + if (Number.isNaN(httpVersion)) { + throw TypeError(`Invalid protocol version: '${config.httpVersion}' is not a number`); + } + + if (httpVersion !== 1 && httpVersion !== 2) { + throw TypeError(`Unsupported protocol version '${httpVersion}'`); + } + + const isHttp2 = httpVersion === 2; + + if (lookup) { + const _lookup = callbackify(lookup, (value) => (utils.isArray(value) ? value : [value])); + // hotfix to support opt.all option which is required for node 20.x + lookup = (hostname, opt, cb) => { + _lookup(hostname, opt, (err, arg0, arg1) => { + if (err) { + return cb(err); + } + + const addresses = utils.isArray(arg0) + ? arg0.map((addr) => buildAddressEntry(addr)) + : [buildAddressEntry(arg0, arg1)]; + + opt.all ? cb(err, addresses) : cb(err, addresses[0].address, addresses[0].family); + }); + }; + } + + const abortEmitter = new EventEmitter(); + + function abort(reason) { + try { + abortEmitter.emit( + 'abort', + !reason || reason.type ? new CanceledError(null, config, req) : reason + ); + } catch (err) { + console.warn('emit error', err); + } + } + + abortEmitter.once('abort', reject); + + const onFinished = () => { + if (config.cancelToken) { + config.cancelToken.unsubscribe(abort); + } + + if (config.signal) { + config.signal.removeEventListener('abort', abort); + } + + abortEmitter.removeAllListeners(); + }; + + if (config.cancelToken || config.signal) { + config.cancelToken && config.cancelToken.subscribe(abort); + if (config.signal) { + config.signal.aborted ? abort() : config.signal.addEventListener('abort', abort); + } + } + + onDone((response, isRejected) => { + isDone = true; + + if (isRejected) { + rejected = true; + onFinished(); + return; + } + + const { data } = response; + + if (data instanceof stream.Readable || data instanceof stream.Duplex) { + const offListeners = stream.finished(data, () => { + offListeners(); + onFinished(); + }); + } else { + onFinished(); + } + }); + + // Parse url + const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls); + const parsed = new URL(fullPath, platform.hasBrowserEnv ? platform.origin : undefined); + const protocol = parsed.protocol || supportedProtocols[0]; + + if (protocol === 'data:') { + // Apply the same semantics as HTTP: only enforce if a finite, non-negative cap is set. + if (config.maxContentLength > -1) { + // Use the exact string passed to fromDataURI (config.url); fall back to fullPath if needed. + const dataUrl = String(config.url || fullPath || ''); + const estimated = estimateDataURLDecodedBytes(dataUrl); + + if (estimated > config.maxContentLength) { + return reject( + new AxiosError( + 'maxContentLength size of ' + config.maxContentLength + ' exceeded', + AxiosError.ERR_BAD_RESPONSE, + config + ) + ); + } + } + + let convertedData; + + if (method !== 'GET') { + return settle(resolve, reject, { + status: 405, + statusText: 'method not allowed', + headers: {}, + config, + }); + } + + try { + convertedData = fromDataURI(config.url, responseType === 'blob', { + Blob: config.env && config.env.Blob, + }); + } catch (err) { + throw AxiosError.from(err, AxiosError.ERR_BAD_REQUEST, config); + } + + if (responseType === 'text') { + convertedData = convertedData.toString(responseEncoding); + + if (!responseEncoding || responseEncoding === 'utf8') { + convertedData = utils.stripBOM(convertedData); + } + } else if (responseType === 'stream') { + convertedData = stream.Readable.from(convertedData); + } + + return settle(resolve, reject, { + data: convertedData, + status: 200, + statusText: 'OK', + headers: new AxiosHeaders(), + config, + }); + } + + if (supportedProtocols.indexOf(protocol) === -1) { + return reject( + new AxiosError('Unsupported protocol ' + protocol, AxiosError.ERR_BAD_REQUEST, config) + ); + } + + const headers = AxiosHeaders.from(config.headers).normalize(); + + // Set User-Agent (required by some servers) + // See https://github.com/axios/axios/issues/69 + // User-Agent is specified; handle case where no UA header is desired + // Only set header if it hasn't been set in config + headers.set('User-Agent', 'axios/' + VERSION, false); + + const { onUploadProgress, onDownloadProgress } = config; + const maxRate = config.maxRate; + let maxUploadRate = undefined; + let maxDownloadRate = undefined; + + // support for spec compliant FormData objects + if (utils.isSpecCompliantForm(data)) { + const userBoundary = headers.getContentType(/boundary=([-_\w\d]{10,70})/i); + + data = formDataToStream( + data, + (formHeaders) => { + headers.set(formHeaders); + }, + { + tag: `axios-${VERSION}-boundary`, + boundary: (userBoundary && userBoundary[1]) || undefined, + } + ); + // support for https://www.npmjs.com/package/form-data api + } else if (utils.isFormData(data) && utils.isFunction(data.getHeaders) && + data.getHeaders !== Object.prototype.getHeaders) { + headers.set(data.getHeaders()); + + if (!headers.hasContentLength()) { + try { + const knownLength = await util.promisify(data.getLength).call(data); + Number.isFinite(knownLength) && + knownLength >= 0 && + headers.setContentLength(knownLength); + /*eslint no-empty:0*/ + } catch (e) {} + } + } else if (utils.isBlob(data) || utils.isFile(data)) { + data.size && headers.setContentType(data.type || 'application/octet-stream'); + headers.setContentLength(data.size || 0); + data = stream.Readable.from(readBlob(data)); + } else if (data && !utils.isStream(data)) { + if (Buffer.isBuffer(data)) { + // Nothing to do... + } else if (utils.isArrayBuffer(data)) { + data = Buffer.from(new Uint8Array(data)); + } else if (utils.isString(data)) { + data = Buffer.from(data, 'utf-8'); + } else { + return reject( + new AxiosError( + 'Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream', + AxiosError.ERR_BAD_REQUEST, + config + ) + ); + } + + // Add Content-Length header if data exists + headers.setContentLength(data.length, false); + + if (config.maxBodyLength > -1 && data.length > config.maxBodyLength) { + return reject( + new AxiosError( + 'Request body larger than maxBodyLength limit', + AxiosError.ERR_BAD_REQUEST, + config + ) + ); + } + } + + const contentLength = utils.toFiniteNumber(headers.getContentLength()); + + if (utils.isArray(maxRate)) { + maxUploadRate = maxRate[0]; + maxDownloadRate = maxRate[1]; + } else { + maxUploadRate = maxDownloadRate = maxRate; + } + + if (data && (onUploadProgress || maxUploadRate)) { + if (!utils.isStream(data)) { + data = stream.Readable.from(data, { objectMode: false }); + } + + data = stream.pipeline( + [ + data, + new AxiosTransformStream({ + maxRate: utils.toFiniteNumber(maxUploadRate), + }), + ], + utils.noop + ); + + onUploadProgress && + data.on( + 'progress', + flushOnFinish( + data, + progressEventDecorator( + contentLength, + progressEventReducer(asyncDecorator(onUploadProgress), false, 3) + ) + ) + ); + } + + // HTTP basic authentication + let auth = undefined; + if (config.auth) { + const username = config.auth.username || ''; + const password = config.auth.password || ''; + auth = username + ':' + password; + } + + if (!auth && parsed.username) { + const urlUsername = parsed.username; + const urlPassword = parsed.password; + auth = urlUsername + ':' + urlPassword; + } + + auth && headers.delete('authorization'); + + let path; + + try { + path = buildURL( + parsed.pathname + parsed.search, + config.params, + config.paramsSerializer + ).replace(/^\?/, ''); + } catch (err) { + const customErr = new Error(err.message); + customErr.config = config; + customErr.url = config.url; + customErr.exists = true; + return reject(customErr); + } + + headers.set( + 'Accept-Encoding', + 'gzip, compress, deflate' + (isBrotliSupported ? ', br' : ''), + false + ); + + const options = { + path, + method: method, + headers: headers.toJSON(), + agents: { http: config.httpAgent, https: config.httpsAgent }, + auth, + protocol, + family, + beforeRedirect: dispatchBeforeRedirect, + beforeRedirects: {}, + http2Options, + }; + + // cacheable-lookup integration hotfix + !utils.isUndefined(lookup) && (options.lookup = lookup); + + if (config.socketPath) { + options.socketPath = config.socketPath; + } else { + options.hostname = parsed.hostname.startsWith('[') + ? parsed.hostname.slice(1, -1) + : parsed.hostname; + options.port = parsed.port; + setProxy( + options, + config.proxy, + protocol + '//' + parsed.hostname + (parsed.port ? ':' + parsed.port : '') + options.path + ); + } + let transport; + const isHttpsRequest = isHttps.test(options.protocol); + options.agent = isHttpsRequest ? config.httpsAgent : config.httpAgent; + + if (isHttp2) { + transport = http2Transport; + } else { + const configTransport = own('transport'); + if (configTransport) { + transport = configTransport; + } else if (config.maxRedirects === 0) { + transport = isHttpsRequest ? https : http; + } else { + if (config.maxRedirects) { + options.maxRedirects = config.maxRedirects; + } + if (config.beforeRedirect) { + options.beforeRedirects.config = config.beforeRedirect; + } + transport = isHttpsRequest ? httpsFollow : httpFollow; + } + } + + if (config.maxBodyLength > -1) { + options.maxBodyLength = config.maxBodyLength; + } else { + // follow-redirects does not skip comparison, so it should always succeed for axios -1 unlimited + options.maxBodyLength = Infinity; + } + + if (config.insecureHTTPParser) { + options.insecureHTTPParser = config.insecureHTTPParser; + } + + // Create the request + req = transport.request(options, function handleResponse(res) { + if (req.destroyed) return; + + const streams = [res]; + + const responseLength = utils.toFiniteNumber(res.headers['content-length']); + + if (onDownloadProgress || maxDownloadRate) { + const transformStream = new AxiosTransformStream({ + maxRate: utils.toFiniteNumber(maxDownloadRate), + }); + + onDownloadProgress && + transformStream.on( + 'progress', + flushOnFinish( + transformStream, + progressEventDecorator( + responseLength, + progressEventReducer(asyncDecorator(onDownloadProgress), true, 3) + ) + ) + ); + + streams.push(transformStream); + } + + // decompress the response body transparently if required + let responseStream = res; + + // return the last request in case of redirects + const lastRequest = res.req || req; + + // if decompress disabled we should not decompress + if (config.decompress !== false && res.headers['content-encoding']) { + // if no content, but headers still say that it is encoded, + // remove the header not confuse downstream operations + if (method === 'HEAD' || res.statusCode === 204) { + delete res.headers['content-encoding']; + } + + switch ((res.headers['content-encoding'] || '').toLowerCase()) { + /*eslint default-case:0*/ + case 'gzip': + case 'x-gzip': + case 'compress': + case 'x-compress': + // add the unzipper to the body stream processing pipeline + streams.push(zlib.createUnzip(zlibOptions)); + + // remove the content-encoding in order to not confuse downstream operations + delete res.headers['content-encoding']; + break; + case 'deflate': + streams.push(new ZlibHeaderTransformStream()); + + // add the unzipper to the body stream processing pipeline + streams.push(zlib.createUnzip(zlibOptions)); + + // remove the content-encoding in order to not confuse downstream operations + delete res.headers['content-encoding']; + break; + case 'br': + if (isBrotliSupported) { + streams.push(zlib.createBrotliDecompress(brotliOptions)); + delete res.headers['content-encoding']; + } + } + } + + responseStream = streams.length > 1 ? stream.pipeline(streams, utils.noop) : streams[0]; + + const response = { + status: res.statusCode, + statusText: res.statusMessage, + headers: new AxiosHeaders(res.headers), + config, + request: lastRequest, + }; + + if (responseType === 'stream') { + // Enforce maxContentLength on streamed responses; previously this + // was applied only to buffered responses. See GHSA-vf2m-468p-8v99. + if (config.maxContentLength > -1) { + const limit = config.maxContentLength; + const source = responseStream; + async function* enforceMaxContentLength() { + let totalResponseBytes = 0; + for await (const chunk of source) { + totalResponseBytes += chunk.length; + if (totalResponseBytes > limit) { + throw new AxiosError( + 'maxContentLength size of ' + limit + ' exceeded', + AxiosError.ERR_BAD_RESPONSE, + config, + lastRequest + ); + } + yield chunk; + } + } + responseStream = stream.Readable.from(enforceMaxContentLength(), { + objectMode: false, + }); + } + response.data = responseStream; + settle(resolve, reject, response); + } else { + const responseBuffer = []; + let totalResponseBytes = 0; + + responseStream.on('data', function handleStreamData(chunk) { + responseBuffer.push(chunk); + totalResponseBytes += chunk.length; + + // make sure the content length is not over the maxContentLength if specified + if (config.maxContentLength > -1 && totalResponseBytes > config.maxContentLength) { + // stream.destroy() emit aborted event before calling reject() on Node.js v16 + rejected = true; + responseStream.destroy(); + abort( + new AxiosError( + 'maxContentLength size of ' + config.maxContentLength + ' exceeded', + AxiosError.ERR_BAD_RESPONSE, + config, + lastRequest + ) + ); + } + }); + + responseStream.on('aborted', function handlerStreamAborted() { + if (rejected) { + return; + } + + const err = new AxiosError( + 'stream has been aborted', + AxiosError.ERR_BAD_RESPONSE, + config, + lastRequest + ); + responseStream.destroy(err); + reject(err); + }); + + responseStream.on('error', function handleStreamError(err) { + if (req.destroyed) return; + reject(AxiosError.from(err, null, config, lastRequest)); + }); + + responseStream.on('end', function handleStreamEnd() { + try { + let responseData = + responseBuffer.length === 1 ? responseBuffer[0] : Buffer.concat(responseBuffer); + if (responseType !== 'arraybuffer') { + responseData = responseData.toString(responseEncoding); + if (!responseEncoding || responseEncoding === 'utf8') { + responseData = utils.stripBOM(responseData); + } + } + response.data = responseData; + } catch (err) { + return reject(AxiosError.from(err, null, config, response.request, response)); + } + settle(resolve, reject, response); + }); + } + + abortEmitter.once('abort', (err) => { + if (!responseStream.destroyed) { + responseStream.emit('error', err); + responseStream.destroy(); + } + }); + }); + + abortEmitter.once('abort', (err) => { + if (req.close) { + req.close(); + } else { + req.destroy(err); + } + }); + + // Handle errors + req.on('error', function handleRequestError(err) { + reject(AxiosError.from(err, null, config, req)); + }); + + // set tcp keep alive to prevent drop connection by peer + req.on('socket', function handleRequestSocket(socket) { + // default interval of sending ack packet is 1 minute + socket.setKeepAlive(true, 1000 * 60); + + const removeSocketErrorListener = () => { + socket.removeListener('error', handleRequestSocketError); + }; + + function handleRequestSocketError(err) { + removeSocketErrorListener(); + + if (!req.destroyed) { + req.destroy(err); + } + } + + socket.on('error', handleRequestSocketError); + req.once('close', removeSocketErrorListener); + }); + + // Handle request timeout + if (config.timeout) { + // This is forcing a int timeout to avoid problems if the `req` interface doesn't handle other types. + const timeout = parseInt(config.timeout, 10); + + if (Number.isNaN(timeout)) { + abort( + new AxiosError( + 'error trying to parse `config.timeout` to int', + AxiosError.ERR_BAD_OPTION_VALUE, + config, + req + ) + ); + + return; + } + + // Sometime, the response will be very slow, and does not respond, the connect event will be block by event loop system. + // And timer callback will be fired, and abort() will be invoked before connection, then get "socket hang up" and code ECONNRESET. + // At this time, if we have a large number of request, nodejs will hang up some socket on background. and the number will up and up. + // And then these socket which be hang up will devouring CPU little by little. + // ClientRequest.setTimeout will be fired on the specify milliseconds, and can make sure that abort() will be fired after connect. + req.setTimeout(timeout, function handleRequestTimeout() { + if (isDone) return; + let timeoutErrorMessage = config.timeout + ? 'timeout of ' + config.timeout + 'ms exceeded' + : 'timeout exceeded'; + const transitional = config.transitional || transitionalDefaults; + if (config.timeoutErrorMessage) { + timeoutErrorMessage = config.timeoutErrorMessage; + } + abort( + new AxiosError( + timeoutErrorMessage, + transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED, + config, + req + ) + ); + }); + } else { + // explicitly reset the socket timeout value for a possible `keep-alive` request + req.setTimeout(0); + } + + // Send the request + if (utils.isStream(data)) { + let ended = false; + let errored = false; + + data.on('end', () => { + ended = true; + }); + + data.once('error', (err) => { + errored = true; + req.destroy(err); + }); + + data.on('close', () => { + if (!ended && !errored) { + abort(new CanceledError('Request stream has been aborted', config, req)); + } + }); + + // Enforce maxBodyLength for streamed uploads on the native http/https + // transport (maxRedirects === 0); follow-redirects enforces it on the + // other path. See GHSA-5c9x-8gcm-mpgx. + let uploadStream = data; + if (config.maxBodyLength > -1 && config.maxRedirects === 0) { + const limit = config.maxBodyLength; + let bytesSent = 0; + uploadStream = stream.pipeline( + [ + data, + new stream.Transform({ + transform(chunk, _enc, cb) { + bytesSent += chunk.length; + if (bytesSent > limit) { + return cb( + new AxiosError( + 'Request body larger than maxBodyLength limit', + AxiosError.ERR_BAD_REQUEST, + config, + req + ) + ); + } + cb(null, chunk); + }, + }), + ], + utils.noop + ); + uploadStream.on('error', (err) => { + if (!req.destroyed) req.destroy(err); + }); + } + + uploadStream.pipe(req); + } else { + data && req.write(data); + req.end(); + } + }); + }; + +export const __setProxy = setProxy; diff --git a/server/api/node_modules/axios/lib/adapters/xhr.js b/server/api/node_modules/axios/lib/adapters/xhr.js new file mode 100644 index 0000000..1d2c837 --- /dev/null +++ b/server/api/node_modules/axios/lib/adapters/xhr.js @@ -0,0 +1,222 @@ +import utils from '../utils.js'; +import settle from '../core/settle.js'; +import transitionalDefaults from '../defaults/transitional.js'; +import AxiosError from '../core/AxiosError.js'; +import CanceledError from '../cancel/CanceledError.js'; +import parseProtocol from '../helpers/parseProtocol.js'; +import platform from '../platform/index.js'; +import AxiosHeaders from '../core/AxiosHeaders.js'; +import { progressEventReducer } from '../helpers/progressEventReducer.js'; +import resolveConfig from '../helpers/resolveConfig.js'; + +const isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined'; + +export default isXHRAdapterSupported && + function (config) { + return new Promise(function dispatchXhrRequest(resolve, reject) { + const _config = resolveConfig(config); + let requestData = _config.data; + const requestHeaders = AxiosHeaders.from(_config.headers).normalize(); + let { responseType, onUploadProgress, onDownloadProgress } = _config; + let onCanceled; + let uploadThrottled, downloadThrottled; + let flushUpload, flushDownload; + + function done() { + flushUpload && flushUpload(); // flush events + flushDownload && flushDownload(); // flush events + + _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled); + + _config.signal && _config.signal.removeEventListener('abort', onCanceled); + } + + let request = new XMLHttpRequest(); + + request.open(_config.method.toUpperCase(), _config.url, true); + + // Set the request timeout in MS + request.timeout = _config.timeout; + + function onloadend() { + if (!request) { + return; + } + // Prepare the response + const responseHeaders = AxiosHeaders.from( + 'getAllResponseHeaders' in request && request.getAllResponseHeaders() + ); + const responseData = + !responseType || responseType === 'text' || responseType === 'json' + ? request.responseText + : request.response; + const response = { + data: responseData, + status: request.status, + statusText: request.statusText, + headers: responseHeaders, + config, + request, + }; + + settle( + function _resolve(value) { + resolve(value); + done(); + }, + function _reject(err) { + reject(err); + done(); + }, + response + ); + + // Clean up request + request = null; + } + + if ('onloadend' in request) { + // Use onloadend if available + request.onloadend = onloadend; + } else { + // Listen for ready state to emulate onloadend + request.onreadystatechange = function handleLoad() { + if (!request || request.readyState !== 4) { + return; + } + + // The request errored out and we didn't get a response, this will be + // handled by onerror instead + // With one exception: request that using file: protocol, most browsers + // will return status as 0 even though it's a successful request + if ( + request.status === 0 && + !(request.responseURL && request.responseURL.indexOf('file:') === 0) + ) { + return; + } + // readystate handler is calling before onerror or ontimeout handlers, + // so we should call onloadend on the next 'tick' + setTimeout(onloadend); + }; + } + + // Handle browser request cancellation (as opposed to a manual cancellation) + request.onabort = function handleAbort() { + if (!request) { + return; + } + + reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request)); + + // Clean up request + request = null; + }; + + // Handle low level network errors + request.onerror = function handleError(event) { + // Browsers deliver a ProgressEvent in XHR onerror + // (message may be empty; when present, surface it) + // See https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/error_event + const msg = event && event.message ? event.message : 'Network Error'; + const err = new AxiosError(msg, AxiosError.ERR_NETWORK, config, request); + // attach the underlying event for consumers who want details + err.event = event || null; + reject(err); + request = null; + }; + + // Handle timeout + request.ontimeout = function handleTimeout() { + let timeoutErrorMessage = _config.timeout + ? 'timeout of ' + _config.timeout + 'ms exceeded' + : 'timeout exceeded'; + const transitional = _config.transitional || transitionalDefaults; + if (_config.timeoutErrorMessage) { + timeoutErrorMessage = _config.timeoutErrorMessage; + } + reject( + new AxiosError( + timeoutErrorMessage, + transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED, + config, + request + ) + ); + + // Clean up request + request = null; + }; + + // Remove Content-Type if data is undefined + requestData === undefined && requestHeaders.setContentType(null); + + // Add headers to the request + if ('setRequestHeader' in request) { + utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) { + request.setRequestHeader(key, val); + }); + } + + // Add withCredentials to request if needed + if (!utils.isUndefined(_config.withCredentials)) { + request.withCredentials = !!_config.withCredentials; + } + + // Add responseType to request if needed + if (responseType && responseType !== 'json') { + request.responseType = _config.responseType; + } + + // Handle progress if needed + if (onDownloadProgress) { + [downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true); + request.addEventListener('progress', downloadThrottled); + } + + // Not all browsers support upload events + if (onUploadProgress && request.upload) { + [uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress); + + request.upload.addEventListener('progress', uploadThrottled); + + request.upload.addEventListener('loadend', flushUpload); + } + + if (_config.cancelToken || _config.signal) { + // Handle cancellation + // eslint-disable-next-line func-names + onCanceled = (cancel) => { + if (!request) { + return; + } + reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel); + request.abort(); + request = null; + }; + + _config.cancelToken && _config.cancelToken.subscribe(onCanceled); + if (_config.signal) { + _config.signal.aborted + ? onCanceled() + : _config.signal.addEventListener('abort', onCanceled); + } + } + + const protocol = parseProtocol(_config.url); + + if (protocol && platform.protocols.indexOf(protocol) === -1) { + reject( + new AxiosError( + 'Unsupported protocol ' + protocol + ':', + AxiosError.ERR_BAD_REQUEST, + config + ) + ); + return; + } + + // Send the request + request.send(requestData || null); + }); + }; diff --git a/server/api/node_modules/axios/lib/axios.js b/server/api/node_modules/axios/lib/axios.js new file mode 100644 index 0000000..5a3a876 --- /dev/null +++ b/server/api/node_modules/axios/lib/axios.js @@ -0,0 +1,89 @@ +'use strict'; + +import utils from './utils.js'; +import bind from './helpers/bind.js'; +import Axios from './core/Axios.js'; +import mergeConfig from './core/mergeConfig.js'; +import defaults from './defaults/index.js'; +import formDataToJSON from './helpers/formDataToJSON.js'; +import CanceledError from './cancel/CanceledError.js'; +import CancelToken from './cancel/CancelToken.js'; +import isCancel from './cancel/isCancel.js'; +import { VERSION } from './env/data.js'; +import toFormData from './helpers/toFormData.js'; +import AxiosError from './core/AxiosError.js'; +import spread from './helpers/spread.js'; +import isAxiosError from './helpers/isAxiosError.js'; +import AxiosHeaders from './core/AxiosHeaders.js'; +import adapters from './adapters/adapters.js'; +import HttpStatusCode from './helpers/HttpStatusCode.js'; + +/** + * Create an instance of Axios + * + * @param {Object} defaultConfig The default config for the instance + * + * @returns {Axios} A new instance of Axios + */ +function createInstance(defaultConfig) { + const context = new Axios(defaultConfig); + const instance = bind(Axios.prototype.request, context); + + // Copy axios.prototype to instance + utils.extend(instance, Axios.prototype, context, { allOwnKeys: true }); + + // Copy context to instance + utils.extend(instance, context, null, { allOwnKeys: true }); + + // Factory for creating new instances + instance.create = function create(instanceConfig) { + return createInstance(mergeConfig(defaultConfig, instanceConfig)); + }; + + return instance; +} + +// Create the default instance to be exported +const axios = createInstance(defaults); + +// Expose Axios class to allow class inheritance +axios.Axios = Axios; + +// Expose Cancel & CancelToken +axios.CanceledError = CanceledError; +axios.CancelToken = CancelToken; +axios.isCancel = isCancel; +axios.VERSION = VERSION; +axios.toFormData = toFormData; + +// Expose AxiosError class +axios.AxiosError = AxiosError; + +// alias for CanceledError for backward compatibility +axios.Cancel = axios.CanceledError; + +// Expose all/spread +axios.all = function all(promises) { + return Promise.all(promises); +}; + +axios.spread = spread; + +// Expose isAxiosError +axios.isAxiosError = isAxiosError; + +// Expose mergeConfig +axios.mergeConfig = mergeConfig; + +axios.AxiosHeaders = AxiosHeaders; + +axios.formToJSON = (thing) => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing); + +axios.getAdapter = adapters.getAdapter; + +axios.HttpStatusCode = HttpStatusCode; + +axios.default = axios; + +// this module should only have a default export +export default axios; diff --git a/server/api/node_modules/axios/lib/cancel/CancelToken.js b/server/api/node_modules/axios/lib/cancel/CancelToken.js new file mode 100644 index 0000000..357381e --- /dev/null +++ b/server/api/node_modules/axios/lib/cancel/CancelToken.js @@ -0,0 +1,135 @@ +'use strict'; + +import CanceledError from './CanceledError.js'; + +/** + * A `CancelToken` is an object that can be used to request cancellation of an operation. + * + * @param {Function} executor The executor function. + * + * @returns {CancelToken} + */ +class CancelToken { + constructor(executor) { + if (typeof executor !== 'function') { + throw new TypeError('executor must be a function.'); + } + + let resolvePromise; + + this.promise = new Promise(function promiseExecutor(resolve) { + resolvePromise = resolve; + }); + + const token = this; + + // eslint-disable-next-line func-names + this.promise.then((cancel) => { + if (!token._listeners) return; + + let i = token._listeners.length; + + while (i-- > 0) { + token._listeners[i](cancel); + } + token._listeners = null; + }); + + // eslint-disable-next-line func-names + this.promise.then = (onfulfilled) => { + let _resolve; + // eslint-disable-next-line func-names + const promise = new Promise((resolve) => { + token.subscribe(resolve); + _resolve = resolve; + }).then(onfulfilled); + + promise.cancel = function reject() { + token.unsubscribe(_resolve); + }; + + return promise; + }; + + executor(function cancel(message, config, request) { + if (token.reason) { + // Cancellation has already been requested + return; + } + + token.reason = new CanceledError(message, config, request); + resolvePromise(token.reason); + }); + } + + /** + * Throws a `CanceledError` if cancellation has been requested. + */ + throwIfRequested() { + if (this.reason) { + throw this.reason; + } + } + + /** + * Subscribe to the cancel signal + */ + + subscribe(listener) { + if (this.reason) { + listener(this.reason); + return; + } + + if (this._listeners) { + this._listeners.push(listener); + } else { + this._listeners = [listener]; + } + } + + /** + * Unsubscribe from the cancel signal + */ + + unsubscribe(listener) { + if (!this._listeners) { + return; + } + const index = this._listeners.indexOf(listener); + if (index !== -1) { + this._listeners.splice(index, 1); + } + } + + toAbortSignal() { + const controller = new AbortController(); + + const abort = (err) => { + controller.abort(err); + }; + + this.subscribe(abort); + + controller.signal.unsubscribe = () => this.unsubscribe(abort); + + return controller.signal; + } + + /** + * Returns an object that contains a new `CancelToken` and a function that, when called, + * cancels the `CancelToken`. + */ + static source() { + let cancel; + const token = new CancelToken(function executor(c) { + cancel = c; + }); + return { + token, + cancel, + }; + } +} + +export default CancelToken; diff --git a/server/api/node_modules/axios/lib/cancel/CanceledError.js b/server/api/node_modules/axios/lib/cancel/CanceledError.js new file mode 100644 index 0000000..e769b89 --- /dev/null +++ b/server/api/node_modules/axios/lib/cancel/CanceledError.js @@ -0,0 +1,22 @@ +'use strict'; + +import AxiosError from '../core/AxiosError.js'; + +class CanceledError extends AxiosError { + /** + * A `CanceledError` is an object that is thrown when an operation is canceled. + * + * @param {string=} message The message. + * @param {Object=} config The config. + * @param {Object=} request The request. + * + * @returns {CanceledError} The created error. + */ + constructor(message, config, request) { + super(message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request); + this.name = 'CanceledError'; + this.__CANCEL__ = true; + } +} + +export default CanceledError; diff --git a/server/api/node_modules/axios/lib/cancel/isCancel.js b/server/api/node_modules/axios/lib/cancel/isCancel.js new file mode 100644 index 0000000..a444a12 --- /dev/null +++ b/server/api/node_modules/axios/lib/cancel/isCancel.js @@ -0,0 +1,5 @@ +'use strict'; + +export default function isCancel(value) { + return !!(value && value.__CANCEL__); +} diff --git a/server/api/node_modules/axios/lib/core/Axios.js b/server/api/node_modules/axios/lib/core/Axios.js new file mode 100644 index 0000000..034e37a --- /dev/null +++ b/server/api/node_modules/axios/lib/core/Axios.js @@ -0,0 +1,277 @@ +'use strict'; + +import utils from '../utils.js'; +import buildURL from '../helpers/buildURL.js'; +import InterceptorManager from './InterceptorManager.js'; +import dispatchRequest from './dispatchRequest.js'; +import mergeConfig from './mergeConfig.js'; +import buildFullPath from './buildFullPath.js'; +import validator from '../helpers/validator.js'; +import AxiosHeaders from './AxiosHeaders.js'; +import transitionalDefaults from '../defaults/transitional.js'; + +const validators = validator.validators; + +/** + * Create a new instance of Axios + * + * @param {Object} instanceConfig The default config for the instance + * + * @return {Axios} A new instance of Axios + */ +class Axios { + constructor(instanceConfig) { + this.defaults = instanceConfig || {}; + this.interceptors = { + request: new InterceptorManager(), + response: new InterceptorManager(), + }; + } + + /** + * Dispatch a request + * + * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults) + * @param {?Object} config + * + * @returns {Promise} The Promise to be fulfilled + */ + async request(configOrUrl, config) { + try { + return await this._request(configOrUrl, config); + } catch (err) { + if (err instanceof Error) { + let dummy = {}; + + Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error()); + + // slice off the Error: ... line + const stack = (() => { + if (!dummy.stack) { + return ''; + } + + const firstNewlineIndex = dummy.stack.indexOf('\n'); + + return firstNewlineIndex === -1 ? '' : dummy.stack.slice(firstNewlineIndex + 1); + })(); + try { + if (!err.stack) { + err.stack = stack; + // match without the 2 top stack lines + } else if (stack) { + const firstNewlineIndex = stack.indexOf('\n'); + const secondNewlineIndex = + firstNewlineIndex === -1 ? -1 : stack.indexOf('\n', firstNewlineIndex + 1); + const stackWithoutTwoTopLines = + secondNewlineIndex === -1 ? '' : stack.slice(secondNewlineIndex + 1); + + if (!String(err.stack).endsWith(stackWithoutTwoTopLines)) { + err.stack += '\n' + stack; + } + } + } catch (e) { + // ignore the case where "stack" is an un-writable property + } + } + + throw err; + } + } + + _request(configOrUrl, config) { + /*eslint no-param-reassign:0*/ + // Allow for axios('example/url'[, config]) a la fetch API + if (typeof configOrUrl === 'string') { + config = config || {}; + config.url = configOrUrl; + } else { + config = configOrUrl || {}; + } + + config = mergeConfig(this.defaults, config); + + const { transitional, paramsSerializer, headers } = config; + + if (transitional !== undefined) { + validator.assertOptions( + transitional, + { + silentJSONParsing: validators.transitional(validators.boolean), + forcedJSONParsing: validators.transitional(validators.boolean), + clarifyTimeoutError: validators.transitional(validators.boolean), + legacyInterceptorReqResOrdering: validators.transitional(validators.boolean), + }, + false + ); + } + + if (paramsSerializer != null) { + if (utils.isFunction(paramsSerializer)) { + config.paramsSerializer = { + serialize: paramsSerializer, + }; + } else { + validator.assertOptions( + paramsSerializer, + { + encode: validators.function, + serialize: validators.function, + }, + true + ); + } + } + + // Set config.allowAbsoluteUrls + if (config.allowAbsoluteUrls !== undefined) { + // do nothing + } else if (this.defaults.allowAbsoluteUrls !== undefined) { + config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls; + } else { + config.allowAbsoluteUrls = true; + } + + validator.assertOptions( + config, + { + baseUrl: validators.spelling('baseURL'), + withXsrfToken: validators.spelling('withXSRFToken'), + }, + true + ); + + // Set config.method + config.method = (config.method || this.defaults.method || 'get').toLowerCase(); + + // Flatten headers + let contextHeaders = headers && utils.merge(headers.common, headers[config.method]); + + headers && + utils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], (method) => { + delete headers[method]; + }); + + config.headers = AxiosHeaders.concat(contextHeaders, headers); + + // filter out skipped interceptors + const requestInterceptorChain = []; + let synchronousRequestInterceptors = true; + this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) { + if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) { + return; + } + + synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous; + + const transitional = config.transitional || transitionalDefaults; + const legacyInterceptorReqResOrdering = + transitional && transitional.legacyInterceptorReqResOrdering; + + if (legacyInterceptorReqResOrdering) { + requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected); + } else { + requestInterceptorChain.push(interceptor.fulfilled, interceptor.rejected); + } + }); + + const responseInterceptorChain = []; + this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) { + responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected); + }); + + let promise; + let i = 0; + let len; + + if (!synchronousRequestInterceptors) { + const chain = [dispatchRequest.bind(this), undefined]; + chain.unshift(...requestInterceptorChain); + chain.push(...responseInterceptorChain); + len = chain.length; + + promise = Promise.resolve(config); + + while (i < len) { + promise = promise.then(chain[i++], chain[i++]); + } + + return promise; + } + + len = requestInterceptorChain.length; + + let newConfig = config; + + while (i < len) { + const onFulfilled = requestInterceptorChain[i++]; + const onRejected = requestInterceptorChain[i++]; + try { + newConfig = onFulfilled(newConfig); + } catch (error) { + onRejected.call(this, error); + break; + } + } + + try { + promise = dispatchRequest.call(this, newConfig); + } catch (error) { + return Promise.reject(error); + } + + i = 0; + len = responseInterceptorChain.length; + + while (i < len) { + promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]); + } + + return promise; + } + + getUri(config) { + config = mergeConfig(this.defaults, config); + const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls); + return buildURL(fullPath, config.params, config.paramsSerializer); + } +} + +// Provide aliases for supported request methods +utils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) { + /*eslint func-names:0*/ + Axios.prototype[method] = function (url, config) { + return this.request( + mergeConfig(config || {}, { + method, + url, + data: (config || {}).data, + }) + ); + }; +}); + +utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) { + function generateHTTPMethod(isForm) { + return function httpMethod(url, data, config) { + return this.request( + mergeConfig(config || {}, { + method, + headers: isForm + ? { + 'Content-Type': 'multipart/form-data', + } + : {}, + url, + data, + }) + ); + }; + } + + Axios.prototype[method] = generateHTTPMethod(); + + Axios.prototype[method + 'Form'] = generateHTTPMethod(true); +}); + +export default Axios; diff --git a/server/api/node_modules/axios/lib/core/AxiosError.js b/server/api/node_modules/axios/lib/core/AxiosError.js new file mode 100644 index 0000000..581004d --- /dev/null +++ b/server/api/node_modules/axios/lib/core/AxiosError.js @@ -0,0 +1,91 @@ +'use strict'; + +import utils from '../utils.js'; + +class AxiosError extends Error { + static from(error, code, config, request, response, customProps) { + const axiosError = new AxiosError(error.message, code || error.code, config, request, response); + axiosError.cause = error; + axiosError.name = error.name; + + // Preserve status from the original error if not already set from response + if (error.status != null && axiosError.status == null) { + axiosError.status = error.status; + } + + customProps && Object.assign(axiosError, customProps); + return axiosError; + } + + /** + * Create an Error with the specified message, config, error code, request and response. + * + * @param {string} message The error message. + * @param {string} [code] The error code (for example, 'ECONNABORTED'). + * @param {Object} [config] The config. + * @param {Object} [request] The request. + * @param {Object} [response] The response. + * + * @returns {Error} The created error. + */ + constructor(message, code, config, request, response) { + super(message); + + // Make message enumerable to maintain backward compatibility + // The native Error constructor sets message as non-enumerable, + // but axios < v1.13.3 had it as enumerable + Object.defineProperty(this, 'message', { + value: message, + enumerable: true, + writable: true, + configurable: true, + }); + + this.name = 'AxiosError'; + this.isAxiosError = true; + code && (this.code = code); + config && (this.config = config); + request && (this.request = request); + if (response) { + this.response = response; + this.status = response.status; + } + } + + toJSON() { + return { + // Standard + message: this.message, + name: this.name, + // Microsoft + description: this.description, + number: this.number, + // Mozilla + fileName: this.fileName, + lineNumber: this.lineNumber, + columnNumber: this.columnNumber, + stack: this.stack, + // Axios + config: utils.toJSONObject(this.config), + code: this.code, + status: this.status, + }; + } +} + +// This can be changed to static properties as soon as the parser options in .eslint.cjs are updated. +AxiosError.ERR_BAD_OPTION_VALUE = 'ERR_BAD_OPTION_VALUE'; +AxiosError.ERR_BAD_OPTION = 'ERR_BAD_OPTION'; +AxiosError.ECONNABORTED = 'ECONNABORTED'; +AxiosError.ETIMEDOUT = 'ETIMEDOUT'; +AxiosError.ERR_NETWORK = 'ERR_NETWORK'; +AxiosError.ERR_FR_TOO_MANY_REDIRECTS = 'ERR_FR_TOO_MANY_REDIRECTS'; +AxiosError.ERR_DEPRECATED = 'ERR_DEPRECATED'; +AxiosError.ERR_BAD_RESPONSE = 'ERR_BAD_RESPONSE'; +AxiosError.ERR_BAD_REQUEST = 'ERR_BAD_REQUEST'; +AxiosError.ERR_CANCELED = 'ERR_CANCELED'; +AxiosError.ERR_NOT_SUPPORT = 'ERR_NOT_SUPPORT'; +AxiosError.ERR_INVALID_URL = 'ERR_INVALID_URL'; +AxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED = 'ERR_FORM_DATA_DEPTH_EXCEEDED'; + +export default AxiosError; diff --git a/server/api/node_modules/axios/lib/core/AxiosHeaders.js b/server/api/node_modules/axios/lib/core/AxiosHeaders.js new file mode 100644 index 0000000..f57e98f --- /dev/null +++ b/server/api/node_modules/axios/lib/core/AxiosHeaders.js @@ -0,0 +1,377 @@ +'use strict'; + +import utils from '../utils.js'; +import parseHeaders from '../helpers/parseHeaders.js'; + +const $internals = Symbol('internals'); + +const INVALID_HEADER_VALUE_CHARS_RE = /[^\x09\x20-\x7E\x80-\xFF]/g; + +function trimSPorHTAB(str) { + let start = 0; + let end = str.length; + + while (start < end) { + const code = str.charCodeAt(start); + + if (code !== 0x09 && code !== 0x20) { + break; + } + + start += 1; + } + + while (end > start) { + const code = str.charCodeAt(end - 1); + + if (code !== 0x09 && code !== 0x20) { + break; + } + + end -= 1; + } + + return start === 0 && end === str.length ? str : str.slice(start, end); +} + +function normalizeHeader(header) { + return header && String(header).trim().toLowerCase(); +} + +function sanitizeHeaderValue(str) { + return trimSPorHTAB(str.replace(INVALID_HEADER_VALUE_CHARS_RE, '')); +} + +function normalizeValue(value) { + if (value === false || value == null) { + return value; + } + + return utils.isArray(value) ? value.map(normalizeValue) : sanitizeHeaderValue(String(value)); +} + +function parseTokens(str) { + const tokens = Object.create(null); + const tokensRE = /([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g; + let match; + + while ((match = tokensRE.exec(str))) { + tokens[match[1]] = match[2]; + } + + return tokens; +} + +const isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim()); + +function matchHeaderValue(context, value, header, filter, isHeaderNameFilter) { + if (utils.isFunction(filter)) { + return filter.call(this, value, header); + } + + if (isHeaderNameFilter) { + value = header; + } + + if (!utils.isString(value)) return; + + if (utils.isString(filter)) { + return value.indexOf(filter) !== -1; + } + + if (utils.isRegExp(filter)) { + return filter.test(value); + } +} + +function formatHeader(header) { + return header + .trim() + .toLowerCase() + .replace(/([a-z\d])(\w*)/g, (w, char, str) => { + return char.toUpperCase() + str; + }); +} + +function buildAccessors(obj, header) { + const accessorName = utils.toCamelCase(' ' + header); + + ['get', 'set', 'has'].forEach((methodName) => { + Object.defineProperty(obj, methodName + accessorName, { + value: function (arg1, arg2, arg3) { + return this[methodName].call(this, header, arg1, arg2, arg3); + }, + configurable: true, + }); + }); +} + +class AxiosHeaders { + constructor(headers) { + headers && this.set(headers); + } + + set(header, valueOrRewrite, rewrite) { + const self = this; + + function setHeader(_value, _header, _rewrite) { + const lHeader = normalizeHeader(_header); + + if (!lHeader) { + throw new Error('header name must be a non-empty string'); + } + + const key = utils.findKey(self, lHeader); + + if ( + !key || + self[key] === undefined || + _rewrite === true || + (_rewrite === undefined && self[key] !== false) + ) { + self[key || _header] = normalizeValue(_value); + } + } + + const setHeaders = (headers, _rewrite) => + utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite)); + + if (utils.isPlainObject(header) || header instanceof this.constructor) { + setHeaders(header, valueOrRewrite); + } else if (utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) { + setHeaders(parseHeaders(header), valueOrRewrite); + } else if (utils.isObject(header) && utils.isIterable(header)) { + let obj = {}, + dest, + key; + for (const entry of header) { + if (!utils.isArray(entry)) { + throw TypeError('Object iterator must return a key-value pair'); + } + + obj[(key = entry[0])] = (dest = obj[key]) + ? utils.isArray(dest) + ? [...dest, entry[1]] + : [dest, entry[1]] + : entry[1]; + } + + setHeaders(obj, valueOrRewrite); + } else { + header != null && setHeader(valueOrRewrite, header, rewrite); + } + + return this; + } + + get(header, parser) { + header = normalizeHeader(header); + + if (header) { + const key = utils.findKey(this, header); + + if (key) { + const value = this[key]; + + if (!parser) { + return value; + } + + if (parser === true) { + return parseTokens(value); + } + + if (utils.isFunction(parser)) { + return parser.call(this, value, key); + } + + if (utils.isRegExp(parser)) { + return parser.exec(value); + } + + throw new TypeError('parser must be boolean|regexp|function'); + } + } + } + + has(header, matcher) { + header = normalizeHeader(header); + + if (header) { + const key = utils.findKey(this, header); + + return !!( + key && + this[key] !== undefined && + (!matcher || matchHeaderValue(this, this[key], key, matcher)) + ); + } + + return false; + } + + delete(header, matcher) { + const self = this; + let deleted = false; + + function deleteHeader(_header) { + _header = normalizeHeader(_header); + + if (_header) { + const key = utils.findKey(self, _header); + + if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) { + delete self[key]; + + deleted = true; + } + } + } + + if (utils.isArray(header)) { + header.forEach(deleteHeader); + } else { + deleteHeader(header); + } + + return deleted; + } + + clear(matcher) { + const keys = Object.keys(this); + let i = keys.length; + let deleted = false; + + while (i--) { + const key = keys[i]; + if (!matcher || matchHeaderValue(this, this[key], key, matcher, true)) { + delete this[key]; + deleted = true; + } + } + + return deleted; + } + + normalize(format) { + const self = this; + const headers = {}; + + utils.forEach(this, (value, header) => { + const key = utils.findKey(headers, header); + + if (key) { + self[key] = normalizeValue(value); + delete self[header]; + return; + } + + const normalized = format ? formatHeader(header) : String(header).trim(); + + if (normalized !== header) { + delete self[header]; + } + + self[normalized] = normalizeValue(value); + + headers[normalized] = true; + }); + + return this; + } + + concat(...targets) { + return this.constructor.concat(this, ...targets); + } + + toJSON(asStrings) { + const obj = Object.create(null); + + utils.forEach(this, (value, header) => { + value != null && + value !== false && + (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value); + }); + + return obj; + } + + [Symbol.iterator]() { + return Object.entries(this.toJSON())[Symbol.iterator](); + } + + toString() { + return Object.entries(this.toJSON()) + .map(([header, value]) => header + ': ' + value) + .join('\n'); + } + + getSetCookie() { + return this.get('set-cookie') || []; + } + + get [Symbol.toStringTag]() { + return 'AxiosHeaders'; + } + + static from(thing) { + return thing instanceof this ? thing : new this(thing); + } + + static concat(first, ...targets) { + const computed = new this(first); + + targets.forEach((target) => computed.set(target)); + + return computed; + } + + static accessor(header) { + const internals = + (this[$internals] = + this[$internals] = + { + accessors: {}, + }); + + const accessors = internals.accessors; + const prototype = this.prototype; + + function defineAccessor(_header) { + const lHeader = normalizeHeader(_header); + + if (!accessors[lHeader]) { + buildAccessors(prototype, _header); + accessors[lHeader] = true; + } + } + + utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header); + + return this; + } +} + +AxiosHeaders.accessor([ + 'Content-Type', + 'Content-Length', + 'Accept', + 'Accept-Encoding', + 'User-Agent', + 'Authorization', +]); + +// reserved names hotfix +utils.reduceDescriptors(AxiosHeaders.prototype, ({ value }, key) => { + let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set` + return { + get: () => value, + set(headerValue) { + this[mapped] = headerValue; + }, + }; +}); + +utils.freezeMethods(AxiosHeaders); + +export default AxiosHeaders; diff --git a/server/api/node_modules/axios/lib/core/InterceptorManager.js b/server/api/node_modules/axios/lib/core/InterceptorManager.js new file mode 100644 index 0000000..fe10f3d --- /dev/null +++ b/server/api/node_modules/axios/lib/core/InterceptorManager.js @@ -0,0 +1,72 @@ +'use strict'; + +import utils from '../utils.js'; + +class InterceptorManager { + constructor() { + this.handlers = []; + } + + /** + * Add a new interceptor to the stack + * + * @param {Function} fulfilled The function to handle `then` for a `Promise` + * @param {Function} rejected The function to handle `reject` for a `Promise` + * @param {Object} options The options for the interceptor, synchronous and runWhen + * + * @return {Number} An ID used to remove interceptor later + */ + use(fulfilled, rejected, options) { + this.handlers.push({ + fulfilled, + rejected, + synchronous: options ? options.synchronous : false, + runWhen: options ? options.runWhen : null, + }); + return this.handlers.length - 1; + } + + /** + * Remove an interceptor from the stack + * + * @param {Number} id The ID that was returned by `use` + * + * @returns {void} + */ + eject(id) { + if (this.handlers[id]) { + this.handlers[id] = null; + } + } + + /** + * Clear all interceptors from the stack + * + * @returns {void} + */ + clear() { + if (this.handlers) { + this.handlers = []; + } + } + + /** + * Iterate over all the registered interceptors + * + * This method is particularly useful for skipping over any + * interceptors that may have become `null` calling `eject`. + * + * @param {Function} fn The function to call for each interceptor + * + * @returns {void} + */ + forEach(fn) { + utils.forEach(this.handlers, function forEachHandler(h) { + if (h !== null) { + fn(h); + } + }); + } +} + +export default InterceptorManager; diff --git a/server/api/node_modules/axios/lib/core/README.md b/server/api/node_modules/axios/lib/core/README.md new file mode 100644 index 0000000..84559ce --- /dev/null +++ b/server/api/node_modules/axios/lib/core/README.md @@ -0,0 +1,8 @@ +# axios // core + +The modules found in `core/` should be modules that are specific to the domain logic of axios. These modules would most likely not make sense to be consumed outside of the axios module, as their logic is too specific. Some examples of core modules are: + +- Dispatching requests + - Requests sent via `adapters/` (see lib/adapters/README.md) +- Managing interceptors +- Handling config diff --git a/server/api/node_modules/axios/lib/core/buildFullPath.js b/server/api/node_modules/axios/lib/core/buildFullPath.js new file mode 100644 index 0000000..9cb9d7c --- /dev/null +++ b/server/api/node_modules/axios/lib/core/buildFullPath.js @@ -0,0 +1,22 @@ +'use strict'; + +import isAbsoluteURL from '../helpers/isAbsoluteURL.js'; +import combineURLs from '../helpers/combineURLs.js'; + +/** + * Creates a new URL by combining the baseURL with the requestedURL, + * only when the requestedURL is not already an absolute URL. + * If the requestURL is absolute, this function returns the requestedURL untouched. + * + * @param {string} baseURL The base URL + * @param {string} requestedURL Absolute or relative URL to combine + * + * @returns {string} The combined full path + */ +export default function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) { + let isRelativeUrl = !isAbsoluteURL(requestedURL); + if (baseURL && (isRelativeUrl || allowAbsoluteUrls === false)) { + return combineURLs(baseURL, requestedURL); + } + return requestedURL; +} diff --git a/server/api/node_modules/axios/lib/core/dispatchRequest.js b/server/api/node_modules/axios/lib/core/dispatchRequest.js new file mode 100644 index 0000000..2015b54 --- /dev/null +++ b/server/api/node_modules/axios/lib/core/dispatchRequest.js @@ -0,0 +1,77 @@ +'use strict'; + +import transformData from './transformData.js'; +import isCancel from '../cancel/isCancel.js'; +import defaults from '../defaults/index.js'; +import CanceledError from '../cancel/CanceledError.js'; +import AxiosHeaders from '../core/AxiosHeaders.js'; +import adapters from '../adapters/adapters.js'; + +/** + * Throws a `CanceledError` if cancellation has been requested. + * + * @param {Object} config The config that is to be used for the request + * + * @returns {void} + */ +function throwIfCancellationRequested(config) { + if (config.cancelToken) { + config.cancelToken.throwIfRequested(); + } + + if (config.signal && config.signal.aborted) { + throw new CanceledError(null, config); + } +} + +/** + * Dispatch a request to the server using the configured adapter. + * + * @param {object} config The config that is to be used for the request + * + * @returns {Promise} The Promise to be fulfilled + */ +export default function dispatchRequest(config) { + throwIfCancellationRequested(config); + + config.headers = AxiosHeaders.from(config.headers); + + // Transform request data + config.data = transformData.call(config, config.transformRequest); + + if (['post', 'put', 'patch'].indexOf(config.method) !== -1) { + config.headers.setContentType('application/x-www-form-urlencoded', false); + } + + const adapter = adapters.getAdapter(config.adapter || defaults.adapter, config); + + return adapter(config).then( + function onAdapterResolution(response) { + throwIfCancellationRequested(config); + + // Transform response data + response.data = transformData.call(config, config.transformResponse, response); + + response.headers = AxiosHeaders.from(response.headers); + + return response; + }, + function onAdapterRejection(reason) { + if (!isCancel(reason)) { + throwIfCancellationRequested(config); + + // Transform response data + if (reason && reason.response) { + reason.response.data = transformData.call( + config, + config.transformResponse, + reason.response + ); + reason.response.headers = AxiosHeaders.from(reason.response.headers); + } + } + + return Promise.reject(reason); + } + ); +} diff --git a/server/api/node_modules/axios/lib/core/mergeConfig.js b/server/api/node_modules/axios/lib/core/mergeConfig.js new file mode 100644 index 0000000..98b56e2 --- /dev/null +++ b/server/api/node_modules/axios/lib/core/mergeConfig.js @@ -0,0 +1,109 @@ +'use strict'; + +import utils from '../utils.js'; +import AxiosHeaders from './AxiosHeaders.js'; + +const headersToObject = (thing) => (thing instanceof AxiosHeaders ? { ...thing } : thing); + +/** + * Config-specific merge-function which creates a new config-object + * by merging two configuration objects together. + * + * @param {Object} config1 + * @param {Object} config2 + * + * @returns {Object} New object resulting from merging config2 to config1 + */ +export default function mergeConfig(config1, config2) { + // eslint-disable-next-line no-param-reassign + config2 = config2 || {}; + const config = {}; + + function getMergedValue(target, source, prop, caseless) { + if (utils.isPlainObject(target) && utils.isPlainObject(source)) { + return utils.merge.call({ caseless }, target, source); + } else if (utils.isPlainObject(source)) { + return utils.merge({}, source); + } else if (utils.isArray(source)) { + return source.slice(); + } + return source; + } + + function mergeDeepProperties(a, b, prop, caseless) { + if (!utils.isUndefined(b)) { + return getMergedValue(a, b, prop, caseless); + } else if (!utils.isUndefined(a)) { + return getMergedValue(undefined, a, prop, caseless); + } + } + + // eslint-disable-next-line consistent-return + function valueFromConfig2(a, b) { + if (!utils.isUndefined(b)) { + return getMergedValue(undefined, b); + } + } + + // eslint-disable-next-line consistent-return + function defaultToConfig2(a, b) { + if (!utils.isUndefined(b)) { + return getMergedValue(undefined, b); + } else if (!utils.isUndefined(a)) { + return getMergedValue(undefined, a); + } + } + + // eslint-disable-next-line consistent-return + function mergeDirectKeys(a, b, prop) { + if (utils.hasOwnProp(config2, prop)) { + return getMergedValue(a, b); + } else if (utils.hasOwnProp(config1, prop)) { + return getMergedValue(undefined, a); + } + } + + const mergeMap = { + url: valueFromConfig2, + method: valueFromConfig2, + data: valueFromConfig2, + baseURL: defaultToConfig2, + transformRequest: defaultToConfig2, + transformResponse: defaultToConfig2, + paramsSerializer: defaultToConfig2, + timeout: defaultToConfig2, + timeoutMessage: defaultToConfig2, + withCredentials: defaultToConfig2, + withXSRFToken: defaultToConfig2, + adapter: defaultToConfig2, + responseType: defaultToConfig2, + xsrfCookieName: defaultToConfig2, + xsrfHeaderName: defaultToConfig2, + onUploadProgress: defaultToConfig2, + onDownloadProgress: defaultToConfig2, + decompress: defaultToConfig2, + maxContentLength: defaultToConfig2, + maxBodyLength: defaultToConfig2, + beforeRedirect: defaultToConfig2, + transport: defaultToConfig2, + httpAgent: defaultToConfig2, + httpsAgent: defaultToConfig2, + cancelToken: defaultToConfig2, + socketPath: defaultToConfig2, + responseEncoding: defaultToConfig2, + validateStatus: mergeDirectKeys, + headers: (a, b, prop) => + mergeDeepProperties(headersToObject(a), headersToObject(b), prop, true), + }; + + utils.forEach(Object.keys({ ...config1, ...config2 }), function computeConfigValue(prop) { + if (prop === '__proto__' || prop === 'constructor' || prop === 'prototype') return; + const merge = utils.hasOwnProp(mergeMap, prop) ? mergeMap[prop] : mergeDeepProperties; + const a = utils.hasOwnProp(config1, prop) ? config1[prop] : undefined; + const b = utils.hasOwnProp(config2, prop) ? config2[prop] : undefined; + const configValue = merge(a, b, prop); + (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue); + }); + + return config; +} diff --git a/server/api/node_modules/axios/lib/core/settle.js b/server/api/node_modules/axios/lib/core/settle.js new file mode 100644 index 0000000..8629ad0 --- /dev/null +++ b/server/api/node_modules/axios/lib/core/settle.js @@ -0,0 +1,31 @@ +'use strict'; + +import AxiosError from './AxiosError.js'; + +/** + * Resolve or reject a Promise based on response status. + * + * @param {Function} resolve A function that resolves the promise. + * @param {Function} reject A function that rejects the promise. + * @param {object} response The response. + * + * @returns {object} The response. + */ +export default function settle(resolve, reject, response) { + const validateStatus = response.config.validateStatus; + if (!response.status || !validateStatus || validateStatus(response.status)) { + resolve(response); + } else { + reject( + new AxiosError( + 'Request failed with status code ' + response.status, + [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][ + Math.floor(response.status / 100) - 4 + ], + response.config, + response.request, + response + ) + ); + } +} diff --git a/server/api/node_modules/axios/lib/core/transformData.js b/server/api/node_modules/axios/lib/core/transformData.js new file mode 100644 index 0000000..f22c474 --- /dev/null +++ b/server/api/node_modules/axios/lib/core/transformData.js @@ -0,0 +1,28 @@ +'use strict'; + +import utils from '../utils.js'; +import defaults from '../defaults/index.js'; +import AxiosHeaders from '../core/AxiosHeaders.js'; + +/** + * Transform the data for a request or a response + * + * @param {Array|Function} fns A single function or Array of functions + * @param {?Object} response The response object + * + * @returns {*} The resulting transformed data + */ +export default function transformData(fns, response) { + const config = this || defaults; + const context = response || config; + const headers = AxiosHeaders.from(context.headers); + let data = context.data; + + utils.forEach(fns, function transform(fn) { + data = fn.call(config, data, headers.normalize(), response ? response.status : undefined); + }); + + headers.normalize(); + + return data; +} diff --git a/server/api/node_modules/axios/lib/defaults/index.js b/server/api/node_modules/axios/lib/defaults/index.js new file mode 100644 index 0000000..30c8ea9 --- /dev/null +++ b/server/api/node_modules/axios/lib/defaults/index.js @@ -0,0 +1,177 @@ +'use strict'; + +import utils from '../utils.js'; +import AxiosError from '../core/AxiosError.js'; +import transitionalDefaults from './transitional.js'; +import toFormData from '../helpers/toFormData.js'; +import toURLEncodedForm from '../helpers/toURLEncodedForm.js'; +import platform from '../platform/index.js'; +import formDataToJSON from '../helpers/formDataToJSON.js'; + +const own = (obj, key) => (obj != null && utils.hasOwnProp(obj, key) ? obj[key] : undefined); + +/** + * It takes a string, tries to parse it, and if it fails, it returns the stringified version + * of the input + * + * @param {any} rawValue - The value to be stringified. + * @param {Function} parser - A function that parses a string into a JavaScript object. + * @param {Function} encoder - A function that takes a value and returns a string. + * + * @returns {string} A stringified version of the rawValue. + */ +function stringifySafely(rawValue, parser, encoder) { + if (utils.isString(rawValue)) { + try { + (parser || JSON.parse)(rawValue); + return utils.trim(rawValue); + } catch (e) { + if (e.name !== 'SyntaxError') { + throw e; + } + } + } + + return (encoder || JSON.stringify)(rawValue); +} + +const defaults = { + transitional: transitionalDefaults, + + adapter: ['xhr', 'http', 'fetch'], + + transformRequest: [ + function transformRequest(data, headers) { + const contentType = headers.getContentType() || ''; + const hasJSONContentType = contentType.indexOf('application/json') > -1; + const isObjectPayload = utils.isObject(data); + + if (isObjectPayload && utils.isHTMLForm(data)) { + data = new FormData(data); + } + + const isFormData = utils.isFormData(data); + + if (isFormData) { + return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data; + } + + if ( + utils.isArrayBuffer(data) || + utils.isBuffer(data) || + utils.isStream(data) || + utils.isFile(data) || + utils.isBlob(data) || + utils.isReadableStream(data) + ) { + return data; + } + if (utils.isArrayBufferView(data)) { + return data.buffer; + } + if (utils.isURLSearchParams(data)) { + headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false); + return data.toString(); + } + + let isFileList; + + if (isObjectPayload) { + const formSerializer = own(this, 'formSerializer'); + if (contentType.indexOf('application/x-www-form-urlencoded') > -1) { + return toURLEncodedForm(data, formSerializer).toString(); + } + + if ( + (isFileList = utils.isFileList(data)) || + contentType.indexOf('multipart/form-data') > -1 + ) { + const env = own(this, 'env'); + const _FormData = env && env.FormData; + + return toFormData( + isFileList ? { 'files[]': data } : data, + _FormData && new _FormData(), + formSerializer + ); + } + } + + if (isObjectPayload || hasJSONContentType) { + headers.setContentType('application/json', false); + return stringifySafely(data); + } + + return data; + }, + ], + + transformResponse: [ + function transformResponse(data) { + const transitional = own(this, 'transitional') || defaults.transitional; + const forcedJSONParsing = transitional && transitional.forcedJSONParsing; + const responseType = own(this, 'responseType'); + const JSONRequested = responseType === 'json'; + + if (utils.isResponse(data) || utils.isReadableStream(data)) { + return data; + } + + if ( + data && + utils.isString(data) && + ((forcedJSONParsing && !responseType) || JSONRequested) + ) { + const silentJSONParsing = transitional && transitional.silentJSONParsing; + const strictJSONParsing = !silentJSONParsing && JSONRequested; + + try { + return JSON.parse(data, own(this, 'parseReviver')); + } catch (e) { + if (strictJSONParsing) { + if (e.name === 'SyntaxError') { + throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, own(this, 'response')); + } + throw e; + } + } + } + + return data; + }, + ], + + /** + * A timeout in milliseconds to abort a request. If set to 0 (default) a + * timeout is not created. + */ + timeout: 0, + + xsrfCookieName: 'XSRF-TOKEN', + xsrfHeaderName: 'X-XSRF-TOKEN', + + maxContentLength: -1, + maxBodyLength: -1, + + env: { + FormData: platform.classes.FormData, + Blob: platform.classes.Blob, + }, + + validateStatus: function validateStatus(status) { + return status >= 200 && status < 300; + }, + + headers: { + common: { + Accept: 'application/json, text/plain, */*', + 'Content-Type': undefined, + }, + }, +}; + +utils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => { + defaults.headers[method] = {}; +}); + +export default defaults; diff --git a/server/api/node_modules/axios/lib/defaults/transitional.js b/server/api/node_modules/axios/lib/defaults/transitional.js new file mode 100644 index 0000000..714b664 --- /dev/null +++ b/server/api/node_modules/axios/lib/defaults/transitional.js @@ -0,0 +1,8 @@ +'use strict'; + +export default { + silentJSONParsing: true, + forcedJSONParsing: true, + clarifyTimeoutError: false, + legacyInterceptorReqResOrdering: true, +}; diff --git a/server/api/node_modules/axios/lib/env/README.md b/server/api/node_modules/axios/lib/env/README.md new file mode 100644 index 0000000..b41baff --- /dev/null +++ b/server/api/node_modules/axios/lib/env/README.md @@ -0,0 +1,3 @@ +# axios // env + +The `data.js` file is updated automatically when the package version is upgrading. Please do not edit it manually. diff --git a/server/api/node_modules/axios/lib/env/classes/FormData.js b/server/api/node_modules/axios/lib/env/classes/FormData.js new file mode 100644 index 0000000..862adb9 --- /dev/null +++ b/server/api/node_modules/axios/lib/env/classes/FormData.js @@ -0,0 +1,2 @@ +import _FormData from 'form-data'; +export default typeof FormData !== 'undefined' ? FormData : _FormData; diff --git a/server/api/node_modules/axios/lib/env/data.js b/server/api/node_modules/axios/lib/env/data.js new file mode 100644 index 0000000..0efebd2 --- /dev/null +++ b/server/api/node_modules/axios/lib/env/data.js @@ -0,0 +1 @@ +export const VERSION = "1.15.1"; \ No newline at end of file diff --git a/server/api/node_modules/axios/lib/helpers/AxiosTransformStream.js b/server/api/node_modules/axios/lib/helpers/AxiosTransformStream.js new file mode 100644 index 0000000..96e8acb --- /dev/null +++ b/server/api/node_modules/axios/lib/helpers/AxiosTransformStream.js @@ -0,0 +1,156 @@ +'use strict'; + +import stream from 'stream'; +import utils from '../utils.js'; + +const kInternals = Symbol('internals'); + +class AxiosTransformStream extends stream.Transform { + constructor(options) { + options = utils.toFlatObject( + options, + { + maxRate: 0, + chunkSize: 64 * 1024, + minChunkSize: 100, + timeWindow: 500, + ticksRate: 2, + samplesCount: 15, + }, + null, + (prop, source) => { + return !utils.isUndefined(source[prop]); + } + ); + + super({ + readableHighWaterMark: options.chunkSize, + }); + + const internals = (this[kInternals] = { + timeWindow: options.timeWindow, + chunkSize: options.chunkSize, + maxRate: options.maxRate, + minChunkSize: options.minChunkSize, + bytesSeen: 0, + isCaptured: false, + notifiedBytesLoaded: 0, + ts: Date.now(), + bytes: 0, + onReadCallback: null, + }); + + this.on('newListener', (event) => { + if (event === 'progress') { + if (!internals.isCaptured) { + internals.isCaptured = true; + } + } + }); + } + + _read(size) { + const internals = this[kInternals]; + + if (internals.onReadCallback) { + internals.onReadCallback(); + } + + return super._read(size); + } + + _transform(chunk, encoding, callback) { + const internals = this[kInternals]; + const maxRate = internals.maxRate; + + const readableHighWaterMark = this.readableHighWaterMark; + + const timeWindow = internals.timeWindow; + + const divider = 1000 / timeWindow; + const bytesThreshold = maxRate / divider; + const minChunkSize = + internals.minChunkSize !== false + ? Math.max(internals.minChunkSize, bytesThreshold * 0.01) + : 0; + + const pushChunk = (_chunk, _callback) => { + const bytes = Buffer.byteLength(_chunk); + internals.bytesSeen += bytes; + internals.bytes += bytes; + + internals.isCaptured && this.emit('progress', internals.bytesSeen); + + if (this.push(_chunk)) { + process.nextTick(_callback); + } else { + internals.onReadCallback = () => { + internals.onReadCallback = null; + process.nextTick(_callback); + }; + } + }; + + const transformChunk = (_chunk, _callback) => { + const chunkSize = Buffer.byteLength(_chunk); + let chunkRemainder = null; + let maxChunkSize = readableHighWaterMark; + let bytesLeft; + let passed = 0; + + if (maxRate) { + const now = Date.now(); + + if (!internals.ts || (passed = now - internals.ts) >= timeWindow) { + internals.ts = now; + bytesLeft = bytesThreshold - internals.bytes; + internals.bytes = bytesLeft < 0 ? -bytesLeft : 0; + passed = 0; + } + + bytesLeft = bytesThreshold - internals.bytes; + } + + if (maxRate) { + if (bytesLeft <= 0) { + // next time window + return setTimeout(() => { + _callback(null, _chunk); + }, timeWindow - passed); + } + + if (bytesLeft < maxChunkSize) { + maxChunkSize = bytesLeft; + } + } + + if (maxChunkSize && chunkSize > maxChunkSize && chunkSize - maxChunkSize > minChunkSize) { + chunkRemainder = _chunk.subarray(maxChunkSize); + _chunk = _chunk.subarray(0, maxChunkSize); + } + + pushChunk( + _chunk, + chunkRemainder + ? () => { + process.nextTick(_callback, null, chunkRemainder); + } + : _callback + ); + }; + + transformChunk(chunk, function transformNextChunk(err, _chunk) { + if (err) { + return callback(err); + } + + if (_chunk) { + transformChunk(_chunk, transformNextChunk); + } else { + callback(null); + } + }); + } +} + +export default AxiosTransformStream; diff --git a/server/api/node_modules/axios/lib/helpers/AxiosURLSearchParams.js b/server/api/node_modules/axios/lib/helpers/AxiosURLSearchParams.js new file mode 100644 index 0000000..57cf16d --- /dev/null +++ b/server/api/node_modules/axios/lib/helpers/AxiosURLSearchParams.js @@ -0,0 +1,61 @@ +'use strict'; + +import toFormData from './toFormData.js'; + +/** + * It encodes a string by replacing all characters that are not in the unreserved set with + * their percent-encoded equivalents + * + * @param {string} str - The string to encode. + * + * @returns {string} The encoded string. + */ +function encode(str) { + const charMap = { + '!': '%21', + "'": '%27', + '(': '%28', + ')': '%29', + '~': '%7E', + '%20': '+', + }; + return encodeURIComponent(str).replace(/[!'()~]|%20/g, function replacer(match) { + return charMap[match]; + }); +} + +/** + * It takes a params object and converts it to a FormData object + * + * @param {Object} params - The parameters to be converted to a FormData object. + * @param {Object} options - The options object passed to the Axios constructor. + * + * @returns {void} + */ +function AxiosURLSearchParams(params, options) { + this._pairs = []; + + params && toFormData(params, this, options); +} + +const prototype = AxiosURLSearchParams.prototype; + +prototype.append = function append(name, value) { + this._pairs.push([name, value]); +}; + +prototype.toString = function toString(encoder) { + const _encode = encoder + ? function (value) { + return encoder.call(this, value, encode); + } + : encode; + + return this._pairs + .map(function each(pair) { + return _encode(pair[0]) + '=' + _encode(pair[1]); + }, '') + .join('&'); +}; + +export default AxiosURLSearchParams; diff --git a/server/api/node_modules/axios/lib/helpers/HttpStatusCode.js b/server/api/node_modules/axios/lib/helpers/HttpStatusCode.js new file mode 100644 index 0000000..b68d08e --- /dev/null +++ b/server/api/node_modules/axios/lib/helpers/HttpStatusCode.js @@ -0,0 +1,77 @@ +const HttpStatusCode = { + Continue: 100, + SwitchingProtocols: 101, + Processing: 102, + EarlyHints: 103, + Ok: 200, + Created: 201, + Accepted: 202, + NonAuthoritativeInformation: 203, + NoContent: 204, + ResetContent: 205, + PartialContent: 206, + MultiStatus: 207, + AlreadyReported: 208, + ImUsed: 226, + MultipleChoices: 300, + MovedPermanently: 301, + Found: 302, + SeeOther: 303, + NotModified: 304, + UseProxy: 305, + Unused: 306, + TemporaryRedirect: 307, + PermanentRedirect: 308, + BadRequest: 400, + Unauthorized: 401, + PaymentRequired: 402, + Forbidden: 403, + NotFound: 404, + MethodNotAllowed: 405, + NotAcceptable: 406, + ProxyAuthenticationRequired: 407, + RequestTimeout: 408, + Conflict: 409, + Gone: 410, + LengthRequired: 411, + PreconditionFailed: 412, + PayloadTooLarge: 413, + UriTooLong: 414, + UnsupportedMediaType: 415, + RangeNotSatisfiable: 416, + ExpectationFailed: 417, + ImATeapot: 418, + MisdirectedRequest: 421, + UnprocessableEntity: 422, + Locked: 423, + FailedDependency: 424, + TooEarly: 425, + UpgradeRequired: 426, + PreconditionRequired: 428, + TooManyRequests: 429, + RequestHeaderFieldsTooLarge: 431, + UnavailableForLegalReasons: 451, + InternalServerError: 500, + NotImplemented: 501, + BadGateway: 502, + ServiceUnavailable: 503, + GatewayTimeout: 504, + HttpVersionNotSupported: 505, + VariantAlsoNegotiates: 506, + InsufficientStorage: 507, + LoopDetected: 508, + NotExtended: 510, + NetworkAuthenticationRequired: 511, + WebServerIsDown: 521, + ConnectionTimedOut: 522, + OriginIsUnreachable: 523, + TimeoutOccurred: 524, + SslHandshakeFailed: 525, + InvalidSslCertificate: 526, +}; + +Object.entries(HttpStatusCode).forEach(([key, value]) => { + HttpStatusCode[value] = key; +}); + +export default HttpStatusCode; diff --git a/server/api/node_modules/axios/lib/helpers/README.md b/server/api/node_modules/axios/lib/helpers/README.md new file mode 100644 index 0000000..4ae3419 --- /dev/null +++ b/server/api/node_modules/axios/lib/helpers/README.md @@ -0,0 +1,7 @@ +# axios // helpers + +The modules found in `helpers/` should be generic modules that are _not_ specific to the domain logic of axios. These modules could theoretically be published to npm on their own and consumed by other modules or apps. Some examples of generic modules are things like: + +- Browser polyfills +- Managing cookies +- Parsing HTTP headers diff --git a/server/api/node_modules/axios/lib/helpers/ZlibHeaderTransformStream.js b/server/api/node_modules/axios/lib/helpers/ZlibHeaderTransformStream.js new file mode 100644 index 0000000..c588ded --- /dev/null +++ b/server/api/node_modules/axios/lib/helpers/ZlibHeaderTransformStream.js @@ -0,0 +1,29 @@ +'use strict'; + +import stream from 'stream'; + +class ZlibHeaderTransformStream extends stream.Transform { + __transform(chunk, encoding, callback) { + this.push(chunk); + callback(); + } + + _transform(chunk, encoding, callback) { + if (chunk.length !== 0) { + this._transform = this.__transform; + + // Add Default Compression headers if no zlib headers are present + if (chunk[0] !== 120) { + // Hex: 78 + const header = Buffer.alloc(2); + header[0] = 120; // Hex: 78 + header[1] = 156; // Hex: 9C + this.push(header, encoding); + } + } + + this.__transform(chunk, encoding, callback); + } +} + +export default ZlibHeaderTransformStream; diff --git a/server/api/node_modules/axios/lib/helpers/bind.js b/server/api/node_modules/axios/lib/helpers/bind.js new file mode 100644 index 0000000..938da5c --- /dev/null +++ b/server/api/node_modules/axios/lib/helpers/bind.js @@ -0,0 +1,14 @@ +'use strict'; + +/** + * Create a bound version of a function with a specified `this` context + * + * @param {Function} fn - The function to bind + * @param {*} thisArg - The value to be passed as the `this` parameter + * @returns {Function} A new function that will call the original function with the specified `this` context + */ +export default function bind(fn, thisArg) { + return function wrap() { + return fn.apply(thisArg, arguments); + }; +} diff --git a/server/api/node_modules/axios/lib/helpers/buildURL.js b/server/api/node_modules/axios/lib/helpers/buildURL.js new file mode 100644 index 0000000..d6745da --- /dev/null +++ b/server/api/node_modules/axios/lib/helpers/buildURL.js @@ -0,0 +1,66 @@ +'use strict'; + +import utils from '../utils.js'; +import AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js'; + +/** + * It replaces URL-encoded forms of `:`, `$`, `,`, and spaces with + * their plain counterparts (`:`, `$`, `,`, `+`). + * + * @param {string} val The value to be encoded. + * + * @returns {string} The encoded value. + */ +function encode(val) { + return encodeURIComponent(val) + .replace(/%3A/gi, ':') + .replace(/%24/g, '$') + .replace(/%2C/gi, ',') + .replace(/%20/g, '+'); +} + +/** + * Build a URL by appending params to the end + * + * @param {string} url The base of the url (e.g., http://www.google.com) + * @param {object} [params] The params to be appended + * @param {?(object|Function)} options + * + * @returns {string} The formatted url + */ +export default function buildURL(url, params, options) { + if (!params) { + return url; + } + + const _encode = (options && options.encode) || encode; + + const _options = utils.isFunction(options) + ? { + serialize: options, + } + : options; + + const serializeFn = _options && _options.serialize; + + let serializedParams; + + if (serializeFn) { + serializedParams = serializeFn(params, _options); + } else { + serializedParams = utils.isURLSearchParams(params) + ? params.toString() + : new AxiosURLSearchParams(params, _options).toString(_encode); + } + + if (serializedParams) { + const hashmarkIndex = url.indexOf('#'); + + if (hashmarkIndex !== -1) { + url = url.slice(0, hashmarkIndex); + } + url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams; + } + + return url; +} diff --git a/server/api/node_modules/axios/lib/helpers/callbackify.js b/server/api/node_modules/axios/lib/helpers/callbackify.js new file mode 100644 index 0000000..e8cea68 --- /dev/null +++ b/server/api/node_modules/axios/lib/helpers/callbackify.js @@ -0,0 +1,18 @@ +import utils from '../utils.js'; + +const callbackify = (fn, reducer) => { + return utils.isAsyncFn(fn) + ? function (...args) { + const cb = args.pop(); + fn.apply(this, args).then((value) => { + try { + reducer ? cb(null, ...reducer(value)) : cb(null, value); + } catch (err) { + cb(err); + } + }, cb); + } + : fn; +}; + +export default callbackify; diff --git a/server/api/node_modules/axios/lib/helpers/combineURLs.js b/server/api/node_modules/axios/lib/helpers/combineURLs.js new file mode 100644 index 0000000..9f04f02 --- /dev/null +++ b/server/api/node_modules/axios/lib/helpers/combineURLs.js @@ -0,0 +1,15 @@ +'use strict'; + +/** + * Creates a new URL by combining the specified URLs + * + * @param {string} baseURL The base URL + * @param {string} relativeURL The relative URL + * + * @returns {string} The combined URL + */ +export default function combineURLs(baseURL, relativeURL) { + return relativeURL + ? baseURL.replace(/\/?\/$/, '') + '/' + relativeURL.replace(/^\/+/, '') + : baseURL; +} diff --git a/server/api/node_modules/axios/lib/helpers/composeSignals.js b/server/api/node_modules/axios/lib/helpers/composeSignals.js new file mode 100644 index 0000000..04e3012 --- /dev/null +++ b/server/api/node_modules/axios/lib/helpers/composeSignals.js @@ -0,0 +1,56 @@ +import CanceledError from '../cancel/CanceledError.js'; +import AxiosError from '../core/AxiosError.js'; +import utils from '../utils.js'; + +const composeSignals = (signals, timeout) => { + const { length } = (signals = signals ? signals.filter(Boolean) : []); + + if (timeout || length) { + let controller = new AbortController(); + + let aborted; + + const onabort = function (reason) { + if (!aborted) { + aborted = true; + unsubscribe(); + const err = reason instanceof Error ? reason : this.reason; + controller.abort( + err instanceof AxiosError + ? err + : new CanceledError(err instanceof Error ? err.message : err) + ); + } + }; + + let timer = + timeout && + setTimeout(() => { + timer = null; + onabort(new AxiosError(`timeout of ${timeout}ms exceeded`, AxiosError.ETIMEDOUT)); + }, timeout); + + const unsubscribe = () => { + if (signals) { + timer && clearTimeout(timer); + timer = null; + signals.forEach((signal) => { + signal.unsubscribe + ? signal.unsubscribe(onabort) + : signal.removeEventListener('abort', onabort); + }); + signals = null; + } + }; + + signals.forEach((signal) => signal.addEventListener('abort', onabort)); + + const { signal } = controller; + + signal.unsubscribe = () => utils.asap(unsubscribe); + + return signal; + } +}; + +export default composeSignals; diff --git a/server/api/node_modules/axios/lib/helpers/cookies.js b/server/api/node_modules/axios/lib/helpers/cookies.js new file mode 100644 index 0000000..1553fb2 --- /dev/null +++ b/server/api/node_modules/axios/lib/helpers/cookies.js @@ -0,0 +1,48 @@ +import utils from '../utils.js'; +import platform from '../platform/index.js'; + +export default platform.hasStandardBrowserEnv + ? // Standard browser envs support document.cookie + { + write(name, value, expires, path, domain, secure, sameSite) { + if (typeof document === 'undefined') return; + + const cookie = [`${name}=${encodeURIComponent(value)}`]; + + if (utils.isNumber(expires)) { + cookie.push(`expires=${new Date(expires).toUTCString()}`); + } + if (utils.isString(path)) { + cookie.push(`path=${path}`); + } + if (utils.isString(domain)) { + cookie.push(`domain=${domain}`); + } + if (secure === true) { + cookie.push('secure'); + } + if (utils.isString(sameSite)) { + cookie.push(`SameSite=${sameSite}`); + } + + document.cookie = cookie.join('; '); + }, + + read(name) { + if (typeof document === 'undefined') return null; + const match = document.cookie.match(new RegExp('(?:^|; )' + name + '=([^;]*)')); + return match ? decodeURIComponent(match[1]) : null; + }, + + remove(name) { + this.write(name, '', Date.now() - 86400000, '/'); + }, + } + : // Non-standard browser env (web workers, react-native) lack needed support. + { + write() {}, + read() { + return null; + }, + remove() {}, + }; diff --git a/server/api/node_modules/axios/lib/helpers/deprecatedMethod.js b/server/api/node_modules/axios/lib/helpers/deprecatedMethod.js new file mode 100644 index 0000000..ec112de --- /dev/null +++ b/server/api/node_modules/axios/lib/helpers/deprecatedMethod.js @@ -0,0 +1,31 @@ +'use strict'; + +/*eslint no-console:0*/ + +/** + * Supply a warning to the developer that a method they are using + * has been deprecated. + * + * @param {string} method The name of the deprecated method + * @param {string} [instead] The alternate method to use if applicable + * @param {string} [docs] The documentation URL to get further details + * + * @returns {void} + */ +export default function deprecatedMethod(method, instead, docs) { + try { + console.warn( + 'DEPRECATED method `' + + method + + '`.' + + (instead ? ' Use `' + instead + '` instead.' : '') + + ' This method will be removed in a future release.' + ); + + if (docs) { + console.warn('For more information about usage see ' + docs); + } + } catch (e) { + /* Ignore */ + } +} diff --git a/server/api/node_modules/axios/lib/helpers/estimateDataURLDecodedBytes.js b/server/api/node_modules/axios/lib/helpers/estimateDataURLDecodedBytes.js new file mode 100644 index 0000000..f29a817 --- /dev/null +++ b/server/api/node_modules/axios/lib/helpers/estimateDataURLDecodedBytes.js @@ -0,0 +1,73 @@ +/** + * Estimate decoded byte length of a data:// URL *without* allocating large buffers. + * - For base64: compute exact decoded size using length and padding; + * handle %XX at the character-count level (no string allocation). + * - For non-base64: use UTF-8 byteLength of the encoded body as a safe upper bound. + * + * @param {string} url + * @returns {number} + */ +export default function estimateDataURLDecodedBytes(url) { + if (!url || typeof url !== 'string') return 0; + if (!url.startsWith('data:')) return 0; + + const comma = url.indexOf(','); + if (comma < 0) return 0; + + const meta = url.slice(5, comma); + const body = url.slice(comma + 1); + const isBase64 = /;base64/i.test(meta); + + if (isBase64) { + let effectiveLen = body.length; + const len = body.length; // cache length + + for (let i = 0; i < len; i++) { + if (body.charCodeAt(i) === 37 /* '%' */ && i + 2 < len) { + const a = body.charCodeAt(i + 1); + const b = body.charCodeAt(i + 2); + const isHex = + ((a >= 48 && a <= 57) || (a >= 65 && a <= 70) || (a >= 97 && a <= 102)) && + ((b >= 48 && b <= 57) || (b >= 65 && b <= 70) || (b >= 97 && b <= 102)); + + if (isHex) { + effectiveLen -= 2; + i += 2; + } + } + } + + let pad = 0; + let idx = len - 1; + + const tailIsPct3D = (j) => + j >= 2 && + body.charCodeAt(j - 2) === 37 && // '%' + body.charCodeAt(j - 1) === 51 && // '3' + (body.charCodeAt(j) === 68 || body.charCodeAt(j) === 100); // 'D' or 'd' + + if (idx >= 0) { + if (body.charCodeAt(idx) === 61 /* '=' */) { + pad++; + idx--; + } else if (tailIsPct3D(idx)) { + pad++; + idx -= 3; + } + } + + if (pad === 1 && idx >= 0) { + if (body.charCodeAt(idx) === 61 /* '=' */) { + pad++; + } else if (tailIsPct3D(idx)) { + pad++; + } + } + + const groups = Math.floor(effectiveLen / 4); + const bytes = groups * 3 - (pad || 0); + return bytes > 0 ? bytes : 0; + } + + return Buffer.byteLength(body, 'utf8'); +} diff --git a/server/api/node_modules/axios/lib/helpers/formDataToJSON.js b/server/api/node_modules/axios/lib/helpers/formDataToJSON.js new file mode 100644 index 0000000..bc36d65 --- /dev/null +++ b/server/api/node_modules/axios/lib/helpers/formDataToJSON.js @@ -0,0 +1,97 @@ +'use strict'; + +import utils from '../utils.js'; + +/** + * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z'] + * + * @param {string} name - The name of the property to get. + * + * @returns An array of strings. + */ +function parsePropPath(name) { + // foo[x][y][z] + // foo.x.y.z + // foo-x-y-z + // foo x y z + return utils.matchAll(/\w+|\[(\w*)]/g, name).map((match) => { + return match[0] === '[]' ? '' : match[1] || match[0]; + }); +} + +/** + * Convert an array to an object. + * + * @param {Array} arr - The array to convert to an object. + * + * @returns An object with the same keys and values as the array. + */ +function arrayToObject(arr) { + const obj = {}; + const keys = Object.keys(arr); + let i; + const len = keys.length; + let key; + for (i = 0; i < len; i++) { + key = keys[i]; + obj[key] = arr[key]; + } + return obj; +} + +/** + * It takes a FormData object and returns a JavaScript object + * + * @param {string} formData The FormData object to convert to JSON. + * + * @returns {Object | null} The converted object. + */ +function formDataToJSON(formData) { + function buildPath(path, value, target, index) { + let name = path[index++]; + + if (name === '__proto__') return true; + + const isNumericKey = Number.isFinite(+name); + const isLast = index >= path.length; + name = !name && utils.isArray(target) ? target.length : name; + + if (isLast) { + if (utils.hasOwnProp(target, name)) { + target[name] = utils.isArray(target[name]) + ? target[name].concat(value) + : [target[name], value]; + } else { + target[name] = value; + } + + return !isNumericKey; + } + + if (!target[name] || !utils.isObject(target[name])) { + target[name] = []; + } + + const result = buildPath(path, value, target[name], index); + + if (result && utils.isArray(target[name])) { + target[name] = arrayToObject(target[name]); + } + + return !isNumericKey; + } + + if (utils.isFormData(formData) && utils.isFunction(formData.entries)) { + const obj = {}; + + utils.forEachEntry(formData, (name, value) => { + buildPath(parsePropPath(name), value, obj, 0); + }); + + return obj; + } + + return null; +} + +export default formDataToJSON; diff --git a/server/api/node_modules/axios/lib/helpers/formDataToStream.js b/server/api/node_modules/axios/lib/helpers/formDataToStream.js new file mode 100644 index 0000000..7612791 --- /dev/null +++ b/server/api/node_modules/axios/lib/helpers/formDataToStream.js @@ -0,0 +1,119 @@ +import util from 'util'; +import { Readable } from 'stream'; +import utils from '../utils.js'; +import readBlob from './readBlob.js'; +import platform from '../platform/index.js'; + +const BOUNDARY_ALPHABET = platform.ALPHABET.ALPHA_DIGIT + '-_'; + +const textEncoder = typeof TextEncoder === 'function' ? new TextEncoder() : new util.TextEncoder(); + +const CRLF = '\r\n'; +const CRLF_BYTES = textEncoder.encode(CRLF); +const CRLF_BYTES_COUNT = 2; + +class FormDataPart { + constructor(name, value) { + const { escapeName } = this.constructor; + const isStringValue = utils.isString(value); + + let headers = `Content-Disposition: form-data; name="${escapeName(name)}"${ + !isStringValue && value.name ? `; filename="${escapeName(value.name)}"` : '' + }${CRLF}`; + + if (isStringValue) { + value = textEncoder.encode(String(value).replace(/\r?\n|\r\n?/g, CRLF)); + } else { + const safeType = String(value.type || 'application/octet-stream').replace(/[\r\n]/g, ''); + headers += `Content-Type: ${safeType}${CRLF}`; + } + + this.headers = textEncoder.encode(headers + CRLF); + + this.contentLength = isStringValue ? value.byteLength : value.size; + + this.size = this.headers.byteLength + this.contentLength + CRLF_BYTES_COUNT; + + this.name = name; + this.value = value; + } + + async *encode() { + yield this.headers; + + const { value } = this; + + if (utils.isTypedArray(value)) { + yield value; + } else { + yield* readBlob(value); + } + + yield CRLF_BYTES; + } + + static escapeName(name) { + return String(name).replace( + /[\r\n"]/g, + (match) => + ({ + '\r': '%0D', + '\n': '%0A', + '"': '%22', + })[match] + ); + } +} + +const formDataToStream = (form, headersHandler, options) => { + const { + tag = 'form-data-boundary', + size = 25, + boundary = tag + '-' + platform.generateString(size, BOUNDARY_ALPHABET), + } = options || {}; + + if (!utils.isFormData(form)) { + throw TypeError('FormData instance required'); + } + + if (boundary.length < 1 || boundary.length > 70) { + throw Error('boundary must be 10-70 characters long'); + } + + const boundaryBytes = textEncoder.encode('--' + boundary + CRLF); + const footerBytes = textEncoder.encode('--' + boundary + '--' + CRLF); + let contentLength = footerBytes.byteLength; + + const parts = Array.from(form.entries()).map(([name, value]) => { + const part = new FormDataPart(name, value); + contentLength += part.size; + return part; + }); + + contentLength += boundaryBytes.byteLength * parts.length; + + contentLength = utils.toFiniteNumber(contentLength); + + const computedHeaders = { + 'Content-Type': `multipart/form-data; boundary=${boundary}`, + }; + + if (Number.isFinite(contentLength)) { + computedHeaders['Content-Length'] = contentLength; + } + + headersHandler && headersHandler(computedHeaders); + + return Readable.from( + (async function* () { + for (const part of parts) { + yield boundaryBytes; + yield* part.encode(); + } + + yield footerBytes; + })() + ); +}; + +export default formDataToStream; diff --git a/server/api/node_modules/axios/lib/helpers/fromDataURI.js b/server/api/node_modules/axios/lib/helpers/fromDataURI.js new file mode 100644 index 0000000..989a417 --- /dev/null +++ b/server/api/node_modules/axios/lib/helpers/fromDataURI.js @@ -0,0 +1,53 @@ +'use strict'; + +import AxiosError from '../core/AxiosError.js'; +import parseProtocol from './parseProtocol.js'; +import platform from '../platform/index.js'; + +const DATA_URL_PATTERN = /^(?:([^;]+);)?(?:[^;]+;)?(base64|),([\s\S]*)$/; + +/** + * Parse data uri to a Buffer or Blob + * + * @param {String} uri + * @param {?Boolean} asBlob + * @param {?Object} options + * @param {?Function} options.Blob + * + * @returns {Buffer|Blob} + */ +export default function fromDataURI(uri, asBlob, options) { + const _Blob = (options && options.Blob) || platform.classes.Blob; + const protocol = parseProtocol(uri); + + if (asBlob === undefined && _Blob) { + asBlob = true; + } + + if (protocol === 'data') { + uri = protocol.length ? uri.slice(protocol.length + 1) : uri; + + const match = DATA_URL_PATTERN.exec(uri); + + if (!match) { + throw new AxiosError('Invalid URL', AxiosError.ERR_INVALID_URL); + } + + const mime = match[1]; + const isBase64 = match[2]; + const body = match[3]; + const buffer = Buffer.from(decodeURIComponent(body), isBase64 ? 'base64' : 'utf8'); + + if (asBlob) { + if (!_Blob) { + throw new AxiosError('Blob is not supported', AxiosError.ERR_NOT_SUPPORT); + } + + return new _Blob([buffer], { type: mime }); + } + + return buffer; + } + + throw new AxiosError('Unsupported protocol ' + protocol, AxiosError.ERR_NOT_SUPPORT); +} diff --git a/server/api/node_modules/axios/lib/helpers/isAbsoluteURL.js b/server/api/node_modules/axios/lib/helpers/isAbsoluteURL.js new file mode 100644 index 0000000..c461900 --- /dev/null +++ b/server/api/node_modules/axios/lib/helpers/isAbsoluteURL.js @@ -0,0 +1,19 @@ +'use strict'; + +/** + * Determines whether the specified URL is absolute + * + * @param {string} url The URL to test + * + * @returns {boolean} True if the specified URL is absolute, otherwise false + */ +export default function isAbsoluteURL(url) { + // A URL is considered absolute if it begins with "://" or "//" (protocol-relative URL). + // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed + // by any combination of letters, digits, plus, period, or hyphen. + if (typeof url !== 'string') { + return false; + } + + return /^([a-z][a-z\d+\-.]*:)?\/\//i.test(url); +} diff --git a/server/api/node_modules/axios/lib/helpers/isAxiosError.js b/server/api/node_modules/axios/lib/helpers/isAxiosError.js new file mode 100644 index 0000000..ffba610 --- /dev/null +++ b/server/api/node_modules/axios/lib/helpers/isAxiosError.js @@ -0,0 +1,14 @@ +'use strict'; + +import utils from '../utils.js'; + +/** + * Determines whether the payload is an error thrown by Axios + * + * @param {*} payload The value to test + * + * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false + */ +export default function isAxiosError(payload) { + return utils.isObject(payload) && payload.isAxiosError === true; +} diff --git a/server/api/node_modules/axios/lib/helpers/isURLSameOrigin.js b/server/api/node_modules/axios/lib/helpers/isURLSameOrigin.js new file mode 100644 index 0000000..66af274 --- /dev/null +++ b/server/api/node_modules/axios/lib/helpers/isURLSameOrigin.js @@ -0,0 +1,16 @@ +import platform from '../platform/index.js'; + +export default platform.hasStandardBrowserEnv + ? ((origin, isMSIE) => (url) => { + url = new URL(url, platform.origin); + + return ( + origin.protocol === url.protocol && + origin.host === url.host && + (isMSIE || origin.port === url.port) + ); + })( + new URL(platform.origin), + platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent) + ) + : () => true; diff --git a/server/api/node_modules/axios/lib/helpers/null.js b/server/api/node_modules/axios/lib/helpers/null.js new file mode 100644 index 0000000..b9f82c4 --- /dev/null +++ b/server/api/node_modules/axios/lib/helpers/null.js @@ -0,0 +1,2 @@ +// eslint-disable-next-line strict +export default null; diff --git a/server/api/node_modules/axios/lib/helpers/parseHeaders.js b/server/api/node_modules/axios/lib/helpers/parseHeaders.js new file mode 100644 index 0000000..fb0eba4 --- /dev/null +++ b/server/api/node_modules/axios/lib/helpers/parseHeaders.js @@ -0,0 +1,69 @@ +'use strict'; + +import utils from '../utils.js'; + +// RawAxiosHeaders whose duplicates are ignored by node +// c.f. https://nodejs.org/api/http.html#http_message_headers +const ignoreDuplicateOf = utils.toObjectSet([ + 'age', + 'authorization', + 'content-length', + 'content-type', + 'etag', + 'expires', + 'from', + 'host', + 'if-modified-since', + 'if-unmodified-since', + 'last-modified', + 'location', + 'max-forwards', + 'proxy-authorization', + 'referer', + 'retry-after', + 'user-agent', +]); + +/** + * Parse headers into an object + * + * ``` + * Date: Wed, 27 Aug 2014 08:58:49 GMT + * Content-Type: application/json + * Connection: keep-alive + * Transfer-Encoding: chunked + * ``` + * + * @param {String} rawHeaders Headers needing to be parsed + * + * @returns {Object} Headers parsed into an object + */ +export default (rawHeaders) => { + const parsed = {}; + let key; + let val; + let i; + + rawHeaders && + rawHeaders.split('\n').forEach(function parser(line) { + i = line.indexOf(':'); + key = line.substring(0, i).trim().toLowerCase(); + val = line.substring(i + 1).trim(); + + if (!key || (parsed[key] && ignoreDuplicateOf[key])) { + return; + } + + if (key === 'set-cookie') { + if (parsed[key]) { + parsed[key].push(val); + } else { + parsed[key] = [val]; + } + } else { + parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val; + } + }); + + return parsed; +}; diff --git a/server/api/node_modules/axios/lib/helpers/parseProtocol.js b/server/api/node_modules/axios/lib/helpers/parseProtocol.js new file mode 100644 index 0000000..1ad6658 --- /dev/null +++ b/server/api/node_modules/axios/lib/helpers/parseProtocol.js @@ -0,0 +1,6 @@ +'use strict'; + +export default function parseProtocol(url) { + const match = /^([-+\w]{1,25})(:?\/\/|:)/.exec(url); + return (match && match[1]) || ''; +} diff --git a/server/api/node_modules/axios/lib/helpers/progressEventReducer.js b/server/api/node_modules/axios/lib/helpers/progressEventReducer.js new file mode 100644 index 0000000..85f109b --- /dev/null +++ b/server/api/node_modules/axios/lib/helpers/progressEventReducer.js @@ -0,0 +1,51 @@ +import speedometer from './speedometer.js'; +import throttle from './throttle.js'; +import utils from '../utils.js'; + +export const progressEventReducer = (listener, isDownloadStream, freq = 3) => { + let bytesNotified = 0; + const _speedometer = speedometer(50, 250); + + return throttle((e) => { + const rawLoaded = e.loaded; + const total = e.lengthComputable ? e.total : undefined; + const loaded = total != null ? Math.min(rawLoaded, total) : rawLoaded; + const progressBytes = Math.max(0, loaded - bytesNotified); + const rate = _speedometer(progressBytes); + + bytesNotified = Math.max(bytesNotified, loaded); + + const data = { + loaded, + total, + progress: total ? loaded / total : undefined, + bytes: progressBytes, + rate: rate ? rate : undefined, + estimated: rate && total ? (total - loaded) / rate : undefined, + event: e, + lengthComputable: total != null, + [isDownloadStream ? 'download' : 'upload']: true, + }; + + listener(data); + }, freq); +}; + +export const progressEventDecorator = (total, throttled) => { + const lengthComputable = total != null; + + return [ + (loaded) => + throttled[0]({ + lengthComputable, + total, + loaded, + }), + throttled[1], + ]; +}; + +export const asyncDecorator = + (fn) => + (...args) => + utils.asap(() => fn(...args)); diff --git a/server/api/node_modules/axios/lib/helpers/readBlob.js b/server/api/node_modules/axios/lib/helpers/readBlob.js new file mode 100644 index 0000000..87d0ea8 --- /dev/null +++ b/server/api/node_modules/axios/lib/helpers/readBlob.js @@ -0,0 +1,15 @@ +const { asyncIterator } = Symbol; + +const readBlob = async function* (blob) { + if (blob.stream) { + yield* blob.stream(); + } else if (blob.arrayBuffer) { + yield await blob.arrayBuffer(); + } else if (blob[asyncIterator]) { + yield* blob[asyncIterator](); + } else { + yield blob; + } +}; + +export default readBlob; diff --git a/server/api/node_modules/axios/lib/helpers/resolveConfig.js b/server/api/node_modules/axios/lib/helpers/resolveConfig.js new file mode 100644 index 0000000..2461067 --- /dev/null +++ b/server/api/node_modules/axios/lib/helpers/resolveConfig.js @@ -0,0 +1,78 @@ +import platform from '../platform/index.js'; +import utils from '../utils.js'; +import isURLSameOrigin from './isURLSameOrigin.js'; +import cookies from './cookies.js'; +import buildFullPath from '../core/buildFullPath.js'; +import mergeConfig from '../core/mergeConfig.js'; +import AxiosHeaders from '../core/AxiosHeaders.js'; +import buildURL from './buildURL.js'; + +export default (config) => { + const newConfig = mergeConfig({}, config); + + let { data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth } = newConfig; + + newConfig.headers = headers = AxiosHeaders.from(headers); + + newConfig.url = buildURL( + buildFullPath(newConfig.baseURL, newConfig.url, newConfig.allowAbsoluteUrls), + config.params, + config.paramsSerializer + ); + + // HTTP basic authentication + if (auth) { + headers.set( + 'Authorization', + 'Basic ' + + btoa( + (auth.username || '') + + ':' + + (auth.password ? unescape(encodeURIComponent(auth.password)) : '') + ) + ); + } + + if (utils.isFormData(data)) { + if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) { + headers.setContentType(undefined); // browser handles it + } else if (utils.isFunction(data.getHeaders)) { + // Node.js FormData (like form-data package) + const formHeaders = data.getHeaders(); + // Only set safe headers to avoid overwriting security headers + const allowedHeaders = ['content-type', 'content-length']; + Object.entries(formHeaders).forEach(([key, val]) => { + if (allowedHeaders.includes(key.toLowerCase())) { + headers.set(key, val); + } + }); + } + } + + // Add xsrf header + // This is only done if running in a standard browser environment. + // Specifically not if we're in a web worker, or react-native. + + if (platform.hasStandardBrowserEnv) { + if (utils.isFunction(withXSRFToken)) { + withXSRFToken = withXSRFToken(newConfig); + } + + // Strict boolean check — prevents proto-pollution gadgets (e.g. Object.prototype.withXSRFToken = 1) + // and misconfigurations (e.g. "false") from short-circuiting the same-origin check and leaking + // the XSRF token cross-origin. See GHSA-xx6v-rp6x-q39c. + const shouldSendXSRF = + withXSRFToken === true || + (withXSRFToken == null && isURLSameOrigin(newConfig.url)); + + if (shouldSendXSRF) { + const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName); + + if (xsrfValue) { + headers.set(xsrfHeaderName, xsrfValue); + } + } + } + + return newConfig; +}; diff --git a/server/api/node_modules/axios/lib/helpers/shouldBypassProxy.js b/server/api/node_modules/axios/lib/helpers/shouldBypassProxy.js new file mode 100644 index 0000000..95a85e1 --- /dev/null +++ b/server/api/node_modules/axios/lib/helpers/shouldBypassProxy.js @@ -0,0 +1,153 @@ +const LOOPBACK_HOSTNAMES = new Set(['localhost']); + +const isIPv4Loopback = (host) => { + const parts = host.split('.'); + if (parts.length !== 4) return false; + if (parts[0] !== '127') return false; + return parts.every((p) => /^\d+$/.test(p) && Number(p) >= 0 && Number(p) <= 255); +}; + +const isIPv6Loopback = (host) => { + // Collapse all-zero groups: any form of ::1 / 0:0:...:0:1 + // First, strip any leading "::" by normalising with Set lookup of common forms, + // then fall back to structural check. + if (host === '::1') return true; + + // Check IPv4-mapped IPv6 loopback: ::ffff: or ::ffff: + // Node's URL parser normalises ::ffff:127.0.0.1 → ::ffff:7f00:1 + const v4MappedDotted = host.match(/^::ffff:(\d+\.\d+\.\d+\.\d+)$/i); + if (v4MappedDotted) return isIPv4Loopback(v4MappedDotted[1]); + + const v4MappedHex = host.match(/^::ffff:([0-9a-f]{1,4}):([0-9a-f]{1,4})$/i); + if (v4MappedHex) { + const high = parseInt(v4MappedHex[1], 16); + // High 16 bits must start with 127 (0x7f) — i.e. 0x7f00..0x7fff + return high >= 0x7f00 && high <= 0x7fff; + } + + // Full-form ::1 variants: any number of zero groups followed by trailing 1 + // e.g. 0:0:0:0:0:0:0:1, 0000:...:0001 + const groups = host.split(':'); + if (groups.length === 8) { + for (let i = 0; i < 7; i++) { + if (!/^0+$/.test(groups[i])) return false; + } + return /^0*1$/.test(groups[7]); + } + + return false; +}; + +const isLoopback = (host) => { + if (!host) return false; + if (LOOPBACK_HOSTNAMES.has(host)) return true; + if (isIPv4Loopback(host)) return true; + return isIPv6Loopback(host); +}; + +const DEFAULT_PORTS = { + http: 80, + https: 443, + ws: 80, + wss: 443, + ftp: 21, +}; + +const parseNoProxyEntry = (entry) => { + let entryHost = entry; + let entryPort = 0; + + if (entryHost.charAt(0) === '[') { + const bracketIndex = entryHost.indexOf(']'); + + if (bracketIndex !== -1) { + const host = entryHost.slice(1, bracketIndex); + const rest = entryHost.slice(bracketIndex + 1); + + if (rest.charAt(0) === ':' && /^\d+$/.test(rest.slice(1))) { + entryPort = Number.parseInt(rest.slice(1), 10); + } + + return [host, entryPort]; + } + } + + const firstColon = entryHost.indexOf(':'); + const lastColon = entryHost.lastIndexOf(':'); + + if ( + firstColon !== -1 && + firstColon === lastColon && + /^\d+$/.test(entryHost.slice(lastColon + 1)) + ) { + entryPort = Number.parseInt(entryHost.slice(lastColon + 1), 10); + entryHost = entryHost.slice(0, lastColon); + } + + return [entryHost, entryPort]; +}; + +const normalizeNoProxyHost = (hostname) => { + if (!hostname) { + return hostname; + } + + if (hostname.charAt(0) === '[' && hostname.charAt(hostname.length - 1) === ']') { + hostname = hostname.slice(1, -1); + } + + return hostname.replace(/\.+$/, ''); +}; + +export default function shouldBypassProxy(location) { + let parsed; + + try { + parsed = new URL(location); + } catch (_err) { + return false; + } + + const noProxy = (process.env.no_proxy || process.env.NO_PROXY || '').toLowerCase(); + + if (!noProxy) { + return false; + } + + if (noProxy === '*') { + return true; + } + + const port = + Number.parseInt(parsed.port, 10) || DEFAULT_PORTS[parsed.protocol.split(':', 1)[0]] || 0; + + const hostname = normalizeNoProxyHost(parsed.hostname.toLowerCase()); + + return noProxy.split(/[\s,]+/).some((entry) => { + if (!entry) { + return false; + } + + let [entryHost, entryPort] = parseNoProxyEntry(entry); + + entryHost = normalizeNoProxyHost(entryHost); + + if (!entryHost) { + return false; + } + + if (entryPort && entryPort !== port) { + return false; + } + + if (entryHost.charAt(0) === '*') { + entryHost = entryHost.slice(1); + } + + if (entryHost.charAt(0) === '.') { + return hostname.endsWith(entryHost); + } + + return hostname === entryHost || (isLoopback(hostname) && isLoopback(entryHost)); + }); +} diff --git a/server/api/node_modules/axios/lib/helpers/speedometer.js b/server/api/node_modules/axios/lib/helpers/speedometer.js new file mode 100644 index 0000000..566a1ff --- /dev/null +++ b/server/api/node_modules/axios/lib/helpers/speedometer.js @@ -0,0 +1,55 @@ +'use strict'; + +/** + * Calculate data maxRate + * @param {Number} [samplesCount= 10] + * @param {Number} [min= 1000] + * @returns {Function} + */ +function speedometer(samplesCount, min) { + samplesCount = samplesCount || 10; + const bytes = new Array(samplesCount); + const timestamps = new Array(samplesCount); + let head = 0; + let tail = 0; + let firstSampleTS; + + min = min !== undefined ? min : 1000; + + return function push(chunkLength) { + const now = Date.now(); + + const startedAt = timestamps[tail]; + + if (!firstSampleTS) { + firstSampleTS = now; + } + + bytes[head] = chunkLength; + timestamps[head] = now; + + let i = tail; + let bytesCount = 0; + + while (i !== head) { + bytesCount += bytes[i++]; + i = i % samplesCount; + } + + head = (head + 1) % samplesCount; + + if (head === tail) { + tail = (tail + 1) % samplesCount; + } + + if (now - firstSampleTS < min) { + return; + } + + const passed = startedAt && now - startedAt; + + return passed ? Math.round((bytesCount * 1000) / passed) : undefined; + }; +} + +export default speedometer; diff --git a/server/api/node_modules/axios/lib/helpers/spread.js b/server/api/node_modules/axios/lib/helpers/spread.js new file mode 100644 index 0000000..2e72fc8 --- /dev/null +++ b/server/api/node_modules/axios/lib/helpers/spread.js @@ -0,0 +1,28 @@ +'use strict'; + +/** + * Syntactic sugar for invoking a function and expanding an array for arguments. + * + * Common use case would be to use `Function.prototype.apply`. + * + * ```js + * function f(x, y, z) {} + * const args = [1, 2, 3]; + * f.apply(null, args); + * ``` + * + * With `spread` this example can be re-written. + * + * ```js + * spread(function(x, y, z) {})([1, 2, 3]); + * ``` + * + * @param {Function} callback + * + * @returns {Function} + */ +export default function spread(callback) { + return function wrap(arr) { + return callback.apply(null, arr); + }; +} diff --git a/server/api/node_modules/axios/lib/helpers/throttle.js b/server/api/node_modules/axios/lib/helpers/throttle.js new file mode 100644 index 0000000..fbef472 --- /dev/null +++ b/server/api/node_modules/axios/lib/helpers/throttle.js @@ -0,0 +1,44 @@ +/** + * Throttle decorator + * @param {Function} fn + * @param {Number} freq + * @return {Function} + */ +function throttle(fn, freq) { + let timestamp = 0; + let threshold = 1000 / freq; + let lastArgs; + let timer; + + const invoke = (args, now = Date.now()) => { + timestamp = now; + lastArgs = null; + if (timer) { + clearTimeout(timer); + timer = null; + } + fn(...args); + }; + + const throttled = (...args) => { + const now = Date.now(); + const passed = now - timestamp; + if (passed >= threshold) { + invoke(args, now); + } else { + lastArgs = args; + if (!timer) { + timer = setTimeout(() => { + timer = null; + invoke(lastArgs); + }, threshold - passed); + } + } + }; + + const flush = () => lastArgs && invoke(lastArgs); + + return [throttled, flush]; +} + +export default throttle; diff --git a/server/api/node_modules/axios/lib/helpers/toFormData.js b/server/api/node_modules/axios/lib/helpers/toFormData.js new file mode 100644 index 0000000..a1c7cf9 --- /dev/null +++ b/server/api/node_modules/axios/lib/helpers/toFormData.js @@ -0,0 +1,249 @@ +'use strict'; + +import utils from '../utils.js'; +import AxiosError from '../core/AxiosError.js'; +// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored +import PlatformFormData from '../platform/node/classes/FormData.js'; + +/** + * Determines if the given thing is a array or js object. + * + * @param {string} thing - The object or array to be visited. + * + * @returns {boolean} + */ +function isVisitable(thing) { + return utils.isPlainObject(thing) || utils.isArray(thing); +} + +/** + * It removes the brackets from the end of a string + * + * @param {string} key - The key of the parameter. + * + * @returns {string} the key without the brackets. + */ +function removeBrackets(key) { + return utils.endsWith(key, '[]') ? key.slice(0, -2) : key; +} + +/** + * It takes a path, a key, and a boolean, and returns a string + * + * @param {string} path - The path to the current key. + * @param {string} key - The key of the current object being iterated over. + * @param {string} dots - If true, the key will be rendered with dots instead of brackets. + * + * @returns {string} The path to the current key. + */ +function renderKey(path, key, dots) { + if (!path) return key; + return path + .concat(key) + .map(function each(token, i) { + // eslint-disable-next-line no-param-reassign + token = removeBrackets(token); + return !dots && i ? '[' + token + ']' : token; + }) + .join(dots ? '.' : ''); +} + +/** + * If the array is an array and none of its elements are visitable, then it's a flat array. + * + * @param {Array} arr - The array to check + * + * @returns {boolean} + */ +function isFlatArray(arr) { + return utils.isArray(arr) && !arr.some(isVisitable); +} + +const predicates = utils.toFlatObject(utils, {}, null, function filter(prop) { + return /^is[A-Z]/.test(prop); +}); + +/** + * Convert a data object to FormData + * + * @param {Object} obj + * @param {?Object} [formData] + * @param {?Object} [options] + * @param {Function} [options.visitor] + * @param {Boolean} [options.metaTokens = true] + * @param {Boolean} [options.dots = false] + * @param {?Boolean} [options.indexes = false] + * + * @returns {Object} + **/ + +/** + * It converts an object into a FormData object + * + * @param {Object} obj - The object to convert to form data. + * @param {string} formData - The FormData object to append to. + * @param {Object} options + * + * @returns + */ +function toFormData(obj, formData, options) { + if (!utils.isObject(obj)) { + throw new TypeError('target must be an object'); + } + + // eslint-disable-next-line no-param-reassign + formData = formData || new (PlatformFormData || FormData)(); + + // eslint-disable-next-line no-param-reassign + options = utils.toFlatObject( + options, + { + metaTokens: true, + dots: false, + indexes: false, + }, + false, + function defined(option, source) { + // eslint-disable-next-line no-eq-null,eqeqeq + return !utils.isUndefined(source[option]); + } + ); + + const metaTokens = options.metaTokens; + // eslint-disable-next-line no-use-before-define + const visitor = options.visitor || defaultVisitor; + const dots = options.dots; + const indexes = options.indexes; + const _Blob = options.Blob || (typeof Blob !== 'undefined' && Blob); + const maxDepth = options.maxDepth === undefined ? 100 : options.maxDepth; + const useBlob = _Blob && utils.isSpecCompliantForm(formData); + + if (!utils.isFunction(visitor)) { + throw new TypeError('visitor must be a function'); + } + + function convertValue(value) { + if (value === null) return ''; + + if (utils.isDate(value)) { + return value.toISOString(); + } + + if (utils.isBoolean(value)) { + return value.toString(); + } + + if (!useBlob && utils.isBlob(value)) { + throw new AxiosError('Blob is not supported. Use a Buffer instead.'); + } + + if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) { + return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value); + } + + return value; + } + + /** + * Default visitor. + * + * @param {*} value + * @param {String|Number} key + * @param {Array} path + * @this {FormData} + * + * @returns {boolean} return true to visit the each prop of the value recursively + */ + function defaultVisitor(value, key, path) { + let arr = value; + + if (utils.isReactNative(formData) && utils.isReactNativeBlob(value)) { + formData.append(renderKey(path, key, dots), convertValue(value)); + return false; + } + + if (value && !path && typeof value === 'object') { + if (utils.endsWith(key, '{}')) { + // eslint-disable-next-line no-param-reassign + key = metaTokens ? key : key.slice(0, -2); + // eslint-disable-next-line no-param-reassign + value = JSON.stringify(value); + } else if ( + (utils.isArray(value) && isFlatArray(value)) || + ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))) + ) { + // eslint-disable-next-line no-param-reassign + key = removeBrackets(key); + + arr.forEach(function each(el, index) { + !(utils.isUndefined(el) || el === null) && + formData.append( + // eslint-disable-next-line no-nested-ternary + indexes === true + ? renderKey([key], index, dots) + : indexes === null + ? key + : key + '[]', + convertValue(el) + ); + }); + return false; + } + } + + if (isVisitable(value)) { + return true; + } + + formData.append(renderKey(path, key, dots), convertValue(value)); + + return false; + } + + const stack = []; + + const exposedHelpers = Object.assign(predicates, { + defaultVisitor, + convertValue, + isVisitable, + }); + + function build(value, path, depth = 0) { + if (utils.isUndefined(value)) return; + + if (depth > maxDepth) { + throw new AxiosError( + 'Object is too deeply nested (' + depth + ' levels). Max depth: ' + maxDepth, + AxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED + ); + } + + if (stack.indexOf(value) !== -1) { + throw Error('Circular reference detected in ' + path.join('.')); + } + + stack.push(value); + + utils.forEach(value, function each(el, key) { + const result = + !(utils.isUndefined(el) || el === null) && + visitor.call(formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers); + + if (result === true) { + build(el, path ? path.concat(key) : [key], depth + 1); + } + }); + + stack.pop(); + } + + if (!utils.isObject(obj)) { + throw new TypeError('data must be an object'); + } + + build(obj); + + return formData; +} + +export default toFormData; diff --git a/server/api/node_modules/axios/lib/helpers/toURLEncodedForm.js b/server/api/node_modules/axios/lib/helpers/toURLEncodedForm.js new file mode 100644 index 0000000..749e13a --- /dev/null +++ b/server/api/node_modules/axios/lib/helpers/toURLEncodedForm.js @@ -0,0 +1,19 @@ +'use strict'; + +import utils from '../utils.js'; +import toFormData from './toFormData.js'; +import platform from '../platform/index.js'; + +export default function toURLEncodedForm(data, options) { + return toFormData(data, new platform.classes.URLSearchParams(), { + visitor: function (value, key, path, helpers) { + if (platform.isNode && utils.isBuffer(value)) { + this.append(key, value.toString('base64')); + return false; + } + + return helpers.defaultVisitor.apply(this, arguments); + }, + ...options, + }); +} diff --git a/server/api/node_modules/axios/lib/helpers/trackStream.js b/server/api/node_modules/axios/lib/helpers/trackStream.js new file mode 100644 index 0000000..c75eace --- /dev/null +++ b/server/api/node_modules/axios/lib/helpers/trackStream.js @@ -0,0 +1,89 @@ +export const streamChunk = function* (chunk, chunkSize) { + let len = chunk.byteLength; + + if (!chunkSize || len < chunkSize) { + yield chunk; + return; + } + + let pos = 0; + let end; + + while (pos < len) { + end = pos + chunkSize; + yield chunk.slice(pos, end); + pos = end; + } +}; + +export const readBytes = async function* (iterable, chunkSize) { + for await (const chunk of readStream(iterable)) { + yield* streamChunk(chunk, chunkSize); + } +}; + +const readStream = async function* (stream) { + if (stream[Symbol.asyncIterator]) { + yield* stream; + return; + } + + const reader = stream.getReader(); + try { + for (;;) { + const { done, value } = await reader.read(); + if (done) { + break; + } + yield value; + } + } finally { + await reader.cancel(); + } +}; + +export const trackStream = (stream, chunkSize, onProgress, onFinish) => { + const iterator = readBytes(stream, chunkSize); + + let bytes = 0; + let done; + let _onFinish = (e) => { + if (!done) { + done = true; + onFinish && onFinish(e); + } + }; + + return new ReadableStream( + { + async pull(controller) { + try { + const { done, value } = await iterator.next(); + + if (done) { + _onFinish(); + controller.close(); + return; + } + + let len = value.byteLength; + if (onProgress) { + let loadedBytes = (bytes += len); + onProgress(loadedBytes); + } + controller.enqueue(new Uint8Array(value)); + } catch (err) { + _onFinish(err); + throw err; + } + }, + cancel(reason) { + _onFinish(reason); + return iterator.return(); + }, + }, + { + highWaterMark: 2, + } + ); +}; diff --git a/server/api/node_modules/axios/lib/helpers/validator.js b/server/api/node_modules/axios/lib/helpers/validator.js new file mode 100644 index 0000000..22798aa --- /dev/null +++ b/server/api/node_modules/axios/lib/helpers/validator.js @@ -0,0 +1,110 @@ +'use strict'; + +import { VERSION } from '../env/data.js'; +import AxiosError from '../core/AxiosError.js'; + +const validators = {}; + +// eslint-disable-next-line func-names +['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => { + validators[type] = function validator(thing) { + return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type; + }; +}); + +const deprecatedWarnings = {}; + +/** + * Transitional option validator + * + * @param {function|boolean?} validator - set to false if the transitional option has been removed + * @param {string?} version - deprecated version / removed since version + * @param {string?} message - some message with additional info + * + * @returns {function} + */ +validators.transitional = function transitional(validator, version, message) { + function formatMessage(opt, desc) { + return ( + '[Axios v' + + VERSION + + "] Transitional option '" + + opt + + "'" + + desc + + (message ? '. ' + message : '') + ); + } + + // eslint-disable-next-line func-names + return (value, opt, opts) => { + if (validator === false) { + throw new AxiosError( + formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')), + AxiosError.ERR_DEPRECATED + ); + } + + if (version && !deprecatedWarnings[opt]) { + deprecatedWarnings[opt] = true; + // eslint-disable-next-line no-console + console.warn( + formatMessage( + opt, + ' has been deprecated since v' + version + ' and will be removed in the near future' + ) + ); + } + + return validator ? validator(value, opt, opts) : true; + }; +}; + +validators.spelling = function spelling(correctSpelling) { + return (value, opt) => { + // eslint-disable-next-line no-console + console.warn(`${opt} is likely a misspelling of ${correctSpelling}`); + return true; + }; +}; + +/** + * Assert object's properties type + * + * @param {object} options + * @param {object} schema + * @param {boolean?} allowUnknown + * + * @returns {object} + */ + +function assertOptions(options, schema, allowUnknown) { + if (typeof options !== 'object') { + throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE); + } + const keys = Object.keys(options); + let i = keys.length; + while (i-- > 0) { + const opt = keys[i]; + const validator = schema[opt]; + if (validator) { + const value = options[opt]; + const result = value === undefined || validator(value, opt, options); + if (result !== true) { + throw new AxiosError( + 'option ' + opt + ' must be ' + result, + AxiosError.ERR_BAD_OPTION_VALUE + ); + } + continue; + } + if (allowUnknown !== true) { + throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION); + } + } +} + +export default { + assertOptions, + validators, +}; diff --git a/server/api/node_modules/axios/lib/platform/browser/classes/Blob.js b/server/api/node_modules/axios/lib/platform/browser/classes/Blob.js new file mode 100644 index 0000000..9ec4af8 --- /dev/null +++ b/server/api/node_modules/axios/lib/platform/browser/classes/Blob.js @@ -0,0 +1,3 @@ +'use strict'; + +export default typeof Blob !== 'undefined' ? Blob : null; diff --git a/server/api/node_modules/axios/lib/platform/browser/classes/FormData.js b/server/api/node_modules/axios/lib/platform/browser/classes/FormData.js new file mode 100644 index 0000000..f36d31b --- /dev/null +++ b/server/api/node_modules/axios/lib/platform/browser/classes/FormData.js @@ -0,0 +1,3 @@ +'use strict'; + +export default typeof FormData !== 'undefined' ? FormData : null; diff --git a/server/api/node_modules/axios/lib/platform/browser/classes/URLSearchParams.js b/server/api/node_modules/axios/lib/platform/browser/classes/URLSearchParams.js new file mode 100644 index 0000000..b7dae95 --- /dev/null +++ b/server/api/node_modules/axios/lib/platform/browser/classes/URLSearchParams.js @@ -0,0 +1,4 @@ +'use strict'; + +import AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js'; +export default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams; diff --git a/server/api/node_modules/axios/lib/platform/browser/index.js b/server/api/node_modules/axios/lib/platform/browser/index.js new file mode 100644 index 0000000..8e5f99c --- /dev/null +++ b/server/api/node_modules/axios/lib/platform/browser/index.js @@ -0,0 +1,13 @@ +import URLSearchParams from './classes/URLSearchParams.js'; +import FormData from './classes/FormData.js'; +import Blob from './classes/Blob.js'; + +export default { + isBrowser: true, + classes: { + URLSearchParams, + FormData, + Blob, + }, + protocols: ['http', 'https', 'file', 'blob', 'url', 'data'], +}; diff --git a/server/api/node_modules/axios/lib/platform/common/utils.js b/server/api/node_modules/axios/lib/platform/common/utils.js new file mode 100644 index 0000000..e4dfe46 --- /dev/null +++ b/server/api/node_modules/axios/lib/platform/common/utils.js @@ -0,0 +1,52 @@ +const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined'; + +const _navigator = (typeof navigator === 'object' && navigator) || undefined; + +/** + * Determine if we're running in a standard browser environment + * + * This allows axios to run in a web worker, and react-native. + * Both environments support XMLHttpRequest, but not fully standard globals. + * + * web workers: + * typeof window -> undefined + * typeof document -> undefined + * + * react-native: + * navigator.product -> 'ReactNative' + * nativescript + * navigator.product -> 'NativeScript' or 'NS' + * + * @returns {boolean} + */ +const hasStandardBrowserEnv = + hasBrowserEnv && + (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0); + +/** + * Determine if we're running in a standard browser webWorker environment + * + * Although the `isStandardBrowserEnv` method indicates that + * `allows axios to run in a web worker`, the WebWorker will still be + * filtered out due to its judgment standard + * `typeof window !== 'undefined' && typeof document !== 'undefined'`. + * This leads to a problem when axios post `FormData` in webWorker + */ +const hasStandardBrowserWebWorkerEnv = (() => { + return ( + typeof WorkerGlobalScope !== 'undefined' && + // eslint-disable-next-line no-undef + self instanceof WorkerGlobalScope && + typeof self.importScripts === 'function' + ); +})(); + +const origin = (hasBrowserEnv && window.location.href) || 'http://localhost'; + +export { + hasBrowserEnv, + hasStandardBrowserWebWorkerEnv, + hasStandardBrowserEnv, + _navigator as navigator, + origin, +}; diff --git a/server/api/node_modules/axios/lib/platform/index.js b/server/api/node_modules/axios/lib/platform/index.js new file mode 100644 index 0000000..e1094ab --- /dev/null +++ b/server/api/node_modules/axios/lib/platform/index.js @@ -0,0 +1,7 @@ +import platform from './node/index.js'; +import * as utils from './common/utils.js'; + +export default { + ...utils, + ...platform, +}; diff --git a/server/api/node_modules/axios/lib/platform/node/classes/FormData.js b/server/api/node_modules/axios/lib/platform/node/classes/FormData.js new file mode 100644 index 0000000..b07f947 --- /dev/null +++ b/server/api/node_modules/axios/lib/platform/node/classes/FormData.js @@ -0,0 +1,3 @@ +import FormData from 'form-data'; + +export default FormData; diff --git a/server/api/node_modules/axios/lib/platform/node/classes/URLSearchParams.js b/server/api/node_modules/axios/lib/platform/node/classes/URLSearchParams.js new file mode 100644 index 0000000..fba5842 --- /dev/null +++ b/server/api/node_modules/axios/lib/platform/node/classes/URLSearchParams.js @@ -0,0 +1,4 @@ +'use strict'; + +import url from 'url'; +export default url.URLSearchParams; diff --git a/server/api/node_modules/axios/lib/platform/node/index.js b/server/api/node_modules/axios/lib/platform/node/index.js new file mode 100644 index 0000000..9979a71 --- /dev/null +++ b/server/api/node_modules/axios/lib/platform/node/index.js @@ -0,0 +1,37 @@ +import crypto from 'crypto'; +import URLSearchParams from './classes/URLSearchParams.js'; +import FormData from './classes/FormData.js'; + +const ALPHA = 'abcdefghijklmnopqrstuvwxyz'; + +const DIGIT = '0123456789'; + +const ALPHABET = { + DIGIT, + ALPHA, + ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT, +}; + +const generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => { + let str = ''; + const { length } = alphabet; + const randomValues = new Uint32Array(size); + crypto.randomFillSync(randomValues); + for (let i = 0; i < size; i++) { + str += alphabet[randomValues[i] % length]; + } + + return str; +}; + +export default { + isNode: true, + classes: { + URLSearchParams, + FormData, + Blob: (typeof Blob !== 'undefined' && Blob) || null, + }, + ALPHABET, + generateString, + protocols: ['http', 'https', 'file', 'data'], +}; diff --git a/server/api/node_modules/axios/lib/utils.js b/server/api/node_modules/axios/lib/utils.js new file mode 100644 index 0000000..6bcd672 --- /dev/null +++ b/server/api/node_modules/axios/lib/utils.js @@ -0,0 +1,919 @@ +'use strict'; + +import bind from './helpers/bind.js'; + +// utils is a library of generic helper functions non-specific to axios + +const { toString } = Object.prototype; +const { getPrototypeOf } = Object; +const { iterator, toStringTag } = Symbol; + +const kindOf = ((cache) => (thing) => { + const str = toString.call(thing); + return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase()); +})(Object.create(null)); + +const kindOfTest = (type) => { + type = type.toLowerCase(); + return (thing) => kindOf(thing) === type; +}; + +const typeOfTest = (type) => (thing) => typeof thing === type; + +/** + * Determine if a value is a non-null object + * + * @param {Object} val The value to test + * + * @returns {boolean} True if value is an Array, otherwise false + */ +const { isArray } = Array; + +/** + * Determine if a value is undefined + * + * @param {*} val The value to test + * + * @returns {boolean} True if the value is undefined, otherwise false + */ +const isUndefined = typeOfTest('undefined'); + +/** + * Determine if a value is a Buffer + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a Buffer, otherwise false + */ +function isBuffer(val) { + return ( + val !== null && + !isUndefined(val) && + val.constructor !== null && + !isUndefined(val.constructor) && + isFunction(val.constructor.isBuffer) && + val.constructor.isBuffer(val) + ); +} + +/** + * Determine if a value is an ArrayBuffer + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is an ArrayBuffer, otherwise false + */ +const isArrayBuffer = kindOfTest('ArrayBuffer'); + +/** + * Determine if a value is a view on an ArrayBuffer + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false + */ +function isArrayBufferView(val) { + let result; + if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) { + result = ArrayBuffer.isView(val); + } else { + result = val && val.buffer && isArrayBuffer(val.buffer); + } + return result; +} + +/** + * Determine if a value is a String + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a String, otherwise false + */ +const isString = typeOfTest('string'); + +/** + * Determine if a value is a Function + * + * @param {*} val The value to test + * @returns {boolean} True if value is a Function, otherwise false + */ +const isFunction = typeOfTest('function'); + +/** + * Determine if a value is a Number + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a Number, otherwise false + */ +const isNumber = typeOfTest('number'); + +/** + * Determine if a value is an Object + * + * @param {*} thing The value to test + * + * @returns {boolean} True if value is an Object, otherwise false + */ +const isObject = (thing) => thing !== null && typeof thing === 'object'; + +/** + * Determine if a value is a Boolean + * + * @param {*} thing The value to test + * @returns {boolean} True if value is a Boolean, otherwise false + */ +const isBoolean = (thing) => thing === true || thing === false; + +/** + * Determine if a value is a plain Object + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a plain Object, otherwise false + */ +const isPlainObject = (val) => { + if (kindOf(val) !== 'object') { + return false; + } + + const prototype = getPrototypeOf(val); + return ( + (prototype === null || + prototype === Object.prototype || + Object.getPrototypeOf(prototype) === null) && + !(toStringTag in val) && + !(iterator in val) + ); +}; + +/** + * Determine if a value is an empty object (safely handles Buffers) + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is an empty object, otherwise false + */ +const isEmptyObject = (val) => { + // Early return for non-objects or Buffers to prevent RangeError + if (!isObject(val) || isBuffer(val)) { + return false; + } + + try { + return Object.keys(val).length === 0 && Object.getPrototypeOf(val) === Object.prototype; + } catch (e) { + // Fallback for any other objects that might cause RangeError with Object.keys() + return false; + } +}; + +/** + * Determine if a value is a Date + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a Date, otherwise false + */ +const isDate = kindOfTest('Date'); + +/** + * Determine if a value is a File + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a File, otherwise false + */ +const isFile = kindOfTest('File'); + +/** + * Determine if a value is a React Native Blob + * React Native "blob": an object with a `uri` attribute. Optionally, it can + * also have a `name` and `type` attribute to specify filename and content type + * + * @see https://github.com/facebook/react-native/blob/26684cf3adf4094eb6c405d345a75bf8c7c0bf88/Libraries/Network/FormData.js#L68-L71 + * + * @param {*} value The value to test + * + * @returns {boolean} True if value is a React Native Blob, otherwise false + */ +const isReactNativeBlob = (value) => { + return !!(value && typeof value.uri !== 'undefined'); +} + +/** + * Determine if environment is React Native + * ReactNative `FormData` has a non-standard `getParts()` method + * + * @param {*} formData The formData to test + * + * @returns {boolean} True if environment is React Native, otherwise false + */ +const isReactNative = (formData) => formData && typeof formData.getParts !== 'undefined'; + +/** + * Determine if a value is a Blob + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a Blob, otherwise false + */ +const isBlob = kindOfTest('Blob'); + +/** + * Determine if a value is a FileList + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a File, otherwise false + */ +const isFileList = kindOfTest('FileList'); + +/** + * Determine if a value is a Stream + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a Stream, otherwise false + */ +const isStream = (val) => isObject(val) && isFunction(val.pipe); + +/** + * Determine if a value is a FormData + * + * @param {*} thing The value to test + * + * @returns {boolean} True if value is an FormData, otherwise false + */ +function getGlobal() { + if (typeof globalThis !== 'undefined') return globalThis; + if (typeof self !== 'undefined') return self; + if (typeof window !== 'undefined') return window; + if (typeof global !== 'undefined') return global; + return {}; +} + +const G = getGlobal(); +const FormDataCtor = typeof G.FormData !== 'undefined' ? G.FormData : undefined; + +const isFormData = (thing) => { + if (!thing) return false; + if (FormDataCtor && thing instanceof FormDataCtor) return true; + // Reject plain objects inheriting directly from Object.prototype so prototype-pollution gadgets can't spoof FormData (GHSA-6chq-wfr3-2hj9). + const proto = getPrototypeOf(thing); + if (!proto || proto === Object.prototype) return false; + if (!isFunction(thing.append)) return false; + const kind = kindOf(thing); + return kind === 'formdata' || + // detect form-data instance + (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]'); +}; + +/** + * Determine if a value is a URLSearchParams object + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a URLSearchParams object, otherwise false + */ +const isURLSearchParams = kindOfTest('URLSearchParams'); + +const [isReadableStream, isRequest, isResponse, isHeaders] = [ + 'ReadableStream', + 'Request', + 'Response', + 'Headers', +].map(kindOfTest); + +/** + * Trim excess whitespace off the beginning and end of a string + * + * @param {String} str The String to trim + * + * @returns {String} The String freed of excess whitespace + */ +const trim = (str) => { + return str.trim ? str.trim() : str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ''); +}; +/** + * Iterate over an Array or an Object invoking a function for each item. + * + * If `obj` is an Array callback will be called passing + * the value, index, and complete array for each item. + * + * If 'obj' is an Object callback will be called passing + * the value, key, and complete object for each property. + * + * @param {Object|Array} obj The object to iterate + * @param {Function} fn The callback to invoke for each item + * + * @param {Object} [options] + * @param {Boolean} [options.allOwnKeys = false] + * @returns {any} + */ +function forEach(obj, fn, { allOwnKeys = false } = {}) { + // Don't bother if no value provided + if (obj === null || typeof obj === 'undefined') { + return; + } + + let i; + let l; + + // Force an array if not already something iterable + if (typeof obj !== 'object') { + /*eslint no-param-reassign:0*/ + obj = [obj]; + } + + if (isArray(obj)) { + // Iterate over array values + for (i = 0, l = obj.length; i < l; i++) { + fn.call(null, obj[i], i, obj); + } + } else { + // Buffer check + if (isBuffer(obj)) { + return; + } + + // Iterate over object keys + const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj); + const len = keys.length; + let key; + + for (i = 0; i < len; i++) { + key = keys[i]; + fn.call(null, obj[key], key, obj); + } + } +} + +/** + * Finds a key in an object, case-insensitive, returning the actual key name. + * Returns null if the object is a Buffer or if no match is found. + * + * @param {Object} obj - The object to search. + * @param {string} key - The key to find (case-insensitive). + * @returns {?string} The actual key name if found, otherwise null. + */ +function findKey(obj, key) { + if (isBuffer(obj)) { + return null; + } + + key = key.toLowerCase(); + const keys = Object.keys(obj); + let i = keys.length; + let _key; + while (i-- > 0) { + _key = keys[i]; + if (key === _key.toLowerCase()) { + return _key; + } + } + return null; +} + +const _global = (() => { + /*eslint no-undef:0*/ + if (typeof globalThis !== 'undefined') return globalThis; + return typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : global; +})(); + +const isContextDefined = (context) => !isUndefined(context) && context !== _global; + +/** + * Accepts varargs expecting each argument to be an object, then + * immutably merges the properties of each object and returns result. + * + * When multiple objects contain the same key the later object in + * the arguments list will take precedence. + * + * Example: + * + * ```js + * const result = merge({foo: 123}, {foo: 456}); + * console.log(result.foo); // outputs 456 + * ``` + * + * @param {Object} obj1 Object to merge + * + * @returns {Object} Result of all merge properties + */ +function merge(/* obj1, obj2, obj3, ... */) { + const { caseless, skipUndefined } = (isContextDefined(this) && this) || {}; + const result = {}; + const assignValue = (val, key) => { + // Skip dangerous property names to prevent prototype pollution + if (key === '__proto__' || key === 'constructor' || key === 'prototype') { + return; + } + + const targetKey = (caseless && findKey(result, key)) || key; + if (isPlainObject(result[targetKey]) && isPlainObject(val)) { + result[targetKey] = merge(result[targetKey], val); + } else if (isPlainObject(val)) { + result[targetKey] = merge({}, val); + } else if (isArray(val)) { + result[targetKey] = val.slice(); + } else if (!skipUndefined || !isUndefined(val)) { + result[targetKey] = val; + } + }; + + for (let i = 0, l = arguments.length; i < l; i++) { + arguments[i] && forEach(arguments[i], assignValue); + } + return result; +} + +/** + * Extends object a by mutably adding to it the properties of object b. + * + * @param {Object} a The object to be extended + * @param {Object} b The object to copy properties from + * @param {Object} thisArg The object to bind function to + * + * @param {Object} [options] + * @param {Boolean} [options.allOwnKeys] + * @returns {Object} The resulting value of object a + */ +const extend = (a, b, thisArg, { allOwnKeys } = {}) => { + forEach( + b, + (val, key) => { + if (thisArg && isFunction(val)) { + Object.defineProperty(a, key, { + value: bind(val, thisArg), + writable: true, + enumerable: true, + configurable: true, + }); + } else { + Object.defineProperty(a, key, { + value: val, + writable: true, + enumerable: true, + configurable: true, + }); + } + }, + { allOwnKeys } + ); + return a; +}; + +/** + * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM) + * + * @param {string} content with BOM + * + * @returns {string} content value without BOM + */ +const stripBOM = (content) => { + if (content.charCodeAt(0) === 0xfeff) { + content = content.slice(1); + } + return content; +}; + +/** + * Inherit the prototype methods from one constructor into another + * @param {function} constructor + * @param {function} superConstructor + * @param {object} [props] + * @param {object} [descriptors] + * + * @returns {void} + */ +const inherits = (constructor, superConstructor, props, descriptors) => { + constructor.prototype = Object.create(superConstructor.prototype, descriptors); + Object.defineProperty(constructor.prototype, 'constructor', { + value: constructor, + writable: true, + enumerable: false, + configurable: true, + }); + Object.defineProperty(constructor, 'super', { + value: superConstructor.prototype, + }); + props && Object.assign(constructor.prototype, props); +}; + +/** + * Resolve object with deep prototype chain to a flat object + * @param {Object} sourceObj source object + * @param {Object} [destObj] + * @param {Function|Boolean} [filter] + * @param {Function} [propFilter] + * + * @returns {Object} + */ +const toFlatObject = (sourceObj, destObj, filter, propFilter) => { + let props; + let i; + let prop; + const merged = {}; + + destObj = destObj || {}; + // eslint-disable-next-line no-eq-null,eqeqeq + if (sourceObj == null) return destObj; + + do { + props = Object.getOwnPropertyNames(sourceObj); + i = props.length; + while (i-- > 0) { + prop = props[i]; + if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) { + destObj[prop] = sourceObj[prop]; + merged[prop] = true; + } + } + sourceObj = filter !== false && getPrototypeOf(sourceObj); + } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype); + + return destObj; +}; + +/** + * Determines whether a string ends with the characters of a specified string + * + * @param {String} str + * @param {String} searchString + * @param {Number} [position= 0] + * + * @returns {boolean} + */ +const endsWith = (str, searchString, position) => { + str = String(str); + if (position === undefined || position > str.length) { + position = str.length; + } + position -= searchString.length; + const lastIndex = str.indexOf(searchString, position); + return lastIndex !== -1 && lastIndex === position; +}; + +/** + * Returns new array from array like object or null if failed + * + * @param {*} [thing] + * + * @returns {?Array} + */ +const toArray = (thing) => { + if (!thing) return null; + if (isArray(thing)) return thing; + let i = thing.length; + if (!isNumber(i)) return null; + const arr = new Array(i); + while (i-- > 0) { + arr[i] = thing[i]; + } + return arr; +}; + +/** + * Checking if the Uint8Array exists and if it does, it returns a function that checks if the + * thing passed in is an instance of Uint8Array + * + * @param {TypedArray} + * + * @returns {Array} + */ +// eslint-disable-next-line func-names +const isTypedArray = ((TypedArray) => { + // eslint-disable-next-line func-names + return (thing) => { + return TypedArray && thing instanceof TypedArray; + }; +})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array)); + +/** + * For each entry in the object, call the function with the key and value. + * + * @param {Object} obj - The object to iterate over. + * @param {Function} fn - The function to call for each entry. + * + * @returns {void} + */ +const forEachEntry = (obj, fn) => { + const generator = obj && obj[iterator]; + + const _iterator = generator.call(obj); + + let result; + + while ((result = _iterator.next()) && !result.done) { + const pair = result.value; + fn.call(obj, pair[0], pair[1]); + } +}; + +/** + * It takes a regular expression and a string, and returns an array of all the matches + * + * @param {string} regExp - The regular expression to match against. + * @param {string} str - The string to search. + * + * @returns {Array} + */ +const matchAll = (regExp, str) => { + let matches; + const arr = []; + + while ((matches = regExp.exec(str)) !== null) { + arr.push(matches); + } + + return arr; +}; + +/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */ +const isHTMLForm = kindOfTest('HTMLFormElement'); + +const toCamelCase = (str) => { + return str.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g, function replacer(m, p1, p2) { + return p1.toUpperCase() + p2; + }); +}; + +/* Creating a function that will check if an object has a property. */ +const hasOwnProperty = ( + ({ hasOwnProperty }) => + (obj, prop) => + hasOwnProperty.call(obj, prop) +)(Object.prototype); + +/** + * Determine if a value is a RegExp object + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a RegExp object, otherwise false + */ +const isRegExp = kindOfTest('RegExp'); + +const reduceDescriptors = (obj, reducer) => { + const descriptors = Object.getOwnPropertyDescriptors(obj); + const reducedDescriptors = {}; + + forEach(descriptors, (descriptor, name) => { + let ret; + if ((ret = reducer(descriptor, name, obj)) !== false) { + reducedDescriptors[name] = ret || descriptor; + } + }); + + Object.defineProperties(obj, reducedDescriptors); +}; + +/** + * Makes all methods read-only + * @param {Object} obj + */ + +const freezeMethods = (obj) => { + reduceDescriptors(obj, (descriptor, name) => { + // skip restricted props in strict mode + if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) { + return false; + } + + const value = obj[name]; + + if (!isFunction(value)) return; + + descriptor.enumerable = false; + + if ('writable' in descriptor) { + descriptor.writable = false; + return; + } + + if (!descriptor.set) { + descriptor.set = () => { + throw Error("Can not rewrite read-only method '" + name + "'"); + }; + } + }); +}; + +/** + * Converts an array or a delimited string into an object set with values as keys and true as values. + * Useful for fast membership checks. + * + * @param {Array|string} arrayOrString - The array or string to convert. + * @param {string} delimiter - The delimiter to use if input is a string. + * @returns {Object} An object with keys from the array or string, values set to true. + */ +const toObjectSet = (arrayOrString, delimiter) => { + const obj = {}; + + const define = (arr) => { + arr.forEach((value) => { + obj[value] = true; + }); + }; + + isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter)); + + return obj; +}; + +const noop = () => {}; + +const toFiniteNumber = (value, defaultValue) => { + return value != null && Number.isFinite((value = +value)) ? value : defaultValue; +}; + +/** + * If the thing is a FormData object, return true, otherwise return false. + * + * @param {unknown} thing - The thing to check. + * + * @returns {boolean} + */ +function isSpecCompliantForm(thing) { + return !!( + thing && + isFunction(thing.append) && + thing[toStringTag] === 'FormData' && + thing[iterator] + ); +} + +/** + * Recursively converts an object to a JSON-compatible object, handling circular references and Buffers. + * + * @param {Object} obj - The object to convert. + * @returns {Object} The JSON-compatible object. + */ +const toJSONObject = (obj) => { + const stack = new Array(10); + + const visit = (source, i) => { + if (isObject(source)) { + if (stack.indexOf(source) >= 0) { + return; + } + + //Buffer check + if (isBuffer(source)) { + return source; + } + + if (!('toJSON' in source)) { + stack[i] = source; + const target = isArray(source) ? [] : {}; + + forEach(source, (value, key) => { + const reducedValue = visit(value, i + 1); + !isUndefined(reducedValue) && (target[key] = reducedValue); + }); + + stack[i] = undefined; + + return target; + } + } + + return source; + }; + + return visit(obj, 0); +}; + +/** + * Determines if a value is an async function. + * + * @param {*} thing - The value to test. + * @returns {boolean} True if value is an async function, otherwise false. + */ +const isAsyncFn = kindOfTest('AsyncFunction'); + +/** + * Determines if a value is thenable (has then and catch methods). + * + * @param {*} thing - The value to test. + * @returns {boolean} True if value is thenable, otherwise false. + */ +const isThenable = (thing) => + thing && + (isObject(thing) || isFunction(thing)) && + isFunction(thing.then) && + isFunction(thing.catch); + +// original code +// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34 + +/** + * Provides a cross-platform setImmediate implementation. + * Uses native setImmediate if available, otherwise falls back to postMessage or setTimeout. + * + * @param {boolean} setImmediateSupported - Whether setImmediate is supported. + * @param {boolean} postMessageSupported - Whether postMessage is supported. + * @returns {Function} A function to schedule a callback asynchronously. + */ +const _setImmediate = ((setImmediateSupported, postMessageSupported) => { + if (setImmediateSupported) { + return setImmediate; + } + + return postMessageSupported + ? ((token, callbacks) => { + _global.addEventListener( + 'message', + ({ source, data }) => { + if (source === _global && data === token) { + callbacks.length && callbacks.shift()(); + } + }, + false + ); + + return (cb) => { + callbacks.push(cb); + _global.postMessage(token, '*'); + }; + })(`axios@${Math.random()}`, []) + : (cb) => setTimeout(cb); +})(typeof setImmediate === 'function', isFunction(_global.postMessage)); + +/** + * Schedules a microtask or asynchronous callback as soon as possible. + * Uses queueMicrotask if available, otherwise falls back to process.nextTick or _setImmediate. + * + * @type {Function} + */ +const asap = + typeof queueMicrotask !== 'undefined' + ? queueMicrotask.bind(_global) + : (typeof process !== 'undefined' && process.nextTick) || _setImmediate; + +// ********************* + +const isIterable = (thing) => thing != null && isFunction(thing[iterator]); + +export default { + isArray, + isArrayBuffer, + isBuffer, + isFormData, + isArrayBufferView, + isString, + isNumber, + isBoolean, + isObject, + isPlainObject, + isEmptyObject, + isReadableStream, + isRequest, + isResponse, + isHeaders, + isUndefined, + isDate, + isFile, + isReactNativeBlob, + isReactNative, + isBlob, + isRegExp, + isFunction, + isStream, + isURLSearchParams, + isTypedArray, + isFileList, + forEach, + merge, + extend, + trim, + stripBOM, + inherits, + toFlatObject, + kindOf, + kindOfTest, + endsWith, + toArray, + forEachEntry, + matchAll, + isHTMLForm, + hasOwnProperty, + hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection + reduceDescriptors, + freezeMethods, + toObjectSet, + toCamelCase, + noop, + toFiniteNumber, + findKey, + global: _global, + isContextDefined, + isSpecCompliantForm, + toJSONObject, + isAsyncFn, + isThenable, + setImmediate: _setImmediate, + asap, + isIterable, +}; diff --git a/server/api/node_modules/axios/package.json b/server/api/node_modules/axios/package.json new file mode 100644 index 0000000..7f22bbb --- /dev/null +++ b/server/api/node_modules/axios/package.json @@ -0,0 +1,190 @@ +{ + "name": "axios", + "version": "1.15.1", + "description": "Promise based HTTP client for the browser and node.js", + "main": "./dist/node/axios.cjs", + "module": "./index.js", + "type": "module", + "types": "index.d.ts", + "jsdelivr": "dist/axios.min.js", + "unpkg": "dist/axios.min.js", + "typings": "./index.d.ts", + "exports": { + ".": { + "types": { + "require": "./index.d.cts", + "default": "./index.d.ts" + }, + "bun": { + "require": "./dist/node/axios.cjs", + "default": "./index.js" + }, + "react-native": { + "require": "./dist/browser/axios.cjs", + "default": "./dist/esm/axios.js" + }, + "browser": { + "require": "./dist/browser/axios.cjs", + "default": "./index.js" + }, + "default": { + "require": "./dist/node/axios.cjs", + "default": "./index.js" + } + }, + "./lib/adapters/http.js": "./lib/adapters/http.js", + "./lib/adapters/xhr.js": "./lib/adapters/xhr.js", + "./unsafe/*": "./lib/*", + "./unsafe/core/settle.js": "./lib/core/settle.js", + "./unsafe/core/buildFullPath.js": "./lib/core/buildFullPath.js", + "./unsafe/helpers/isAbsoluteURL.js": "./lib/helpers/isAbsoluteURL.js", + "./unsafe/helpers/buildURL.js": "./lib/helpers/buildURL.js", + "./unsafe/helpers/combineURLs.js": "./lib/helpers/combineURLs.js", + "./unsafe/adapters/http.js": "./lib/adapters/http.js", + "./unsafe/adapters/xhr.js": "./lib/adapters/xhr.js", + "./unsafe/utils.js": "./lib/utils.js", + "./package.json": "./package.json", + "./dist/browser/axios.cjs": "./dist/browser/axios.cjs", + "./dist/node/axios.cjs": "./dist/node/axios.cjs" + }, + "browser": { + "./dist/node/axios.cjs": "./dist/browser/axios.cjs", + "./lib/adapters/http.js": "./lib/helpers/null.js", + "./lib/platform/node/index.js": "./lib/platform/browser/index.js", + "./lib/platform/node/classes/FormData.js": "./lib/helpers/null.js" + }, + "react-native": { + "./dist/node/axios.cjs": "./dist/browser/axios.cjs", + "./lib/adapters/http.js": "./lib/helpers/null.js", + "./lib/platform/node/index.js": "./lib/platform/browser/index.js", + "./lib/platform/node/classes/FormData.js": "./lib/helpers/null.js" + }, + "repository": { + "type": "git", + "url": "https://github.com/axios/axios.git" + }, + "keywords": [ + "xhr", + "http", + "ajax", + "promise", + "node", + "browser", + "fetch", + "rest", + "api", + "client" + ], + "author": "Matt Zabriskie", + "contributors": [ + "Matt Zabriskie (https://github.com/mzabriskie)", + "Jay (https://github.com/jasonsaayman)", + "Dmitriy Mozgovoy (https://github.com/DigitalBrainJS)", + "Nick Uraltsev (https://github.com/nickuraltsev)", + "Emily Morehouse (https://github.com/emilyemorehouse)", + "Justin Beckwith (https://github.com/JustinBeckwith)", + "Rubén Norte (https://github.com/rubennorte)", + "Martti Laine (https://github.com/codeclown)", + "Xianming Zhong (https://github.com/chinesedfan)", + "Remco Haszing (https://github.com/remcohaszing)", + "Shaan Majid (https://github.com/shaanmajid)", + "Willian Agostini (https://github.com/WillianAgostini)", + "Rikki Gibson (https://github.com/RikkiGibson)" + ], + "sideEffects": false, + "license": "MIT", + "bugs": { + "url": "https://github.com/axios/axios/issues" + }, + "homepage": "https://axios-http.com", + "scripts": { + "build": "gulp clear && cross-env NODE_ENV=production rollup -c -m", + "version": "npm run build && git add package.json", + "preversion": "gulp version", + "test": "npm run test:vitest", + "test:vitest": "vitest run", + "test:vitest:unit": "vitest run --project unit", + "test:vitest:browser": "vitest run --project browser", + "test:vitest:browser:headless": "vitest run --project browser-headless", + "test:vitest:watch": "vitest", + "test:smoke:cjs:vitest": "npm --prefix tests/smoke/cjs run test:smoke:cjs:mocha", + "test:smoke:esm:vitest": "npm --prefix tests/smoke/esm run test:smoke:esm:vitest", + "test:smoke:deno": "deno task --cwd tests/smoke/deno test", + "test:smoke:bun": "bun test --cwd tests/smoke/bun", + "test:module:cjs": "npm --prefix tests/module/cjs run test:module:cjs", + "test:module:esm": "npm --prefix tests/module/esm run test:module:esm", + "docs:dev": "cd docs && npm run docs:dev", + "start": "node ./sandbox/server.js", + "examples": "node ./examples/server.js", + "lint": "eslint lib/**/*.js", + "fix": "eslint --fix lib/**/*.js", + "prepare": "husky" + }, + "dependencies": { + "follow-redirects": "^1.15.11", + "form-data": "^4.0.5", + "proxy-from-env": "^2.1.0" + }, + "devDependencies": { + "@babel/core": "^7.29.0", + "@babel/preset-env": "^7.29.0", + "@commitlint/cli": "^20.4.4", + "@commitlint/config-conventional": "^20.4.4", + "@eslint/js": "^10.0.1", + "@rollup/plugin-alias": "^6.0.0", + "@rollup/plugin-babel": "^7.0.0", + "@rollup/plugin-commonjs": "^29.0.2", + "@rollup/plugin-json": "^6.1.0", + "@rollup/plugin-node-resolve": "^16.0.3", + "@rollup/plugin-terser": "^1.0.0", + "@vitest/browser": "^4.1.1", + "@vitest/browser-playwright": "^4.1.1", + "abortcontroller-polyfill": "^1.7.8", + "auto-changelog": "^2.5.0", + "body-parser": "^2.2.2", + "chalk": "^5.6.2", + "cross-env": "^10.1.0", + "dev-null": "^0.1.1", + "eslint": "^10.1.0", + "express": "^5.2.1", + "formdata-node": "^6.0.3", + "formidable": "^3.2.4", + "fs-extra": "^11.3.4", + "get-stream": "^9.0.1", + "globals": "^17.4.0", + "gulp": "^5.0.1", + "handlebars": "^4.7.8", + "husky": "^9.1.7", + "lint-staged": "^16.4.0", + "memoizee": "^0.4.17", + "minimist": "^1.2.8", + "multer": "^2.1.1", + "pacote": "^21.5.0", + "playwright": "^1.58.2", + "prettier": "^3.8.1", + "pretty-bytes": "^7.1.0", + "rollup": "^4.60.0", + "rollup-plugin-bundle-size": "^1.0.3", + "selfsigned": "^5.5.0", + "stream-throttle": "^0.1.3", + "string-replace-async": "^3.0.2", + "tar-stream": "^3.1.8", + "typescript": "^5.9.3", + "vitest": "^4.1.1" + }, + "commitlint": { + "rules": { + "header-max-length": [ + 2, + "always", + 130 + ] + }, + "extends": [ + "@commitlint/config-conventional" + ] + }, + "lint-staged": { + "*.{js,cjs,mjs,ts,json,md,yml,yaml}": "prettier --write" + } +} \ No newline at end of file diff --git a/server/api/node_modules/babel-jest/LICENSE b/server/api/node_modules/babel-jest/LICENSE new file mode 100644 index 0000000..b93be90 --- /dev/null +++ b/server/api/node_modules/babel-jest/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) Meta Platforms, Inc. and affiliates. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/server/api/node_modules/babel-jest/README.md b/server/api/node_modules/babel-jest/README.md new file mode 100644 index 0000000..8716cc1 --- /dev/null +++ b/server/api/node_modules/babel-jest/README.md @@ -0,0 +1,25 @@ +# babel-jest + +[Babel](https://github.com/babel/babel) [jest](https://github.com/jestjs/jest) plugin + +## Usage + +If you are already using `jest-cli`, add `babel-jest` and it will automatically compile JavaScript code using Babel. + +```bash +yarn add --dev babel-jest @babel/core +``` + +If you would like to write your own preprocessor, uninstall and delete babel-jest and set the [config.transform](https://jestjs.io/docs/configuration#transform-object-string-string) option to your preprocessor. + +## Setup + +_Note: this step is only required if you are using `babel-jest` with additional code preprocessors._ + +To explicitly define `babel-jest` as a transformer for your JavaScript code, map _.js_ files to the `babel-jest` module. Typescript files are also supported. + +```json +"transform": { + "\\.[jt]sx?$": "babel-jest" +}, +``` diff --git a/server/api/node_modules/babel-jest/package.json b/server/api/node_modules/babel-jest/package.json new file mode 100644 index 0000000..e6aaa6a --- /dev/null +++ b/server/api/node_modules/babel-jest/package.json @@ -0,0 +1,44 @@ +{ + "name": "babel-jest", + "description": "Jest plugin to use babel for transformation.", + "version": "29.7.0", + "repository": { + "type": "git", + "url": "https://github.com/jestjs/jest.git", + "directory": "packages/babel-jest" + }, + "license": "MIT", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": { + "types": "./build/index.d.ts", + "default": "./build/index.js" + }, + "./package.json": "./package.json" + }, + "dependencies": { + "@jest/transform": "^29.7.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.6.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "devDependencies": { + "@babel/core": "^7.11.6", + "@jest/test-utils": "^29.7.0", + "@types/graceful-fs": "^4.1.3" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "publishConfig": { + "access": "public" + }, + "gitHead": "4e56991693da7cd4c3730dc3579a1dd1403ee630" +} diff --git a/server/api/node_modules/babel-plugin-istanbul/CHANGELOG.md b/server/api/node_modules/babel-plugin-istanbul/CHANGELOG.md new file mode 100644 index 0000000..aa57d4f --- /dev/null +++ b/server/api/node_modules/babel-plugin-istanbul/CHANGELOG.md @@ -0,0 +1,320 @@ +# Changelog + +All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. + +### [6.1.1](https://www.github.com/istanbuljs/babel-plugin-istanbul/compare/v6.1.0...v6.1.1) (2021-10-16) + + +### Bug Fixes + +* **build:** first automated publication ([9a1b893](https://www.github.com/istanbuljs/babel-plugin-istanbul/commit/9a1b89342565d1127a011e31262520b057120531)) + +## [6.1.0](https://www.github.com/istanbuljs/babel-plugin-istanbul/compare/v6.0.0...v6.1.0) (2021-10-16) + + +### Features + +* **instrumenter:** instrumenter with fixes for branchMap instrumentation ([#265](https://www.github.com/istanbuljs/babel-plugin-istanbul/issues/265)) ([1e9ec62](https://www.github.com/istanbuljs/babel-plugin-istanbul/commit/1e9ec62b50c9d2224e7bb0ccb071fd10b80e018f)) + +## [6.0.0](https://github.com/istanbuljs/babel-plugin-istanbul/compare/v5.2.0...v6.0.0) (2019-12-20) + + +### ⚠ BREAKING CHANGES + +* Drop node.js 6 (#226) + +### Features + +* Add support for instrumenter options ([#227](https://github.com/istanbuljs/babel-plugin-istanbul/issues/227)) ([fe08f5b](https://github.com/istanbuljs/babel-plugin-istanbul/commit/fe08f5b8282136c7ed9375fa32148586bd6a7e28)), closes [#208](https://github.com/istanbuljs/babel-plugin-istanbul/issues/208) [#212](https://github.com/istanbuljs/babel-plugin-istanbul/issues/212) +* Drop node.js 6 ([#226](https://github.com/istanbuljs/babel-plugin-istanbul/issues/226)) ([93db21a](https://github.com/istanbuljs/babel-plugin-istanbul/commit/93db21aa2bbdbb06fb784f52c24a7847fad6be92)), closes [#209](https://github.com/istanbuljs/babel-plugin-istanbul/issues/209) + +## [5.2.0](https://github.com/istanbuljs/babel-plugin-istanbul/compare/v5.1.4...v5.2.0) (2019-07-18) + + +### Bug Fixes + +* Print explicit error if use with babel 6 is attempted ([#207](https://github.com/istanbuljs/babel-plugin-istanbul/issues/207)) ([a12cf16](https://github.com/istanbuljs/babel-plugin-istanbul/commit/a12cf16)) + + +### Features + +* Support turning off node_modules default exclude via flag ([#172](https://github.com/istanbuljs/babel-plugin-istanbul/issues/172)) ([a314f06](https://github.com/istanbuljs/babel-plugin-istanbul/commit/a314f06)) + + + +## [5.1.4](https://github.com/istanbuljs/babel-plugin-istanbul/compare/v5.1.3...v5.1.4) (2019-04-25) + + + +## [5.1.3](https://github.com/istanbuljs/babel-plugin-istanbul/compare/v5.1.2...v5.1.3) (2019-04-23) + + +### Bug Fixes + +* Revert [#192](https://github.com/istanbuljs/babel-plugin-istanbul/issues/192) ([201a933](https://github.com/istanbuljs/babel-plugin-istanbul/commit/201a933)) due to regression detailed at [#201](https://github.com/istanbuljs/babel-plugin-istanbul/issues/201) + + + +## [5.1.2](https://github.com/istanbuljs/babel-plugin-istanbul/compare/v5.1.1...v5.1.2) (2019-04-10) + + +### Bug Fixes + +* Ensure correct scope references after traversal ([#192](https://github.com/istanbuljs/babel-plugin-istanbul/issues/192)) ([201a933](https://github.com/istanbuljs/babel-plugin-istanbul/commit/201a933)) + + + + +## [5.1.1](https://github.com/istanbuljs/babel-plugin-istanbul/compare/v5.1.0...v5.1.1) (2019-01-11) + + +### Bug Fixes + +* respect changes of cwd in options ([#171](https://github.com/istanbuljs/babel-plugin-istanbul/issues/171)) ([adec723](https://github.com/istanbuljs/babel-plugin-istanbul/commit/adec723)) + + + + +# [5.1.0](https://github.com/istanbuljs/babel-plugin-istanbul/compare/v5.0.1...v5.1.0) (2018-09-07) + + +### Features + +* Bump dependencies. ([b509649](https://github.com/istanbuljs/babel-plugin-istanbul/commit/b509649)) + + + + +## [5.0.1](https://github.com/istanbuljs/babel-plugin-istanbul/compare/v5.0.0...v5.0.1) (2018-07-24) + + + + +# [5.0.0](https://github.com/istanbuljs/babel-plugin-istanbul/compare/v4.1.6...v5.0.0) (2018-06-27) + + +### Features + +* upgrade to babel 7 and newest istanbul libraries ([#158](https://github.com/istanbuljs/babel-plugin-istanbul/issues/158)) ([a9e1564](https://github.com/istanbuljs/babel-plugin-istanbul/commit/a9e1564)) + + +### BREAKING CHANGES + +* Drop node 4 support, upgrade to babel 7, stop shipping @babel/plugin-syntax-object-rest-spread + + + + +## 4.1.6 (2018-03-09) + +* chore: explicit update of istanbul dependencies (#149) ([77b6eb7](https://github.com/istanbuljs/babel-plugin-istanbul/commit/77b6eb7)), closes [#149](https://github.com/istanbuljs/babel-plugin-istanbul/issues/149) +* chore(package): update coveralls to version 3.0.0 (#133) ([7045a03](https://github.com/istanbuljs/babel-plugin-istanbul/commit/7045a03)), closes [#133](https://github.com/istanbuljs/babel-plugin-istanbul/issues/133) +* chore(package): update mocha to version 4.0.0 (#134) ([38176ba](https://github.com/istanbuljs/babel-plugin-istanbul/commit/38176ba)), closes [#134](https://github.com/istanbuljs/babel-plugin-istanbul/issues/134) +* fix: babel-preset-es2015 => babel-preset-env (#138) ([18fe954](https://github.com/istanbuljs/babel-plugin-istanbul/commit/18fe954)), closes [#138](https://github.com/istanbuljs/babel-plugin-istanbul/issues/138) +* fix: include object-spread-syntax plugin (#141) ([428a952](https://github.com/istanbuljs/babel-plugin-istanbul/commit/428a952)), closes [#141](https://github.com/istanbuljs/babel-plugin-istanbul/issues/141) + + + + +## [4.1.5](https://github.com/istanbuljs/babel-plugin-istanbul/compare/v4.1.2...v4.1.5) (2017-08-23) + + + + +## [4.1.4](https://github.com/istanbuljs/babel-plugin-istanbul/compare/v4.1.3...v4.1.4) (2017-05-27) + + + + +## [4.1.3](https://github.com/istanbuljs/babel-plugin-istanbul/compare/v4.1.1...v4.1.3) (2017-04-29) + + + + +## [4.1.2](https://github.com/istanbuljs/babel-plugin-istanbul/compare/v4.1.1...v4.1.2) (2017-03-27) + + + + +## [4.1.1](https://github.com/istanbuljs/babel-plugin-istanbul/compare/v4.1.0...v4.1.1) (2017-03-22) + + +### Bug Fixes + +* explicit upgrade to patched version of istanbul-lib-instrument ([db8ecbe](https://github.com/istanbuljs/babel-plugin-istanbul/commit/db8ecbe)) + + + + +# [4.1.0](https://github.com/istanbuljs/babel-plugin-istanbul/compare/v4.0.0...v4.1.0) (2017-03-21) + + +### Features + +* add includeUntested option to expose coverage of all instrumented files ([#80](https://github.com/istanbuljs/babel-plugin-istanbul/issues/80)) ([b078bbd](https://github.com/istanbuljs/babel-plugin-istanbul/commit/b078bbd)) + + + + +# [4.0.0](https://github.com/istanbuljs/babel-plugin-istanbul/compare/v3.1.2...v4.0.0) (2017-02-07) + + +### Bug Fixes + +* load configuration from process.env.NYC_CONFIG if present ([#93](https://github.com/istanbuljs/babel-plugin-istanbul/issues/93)) ([e902924](https://github.com/istanbuljs/babel-plugin-istanbul/commit/e902924)) + + +### Features + +* drop Node 0.10 and 0.12 support, upgrade dependencies to reflect this ([#88](https://github.com/istanbuljs/babel-plugin-istanbul/issues/88)) ([594c03a](https://github.com/istanbuljs/babel-plugin-istanbul/commit/594c03a)) +* we can now use the language feature Object.assign ([#92](https://github.com/istanbuljs/babel-plugin-istanbul/issues/92)) ([f77db2a](https://github.com/istanbuljs/babel-plugin-istanbul/commit/f77db2a)) + + +### BREAKING CHANGES + +* I've updated dependencies and dropped Node 0.10 and Node 0.12 support. + + + + +## [3.1.2](https://github.com/istanbuljs/babel-plugin-istanbul/compare/v3.1.1...v3.1.2) (2017-01-04) + + +### Bug Fixes + +* address regression related to export const foo = () => {} ([#79](https://github.com/istanbuljs/babel-plugin-istanbul/issues/79)) ([f870a8f](https://github.com/istanbuljs/babel-plugin-istanbul/commit/f870a8f)) + + + + +## [3.1.1](https://github.com/istanbuljs/babel-plugin-istanbul/compare/v3.1.0...v3.1.1) (2017-01-02) + + + + +# [3.1.0](https://github.com/istanbuljs/babel-plugin-istanbul/compare/v3.0.0...v3.1.0) (2016-12-27) + + +### Bug Fixes + +* upgrade a bunch of core dependencies ([#77](https://github.com/istanbuljs/babel-plugin-istanbul/issues/77)) ([e764330](https://github.com/istanbuljs/babel-plugin-istanbul/commit/e764330)) + + +### Features + +* accept source map input for the visitor ([#75](https://github.com/istanbuljs/babel-plugin-istanbul/issues/75)) ([437e90b](https://github.com/istanbuljs/babel-plugin-istanbul/commit/437e90b)) + + + + +# [3.0.0](https://github.com/istanbuljs/babel-plugin-istanbul/compare/v2.0.3...v3.0.0) (2016-11-14) + + +### Chores + +* **package:** update test-exclude to version 3.0.0 ([#68](https://github.com/istanbuljs/babel-plugin-istanbul/issues/68)) ([0396385](https://github.com/istanbuljs/babel-plugin-istanbul/commit/0396385)) + + +### BREAKING CHANGES + +* package: test-exclude now adds `**/node_modules/**` as exclude rule by default. + + + + +## [2.0.3](https://github.com/istanbuljs/babel-plugin-istanbul/compare/v2.0.2...v2.0.3) (2016-10-17) + + +### Bug Fixes + +* force istanbul-lib-instrument with variable hoisting fix ([#64](https://github.com/istanbuljs/babel-plugin-istanbul/issues/64)) ([209a0cf](https://github.com/istanbuljs/babel-plugin-istanbul/commit/209a0cf)) +* switch deprecated lodash.assign for object-assign ([#58](https://github.com/istanbuljs/babel-plugin-istanbul/issues/58)) ([6e051fc](https://github.com/istanbuljs/babel-plugin-istanbul/commit/6e051fc)) + + + + +## [2.0.2](https://github.com/istanbuljs/babel-plugin-istanbul/compare/v2.0.1...v2.0.2) (2016-09-08) + + +### Bug Fixes + +* take realpath of cwd, whether or not set in env ([#37](https://github.com/istanbuljs/babel-plugin-istanbul/issues/37)) ([6274d83](https://github.com/istanbuljs/babel-plugin-istanbul/commit/6274d83)) + + + + +## [2.0.1](https://github.com/istanbuljs/babel-plugin-istanbul/compare/v2.0.0...v2.0.1) (2016-09-02) + + +### Bug Fixes + +* update istanbul-lib-instrument ([573e0d4](https://github.com/istanbuljs/babel-plugin-istanbul/commit/573e0d4)) + + + + +# [2.0.0](https://github.com/istanbuljs/babel-plugin-istanbul/compare/v1.1.0...v2.0.0) (2016-08-14) + + +### Chores + +* upgrade to version of test-exclude with new exclude rules ([#35](https://github.com/istanbuljs/babel-plugin-istanbul/issues/35)) ([220ce2b](https://github.com/istanbuljs/babel-plugin-istanbul/commit/220ce2b)) + + +### BREAKING CHANGES + +* see https://github.com/istanbuljs/test-exclude/blob/master/CHANGELOG.md#breaking-changes + + + + +# [1.1.0](https://github.com/istanbuljs/babel-plugin-istanbul/compare/v1.0.3...v1.1.0) (2016-07-21) + + +### Bug Fixes + +* upgrade to istanbul-lib-instrument with faster babel-generator ([#18](https://github.com/istanbuljs/babel-plugin-istanbul/issues/18)) ([d33263c](https://github.com/istanbuljs/babel-plugin-istanbul/commit/d33263c)) + + +### Features + +* allow exclude/include options to be passed as Babel plugin config ([#16](https://github.com/istanbuljs/babel-plugin-istanbul/issues/16)) ([cf68421](https://github.com/istanbuljs/babel-plugin-istanbul/commit/cf68421)) + + + + +## [1.0.3](https://github.com/istanbuljs/babel-plugin-istanbul/compare/v1.0.2...v1.0.3) (2016-07-09) + + +### Bug Fixes + +* keep using NYC_CWD if available ([#10](https://github.com/istanbuljs/babel-plugin-istanbul/issues/10)) ([db0352b](https://github.com/istanbuljs/babel-plugin-istanbul/commit/db0352b)) + + + + +## [1.0.2](https://github.com/istanbuljs/babel-plugin-istanbul/compare/v1.0.1...v1.0.2) (2016-07-03) + + +### Bug Fixes + +* take realpath of process.cwd(), fixes [#7](https://github.com/istanbuljs/babel-plugin-istanbul/issues/7) ([#8](https://github.com/istanbuljs/babel-plugin-istanbul/issues/8)) ([e8d3785](https://github.com/istanbuljs/babel-plugin-istanbul/commit/e8d3785)), closes [#7](https://github.com/istanbuljs/babel-plugin-istanbul/issues/7) [#8](https://github.com/istanbuljs/babel-plugin-istanbul/issues/8) + + + + +## [1.0.1](https://github.com/istanbuljs/babel-plugin-istanbul/compare/v1.0.0...v1.0.1) (2016-06-30) + + +### Bug Fixes + +* upgrade to version of istanbul-lib-instrument that fixes some out of bounds issues ([#6](https://github.com/istanbuljs/babel-plugin-istanbul/issues/6)) ([a949065](https://github.com/istanbuljs/babel-plugin-istanbul/commit/a949065)), closes [#6](https://github.com/istanbuljs/babel-plugin-istanbul/issues/6) + + + +# 1.0.0 (2016-06-26) + + +### Features + +* port functionality from __coverage__, get ready for first release ([#2](https://github.com/istanbuljs/babel-plugin-istanbul/issues/2)) ([2a8ee44](https://github.com/istanbuljs/babel-plugin-istanbul/commit/2a8ee44)) diff --git a/server/api/node_modules/babel-plugin-istanbul/LICENSE b/server/api/node_modules/babel-plugin-istanbul/LICENSE new file mode 100644 index 0000000..22f21ab --- /dev/null +++ b/server/api/node_modules/babel-plugin-istanbul/LICENSE @@ -0,0 +1,27 @@ +Copyright (c) 2016, Istanbul Code Coverage +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of babel-plugin-istanbul nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/server/api/node_modules/babel-plugin-istanbul/README.md b/server/api/node_modules/babel-plugin-istanbul/README.md new file mode 100644 index 0000000..a027e9b --- /dev/null +++ b/server/api/node_modules/babel-plugin-istanbul/README.md @@ -0,0 +1,135 @@ +# babel-plugin-istanbul + +[![Coverage Status](https://coveralls.io/repos/github/istanbuljs/babel-plugin-istanbul/badge.svg?branch=master)](https://coveralls.io/github/istanbuljs/babel-plugin-istanbul?branch=master) +[![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-yellow.svg)](https://conventionalcommits.org) +[![community slack](http://devtoolscommunity.herokuapp.com/badge.svg)](http://devtoolscommunity.herokuapp.com) + +_Having problems? want to contribute? join our [community slack](http://devtoolscommunity.herokuapp.com)_. + +A Babel plugin that instruments your code with Istanbul coverage. +It can instantly be used with [karma-coverage](https://github.com/karma-runner/karma-coverage) and mocha on Node.js (through [nyc](https://github.com/bcoe/nyc)). + +__Note:__ This plugin does not generate any report or save any data to any file; +it only adds instrumenting code to your JavaScript source code. +To integrate with testing tools, please see the [Integrations](#integrations) section. + +## Usage + +Install it: + +``` +npm install --save-dev babel-plugin-istanbul +``` + +Add it to `.babelrc` in test mode: + +```js +{ + "env": { + "test": { + "plugins": [ "istanbul" ] + } + } +} +``` + +Optionally, use [cross-env](https://www.npmjs.com/package/cross-env) to set +`NODE_ENV=test`: + +```json +{ + "scripts": { + "test": "cross-env NODE_ENV=test nyc --reporter=lcov --reporter=text mocha test/*.js" + } +} +``` + +## Integrations + +### karma + +It _just works_ with Karma. First, make sure that the code is already transpiled by Babel (either using `karma-babel-preprocessor`, `karma-webpack`, or `karma-browserify`). Then, simply set up [karma-coverage](https://github.com/karma-runner/karma-coverage) according to the docs, but __don’t add the `coverage` preprocessor.__ This plugin has already instrumented your code, and Karma should pick it up automatically. + +It has been tested with [bemusic/bemuse](https://codecov.io/github/bemusic/bemuse) project, which contains ~2400 statements. + +### mocha on node.js (through nyc) + +Configure Mocha to transpile JavaScript code using Babel, then you can run your tests with [`nyc`](https://github.com/bcoe/nyc), which will collect all the coverage report. + +babel-plugin-istanbul respects the `include`/`exclude` configuration options from nyc, +but you also need to __configure NYC not to instrument your code__ by adding these settings in your `package.json`: + +```js + "nyc": { + "sourceMap": false, + "instrument": false + }, +``` + +## Ignoring files + +You don't want to cover your test files as this will skew your coverage results. You can configure this by providing plugin options matching nyc's [`exclude`/`include` rules](https://github.com/bcoe/nyc#excluding-files): + +```json +{ + "env": { + "test": { + "plugins": [ + ["istanbul", { + "exclude": [ + "**/*.spec.js" + ] + }] + ] + } + } +} +``` + +If you don't provide options in your Babel config, the plugin will look for `exclude`/`include` config under an `"nyc"` key in `package.json`. + +You can also use [istanbul's ignore hints](https://github.com/gotwarlost/istanbul/blob/master/ignoring-code-for-coverage.md#ignoring-code-for-coverage-purposes) to specify specific lines of code to skip instrumenting. + +## Source Maps + +By default, this plugin will pick up inline source maps and attach them to the instrumented code such that code coverage can be remapped back to the original source, even for multi-step build processes. This can be memory intensive. Set `useInlineSourceMaps` to prevent this behavior. + +```json +{ + "env": { + "test": { + "plugins": [ + ["istanbul", { + "useInlineSourceMaps": false + }] + ] + } + } +} +``` + +If you're instrumenting code programatically, you can pass a source map explicitly. +```js +import babelPluginIstanbul from 'babel-plugin-istanbul'; + +function instrument(sourceCode, sourceMap, fileName) { + return babel.transform(sourceCode, { + filename, + plugins: [ + [babelPluginIstanbul, { + inputSourceMap: sourceMap + }] + ] + }) +} +``` + +## Credit where credit is due + +The approach used in `babel-plugin-istanbul` was inspired by [Thai Pangsakulyanont](https://github.com/dtinth)'s original library [`babel-plugin-__coverage__`](https://github.com/dtinth/babel-plugin-__coverage__). + +## `babel-plugin-istanbul` for enterprise + +Available as part of the Tidelift Subscription. + +The maintainers of `babel-plugin-istanbul` and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. [Learn more.](https://tidelift.com/subscription/pkg/npm-babel-plugin-istanbul?utm_source=npm-babel-plugin-istanbul&utm_medium=referral&utm_campaign=enterprise&utm_term=repo) diff --git a/server/api/node_modules/babel-plugin-istanbul/lib/index.js b/server/api/node_modules/babel-plugin-istanbul/lib/index.js new file mode 100644 index 0000000..8cf7433 --- /dev/null +++ b/server/api/node_modules/babel-plugin-istanbul/lib/index.js @@ -0,0 +1,170 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _path = _interopRequireDefault(require("path")); + +var _fs = require("fs"); + +var _child_process = require("child_process"); + +var _helperPluginUtils = require("@babel/helper-plugin-utils"); + +var _istanbulLibInstrument = require("istanbul-lib-instrument"); + +var _testExclude = _interopRequireDefault(require("test-exclude")); + +var _schema = _interopRequireDefault(require("@istanbuljs/schema")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function getRealpath(n) { + try { + return (0, _fs.realpathSync)(n) || + /* istanbul ignore next */ + n; + } catch (e) { + /* istanbul ignore next */ + return n; + } +} + +const memoize = new Map(); +/* istanbul ignore next */ + +const memosep = _path.default.sep === '/' ? ':' : ';'; + +function loadNycConfig(cwd, opts) { + let memokey = cwd; + const args = [_path.default.resolve(__dirname, 'load-nyc-config-sync.js'), cwd]; + + if ('nycrcPath' in opts) { + args.push(opts.nycrcPath); + memokey += memosep + opts.nycrcPath; + } + /* execFileSync is expensive, avoid it if possible! */ + + + if (memoize.has(memokey)) { + return memoize.get(memokey); + } + + const result = JSON.parse((0, _child_process.execFileSync)(process.execPath, args)); + const error = result['load-nyc-config-sync-error']; + + if (error) { + throw new Error(error); + } + + const config = { ..._schema.default.defaults.babelPluginIstanbul, + cwd, + ...result + }; + memoize.set(memokey, config); + return config; +} + +function findConfig(opts) { + const cwd = getRealpath(opts.cwd || process.env.NYC_CWD || + /* istanbul ignore next */ + process.cwd()); + const keys = Object.keys(opts); + const ignored = Object.keys(opts).filter(s => s === 'nycrcPath' || s === 'cwd'); + + if (keys.length > ignored.length) { + // explicitly configuring options in babel + // takes precedence. + return { ..._schema.default.defaults.babelPluginIstanbul, + cwd, + ...opts + }; + } + + if (ignored.length === 0 && process.env.NYC_CONFIG) { + // defaults were already applied by nyc + return JSON.parse(process.env.NYC_CONFIG); + } + + return loadNycConfig(cwd, opts); +} + +function makeShouldSkip() { + let exclude; + return function shouldSkip(file, nycConfig) { + if (!exclude || exclude.cwd !== nycConfig.cwd) { + exclude = new _testExclude.default({ + cwd: nycConfig.cwd, + include: nycConfig.include, + exclude: nycConfig.exclude, + extension: nycConfig.extension, + // Make sure this is true unless explicitly set to `false`. `undefined` is still `true`. + excludeNodeModules: nycConfig.excludeNodeModules !== false + }); + } + + return !exclude.shouldInstrument(file); + }; +} + +var _default = (0, _helperPluginUtils.declare)(api => { + api.assertVersion(7); + const shouldSkip = makeShouldSkip(); + const t = api.types; + return { + visitor: { + Program: { + enter(path) { + this.__dv__ = null; + this.nycConfig = findConfig(this.opts); + const realPath = getRealpath(this.file.opts.filename); + + if (shouldSkip(realPath, this.nycConfig)) { + return; + } + + let { + inputSourceMap + } = this.opts; + + if (this.opts.useInlineSourceMaps !== false) { + if (!inputSourceMap && this.file.inputMap) { + inputSourceMap = this.file.inputMap.sourcemap; + } + } + + const visitorOptions = {}; + Object.entries(_schema.default.defaults.instrumentVisitor).forEach(([name, defaultValue]) => { + if (name in this.nycConfig) { + visitorOptions[name] = this.nycConfig[name]; + } else { + visitorOptions[name] = _schema.default.defaults.instrumentVisitor[name]; + } + }); + this.__dv__ = (0, _istanbulLibInstrument.programVisitor)(t, realPath, { ...visitorOptions, + inputSourceMap + }); + + this.__dv__.enter(path); + }, + + exit(path) { + if (!this.__dv__) { + return; + } + + const result = this.__dv__.exit(path); + + if (this.opts.onCover) { + this.opts.onCover(getRealpath(this.file.opts.filename), result.fileCoverage); + } + } + + } + } + }; +}); + +exports.default = _default; \ No newline at end of file diff --git a/server/api/node_modules/babel-plugin-istanbul/lib/load-nyc-config-sync.js b/server/api/node_modules/babel-plugin-istanbul/lib/load-nyc-config-sync.js new file mode 100644 index 0000000..7906793 --- /dev/null +++ b/server/api/node_modules/babel-plugin-istanbul/lib/load-nyc-config-sync.js @@ -0,0 +1,20 @@ +#!/usr/bin/env node +'use strict'; + +const { + loadNycConfig +} = require('@istanbuljs/load-nyc-config'); + +async function main() { + const [cwd, nycrcPath] = process.argv.slice(2); + console.log(JSON.stringify(await loadNycConfig({ + cwd, + nycrcPath + }))); +} + +main().catch(error => { + console.log(JSON.stringify({ + 'load-nyc-config-sync-error': error.message + })); +}); \ No newline at end of file diff --git a/server/api/node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument/CHANGELOG.md b/server/api/node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument/CHANGELOG.md new file mode 100644 index 0000000..8b8ac05 --- /dev/null +++ b/server/api/node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument/CHANGELOG.md @@ -0,0 +1,631 @@ +# Change Log + +All notable changes to this project will be documented in this file. +See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +## [5.2.1](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument-v5.2.0...istanbul-lib-instrument-v5.2.1) (2022-10-05) + + +### Bug Fixes + +* handle error when inputSourceMap is not a plain object ([#662](https://github.com/istanbuljs/istanbuljs/issues/662)) ([3e3611f](https://github.com/istanbuljs/istanbuljs/commit/3e3611f0efffefd5f87e6cbccd840e9f33aaf43e)) + +## [5.2.0](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument-v5.1.0...istanbul-lib-instrument-v5.2.0) (2022-02-21) + + +### Features + +* exclude Empty Object and Arrays in Truthy Detection ([#666](https://github.com/istanbuljs/istanbuljs/issues/666)) ([e279684](https://github.com/istanbuljs/istanbuljs/commit/e279684e735f4b7dbe2b632cde2515f6862099de)) + +## [5.1.0](https://www.github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument-v5.0.4...istanbul-lib-instrument-v5.1.0) (2021-10-27) + + +### Features + +* option to evaluate logical truthiness, for applications such as fuzzing ([#629](https://www.github.com/istanbuljs/istanbuljs/issues/629)) ([a743b84](https://www.github.com/istanbuljs/istanbuljs/commit/a743b8442e977f0c77ffa282eed7ac84ca200d1f)) + +### [5.0.4](https://www.github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument-v5.0.3...istanbul-lib-instrument-v5.0.4) (2021-10-16) + + +### Bug Fixes + +* **magic-value:** make incrementing magic value a manual step ([#641](https://www.github.com/istanbuljs/istanbuljs/issues/641)) ([823010b](https://www.github.com/istanbuljs/istanbuljs/commit/823010b821cf81bd91377d75fc83f0875925db66)) + +### [5.0.3](https://www.github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument-v5.0.2...istanbul-lib-instrument-v5.0.3) (2021-10-06) + + +### Bug Fixes + +* coverage.branchMap else location. ([#633](https://www.github.com/istanbuljs/istanbuljs/issues/633)) ([eb4b4ec](https://www.github.com/istanbuljs/istanbuljs/commit/eb4b4ec8f4b858655a66b0033fcc662f44ef4cc9)) + +### [5.0.2](https://www.github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument-v5.0.1...istanbul-lib-instrument-v5.0.2) (2021-09-13) + + +### Bug Fixes + +* **build:** verfiy automated publication ([b232690](https://www.github.com/istanbuljs/istanbuljs/commit/b232690193f4b524332046c96dd1cdc6e881c6c7)) + +### [5.0.1](https://www.github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument-v5.0.0...istanbul-lib-instrument-v5.0.1) (2021-09-13) + + +### Bug Fixes + +* **build:** verfiy automated publication ([74c96bd](https://www.github.com/istanbuljs/istanbuljs/commit/74c96bdc4224a06e2e1166ebd9adf8faf28438b1)) + +## [5.0.0](https://www.github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument-v4.0.3...istanbul-lib-instrument-v5.0.0) (2021-09-13) + + +### ⚠ BREAKING CHANGES + +* istanbul-lib-instrument no longer uses babel + +### Code Refactoring + +* istanbul-lib-instrument no longer uses babel ([8d3badb](https://www.github.com/istanbuljs/istanbuljs/commit/8d3badb8f6c9a4bed9af8e19c3ac6459ebd7267b)) + +## [4.0.3](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@4.0.2...istanbul-lib-instrument@4.0.3) (2020-05-09) + + +### Bug Fixes + +* Prevent readInitialCoverage from reading babel config ([#562](https://github.com/istanbuljs/istanbuljs/issues/562)) ([49b4745](https://github.com/istanbuljs/istanbuljs/commit/49b474525c15e703642916011bd86f663aca0c3d)) + + + + + +## [4.0.2](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@4.0.1...istanbul-lib-instrument@4.0.2) (2020-05-06) + + +### Bug Fixes + +* Add ts-ignore to reassignment of generated function ([#557](https://github.com/istanbuljs/istanbuljs/issues/557)) ([817efb0](https://github.com/istanbuljs/istanbuljs/commit/817efb04fc161efae426b2231a0221606b09f559)) +* Use @babel/core for all babel imports. ([#555](https://github.com/istanbuljs/istanbuljs/issues/555)) ([a99a13e](https://github.com/istanbuljs/istanbuljs/commit/a99a13ee6931fc124a2a723c3f511cdbcb0aa81d)) + + + + + +## [4.0.1](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@4.0.0...istanbul-lib-instrument@4.0.1) (2020-02-03) + + +### Bug Fixes + +* Always call coverage initialization function ([#524](https://github.com/istanbuljs/istanbuljs/issues/524)) ([c6536c1](https://github.com/istanbuljs/istanbuljs/commit/c6536c14bf0663ca7e0493dd40ea132b05352594)) + + + + + +# [4.0.0](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@4.0.0-alpha.3...istanbul-lib-instrument@4.0.0) (2019-12-20) + +**Note:** Version bump only for package istanbul-lib-instrument + + + + + +# [4.0.0-alpha.3](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@4.0.0-alpha.2...istanbul-lib-instrument@4.0.0-alpha.3) (2019-12-07) + +**Note:** Version bump only for package istanbul-lib-instrument + + + + + +# [4.0.0-alpha.2](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@4.0.0-alpha.1...istanbul-lib-instrument@4.0.0-alpha.2) (2019-11-01) + + +### Bug Fixes + +* Produce properly merged source-maps when inputSourceMap is provided ([#487](https://github.com/istanbuljs/istanbuljs/issues/487)) ([8f8c88e](https://github.com/istanbuljs/istanbuljs/commit/8f8c88e3a2add4c08729e41e356aa7981dc69d4d)) + + + + + +# [4.0.0-alpha.1](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@4.0.0-alpha.0...istanbul-lib-instrument@4.0.0-alpha.1) (2019-10-06) + + +### Bug Fixes + +* Eliminate babel hoisting of the coverage variable ([#481](https://github.com/istanbuljs/istanbuljs/issues/481)) ([8dfbcba](https://github.com/istanbuljs/istanbuljs/commit/8dfbcba)), closes [#92](https://github.com/istanbuljs/istanbuljs/issues/92) +* Honor ignore hints in chained if statements ([#469](https://github.com/istanbuljs/istanbuljs/issues/469)) ([a629770](https://github.com/istanbuljs/istanbuljs/commit/a629770)), closes [#468](https://github.com/istanbuljs/istanbuljs/issues/468) +* Populate lastFileCoverage for already instrumented files ([#470](https://github.com/istanbuljs/istanbuljs/issues/470)) ([ea6d779](https://github.com/istanbuljs/istanbuljs/commit/ea6d779)), closes [istanbuljs/nyc#594](https://github.com/istanbuljs/nyc/issues/594) + + +### Features + +* Use @istanbuljs/schema to pull defaults ([#485](https://github.com/istanbuljs/istanbuljs/issues/485)) ([87e27f3](https://github.com/istanbuljs/istanbuljs/commit/87e27f3)), closes [#460](https://github.com/istanbuljs/istanbuljs/issues/460) + + +### BREAKING CHANGES + +* The defaults for `autoWrap`, `preserveComments`, +`esModules` and `produceSourceMap` are now true. This applies only to +the stand-alone instrumenter, the visitor does not use these options. +* The `flow` and `jsx` parser plugins are no longer +enabled by default. This applies only to the stand-alone instrumenter, +the visitor does not use this option. +* The `plugins` option of the stand-alone instrumenter +has been renamed to `parserPlugins` to match nyc. + + + + + +# [4.0.0-alpha.0](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@3.3.0...istanbul-lib-instrument@4.0.0-alpha.0) (2019-06-19) + + +### Features + +* Update dependencies, require Node.js 8 ([#401](https://github.com/istanbuljs/istanbuljs/issues/401)) ([bf3a539](https://github.com/istanbuljs/istanbuljs/commit/bf3a539)) + + +### BREAKING CHANGES + +* Node.js 8 is now required + + + + + +# [3.3.0](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@3.2.0...istanbul-lib-instrument@3.3.0) (2019-04-24) + + +### Features + +* Enable classProperties and classPrivateProperties parsers and coverage. ([#379](https://github.com/istanbuljs/istanbuljs/issues/379)) ([c09dc38](https://github.com/istanbuljs/istanbuljs/commit/c09dc38)) + + + + + +# [3.2.0](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@3.1.2...istanbul-lib-instrument@3.2.0) (2019-04-09) + + +### Features + +* Add bigInt and importMeta to default parser plugins. ([#356](https://github.com/istanbuljs/istanbuljs/issues/356)) ([fb4d6ed](https://github.com/istanbuljs/istanbuljs/commit/fb4d6ed)), closes [#338](https://github.com/istanbuljs/istanbuljs/issues/338) + + + + + +## [3.1.2](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@3.1.1...istanbul-lib-instrument@3.1.2) (2019-04-03) + + +### Bug Fixes + +* Be more friendly to ts-node. ([#352](https://github.com/istanbuljs/istanbuljs/issues/352)) ([40d15f5](https://github.com/istanbuljs/istanbuljs/commit/40d15f5)), closes [#336](https://github.com/istanbuljs/istanbuljs/issues/336) + + + + + +## [3.1.1](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@3.1.0...istanbul-lib-instrument@3.1.1) (2019-03-12) + + +### Bug Fixes + +* Honor istanbul ignore next hints placed before export statement. ([#298](https://github.com/istanbuljs/istanbuljs/issues/298)) ([f24795d](https://github.com/istanbuljs/istanbuljs/commit/f24795d)), closes [#297](https://github.com/istanbuljs/istanbuljs/issues/297) + + + + + +# [3.1.0](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@3.0.1...istanbul-lib-instrument@3.1.0) (2019-01-26) + + +### Features + +* dont skip for loop initialization instrumentation ([#188](https://github.com/istanbuljs/istanbuljs/issues/188)) ([2e0258e](https://github.com/istanbuljs/istanbuljs/commit/2e0258e)) +* New options coverageGlobalScope and coverageGlobalScopeFunc. ([#200](https://github.com/istanbuljs/istanbuljs/issues/200)) ([25509c7](https://github.com/istanbuljs/istanbuljs/commit/25509c7)), closes [#199](https://github.com/istanbuljs/istanbuljs/issues/199) + + + + + + +## [3.0.1](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@3.0.0...istanbul-lib-instrument@3.0.1) (2018-12-25) + + + + +**Note:** Version bump only for package istanbul-lib-instrument + + +# [3.0.0](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@2.3.2...istanbul-lib-instrument@3.0.0) (2018-09-06) + + +### Chores + +* Update test for babel 7. ([#218](https://github.com/istanbuljs/istanbuljs/issues/218)) ([9cf4d43](https://github.com/istanbuljs/istanbuljs/commit/9cf4d43)), closes [#205](https://github.com/istanbuljs/istanbuljs/issues/205) + + +### Features + +* Add option plugins ([#205](https://github.com/istanbuljs/istanbuljs/issues/205)) ([312f81f](https://github.com/istanbuljs/istanbuljs/commit/312f81f)) +* Update babel to 7.0.0. ([#215](https://github.com/istanbuljs/istanbuljs/issues/215)) ([8a96613](https://github.com/istanbuljs/istanbuljs/commit/8a96613)) + + +### BREAKING CHANGES + +* was added which requires an option for the `decorators` +plugin. Add it to get tests working again, commit updated api.md. + + + + + +## [2.3.2](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@2.3.1...istanbul-lib-instrument@2.3.2) (2018-07-24) + + + + +**Note:** Version bump only for package istanbul-lib-instrument + + +## [2.3.1](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@2.3.0...istanbul-lib-instrument@2.3.1) (2018-07-07) + + +### Bug Fixes + +* Don't ignore src/visitor.js for self test. ([#194](https://github.com/istanbuljs/istanbuljs/issues/194)) ([71b815d](https://github.com/istanbuljs/istanbuljs/commit/71b815d)) + + + + + +# [2.3.0](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@2.2.1...istanbul-lib-instrument@2.3.0) (2018-06-27) + + +### Features + +* update pinned babel version to latest release. ([#189](https://github.com/istanbuljs/istanbuljs/issues/189)) ([ac8ec07](https://github.com/istanbuljs/istanbuljs/commit/ac8ec07)) + + + + + +## [2.2.1](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@2.2.0...istanbul-lib-instrument@2.2.1) (2018-06-26) + + +### Bug Fixes + +* Instrument ObjectMethod's. ([#182](https://github.com/istanbuljs/istanbuljs/issues/182)) ([126f09d](https://github.com/istanbuljs/istanbuljs/commit/126f09d)) +* update default args test guard to work on supported versions. ([#185](https://github.com/istanbuljs/istanbuljs/issues/185)) ([955511a](https://github.com/istanbuljs/istanbuljs/commit/955511a)) + + + + + +# [2.2.0](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@2.0.2...istanbul-lib-instrument@2.2.0) (2018-06-06) + + +### Features + +* add support for optional catch binding ([#175](https://github.com/istanbuljs/istanbuljs/issues/175)) ([088dd9f](https://github.com/istanbuljs/istanbuljs/commit/088dd9f)) + + + + + +# [2.1.0](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@2.0.2...istanbul-lib-instrument@2.1.0) (2018-05-31) + + +### Features + +* add support for optional catch binding ([#175](https://github.com/istanbuljs/istanbuljs/issues/175)) ([088dd9f](https://github.com/istanbuljs/istanbuljs/commit/088dd9f)) + + + + + +## [2.0.2](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@2.0.1...istanbul-lib-instrument@2.0.2) (2018-05-31) + + + + +**Note:** Version bump only for package istanbul-lib-instrument + + +## [2.0.1](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@2.0.0...istanbul-lib-instrument@2.0.1) (2018-05-31) + + +### Bug Fixes + +* should import [@babel](https://github.com/babel)/template ([85a0d1a](https://github.com/istanbuljs/istanbuljs/commit/85a0d1a)) + + + + + +# [2.0.0](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@1.10.1...istanbul-lib-instrument@2.0.0) (2018-05-31) + + +### Bug Fixes + +* parenthesize superClass on non-idetifier case ([#158](https://github.com/istanbuljs/istanbuljs/issues/158)) ([6202c88](https://github.com/istanbuljs/istanbuljs/commit/6202c88)) + + +### Chores + +* upgrade babel in instrumenter ([#174](https://github.com/istanbuljs/istanbuljs/issues/174)) ([ce23e91](https://github.com/istanbuljs/istanbuljs/commit/ce23e91)) + + +### BREAKING CHANGES + +* babel@7 drops Node@4 support + + + + + +## [1.10.1](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@1.10.0...istanbul-lib-instrument@1.10.1) (2018-03-09) + + +### Bug Fixes + +* default value for ignorelassMethods ([#151](https://github.com/istanbuljs/istanbuljs/issues/151)) ([5dd88e8](https://github.com/istanbuljs/istanbuljs/commit/5dd88e8)) + + + + + +# [1.10.0](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@1.9.2...istanbul-lib-instrument@1.10.0) (2018-03-04) + + +### Features + +* allows an array of ignored method names to be provided ([#127](https://github.com/istanbuljs/istanbuljs/issues/127)) ([67918e2](https://github.com/istanbuljs/istanbuljs/commit/67918e2)) + + + + + +## [1.9.2](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@1.9.1...istanbul-lib-instrument@1.9.2) (2018-02-13) + + +### Bug Fixes + +* compatibility with babel 7 ([#135](https://github.com/istanbuljs/istanbuljs/issues/135)) ([6cac849](https://github.com/istanbuljs/istanbuljs/commit/6cac849)) +* handle instrumentation when a function is called Function ([#131](https://github.com/istanbuljs/istanbuljs/issues/131)) ([b12a07e](https://github.com/istanbuljs/istanbuljs/commit/b12a07e)) +* proper passing of the preserveComments option to babel ([#122](https://github.com/istanbuljs/istanbuljs/issues/122)) ([470bb0e](https://github.com/istanbuljs/istanbuljs/commit/470bb0e)) +* update instrument, account for lack of arrow expression ([#119](https://github.com/istanbuljs/istanbuljs/issues/119)) ([#125](https://github.com/istanbuljs/istanbuljs/issues/125)) ([0968206](https://github.com/istanbuljs/istanbuljs/commit/0968206)) + + + + + +## [1.9.1](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@1.9.0...istanbul-lib-instrument@1.9.1) (2017-10-22) + + +### Bug Fixes + +* address issue with class instrumentation ([#111](https://github.com/istanbuljs/istanbuljs/issues/111)) ([cbd1c14](https://github.com/istanbuljs/istanbuljs/commit/cbd1c14)) + + + + + +# [1.9.0](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@1.8.0...istanbul-lib-instrument@1.9.0) (2017-10-21) + + +### Bug Fixes + +* support conditional expression for superClass ([#106](https://github.com/istanbuljs/istanbuljs/issues/106)) ([aae256f](https://github.com/istanbuljs/istanbuljs/commit/aae256f)) + + +### Features + +* add support for ignoring entire files ([#108](https://github.com/istanbuljs/istanbuljs/issues/108)) ([f12da65](https://github.com/istanbuljs/istanbuljs/commit/f12da65)) + + + + + +# [1.8.0](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@1.7.5...istanbul-lib-instrument@1.8.0) (2017-09-05) + + +### Features + +* add support for object-spread syntax ([#82](https://github.com/istanbuljs/istanbuljs/issues/82)) ([28d5566](https://github.com/istanbuljs/istanbuljs/commit/28d5566)) + + + + + +## [1.7.5](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@1.7.4...istanbul-lib-instrument@1.7.5) (2017-08-23) + + +### Bug Fixes + +* name of function is now preserved or named exports ([#79](https://github.com/istanbuljs/istanbuljs/issues/79)) ([2ce8974](https://github.com/istanbuljs/istanbuljs/commit/2ce8974)) + + + + + +## [1.7.4](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@1.7.3...istanbul-lib-instrument@1.7.4) (2017-07-16) + + +### Bug Fixes + +* update increment operator to appropriate expression type ([#74](https://github.com/istanbuljs/istanbuljs/issues/74)) ([dc69e66](https://github.com/istanbuljs/istanbuljs/commit/dc69e66)) + + + + + +## [1.7.3](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@1.7.2...istanbul-lib-instrument@1.7.3) (2017-06-25) + + + + + +## [1.7.2](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@1.7.1...istanbul-lib-instrument@1.7.2) (2017-05-27) + + +### Bug Fixes + +* hoist statement counter for class variables, so that name is preserved ([#60](https://github.com/istanbuljs/istanbuljs/issues/60)) ([120d221](https://github.com/istanbuljs/istanbuljs/commit/120d221)) + + + + + +## [1.7.1](https://github.com/istanbuljs/istanbul-lib-instrument/compare/istanbul-lib-instrument@1.7.0...istanbul-lib-instrument@1.7.1) (2017-04-29) + + +### Bug Fixes + +* don't instrument a file if it has already been instrumented ([#38](https://github.com/istanbuljs/istanbuljs/issues/38)) ([9c38e4e](https://github.com/istanbuljs/istanbul-lib-instrument/commit/9c38e4e)) + + + + + +# [1.7.0](https://github.com/istanbuljs/istanbul-lib-instrument/compare/istanbul-lib-instrument@1.6.2...istanbul-lib-instrument@1.7.0) (2017-03-27) + + +### Features + +* use extended babylon support; adding features such as jsx ([#22](https://github.com/istanbuljs/istanbuljs/issues/22)) ([11c2438](https://github.com/istanbuljs/istanbul-lib-instrument/commit/11c2438)) + + +## [1.6.2](https://github.com/istanbuljs/istanbul-lib-instrument/compare/istanbul-lib-instrument@1.6.1...istanbul-lib-instrument@1.6.2) (2017-03-22) + + +### Bug Fixes + +* loc is sometimes not defined, so loc.start fails see [#99](https://github.com/istanbuljs/istanbuljs/issues/99) ([#18](https://github.com/istanbuljs/istanbuljs/issues/18)) ([df85ba6](https://github.com/istanbuljs/istanbul-lib-instrument/commit/df85ba6)) + + +## [1.6.1](https://github.com/istanbuljs/istanbul-lib-instrument/compare/istanbul-lib-instrument@1.6.0...istanbul-lib-instrument@1.6.1) (2017-03-21) + + +# [1.6.0](https://github.com/istanbuljs/istanbul-lib-instrument/compare/istanbul-lib-instrument@1.4.2...istanbul-lib-instrument@1.6.0) (2017-03-21) + + +### Features + +* adds line number property back to coverage.json ([b03b927](https://github.com/istanbuljs/istanbul-lib-instrument/commit/b03b927)) + + +## [1.4.2](https://github.com/istanbuljs/istanbul-lib-instrument/compare/v1.4.1...v1.4.2) (2017-01-04) + + +### Bug Fixes + +* only hoist counter for a smaller subset of function declarations ([9f8931e](https://github.com/istanbuljs/istanbul-lib-instrument/commit/9f8931e)) + + + + +## [1.4.1](https://github.com/istanbuljs/istanbul-lib-instrument/compare/v1.4.0...v1.4.1) (2017-01-04) + + +### Bug Fixes + +* address regression discussed in https://github.com/istanbuljs/babel-plugin-istanbul/issues/78 ([#40](https://github.com/istanbuljs/istanbul-lib-instrument/issues/40)) ([7f458a3](https://github.com/istanbuljs/istanbul-lib-instrument/commit/7f458a3)) + + + + +# [1.4.0](https://github.com/istanbuljs/istanbul-lib-instrument/compare/v1.3.1...v1.4.0) (2017-01-02) + + +### Features + +* preserve inferred function names ([#38](https://github.com/istanbuljs/istanbul-lib-instrument/issues/38)) ([312666e](https://github.com/istanbuljs/istanbul-lib-instrument/commit/312666e)) + + + + +## [1.3.1](https://github.com/istanbuljs/istanbul-lib-instrument/compare/v1.3.0...v1.3.1) (2016-12-27) + + +### Bug Fixes + +* function declaration assignment now retains function name ([#33](https://github.com/istanbuljs/istanbul-lib-instrument/issues/33)) ([2d781da](https://github.com/istanbuljs/istanbul-lib-instrument/commit/2d781da)) + + + + +# [1.3.0](https://github.com/istanbuljs/istanbul-lib-instrument/compare/v1.2.0...v1.3.0) (2016-11-10) + + +### Features + +* allow an input source-map to be passed to instrumentSync() ([#23](https://github.com/istanbuljs/istanbul-lib-instrument/issues/23)) ([b08e4f5](https://github.com/istanbuljs/istanbul-lib-instrument/commit/b08e4f5)) + + + + +# [1.2.0](https://github.com/istanbuljs/istanbul-lib-instrument/compare/v1.1.4...v1.2.0) (2016-10-25) + + +### Features + +* implement function to extract empty coverage data from an instrumented file ([#28](https://github.com/istanbuljs/istanbul-lib-instrument/issues/28)) ([06d0ef6](https://github.com/istanbuljs/istanbul-lib-instrument/commit/06d0ef6)) + + + + +## [1.1.4](https://github.com/istanbuljs/istanbul-lib-instrument/compare/v1.1.3...v1.1.4) (2016-10-17) + + +### Bug Fixes + +* hoist coverage variable to very top of file ([#26](https://github.com/istanbuljs/istanbul-lib-instrument/issues/26)) ([0225e8c](https://github.com/istanbuljs/istanbul-lib-instrument/commit/0225e8c)) + + + + +## [1.1.3](https://github.com/istanbuljs/istanbul-lib-instrument/compare/v1.1.2...v1.1.3) (2016-09-13) + + +### Performance Improvements + +* simplify coverage variable naming https://github.com/istanbuljs/istanbul-lib-instrument/pull/24 ([7252aae](https://github.com/istanbuljs/istanbul-lib-instrument/commit/7252aae)) + + + + +## [1.1.2](https://github.com/istanbuljs/istanbul-lib-instrument/compare/v1.1.1...v1.1.2) (2016-09-08) + + +### Performance Improvements + +* use zero-based numeric indices for much faster instrumented code ([#22](https://github.com/istanbuljs/istanbul-lib-instrument/issues/22)) ([5b401f5](https://github.com/istanbuljs/istanbul-lib-instrument/commit/5b401f5)) + + + + +## [1.1.1](https://github.com/istanbuljs/istanbul-lib-instrument/compare/v1.1.0...v1.1.1) (2016-08-30) + + +### Bug Fixes + +* upgrade istanbul-lib-coverage ([eb9b1f6](https://github.com/istanbuljs/istanbul-lib-instrument/commit/eb9b1f6)) + + + + +# [1.1.0](https://github.com/istanbuljs/istanbul-lib-instrument/compare/v1.1.0-alpha.4...v1.1.0) (2016-08-11) + + +### Bug Fixes + +* guard against invalid loc ([#16](https://github.com/istanbuljs/istanbul-lib-instrument/issues/16)) ([23ebfc3](https://github.com/istanbuljs/istanbul-lib-instrument/commit/23ebfc3)) + + + + +# [1.1.0-alpha.4](https://github.com/istanbuljs/istanbul-lib-instrument/compare/v1.0.0-alpha.5...v1.1.0-alpha.4) (2016-07-20) + + +### Bug Fixes + +* require more performant babel-generator ([#15](https://github.com/istanbuljs/istanbul-lib-instrument/issues/15)) ([21b2563](https://github.com/istanbuljs/istanbul-lib-instrument/commit/21b2563)) diff --git a/server/api/node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument/LICENSE b/server/api/node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument/LICENSE new file mode 100644 index 0000000..d55d291 --- /dev/null +++ b/server/api/node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument/LICENSE @@ -0,0 +1,24 @@ +Copyright 2012-2015 Yahoo! Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the Yahoo! Inc. nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL YAHOO! INC. BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/server/api/node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument/README.md b/server/api/node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument/README.md new file mode 100644 index 0000000..902831c --- /dev/null +++ b/server/api/node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument/README.md @@ -0,0 +1,22 @@ +## istanbul-lib-instrument + +[![Build Status](https://travis-ci.org/istanbuljs/istanbul-lib-instrument.svg?branch=master)](https://travis-ci.org/istanbuljs/istanbul-lib-instrument) + +Istanbul instrumenter library. + +Version 1.1.x now implements instrumentation using `Babel`. The implementation is inspired +by prior art by @dtinth as demonstrated in the `__coverage__` babel plugin. + +It provides 2 "modes" of instrumentation. + +- The old API that is mostly unchanged (except for incompatibilities noted) and + performs the instrumentation using babel as a library. + +- A `programVisitor` function for the Babel AST that can be used by a Babel plugin + to emit instrumentation for ES6 code directly without any source map + processing. This is the preferred path for babel users. The Babel plugin is + called `babel-plugin-istanbul`. + +Incompatibilities and changes to instrumentation behavior can be found in +[v0-changes.md](v0-changes.md). + diff --git a/server/api/node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument/package.json b/server/api/node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument/package.json new file mode 100644 index 0000000..bcf03e2 --- /dev/null +++ b/server/api/node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument/package.json @@ -0,0 +1,50 @@ +{ + "name": "istanbul-lib-instrument", + "version": "5.2.1", + "description": "Core istanbul API for JS code coverage", + "author": "Krishnan Anantheswaran ", + "main": "src/index.js", + "files": [ + "src" + ], + "scripts": { + "test": "nyc mocha" + }, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "devDependencies": { + "@babel/cli": "^7.7.5", + "chai": "^4.2.0", + "clone": "^2.1.2", + "debug": "^4.1.1", + "documentation": "^12.1.4", + "js-yaml": "^3.13.1", + "mocha": "^6.2.3", + "nopt": "^4.0.1", + "nyc": "^15.1.0" + }, + "license": "BSD-3-Clause", + "bugs": { + "url": "https://github.com/istanbuljs/istanbuljs/issues" + }, + "homepage": "https://istanbul.js.org/", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/istanbuljs/istanbuljs.git", + "directory": "packages/istanbul-lib-instrument" + }, + "keywords": [ + "coverage", + "istanbul", + "js", + "instrumentation" + ], + "engines": { + "node": ">=8" + } +} diff --git a/server/api/node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument/src/constants.js b/server/api/node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument/src/constants.js new file mode 100644 index 0000000..2cd402b --- /dev/null +++ b/server/api/node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument/src/constants.js @@ -0,0 +1,14 @@ +const { createHash } = require('crypto'); +const { name } = require('../package.json'); +// TODO: increment this version if there are schema changes +// that are not backwards compatible: +const VERSION = '4'; + +const SHA = 'sha1'; +module.exports = { + SHA, + MAGIC_KEY: '_coverageSchema', + MAGIC_VALUE: createHash(SHA) + .update(name + '@' + VERSION) + .digest('hex') +}; diff --git a/server/api/node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument/src/index.js b/server/api/node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument/src/index.js new file mode 100644 index 0000000..33d2a4c --- /dev/null +++ b/server/api/node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument/src/index.js @@ -0,0 +1,21 @@ +const { defaults } = require('@istanbuljs/schema'); +const Instrumenter = require('./instrumenter'); +const programVisitor = require('./visitor'); +const readInitialCoverage = require('./read-coverage'); + +/** + * createInstrumenter creates a new instrumenter with the + * supplied options. + * @param {Object} opts - instrumenter options. See the documentation + * for the Instrumenter class. + */ +function createInstrumenter(opts) { + return new Instrumenter(opts); +} + +module.exports = { + createInstrumenter, + programVisitor, + readInitialCoverage, + defaultOpts: defaults.instrumenter +}; diff --git a/server/api/node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument/src/instrumenter.js b/server/api/node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument/src/instrumenter.js new file mode 100644 index 0000000..3322e6e --- /dev/null +++ b/server/api/node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument/src/instrumenter.js @@ -0,0 +1,162 @@ +/* + Copyright 2012-2015, Yahoo Inc. + Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. + */ +const { transformSync } = require('@babel/core'); +const { defaults } = require('@istanbuljs/schema'); +const programVisitor = require('./visitor'); +const readInitialCoverage = require('./read-coverage'); + +/** + * Instrumenter is the public API for the instrument library. + * It is typically used for ES5 code. For ES6 code that you + * are already running under `babel` use the coverage plugin + * instead. + * @param {Object} opts optional. + * @param {string} [opts.coverageVariable=__coverage__] name of global coverage variable. + * @param {boolean} [opts.reportLogic=false] report boolean value of logical expressions. + * @param {boolean} [opts.preserveComments=false] preserve comments in output. + * @param {boolean} [opts.compact=true] generate compact code. + * @param {boolean} [opts.esModules=false] set to true to instrument ES6 modules. + * @param {boolean} [opts.autoWrap=false] set to true to allow `return` statements outside of functions. + * @param {boolean} [opts.produceSourceMap=false] set to true to produce a source map for the instrumented code. + * @param {Array} [opts.ignoreClassMethods=[]] set to array of class method names to ignore for coverage. + * @param {Function} [opts.sourceMapUrlCallback=null] a callback function that is called when a source map URL + * is found in the original code. This function is called with the source file name and the source map URL. + * @param {boolean} [opts.debug=false] - turn debugging on. + * @param {array} [opts.parserPlugins] - set babel parser plugins, see @istanbuljs/schema for defaults. + * @param {string} [opts.coverageGlobalScope=this] the global coverage variable scope. + * @param {boolean} [opts.coverageGlobalScopeFunc=true] use an evaluated function to find coverageGlobalScope. + */ +class Instrumenter { + constructor(opts = {}) { + this.opts = { + ...defaults.instrumenter, + ...opts + }; + this.fileCoverage = null; + this.sourceMap = null; + } + /** + * instrument the supplied code and track coverage against the supplied + * filename. It throws if invalid code is passed to it. ES5 and ES6 syntax + * is supported. To instrument ES6 modules, make sure that you set the + * `esModules` property to `true` when creating the instrumenter. + * + * @param {string} code - the code to instrument + * @param {string} filename - the filename against which to track coverage. + * @param {object} [inputSourceMap] - the source map that maps the not instrumented code back to it's original form. + * Is assigned to the coverage object and therefore, is available in the json output and can be used to remap the + * coverage to the untranspiled source. + * @returns {string} the instrumented code. + */ + instrumentSync(code, filename, inputSourceMap) { + if (typeof code !== 'string') { + throw new Error('Code must be a string'); + } + filename = filename || String(new Date().getTime()) + '.js'; + const { opts } = this; + let output = {}; + const babelOpts = { + configFile: false, + babelrc: false, + ast: true, + filename: filename || String(new Date().getTime()) + '.js', + inputSourceMap, + sourceMaps: opts.produceSourceMap, + compact: opts.compact, + comments: opts.preserveComments, + parserOpts: { + allowReturnOutsideFunction: opts.autoWrap, + sourceType: opts.esModules ? 'module' : 'script', + plugins: opts.parserPlugins + }, + plugins: [ + [ + ({ types }) => { + const ee = programVisitor(types, filename, { + coverageVariable: opts.coverageVariable, + reportLogic: opts.reportLogic, + coverageGlobalScope: opts.coverageGlobalScope, + coverageGlobalScopeFunc: + opts.coverageGlobalScopeFunc, + ignoreClassMethods: opts.ignoreClassMethods, + inputSourceMap + }); + + return { + visitor: { + Program: { + enter: ee.enter, + exit(path) { + output = ee.exit(path); + } + } + } + }; + } + ] + ] + }; + + const codeMap = transformSync(code, babelOpts); + + if (!output || !output.fileCoverage) { + const initialCoverage = + readInitialCoverage(codeMap.ast) || + /* istanbul ignore next: paranoid check */ {}; + this.fileCoverage = initialCoverage.coverageData; + this.sourceMap = inputSourceMap; + return code; + } + + this.fileCoverage = output.fileCoverage; + this.sourceMap = codeMap.map; + const cb = this.opts.sourceMapUrlCallback; + if (cb && output.sourceMappingURL) { + cb(filename, output.sourceMappingURL); + } + + return codeMap.code; + } + /** + * callback-style instrument method that calls back with an error + * as opposed to throwing one. Note that in the current implementation, + * the callback will be called in the same process tick and is not asynchronous. + * + * @param {string} code - the code to instrument + * @param {string} filename - the filename against which to track coverage. + * @param {Function} callback - the callback + * @param {Object} inputSourceMap - the source map that maps the not instrumented code back to it's original form. + * Is assigned to the coverage object and therefore, is available in the json output and can be used to remap the + * coverage to the untranspiled source. + */ + instrument(code, filename, callback, inputSourceMap) { + if (!callback && typeof filename === 'function') { + callback = filename; + filename = null; + } + try { + const out = this.instrumentSync(code, filename, inputSourceMap); + callback(null, out); + } catch (ex) { + callback(ex); + } + } + /** + * returns the file coverage object for the last file instrumented. + * @returns {Object} the file coverage object. + */ + lastFileCoverage() { + return this.fileCoverage; + } + /** + * returns the source map produced for the last file instrumented. + * @returns {null|Object} the source map object. + */ + lastSourceMap() { + return this.sourceMap; + } +} + +module.exports = Instrumenter; diff --git a/server/api/node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument/src/read-coverage.js b/server/api/node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument/src/read-coverage.js new file mode 100644 index 0000000..5b76dbb --- /dev/null +++ b/server/api/node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument/src/read-coverage.js @@ -0,0 +1,77 @@ +const { parseSync, traverse } = require('@babel/core'); +const { defaults } = require('@istanbuljs/schema'); +const { MAGIC_KEY, MAGIC_VALUE } = require('./constants'); + +function getAst(code) { + if (typeof code === 'object' && typeof code.type === 'string') { + // Assume code is already a babel ast. + return code; + } + + if (typeof code !== 'string') { + throw new Error('Code must be a string'); + } + + // Parse as leniently as possible + return parseSync(code, { + babelrc: false, + configFile: false, + parserOpts: { + allowAwaitOutsideFunction: true, + allowImportExportEverywhere: true, + allowReturnOutsideFunction: true, + allowSuperOutsideMethod: true, + sourceType: 'script', + plugins: defaults.instrumenter.parserPlugins + } + }); +} + +module.exports = function readInitialCoverage(code) { + const ast = getAst(code); + + let covScope; + traverse(ast, { + ObjectProperty(path) { + const { node } = path; + if ( + !node.computed && + path.get('key').isIdentifier() && + node.key.name === MAGIC_KEY + ) { + const magicValue = path.get('value').evaluate(); + if (!magicValue.confident || magicValue.value !== MAGIC_VALUE) { + return; + } + covScope = + path.scope.getFunctionParent() || + path.scope.getProgramParent(); + path.stop(); + } + } + }); + + if (!covScope) { + return null; + } + + const result = {}; + + for (const key of ['path', 'hash', 'gcv', 'coverageData']) { + const binding = covScope.getOwnBinding(key); + if (!binding) { + return null; + } + const valuePath = binding.path.get('init'); + const value = valuePath.evaluate(); + if (!value.confident) { + return null; + } + result[key] = value.value; + } + + delete result.coverageData[MAGIC_KEY]; + delete result.coverageData.hash; + + return result; +}; diff --git a/server/api/node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument/src/source-coverage.js b/server/api/node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument/src/source-coverage.js new file mode 100644 index 0000000..ec3f234 --- /dev/null +++ b/server/api/node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument/src/source-coverage.js @@ -0,0 +1,135 @@ +const { classes } = require('istanbul-lib-coverage'); + +function cloneLocation(loc) { + return { + start: { + line: loc && loc.start.line, + column: loc && loc.start.column + }, + end: { + line: loc && loc.end.line, + column: loc && loc.end.column + } + }; +} +/** + * SourceCoverage provides mutation methods to manipulate the structure of + * a file coverage object. Used by the instrumenter to create a full coverage + * object for a file incrementally. + * + * @private + * @param pathOrObj {String|Object} - see the argument for {@link FileCoverage} + * @extends FileCoverage + * @constructor + */ +class SourceCoverage extends classes.FileCoverage { + constructor(pathOrObj) { + super(pathOrObj); + this.meta = { + last: { + s: 0, + f: 0, + b: 0 + } + }; + } + + newStatement(loc) { + const s = this.meta.last.s; + this.data.statementMap[s] = cloneLocation(loc); + this.data.s[s] = 0; + this.meta.last.s += 1; + return s; + } + + newFunction(name, decl, loc) { + const f = this.meta.last.f; + name = name || '(anonymous_' + f + ')'; + this.data.fnMap[f] = { + name, + decl: cloneLocation(decl), + loc: cloneLocation(loc), + // DEPRECATED: some legacy reports require this info. + line: loc && loc.start.line + }; + this.data.f[f] = 0; + this.meta.last.f += 1; + return f; + } + + newBranch(type, loc, isReportLogic = false) { + const b = this.meta.last.b; + this.data.b[b] = []; + this.data.branchMap[b] = { + loc: cloneLocation(loc), + type, + locations: [], + // DEPRECATED: some legacy reports require this info. + line: loc && loc.start.line + }; + this.meta.last.b += 1; + this.maybeNewBranchTrue(type, b, isReportLogic); + return b; + } + + maybeNewBranchTrue(type, name, isReportLogic) { + if (!isReportLogic) { + return; + } + if (type !== 'binary-expr') { + return; + } + this.data.bT = this.data.bT || {}; + this.data.bT[name] = []; + } + + addBranchPath(name, location) { + const bMeta = this.data.branchMap[name]; + const counts = this.data.b[name]; + + /* istanbul ignore if: paranoid check */ + if (!bMeta) { + throw new Error('Invalid branch ' + name); + } + bMeta.locations.push(cloneLocation(location)); + counts.push(0); + this.maybeAddBranchTrue(name); + return counts.length - 1; + } + + maybeAddBranchTrue(name) { + if (!this.data.bT) { + return; + } + const countsTrue = this.data.bT[name]; + if (!countsTrue) { + return; + } + countsTrue.push(0); + } + + /** + * Assigns an input source map to the coverage that can be used + * to remap the coverage output to the original source + * @param sourceMap {object} the source map + */ + inputSourceMap(sourceMap) { + this.data.inputSourceMap = sourceMap; + } + + freeze() { + // prune empty branches + const map = this.data.branchMap; + const branches = this.data.b; + const branchesT = this.data.bT || {}; + Object.keys(map).forEach(b => { + if (map[b].locations.length === 0) { + delete map[b]; + delete branches[b]; + delete branchesT[b]; + } + }); + } +} + +module.exports = { SourceCoverage }; diff --git a/server/api/node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument/src/visitor.js b/server/api/node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument/src/visitor.js new file mode 100644 index 0000000..46c7129 --- /dev/null +++ b/server/api/node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument/src/visitor.js @@ -0,0 +1,843 @@ +const { createHash } = require('crypto'); +const { template } = require('@babel/core'); +const { defaults } = require('@istanbuljs/schema'); +const { SourceCoverage } = require('./source-coverage'); +const { SHA, MAGIC_KEY, MAGIC_VALUE } = require('./constants'); + +// pattern for istanbul to ignore a section +const COMMENT_RE = /^\s*istanbul\s+ignore\s+(if|else|next)(?=\W|$)/; +// pattern for istanbul to ignore the whole file +const COMMENT_FILE_RE = /^\s*istanbul\s+ignore\s+(file)(?=\W|$)/; +// source map URL pattern +const SOURCE_MAP_RE = /[#@]\s*sourceMappingURL=(.*)\s*$/m; + +// generate a variable name from hashing the supplied file path +function genVar(filename) { + const hash = createHash(SHA); + hash.update(filename); + return 'cov_' + parseInt(hash.digest('hex').substr(0, 12), 16).toString(36); +} + +// VisitState holds the state of the visitor, provides helper functions +// and is the `this` for the individual coverage visitors. +class VisitState { + constructor( + types, + sourceFilePath, + inputSourceMap, + ignoreClassMethods = [], + reportLogic = false + ) { + this.varName = genVar(sourceFilePath); + this.attrs = {}; + this.nextIgnore = null; + this.cov = new SourceCoverage(sourceFilePath); + + if (typeof inputSourceMap !== 'undefined') { + this.cov.inputSourceMap(inputSourceMap); + } + this.ignoreClassMethods = ignoreClassMethods; + this.types = types; + this.sourceMappingURL = null; + this.reportLogic = reportLogic; + } + + // should we ignore the node? Yes, if specifically ignoring + // or if the node is generated. + shouldIgnore(path) { + return this.nextIgnore || !path.node.loc; + } + + // extract the ignore comment hint (next|if|else) or null + hintFor(node) { + let hint = null; + if (node.leadingComments) { + node.leadingComments.forEach(c => { + const v = ( + c.value || /* istanbul ignore next: paranoid check */ '' + ).trim(); + const groups = v.match(COMMENT_RE); + if (groups) { + hint = groups[1]; + } + }); + } + return hint; + } + + // extract a source map URL from comments and keep track of it + maybeAssignSourceMapURL(node) { + const extractURL = comments => { + if (!comments) { + return; + } + comments.forEach(c => { + const v = ( + c.value || /* istanbul ignore next: paranoid check */ '' + ).trim(); + const groups = v.match(SOURCE_MAP_RE); + if (groups) { + this.sourceMappingURL = groups[1]; + } + }); + }; + extractURL(node.leadingComments); + extractURL(node.trailingComments); + } + + // for these expressions the statement counter needs to be hoisted, so + // function name inference can be preserved + counterNeedsHoisting(path) { + return ( + path.isFunctionExpression() || + path.isArrowFunctionExpression() || + path.isClassExpression() + ); + } + + // all the generic stuff that needs to be done on enter for every node + onEnter(path) { + const n = path.node; + + this.maybeAssignSourceMapURL(n); + + // if already ignoring, nothing more to do + if (this.nextIgnore !== null) { + return; + } + // check hint to see if ignore should be turned on + const hint = this.hintFor(n); + if (hint === 'next') { + this.nextIgnore = n; + return; + } + // else check custom node attribute set by a prior visitor + if (this.getAttr(path.node, 'skip-all') !== null) { + this.nextIgnore = n; + } + + // else check for ignored class methods + if ( + path.isFunctionExpression() && + this.ignoreClassMethods.some( + name => path.node.id && name === path.node.id.name + ) + ) { + this.nextIgnore = n; + return; + } + if ( + path.isClassMethod() && + this.ignoreClassMethods.some(name => name === path.node.key.name) + ) { + this.nextIgnore = n; + return; + } + } + + // all the generic stuff on exit of a node, + // including reseting ignores and custom node attrs + onExit(path) { + // restore ignore status, if needed + if (path.node === this.nextIgnore) { + this.nextIgnore = null; + } + // nuke all attributes for the node + delete path.node.__cov__; + } + + // set a node attribute for the supplied node + setAttr(node, name, value) { + node.__cov__ = node.__cov__ || {}; + node.__cov__[name] = value; + } + + // retrieve a node attribute for the supplied node or null + getAttr(node, name) { + const c = node.__cov__; + if (!c) { + return null; + } + return c[name]; + } + + // + increase(type, id, index) { + const T = this.types; + const wrap = + index !== null + ? // If `index` present, turn `x` into `x[index]`. + x => T.memberExpression(x, T.numericLiteral(index), true) + : x => x; + return T.updateExpression( + '++', + wrap( + T.memberExpression( + T.memberExpression( + T.callExpression(T.identifier(this.varName), []), + T.identifier(type) + ), + T.numericLiteral(id), + true + ) + ) + ); + } + + // Reads the logic expression conditions and conditionally increments truthy counter. + increaseTrue(type, id, index, node) { + const T = this.types; + const tempName = `${this.varName}_temp`; + + return T.sequenceExpression([ + T.assignmentExpression( + '=', + T.memberExpression( + T.callExpression(T.identifier(this.varName), []), + T.identifier(tempName) + ), + node // Only evaluates once. + ), + T.parenthesizedExpression( + T.conditionalExpression( + this.validateTrueNonTrivial(T, tempName), + this.increase(type, id, index), + T.nullLiteral() + ) + ), + T.memberExpression( + T.callExpression(T.identifier(this.varName), []), + T.identifier(tempName) + ) + ]); + } + + validateTrueNonTrivial(T, tempName) { + return T.logicalExpression( + '&&', + T.memberExpression( + T.callExpression(T.identifier(this.varName), []), + T.identifier(tempName) + ), + T.logicalExpression( + '&&', + T.parenthesizedExpression( + T.logicalExpression( + '||', + T.unaryExpression( + '!', + T.callExpression( + T.memberExpression( + T.identifier('Array'), + T.identifier('isArray') + ), + [ + T.memberExpression( + T.callExpression( + T.identifier(this.varName), + [] + ), + T.identifier(tempName) + ) + ] + ) + ), + T.memberExpression( + T.memberExpression( + T.callExpression( + T.identifier(this.varName), + [] + ), + T.identifier(tempName) + ), + T.identifier('length') + ) + ) + ), + T.parenthesizedExpression( + T.logicalExpression( + '||', + T.binaryExpression( + '!==', + T.callExpression( + T.memberExpression( + T.identifier('Object'), + T.identifier('getPrototypeOf') + ), + [ + T.memberExpression( + T.callExpression( + T.identifier(this.varName), + [] + ), + T.identifier(tempName) + ) + ] + ), + T.memberExpression( + T.identifier('Object'), + T.identifier('prototype') + ) + ), + T.memberExpression( + T.callExpression( + T.memberExpression( + T.identifier('Object'), + T.identifier('values') + ), + [ + T.memberExpression( + T.callExpression( + T.identifier(this.varName), + [] + ), + T.identifier(tempName) + ) + ] + ), + T.identifier('length') + ) + ) + ) + ) + ); + } + + insertCounter(path, increment) { + const T = this.types; + if (path.isBlockStatement()) { + path.node.body.unshift(T.expressionStatement(increment)); + } else if (path.isStatement()) { + path.insertBefore(T.expressionStatement(increment)); + } else if ( + this.counterNeedsHoisting(path) && + T.isVariableDeclarator(path.parentPath) + ) { + // make an attempt to hoist the statement counter, so that + // function names are maintained. + const parent = path.parentPath.parentPath; + if (parent && T.isExportNamedDeclaration(parent.parentPath)) { + parent.parentPath.insertBefore( + T.expressionStatement(increment) + ); + } else if ( + parent && + (T.isProgram(parent.parentPath) || + T.isBlockStatement(parent.parentPath)) + ) { + parent.insertBefore(T.expressionStatement(increment)); + } else { + path.replaceWith(T.sequenceExpression([increment, path.node])); + } + } /* istanbul ignore else: not expected */ else if ( + path.isExpression() + ) { + path.replaceWith(T.sequenceExpression([increment, path.node])); + } else { + console.error( + 'Unable to insert counter for node type:', + path.node.type + ); + } + } + + insertStatementCounter(path) { + /* istanbul ignore if: paranoid check */ + if (!(path.node && path.node.loc)) { + return; + } + const index = this.cov.newStatement(path.node.loc); + const increment = this.increase('s', index, null); + this.insertCounter(path, increment); + } + + insertFunctionCounter(path) { + const T = this.types; + /* istanbul ignore if: paranoid check */ + if (!(path.node && path.node.loc)) { + return; + } + const n = path.node; + + let dloc = null; + // get location for declaration + switch (n.type) { + case 'FunctionDeclaration': + case 'FunctionExpression': + /* istanbul ignore else: paranoid check */ + if (n.id) { + dloc = n.id.loc; + } + break; + } + if (!dloc) { + dloc = { + start: n.loc.start, + end: { line: n.loc.start.line, column: n.loc.start.column + 1 } + }; + } + + const name = path.node.id ? path.node.id.name : path.node.name; + const index = this.cov.newFunction(name, dloc, path.node.body.loc); + const increment = this.increase('f', index, null); + const body = path.get('body'); + /* istanbul ignore else: not expected */ + if (body.isBlockStatement()) { + body.node.body.unshift(T.expressionStatement(increment)); + } else { + console.error( + 'Unable to process function body node type:', + path.node.type + ); + } + } + + getBranchIncrement(branchName, loc) { + const index = this.cov.addBranchPath(branchName, loc); + return this.increase('b', branchName, index); + } + + getBranchLogicIncrement(path, branchName, loc) { + const index = this.cov.addBranchPath(branchName, loc); + return [ + this.increase('b', branchName, index), + this.increaseTrue('bT', branchName, index, path.node) + ]; + } + + insertBranchCounter(path, branchName, loc) { + const increment = this.getBranchIncrement( + branchName, + loc || path.node.loc + ); + this.insertCounter(path, increment); + } + + findLeaves(node, accumulator, parent, property) { + if (!node) { + return; + } + if (node.type === 'LogicalExpression') { + const hint = this.hintFor(node); + if (hint !== 'next') { + this.findLeaves(node.left, accumulator, node, 'left'); + this.findLeaves(node.right, accumulator, node, 'right'); + } + } else { + accumulator.push({ + node, + parent, + property + }); + } + } +} + +// generic function that takes a set of visitor methods and +// returns a visitor object with `enter` and `exit` properties, +// such that: +// +// * standard entry processing is done +// * the supplied visitors are called only when ignore is not in effect +// This relieves them from worrying about ignore states and generated nodes. +// * standard exit processing is done +// +function entries(...enter) { + // the enter function + const wrappedEntry = function(path, node) { + this.onEnter(path); + if (this.shouldIgnore(path)) { + return; + } + enter.forEach(e => { + e.call(this, path, node); + }); + }; + const exit = function(path, node) { + this.onExit(path, node); + }; + return { + enter: wrappedEntry, + exit + }; +} + +function coverStatement(path) { + this.insertStatementCounter(path); +} + +/* istanbul ignore next: no node.js support */ +function coverAssignmentPattern(path) { + const n = path.node; + const b = this.cov.newBranch('default-arg', n.loc); + this.insertBranchCounter(path.get('right'), b); +} + +function coverFunction(path) { + this.insertFunctionCounter(path); +} + +function coverVariableDeclarator(path) { + this.insertStatementCounter(path.get('init')); +} + +function coverClassPropDeclarator(path) { + this.insertStatementCounter(path.get('value')); +} + +function makeBlock(path) { + const T = this.types; + if (!path.node) { + path.replaceWith(T.blockStatement([])); + } + if (!path.isBlockStatement()) { + path.replaceWith(T.blockStatement([path.node])); + path.node.loc = path.node.body[0].loc; + path.node.body[0].leadingComments = path.node.leadingComments; + path.node.leadingComments = undefined; + } +} + +function blockProp(prop) { + return function(path) { + makeBlock.call(this, path.get(prop)); + }; +} + +function makeParenthesizedExpressionForNonIdentifier(path) { + const T = this.types; + if (path.node && !path.isIdentifier()) { + path.replaceWith(T.parenthesizedExpression(path.node)); + } +} + +function parenthesizedExpressionProp(prop) { + return function(path) { + makeParenthesizedExpressionForNonIdentifier.call(this, path.get(prop)); + }; +} + +function convertArrowExpression(path) { + const n = path.node; + const T = this.types; + if (!T.isBlockStatement(n.body)) { + const bloc = n.body.loc; + if (n.expression === true) { + n.expression = false; + } + n.body = T.blockStatement([T.returnStatement(n.body)]); + // restore body location + n.body.loc = bloc; + // set up the location for the return statement so it gets + // instrumented + n.body.body[0].loc = bloc; + } +} + +function coverIfBranches(path) { + const n = path.node; + const hint = this.hintFor(n); + const ignoreIf = hint === 'if'; + const ignoreElse = hint === 'else'; + const branch = this.cov.newBranch('if', n.loc); + + if (ignoreIf) { + this.setAttr(n.consequent, 'skip-all', true); + } else { + this.insertBranchCounter(path.get('consequent'), branch, n.loc); + } + if (ignoreElse) { + this.setAttr(n.alternate, 'skip-all', true); + } else { + this.insertBranchCounter(path.get('alternate'), branch); + } +} + +function createSwitchBranch(path) { + const b = this.cov.newBranch('switch', path.node.loc); + this.setAttr(path.node, 'branchName', b); +} + +function coverSwitchCase(path) { + const T = this.types; + const b = this.getAttr(path.parentPath.node, 'branchName'); + /* istanbul ignore if: paranoid check */ + if (b === null) { + throw new Error('Unable to get switch branch name'); + } + const increment = this.getBranchIncrement(b, path.node.loc); + path.node.consequent.unshift(T.expressionStatement(increment)); +} + +function coverTernary(path) { + const n = path.node; + const branch = this.cov.newBranch('cond-expr', path.node.loc); + const cHint = this.hintFor(n.consequent); + const aHint = this.hintFor(n.alternate); + + if (cHint !== 'next') { + this.insertBranchCounter(path.get('consequent'), branch); + } + if (aHint !== 'next') { + this.insertBranchCounter(path.get('alternate'), branch); + } +} + +function coverLogicalExpression(path) { + const T = this.types; + if (path.parentPath.node.type === 'LogicalExpression') { + return; // already processed + } + const leaves = []; + this.findLeaves(path.node, leaves); + const b = this.cov.newBranch( + 'binary-expr', + path.node.loc, + this.reportLogic + ); + for (let i = 0; i < leaves.length; i += 1) { + const leaf = leaves[i]; + const hint = this.hintFor(leaf.node); + if (hint === 'next') { + continue; + } + + if (this.reportLogic) { + const increment = this.getBranchLogicIncrement( + leaf, + b, + leaf.node.loc + ); + if (!increment[0]) { + continue; + } + leaf.parent[leaf.property] = T.sequenceExpression([ + increment[0], + increment[1] + ]); + continue; + } + + const increment = this.getBranchIncrement(b, leaf.node.loc); + if (!increment) { + continue; + } + leaf.parent[leaf.property] = T.sequenceExpression([ + increment, + leaf.node + ]); + } +} + +const codeVisitor = { + ArrowFunctionExpression: entries(convertArrowExpression, coverFunction), + AssignmentPattern: entries(coverAssignmentPattern), + BlockStatement: entries(), // ignore processing only + ExportDefaultDeclaration: entries(), // ignore processing only + ExportNamedDeclaration: entries(), // ignore processing only + ClassMethod: entries(coverFunction), + ClassDeclaration: entries(parenthesizedExpressionProp('superClass')), + ClassProperty: entries(coverClassPropDeclarator), + ClassPrivateProperty: entries(coverClassPropDeclarator), + ObjectMethod: entries(coverFunction), + ExpressionStatement: entries(coverStatement), + BreakStatement: entries(coverStatement), + ContinueStatement: entries(coverStatement), + DebuggerStatement: entries(coverStatement), + ReturnStatement: entries(coverStatement), + ThrowStatement: entries(coverStatement), + TryStatement: entries(coverStatement), + VariableDeclaration: entries(), // ignore processing only + VariableDeclarator: entries(coverVariableDeclarator), + IfStatement: entries( + blockProp('consequent'), + blockProp('alternate'), + coverStatement, + coverIfBranches + ), + ForStatement: entries(blockProp('body'), coverStatement), + ForInStatement: entries(blockProp('body'), coverStatement), + ForOfStatement: entries(blockProp('body'), coverStatement), + WhileStatement: entries(blockProp('body'), coverStatement), + DoWhileStatement: entries(blockProp('body'), coverStatement), + SwitchStatement: entries(createSwitchBranch, coverStatement), + SwitchCase: entries(coverSwitchCase), + WithStatement: entries(blockProp('body'), coverStatement), + FunctionDeclaration: entries(coverFunction), + FunctionExpression: entries(coverFunction), + LabeledStatement: entries(coverStatement), + ConditionalExpression: entries(coverTernary), + LogicalExpression: entries(coverLogicalExpression) +}; +const globalTemplateAlteredFunction = template(` + var Function = (function(){}).constructor; + var global = (new Function(GLOBAL_COVERAGE_SCOPE))(); +`); +const globalTemplateFunction = template(` + var global = (new Function(GLOBAL_COVERAGE_SCOPE))(); +`); +const globalTemplateVariable = template(` + var global = GLOBAL_COVERAGE_SCOPE; +`); +// the template to insert at the top of the program. +const coverageTemplate = template( + ` + function COVERAGE_FUNCTION () { + var path = PATH; + var hash = HASH; + GLOBAL_COVERAGE_TEMPLATE + var gcv = GLOBAL_COVERAGE_VAR; + var coverageData = INITIAL; + var coverage = global[gcv] || (global[gcv] = {}); + if (!coverage[path] || coverage[path].hash !== hash) { + coverage[path] = coverageData; + } + + var actualCoverage = coverage[path]; + { + // @ts-ignore + COVERAGE_FUNCTION = function () { + return actualCoverage; + } + } + + return actualCoverage; + } +`, + { preserveComments: true } +); +// the rewire plugin (and potentially other babel middleware) +// may cause files to be instrumented twice, see: +// https://github.com/istanbuljs/babel-plugin-istanbul/issues/94 +// we should only instrument code for coverage the first time +// it's run through istanbul-lib-instrument. +function alreadyInstrumented(path, visitState) { + return path.scope.hasBinding(visitState.varName); +} +function shouldIgnoreFile(programNode) { + return ( + programNode.parent && + programNode.parent.comments.some(c => COMMENT_FILE_RE.test(c.value)) + ); +} + +/** + * programVisitor is a `babel` adaptor for instrumentation. + * It returns an object with two methods `enter` and `exit`. + * These should be assigned to or called from `Program` entry and exit functions + * in a babel visitor. + * These functions do not make assumptions about the state set by Babel and thus + * can be used in a context other than a Babel plugin. + * + * The exit function returns an object that currently has the following keys: + * + * `fileCoverage` - the file coverage object created for the source file. + * `sourceMappingURL` - any source mapping URL found when processing the file. + * + * @param {Object} types - an instance of babel-types. + * @param {string} sourceFilePath - the path to source file. + * @param {Object} opts - additional options. + * @param {string} [opts.coverageVariable=__coverage__] the global coverage variable name. + * @param {boolean} [opts.reportLogic=false] report boolean value of logical expressions. + * @param {string} [opts.coverageGlobalScope=this] the global coverage variable scope. + * @param {boolean} [opts.coverageGlobalScopeFunc=true] use an evaluated function to find coverageGlobalScope. + * @param {Array} [opts.ignoreClassMethods=[]] names of methods to ignore by default on classes. + * @param {object} [opts.inputSourceMap=undefined] the input source map, that maps the uninstrumented code back to the + * original code. + */ +function programVisitor(types, sourceFilePath = 'unknown.js', opts = {}) { + const T = types; + opts = { + ...defaults.instrumentVisitor, + ...opts + }; + const visitState = new VisitState( + types, + sourceFilePath, + opts.inputSourceMap, + opts.ignoreClassMethods, + opts.reportLogic + ); + return { + enter(path) { + if (shouldIgnoreFile(path.find(p => p.isProgram()))) { + return; + } + if (alreadyInstrumented(path, visitState)) { + return; + } + path.traverse(codeVisitor, visitState); + }, + exit(path) { + if (alreadyInstrumented(path, visitState)) { + return; + } + visitState.cov.freeze(); + const coverageData = visitState.cov.toJSON(); + if (shouldIgnoreFile(path.find(p => p.isProgram()))) { + return { + fileCoverage: coverageData, + sourceMappingURL: visitState.sourceMappingURL + }; + } + coverageData[MAGIC_KEY] = MAGIC_VALUE; + const hash = createHash(SHA) + .update(JSON.stringify(coverageData)) + .digest('hex'); + coverageData.hash = hash; + if ( + coverageData.inputSourceMap && + Object.getPrototypeOf(coverageData.inputSourceMap) !== + Object.prototype + ) { + coverageData.inputSourceMap = { + ...coverageData.inputSourceMap + }; + } + const coverageNode = T.valueToNode(coverageData); + delete coverageData[MAGIC_KEY]; + delete coverageData.hash; + let gvTemplate; + if (opts.coverageGlobalScopeFunc) { + if (path.scope.getBinding('Function')) { + gvTemplate = globalTemplateAlteredFunction({ + GLOBAL_COVERAGE_SCOPE: T.stringLiteral( + 'return ' + opts.coverageGlobalScope + ) + }); + } else { + gvTemplate = globalTemplateFunction({ + GLOBAL_COVERAGE_SCOPE: T.stringLiteral( + 'return ' + opts.coverageGlobalScope + ) + }); + } + } else { + gvTemplate = globalTemplateVariable({ + GLOBAL_COVERAGE_SCOPE: opts.coverageGlobalScope + }); + } + const cv = coverageTemplate({ + GLOBAL_COVERAGE_VAR: T.stringLiteral(opts.coverageVariable), + GLOBAL_COVERAGE_TEMPLATE: gvTemplate, + COVERAGE_FUNCTION: T.identifier(visitState.varName), + PATH: T.stringLiteral(sourceFilePath), + INITIAL: coverageNode, + HASH: T.stringLiteral(hash) + }); + // explicitly call this.varName to ensure coverage is always initialized + path.node.body.unshift( + T.expressionStatement( + T.callExpression(T.identifier(visitState.varName), []) + ) + ); + path.node.body.unshift(cv); + return { + fileCoverage: coverageData, + sourceMappingURL: visitState.sourceMappingURL + }; + } + }; +} + +module.exports = programVisitor; diff --git a/server/api/node_modules/babel-plugin-istanbul/package.json b/server/api/node_modules/babel-plugin-istanbul/package.json new file mode 100644 index 0000000..2b58513 --- /dev/null +++ b/server/api/node_modules/babel-plugin-istanbul/package.json @@ -0,0 +1,71 @@ +{ + "name": "babel-plugin-istanbul", + "version": "6.1.1", + "author": "Thai Pangsakulyanont @dtinth", + "license": "BSD-3-Clause", + "description": "A babel plugin that adds istanbul instrumentation to ES6 code", + "main": "lib/index.js", + "files": [ + "lib" + ], + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "devDependencies": { + "@babel/cli": "^7.7.5", + "@babel/core": "^7.7.5", + "@babel/plugin-transform-modules-commonjs": "^7.7.5", + "@babel/register": "^7.7.4", + "chai": "^4.2.0", + "coveralls": "^3.0.9", + "cross-env": "^6.0.3", + "mocha": "^6.2.2", + "nyc": "^15.0.0", + "pmock": "^0.2.3", + "standard": "^14.3.1" + }, + "scripts": { + "coverage": "nyc report --reporter=text-lcov | coveralls", + "release": "babel src --out-dir lib", + "pretest": "standard && npm run release", + "test": "cross-env NODE_ENV=test nyc --reporter=lcov --reporter=text mocha --timeout 5000 test/*.js", + "prepublish": "npm test && npm run release" + }, + "standard": { + "ignore": [ + "fixtures/*.js" + ] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/istanbuljs/babel-plugin-istanbul.git" + }, + "keywords": [ + "istanbul", + "babel", + "plugin", + "instrumentation" + ], + "nyc": { + "include": [ + "src/*.js", + "fixtures/should-cover.js" + ], + "require": [ + "@babel/register" + ], + "sourceMap": false, + "instrument": false + }, + "bugs": { + "url": "https://github.com/istanbuljs/babel-plugin-istanbul/issues" + }, + "homepage": "https://github.com/istanbuljs/babel-plugin-istanbul#readme", + "engines": { + "node": ">=8" + } +} diff --git a/server/api/node_modules/babel-plugin-jest-hoist/LICENSE b/server/api/node_modules/babel-plugin-jest-hoist/LICENSE new file mode 100644 index 0000000..b93be90 --- /dev/null +++ b/server/api/node_modules/babel-plugin-jest-hoist/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) Meta Platforms, Inc. and affiliates. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/server/api/node_modules/babel-plugin-jest-hoist/README.md b/server/api/node_modules/babel-plugin-jest-hoist/README.md new file mode 100644 index 0000000..7c1421b --- /dev/null +++ b/server/api/node_modules/babel-plugin-jest-hoist/README.md @@ -0,0 +1,33 @@ +# babel-plugin-jest-hoist + +Babel plugin to hoist `jest.disableAutomock`, `jest.enableAutomock`, `jest.unmock`, `jest.mock`, calls above `import` statements. This plugin is automatically included when using [babel-jest](https://github.com/jestjs/jest/tree/main/packages/babel-jest). + +## Installation + +```sh +$ yarn add --dev babel-plugin-jest-hoist +``` + +## Usage + +### Via `babel.config.js` (Recommended) + +```js +module.exports = { + plugins: ['jest-hoist'], +}; +``` + +### Via CLI + +```sh +$ babel --plugins jest-hoist script.js +``` + +### Via Node API + +```javascript +require('@babel/core').transform('code', { + plugins: ['jest-hoist'], +}); +``` diff --git a/server/api/node_modules/babel-plugin-jest-hoist/package.json b/server/api/node_modules/babel-plugin-jest-hoist/package.json new file mode 100644 index 0000000..9ebf90c --- /dev/null +++ b/server/api/node_modules/babel-plugin-jest-hoist/package.json @@ -0,0 +1,42 @@ +{ + "name": "babel-plugin-jest-hoist", + "version": "29.6.3", + "repository": { + "type": "git", + "url": "https://github.com/jestjs/jest.git", + "directory": "packages/babel-plugin-jest-hoist" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "license": "MIT", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": { + "types": "./build/index.d.ts", + "default": "./build/index.js" + }, + "./package.json": "./package.json" + }, + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "devDependencies": { + "@babel/core": "^7.11.6", + "@babel/preset-react": "^7.12.1", + "@babel/preset-typescript": "^7.0.0", + "@types/babel__template": "^7.0.2", + "@types/node": "*", + "@types/prettier": "^2.1.5", + "babel-plugin-tester": "^11.0.2", + "prettier": "^2.1.1" + }, + "publishConfig": { + "access": "public" + }, + "gitHead": "fb7d95c8af6e0d65a8b65348433d8a0ea0725b5b" +} diff --git a/server/api/node_modules/babel-preset-current-node-syntax/.github/FUNDING.yml b/server/api/node_modules/babel-preset-current-node-syntax/.github/FUNDING.yml new file mode 100644 index 0000000..f2d5dec --- /dev/null +++ b/server/api/node_modules/babel-preset-current-node-syntax/.github/FUNDING.yml @@ -0,0 +1,3 @@ +# These are supported funding model platforms + +github: [nicolo-ribaudo] diff --git a/server/api/node_modules/babel-preset-current-node-syntax/.github/workflows/nodejs.yml b/server/api/node_modules/babel-preset-current-node-syntax/.github/workflows/nodejs.yml new file mode 100644 index 0000000..da19e4c --- /dev/null +++ b/server/api/node_modules/babel-preset-current-node-syntax/.github/workflows/nodejs.yml @@ -0,0 +1,49 @@ +# This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node +# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions + +name: Node.js CI + +on: + push: + branches: [main] + pull_request: + branches: [main] + +jobs: + build: + runs-on: ubuntu-latest + + strategy: + matrix: + node-version: + [ + "10.0", + "10.19", + "12.4", + "12.8", + "13.11", + "14.3", + "14", + "15", + "16.10", + "16.11", + "17", + "18.19", + "18.20", + "19", + "20.9", + "20.10", + "21", + "22", + ] + + steps: + - uses: actions/checkout@v2 + - name: Use Node.js latest + uses: actions/setup-node@v1 + - run: npm install + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node-version }} + - run: npm test diff --git a/server/api/node_modules/babel-preset-current-node-syntax/LICENSE b/server/api/node_modules/babel-preset-current-node-syntax/LICENSE new file mode 100644 index 0000000..7f09add --- /dev/null +++ b/server/api/node_modules/babel-preset-current-node-syntax/LICENSE @@ -0,0 +1,22 @@ +MIT License + +Copyright (c) 2020 Nicolò Ribaudo and other contributors + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/server/api/node_modules/babel-preset-current-node-syntax/README.md b/server/api/node_modules/babel-preset-current-node-syntax/README.md new file mode 100644 index 0000000..d6b42a0 --- /dev/null +++ b/server/api/node_modules/babel-preset-current-node-syntax/README.md @@ -0,0 +1,30 @@ +# `babel-preset-current-node-syntax` + +> A Babel preset that enables parsing of proposals supported by the current Node.js version. + +## Installation + +If you are using yarn: +``` +yarn add --dev babel-preset-current-node-syntax +``` + +If you are using npm: +``` +npm install --save-dev babel-preset-current-node-syntax +``` + +## Contributing + +PRs are welcome! The codebase is so small that I didn't setup a linter, but try +to match the style of the existing code. + +You can run tests with the following command: +``` +yarn node test/index.js +``` + +The `test/fixtures.json` file contains a bunch of syntax tests, alongside with +the minimum supported node version for each of them. Babel should throw on +older versions, without support for that given syntax. +All the tests are run using `@babel/parser@7.0.0`. diff --git a/server/api/node_modules/babel-preset-current-node-syntax/package.json b/server/api/node_modules/babel-preset-current-node-syntax/package.json new file mode 100644 index 0000000..1960aa0 --- /dev/null +++ b/server/api/node_modules/babel-preset-current-node-syntax/package.json @@ -0,0 +1,46 @@ +{ + "name": "babel-preset-current-node-syntax", + "version": "1.2.0", + "description": "A Babel preset that enables parsing of proposals supported by the current Node.js version.", + "main": "src/index.js", + "repository": { + "type": "git", + "url": "https://github.com/nicolo-ribaudo/babel-preset-current-node-syntax.git" + }, + "author": { + "name": "Nicolò Ribaudo", + "url": "https://github.com/nicolo-ribaudo" + }, + "scripts": { + "test": "node ./test/index.js" + }, + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-import-attributes": "^7.24.7", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5" + }, + "peerDependencies": { + "@babel/core": "^7.0.0 || ^8.0.0-0" + }, + "devDependencies": { + "@babel/core": "7.25.2", + "@babel/core-8": "npm:@babel/core@^8.0.0-beta.1", + "@babel/parser-7.0.0": "npm:@babel/parser@7.0.0", + "@babel/parser-7.12.0": "npm:@babel/parser@7.12.0", + "@babel/parser-7.22.0": "npm:@babel/parser@7.22.0", + "@babel/parser-7.9.0": "npm:@babel/parser@7.9.0" + }, + "license": "MIT" +} diff --git a/server/api/node_modules/babel-preset-current-node-syntax/src/index.js b/server/api/node_modules/babel-preset-current-node-syntax/src/index.js new file mode 100644 index 0000000..d2a6505 --- /dev/null +++ b/server/api/node_modules/babel-preset-current-node-syntax/src/index.js @@ -0,0 +1,86 @@ +function works(test) { + try { + // Wrap the test in a function to only test the syntax, without executing it + (0, eval)(`(() => { ${test} })`); + return true; + } catch (_error) { + return false; + } +} + +function getPluginsList(tests) { + const plugins = []; + for (const [name, cases] of Object.entries(tests)) { + if (cases.some(works)) { + plugins.push(require.resolve(`@babel/plugin-syntax-${name}`)); + } + } + return plugins; +} + +const babel7OnlyPlugins = getPluginsList({ + // ECMAScript 2018 + "object-rest-spread": ["({ ...{} })", "({ ...x } = {})"], // Babel 7.2.0 + "async-generators": ["async function* f() {}"], // Babel 7.2.0 + + // ECMAScript 2019 + "optional-catch-binding": ["try {} catch {}"], // Babel 7.2.0 + "json-strings": ["'\\u2028'"], // Babel 7.2.0 + + // ECMAScript 2020 + bigint: ["1n"], // Babel 7.8.0 + "optional-chaining": ["a?.b"], // Babel 7.9.0 + "nullish-coalescing-operator": ["a ?? b"], // Babel 7.9.0 + // import.meta is handled manually + + // ECMAScript 2021 + "numeric-separator": ["1_2"], + "logical-assignment-operators": ["a ||= b", "a &&= b", "a ??= c"], + + // ECMAScript 2022 + "class-properties": [ + "(class { x = 1 })", + "(class { #x = 1 })", + "(class { #x() {} })", + ], + "private-property-in-object": ["(class { #x; m() { #x in y } })"], + "class-static-block": ["(class { static {} })"], + // top-level await is handled manually + + // Stage 3 + // import attributes is handled manually +}); + +const commonPlugins = getPluginsList({}); + +// import.meta is only allowed in modules, and modules can only be evaluated +// synchronously. For this reason, we cannot detect import.meta support at +// runtime. It is supported starting from 10.4, so we can check the version. +const major = parseInt(process.versions.node, 10); +const minor = parseInt(process.versions.node.match(/^\d+\.(\d+)/)[1], 10); +if (major > 10 || (major === 10 && minor >= 4)) { + babel7OnlyPlugins.push(require.resolve("@babel/plugin-syntax-import-meta")); +} +// Same for top level await - it is only supported in modules. It is supported +// from 14.3.0 +if (major > 14 || (major === 14 && minor >= 3)) { + babel7OnlyPlugins.push( + require.resolve("@babel/plugin-syntax-top-level-await") + ); +} +// Similar for import attributes +if ( + major > 20 || + (major === 20 && minor >= 10) || + (major === 18 && minor >= 20) +) { + babel7OnlyPlugins.push( + require.resolve("@babel/plugin-syntax-import-attributes") + ); +} + +module.exports = ({ version }) => ({ + plugins: version.startsWith("7.") + ? babel7OnlyPlugins.concat(commonPlugins) + : commonPlugins, +}); diff --git a/server/api/node_modules/babel-preset-jest/LICENSE b/server/api/node_modules/babel-preset-jest/LICENSE new file mode 100644 index 0000000..b93be90 --- /dev/null +++ b/server/api/node_modules/babel-preset-jest/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) Meta Platforms, Inc. and affiliates. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/server/api/node_modules/babel-preset-jest/README.md b/server/api/node_modules/babel-preset-jest/README.md new file mode 100644 index 0000000..745e1b0 --- /dev/null +++ b/server/api/node_modules/babel-preset-jest/README.md @@ -0,0 +1,33 @@ +# babel-preset-jest + +> Babel preset for all Jest plugins. This preset is automatically included when using [babel-jest](https://github.com/jestjs/jest/tree/main/packages/babel-jest). + +## Install + +```sh +$ npm install --save-dev babel-preset-jest +``` + +## Usage + +### Via `babel.config.js` (Recommended) + +```js +module.exports = { + presets: ['jest'], +}; +``` + +### Via CLI + +```sh +$ babel script.js --presets jest +``` + +### Via Node API + +```javascript +require('@babel/core').transform('code', { + presets: ['jest'], +}); +``` diff --git a/server/api/node_modules/babel-preset-jest/index.js b/server/api/node_modules/babel-preset-jest/index.js new file mode 100644 index 0000000..b76ee3c --- /dev/null +++ b/server/api/node_modules/babel-preset-jest/index.js @@ -0,0 +1,14 @@ +/** + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +const jestPreset = { + plugins: [require.resolve('babel-plugin-jest-hoist')], + presets: [require.resolve('babel-preset-current-node-syntax')], +}; + +// @babel/core requires us to export a function +module.exports = () => jestPreset; diff --git a/server/api/node_modules/babel-preset-jest/package.json b/server/api/node_modules/babel-preset-jest/package.json new file mode 100644 index 0000000..a096ca9 --- /dev/null +++ b/server/api/node_modules/babel-preset-jest/package.json @@ -0,0 +1,29 @@ +{ + "name": "babel-preset-jest", + "version": "29.6.3", + "repository": { + "type": "git", + "url": "https://github.com/jestjs/jest.git", + "directory": "packages/babel-preset-jest" + }, + "license": "MIT", + "main": "./index.js", + "exports": { + ".": "./index.js", + "./package.json": "./package.json" + }, + "dependencies": { + "babel-plugin-jest-hoist": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "publishConfig": { + "access": "public" + }, + "gitHead": "fb7d95c8af6e0d65a8b65348433d8a0ea0725b5b" +} diff --git a/server/api/node_modules/balanced-match/.github/FUNDING.yml b/server/api/node_modules/balanced-match/.github/FUNDING.yml new file mode 100644 index 0000000..cea8b16 --- /dev/null +++ b/server/api/node_modules/balanced-match/.github/FUNDING.yml @@ -0,0 +1,2 @@ +tidelift: "npm/balanced-match" +patreon: juliangruber diff --git a/server/api/node_modules/balanced-match/LICENSE.md b/server/api/node_modules/balanced-match/LICENSE.md new file mode 100644 index 0000000..2cdc8e4 --- /dev/null +++ b/server/api/node_modules/balanced-match/LICENSE.md @@ -0,0 +1,21 @@ +(MIT) + +Copyright (c) 2013 Julian Gruber <julian@juliangruber.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. diff --git a/server/api/node_modules/balanced-match/README.md b/server/api/node_modules/balanced-match/README.md new file mode 100644 index 0000000..d2a48b6 --- /dev/null +++ b/server/api/node_modules/balanced-match/README.md @@ -0,0 +1,97 @@ +# balanced-match + +Match balanced string pairs, like `{` and `}` or `` and ``. Supports regular expressions as well! + +[![build status](https://secure.travis-ci.org/juliangruber/balanced-match.svg)](http://travis-ci.org/juliangruber/balanced-match) +[![downloads](https://img.shields.io/npm/dm/balanced-match.svg)](https://www.npmjs.org/package/balanced-match) + +[![testling badge](https://ci.testling.com/juliangruber/balanced-match.png)](https://ci.testling.com/juliangruber/balanced-match) + +## Example + +Get the first matching pair of braces: + +```js +var balanced = require('balanced-match'); + +console.log(balanced('{', '}', 'pre{in{nested}}post')); +console.log(balanced('{', '}', 'pre{first}between{second}post')); +console.log(balanced(/\s+\{\s+/, /\s+\}\s+/, 'pre { in{nest} } post')); +``` + +The matches are: + +```bash +$ node example.js +{ start: 3, end: 14, pre: 'pre', body: 'in{nested}', post: 'post' } +{ start: 3, + end: 9, + pre: 'pre', + body: 'first', + post: 'between{second}post' } +{ start: 3, end: 17, pre: 'pre', body: 'in{nest}', post: 'post' } +``` + +## API + +### var m = balanced(a, b, str) + +For the first non-nested matching pair of `a` and `b` in `str`, return an +object with those keys: + +* **start** the index of the first match of `a` +* **end** the index of the matching `b` +* **pre** the preamble, `a` and `b` not included +* **body** the match, `a` and `b` not included +* **post** the postscript, `a` and `b` not included + +If there's no match, `undefined` will be returned. + +If the `str` contains more `a` than `b` / there are unmatched pairs, the first match that was closed will be used. For example, `{{a}` will match `['{', 'a', '']` and `{a}}` will match `['', 'a', '}']`. + +### var r = balanced.range(a, b, str) + +For the first non-nested matching pair of `a` and `b` in `str`, return an +array with indexes: `[ , ]`. + +If there's no match, `undefined` will be returned. + +If the `str` contains more `a` than `b` / there are unmatched pairs, the first match that was closed will be used. For example, `{{a}` will match `[ 1, 3 ]` and `{a}}` will match `[0, 2]`. + +## Installation + +With [npm](https://npmjs.org) do: + +```bash +npm install balanced-match +``` + +## Security contact information + +To report a security vulnerability, please use the +[Tidelift security contact](https://tidelift.com/security). +Tidelift will coordinate the fix and disclosure. + +## License + +(MIT) + +Copyright (c) 2013 Julian Gruber <julian@juliangruber.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. diff --git a/server/api/node_modules/balanced-match/index.js b/server/api/node_modules/balanced-match/index.js new file mode 100644 index 0000000..c67a646 --- /dev/null +++ b/server/api/node_modules/balanced-match/index.js @@ -0,0 +1,62 @@ +'use strict'; +module.exports = balanced; +function balanced(a, b, str) { + if (a instanceof RegExp) a = maybeMatch(a, str); + if (b instanceof RegExp) b = maybeMatch(b, str); + + var r = range(a, b, str); + + return r && { + start: r[0], + end: r[1], + pre: str.slice(0, r[0]), + body: str.slice(r[0] + a.length, r[1]), + post: str.slice(r[1] + b.length) + }; +} + +function maybeMatch(reg, str) { + var m = str.match(reg); + return m ? m[0] : null; +} + +balanced.range = range; +function range(a, b, str) { + var begs, beg, left, right, result; + var ai = str.indexOf(a); + var bi = str.indexOf(b, ai + 1); + var i = ai; + + if (ai >= 0 && bi > 0) { + if(a===b) { + return [ai, bi]; + } + begs = []; + left = str.length; + + while (i >= 0 && !result) { + if (i == ai) { + begs.push(i); + ai = str.indexOf(a, i + 1); + } else if (begs.length == 1) { + result = [ begs.pop(), bi ]; + } else { + beg = begs.pop(); + if (beg < left) { + left = beg; + right = bi; + } + + bi = str.indexOf(b, i + 1); + } + + i = ai < bi && ai >= 0 ? ai : bi; + } + + if (begs.length) { + result = [ left, right ]; + } + } + + return result; +} diff --git a/server/api/node_modules/balanced-match/package.json b/server/api/node_modules/balanced-match/package.json new file mode 100644 index 0000000..ce6073e --- /dev/null +++ b/server/api/node_modules/balanced-match/package.json @@ -0,0 +1,48 @@ +{ + "name": "balanced-match", + "description": "Match balanced character pairs, like \"{\" and \"}\"", + "version": "1.0.2", + "repository": { + "type": "git", + "url": "git://github.com/juliangruber/balanced-match.git" + }, + "homepage": "https://github.com/juliangruber/balanced-match", + "main": "index.js", + "scripts": { + "test": "tape test/test.js", + "bench": "matcha test/bench.js" + }, + "devDependencies": { + "matcha": "^0.7.0", + "tape": "^4.6.0" + }, + "keywords": [ + "match", + "regexp", + "test", + "balanced", + "parse" + ], + "author": { + "name": "Julian Gruber", + "email": "mail@juliangruber.com", + "url": "http://juliangruber.com" + }, + "license": "MIT", + "testling": { + "files": "test/*.js", + "browsers": [ + "ie/8..latest", + "firefox/20..latest", + "firefox/nightly", + "chrome/25..latest", + "chrome/canary", + "opera/12..latest", + "opera/next", + "safari/5.1..latest", + "ipad/6.0..latest", + "iphone/6.0..latest", + "android-browser/4.2..latest" + ] + } +} diff --git a/server/api/node_modules/baseline-browser-mapping/LICENSE.txt b/server/api/node_modules/baseline-browser-mapping/LICENSE.txt new file mode 100644 index 0000000..261eeb9 --- /dev/null +++ b/server/api/node_modules/baseline-browser-mapping/LICENSE.txt @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/server/api/node_modules/baseline-browser-mapping/README.md b/server/api/node_modules/baseline-browser-mapping/README.md new file mode 100644 index 0000000..bc21883 --- /dev/null +++ b/server/api/node_modules/baseline-browser-mapping/README.md @@ -0,0 +1,467 @@ +# [`baseline-browser-mapping`](https://github.com/web-platform-dx/web-features/packages/baseline-browser-mapping) + +By the [W3C WebDX Community Group](https://www.w3.org/community/webdx/) and contributors. + +`baseline-browser-mapping` provides: + +- An `Array` of browsers compatible with Baseline Widely available and Baseline year feature sets via the [`getCompatibleVersions()` function](#get-baseline-widely-available-browser-versions-or-baseline-year-browser-versions). +- An `Array`, `Object` or `CSV` as a string describing the Baseline feature set support of all browser versions included in the module's data set via the [`getAllVersions()` function](#get-data-for-all-browser-versions). + +You can use `baseline-browser-mapping` to help you determine minimum browser version support for your chosen Baseline feature set; or to analyse the level of support for different Baseline feature sets in your site's traffic by joining the data with your analytics data. + +## Install for local development + +To install the package, run: + +`npm install --save-dev baseline-browser-mapping` + +The minimum supported NodeJS version for `baseline-browser-mapping` is v8 in alignment with `browserslist`. For NodeJS versions earlier than v13.2, the [`require('baseline-browser-mapping')`](https://nodejs.org/api/modules.html#requireid) syntax should be used to import the module. + +## Keeping `baseline-browser-mapping` up to date + +`baseline-browser-mapping` depends on `web-features` and `@mdn/browser-compat-data` for core browser version selection, but the data is pre-packaged and minified. This package checks for updates to those modules and the supported [downstream browsers](#downstream-browsers) on a daily basis and is updated frequently. + +If you are only using this module to generate minimum browser versions for Baseline Widely available or Baseline year feature sets, you don't need to update this module frequently, as the backward looking data is reasonably stable. + +However, if you are targeting Newly available, using the [`getAllVersions()`](#get-data-for-all-browser-versions) function or heavily relying on the data for downstream browsers, you should update this module more frequently. If you target a feature cut off date within the last two months and your installed version of `baseline-browser-mapping` has data that is more than 2 months old, you will receive a console warning advising you to update to the latest version when you call `getCompatibleVersions()` or `getAllVersions()`. + +If you want to suppress the console warnings mentioned above you can use the `suppressWarnings: true` option in the configuration object passed to `getCompatibleVersions()` or `getAllVersions()`. Alternatively, you can use the `BASELINE_BROWSER_MAPPING_IGNORE_OLD_DATA=true` environment variable when running your build process. This module also respects the `BROWSERSLIST_IGNORE_OLD_DATA=true` environment variable. Environment variables can also be provided in a `.env` file from Node 20 onwards; however, this module does not load .env files automatically to avoid conflicts with other libraries with different requirements. You will need to use `process.loadEnvFile()` or a library like `dotenv` to load .env files before `baseline-browser-mapping` is called. + +If you're building a tool that uses this module, consider suppressing the warnings but building a process into your tool that automatically updates this module. See, for example, [`browserslist`](https://github.com/browserslist/browserslist/blob/main/node.js#L471) and its [`update-browserslist-db`](https://github.com/browserslist/update-db) package. + +If you're implementing `baseline-browser-mapping` directly, you should add a script to your `package.json` to update `baseline-browser-mapping` and use it as part of your build process to ensure your data is as up to date as possible. For example, if you are using NPM for package management: + +```javascript +"scripts": [ + "refresh-baseline-browser-mapping": "npm i baseline-browser-mapping@latest -D" +] +``` + +If you want to ensure [reproducible builds](https://www.wikiwand.com/en/articles/Reproducible_builds), we strongly recommend using the `widelyAvailableOnDate` option to fix the Widely available date on a per build basis to ensure dependent tools provide the same output and you do not produce data staleness warnings. If you are using [`browserslist`](https://github.com/browserslist/browserslist) to target Baseline Widely available, consider automatically updating your `browserslist` configuration in `package.json` or `.browserslistrc` to `baseline widely available on {YYYY-MM-DD}` as part of your build process to ensure the same or sufficiently similar list of minimum browsers is reproduced for historical builds. + +## Importing `baseline-browser-mapping` + +This module exposes two functions: `getCompatibleVersions()` and `getAllVersions()`, both which can be imported directly from `baseline-browser-mapping`: + +```javascript +import { + getCompatibleVersions, + getAllVersions, +} from "baseline-browser-mapping"; +``` + +If you want to load the script and data directly in a web page without hosting it yourself, consider using a CDN: + +```html + +``` + +## Get Baseline Widely available browser versions or Baseline year browser versions + +To get the current list of minimum browser versions compatible with Baseline Widely available features from the core browser set, call the `getCompatibleVersions()` function: + +```javascript +getCompatibleVersions(); +``` + +Executed on 7th March 2025, the above code returns the following browser versions: + +```javascript +[ + { browser: "chrome", version: "105", release_date: "2022-09-02" }, + { + browser: "chrome_android", + version: "105", + release_date: "2022-09-02", + }, + { browser: "edge", version: "105", release_date: "2022-09-02" }, + { browser: "firefox", version: "104", release_date: "2022-08-23" }, + { + browser: "firefox_android", + version: "104", + release_date: "2022-08-23", + }, + { browser: "safari", version: "15.6", release_date: "2022-09-02" }, + { + browser: "safari_ios", + version: "15.6", + release_date: "2022-09-02", + }, +]; +``` + +> [!NOTE] +> The minimum versions of each browser are not necessarily the final release before the Widely available cutoff date of `TODAY - 30 MONTHS`. Some earlier versions will have supported the full Widely available feature set. + +### `getCompatibleVersions()` configuration options + +`getCompatibleVersions()` accepts an `Object` as an argument with configuration options. The defaults are as follows: + +```javascript +{ + targetYear: undefined, + widelyAvailableOnDate: undefined, + includeDownstreamBrowsers: false, + listAllCompatibleVersions: false, + suppressWarnings: false +} +``` + +#### `targetYear` + +The `targetYear` option returns the minimum browser versions compatible with all **Baseline Newly available** features at the end of the specified calendar year. For example, calling: + +```javascript +getCompatibleVersions({ + targetYear: 2020, +}); +``` + +Returns the following versions: + +```javascript +[ + { browser: "chrome", version: "87", release_date: "2020-11-19" }, + { + browser: "chrome_android", + version: "87", + release_date: "2020-11-19", + }, + { browser: "edge", version: "87", release_date: "2020-11-19" }, + { browser: "firefox", version: "83", release_date: "2020-11-17" }, + { + browser: "firefox_android", + version: "83", + release_date: "2020-11-17", + }, + { browser: "safari", version: "14", release_date: "2020-09-16" }, + { browser: "safari_ios", version: "14", release_date: "2020-09-16" }, +]; +``` + +> [!NOTE] +> The minimum version of each browser is not necessarily the final version released in that calendar year. In the above example, Firefox 84 was the final version released in 2020; however Firefox 83 supported all of the features that were interoperable at the end of 2020. +> [!WARNING] +> You cannot use `targetYear` and `widelyAavailableDate` together. Please only use one of these options at a time. + +#### `widelyAvailableOnDate` + +The `widelyAvailableOnDate` option returns the minimum versions compatible with Baseline Widely available on a specified date in the format `YYYY-MM-DD`: + +```javascript +getCompatibleVersions({ + widelyAvailableOnDate: `2023-04-05`, +}); +``` + +> [!TIP] +> This option is useful if you provide a versioned library that targets Baseline Widely available on each version's release date and you need to provide a statement on minimum supported browser versions in your documentation. + +#### `includeDownstreamBrowsers` + +Setting `includeDownstreamBrowsers` to `true` will include browsers outside of the Baseline core browser set where it is possible to map those browsers to an upstream Chromium or Gecko version: + +```javascript +getCompatibleVersions({ + includeDownstreamBrowsers: true, +}); +``` + +For more information on downstream browsers, see [the section on downstream browsers](#downstream-browsers) below. + +#### `includeKaiOS` + +KaiOS is an operating system and app framework based on the Gecko engine from Firefox. KaiOS is based on the Gecko engine and feature support can be derived from the upstream Gecko version that each KaiOS version implements. However KaiOS requires other considerations beyond feature compatibility to ensure a good user experience as it runs on device types that do not have either mouse and keyboard or touch screen input in the way that all the other browsers supported by this module do. + +```javascript +getCompatibleVersions({ + includeDownstreamBrowsers: true, + includeKaiOS: true, +}); +``` + +> [!NOTE] +> Including KaiOS requires you to include all downstream browsers using the `includeDownstreamBrowsers` option. + +#### `listAllCompatibleVersions` + +Setting `listAllCompatibleVersions` to true will include the minimum versions of each compatible browser, and all the subsequent versions: + +```javascript +getCompatibleVersions({ + listAllCompatibleVersions: true, +}); +``` + +#### `suppressWarnings` + +Setting `suppressWarnings` to `true` will suppress the console warning about old data: + +```javascript +getCompatibleVersions({ + suppressWarnings: true, +}); +``` + +## Get data for all browser versions + +You may want to obtain data on all the browser versions available in this module for use in an analytics solution or dashboard. To get details of each browser version's level of Baseline support, call the `getAllVersions()` function: + +```javascript +import { getAllVersions } from "baseline-browser-mapping"; + +getAllVersions(); +``` + +By default, this function returns an `Array` of `Objects` and excludes downstream browsers: + +```javascript +[ + ... + { + browser: "firefox_android", // Browser name + version: "125", // Browser version + release_date: "2024-04-16", // Release date + year: 2023, // Baseline year feature set the version supports + wa_compatible: true // Whether the browser version supports Widely available + }, + ... +] +``` + +For browser versions in `@mdn/browser-compat-data` that were released before Baseline can be defined, i.e. Baseline 2015, the `year` property is always the string: `"pre_baseline"`. + +### Understanding which browsers support Newly available features + +You may want to understand which recent browser versions support all Newly available features. You can replace the `wa_compatible` property with a `supports` property using the `useSupport` option: + +```javascript +getAllVersions({ + useSupports: true, +}); +``` + +The `supports` property is optional and has two possible values: + +- `widely` for browser versions that support all Widely available features. +- `newly` for browser versions that support all Newly available features. + +Browser versions that do not support Widely or Newly available will not include the `support` property in the `array` or `object` outputs, and in the CSV output, the `support` column will contain an empty string. Browser versions that support all Newly available features also support all Widely available features. + +### `getAllVersions()` Configuration options + +`getAllVersions()` accepts an `Object` as an argument with configuration options. The defaults are as follows: + +```javascript +{ + includeDownstreamBrowsers: false, + outputFormat: "array", + suppressWarnings: false +} +``` + +#### `includeDownstreamBrowsers` (in `getAllVersions()` output) + +As with `getCompatibleVersions()`, you can set `includeDownstreamBrowsers` to `true` to include the Chromium and Gecko downstream browsers [listed below](#list-of-downstream-browsers). + +```javascript +getAllVersions({ + includeDownstreamBrowsers: true, +}); +``` + +Downstream browsers include the same properties as core browsers, as well as the `engine`they use and `engine_version`, for example: + +```javascript +[ + ... + { + browser: "samsunginternet_android", + version: "27.0", + release_date: "2024-11-06", + engine: "Blink", + engine_version: "125", + year: 2023, + supports: "widely" + }, + ... +] +``` + +#### `includeKaiOS` (in `getAllVersions()` output) + +As with `getCompatibleVersions()` you can include KaiOS in your output. The same requirement to have `includeDownstreamBrowsers: true` applies. + +```javascript +getAllVersions({ + includeDownstreamBrowsers: true, + includeKaiOS: true, +}); +``` + +#### `suppressWarnings` (in `getAllVersions()` output) + +As with `getCompatibleVersions()`, you can set `suppressWarnings` to `true` to suppress the console warning about old data: + +```javascript +getAllVersions({ + suppressWarnings: true, +}); +``` + +#### `outputFormat` + +By default, this function returns an `Array` of `Objects` which can be manipulated in Javascript or output to JSON. + +To return an `Object` that nests keys , set `outputFormat` to `object`: + +```javascript +getAllVersions({ + outputFormat: "object", +}); +``` + +In thise case, `getAllVersions()` returns a nested object with the browser [IDs listed below](#list-of-downstream-browsers) as keys, and versions as keys within them: + +```javascript +{ + "chrome": { + "53": { + "year": 2016, + "release_date": "2016-09-07" + }, + ... +} +``` + +Downstream browsers will include extra fields for `engine` and `engine_versions` + +```javascript +{ + ... + "webview_android": { + "53": { + "year": 2016, + "release_date": "2016-09-07", + "engine": "Blink", + "engine_version": "53" + }, + ... +} +``` + +To return a `String` in CSV format, set `outputFormat` to `csv`: + +```javascript +getAllVersions({ + outputFormat: "csv", +}); +``` + +`getAllVersions` returns a `String` with a header row and comma-separated values for each browser version that you can write to a file or pass to another service. Core browsers will have "NULL" as the value for their `engine` and `engine_version`: + +```csv +"browser","version","year","supports","release_date","engine","engine_version" +... +"chrome","24","pre_baseline","","2013-01-10","NULL","NULL" +... +"chrome","53","2016","","2016-09-07","NULL","NULL" +... +"firefox","135","2024","widely","2025-02-04","NULL","NULL" +"firefox","136","2024","newly","2025-03-04","NULL","NULL" +... +"ya_android","20.12","2020","year_only","2020-12-20","Blink","87" +... +``` + +> [!NOTE] +> The above example uses `"includeDownstreamBrowsers": true` + +### Static resources + +The outputs of `getAllVersions()` are available as JSON or CSV files generated on a daily basis and hosted on GitHub pages: + +- Core browsers only + - [Array](https://web-platform-dx.github.io/baseline-browser-mapping/all_versions_array.json) + - [Object](https://web-platform-dx.github.io/baseline-browser-mapping/all_versions_object.json) + - [CSV](https://web-platform-dx.github.io/baseline-browser-mapping/all_versions.csv) +- Core browsers only, with `supports` property + - [Array](https://web-platform-dx.github.io/baseline-browser-mapping/all_versions_array_with_supports.json) + - [Object](https://web-platform-dx.github.io/baseline-browser-mapping/all_versions_object_with_supports.json) + - [CSV](https://web-platform-dx.github.io/baseline-browser-mapping/all_versions_with_supports.csv) +- Including downstream browsers + - [Array](https://web-platform-dx.github.io/baseline-browser-mapping/with_downstream/all_versions_array.json) + - [Object](https://web-platform-dx.github.io/baseline-browser-mapping/with_downstream/all_versions_object.json) + - [CSV](https://web-platform-dx.github.io/baseline-browser-mapping/with_downstream/all_versions.csv) +- Including downstream browsers with `supports` property + - [Array](https://web-platform-dx.github.io/baseline-browser-mapping/with_downstream/all_versions_array_with_supports.json) + - [Object](https://web-platform-dx.github.io/baseline-browser-mapping/with_downstream/all_versions_object_with_supports.json) + - [CSV](https://web-platform-dx.github.io/baseline-browser-mapping/with_downstream/all_versions_with_supports.csv) + +These files are updated on a daily basis. + +## CLI + +`baseline-browser-mapping` includes a command line interface that exposes the same data and options as the `getCompatibleVersions()` function. To learn more about using the CLI, run: + +```sh +npx baseline-browser-mapping --help +``` + +## Downstream browsers + +### Limitations + +The browser versions in this module come from two different sources: + +- MDN's `browser-compat-data` module. +- Parsed user agent strings provided by [useragents.io](https://useragents.io/) + +MDN `browser-compat-data` is an authoritative source of information for the browsers it contains. The release dates for the Baseline core browser set and the mapping of downstream browsers to Chromium versions should be considered accurate. + +Browser mappings from useragents.io are provided on a best effort basis. They assume that browser vendors are accurately stating the Chromium version they have implemented. The initial set of version mappings was derived from a bulk export in November 2024. This version was iterated over with a Regex match looking for a major Chrome version and a corresponding version of the browser in question, e.g.: + +`Mozilla/5.0 (Linux; U; Android 10; en-US; STK-L21 Build/HUAWEISTK-L21) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/100.0.4896.58 UCBrowser/13.8.2.1324 Mobile Safari/537.36` + +Shows UC Browser Mobile 13.8 implementing Chromium 100, and: + +`Mozilla/5.0 (Linux; arm_64; Android 11; Redmi Note 8 Pro) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.6613.123 YaBrowser/24.10.2.123.00 SA/3 Mobile Safari/537.36` + +Shows Yandex Browser Mobile 24.10 implementing Chromium 128. The Chromium version from this string is mapped to the corresponding Chrome version from MDN `browser-compat-data`. + +> [!NOTE] +> Where possible, approximate release dates have been included based on useragents.io "first seen" data. useragents.io does not have "first seen" dates prior to June 2020. However, these browsers' Baseline compatibility is determined by their Chromium or Gecko version, so their release dates are more informative than critical. + +This data is updated on a daily basis using a [script](https://github.com/web-platform-dx/web-features/tree/main/scripts/refresh-downstream.ts) triggered by a GitHub [action](https://github.com/web-platform-dx/web-features/tree/main/.github/workflows/refresh_downstream.yml). Useragents.io provides a private API for this module which exposes the last 7 days of newly seen user agents for the currently tracked browsers. If a new major version of one of the tracked browsers is encountered with a Chromium version that meets or exceeds the previous latest version of that browser, it is added to the [src/data/downstream-browsers.json](src/data/downstream-browsers.json) file with the date it was first seen by useragents.io as its release date. + +KaiOS is an exception - its upstream version mappings are handled separately from the other browsers because they happen very infrequently. + +### List of downstream browsers + +| Browser | ID | Core | Source | +| --------------------- | ------------------------- | ------- | ------------------------- | +| Chrome | `chrome` | `true` | MDN `browser-compat-data` | +| Chrome for Android | `chrome_android` | `true` | MDN `browser-compat-data` | +| Edge | `edge` | `true` | MDN `browser-compat-data` | +| Firefox | `firefox` | `true` | MDN `browser-compat-data` | +| Firefox for Android | `firefox_android` | `true` | MDN `browser-compat-data` | +| Safari | `safari` | `true` | MDN `browser-compat-data` | +| Safari on iOS | `safari_ios` | `true` | MDN `browser-compat-data` | +| Opera | `opera` | `false` | MDN `browser-compat-data` | +| Opera Android | `opera_android` | `false` | MDN `browser-compat-data` | +| Samsung Internet | `samsunginternet_android` | `false` | MDN `browser-compat-data` | +| WebView Android | `webview_android` | `false` | MDN `browser-compat-data` | +| QQ Browser Mobile | `qq_android` | `false` | useragents.io | +| UC Browser Mobile | `uc_android` | `false` | useragents.io | +| Yandex Browser Mobile | `ya_android` | `false` | useragents.io | +| KaiOS | `kai_os` | `false` | Manual | +| Facebook for Android | `facebook_android` | `false` | useragents.io | +| Instagram for Android | `instagram_android` | `false` | useragents.io | + +> [!NOTE] +> All the non-core browsers currently included implement Chromium or Gecko. Their inclusion in any of the above methods is based on the Baseline feature set supported by the Chromium or Gecko version they implement, not their release date. diff --git a/server/api/node_modules/baseline-browser-mapping/dist/cli.cjs b/server/api/node_modules/baseline-browser-mapping/dist/cli.cjs new file mode 100644 index 0000000..b52b3b0 --- /dev/null +++ b/server/api/node_modules/baseline-browser-mapping/dist/cli.cjs @@ -0,0 +1,2 @@ +#!/usr/bin/env node +"use strict";const{getCompatibleVersions:e}=require("./index.cjs"),a=process.argv.slice(2),s={};for(let e=0;e{const a={};return Object.keys(s).forEach(r=>{const e=s[r];if(e&&e.releases){a[r]||(a[r]={releases:{}});const s=a[r].releases;e.releases.forEach(a=>{s[a[0]]={version:a[0],release_date:"u"==a[1]?"unknown":a[1],status:f[a[2]],engine:a[3]?c[a[3]]:void 0,engine_version:a[4]}})}}),a},b=(()=>{const s=[];return r.forEach(a=>{var r;s.push({status:{baseline_low_date:a[0],support:(r=a[1],{chrome:r.c,chrome_android:r.ca,edge:r.e,firefox:r.f,firefox_android:r.fa,safari:r.s,safari_ios:r.si})}})}),s})(),u=e(s),i=e(a);let n=!1;const o=["chrome","chrome_android","edge","firefox","firefox_android","safari","safari_ios"],g=Object.keys(u).map(s=>[s,u[s]]).filter(([s])=>o.includes(s)),t=["webview_android","samsunginternet_android","opera_android","opera"],l=[...Object.keys(u).map(s=>[s,u[s]]).filter(([s])=>t.includes(s)),...Object.keys(i).map(s=>[s,i[s]])],w=["current","esr","retired","unknown","beta","nightly"];let p=!1;const d=s=>{if(!1===s.includeDownstreamBrowsers&&!0===s.includeKaiOS){if(console.log(new Error("KaiOS is a downstream browser and can only be included if you include other downstream browsers. Please ensure you use `includeDownstreamBrowsers: true`.")),"undefined"==typeof process||!process.exit)throw new Error("KaiOS configuration error: process.exit is not available");process.exit(1)}},v=s=>s&&s.startsWith("≤")?s.slice(1):s,_=(s,a)=>{if(s===a)return 0;const[r=0,c=0]=s.split(".",2).map(Number),[f=0,e=0]=a.split(".",2).map(Number);if(isNaN(r)||isNaN(c))throw new Error(`Invalid version: ${s}`);if(isNaN(f)||isNaN(e))throw new Error(`Invalid version: ${a}`);return r!==f?r>f?1:-1:c!==e?c>e?1:-1:0},h=s=>{let a=[];return s.forEach(s=>{let r=g.find(a=>a[0]===s.browser);if(r){Object.keys(r[1].releases).map(s=>[s,r[1].releases[s]]).filter(([,s])=>w.includes(s.status)).sort((s,a)=>_(s[0],a[0])).forEach(([r,c])=>!!w.includes(c.status)&&(1===_(r,s.version)&&(a.push({browser:s.browser,version:r,release_date:c.release_date?c.release_date:"unknown"}),!0)))}}),a},m=(s,a=!1)=>{if(s.getFullYear()<2015&&!p&&console.warn(new Error("There are no browser versions compatible with Baseline before 2015. You may receive unexpected results.")),s.getFullYear()<2002)throw new Error("None of the browsers in the core set were released before 2002. Please use a date after 2002.");if(s.getFullYear()>(new Date).getFullYear())throw new Error("There are no browser versions compatible with Baseline in the future");const r=(s=>b.filter(a=>a.status.baseline_low_date&&new Date(a.status.baseline_low_date)<=s).map(s=>({baseline_low_date:s.status.baseline_low_date,support:s.status.support})))(s),c=(s=>{let a={};return g.forEach(s=>{a[s[0]]={browser:s[0],version:"0",release_date:""}}),s.forEach(s=>{Object.keys(s.support).forEach(r=>{const c=s.support[r],f=v(c);a[r]&&1===_(f,v(a[r].version))&&(a[r]={browser:r,version:f,release_date:s.baseline_low_date})})}),Object.keys(a).map(s=>a[s])})(r);return a?[...c,...h(c)].sort((s,a)=>s.browsera.browser?1:_(s.version,a.version)):c},y=(s=[],a=!0,r=!1)=>{const c=a=>{var r;return s&&s.length>0?null===(r=s.filter(s=>s.browser===a).sort((s,a)=>_(s.version,a.version))[0])||void 0===r?void 0:r.version:void 0},f=c("chrome"),e=c("firefox");if(!f&&!e)throw new Error("There are no browser versions compatible with Baseline before Chrome and Firefox");let b=[];return l.filter(([s])=>!("kai_os"===s&&!r)).forEach(([s,r])=>{var c;if(!r.releases)return;let u=Object.keys(r.releases).map(s=>[s,r.releases[s]]).filter(([,s])=>{const{engine:a,engine_version:r}=s;return!(!a||!r)&&("Blink"===a&&f?_(r,f)>=0:!("Gecko"!==a||!e)&&_(r,e)>=0)}).sort((s,a)=>_(s[0],a[0]));for(let r=0;r{if(n||"undefined"!=typeof process&&process.env&&(process.env.BROWSERSLIST_IGNORE_OLD_DATA||process.env.BASELINE_BROWSER_MAPPING_IGNORE_OLD_DATA))return;const r=new Date;r.setMonth(r.getMonth()-2),s>r&&(null!=a?a:1776522778710){g[s]={},O({targetYear:s,suppressWarnings:u.suppressWarnings}).forEach(a=>{g[s]&&(g[s][a.browser]=a)})});const t=O({suppressWarnings:u.suppressWarnings}),l={};t.forEach(s=>{l[s.browser]=s});const w=new Date;w.setMonth(w.getMonth()+30);const v=O({widelyAvailableOnDate:w.toISOString().slice(0,10),suppressWarnings:u.suppressWarnings}),h={};v.forEach(s=>{h[s.browser]=s});const m=O({targetYear:2002,listAllCompatibleVersions:!0,suppressWarnings:u.suppressWarnings}),E=[];if(o.forEach(s=>{var a,r,c,f;let e=m.filter(a=>a.browser==s).sort((s,a)=>_(s.version,a.version)),b=null!==(r=null===(a=l[s])||void 0===a?void 0:a.version)&&void 0!==r?r:"0",o=null!==(f=null===(c=h[s])||void 0===c?void 0:c.version)&&void 0!==f?f:"0";n.forEach(a=>{var r;if(g[a]){let c=(null!==(r=g[a][s])&&void 0!==r?r:{version:"0"}).version,f=e.findIndex(s=>0===_(s.version,c));(a===i-1?e:e.slice(0,f)).forEach(s=>{let r=_(s.version,b)>=0,c=_(s.version,o)>=0,f=Object.assign(Object.assign({},s),{year:a<=2015?"pre_baseline":a-1});u.useSupports?(r&&(f.supports="widely"),c&&(f.supports="newly")):f=Object.assign(Object.assign({},f),{wa_compatible:r}),E.push(f)}),e=e.slice(f,e.length)}})}),u.includeDownstreamBrowsers){y(E,!0,u.includeKaiOS).forEach(s=>{let a=E.find(a=>"chrome"===a.browser&&a.version===s.engine_version);a&&(u.useSupports?E.push(Object.assign(Object.assign({},s),{year:a.year,supports:a.supports})):E.push(Object.assign(Object.assign({},s),{year:a.year,wa_compatible:a.wa_compatible})))})}if(E.sort((s,a)=>{if("pre_baseline"===s.year&&"pre_baseline"!==a.year)return-1;if("pre_baseline"===a.year&&"pre_baseline"!==s.year)return 1;if("pre_baseline"!==s.year&&"pre_baseline"!==a.year){if(s.yeara.year)return 1}return s.browsera.browser?1:_(s.version,a.version)}),"object"===u.outputFormat){const s={};return E.forEach(a=>{s[a.browser]||(s[a.browser]={});let r={year:a.year,release_date:a.release_date,engine:a.engine,engine_version:a.engine_version};s[a.browser][a.version]=u.useSupports?a.supports?Object.assign(Object.assign({},r),{supports:a.supports}):r:Object.assign(Object.assign({},r),{wa_compatible:a.wa_compatible})}),null!=s?s:{}}if("csv"===u.outputFormat){let s=`"browser","version","year","${u.useSupports?"supports":"wa_compatible"}","release_date","engine","engine_version"`;return E.forEach(a=>{var r,c,f,e;let b={browser:a.browser,version:a.version,year:a.year,release_date:null!==(r=a.release_date)&&void 0!==r?r:"NULL",engine:null!==(c=a.engine)&&void 0!==c?c:"NULL",engine_version:null!==(f=a.engine_version)&&void 0!==f?f:"NULL"};b=u.useSupports?Object.assign(Object.assign({},b),{supports:null!==(e=a.supports)&&void 0!==e?e:""}):Object.assign(Object.assign({},b),{wa_compatible:a.wa_compatible}),s+=`\n"${b.browser}","${b.version}","${b.year}","${u.useSupports?b.supports:b.wa_compatible}","${b.release_date}","${b.engine}","${b.engine_version}"`}),s}return E},exports.getCompatibleVersions=O; diff --git a/server/api/node_modules/baseline-browser-mapping/dist/index.d.ts b/server/api/node_modules/baseline-browser-mapping/dist/index.d.ts new file mode 100644 index 0000000..a47f761 --- /dev/null +++ b/server/api/node_modules/baseline-browser-mapping/dist/index.d.ts @@ -0,0 +1,104 @@ +export declare function _resetHasWarned(): void; +type BrowserVersion = { + browser: string; + version: string; + release_date?: string; + engine?: string; + engine_version?: string; +}; +interface AllBrowsersBrowserVersion extends BrowserVersion { + year: number | string; + supports?: string; + wa_compatible?: boolean; +} +type NestedBrowserVersions = { + [browser: string]: { + [version: string]: AllBrowsersBrowserVersion; + }; +}; +type Options = { + /** + * Whether to include only the minimum compatible browser versions or all compatible versions. + * Defaults to `false`. + */ + listAllCompatibleVersions?: boolean; + /** + * Whether to include browsers that use the same engines as a core Baseline browser. + * Defaults to `false`. + */ + includeDownstreamBrowsers?: boolean; + /** + * Pass a date in the format 'YYYY-MM-DD' to get versions compatible with Widely available on the specified date. + * If left undefined and a `targetYear` is not passed, defaults to Widely available as of the current date. + * > NOTE: cannot be used with `targetYear`. + */ + widelyAvailableOnDate?: string | number; + /** + * Pass a year between 2015 and the current year to get browser versions compatible with all + * Newly Available features as of the end of the year specified. + * > NOTE: cannot be used with `widelyAvailableOnDate`. + */ + targetYear?: number; + /** + * Pass a boolean that determines whether KaiOS is included in browser mappings. KaiOS implements + * the Gecko engine used in Firefox. However, KaiOS also has a different interaction paradigm to + * other browsers and requires extra consideration beyond simple feature compatibility to provide + * an optimal user experience. Defaults to `false`. + */ + includeKaiOS?: boolean; + overrideLastUpdated?: number; + /** + * Pass a boolean to suppress the warning about stale data. + * Defaults to `false`. + */ + suppressWarnings?: boolean; +}; +/** + * Returns browser versions compatible with specified Baseline targets. + * Defaults to returning the minimum versions of the core browser set that support Baseline Widely available. + * Takes an optional configuration `Object` with four optional properties: + * - `listAllCompatibleVersions`: `false` (default) or `true` + * - `includeDownstreamBrowsers`: `false` (default) or `true` + * - `widelyAvailableOnDate`: date in format `YYYY-MM-DD` + * - `targetYear`: year in format `YYYY` + * - `supressWarnings`: `false` (default) or `true` + */ +export declare function getCompatibleVersions(userOptions?: Options): BrowserVersion[]; +type AllVersionsOptions = { + /** + * Whether to return the output as a JavaScript `Array` (`"array"`), `Object` (`"object"`) or a CSV string (`"csv"`). + * Defaults to `"array"`. + */ + outputFormat?: string; + /** + * Whether to include browsers that use the same engines as a core Baseline browser. + * Defaults to `false`. + */ + includeDownstreamBrowsers?: boolean; + /** + * Whether to use the new "supports" property in place of "wa_compatible" + * Defaults to `false` + */ + useSupports?: boolean; + /** + * Whether to include KaiOS in the output. KaiOS implements the Gecko engine used in Firefox. + * However, KaiOS also has a different interaction paradigm to other browsers and requires extra + * consideration beyond simple feature compatibility to provide an optimal user experience. + */ + includeKaiOS?: boolean; + /** + * Pass a boolean to suppress the warning about old data. + * Defaults to `false`. + */ + suppressWarnings?: boolean; +}; +/** + * Returns all browser versions known to this module with their level of Baseline support as a JavaScript `Array` (`"array"`), `Object` (`"object"`) or a CSV string (`"csv"`). + * Takes an optional configuration `Object` with three optional properties: + * - `includeDownstreamBrowsers`: `false` (default) or `true` + * - `outputFormat`: `"array"` (default), `"object"` or `"csv"` + * - `useSupports`: `false` (default) or `true`, replaces `wa_compatible` property with optional `supports` property which returns `widely` or `newly` available when present. + * - `supressWarnings`: `false` (default) or `true` + */ +export declare function getAllVersions(userOptions?: AllVersionsOptions): AllBrowsersBrowserVersion[] | NestedBrowserVersions | string; +export {}; diff --git a/server/api/node_modules/baseline-browser-mapping/dist/index.js b/server/api/node_modules/baseline-browser-mapping/dist/index.js new file mode 100644 index 0000000..415938b --- /dev/null +++ b/server/api/node_modules/baseline-browser-mapping/dist/index.js @@ -0,0 +1 @@ +const s={chrome:{releases:[["1","2008-12-11","r","w","528"],["2","2009-05-21","r","w","530"],["3","2009-09-15","r","w","532"],["4","2010-01-25","r","w","532.5"],["5","2010-05-25","r","w","533"],["6","2010-09-02","r","w","534.3"],["7","2010-10-19","r","w","534.7"],["8","2010-12-02","r","w","534.10"],["9","2011-02-03","r","w","534.13"],["10","2011-03-08","r","w","534.16"],["11","2011-04-27","r","w","534.24"],["12","2011-06-07","r","w","534.30"],["13","2011-08-02","r","w","535.1"],["14","2011-09-16","r","w","535.1"],["15","2011-10-25","r","w","535.2"],["16","2011-12-13","r","w","535.7"],["17","2012-02-08","r","w","535.11"],["18","2012-03-28","r","w","535.19"],["19","2012-05-15","r","w","536.5"],["20","2012-06-26","r","w","536.10"],["21","2012-07-31","r","w","537.1"],["22","2012-09-25","r","w","537.4"],["23","2012-11-06","r","w","537.11"],["24","2013-01-10","r","w","537.17"],["25","2013-02-21","r","w","537.22"],["26","2013-03-26","r","w","537.31"],["27","2013-05-21","r","w","537.36"],["28","2013-07-09","r","b","28"],["29","2013-08-20","r","b","29"],["30","2013-10-01","r","b","30"],["31","2013-11-12","r","b","31"],["32","2014-01-14","r","b","32"],["33","2014-02-20","r","b","33"],["34","2014-04-08","r","b","34"],["35","2014-05-20","r","b","35"],["36","2014-07-16","r","b","36"],["37","2014-08-26","r","b","37"],["38","2014-10-07","r","b","38"],["39","2014-11-18","r","b","39"],["40","2015-01-21","r","b","40"],["41","2015-03-03","r","b","41"],["42","2015-04-14","r","b","42"],["43","2015-05-19","r","b","43"],["44","2015-07-21","r","b","44"],["45","2015-09-01","r","b","45"],["46","2015-10-13","r","b","46"],["47","2015-12-01","r","b","47"],["48","2016-01-20","r","b","48"],["49","2016-03-02","r","b","49"],["50","2016-04-13","r","b","50"],["51","2016-05-25","r","b","51"],["52","2016-07-20","r","b","52"],["53","2016-08-31","r","b","53"],["54","2016-10-12","r","b","54"],["55","2016-12-01","r","b","55"],["56","2017-01-25","r","b","56"],["57","2017-03-09","r","b","57"],["58","2017-04-19","r","b","58"],["59","2017-06-05","r","b","59"],["60","2017-07-25","r","b","60"],["61","2017-09-05","r","b","61"],["62","2017-10-17","r","b","62"],["63","2017-12-06","r","b","63"],["64","2018-01-23","r","b","64"],["65","2018-03-06","r","b","65"],["66","2018-04-17","r","b","66"],["67","2018-05-29","r","b","67"],["68","2018-07-24","r","b","68"],["69","2018-09-04","r","b","69"],["70","2018-10-16","r","b","70"],["71","2018-12-04","r","b","71"],["72","2019-01-29","r","b","72"],["73","2019-03-12","r","b","73"],["74","2019-04-23","r","b","74"],["75","2019-06-04","r","b","75"],["76","2019-07-30","r","b","76"],["77","2019-09-10","r","b","77"],["78","2019-10-22","r","b","78"],["79","2019-12-10","r","b","79"],["80","2020-02-04","r","b","80"],["81","2020-04-07","r","b","81"],["83","2020-05-19","r","b","83"],["84","2020-07-27","r","b","84"],["85","2020-08-25","r","b","85"],["86","2020-10-20","r","b","86"],["87","2020-11-17","r","b","87"],["88","2021-01-19","r","b","88"],["89","2021-03-02","r","b","89"],["90","2021-04-13","r","b","90"],["91","2021-05-25","r","b","91"],["92","2021-07-20","r","b","92"],["93","2021-08-31","r","b","93"],["94","2021-09-21","r","b","94"],["95","2021-10-19","r","b","95"],["96","2021-11-15","r","b","96"],["97","2022-01-04","r","b","97"],["98","2022-02-01","r","b","98"],["99","2022-03-01","r","b","99"],["100","2022-03-29","r","b","100"],["101","2022-04-26","r","b","101"],["102","2022-05-24","r","b","102"],["103","2022-06-21","r","b","103"],["104","2022-08-02","r","b","104"],["105","2022-09-02","r","b","105"],["106","2022-09-27","r","b","106"],["107","2022-10-25","r","b","107"],["108","2022-11-29","r","b","108"],["109","2023-01-10","r","b","109"],["110","2023-02-07","r","b","110"],["111","2023-03-07","r","b","111"],["112","2023-04-04","r","b","112"],["113","2023-05-02","r","b","113"],["114","2023-05-30","r","b","114"],["115","2023-07-18","r","b","115"],["116","2023-08-15","r","b","116"],["117","2023-09-12","r","b","117"],["118","2023-10-10","r","b","118"],["119","2023-10-31","r","b","119"],["120","2023-12-05","r","b","120"],["121","2024-01-23","r","b","121"],["122","2024-02-20","r","b","122"],["123","2024-03-19","r","b","123"],["124","2024-04-16","r","b","124"],["125","2024-05-14","r","b","125"],["126","2024-06-11","r","b","126"],["127","2024-07-23","r","b","127"],["128","2024-08-20","r","b","128"],["129","2024-09-17","r","b","129"],["130","2024-10-15","r","b","130"],["131","2024-11-12","r","b","131"],["132","2025-01-14","r","b","132"],["133","2025-02-04","r","b","133"],["134","2025-03-04","r","b","134"],["135","2025-04-01","r","b","135"],["136","2025-04-29","r","b","136"],["137","2025-05-27","r","b","137"],["138","2025-06-24","r","b","138"],["139","2025-08-05","r","b","139"],["140","2025-09-02","r","b","140"],["141","2025-09-30","r","b","141"],["142","2025-10-28","r","b","142"],["143","2025-12-02","r","b","143"],["144","2026-01-13","r","b","144"],["145","2026-02-10","r","b","145"],["146","2026-03-10","r","b","146"],["147","2026-04-07","c","b","147"],["148","2026-05-05","b","b","148"],["149","2026-06-02","n","b","149"],["150",null,"p","b","150"]]},chrome_android:{releases:[["18","2012-06-27","r","w","535.19"],["25","2013-02-27","r","w","537.22"],["26","2013-04-03","r","w","537.31"],["27","2013-05-22","r","w","537.36"],["28","2013-07-10","r","b","28"],["29","2013-08-21","r","b","29"],["30","2013-10-02","r","b","30"],["31","2013-11-14","r","b","31"],["32","2014-01-15","r","b","32"],["33","2014-02-26","r","b","33"],["34","2014-04-02","r","b","34"],["35","2014-05-20","r","b","35"],["36","2014-07-16","r","b","36"],["37","2014-09-03","r","b","37"],["38","2014-10-08","r","b","38"],["39","2014-11-12","r","b","39"],["40","2015-01-21","r","b","40"],["41","2015-03-11","r","b","41"],["42","2015-04-15","r","b","42"],["43","2015-05-27","r","b","43"],["44","2015-07-29","r","b","44"],["45","2015-09-01","r","b","45"],["46","2015-10-14","r","b","46"],["47","2015-12-02","r","b","47"],["48","2016-01-26","r","b","48"],["49","2016-03-09","r","b","49"],["50","2016-04-13","r","b","50"],["51","2016-06-08","r","b","51"],["52","2016-07-27","r","b","52"],["53","2016-09-07","r","b","53"],["54","2016-10-19","r","b","54"],["55","2016-12-06","r","b","55"],["56","2017-02-01","r","b","56"],["57","2017-03-16","r","b","57"],["58","2017-04-25","r","b","58"],["59","2017-06-06","r","b","59"],["60","2017-08-01","r","b","60"],["61","2017-09-05","r","b","61"],["62","2017-10-24","r","b","62"],["63","2017-12-05","r","b","63"],["64","2018-01-23","r","b","64"],["65","2018-03-06","r","b","65"],["66","2018-04-17","r","b","66"],["67","2018-05-31","r","b","67"],["68","2018-07-24","r","b","68"],["69","2018-09-04","r","b","69"],["70","2018-10-17","r","b","70"],["71","2018-12-04","r","b","71"],["72","2019-01-29","r","b","72"],["73","2019-03-12","r","b","73"],["74","2019-04-24","r","b","74"],["75","2019-06-04","r","b","75"],["76","2019-07-30","r","b","76"],["77","2019-09-10","r","b","77"],["78","2019-10-22","r","b","78"],["79","2019-12-17","r","b","79"],["80","2020-02-04","r","b","80"],["81","2020-04-07","r","b","81"],["83","2020-05-19","r","b","83"],["84","2020-07-27","r","b","84"],["85","2020-08-25","r","b","85"],["86","2020-10-20","r","b","86"],["87","2020-11-17","r","b","87"],["88","2021-01-19","r","b","88"],["89","2021-03-02","r","b","89"],["90","2021-04-13","r","b","90"],["91","2021-05-25","r","b","91"],["92","2021-07-20","r","b","92"],["93","2021-08-31","r","b","93"],["94","2021-09-21","r","b","94"],["95","2021-10-19","r","b","95"],["96","2021-11-15","r","b","96"],["97","2022-01-04","r","b","97"],["98","2022-02-01","r","b","98"],["99","2022-03-01","r","b","99"],["100","2022-03-29","r","b","100"],["101","2022-04-26","r","b","101"],["102","2022-05-24","r","b","102"],["103","2022-06-21","r","b","103"],["104","2022-08-02","r","b","104"],["105","2022-09-02","r","b","105"],["106","2022-09-27","r","b","106"],["107","2022-10-25","r","b","107"],["108","2022-11-29","r","b","108"],["109","2023-01-10","r","b","109"],["110","2023-02-07","r","b","110"],["111","2023-03-07","r","b","111"],["112","2023-04-04","r","b","112"],["113","2023-05-02","r","b","113"],["114","2023-05-30","r","b","114"],["115","2023-07-21","r","b","115"],["116","2023-08-15","r","b","116"],["117","2023-09-12","r","b","117"],["118","2023-10-10","r","b","118"],["119","2023-10-31","r","b","119"],["120","2023-12-05","r","b","120"],["121","2024-01-23","r","b","121"],["122","2024-02-20","r","b","122"],["123","2024-03-19","r","b","123"],["124","2024-04-16","r","b","124"],["125","2024-05-14","r","b","125"],["126","2024-06-11","r","b","126"],["127","2024-07-23","r","b","127"],["128","2024-08-20","r","b","128"],["129","2024-09-17","r","b","129"],["130","2024-10-15","r","b","130"],["131","2024-11-12","r","b","131"],["132","2025-01-14","r","b","132"],["133","2025-02-04","r","b","133"],["134","2025-03-04","r","b","134"],["135","2025-04-01","r","b","135"],["136","2025-04-29","r","b","136"],["137","2025-05-27","r","b","137"],["138","2025-06-24","r","b","138"],["139","2025-08-05","r","b","139"],["140","2025-09-02","r","b","140"],["141","2025-09-30","r","b","141"],["142","2025-10-28","r","b","142"],["143","2025-12-02","r","b","143"],["144","2026-01-13","r","b","144"],["145","2026-02-10","r","b","145"],["146","2026-03-10","r","b","146"],["147","2026-04-07","c","b","147"],["148","2026-05-05","b","b","148"],["149","2026-06-02","n","b","149"],["150",null,"p","b","150"]]},edge:{releases:[["12","2015-07-29","r",null,"12"],["13","2015-11-12","r",null,"13"],["14","2016-08-02","r",null,"14"],["15","2017-04-05","r",null,"15"],["16","2017-10-17","r",null,"16"],["17","2018-04-30","r",null,"17"],["18","2018-10-02","r",null,"18"],["79","2020-01-15","r","b","79"],["80","2020-02-07","r","b","80"],["81","2020-04-13","r","b","81"],["83","2020-05-21","r","b","83"],["84","2020-07-16","r","b","84"],["85","2020-08-27","r","b","85"],["86","2020-10-09","r","b","86"],["87","2020-11-19","r","b","87"],["88","2021-01-21","r","b","88"],["89","2021-03-04","r","b","89"],["90","2021-04-15","r","b","90"],["91","2021-05-27","r","b","91"],["92","2021-07-22","r","b","92"],["93","2021-09-02","r","b","93"],["94","2021-09-24","r","b","94"],["95","2021-10-21","r","b","95"],["96","2021-11-19","r","b","96"],["97","2022-01-06","r","b","97"],["98","2022-02-03","r","b","98"],["99","2022-03-03","r","b","99"],["100","2022-04-01","r","b","100"],["101","2022-04-28","r","b","101"],["102","2022-05-31","r","b","102"],["103","2022-06-23","r","b","103"],["104","2022-08-05","r","b","104"],["105","2022-09-01","r","b","105"],["106","2022-10-03","r","b","106"],["107","2022-10-27","r","b","107"],["108","2022-12-05","r","b","108"],["109","2023-01-12","r","b","109"],["110","2023-02-09","r","b","110"],["111","2023-03-13","r","b","111"],["112","2023-04-06","r","b","112"],["113","2023-05-05","r","b","113"],["114","2023-06-02","r","b","114"],["115","2023-07-21","r","b","115"],["116","2023-08-21","r","b","116"],["117","2023-09-15","r","b","117"],["118","2023-10-13","r","b","118"],["119","2023-11-02","r","b","119"],["120","2023-12-07","r","b","120"],["121","2024-01-25","r","b","121"],["122","2024-02-23","r","b","122"],["123","2024-03-22","r","b","123"],["124","2024-04-18","r","b","124"],["125","2024-05-17","r","b","125"],["126","2024-06-13","r","b","126"],["127","2024-07-25","r","b","127"],["128","2024-08-22","r","b","128"],["129","2024-09-19","r","b","129"],["130","2024-10-17","r","b","130"],["131","2024-11-14","r","b","131"],["132","2025-01-17","r","b","132"],["133","2025-02-06","r","b","133"],["134","2025-03-06","r","b","134"],["135","2025-04-04","r","b","135"],["136","2025-05-01","r","b","136"],["137","2025-05-29","r","b","137"],["138","2025-06-26","r","b","138"],["139","2025-08-07","r","b","139"],["140","2025-09-05","r","b","140"],["141","2025-10-03","r","b","141"],["142","2025-10-31","r","b","142"],["143","2025-12-05","r","b","143"],["144","2026-01-21","r","b","144"],["145","2026-02-14","r","b","145"],["146","2026-03-13","r","b","146"],["147","2026-04-10","c","b","147"],["148","2026-05-07","b","b","148"],["149","2026-06-04","n","b","149"],["150",null,"p","b","150"]]},firefox:{releases:[["1","2004-11-09","r","g","1.7"],["2","2006-10-24","r","g","1.8.1"],["3","2008-06-17","r","g","1.9"],["4","2011-03-22","r","g","2"],["5","2011-06-21","r","g","5"],["6","2011-08-16","r","g","6"],["7","2011-09-27","r","g","7"],["8","2011-11-08","r","g","8"],["9","2011-12-20","r","g","9"],["10","2012-01-31","r","g","10"],["11","2012-03-13","r","g","11"],["12","2012-04-24","r","g","12"],["13","2012-06-05","r","g","13"],["14","2012-07-17","r","g","14"],["15","2012-08-28","r","g","15"],["16","2012-10-09","r","g","16"],["17","2012-11-20","r","g","17"],["18","2013-01-08","r","g","18"],["19","2013-02-19","r","g","19"],["20","2013-04-02","r","g","20"],["21","2013-05-14","r","g","21"],["22","2013-06-25","r","g","22"],["23","2013-08-06","r","g","23"],["24","2013-09-17","r","g","24"],["25","2013-10-29","r","g","25"],["26","2013-12-10","r","g","26"],["27","2014-02-04","r","g","27"],["28","2014-03-18","r","g","28"],["29","2014-04-29","r","g","29"],["30","2014-06-10","r","g","30"],["31","2014-07-22","r","g","31"],["32","2014-09-02","r","g","32"],["33","2014-10-14","r","g","33"],["34","2014-12-01","r","g","34"],["35","2015-01-13","r","g","35"],["36","2015-02-24","r","g","36"],["37","2015-03-31","r","g","37"],["38","2015-05-12","r","g","38"],["39","2015-07-02","r","g","39"],["40","2015-08-11","r","g","40"],["41","2015-09-22","r","g","41"],["42","2015-11-03","r","g","42"],["43","2015-12-15","r","g","43"],["44","2016-01-26","r","g","44"],["45","2016-03-08","r","g","45"],["46","2016-04-26","r","g","46"],["47","2016-06-07","r","g","47"],["48","2016-08-02","r","g","48"],["49","2016-09-20","r","g","49"],["50","2016-11-15","r","g","50"],["51","2017-01-24","r","g","51"],["52","2017-03-07","r","g","52"],["53","2017-04-19","r","g","53"],["54","2017-06-13","r","g","54"],["55","2017-08-08","r","g","55"],["56","2017-09-28","r","g","56"],["57","2017-11-14","r","g","57"],["58","2018-01-23","r","g","58"],["59","2018-03-13","r","g","59"],["60","2018-05-09","r","g","60"],["61","2018-06-26","r","g","61"],["62","2018-09-05","r","g","62"],["63","2018-10-23","r","g","63"],["64","2018-12-11","r","g","64"],["65","2019-01-29","r","g","65"],["66","2019-03-19","r","g","66"],["67","2019-05-21","r","g","67"],["68","2019-07-09","r","g","68"],["69","2019-09-03","r","g","69"],["70","2019-10-22","r","g","70"],["71","2019-12-10","r","g","71"],["72","2020-01-07","r","g","72"],["73","2020-02-11","r","g","73"],["74","2020-03-10","r","g","74"],["75","2020-04-07","r","g","75"],["76","2020-05-05","r","g","76"],["77","2020-06-02","r","g","77"],["78","2020-06-30","r","g","78"],["79","2020-07-28","r","g","79"],["80","2020-08-25","r","g","80"],["81","2020-09-22","r","g","81"],["82","2020-10-20","r","g","82"],["83","2020-11-17","r","g","83"],["84","2020-12-15","r","g","84"],["85","2021-01-26","r","g","85"],["86","2021-02-23","r","g","86"],["87","2021-03-23","r","g","87"],["88","2021-04-19","r","g","88"],["89","2021-06-01","r","g","89"],["90","2021-07-13","r","g","90"],["91","2021-08-10","r","g","91"],["92","2021-09-07","r","g","92"],["93","2021-10-05","r","g","93"],["94","2021-11-02","r","g","94"],["95","2021-12-07","r","g","95"],["96","2022-01-11","r","g","96"],["97","2022-02-08","r","g","97"],["98","2022-03-08","r","g","98"],["99","2022-04-05","r","g","99"],["100","2022-05-03","r","g","100"],["101","2022-05-31","r","g","101"],["102","2022-06-28","r","g","102"],["103","2022-07-26","r","g","103"],["104","2022-08-23","r","g","104"],["105","2022-09-20","r","g","105"],["106","2022-10-18","r","g","106"],["107","2022-11-15","r","g","107"],["108","2022-12-13","r","g","108"],["109","2023-01-17","r","g","109"],["110","2023-02-14","r","g","110"],["111","2023-03-14","r","g","111"],["112","2023-04-11","r","g","112"],["113","2023-05-09","r","g","113"],["114","2023-06-06","r","g","114"],["115","2023-07-04","r","g","115"],["116","2023-08-01","r","g","116"],["117","2023-08-29","r","g","117"],["118","2023-09-26","r","g","118"],["119","2023-10-24","r","g","119"],["120","2023-11-21","r","g","120"],["121","2023-12-19","r","g","121"],["122","2024-01-23","r","g","122"],["123","2024-02-20","r","g","123"],["124","2024-03-19","r","g","124"],["125","2024-04-16","r","g","125"],["126","2024-05-14","r","g","126"],["127","2024-06-11","r","g","127"],["128","2024-07-09","r","g","128"],["129","2024-08-06","r","g","129"],["130","2024-09-03","r","g","130"],["131","2024-10-01","r","g","131"],["132","2024-10-29","r","g","132"],["133","2024-11-26","r","g","133"],["134","2025-01-07","r","g","134"],["135","2025-02-04","r","g","135"],["136","2025-03-04","r","g","136"],["137","2025-04-01","r","g","137"],["138","2025-04-29","r","g","138"],["139","2025-05-27","r","g","139"],["140","2025-06-24","e","g","140"],["141","2025-07-22","r","g","141"],["142","2025-08-19","r","g","142"],["143","2025-09-16","r","g","143"],["144","2025-10-14","r","g","144"],["145","2025-11-11","r","g","145"],["146","2025-12-09","r","g","146"],["147","2026-01-13","r","g","147"],["148","2026-02-24","r","g","148"],["149","2026-03-24","c","g","149"],["150","2026-04-21","b","g","150"],["151","2026-05-19","n","g","151"],["152","2026-06-16","p","g","152"],["1.5","2005-11-29","r","g","1.8"],["3.5","2009-06-30","r","g","1.9.1"],["3.6","2010-01-21","r","g","1.9.2"]]},firefox_android:{releases:[["4","2011-03-29","r","g","2"],["5","2011-06-21","r","g","5"],["6","2011-08-16","r","g","6"],["7","2011-09-27","r","g","7"],["8","2011-11-08","r","g","8"],["9","2011-12-21","r","g","9"],["10","2012-01-31","r","g","10"],["14","2012-06-26","r","g","14"],["15","2012-08-28","r","g","15"],["16","2012-10-09","r","g","16"],["17","2012-11-20","r","g","17"],["18","2013-01-08","r","g","18"],["19","2013-02-19","r","g","19"],["20","2013-04-02","r","g","20"],["21","2013-05-14","r","g","21"],["22","2013-06-25","r","g","22"],["23","2013-08-06","r","g","23"],["24","2013-09-17","r","g","24"],["25","2013-10-29","r","g","25"],["26","2013-12-10","r","g","26"],["27","2014-02-04","r","g","27"],["28","2014-03-18","r","g","28"],["29","2014-04-29","r","g","29"],["30","2014-06-10","r","g","30"],["31","2014-07-22","r","g","31"],["32","2014-09-02","r","g","32"],["33","2014-10-14","r","g","33"],["34","2014-12-01","r","g","34"],["35","2015-01-13","r","g","35"],["36","2015-02-27","r","g","36"],["37","2015-03-31","r","g","37"],["38","2015-05-12","r","g","38"],["39","2015-07-02","r","g","39"],["40","2015-08-11","r","g","40"],["41","2015-09-22","r","g","41"],["42","2015-11-03","r","g","42"],["43","2015-12-15","r","g","43"],["44","2016-01-26","r","g","44"],["45","2016-03-08","r","g","45"],["46","2016-04-26","r","g","46"],["47","2016-06-07","r","g","47"],["48","2016-08-02","r","g","48"],["49","2016-09-20","r","g","49"],["50","2016-11-15","r","g","50"],["51","2017-01-24","r","g","51"],["52","2017-03-07","r","g","52"],["53","2017-04-19","r","g","53"],["54","2017-06-13","r","g","54"],["55","2017-08-08","r","g","55"],["56","2017-09-28","r","g","56"],["57","2017-11-28","r","g","57"],["58","2018-01-22","r","g","58"],["59","2018-03-13","r","g","59"],["60","2018-05-09","r","g","60"],["61","2018-06-26","r","g","61"],["62","2018-09-05","r","g","62"],["63","2018-10-23","r","g","63"],["64","2018-12-11","r","g","64"],["65","2019-01-29","r","g","65"],["66","2019-03-19","r","g","66"],["67","2019-05-21","r","g","67"],["68","2019-07-09","r","g","68"],["79","2020-07-28","r","g","79"],["80","2020-08-31","r","g","80"],["81","2020-09-22","r","g","81"],["82","2020-10-20","r","g","82"],["83","2020-11-17","r","g","83"],["84","2020-12-15","r","g","84"],["85","2021-01-26","r","g","85"],["86","2021-02-23","r","g","86"],["87","2021-03-23","r","g","87"],["88","2021-04-19","r","g","88"],["89","2021-06-01","r","g","89"],["90","2021-07-13","r","g","90"],["91","2021-08-10","r","g","91"],["92","2021-09-07","r","g","92"],["93","2021-10-05","r","g","93"],["94","2021-11-02","r","g","94"],["95","2021-12-07","r","g","95"],["96","2022-01-11","r","g","96"],["97","2022-02-08","r","g","97"],["98","2022-03-08","r","g","98"],["99","2022-04-05","r","g","99"],["100","2022-05-03","r","g","100"],["101","2022-05-31","r","g","101"],["102","2022-06-28","r","g","102"],["103","2022-07-26","r","g","103"],["104","2022-08-23","r","g","104"],["105","2022-09-20","r","g","105"],["106","2022-10-18","r","g","106"],["107","2022-11-15","r","g","107"],["108","2022-12-13","r","g","108"],["109","2023-01-17","r","g","109"],["110","2023-02-14","r","g","110"],["111","2023-03-14","r","g","111"],["112","2023-04-11","r","g","112"],["113","2023-05-09","r","g","113"],["114","2023-06-06","r","g","114"],["115","2023-07-04","r","g","115"],["116","2023-08-01","r","g","116"],["117","2023-08-29","r","g","117"],["118","2023-09-26","r","g","118"],["119","2023-10-24","r","g","119"],["120","2023-11-21","r","g","120"],["121","2023-12-19","r","g","121"],["122","2024-01-23","r","g","122"],["123","2024-02-20","r","g","123"],["124","2024-03-19","r","g","124"],["125","2024-04-16","r","g","125"],["126","2024-05-14","r","g","126"],["127","2024-06-11","r","g","127"],["128","2024-07-09","r","g","128"],["129","2024-08-06","r","g","129"],["130","2024-09-03","r","g","130"],["131","2024-10-01","r","g","131"],["132","2024-10-29","r","g","132"],["133","2024-11-26","r","g","133"],["134","2025-01-07","r","g","134"],["135","2025-02-04","r","g","135"],["136","2025-03-04","r","g","136"],["137","2025-04-01","r","g","137"],["138","2025-04-29","r","g","138"],["139","2025-05-27","r","g","139"],["140","2025-06-24","e","g","140"],["141","2025-07-22","r","g","141"],["142","2025-08-19","r","g","142"],["143","2025-09-16","r","g","143"],["144","2025-10-14","r","g","144"],["145","2025-11-11","r","g","145"],["146","2025-12-09","r","g","146"],["147","2026-01-13","r","g","147"],["148","2026-02-24","r","g","148"],["149","2026-03-24","c","g","149"],["150","2026-04-21","b","g","150"],["151","2026-05-19","n","g","151"],["152","2026-06-16","p","g","152"]]},opera:{releases:[["2","1996-07-14","r",null,null],["3","1997-12-01","r",null,null],["4","2000-06-28","r",null,null],["5","2000-12-06","r",null,null],["6","2001-12-18","r",null,null],["7","2003-01-28","r","p","1"],["8","2005-04-19","r","p","1"],["9","2006-06-20","r","p","2"],["10","2009-09-01","r","p","2.2"],["11","2010-12-16","r","p","2.7"],["12","2012-06-14","r","p","2.10"],["15","2013-07-02","r","b","28"],["16","2013-08-27","r","b","29"],["17","2013-10-08","r","b","30"],["18","2013-11-19","r","b","31"],["19","2014-01-28","r","b","32"],["20","2014-03-04","r","b","33"],["21","2014-05-06","r","b","34"],["22","2014-06-03","r","b","35"],["23","2014-07-22","r","b","36"],["24","2014-09-02","r","b","37"],["25","2014-10-15","r","b","38"],["26","2014-12-03","r","b","39"],["27","2015-01-27","r","b","40"],["28","2015-03-10","r","b","41"],["29","2015-04-28","r","b","42"],["30","2015-06-09","r","b","43"],["31","2015-08-04","r","b","44"],["32","2015-09-15","r","b","45"],["33","2015-10-27","r","b","46"],["34","2015-12-08","r","b","47"],["35","2016-02-02","r","b","48"],["36","2016-03-15","r","b","49"],["37","2016-05-04","r","b","50"],["38","2016-06-08","r","b","51"],["39","2016-08-02","r","b","52"],["40","2016-09-20","r","b","53"],["41","2016-10-25","r","b","54"],["42","2016-12-13","r","b","55"],["43","2017-02-07","r","b","56"],["44","2017-03-21","r","b","57"],["45","2017-05-10","r","b","58"],["46","2017-06-22","r","b","59"],["47","2017-08-09","r","b","60"],["48","2017-09-27","r","b","61"],["49","2017-11-08","r","b","62"],["50","2018-01-04","r","b","63"],["51","2018-02-07","r","b","64"],["52","2018-03-22","r","b","65"],["53","2018-05-10","r","b","66"],["54","2018-06-28","r","b","67"],["55","2018-08-16","r","b","68"],["56","2018-09-25","r","b","69"],["57","2018-11-28","r","b","70"],["58","2019-01-23","r","b","71"],["60","2019-04-09","r","b","73"],["62","2019-06-27","r","b","75"],["63","2019-08-20","r","b","76"],["64","2019-10-07","r","b","77"],["65","2019-11-13","r","b","78"],["66","2020-01-07","r","b","79"],["67","2020-03-03","r","b","80"],["68","2020-04-22","r","b","81"],["69","2020-06-24","r","b","83"],["70","2020-07-27","r","b","84"],["71","2020-09-15","r","b","85"],["72","2020-10-21","r","b","86"],["73","2020-12-09","r","b","87"],["74","2021-02-02","r","b","88"],["75","2021-03-24","r","b","89"],["76","2021-04-28","r","b","90"],["77","2021-06-09","r","b","91"],["78","2021-08-03","r","b","92"],["79","2021-09-14","r","b","93"],["80","2021-10-05","r","b","94"],["81","2021-11-04","r","b","95"],["82","2021-12-02","r","b","96"],["83","2022-01-19","r","b","97"],["84","2022-02-16","r","b","98"],["85","2022-03-23","r","b","99"],["86","2022-04-20","r","b","100"],["87","2022-05-17","r","b","101"],["88","2022-06-08","r","b","102"],["89","2022-07-07","r","b","103"],["90","2022-08-18","r","b","104"],["91","2022-09-14","r","b","105"],["92","2022-10-19","r","b","106"],["93","2022-11-17","r","b","107"],["94","2022-12-15","r","b","108"],["95","2023-02-01","r","b","109"],["96","2023-02-22","r","b","110"],["97","2023-03-22","r","b","111"],["98","2023-04-20","r","b","112"],["99","2023-05-16","r","b","113"],["100","2023-06-29","r","b","114"],["101","2023-07-26","r","b","115"],["102","2023-08-23","r","b","116"],["103","2023-10-03","r","b","117"],["104","2023-10-23","r","b","118"],["105","2023-11-14","r","b","119"],["106","2023-12-19","r","b","120"],["107","2024-02-07","r","b","121"],["108","2024-03-05","r","b","122"],["109","2024-03-27","r","b","123"],["110","2024-05-14","r","b","124"],["111","2024-06-12","r","b","125"],["112","2024-07-11","r","b","126"],["113","2024-08-22","r","b","127"],["114","2024-09-25","r","b","128"],["115","2024-11-27","r","b","130"],["116","2025-01-08","r","b","131"],["117","2025-02-13","r","b","132"],["118","2025-04-15","r","b","133"],["119","2025-05-13","r","b","134"],["120","2025-07-02","r","b","135"],["121","2025-08-27","r","b","137"],["122","2025-09-11","r","b","138"],["123","2025-10-28","r","b","139"],["124","2025-11-13","r","b","140"],["125","2025-12-04","r","b","141"],["126","2026-01-08","r","b","142"],["127","2026-02-02","r","b","143"],["128","2026-02-26","r","b","144"],["129","2026-03-18","r","b","145"],["130","2026-04-08","c","b","146"],["131",null,"b","b","147"],["132",null,"n","b","148"],["10.1","2009-11-23","r","p","2.2"],["10.5","2010-03-02","r","p","2.5"],["10.6","2010-07-01","r","p","2.6"],["11.1","2011-04-12","r","p","2.8"],["11.5","2011-06-28","r","p","2.9"],["11.6","2011-12-06","r","p","2.10"],["12.1","2012-11-20","r","p","2.12"],["3.5","1998-11-18","r",null,null],["3.6","1999-05-06","r",null,null],["5.1","2001-04-10","r",null,null],["7.1","2003-04-11","r","p","1"],["7.2","2003-09-23","r","p","1"],["7.5","2004-05-12","r","p","1"],["8.5","2005-09-20","r","p","1"],["9.1","2006-12-18","r","p","2"],["9.2","2007-04-11","r","p","2"],["9.5","2008-06-12","r","p","2.1"],["9.6","2008-10-08","r","p","2.1"]]},opera_android:{releases:[["11","2011-03-22","r","p","2.7"],["12","2012-02-25","r","p","2.10"],["14","2013-05-21","r","w","537.31"],["15","2013-07-08","r","b","28"],["16","2013-09-18","r","b","29"],["18","2013-11-20","r","b","31"],["19","2014-01-28","r","b","32"],["20","2014-03-06","r","b","33"],["21","2014-04-22","r","b","34"],["22","2014-06-17","r","b","35"],["24","2014-09-10","r","b","37"],["25","2014-10-16","r","b","38"],["26","2014-12-02","r","b","39"],["27","2015-01-29","r","b","40"],["28","2015-03-10","r","b","41"],["29","2015-04-28","r","b","42"],["30","2015-06-10","r","b","43"],["32","2015-09-23","r","b","45"],["33","2015-11-03","r","b","46"],["34","2015-12-16","r","b","47"],["35","2016-02-04","r","b","48"],["36","2016-03-31","r","b","49"],["37","2016-06-16","r","b","50"],["41","2016-10-25","r","b","54"],["42","2017-01-21","r","b","55"],["43","2017-09-27","r","b","59"],["44","2017-12-11","r","b","60"],["45","2018-02-15","r","b","61"],["46","2018-05-14","r","b","63"],["47","2018-07-23","r","b","66"],["48","2018-11-08","r","b","69"],["49","2018-12-07","r","b","70"],["50","2019-02-18","r","b","71"],["51","2019-03-21","r","b","72"],["52","2019-05-17","r","b","73"],["53","2019-07-11","r","b","74"],["54","2019-10-18","r","b","76"],["55","2019-12-03","r","b","77"],["56","2020-02-06","r","b","78"],["57","2020-03-30","r","b","80"],["58","2020-05-13","r","b","81"],["59","2020-06-30","r","b","83"],["60","2020-09-23","r","b","85"],["61","2020-12-07","r","b","86"],["62","2021-02-16","r","b","87"],["63","2021-04-16","r","b","89"],["64","2021-05-25","r","b","91"],["65","2021-10-20","r","b","92"],["66","2021-12-15","r","b","94"],["67","2022-01-31","r","b","96"],["68","2022-03-30","r","b","99"],["69","2022-05-09","r","b","100"],["70","2022-06-29","r","b","102"],["71","2022-09-16","r","b","104"],["72","2022-10-21","r","b","106"],["73","2023-01-17","r","b","108"],["74","2023-03-13","r","b","110"],["75","2023-05-17","r","b","112"],["76","2023-06-26","r","b","114"],["77","2023-08-31","r","b","115"],["78","2023-10-23","r","b","117"],["79","2023-12-06","r","b","119"],["80","2024-01-25","r","b","120"],["81","2024-03-14","r","b","122"],["82","2024-05-02","r","b","124"],["83","2024-06-25","r","b","126"],["84","2024-08-26","r","b","127"],["85","2024-10-29","r","b","128"],["86","2024-12-02","r","b","130"],["87","2025-01-22","r","b","132"],["88","2025-03-19","r","b","134"],["89","2025-04-29","r","b","135"],["90","2025-06-18","r","b","137"],["91","2025-08-19","r","b","139"],["92","2025-10-08","r","b","140"],["93","2025-11-25","r","b","142"],["94","2026-01-13","r","b","143"],["95","2026-02-11","r","b","144"],["96","2026-03-10","r","b","145"],["97","2026-04-16","c","b","146"],["10.1","2010-11-09","r","p","2.5"],["11.1","2011-06-30","r","p","2.8"],["11.5","2011-10-12","r","p","2.9"],["12.1","2012-10-09","r","p","2.11"]]},safari:{releases:[["1","2003-06-23","r","w","85"],["2","2005-04-29","r","w","412"],["3","2007-10-26","r","w","523.10"],["4","2009-06-08","r","w","530.17"],["5","2010-06-07","r","w","533.16"],["6","2012-07-25","r","w","536.25"],["7","2013-10-22","r","w","537.71"],["8","2014-10-16","r","w","538.35"],["9","2015-09-30","r","w","601.1.56"],["10","2016-09-20","r","w","602.1.50"],["11","2017-09-19","r","w","604.2.4"],["12","2018-09-17","r","w","606.1.36"],["13","2019-09-19","r","w","608.2.11"],["14","2020-09-16","r","w","610.1.28"],["15","2021-09-20","r","w","612.1.27"],["16","2022-09-12","r","w","614.1.25"],["17","2023-09-18","r","w","616.1.27"],["18","2024-09-16","r","w","619.1.26"],["26","2025-09-15","r","w","622.1.22"],["1.1","2003-10-24","r","w","100"],["1.2","2004-02-02","r","w","125"],["1.3","2005-04-15","r","w","312"],["10.1","2017-03-27","r","w","603.2.1"],["11.1","2018-04-12","r","w","605.1.33"],["12.1","2019-03-25","r","w","607.1.40"],["13.1","2020-03-24","r","w","609.1.20"],["14.1","2021-04-26","r","w","611.1.21"],["15.1","2021-10-25","r","w","612.2.9"],["15.2","2021-12-13","r","w","612.3.6"],["15.3","2022-01-26","r","w","612.4.9"],["15.4","2022-03-14","r","w","613.1.17"],["15.5","2022-05-16","r","w","613.2.7"],["15.6","2022-07-20","r","w","613.3.9"],["16.1","2022-10-24","r","w","614.2.9"],["16.2","2022-12-13","r","w","614.3.7"],["16.3","2023-01-23","r","w","614.4.6"],["16.4","2023-03-27","r","w","615.1.26"],["16.5","2023-05-18","r","w","615.2.9"],["16.6","2023-07-24","r","w","615.3.12"],["17.1","2023-10-25","r","w","616.2.9"],["17.2","2023-12-11","r","w","617.1.17"],["17.3","2024-01-22","r","w","617.2.4"],["17.4","2024-03-05","r","w","618.1.15"],["17.5","2024-05-13","r","w","618.2.12"],["17.6","2024-07-29","r","w","618.3.11"],["18.1","2024-10-28","r","w","619.2.8"],["18.2","2024-12-11","r","w","620.1.16"],["18.3","2025-01-27","r","w","620.2.4"],["18.4","2025-03-31","r","w","621.1.15"],["18.5","2025-05-12","r","w","621.2.5"],["18.6","2025-07-29","r","w","621.3.11"],["26.1","2025-11-03","r","w","622.2.11"],["26.2","2025-12-12","r","w","623.1.14"],["26.3","2026-02-11","r","w","623.2.7"],["26.4","2026-03-24","c","w","624.1.16"],["26.5",null,"b","w","624.2.1"],["3.1","2008-03-18","r","w","525.13"],["5.1","2011-07-20","r","w","534.48"],["9.1","2016-03-21","r","w","601.5.17"]]},safari_ios:{releases:[["1","2007-06-29","r","w","522.11"],["2","2008-07-11","r","w","525.18"],["3","2009-06-17","r","w","528.18"],["4","2010-06-21","r","w","532.9"],["5","2011-10-12","r","w","534.46"],["6","2012-09-10","r","w","536.26"],["7","2013-09-18","r","w","537.51"],["8","2014-09-17","r","w","600.1.4"],["9","2015-09-16","r","w","601.1.56"],["10","2016-09-13","r","w","602.1.50"],["11","2017-09-19","r","w","604.2.4"],["12","2018-09-17","r","w","606.1.36"],["13","2019-09-19","r","w","608.2.11"],["14","2020-09-16","r","w","610.1.28"],["15","2021-09-20","r","w","612.1.27"],["16","2022-09-12","r","w","614.1.25"],["17","2023-09-18","r","w","616.1.27"],["18","2024-09-16","r","w","619.1.26"],["26","2025-09-15","r","w","622.1.22"],["10.3","2017-03-27","r","w","603.2.1"],["11.3","2018-03-29","r","w","605.1.33"],["12.2","2019-03-25","r","w","607.1.40"],["13.4","2020-03-24","r","w","609.1.20"],["14.5","2021-04-26","r","w","611.1.21"],["15.1","2021-10-25","r","w","612.2.9"],["15.2","2021-12-13","r","w","612.3.6"],["15.3","2022-01-26","r","w","612.4.9"],["15.4","2022-03-14","r","w","613.1.17"],["15.5","2022-05-16","r","w","613.2.7"],["15.6","2022-07-20","r","w","613.3.9"],["16.1","2022-10-24","r","w","614.2.9"],["16.2","2022-12-13","r","w","614.3.7"],["16.3","2023-01-23","r","w","614.4.6"],["16.4","2023-03-27","r","w","615.1.26"],["16.5","2023-05-18","r","w","615.2.9"],["16.6","2023-07-24","r","w","615.3.12"],["17.1","2023-10-25","r","w","616.2.9"],["17.2","2023-12-11","r","w","617.1.17"],["17.3","2024-01-22","r","w","617.2.4"],["17.4","2024-03-05","r","w","618.1.15"],["17.5","2024-05-13","r","w","618.2.12"],["17.6","2024-07-29","r","w","618.3.11"],["18.1","2024-10-28","r","w","619.2.8"],["18.2","2024-12-11","r","w","620.1.16"],["18.3","2025-01-27","r","w","620.2.4"],["18.4","2025-03-31","r","w","621.1.15"],["18.5","2025-05-12","r","w","621.2.5"],["18.6","2025-07-29","r","w","621.3.11"],["26.1","2025-11-03","r","w","622.2.11"],["26.2","2025-12-12","r","w","623.1.14"],["26.3","2026-02-11","r","w","623.2.7"],["26.4","2026-03-24","c","w","624.1.16"],["26.5",null,"b","w","624.2.1"],["3.2","2010-04-03","r","w","531.21"],["4.2","2010-11-22","r","w","533.17"],["9.3","2016-03-21","r","w","601.5.17"]]},samsunginternet_android:{releases:[["1.0","2013-04-27","r","w","535.19"],["1.5","2013-09-25","r","b","28"],["1.6","2014-04-11","r","b","28"],["10.0","2019-08-22","r","b","71"],["10.2","2019-10-09","r","b","71"],["11.0","2019-12-05","r","b","75"],["11.2","2020-03-22","r","b","75"],["12.0","2020-06-19","r","b","79"],["12.1","2020-07-07","r","b","79"],["13.0","2020-12-02","r","b","83"],["13.2","2021-01-20","r","b","83"],["14.0","2021-04-17","r","b","87"],["14.2","2021-06-25","r","b","87"],["15.0","2021-08-13","r","b","90"],["16.0","2021-11-25","r","b","92"],["16.2","2022-03-06","r","b","92"],["17.0","2022-05-04","r","b","96"],["18.0","2022-08-08","r","b","99"],["18.1","2022-09-09","r","b","99"],["19.0","2022-11-01","r","b","102"],["19.1","2022-11-08","r","b","102"],["2.0","2014-10-17","r","b","34"],["2.1","2015-01-07","r","b","34"],["20.0","2023-02-10","r","b","106"],["21.0","2023-05-19","r","b","110"],["22.0","2023-07-14","r","b","111"],["23.0","2023-10-18","r","b","115"],["24.0","2024-01-25","r","b","117"],["25.0","2024-04-24","r","b","121"],["26.0","2024-06-07","r","b","122"],["27.0","2024-11-06","r","b","125"],["28.0","2025-04-02","r","b","130"],["29.0","2025-10-25","c","b","136"],["3.0","2015-04-10","r","b","38"],["3.2","2015-08-24","r","b","38"],["4.0","2016-03-11","r","b","44"],["4.2","2016-08-02","r","b","44"],["5.0","2016-12-15","r","b","51"],["5.2","2017-04-21","r","b","51"],["5.4","2017-05-17","r","b","51"],["6.0","2017-08-23","r","b","56"],["6.2","2017-10-26","r","b","56"],["6.4","2018-02-19","r","b","56"],["7.0","2018-03-16","r","b","59"],["7.2","2018-06-20","r","b","59"],["7.4","2018-09-12","r","b","59"],["8.0","2018-07-18","r","b","63"],["8.2","2018-12-21","r","b","63"],["9.0","2018-09-15","r","b","67"],["9.2","2019-04-02","r","b","67"],["9.4","2019-07-25","r","b","67"]]},webview_android:{releases:[["1","2008-09-23","r","w","523.12"],["2","2009-10-26","r","w","530.17"],["3","2011-02-22","r","w","534.13"],["4","2011-10-18","r","w","534.30"],["37","2014-09-03","r","b","37"],["38","2014-10-08","r","b","38"],["39","2014-11-12","r","b","39"],["40","2015-01-21","r","b","40"],["41","2015-03-11","r","b","41"],["42","2015-04-15","r","b","42"],["43","2015-05-27","r","b","43"],["44","2015-07-29","r","b","44"],["45","2015-09-01","r","b","45"],["46","2015-10-14","r","b","46"],["47","2015-12-02","r","b","47"],["48","2016-01-26","r","b","48"],["49","2016-03-09","r","b","49"],["50","2016-04-13","r","b","50"],["51","2016-06-08","r","b","51"],["52","2016-07-27","r","b","52"],["53","2016-09-07","r","b","53"],["54","2016-10-19","r","b","54"],["55","2016-12-06","r","b","55"],["56","2017-02-01","r","b","56"],["57","2017-03-16","r","b","57"],["58","2017-04-25","r","b","58"],["59","2017-06-06","r","b","59"],["60","2017-08-01","r","b","60"],["61","2017-09-05","r","b","61"],["62","2017-10-24","r","b","62"],["63","2017-12-05","r","b","63"],["64","2018-01-23","r","b","64"],["65","2018-03-06","r","b","65"],["66","2018-04-17","r","b","66"],["67","2018-05-31","r","b","67"],["68","2018-07-24","r","b","68"],["69","2018-09-04","r","b","69"],["70","2018-10-17","r","b","70"],["71","2018-12-04","r","b","71"],["72","2019-01-29","r","b","72"],["73","2019-03-12","r","b","73"],["74","2019-04-24","r","b","74"],["75","2019-06-04","r","b","75"],["76","2019-07-30","r","b","76"],["77","2019-09-10","r","b","77"],["78","2019-10-22","r","b","78"],["79","2019-12-17","r","b","79"],["80","2020-02-04","r","b","80"],["81","2020-04-07","r","b","81"],["83","2020-05-19","r","b","83"],["84","2020-07-27","r","b","84"],["85","2020-08-25","r","b","85"],["86","2020-10-20","r","b","86"],["87","2020-11-17","r","b","87"],["88","2021-01-19","r","b","88"],["89","2021-03-02","r","b","89"],["90","2021-04-13","r","b","90"],["91","2021-05-25","r","b","91"],["92","2021-07-20","r","b","92"],["93","2021-08-31","r","b","93"],["94","2021-09-21","r","b","94"],["95","2021-10-19","r","b","95"],["96","2021-11-15","r","b","96"],["97","2022-01-04","r","b","97"],["98","2022-02-01","r","b","98"],["99","2022-03-01","r","b","99"],["100","2022-03-29","r","b","100"],["101","2022-04-26","r","b","101"],["102","2022-05-24","r","b","102"],["103","2022-06-21","r","b","103"],["104","2022-08-02","r","b","104"],["105","2022-09-02","r","b","105"],["106","2022-09-27","r","b","106"],["107","2022-10-25","r","b","107"],["108","2022-11-29","r","b","108"],["109","2023-01-10","r","b","109"],["110","2023-02-07","r","b","110"],["111","2023-03-01","r","b","111"],["112","2023-04-04","r","b","112"],["113","2023-05-02","r","b","113"],["114","2023-05-30","r","b","114"],["115","2023-07-21","r","b","115"],["116","2023-08-15","r","b","116"],["117","2023-09-12","r","b","117"],["118","2023-10-10","r","b","118"],["119","2023-10-31","r","b","119"],["120","2023-12-05","r","b","120"],["121","2024-01-23","r","b","121"],["122","2024-02-20","r","b","122"],["123","2024-03-19","r","b","123"],["124","2024-04-16","r","b","124"],["125","2024-05-14","r","b","125"],["126","2024-06-11","r","b","126"],["127","2024-07-23","r","b","127"],["128","2024-08-20","r","b","128"],["129","2024-09-17","r","b","129"],["130","2024-10-15","r","b","130"],["131","2024-11-12","r","b","131"],["132","2025-01-14","r","b","132"],["133","2025-02-04","r","b","133"],["134","2025-03-04","r","b","134"],["135","2025-04-01","r","b","135"],["136","2025-04-29","r","b","136"],["137","2025-05-27","r","b","137"],["138","2025-06-24","r","b","138"],["139","2025-08-05","r","b","139"],["140","2025-09-02","r","b","140"],["141","2025-09-30","r","b","141"],["142","2025-10-28","r","b","142"],["143","2025-12-02","r","b","143"],["144","2026-01-13","r","b","144"],["145","2026-02-10","r","b","145"],["146","2026-03-10","r","b","146"],["147","2026-04-07","c","b","147"],["148","2026-05-05","b","b","148"],["149","2026-06-02","n","b","149"],["150",null,"p","b","150"],["1.5","2009-04-27","r","w","525.20"],["2.2","2010-05-20","r","w","533.1"],["4.4","2013-12-09","r","b","30"],["4.4.3","2014-06-02","r","b","33"]]}},a={ya_android:{releases:[["1.0","u","u","b","25"],["1.5","u","u","b","22"],["1.6","u","u","b","25"],["1.7","u","u","b","25"],["1.20","u","u","b","25"],["2.5","u","u","b","25"],["3.2","u","u","b","25"],["4.6","u","u","b","25"],["5.3","u","u","b","25"],["5.4","u","u","b","25"],["7.4","u","u","b","25"],["9.6","u","u","b","25"],["10.5","u","u","b","25"],["11.4","u","u","b","25"],["11.5","u","u","b","25"],["12.7","u","u","b","25"],["13.9","u","u","b","28"],["13.10","u","u","b","28"],["13.11","u","u","b","28"],["13.12","u","u","b","30"],["14.2","u","u","b","32"],["14.4","u","u","b","33"],["14.5","u","u","b","34"],["14.7","u","u","b","35"],["14.8","u","u","b","36"],["14.10","u","u","b","37"],["14.12","u","u","b","38"],["15.2","u","u","b","40"],["15.4","u","u","b","41"],["15.6","u","u","b","42"],["15.7","u","u","b","43"],["15.9","u","u","b","44"],["15.10","u","u","b","45"],["15.12","u","u","b","46"],["16.2","u","u","b","47"],["16.3","u","u","b","47"],["16.4","u","u","b","49"],["16.6","u","u","b","50"],["16.7","u","u","b","51"],["16.9","u","u","b","52"],["16.10","u","u","b","53"],["16.11","u","u","b","54"],["17.1","u","u","b","55"],["17.3","u","u","b","56"],["17.4","u","u","b","57"],["17.6","u","u","b","58"],["17.7","u","u","b","59"],["17.9","u","u","b","60"],["17.10","u","u","b","61"],["17.11","u","u","b","62"],["18.1","u","u","b","63"],["18.2","u","u","b","63"],["18.3","u","u","b","64"],["18.4","u","u","b","65"],["18.6","u","u","b","66"],["18.7","u","u","b","67"],["18.9","u","u","b","68"],["18.10","u","u","b","69"],["18.11","u","u","b","70"],["19.1","u","u","b","71"],["19.3","u","u","b","72"],["19.4","u","u","b","73"],["19.5","u","u","b","75"],["19.6","u","u","b","75"],["19.7","u","u","b","75"],["19.9","u","u","b","76"],["19.10","u","u","b","77"],["19.11","u","u","b","78"],["19.12","u","u","b","78"],["20.2","u","u","b","79"],["20.3","u","u","b","80"],["20.4","u","u","b","81"],["20.6","u","u","b","81"],["20.7","u","u","b","83"],["20.8","2020-09-02","u","b","84"],["20.9","2020-09-27","u","b","85"],["20.11","2020-11-11","u","b","86"],["20.12","2020-12-20","u","b","87"],["21.1","2021-12-31","u","b","88"],["21.2","u","u","b","88"],["21.3","2021-04-04","u","b","89"],["21.5","u","u","b","90"],["21.6","2021-09-28","u","b","91"],["21.8","2021-09-28","u","b","92"],["21.9","2021-09-29","u","b","93"],["21.11","2021-10-29","u","b","94"],["22.1","2021-12-31","u","b","96"],["22.3","2022-03-25","u","b","98"],["22.4","u","u","b","92"],["22.5","2022-05-20","u","b","100"],["22.7","2022-07-07","u","b","102"],["22.8","u","u","b","104"],["22.9","2022-08-27","u","b","104"],["22.11","2022-11-11","u","b","106"],["23.1","2023-01-10","u","b","108"],["23.3","2023-03-26","u","b","110"],["23.5","2023-05-19","u","b","112"],["23.7","2023-07-06","u","b","114"],["23.9","2023-09-13","u","b","116"],["23.11","2023-11-15","u","b","118"],["24.1","2024-01-18","u","b","120"],["24.2","2024-03-25","u","b","120"],["24.4","2024-03-27","u","b","122"],["24.6","2024-06-04","u","b","124"],["24.7","2024-07-18","u","b","126"],["24.9","2024-10-01","u","b","126"],["24.10","2024-10-11","u","b","128"],["24.12","2024-11-30","u","b","130"],["25.2","2025-04-24","u","b","132"],["25.3","2025-04-23","u","b","132"],["25.4","2025-04-23","u","b","134"],["25.6","2025-09-04","u","b","136"],["25.8","2025-08-30","u","b","138"],["25.10","2025-10-09","u","b","140"],["25.12","2025-12-07","u","b","142"],["26.3","2026-03-04","u","b","144"]]},uc_android:{releases:[["10.5","u","u","b","31"],["10.7","u","u","b","31"],["10.8","u","u","b","31"],["10.10","u","u","b","31"],["11.0","u","u","b","31"],["11.1","u","u","b","40"],["11.2","u","u","b","40"],["11.3","u","u","b","40"],["11.4","u","u","b","40"],["11.5","u","u","b","40"],["11.6","u","u","b","57"],["11.8","u","u","b","57"],["11.9","u","u","b","57"],["12.0","u","u","b","57"],["12.1","u","u","b","57"],["12.2","u","u","b","57"],["12.3","u","u","b","57"],["12.4","u","u","b","57"],["12.5","u","u","b","57"],["12.6","u","u","b","57"],["12.7","u","u","b","57"],["12.8","u","u","b","57"],["12.9","u","u","b","57"],["12.10","u","u","b","57"],["12.11","u","u","b","57"],["12.12","u","u","b","57"],["12.13","u","u","b","57"],["12.14","u","u","b","57"],["13.0","u","u","b","57"],["13.1","u","u","b","57"],["13.2","u","u","b","57"],["13.3","2020-09-09","u","b","78"],["13.4","2021-09-28","u","b","78"],["13.5","2023-08-25","u","b","78"],["13.6","2023-12-17","u","b","78"],["13.7","2023-06-24","u","b","78"],["13.8","2022-04-30","u","b","78"],["13.9","2022-05-18","u","b","78"],["15.0","2022-08-24","u","b","78"],["15.1","2022-11-11","u","b","78"],["15.2","2023-04-23","u","b","78"],["15.3","2023-03-17","u","b","100"],["15.4","2023-10-25","u","b","100"],["15.5","2023-08-22","u","b","100"],["16.0","2023-08-24","u","b","100"],["16.1","2023-10-15","u","b","100"],["16.2","2023-12-09","u","b","100"],["16.3","2024-03-08","u","b","100"],["16.4","2024-10-03","u","b","100"],["16.5","2024-05-30","u","b","100"],["16.6","2024-07-23","u","b","100"],["17.0","2024-08-24","u","b","100"],["17.1","2024-09-26","u","b","100"],["17.2","2024-11-29","u","b","100"],["17.3","2025-01-07","u","b","100"],["17.4","2025-02-26","u","b","100"],["17.5","2025-04-08","u","b","100"],["17.6","2025-05-15","u","b","123"],["17.7","2025-06-11","u","b","123"],["17.8","2025-07-30","u","b","123"],["18.0","2025-08-17","u","b","123"],["18.1","2025-10-04","u","b","123"],["18.2","2025-11-04","u","b","123"],["18.3","2025-12-12","u","b","123"],["18.4","2026-01-09","u","b","123"],["18.5","2026-01-28","u","b","123"],["18.6","2026-03-21","u","b","123"]]},qq_android:{releases:[["6.0","u","u","b","37"],["6.1","u","u","b","37"],["6.2","u","u","b","37"],["6.3","u","u","b","37"],["6.4","u","u","b","37"],["6.6","u","u","b","37"],["6.7","u","u","b","37"],["6.8","u","u","b","37"],["6.9","u","u","b","37"],["7.0","u","u","b","37"],["7.1","u","u","b","37"],["7.2","u","u","b","37"],["7.3","u","u","b","37"],["7.4","u","u","b","37"],["7.5","u","u","b","37"],["7.6","u","u","b","37"],["7.7","u","u","b","37"],["7.8","u","u","b","37"],["7.9","u","u","b","37"],["8.0","u","u","b","37"],["8.1","u","u","b","57"],["8.2","u","u","b","57"],["8.3","u","u","b","57"],["8.4","u","u","b","57"],["8.5","u","u","b","57"],["8.6","u","u","b","57"],["8.7","u","u","b","57"],["8.8","u","u","b","57"],["8.9","u","u","b","57"],["9.1","u","u","b","57"],["9.6","u","u","b","66"],["9.7","u","u","b","66"],["9.8","u","u","b","66"],["10.0","u","u","b","66"],["10.1","u","u","b","66"],["10.2","u","u","b","66"],["10.3","u","u","b","66"],["10.4","u","u","b","66"],["10.5","u","u","b","66"],["10.7","2020-09-09","u","b","66"],["10.9","2020-11-22","u","b","77"],["11.0","u","u","b","77"],["11.2","2021-01-30","u","b","77"],["11.3","2021-03-31","u","b","77"],["11.7","2021-11-02","u","b","89"],["11.9","u","u","b","89"],["12.0","2021-11-04","u","b","89"],["12.1","2021-11-05","u","b","89"],["12.2","2021-12-07","u","b","89"],["12.5","2022-04-07","u","b","89"],["12.7","2022-05-21","u","b","89"],["12.8","2022-06-30","u","b","89"],["12.9","2022-07-26","u","b","89"],["13.0","2022-08-15","u","b","89"],["13.1","2022-09-10","u","b","89"],["13.2","2022-10-26","u","b","89"],["13.3","2022-11-09","u","b","89"],["13.4","2023-04-26","u","b","98"],["13.5","2023-02-06","u","b","98"],["13.6","2023-02-09","u","b","98"],["13.7","2023-04-21","u","b","98"],["13.8","2023-04-21","u","b","98"],["14.0","2023-12-12","u","b","98"],["14.1","2023-07-16","u","b","98"],["14.2","2023-10-14","u","b","109"],["14.3","2023-09-13","u","b","109"],["14.4","2023-10-31","u","b","109"],["14.5","2023-11-12","u","b","109"],["14.6","2023-12-24","u","b","109"],["14.7","2024-01-18","u","b","109"],["14.8","2024-03-04","u","b","109"],["14.9","2024-04-09","u","b","109"],["15.0","2024-04-17","u","b","109"],["15.1","2024-05-18","u","b","109"],["15.2","2024-10-24","u","b","109"],["15.3","2024-07-28","u","b","109"],["15.4","2024-09-07","u","b","109"],["15.5","2024-09-24","u","b","109"],["15.6","2024-10-24","u","b","109"],["15.7","2024-12-03","u","b","109"],["15.8","2024-12-11","u","b","109"],["15.9","2025-02-01","u","b","109"],["19.1","2025-07-08","u","b","121"],["19.2","2025-07-15","u","b","121"],["19.3","2025-08-31","u","b","121"],["19.4","2025-09-20","u","b","121"],["19.5","2025-10-23","u","b","121"],["19.6","2025-11-17","u","b","121"],["19.7","2025-12-18","u","b","121"],["19.8","2026-01-20","u","b","121"],["19.9","2026-03-09","u","b","121"],["20.0","2026-04-06","u","b","121"]]},kai_os:{releases:[["1.0","2017-03-01","u","g","37"],["2.0","2017-07-01","u","g","48"],["2.5","2017-07-01","u","g","48"],["3.0","2021-09-01","u","g","84"],["3.1","2022-03-01","u","g","84"],["4.0","2025-05-01","u","g","123"]]},facebook_android:{releases:[["66","u","u","b","48"],["68","u","u","b","48"],["74","u","u","b","50"],["75","u","u","b","50"],["76","u","u","b","50"],["77","u","u","b","50"],["78","u","u","b","50"],["79","u","u","b","50"],["80","u","u","b","51"],["81","u","u","b","51"],["82","u","u","b","51"],["83","u","u","b","51"],["84","u","u","b","51"],["86","u","u","b","51"],["87","u","u","b","52"],["88","u","u","b","52"],["89","u","u","b","52"],["90","u","u","b","52"],["91","u","u","b","52"],["92","u","u","b","52"],["93","u","u","b","52"],["94","u","u","b","52"],["95","u","u","b","53"],["96","u","u","b","53"],["97","u","u","b","53"],["98","u","u","b","53"],["99","u","u","b","53"],["100","u","u","b","54"],["101","u","u","b","54"],["103","u","u","b","54"],["104","u","u","b","54"],["105","u","u","b","54"],["106","u","u","b","55"],["107","u","u","b","55"],["108","u","u","b","55"],["109","u","u","b","55"],["110","u","u","b","55"],["111","u","u","b","55"],["112","u","u","b","56"],["113","u","u","b","56"],["114","u","u","b","56"],["115","u","u","b","56"],["116","u","u","b","56"],["117","u","u","b","57"],["118","u","u","b","57"],["119","u","u","b","57"],["120","u","u","b","57"],["121","u","u","b","57"],["122","u","u","b","58"],["123","u","u","b","58"],["124","u","u","b","58"],["125","u","u","b","58"],["126","u","u","b","58"],["127","u","u","b","58"],["128","u","u","b","58"],["129","u","u","b","58"],["130","u","u","b","59"],["131","u","u","b","59"],["132","u","u","b","59"],["133","u","u","b","59"],["134","u","u","b","59"],["135","u","u","b","59"],["136","u","u","b","59"],["137","u","u","b","59"],["138","u","u","b","60"],["140","u","u","b","60"],["142","u","u","b","61"],["143","u","u","b","61"],["144","u","u","b","61"],["145","u","u","b","61"],["146","u","u","b","61"],["147","u","u","b","61"],["148","u","u","b","61"],["149","u","u","b","62"],["150","u","u","b","62"],["151","u","u","b","62"],["152","u","u","b","62"],["153","u","u","b","63"],["154","u","u","b","63"],["155","u","u","b","63"],["156","u","u","b","63"],["157","u","u","b","64"],["158","u","u","b","64"],["159","u","u","b","64"],["160","u","u","b","64"],["161","u","u","b","64"],["162","u","u","b","64"],["163","u","u","b","65"],["164","u","u","b","65"],["165","u","u","b","65"],["166","u","u","b","65"],["167","u","u","b","65"],["168","u","u","b","65"],["169","u","u","b","66"],["170","u","u","b","66"],["171","u","u","b","66"],["172","u","u","b","66"],["173","u","u","b","66"],["174","u","u","b","66"],["175","u","u","b","67"],["176","u","u","b","67"],["177","u","u","b","67"],["178","u","u","b","67"],["180","u","u","b","67"],["181","u","u","b","67"],["182","u","u","b","67"],["183","u","u","b","68"],["184","u","u","b","68"],["185","u","u","b","68"],["186","u","u","b","68"],["187","u","u","b","68"],["188","u","u","b","68"],["202","u","u","b","71"],["227","u","u","b","75"],["228","u","u","b","75"],["229","u","u","b","75"],["230","u","u","b","75"],["231","u","u","b","75"],["233","u","u","b","76"],["235","u","u","b","76"],["236","u","u","b","76"],["237","u","u","b","76"],["238","u","u","b","76"],["240","u","u","b","77"],["241","u","u","b","77"],["242","u","u","b","77"],["243","u","u","b","77"],["244","u","u","b","78"],["245","u","u","b","78"],["246","u","u","b","78"],["247","u","u","b","78"],["248","u","u","b","78"],["249","u","u","b","78"],["250","u","u","b","78"],["251","u","u","b","79"],["252","u","u","b","79"],["253","u","u","b","79"],["254","u","u","b","79"],["255","u","u","b","79"],["256","u","u","b","80"],["257","u","u","b","80"],["258","u","u","b","80"],["259","u","u","b","80"],["260","u","u","b","80"],["261","u","u","b","80"],["262","u","u","b","80"],["263","u","u","b","80"],["264","u","u","b","80"],["265","u","u","b","80"],["266","u","u","b","81"],["267","u","u","b","81"],["268","u","u","b","81"],["269","u","u","b","81"],["270","u","u","b","81"],["271","u","u","b","81"],["272","u","u","b","83"],["273","u","u","b","83"],["274","u","u","b","83"],["275","u","u","b","83"],["297","2020-12-02","u","b","86"],["348","2021-12-19","u","b","96"],["399","2023-02-04","u","b","109"],["400","2023-02-10","u","b","109"],["420","2023-06-28","u","b","114"],["430","2023-09-03","u","b","116"],["434","2023-10-05","u","b","117"],["436","2023-10-13","u","b","117"],["437","u","u","b","118"],["438","2023-10-28","u","b","118"],["439","2023-11-11","u","b","119"],["440","2023-11-12","u","b","119"],["441","2023-11-20","u","b","119"],["442","2023-11-29","u","b","119"],["443","2023-12-07","u","b","120"],["444","2023-12-13","u","b","120"],["445","2023-12-21","u","b","120"],["446","2024-01-06","u","b","120"],["447","2024-01-12","u","b","120"],["448","2024-01-29","u","b","121"],["449","2024-02-02","u","b","121"],["450","2024-02-05","u","b","121"],["451","2024-02-17","u","b","121"],["452","2024-02-25","u","b","122"],["453","2024-02-28","u","b","122"],["454","2024-03-04","u","b","122"],["465","2024-07-07","u","b","126"],["466","u","u","b","126"],["469","u","u","b","126"],["471","2024-07-10","u","b","126"],["472","2024-07-11","u","b","126"],["474","2024-07-30","u","b","127"],["475","2024-08-01","u","b","127"],["476","2024-08-09","u","b","127"],["477","2024-08-16","u","b","127"],["478","2024-08-21","u","b","128"],["479","2024-08-31","u","b","128"],["480","2024-09-07","u","b","128"],["481","2024-09-14","u","b","128"],["482","2024-09-20","u","b","129"],["483","2024-09-27","u","b","129"],["484","2024-10-04","u","b","129"],["485","2024-10-11","u","b","129"],["486","2024-10-18","u","b","130"],["487","2024-10-26","u","b","130"],["488","2024-11-02","u","b","130"],["489","2024-11-09","u","b","130"],["494","2024-12-26","u","b","131"],["497","2025-01-26","u","b","132"],["503","2025-03-12","u","b","134"],["514","2025-05-28","u","b","136"],["515","2025-05-31","u","b","137"]]},instagram_android:{releases:[["23","u","u","b","62"],["24","u","u","b","62"],["25","u","u","b","62"],["26","u","u","b","63"],["27","u","u","b","63"],["28","u","u","b","63"],["29","u","u","b","63"],["30","u","u","b","63"],["31","u","u","b","64"],["32","u","u","b","64"],["33","u","u","b","64"],["34","u","u","b","64"],["35","u","u","b","65"],["36","u","u","b","65"],["37","u","u","b","65"],["38","u","u","b","65"],["39","u","u","b","65"],["40","u","u","b","65"],["41","u","u","b","65"],["42","u","u","b","66"],["43","u","u","b","66"],["44","u","u","b","66"],["45","u","u","b","66"],["46","u","u","b","66"],["47","u","u","b","66"],["48","u","u","b","67"],["49","u","u","b","67"],["50","u","u","b","67"],["51","u","u","b","67"],["52","u","u","b","67"],["53","u","u","b","67"],["54","u","u","b","67"],["55","u","u","b","67"],["56","u","u","b","68"],["57","u","u","b","68"],["58","u","u","b","68"],["59","u","u","b","68"],["60","u","u","b","68"],["61","u","u","b","68"],["65","u","u","b","69"],["66","u","u","b","69"],["68","u","u","b","69"],["72","u","u","b","70"],["74","u","u","b","71"],["75","u","u","b","71"],["79","u","u","b","71"],["81","u","u","b","72"],["82","u","u","b","72"],["83","u","u","b","72"],["84","u","u","b","73"],["86","u","u","b","73"],["95","u","u","b","74"],["96","u","u","b","80"],["97","u","u","b","80"],["98","u","u","b","80"],["103","u","u","b","80"],["104","u","u","b","80"],["117","u","u","b","80"],["118","u","u","b","80"],["119","u","u","b","80"],["120","u","u","b","80"],["121","u","u","b","80"],["127","u","u","b","80"],["128","u","u","b","80"],["129","u","u","b","80"],["130","u","u","b","80"],["131","u","u","b","80"],["132","u","u","b","80"],["133","u","u","b","80"],["134","u","u","b","80"],["135","u","u","b","80"],["136","u","u","b","80"],["137","u","u","b","81"],["138","u","u","b","81"],["139","u","u","b","81"],["140","u","u","b","81"],["141","u","u","b","81"],["142","u","u","b","81"],["143","u","u","b","83"],["144","u","u","b","83"],["145","u","u","b","83"],["146","u","u","b","83"],["153","u","u","b","84"],["163","u","u","b","92"],["164","u","u","b","92"],["230","u","u","b","92"],["258","2022-11-04","u","b","106"],["259","2022-11-04","u","b","106"],["279","2023-12-31","u","b","109"],["281","u","u","b","109"],["288","u","u","b","114"],["289","2023-12-21","u","b","114"],["290","2023-12-30","u","b","114"],["292","u","u","b","115"],["295","u","u","b","115"],["296","u","u","b","115"],["297","u","u","b","115"],["298","2024-01-11","u","b","115"],["299","u","u","b","115"],["300","u","u","b","116"],["301","2024-01-12","u","b","116"],["302","u","u","b","117"],["303","u","u","b","117"],["304","u","u","b","117"],["305","u","u","b","117"],["306","2024-01-17","u","b","118"],["307","u","u","b","118"],["308","2024-01-19","u","b","118"],["309","u","u","b","119"],["310","u","u","b","119"],["311","u","u","b","120"],["312","u","u","b","120"],["313","u","u","b","120"],["314","u","u","b","120"],["315","2024-01-19","u","b","120"],["316","2024-01-25","u","b","120"],["317","2024-02-03","u","b","121"],["318","2024-02-16","u","b","121"],["320","2024-03-04","u","b","121"],["321","2024-03-07","u","b","122"],["338","2024-07-06","u","b","126"],["346","2024-09-01","u","b","127"],["347","2024-09-11","u","b","127"],["349","2024-09-20","u","b","128"],["355","2024-11-06","u","b","130"],["366","u","u","b","132"],["367","2025-02-15","u","b","132"],["378","2025-05-03","u","b","135"],["381","2025-06-19","u","b","137"],["382","2025-06-19","u","b","137"],["383","2025-06-18","u","b","137"],["384","2025-06-16","u","b","137"],["385","2025-06-27","u","b","137"],["387","2025-07-09","u","b","137"],["390","2025-07-26","u","b","138"],["392","2025-08-12","u","b","138"],["394","2025-08-26","u","b","139"],["395","2025-09-13","u","b","139"],["396","2025-09-20","u","b","139"],["397","2025-09-19","u","b","139"],["399","2025-09-28","u","b","140"],["400","2025-10-06","u","b","141"],["401","2025-10-08","u","b","141"],["404","2025-10-31","u","b","141"],["406","2025-11-16","u","b","141"],["407","2025-11-23","u","b","142"],["408","2025-11-28","u","b","142"],["409","2025-12-16","u","b","143"],["410","2025-12-17","u","b","143"],["411","2026-01-07","u","b","143"],["423","2026-04-05","u","b","146"]]}},r=[["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"2",ca:"18",e:"12",f:"1",fa:"4",s:"4",si:"3.2"}],["2019-03-25",{c:"66",ca:"66",e:"16",f:"57",fa:"57",s:"12.1",si:"12.2"}],["2019-03-25",{c:"66",ca:"66",e:"16",f:"57",fa:"57",s:"12.1",si:"12.2"}],["2024-03-19",{c:"116",ca:"116",e:"116",f:"124",fa:"124",s:"17.4",si:"17.4"}],["2024-04-18",{c:"124",ca:"124",e:"124",f:"100",fa:"100",s:"16",si:"16"}],["2025-06-26",{c:"138",ca:"138",e:"138",f:"118",fa:"118",s:"15.4",si:"15.4"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"17",ca:"18",e:"12",f:"5",fa:"5",s:"6",si:"6"}],["2026-01-13",{c:"125",ca:"125",e:"125",f:"147",fa:"147",s:"18.2",si:"18.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2024-04-16",{c:"123",ca:"123",e:"123",f:"125",fa:"125",s:"17.4",si:"17.4"}],["2020-01-15",{c:"37",ca:"37",e:"79",f:"27",fa:"27",s:"9.1",si:"9.3"}],["2024-07-09",{c:"77",ca:"77",e:"79",f:"128",fa:"128",s:"17.4",si:"17.4"}],["2016-06-07",{c:"32",ca:"30",e:"12",f:"47",fa:"47",s:"8",si:"8"}],["2023-07-04",{c:"112",ca:"112",e:"112",f:"115",fa:"115",s:"16",si:"16"}],["2015-09-30",{c:"43",ca:"43",e:"12",f:"16",fa:"16",s:"9",si:"9"}],["2022-03-14",{c:"84",ca:"84",e:"84",f:"80",fa:"80",s:"15.4",si:"15.4"}],["2023-10-24",{c:"103",ca:"103",e:"103",f:"119",fa:"119",s:"16.4",si:"16.4"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2022-03-14",{c:"92",ca:"92",e:"92",f:"90",fa:"90",s:"15.4",si:"15.4"}],["2023-07-04",{c:"110",ca:"110",e:"110",f:"115",fa:"115",s:"16",si:"16"}],["2016-09-20",{c:"45",ca:"45",e:"12",f:"34",fa:"34",s:"10",si:"10"}],["2016-09-20",{c:"45",ca:"45",e:"12",f:"37",fa:"37",s:"10",si:"10"}],["2016-09-20",{c:"45",ca:"45",e:"12",f:"37",fa:"37",s:"10",si:"10"}],["2022-08-23",{c:"97",ca:"97",e:"97",f:"104",fa:"104",s:"15.4",si:"15.4"}],["2020-01-15",{c:"69",ca:"69",e:"79",f:"62",fa:"62",s:"12",si:"12"}],["2016-09-20",{c:"45",ca:"45",e:"12",f:"38",fa:"38",s:"10",si:"10"}],["2024-01-25",{c:"121",ca:"121",e:"121",f:"115",fa:"115",s:"16.4",si:"16.4"}],["2024-03-05",{c:"117",ca:"117",e:"117",f:"119",fa:"119",s:"17.4",si:"17.4"}],["2016-09-20",{c:"47",ca:"47",e:"14",f:"43",fa:"43",s:"10",si:"10"}],["2015-07-29",{c:"4",ca:"18",e:"12",f:"4",fa:"4",s:"5",si:"5"}],["2015-07-29",{c:"3",ca:"18",e:"12",f:"3",fa:"4",s:"4",si:"3.2"}],["2018-05-09",{c:"66",ca:"66",e:"14",f:"60",fa:"60",s:"10",si:"10"}],["2016-09-20",{c:"45",ca:"45",e:"12",f:"38",fa:"38",s:"10",si:"10"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"5",ca:"18",e:"12",f:"4",fa:"4",s:"5",si:"4.2"}],["2015-07-29",{c:"5",ca:"18",e:"12",f:"4",fa:"4",s:"5",si:"4.2"}],["2021-09-20",{c:"88",ca:"88",e:"88",f:"89",fa:"89",s:"15",si:"15"}],["2017-04-05",{c:"55",ca:"55",e:"15",f:"52",fa:"52",s:"10.1",si:"10.3"}],["2024-06-11",{c:"76",ca:"76",e:"79",f:"127",fa:"127",s:"13.1",si:"13.4"}],["2020-01-15",{c:"63",ca:"63",e:"79",f:"57",fa:"57",s:"12",si:"12"}],["2020-01-15",{c:"63",ca:"63",e:"79",f:"57",fa:"57",s:"12",si:"12"}],["2025-04-01",{c:"133",ca:"133",e:"133",f:"137",fa:"137",s:"18.4",si:"18.4"}],["2025-11-11",{c:"90",ca:"90",e:"90",f:"145",fa:"145",s:"16.4",si:"16.4"}],["2015-07-29",{c:"2",ca:"18",e:"12",f:"1",fa:"4",s:"3.1",si:"2"}],["2015-07-29",{c:"3",ca:"18",e:"12",f:"3.5",fa:"4",s:"3.1",si:"3"}],["2021-04-26",{c:"66",ca:"66",e:"79",f:"76",fa:"79",s:"14.1",si:"14.5"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"4",si:"3.2"}],["2020-01-15",{c:"54",ca:"54",e:"79",f:"63",fa:"63",s:"10.1",si:"10.3"}],["2024-01-25",{c:"85",ca:"85",e:"121",f:"113",fa:"113",s:"16.4",si:"16.1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2022-03-14",{c:"37",ca:"37",e:"79",f:"47",fa:"47",s:"15.4",si:"15.4"}],["2024-09-16",{c:"76",ca:"76",e:"79",f:"103",fa:"103",s:"18",si:"18"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"3.6",fa:"4",s:"1.3",si:"1"}],["2020-01-15",{c:"35",ca:"59",e:"79",f:"30",fa:"54",s:"8",si:"8"}],["2015-07-29",{c:"21",ca:"25",e:"12",f:"22",fa:"22",s:"5.1",si:"5"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"3.6",fa:"4",s:"1.3",si:"1"}],["2015-07-29",{c:"21",ca:"25",e:"12",f:"22",fa:"22",s:"5.1",si:"4"}],["2015-07-29",{c:"25",ca:"25",e:"12",f:"13",fa:"14",s:"7",si:"7"}],["2016-09-20",{c:"30",ca:"30",e:"12",f:"49",fa:"49",s:"8",si:"8"}],["2015-07-29",{c:"21",ca:"25",e:"12",f:"9",fa:"18",s:"5.1",si:"4.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"3",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"3",si:"2"}],["2016-09-20",{c:"30",ca:"30",e:"12",f:"4",fa:"4",s:"10",si:"10"}],["2020-01-15",{c:"16",ca:"18",e:"79",f:"10",fa:"10",s:"6",si:"6"}],["2015-07-29",{c:"≤15",ca:"18",e:"12",f:"10",fa:"10",s:"≤4",si:"≤3.2"}],["2018-04-12",{c:"39",ca:"42",e:"14",f:"31",fa:"31",s:"11.1",si:"11.3"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1.5",fa:"4",s:"4",si:"3.2"}],["2020-09-16",{c:"67",ca:"67",e:"79",f:"68",fa:"68",s:"14",si:"14"}],["2021-09-20",{c:"67",ca:"67",e:"79",f:"68",fa:"68",s:"15",si:"15"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"3",si:"1"}],["2017-02-01",{c:"56",ca:"56",e:"12",f:"50",fa:"50",s:"9.1",si:"9.3"}],["2015-07-29",{c:"4",ca:"18",e:"12",f:"4",fa:"4",s:"5",si:"4.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"14",s:"1",si:"3"}],["2015-07-29",{c:"10",ca:"18",e:"12",f:"4",fa:"4",s:"5.1",si:"5"}],["2015-07-29",{c:"10",ca:"18",e:"12",f:"29",fa:"29",s:"5.1",si:"6"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"3",si:"1"}],["2022-03-14",{c:"54",ca:"54",e:"79",f:"38",fa:"38",s:"15.4",si:"15.4"}],["2017-09-19",{c:"50",ca:"51",e:"15",f:"44",fa:"44",s:"11",si:"11"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"26",ca:"28",e:"12",f:"16",fa:"16",s:"7",si:"7"}],["2023-06-06",{c:"110",ca:"110",e:"110",f:"114",fa:"114",s:"16",si:"16"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1.5",fa:"4",s:"2",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1.5",fa:"4",s:"2",si:"1"}],["2024-09-16",{c:"99",ca:"99",e:"99",f:"28",fa:"28",s:"18",si:"18"}],["2023-04-11",{c:"99",ca:"99",e:"99",f:"112",fa:"112",s:"16.4",si:"16.4"}],["2023-12-11",{c:"99",ca:"99",e:"99",f:"113",fa:"113",s:"17.2",si:"17.2"}],["2023-04-11",{c:"99",ca:"99",e:"99",f:"112",fa:"112",s:"16.4",si:"16.4"}],["2023-12-11",{c:"118",ca:"118",e:"118",f:"97",fa:"97",s:"17.2",si:"17.2"}],["2020-01-15",{c:"51",ca:"51",e:"79",f:"43",fa:"43",s:"11",si:"11"}],["2020-01-15",{c:"57",ca:"57",e:"79",f:"53",fa:"53",s:"11.1",si:"11.3"}],["2022-03-14",{c:"99",ca:"99",e:"99",f:"97",fa:"97",s:"15.4",si:"15.4"}],["2020-01-15",{c:"49",ca:"49",e:"79",f:"47",fa:"47",s:"9",si:"9"}],["2015-07-29",{c:"27",ca:"27",e:"12",f:"1",fa:"4",s:"7",si:"7"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"3",si:"2"}],["2015-09-22",{c:"4",ca:"18",e:"12",f:"41",fa:"41",s:"5",si:"4.2"}],["2015-07-29",{c:"2",ca:"18",e:"12",f:"1.5",fa:"4",s:"4",si:"4"}],["2024-03-05",{c:"105",ca:"105",e:"105",f:"106",fa:"106",s:"17.4",si:"17.4"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3.2"}],["2016-03-08",{c:"42",ca:"42",e:"13",f:"45",fa:"45",s:"9",si:"9"}],["2021-01-21",{c:"88",ca:"88",e:"88",f:"71",fa:"79",s:"13.1",si:"13"}],["2020-01-15",{c:"55",ca:"55",e:"79",f:"49",fa:"49",s:"12.1",si:"12.2"}],["2023-11-02",{c:"119",ca:"119",e:"119",f:"54",fa:"54",s:"13.1",si:"13.4"}],["2017-03-27",{c:"41",ca:"41",e:"12",f:"22",fa:"22",s:"10.1",si:"10.3"}],["2025-03-31",{c:"121",ca:"121",e:"121",f:"127",fa:"127",s:"18.4",si:"18.4"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2023-05-09",{c:"111",ca:"111",e:"111",f:"113",fa:"113",s:"15",si:"15"}],["2023-02-14",{c:"58",ca:"58",e:"79",f:"110",fa:"110",s:"10",si:"10"}],["2023-05-09",{c:"111",ca:"111",e:"111",f:"113",fa:"113",s:"16.2",si:"16.2"}],["2022-02-03",{c:"98",ca:"98",e:"98",f:"96",fa:"96",s:"13",si:"13"}],["2020-01-15",{c:"53",ca:"53",e:"79",f:"31",fa:"31",s:"11.1",si:"11.3"}],["2017-03-07",{c:"50",ca:"50",e:"12",f:"52",fa:"52",s:"9",si:"9"}],["2020-07-28",{c:"50",ca:"50",e:"12",f:"71",fa:"79",s:"9",si:"9"}],["2025-08-19",{c:"137",ca:"137",e:"137",f:"142",fa:"142",s:"17",si:"17"}],["2017-04-19",{c:"26",ca:"26",e:"12",f:"53",fa:"53",s:"7",si:"7"}],["2023-05-09",{c:"80",ca:"80",e:"80",f:"113",fa:"113",s:"16.4",si:"16.4"}],["2020-11-17",{c:"69",ca:"69",e:"79",f:"83",fa:"83",s:"12.1",si:"12.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"4",fa:"4",s:"3",si:"1"}],["2018-12-11",{c:"40",ca:"40",e:"18",f:"51",fa:"64",s:"10.1",si:"10.3"}],["2023-03-27",{c:"73",ca:"73",e:"79",f:"101",fa:"101",s:"16.4",si:"16.4"}],["2022-03-14",{c:"52",ca:"52",e:"79",f:"69",fa:"79",s:"15.4",si:"15.4"}],["2022-09-12",{c:"105",ca:"105",e:"105",f:"101",fa:"101",s:"16",si:"16"}],["2023-09-18",{c:"83",ca:"83",e:"83",f:"107",fa:"107",s:"17",si:"17"}],["2022-03-14",{c:"52",ca:"52",e:"79",f:"69",fa:"79",s:"15.4",si:"15.4"}],["2022-03-14",{c:"52",ca:"52",e:"79",f:"69",fa:"79",s:"15.4",si:"15.4"}],["2022-03-14",{c:"52",ca:"52",e:"79",f:"69",fa:"79",s:"15.4",si:"15.4"}],["2022-07-26",{c:"52",ca:"52",e:"79",f:"103",fa:"103",s:"15.4",si:"15.4"}],["2023-02-14",{c:"105",ca:"105",e:"105",f:"110",fa:"110",s:"16",si:"16"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2025-09-15",{c:"108",ca:"108",e:"108",f:"130",fa:"130",s:"26",si:"26"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"4",fa:"4",s:"≤4",si:"≤3.2"}],["2025-03-04",{c:"51",ca:"51",e:"12",f:"136",fa:"136",s:"5.1",si:"5"}],["2024-09-16",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"18",si:"18"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"4",ca:"18",e:"12",f:"3.5",fa:"4",s:"4",si:"3.2"}],["2023-12-11",{c:"85",ca:"85",e:"85",f:"68",fa:"68",s:"17.2",si:"17.2"}],["2023-09-18",{c:"91",ca:"91",e:"91",f:"33",fa:"33",s:"17",si:"17"}],["2015-07-29",{c:"2",ca:"18",e:"12",f:"1",fa:"25",s:"3",si:"1"}],["2023-12-11",{c:"59",ca:"59",e:"79",f:"98",fa:"98",s:"17.2",si:"17.2"}],["2020-01-15",{c:"60",ca:"60",e:"79",f:"60",fa:"60",s:"13",si:"13"}],["2016-08-02",{c:"25",ca:"25",e:"14",f:"23",fa:"23",s:"7",si:"7"}],["2020-01-15",{c:"46",ca:"46",e:"79",f:"31",fa:"31",s:"10.1",si:"10.3"}],["2015-09-30",{c:"28",ca:"28",e:"12",f:"22",fa:"22",s:"9",si:"9"}],["2020-01-15",{c:"61",ca:"61",e:"79",f:"55",fa:"55",s:"11",si:"11"}],["2015-07-29",{c:"16",ca:"18",e:"12",f:"4",fa:"4",s:"6",si:"6"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1.5",fa:"4",s:"4",si:"3.2"}],["2017-04-05",{c:"49",ca:"49",e:"15",f:"31",fa:"31",s:"9.1",si:"9.3"}],["2017-10-24",{c:"62",ca:"62",e:"14",f:"22",fa:"22",s:"10",si:"10"}],["2015-07-29",{c:"≤4",ca:"18",e:"12",f:"≤2",fa:"4",s:"≤3.1",si:"≤2"}],["2015-07-29",{c:"7",ca:"18",e:"12",f:"6",fa:"6",s:"5.1",si:"5"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2024-02-20",{c:"111",ca:"111",e:"111",f:"123",fa:"123",s:"16.4",si:"16.4"}],["2015-07-29",{c:"4",ca:"18",e:"12",f:"4",fa:"4",s:"4",si:"5"}],["2020-01-15",{c:"10",ca:"18",e:"79",f:"4",fa:"4",s:"5",si:"5"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3.2"}],["2020-01-15",{c:"60",ca:"60",e:"79",f:"55",fa:"55",s:"11.1",si:"11.3"}],["2020-01-15",{c:"12",ca:"18",e:"79",f:"49",fa:"49",s:"6",si:"6"}],["2025-09-16",{c:"131",ca:"131",e:"131",f:"143",fa:"143",s:"18.4",si:"18.4"}],["2024-09-03",{c:"120",ca:"120",e:"120",f:"130",fa:"130",s:"17.2",si:"17.2"}],["2023-09-18",{c:"31",ca:"31",e:"12",f:"6",fa:"6",s:"17",si:"4.2"}],["2015-07-29",{c:"15",ca:"18",e:"12",f:"1",fa:"4",s:"6",si:"6"}],["2022-03-14",{c:"37",ca:"37",e:"79",f:"98",fa:"98",s:"15.4",si:"15.4"}],["2023-12-07",{c:"120",ca:"120",e:"120",f:"49",fa:"49",s:"16.4",si:"16.4"}],["2023-08-01",{c:"17",ca:"18",e:"79",f:"116",fa:"116",s:"6",si:"6"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2020-01-15",{c:"58",ca:"58",e:"79",f:"53",fa:"53",s:"13",si:"13"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["≤2017-04-05",{c:"1",ca:"18",e:"≤15",f:"3",fa:"4",s:"≤4",si:"≤3.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2025-12-12",{c:"128",ca:"128",e:"128",f:"20",fa:"20",s:"26.2",si:"26.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2020-01-15",{c:"61",ca:"61",e:"79",f:"33",fa:"33",s:"11",si:"11"}],["2020-01-15",{c:"1",ca:"18",e:"79",f:"1",fa:"4",s:"4",si:"3.2"}],["2016-03-21",{c:"31",ca:"31",e:"12",f:"12",fa:"14",s:"9.1",si:"9.3"}],["2019-09-19",{c:"14",ca:"18",e:"18",f:"20",fa:"20",s:"10.1",si:"13"}],["2015-07-29",{c:"3",ca:"18",e:"12",f:"3.5",fa:"4",s:"4",si:"3.2"}],["2022-05-03",{c:"98",ca:"98",e:"98",f:"100",fa:"100",s:"13.1",si:"13.4"}],["2020-01-15",{c:"43",ca:"43",e:"79",f:"46",fa:"46",s:"11.1",si:"11.3"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2020-01-15",{c:"1",ca:"18",e:"79",f:"1.5",fa:"4",s:"≤4",si:"≤3.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"3.1",si:"2"}],["2019-03-25",{c:"42",ca:"42",e:"13",f:"38",fa:"38",s:"12.1",si:"12.2"}],["2021-11-02",{c:"77",ca:"77",e:"79",f:"94",fa:"94",s:"13.1",si:"13.4"}],["2021-09-20",{c:"93",ca:"93",e:"93",f:"91",fa:"91",s:"15",si:"15"}],["2025-12-12",{c:"76",ca:"76",e:"79",f:"89",fa:"89",s:"26.2",si:"26.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2023-12-07",{c:"120",ca:"120",e:"120",f:"118",fa:"118",s:"15.4",si:"15.4"}],["2017-03-27",{c:"52",ca:"52",e:"14",f:"52",fa:"52",s:"10.1",si:"10.3"}],["2018-04-30",{c:"38",ca:"38",e:"17",f:"47",fa:"35",s:"9",si:"9"}],["2021-09-20",{c:"56",ca:"56",e:"79",f:"51",fa:"51",s:"15",si:"15"}],["2020-09-16",{c:"63",ca:"63",e:"17",f:"47",fa:"36",s:"14",si:"14"}],["2020-02-07",{c:"40",ca:"40",e:"80",f:"58",fa:"28",s:"9",si:"9"}],["2016-06-07",{c:"34",ca:"34",e:"12",f:"47",fa:"47",s:"9.1",si:"9.3"}],["2017-03-27",{c:"42",ca:"42",e:"14",f:"39",fa:"39",s:"10.1",si:"10.3"}],["2024-10-29",{c:"103",ca:"103",e:"103",f:"132",fa:"132",s:"17.2",si:"17.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3.2"}],["2015-07-29",{c:"8",ca:"18",e:"12",f:"4",fa:"4",s:"5.1",si:"5"}],["2020-01-15",{c:"38",ca:"38",e:"79",f:"28",fa:"28",s:"10.1",si:"10.3"}],["2021-04-26",{c:"89",ca:"89",e:"89",f:"82",fa:"82",s:"14.1",si:"14.5"}],["2016-09-07",{c:"53",ca:"53",e:"12",f:"35",fa:"35",s:"9.1",si:"9.3"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2021-11-02",{c:"46",ca:"46",e:"79",f:"94",fa:"94",s:"11",si:"11"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-09-30",{c:"29",ca:"29",e:"12",f:"20",fa:"20",s:"9",si:"9"}],["2021-04-26",{c:"84",ca:"84",e:"84",f:"63",fa:"63",s:"14.1",si:"14.5"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2025-04-04",{c:"135",ca:"135",e:"135",f:"129",fa:"129",s:"18.2",si:"18.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"24",fa:"24",s:"3.1",si:"2"}],["2022-03-14",{c:"86",ca:"86",e:"86",f:"85",fa:"85",s:"15.4",si:"15.4"}],["2020-01-15",{c:"60",ca:"60",e:"79",f:"52",fa:"52",s:"10.1",si:"10.3"}],["2020-01-15",{c:"60",ca:"60",e:"79",f:"58",fa:"58",s:"11.1",si:"11.3"}],["2016-09-20",{c:"36",ca:"36",e:"14",f:"39",fa:"39",s:"10",si:"10"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2026-03-24",{c:"109",ca:"109",e:"109",f:"149",fa:"149",s:"26.2",si:"26.2"}],["2021-09-07",{c:"56",ca:"56",e:"79",f:"92",fa:"92",s:"11",si:"11"}],["2017-04-05",{c:"48",ca:"48",e:"15",f:"34",fa:"34",s:"9.1",si:"9.3"}],["2020-01-15",{c:"33",ca:"33",e:"79",f:"32",fa:"32",s:"9",si:"9"}],["2020-01-15",{c:"35",ca:"35",e:"79",f:"41",fa:"41",s:"10",si:"10"}],["2020-03-24",{c:"79",ca:"79",e:"17",f:"62",fa:"62",s:"13.1",si:"13.4"}],["2022-11-15",{c:"101",ca:"101",e:"101",f:"107",fa:"107",s:"15.4",si:"15.4"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2024-07-25",{c:"127",ca:"127",e:"127",f:"118",fa:"118",s:"17",si:"17"}],["2020-01-15",{c:"62",ca:"62",e:"79",f:"62",fa:"62",s:"11.1",si:"11.3"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2022-01-06",{c:"97",ca:"97",e:"97",f:"34",fa:"34",s:"9",si:"9"}],["2023-03-27",{c:"97",ca:"97",e:"97",f:"111",fa:"111",s:"16.4",si:"16.4"}],["2023-03-27",{c:"97",ca:"97",e:"97",f:"111",fa:"111",s:"16.4",si:"16.4"}],["2023-03-27",{c:"97",ca:"97",e:"97",f:"111",fa:"111",s:"16.4",si:"16.4"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2023-03-13",{c:"111",ca:"111",e:"111",f:"34",fa:"34",s:"9.1",si:"9.3"}],["2020-01-15",{c:"52",ca:"52",e:"79",f:"34",fa:"34",s:"9.1",si:"9.3"}],["2020-01-15",{c:"63",ca:"63",e:"79",f:"34",fa:"34",s:"9.1",si:"9.3"}],["2020-01-15",{c:"34",ca:"34",e:"79",f:"34",fa:"34",s:"9.1",si:"9.3"}],["2020-01-15",{c:"52",ca:"52",e:"79",f:"34",fa:"34",s:"9.1",si:"9.3"}],["2018-09-05",{c:"62",ca:"62",e:"17",f:"62",fa:"62",s:"11",si:"11"}],["2015-07-29",{c:"2",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2022-09-12",{c:"89",ca:"89",e:"79",f:"89",fa:"89",s:"16",si:"16"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"3",si:"2"}],["2023-03-27",{c:"77",ca:"77",e:"79",f:"98",fa:"98",s:"16.4",si:"16.4"}],["2015-07-29",{c:"10",ca:"18",e:"12",f:"4",fa:"4",s:"5",si:"5"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2017-03-27",{c:"35",ca:"35",e:"12",f:"29",fa:"32",s:"10.1",si:"10.3"}],["2016-09-20",{c:"39",ca:"39",e:"13",f:"26",fa:"26",s:"10",si:"10"}],["2015-07-29",{c:"5",ca:"18",e:"12",f:"3.5",fa:"4",s:"5",si:"≤3"}],["2015-07-29",{c:"11",ca:"18",e:"12",f:"3.5",fa:"4",s:"5.1",si:"5"}],["2024-09-16",{c:"125",ca:"125",e:"125",f:"128",fa:"128",s:"18",si:"18"}],["2026-02-14",{c:"145",ca:"145",e:"145",f:"144",fa:"144",s:"26.2",si:"26.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2020-01-15",{c:"71",ca:"71",e:"79",f:"65",fa:"65",s:"12.1",si:"12.2"}],["2024-06-11",{c:"111",ca:"111",e:"111",f:"127",fa:"127",s:"16.2",si:"16.2"}],["2015-07-29",{c:"26",ca:"26",e:"12",f:"3.6",fa:"4",s:"7",si:"7"}],["2017-10-17",{c:"57",ca:"57",e:"16",f:"52",fa:"52",s:"10.1",si:"10.3"}],["2022-10-27",{c:"107",ca:"107",e:"107",f:"66",fa:"66",s:"16",si:"16"}],["2022-03-14",{c:"37",ca:"37",e:"15",f:"48",fa:"48",s:"15.4",si:"15.4"}],["2023-12-19",{c:"105",ca:"105",e:"105",f:"121",fa:"121",s:"15.4",si:"15.4"}],["2020-03-24",{c:"74",ca:"74",e:"79",f:"67",fa:"67",s:"13.1",si:"13.4"}],["2015-07-29",{c:"16",ca:"18",e:"12",f:"11",fa:"14",s:"6",si:"6"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"5",ca:"18",e:"12",f:"4",fa:"4",s:"5",si:"4.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"3",si:"1"}],["2015-07-29",{c:"5",ca:"18",e:"12",f:"4",fa:"4",s:"5",si:"4.2"}],["2015-07-29",{c:"5",ca:"18",e:"12",f:"4",fa:"4",s:"5",si:"4"}],["2020-01-15",{c:"54",ca:"54",e:"79",f:"63",fa:"63",s:"10",si:"10"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"3",si:"1"}],["2020-01-15",{c:"65",ca:"65",e:"79",f:"52",fa:"52",s:"12.1",si:"12.2"}],["2015-07-29",{c:"4",ca:"18",e:"12",f:"4",fa:"4",s:"7",si:"7"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-09-30",{c:"41",ca:"41",e:"12",f:"36",fa:"36",s:"9",si:"9"}],["2024-09-16",{c:"87",ca:"87",e:"87",f:"88",fa:"88",s:"18",si:"18"}],["2022-04-28",{c:"101",ca:"101",e:"101",f:"96",fa:"96",s:"15",si:"15"}],["2023-09-18",{c:"106",ca:"106",e:"106",f:"98",fa:"98",s:"17",si:"17"}],["2023-09-18",{c:"88",ca:"55",e:"88",f:"43",fa:"43",s:"17",si:"17"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2022-10-03",{c:"106",ca:"106",e:"106",f:"97",fa:"97",s:"15.4",si:"15.4"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3.2"}],["2015-07-29",{c:"5",ca:"18",e:"12",f:"17",fa:"17",s:"5",si:"4"}],["2020-01-15",{c:"20",ca:"25",e:"79",f:"25",fa:"25",s:"6",si:"6"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2020-04-13",{c:"81",ca:"81",e:"81",f:"26",fa:"26",s:"13.1",si:"13.4"}],["2021-10-05",{c:"41",ca:"41",e:"79",f:"93",fa:"93",s:"10",si:"10"}],["2023-09-18",{c:"113",ca:"113",e:"113",f:"89",fa:"89",s:"17",si:"17"}],["2020-01-15",{c:"66",ca:"66",e:"79",f:"50",fa:"50",s:"11.1",si:"11.3"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2023-03-27",{c:"89",ca:"89",e:"89",f:"108",fa:"108",s:"16.4",si:"16.4"}],["2020-01-15",{c:"39",ca:"39",e:"79",f:"51",fa:"51",s:"10",si:"10"}],["2021-09-20",{c:"58",ca:"58",e:"79",f:"51",fa:"51",s:"15",si:"15"}],["2022-08-05",{c:"104",ca:"104",e:"104",f:"72",fa:"79",s:"14.1",si:"14.5"}],["2023-04-11",{c:"102",ca:"102",e:"102",f:"112",fa:"112",s:"15.5",si:"15.5"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-11-12",{c:"1",ca:"18",e:"13",f:"19",fa:"19",s:"1.2",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"3.6",fa:"4",s:"3",si:"1"}],["2021-04-26",{c:"20",ca:"25",e:"12",f:"57",fa:"57",s:"14.1",si:"5"}],["2015-07-29",{c:"5",ca:"18",e:"12",f:"4",fa:"4",s:"5",si:"3"}],["2020-01-15",{c:"1",ca:"18",e:"79",f:"6",fa:"6",s:"3.1",si:"2"}],["2015-07-29",{c:"2",ca:"18",e:"12",f:"3",fa:"4",s:"4",si:"3"}],["2015-07-29",{c:"2",ca:"18",e:"12",f:"3.6",fa:"4",s:"4",si:"3.2"}],["2025-08-19",{c:"13",ca:"132",e:"13",f:"50",fa:"142",s:"11.1",si:"18.4"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"7",ca:"18",e:"12",f:"29",fa:"29",s:"5.1",si:"5"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2017-03-16",{c:"4",ca:"57",e:"12",f:"23",fa:"52",s:"3.1",si:"5"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"3.1",si:"2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2021-12-07",{c:"66",ca:"66",e:"79",f:"95",fa:"79",s:"12.1",si:"12.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3.2"}],["2018-12-11",{c:"41",ca:"41",e:"12",f:"64",fa:"64",s:"9",si:"9"}],["2019-03-25",{c:"58",ca:"58",e:"16",f:"55",fa:"55",s:"12.1",si:"12.2"}],["2017-09-28",{c:"24",ca:"25",e:"12",f:"29",fa:"56",s:"10",si:"10"}],["2021-04-26",{c:"81",ca:"81",e:"81",f:"86",fa:"86",s:"14.1",si:"14.5"}],["2025-03-04",{c:"129",ca:"129",e:"129",f:"136",fa:"136",s:"16.4",si:"16.4"}],["2021-04-26",{c:"72",ca:"72",e:"79",f:"78",fa:"79",s:"14.1",si:"14.5"}],["2020-09-16",{c:"74",ca:"74",e:"79",f:"75",fa:"79",s:"14",si:"14"}],["2019-09-19",{c:"63",ca:"63",e:"18",f:"58",fa:"58",s:"13",si:"13"}],["2020-09-16",{c:"71",ca:"71",e:"79",f:"76",fa:"79",s:"14",si:"14"}],["2024-04-16",{c:"87",ca:"87",e:"87",f:"125",fa:"125",s:"14.1",si:"14.5"}],["2025-12-12",{c:"135",ca:"135",e:"135",f:"144",fa:"144",s:"26.2",si:"26.2"}],["2021-01-21",{c:"88",ca:"88",e:"88",f:"82",fa:"82",s:"14",si:"14"}],["2018-04-12",{c:"55",ca:"55",e:"15",f:"52",fa:"52",s:"11.1",si:"11.3"}],["2020-01-15",{c:"41",ca:"41",e:"79",f:"36",fa:"36",s:"8",si:"8"}],["2026-03-24",{c:"146",ca:"146",e:"146",f:"147",fa:"147",s:"26.4",si:"26.4"}],["2025-03-31",{c:"122",ca:"122",e:"122",f:"131",fa:"131",s:"18.4",si:"18.4"}],["2015-07-29",{c:"38",ca:"38",e:"12",f:"13",fa:"14",s:"7",si:"7"}],["2015-07-29",{c:"5",ca:"18",e:"12",f:"1",fa:"4",s:"5",si:"4.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2018-05-09",{c:"61",ca:"61",e:"16",f:"60",fa:"60",s:"11",si:"11"}],["2026-01-13",{c:"91",ca:"91",e:"91",f:"147",fa:"147",s:"15",si:"15"}],["2023-06-06",{c:"80",ca:"80",e:"80",f:"114",fa:"114",s:"15",si:"15"}],["2015-07-29",{c:"3",ca:"18",e:"12",f:"3.5",fa:"4",s:"4",si:"4"}],["2025-04-29",{c:"123",ca:"123",e:"123",f:"138",fa:"138",s:"17.2",si:"17.2"}],["2025-03-31",{c:"114",ca:"114",e:"114",f:"135",fa:"135",s:"18.4",si:"18.4"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"6",fa:"6",s:"1.2",si:"1"}],["2023-05-09",{c:"111",ca:"111",e:"111",f:"113",fa:"113",s:"15",si:"15"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"3.1",si:"2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2025-12-12",{c:"77",ca:"77",e:"79",f:"122",fa:"122",s:"26.2",si:"26.2"}],["2020-01-15",{c:"48",ca:"48",e:"79",f:"50",fa:"50",s:"11",si:"11"}],["2016-09-20",{c:"49",ca:"49",e:"14",f:"44",fa:"44",s:"10",si:"10"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2023-11-21",{c:"109",ca:"109",e:"109",f:"120",fa:"120",s:"16.4",si:"16.4"}],["2024-05-13",{c:"123",ca:"123",e:"123",f:"120",fa:"120",s:"17.5",si:"17.5"}],["2020-07-28",{c:"83",ca:"83",e:"83",f:"69",fa:"79",s:"13",si:"13"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2023-12-11",{c:"113",ca:"113",e:"113",f:"112",fa:"112",s:"17.2",si:"17.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3.2"}],["2025-09-15",{c:"46",ca:"46",e:"79",f:"127",fa:"127",s:"5",si:"26"}],["2020-01-15",{c:"46",ca:"46",e:"79",f:"39",fa:"39",s:"11.1",si:"11.3"}],["2021-01-26",{c:"50",ca:"50",e:"79",f:"85",fa:"85",s:"11.1",si:"11.3"}],["2020-01-15",{c:"65",ca:"65",e:"79",f:"50",fa:"50",s:"9",si:"9"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2023-12-19",{c:"77",ca:"77",e:"79",f:"121",fa:"121",s:"16.4",si:"16.4"}],["2015-07-29",{c:"4",ca:"18",e:"12",f:"3.5",fa:"6",s:"4",si:"3.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2020-09-16",{c:"85",ca:"85",e:"85",f:"79",fa:"79",s:"14",si:"14"}],["2021-09-20",{c:"89",ca:"89",e:"89",f:"66",fa:"66",s:"15",si:"15"}],["2015-07-29",{c:"26",ca:"26",e:"12",f:"21",fa:"21",s:"7",si:"7"}],["2015-07-29",{c:"38",ca:"38",e:"12",f:"13",fa:"14",s:"8",si:"8"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"7",ca:"18",e:"12",f:"4",fa:"4",s:"5.1",si:"5"}],["2020-01-15",{c:"24",ca:"25",e:"79",f:"35",fa:"35",s:"7",si:"7"}],["2023-12-07",{c:"120",ca:"120",e:"120",f:"53",fa:"53",s:"15.4",si:"15.4"}],["2015-07-29",{c:"9",ca:"18",e:"12",f:"6",fa:"6",s:"5.1",si:"5"}],["2023-01-12",{c:"109",ca:"109",e:"109",f:"4",fa:"4",s:"5.1",si:"5"}],["2022-04-28",{c:"101",ca:"101",e:"101",f:"63",fa:"63",s:"15.4",si:"15.4"}],["2017-09-19",{c:"53",ca:"53",e:"12",f:"36",fa:"36",s:"11",si:"11"}],["2020-02-04",{c:"80",ca:"80",e:"12",f:"42",fa:"42",s:"8",si:"12.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"3",si:"1"}],["2023-03-27",{c:"104",ca:"104",e:"104",f:"102",fa:"102",s:"16.4",si:"16.4"}],["2021-04-26",{c:"49",ca:"49",e:"79",f:"25",fa:"25",s:"14.1",si:"14"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"3",si:"1"}],["2023-03-27",{c:"60",ca:"60",e:"18",f:"57",fa:"57",s:"16.4",si:"16.4"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2018-10-02",{c:"6",ca:"18",e:"18",f:"56",fa:"56",s:"6",si:"10.3"}],["2020-07-28",{c:"79",ca:"79",e:"79",f:"75",fa:"79",s:"13.1",si:"13.4"}],["2020-01-15",{c:"46",ca:"46",e:"79",f:"66",fa:"66",s:"11",si:"11"}],["2015-07-29",{c:"18",ca:"18",e:"12",f:"1",fa:"4",s:"1.3",si:"1"}],["2020-01-15",{c:"41",ca:"41",e:"79",f:"32",fa:"32",s:"8",si:"8"}],["2020-01-15",{c:"≤79",ca:"≤79",e:"79",f:"≤23",fa:"≤23",s:"≤9.1",si:"≤9.3"}],["2022-09-02",{c:"105",ca:"105",e:"105",f:"103",fa:"103",s:"15.6",si:"15.6"}],["2023-09-18",{c:"66",ca:"66",e:"79",f:"115",fa:"115",s:"17",si:"17"}],["2022-09-12",{c:"55",ca:"55",e:"79",f:"72",fa:"79",s:"16",si:"16"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2017-03-07",{c:"50",ca:"50",e:"12",f:"52",fa:"52",s:"9",si:"9"}],["2015-07-29",{c:"26",ca:"26",e:"12",f:"14",fa:"14",s:"7",si:"7"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"5",ca:"18",e:"12",f:"4",fa:"4",s:"5",si:"4.2"}],["2026-01-13",{c:"102",ca:"102",e:"102",f:"147",fa:"147",s:"26.2",si:"26.2"}],["2021-10-25",{c:"57",ca:"57",e:"12",f:"58",fa:"58",s:"15",si:"15.1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2023-12-11",{c:"120",ca:"120",e:"120",f:"117",fa:"117",s:"17.2",si:"17.2"}],["2021-01-21",{c:"88",ca:"88",e:"88",f:"84",fa:"84",s:"9",si:"9"}],["2023-03-27",{c:"20",ca:"42",e:"14",f:"22",fa:"22",s:"7",si:"16.4"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"3.5",fa:"4",s:"3.1",si:"2"}],["2023-05-09",{c:"111",ca:"111",e:"111",f:"113",fa:"113",s:"9",si:"9"}],["2015-07-29",{c:"4",ca:"18",e:"12",f:"3.5",fa:"4",s:"3.1",si:"2"}],["2020-09-16",{c:"85",ca:"85",e:"85",f:"79",fa:"79",s:"14",si:"14"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2020-07-28",{c:"75",ca:"75",e:"79",f:"70",fa:"79",s:"13",si:"13"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"3",si:"2"}],["2020-01-15",{c:"32",ca:"32",e:"79",f:"36",fa:"36",s:"10",si:"10"}],["2022-03-14",{c:"93",ca:"93",e:"93",f:"92",fa:"92",s:"15.4",si:"15.4"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2020-01-15",{c:"32",ca:"32",e:"79",f:"36",fa:"36",s:"10",si:"10"}],["2015-07-29",{c:"24",ca:"25",e:"12",f:"24",fa:"24",s:"8",si:"8"}],["2021-04-26",{c:"80",ca:"80",e:"80",f:"71",fa:"79",s:"14.1",si:"14.5"}],["2015-07-29",{c:"10",ca:"18",e:"12",f:"10",fa:"10",s:"8",si:"8"}],["2015-07-29",{c:"10",ca:"18",e:"12",f:"6",fa:"6",s:"8",si:"8"}],["2015-07-29",{c:"29",ca:"29",e:"12",f:"24",fa:"24",s:"8",si:"8"}],["2016-08-02",{c:"27",ca:"27",e:"14",f:"29",fa:"29",s:"8",si:"8"}],["2018-04-30",{c:"24",ca:"25",e:"17",f:"25",fa:"25",s:"8",si:"9"}],["2021-04-26",{c:"35",ca:"35",e:"12",f:"25",fa:"25",s:"14.1",si:"14.5"}],["2023-03-27",{c:"69",ca:"69",e:"79",f:"105",fa:"105",s:"16.4",si:"16.4"}],["2023-05-09",{c:"111",ca:"111",e:"111",f:"113",fa:"113",s:"15.4",si:"15.4"}],["2015-07-29",{c:"2",ca:"18",e:"12",f:"1.5",fa:"4",s:"4",si:"3.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"2",si:"1"}],["≤2020-03-24",{c:"≤80",ca:"≤80",e:"≤80",f:"1.5",fa:"4",s:"≤13.1",si:"≤13.4"}],["2020-01-15",{c:"66",ca:"66",e:"79",f:"58",fa:"58",s:"11.1",si:"11.3"}],["2023-03-27",{c:"108",ca:"109",e:"108",f:"111",fa:"111",s:"16.4",si:"16.4"}],["2023-03-27",{c:"94",ca:"94",e:"94",f:"88",fa:"88",s:"16.4",si:"16.4"}],["2017-04-05",{c:"1",ca:"18",e:"15",f:"1.5",fa:"4",s:"1.2",si:"1"}],["≤2018-10-02",{c:"10",ca:"18",e:"≤18",f:"4",fa:"4",s:"7",si:"7"}],["2023-09-18",{c:"113",ca:"113",e:"113",f:"66",fa:"66",s:"17",si:"17"}],["2022-09-12",{c:"90",ca:"90",e:"90",f:"81",fa:"81",s:"16",si:"16"}],["2020-03-24",{c:"68",ca:"68",e:"79",f:"61",fa:"61",s:"13.1",si:"13.4"}],["2018-10-02",{c:"23",ca:"25",e:"18",f:"49",fa:"49",s:"7",si:"7"}],["2022-09-12",{c:"63",ca:"63",e:"18",f:"59",fa:"59",s:"16",si:"16"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"3",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2019-01-29",{c:"50",ca:"50",e:"12",f:"65",fa:"65",s:"10",si:"10"}],["2024-12-11",{c:"15",ca:"18",e:"79",f:"95",fa:"95",s:"18.2",si:"18.2"}],["2015-07-29",{c:"4",ca:"18",e:"12",f:"1.5",fa:"4",s:"5",si:"4"}],["2015-07-29",{c:"33",ca:"33",e:"12",f:"18",fa:"18",s:"7",si:"7"}],["2024-03-22",{c:"123",ca:"123",e:"123",f:"≤66",fa:"≤66",s:"≤12",si:"≤12"}],["2021-04-26",{c:"60",ca:"60",e:"79",f:"84",fa:"84",s:"14.1",si:"14.5"}],["2025-09-15",{c:"124",ca:"124",e:"124",f:"128",fa:"128",s:"26",si:"26"}],["2023-03-27",{c:"94",ca:"94",e:"94",f:"99",fa:"99",s:"16.4",si:"16.4"}],["2015-09-16",{c:"6",ca:"18",e:"12",f:"7",fa:"7",s:"8",si:"9"}],["2022-09-12",{c:"44",ca:"44",e:"79",f:"46",fa:"46",s:"16",si:"16"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2016-03-21",{c:"38",ca:"38",e:"13",f:"38",fa:"38",s:"9.1",si:"9.3"}],["2020-01-15",{c:"57",ca:"57",e:"79",f:"51",fa:"51",s:"10.1",si:"10.3"}],["2020-01-15",{c:"47",ca:"47",e:"79",f:"51",fa:"51",s:"9",si:"9"}],["2020-01-15",{c:"59",ca:"59",e:"79",f:"3",fa:"4",s:"8",si:"8"}],["2015-07-29",{c:"2",ca:"18",e:"12",f:"3.6",fa:"4",s:"4",si:"3.2"}],["2020-07-28",{c:"55",ca:"55",e:"12",f:"59",fa:"79",s:"13",si:"13"}],["2025-01-27",{c:"116",ca:"116",e:"116",f:"125",fa:"125",s:"17",si:"18.3"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"2",ca:"18",e:"12",f:"3",fa:"4",s:"4",si:"3.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3.2"}],["2020-01-15",{c:"76",ca:"76",e:"79",f:"67",fa:"67",s:"12.1",si:"13"}],["2022-05-31",{c:"96",ca:"96",e:"96",f:"101",fa:"101",s:"14.1",si:"14.5"}],["2020-01-15",{c:"74",ca:"74",e:"79",f:"63",fa:"64",s:"10.1",si:"10.3"}],["2023-12-11",{c:"73",ca:"73",e:"79",f:"78",fa:"79",s:"17.2",si:"17.2"}],["2023-12-11",{c:"86",ca:"86",e:"86",f:"101",fa:"101",s:"17.2",si:"17.2"}],["2023-06-06",{c:"1",ca:"18",e:"12",f:"1",fa:"114",s:"1.1",si:"1"}],["2025-05-01",{c:"136",ca:"136",e:"136",f:"97",fa:"97",s:"15.4",si:"15.4"}],["2019-09-19",{c:"63",ca:"63",e:"12",f:"6",fa:"6",s:"13",si:"13"}],["2015-07-29",{c:"6",ca:"18",e:"12",f:"6",fa:"6",s:"6",si:"7"}],["2015-07-29",{c:"32",ca:"32",e:"12",f:"29",fa:"29",s:"8",si:"8"}],["2020-07-28",{c:"76",ca:"76",e:"79",f:"71",fa:"79",s:"13",si:"13"}],["2020-09-16",{c:"85",ca:"85",e:"85",f:"79",fa:"79",s:"14",si:"14"}],["2018-10-02",{c:"63",ca:"63",e:"18",f:"58",fa:"58",s:"11.1",si:"11.3"}],["2025-01-07",{c:"128",ca:"128",e:"128",f:"134",fa:"134",s:"18.2",si:"18.2"}],["2024-03-05",{c:"119",ca:"119",e:"119",f:"121",fa:"121",s:"17.4",si:"17.4"}],["2016-09-20",{c:"49",ca:"49",e:"12",f:"18",fa:"18",s:"10",si:"10"}],["2023-03-27",{c:"50",ca:"50",e:"17",f:"44",fa:"48",s:"16",si:"16.4"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"3",si:"2"}],["2020-03-24",{c:"63",ca:"63",e:"79",f:"49",fa:"49",s:"13.1",si:"13.4"}],["2020-07-28",{c:"71",ca:"71",e:"79",f:"69",fa:"79",s:"12.1",si:"12.2"}],["2021-04-26",{c:"87",ca:"87",e:"87",f:"70",fa:"79",s:"14.1",si:"14.5"}],["2026-01-13",{c:"118",ca:"118",e:"118",f:"147",fa:"147",s:"17.2",si:"17.2"}],["2026-01-13",{c:"111",ca:"111",e:"111",f:"147",fa:"147",s:"17.2",si:"17.2"}],["2020-07-28",{c:"1",ca:"18",e:"13",f:"78",fa:"79",s:"4",si:"3.2"}],["2026-03-24",{c:"89",ca:"89",e:"89",f:"102",fa:"102",s:"26.4",si:"26.4"}],["2024-01-23",{c:"119",ca:"119",e:"119",f:"122",fa:"122",s:"17.2",si:"17.2"}],["2021-09-20",{c:"85",ca:"85",e:"85",f:"87",fa:"87",s:"15",si:"15"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2025-05-01",{c:"136",ca:"136",e:"136",f:"134",fa:"134",s:"18.2",si:"18.2"}],["2024-07-09",{c:"85",ca:"85",e:"85",f:"128",fa:"128",s:"16.4",si:"16.4"}],["2024-09-16",{c:"125",ca:"125",e:"125",f:"128",fa:"128",s:"18",si:"18"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"4",ca:"18",e:"12",f:"3.6",fa:"4",s:"5",si:"4"}],["2026-03-24",{c:"96",ca:"96",e:"96",f:"149",fa:"149",s:"16.4",si:"16.4"}],["2015-07-29",{c:"24",ca:"25",e:"12",f:"23",fa:"23",s:"7",si:"7"}],["2023-03-27",{c:"69",ca:"69",e:"79",f:"99",fa:"99",s:"16.4",si:"16.4"}],["2024-10-29",{c:"83",ca:"83",e:"83",f:"132",fa:"132",s:"15.4",si:"15.4"}],["2025-05-27",{c:"134",ca:"134",e:"134",f:"139",fa:"139",s:"18.4",si:"18.4"}],["2024-07-09",{c:"111",ca:"111",e:"111",f:"128",fa:"128",s:"16.4",si:"16.4"}],["2020-07-28",{c:"64",ca:"64",e:"79",f:"69",fa:"79",s:"13.1",si:"13.4"}],["2022-09-12",{c:"68",ca:"68",e:"79",f:"62",fa:"62",s:"16",si:"16"}],["2018-10-23",{c:"1",ca:"18",e:"12",f:"63",fa:"63",s:"3",si:"1"}],["2023-03-27",{c:"54",ca:"54",e:"17",f:"45",fa:"45",s:"16.4",si:"16.4"}],["2017-09-19",{c:"29",ca:"29",e:"12",f:"35",fa:"35",s:"11",si:"11"}],["2020-07-27",{c:"84",ca:"84",e:"84",f:"67",fa:"67",s:"9.1",si:"9.3"}],["2026-01-13",{c:"111",ca:"111",e:"111",f:"147",fa:"147",s:"17.2",si:"17.2"}],["2020-01-15",{c:"65",ca:"65",e:"79",f:"52",fa:"52",s:"12.1",si:"12.2"}],["2026-01-13",{c:"111",ca:"111",e:"111",f:"147",fa:"147",s:"17.2",si:"17.2"}],["2023-11-21",{c:"111",ca:"111",e:"111",f:"120",fa:"120",s:"16.4",si:"16.4"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2024-05-17",{c:"125",ca:"125",e:"125",f:"118",fa:"118",s:"17.2",si:"17.2"}],["2015-07-29",{c:"5",ca:"18",e:"12",f:"38",fa:"38",s:"5",si:"4.2"}],["2024-12-11",{c:"128",ca:"128",e:"128",f:"38",fa:"38",s:"18.2",si:"18.2"}],["2024-12-11",{c:"84",ca:"84",e:"84",f:"38",fa:"38",s:"18.2",si:"18.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3.2"}],["2020-01-15",{c:"69",ca:"69",e:"79",f:"65",fa:"65",s:"11.1",si:"11.3"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3.2"}],["2025-12-12",{c:"143",ca:"143",e:"143",f:"146",fa:"146",s:"26.2",si:"26.2"}],["2020-01-15",{c:"27",ca:"27",e:"79",f:"32",fa:"32",s:"7",si:"7"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2023-03-27",{c:"38",ca:"39",e:"79",f:"43",fa:"43",s:"16.4",si:"16.4"}],["2025-03-31",{c:"84",ca:"84",e:"84",f:"126",fa:"126",s:"16.4",si:"18.4"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"3",si:"2"}],["2023-12-07",{c:"120",ca:"120",e:"120",f:"113",fa:"113",s:"17",si:"17"}],["2022-03-14",{c:"61",ca:"61",e:"79",f:"36",fa:"36",s:"15.4",si:"15.4"}],["2020-09-16",{c:"61",ca:"61",e:"79",f:"36",fa:"36",s:"14",si:"14"}],["2020-01-15",{c:"1",ca:"18",e:"79",f:"1",fa:"4",s:"3",si:"1"}],["2020-01-15",{c:"69",ca:"69",e:"79",f:"68",fa:"68",s:"11",si:"11"}],["2024-10-01",{c:"80",ca:"80",e:"80",f:"131",fa:"131",s:"16.1",si:"16.1"}],["2025-12-12",{c:"121",ca:"121",e:"121",f:"64",fa:"64",s:"26.2",si:"26.2"}],["2024-12-11",{c:"94",ca:"94",e:"94",f:"97",fa:"97",s:"18.2",si:"18.2"}],["2024-12-11",{c:"121",ca:"121",e:"121",f:"64",fa:"64",s:"18.2",si:"18.2"}],["2025-12-12",{c:"114",ca:"114",e:"114",f:"109",fa:"109",s:"26.2",si:"26.2"}],["2023-10-13",{c:"118",ca:"118",e:"118",f:"118",fa:"118",s:"17",si:"17"}],["2015-07-29",{c:"5",ca:"18",e:"12",f:"4",fa:"4",s:"5",si:"4.2"}],["2015-07-29",{c:"5",ca:"18",e:"12",f:"4",fa:"4",s:"5",si:"4.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2017-03-07",{c:"11",ca:"18",e:"12",f:"52",fa:"52",s:"5.1",si:"5"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"3",si:"1"}],["2020-01-15",{c:"6",ca:"18",e:"79",f:"6",fa:"45",s:"5",si:"5"}],["2023-03-27",{c:"65",ca:"65",e:"79",f:"61",fa:"61",s:"16.4",si:"16.4"}],["2018-04-30",{c:"45",ca:"45",e:"17",f:"44",fa:"44",s:"11.1",si:"11.3"}],["2015-07-29",{c:"38",ca:"38",e:"12",f:"13",fa:"14",s:"8",si:"8"}],["2024-06-11",{c:"122",ca:"122",e:"122",f:"127",fa:"127",s:"17",si:"17"}],["2015-07-29",{c:"3",ca:"18",e:"12",f:"3.5",fa:"4",s:"4",si:"5"}],["2015-07-29",{c:"3",ca:"18",e:"12",f:"3.5",fa:"4",s:"4",si:"5"}],["2020-01-15",{c:"53",ca:"53",e:"79",f:"63",fa:"63",s:"10",si:"10"}],["2020-07-28",{c:"73",ca:"73",e:"79",f:"72",fa:"79",s:"13.1",si:"13.4"}],["2026-02-24",{c:"135",ca:"135",e:"135",f:"148",fa:"148",s:"18.4",si:"18.4"}],["2020-01-15",{c:"37",ca:"37",e:"79",f:"62",fa:"62",s:"10.1",si:"10.3"}],["2020-01-15",{c:"37",ca:"37",e:"79",f:"54",fa:"54",s:"10.1",si:"10.3"}],["2021-12-13",{c:"68",ca:"89",e:"79",f:"79",fa:"79",s:"15.2",si:"15.2"}],["2020-01-15",{c:"53",ca:"53",e:"79",f:"63",fa:"63",s:"10",si:"10"}],["2023-03-27",{c:"92",ca:"92",e:"92",f:"92",fa:"92",s:"16.4",si:"16.4"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3.2"}],["2020-01-15",{c:"19",ca:"25",e:"79",f:"4",fa:"4",s:"6",si:"6"}],["2015-07-29",{c:"3",ca:"18",e:"12",f:"3.5",fa:"4",s:"3.1",si:"2"}],["2020-01-15",{c:"18",ca:"18",e:"79",f:"55",fa:"55",s:"7",si:"7"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2018-09-05",{c:"33",ca:"33",e:"14",f:"49",fa:"62",s:"7",si:"7"}],["2017-11-28",{c:"9",ca:"47",e:"12",f:"2",fa:"57",s:"5.1",si:"5"}],["2020-01-15",{c:"60",ca:"60",e:"79",f:"55",fa:"55",s:"11.1",si:"11.3"}],["2017-03-27",{c:"38",ca:"38",e:"13",f:"38",fa:"38",s:"10.1",si:"10.3"}],["2020-01-15",{c:"70",ca:"70",e:"79",f:"3",fa:"4",s:"10.1",si:"10.3"}],["2024-08-06",{c:"117",ca:"117",e:"117",f:"129",fa:"129",s:"17.5",si:"17.5"}],["2024-05-17",{c:"125",ca:"125",e:"125",f:"126",fa:"126",s:"17.4",si:"17.4"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2020-09-16",{c:"77",ca:"77",e:"79",f:"65",fa:"65",s:"14",si:"14"}],["2019-09-19",{c:"56",ca:"56",e:"16",f:"59",fa:"59",s:"13",si:"13"}],["2023-12-05",{c:"119",ca:"120",e:"85",f:"65",fa:"65",s:"11.1",si:"11.3"}],["2023-09-18",{c:"61",ca:"61",e:"79",f:"57",fa:"57",s:"17",si:"17"}],["2022-06-28",{c:"67",ca:"67",e:"79",f:"102",fa:"102",s:"14.1",si:"14.5"}],["2022-03-14",{c:"92",ca:"92",e:"92",f:"90",fa:"90",s:"15.4",si:"15.4"}],["2015-09-30",{c:"41",ca:"41",e:"12",f:"29",fa:"29",s:"9",si:"9"}],["2015-09-30",{c:"41",ca:"41",e:"12",f:"40",fa:"40",s:"9",si:"9"}],["2020-01-15",{c:"73",ca:"73",e:"79",f:"67",fa:"67",s:"13",si:"13"}],["2016-09-20",{c:"34",ca:"34",e:"12",f:"31",fa:"31",s:"10",si:"10"}],["2017-04-05",{c:"57",ca:"57",e:"15",f:"48",fa:"48",s:"10",si:"10"}],["2015-09-30",{c:"41",ca:"41",e:"12",f:"34",fa:"34",s:"9",si:"9"}],["2015-09-30",{c:"41",ca:"36",e:"12",f:"24",fa:"24",s:"9",si:"9"}],["2020-08-27",{c:"85",ca:"85",e:"85",f:"77",fa:"79",s:"13.1",si:"13.4"}],["2015-09-30",{c:"41",ca:"36",e:"12",f:"17",fa:"17",s:"9",si:"9"}],["2020-01-15",{c:"66",ca:"66",e:"79",f:"61",fa:"61",s:"12",si:"12"}],["2023-10-24",{c:"111",ca:"111",e:"111",f:"119",fa:"119",s:"16.4",si:"16.4"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3.2"}],["2022-03-14",{c:"98",ca:"98",e:"98",f:"94",fa:"94",s:"15.4",si:"15.4"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3.2"}],["2023-09-15",{c:"117",ca:"117",e:"117",f:"71",fa:"79",s:"16",si:"16"}],["2015-09-30",{c:"28",ca:"28",e:"12",f:"22",fa:"22",s:"9",si:"9"}],["2016-09-20",{c:"2",ca:"18",e:"12",f:"49",fa:"49",s:"4",si:"3.2"}],["2020-01-15",{c:"1",ca:"18",e:"79",f:"3",fa:"4",s:"3",si:"2"}],["2015-07-29",{c:"5",ca:"18",e:"12",f:"3",fa:"4",s:"6",si:"6"}],["2015-09-30",{c:"38",ca:"38",e:"12",f:"36",fa:"36",s:"9",si:"9"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2021-08-10",{c:"42",ca:"42",e:"79",f:"91",fa:"91",s:"13.1",si:"13.4"}],["2018-10-02",{c:"1",ca:"18",e:"18",f:"1.5",fa:"4",s:"3.1",si:"2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1.3",si:"2"}],["2024-12-11",{c:"89",ca:"89",e:"89",f:"131",fa:"131",s:"18.2",si:"18.2"}],["2015-11-12",{c:"26",ca:"26",e:"13",f:"22",fa:"22",s:"8",si:"8"}],["2020-01-15",{c:"62",ca:"62",e:"79",f:"53",fa:"53",s:"11",si:"11"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2022-09-12",{c:"47",ca:"47",e:"12",f:"49",fa:"49",s:"16",si:"16"}],["2022-03-14",{c:"48",ca:"48",e:"79",f:"48",fa:"48",s:"15.4",si:"15.4"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2022-03-14",{c:"64",ca:"64",e:"79",f:"70",fa:"79",s:"15.4",si:"15.4"}],["2025-12-12",{c:"121",ca:"121",e:"121",f:"137",fa:"137",s:"26.2",si:"26.2"}],["2022-03-03",{c:"99",ca:"99",e:"99",f:"46",fa:"46",s:"7",si:"7"}],["2020-01-15",{c:"38",ca:"38",e:"79",f:"19",fa:"19",s:"10.1",si:"10.3"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2026-03-13",{c:"146",ca:"146",e:"146",f:"121",fa:"121",s:"15",si:"15"}],["2026-03-13",{c:"146",ca:"146",e:"146",f:"121",fa:"121",s:"15",si:"15"}],["2020-09-16",{c:"48",ca:"48",e:"79",f:"41",fa:"41",s:"14",si:"14"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"7",fa:"7",s:"1.3",si:"1"}],["2015-07-29",{c:"2",ca:"18",e:"12",f:"3.5",fa:"4",s:"1.1",si:"1"}],["2017-04-05",{c:"4",ca:"18",e:"15",f:"49",fa:"49",s:"3",si:"2"}],["2015-07-29",{c:"23",ca:"25",e:"12",f:"31",fa:"31",s:"6",si:"6"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2020-11-19",{c:"87",ca:"87",e:"87",f:"70",fa:"79",s:"12.1",si:"12.2"}],["2020-07-28",{c:"33",ca:"33",e:"12",f:"74",fa:"79",s:"12.1",si:"12.2"}],["2024-10-17",{c:"130",ca:"130",e:"130",f:"124",fa:"124",s:"17.5",si:"17.5"}],["2024-05-13",{c:"114",ca:"114",e:"114",f:"121",fa:"121",s:"17.5",si:"17.5"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3"}],["2017-10-24",{c:"62",ca:"62",e:"14",f:"22",fa:"22",s:"10",si:"10"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3.2"}],["2019-09-19",{c:"36",ca:"36",e:"12",f:"52",fa:"52",s:"13",si:"9.3"}],["2024-03-05",{c:"114",ca:"114",e:"114",f:"122",fa:"122",s:"17.4",si:"17.4"}],["2024-04-16",{c:"118",ca:"118",e:"118",f:"125",fa:"125",s:"13.1",si:"13.4"}],["2015-09-30",{c:"36",ca:"36",e:"12",f:"16",fa:"16",s:"9",si:"9"}],["2022-03-14",{c:"36",ca:"36",e:"12",f:"16",fa:"16",s:"15.4",si:"15.4"}],["2024-08-06",{c:"117",ca:"117",e:"117",f:"129",fa:"129",s:"17.4",si:"17.4"}],["2015-09-30",{c:"26",ca:"26",e:"12",f:"16",fa:"16",s:"9",si:"9"}],["2023-03-14",{c:"19",ca:"25",e:"79",f:"111",fa:"111",s:"6",si:"6"}],["2023-03-13",{c:"111",ca:"111",e:"111",f:"108",fa:"108",s:"15.4",si:"15.4"}],["2026-02-24",{c:"83",ca:"83",e:"83",f:"148",fa:"148",s:"26",si:"26"}],["2023-07-21",{c:"115",ca:"115",e:"115",f:"70",fa:"79",s:"15",si:"15"}],["2016-09-20",{c:"45",ca:"45",e:"12",f:"38",fa:"38",s:"10",si:"10"}],["2016-09-20",{c:"45",ca:"45",e:"12",f:"37",fa:"37",s:"10",si:"10"}],["2015-07-29",{c:"7",ca:"18",e:"12",f:"4",fa:"4",s:"5.1",si:"4.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2025-09-05",{c:"140",ca:"140",e:"140",f:"133",fa:"133",s:"18.2",si:"18.2"}],["2015-09-30",{c:"44",ca:"44",e:"12",f:"40",fa:"40",s:"9",si:"9"}],["2016-03-21",{c:"41",ca:"41",e:"13",f:"27",fa:"27",s:"9.1",si:"9.3"}],["2023-09-18",{c:"113",ca:"113",e:"113",f:"102",fa:"102",s:"17",si:"17"}],["2018-04-30",{c:"44",ca:"44",e:"17",f:"48",fa:"48",s:"10.1",si:"10.3"}],["2015-07-29",{c:"32",ca:"32",e:"12",f:"19",fa:"19",s:"7",si:"7"}],["2023-12-07",{c:"120",ca:"120",e:"120",f:"115",fa:"115",s:"17",si:"17"}],["2025-09-15",{c:"95",ca:"95",e:"95",f:"142",fa:"142",s:"26",si:"26"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"2",si:"1"}],["2023-11-21",{c:"72",ca:"72",e:"79",f:"120",fa:"120",s:"16.4",si:"16.4"}],["2015-07-29",{c:"4",ca:"18",e:"12",f:"3.5",fa:"4",s:"4",si:"5"}],["2023-11-02",{c:"119",ca:"119",e:"119",f:"88",fa:"88",s:"16.5",si:"16.5"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"≤4",si:"≤3.2"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2024-04-18",{c:"124",ca:"124",e:"124",f:"120",fa:"120",s:"17.4",si:"17.4"}],["2015-07-29",{c:"3",ca:"18",e:"12",f:"3.5",fa:"4",s:"3.1",si:"3"}],["2025-10-14",{c:"125",ca:"125",e:"125",f:"144",fa:"144",s:"18.2",si:"18.2"}],["2025-10-14",{c:"111",ca:"111",e:"111",f:"144",fa:"144",s:"18",si:"18"}],["2022-12-05",{c:"108",ca:"108",e:"108",f:"101",fa:"101",s:"15.4",si:"15.4"}],["2017-10-17",{c:"26",ca:"26",e:"16",f:"19",fa:"19",s:"7",si:"7"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1.3",si:"1"}],["2021-08-10",{c:"61",ca:"61",e:"79",f:"91",fa:"68",s:"13",si:"13"}],["2017-10-17",{c:"57",ca:"57",e:"16",f:"52",fa:"52",s:"11",si:"11"}],["2021-04-26",{c:"85",ca:"85",e:"85",f:"78",fa:"79",s:"14.1",si:"14.5"}],["2021-10-25",{c:"75",ca:"75",e:"79",f:"78",fa:"79",s:"15.1",si:"15.1"}],["2022-05-03",{c:"95",ca:"95",e:"95",f:"100",fa:"100",s:"15.2",si:"15.2"}],["2024-03-05",{c:"114",ca:"114",e:"114",f:"112",fa:"112",s:"17.4",si:"17.4"}],["2024-12-11",{c:"119",ca:"119",e:"119",f:"120",fa:"120",s:"18.2",si:"18.2"}],["2020-10-20",{c:"86",ca:"86",e:"86",f:"78",fa:"79",s:"13.1",si:"13.4"}],["2020-03-24",{c:"69",ca:"69",e:"79",f:"62",fa:"62",s:"13.1",si:"13.4"}],["2021-10-25",{c:"75",ca:"75",e:"18",f:"64",fa:"64",s:"15.1",si:"15.1"}],["2021-11-19",{c:"96",ca:"96",e:"96",f:"79",fa:"79",s:"15.1",si:"15.1"}],["2021-04-26",{c:"69",ca:"69",e:"18",f:"62",fa:"62",s:"14.1",si:"14.5"}],["2023-03-27",{c:"91",ca:"91",e:"91",f:"89",fa:"89",s:"16.4",si:"16.4"}],["2024-12-11",{c:"112",ca:"112",e:"112",f:"121",fa:"121",s:"18.2",si:"18.2"}],["2021-12-13",{c:"74",ca:"88",e:"79",f:"79",fa:"79",s:"15.2",si:"15.2"}],["2024-09-16",{c:"119",ca:"119",e:"119",f:"120",fa:"120",s:"18",si:"18"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"4",si:"3.2"}],["2021-04-26",{c:"84",ca:"84",e:"84",f:"79",fa:"79",s:"14.1",si:"14.5"}],["2015-07-29",{c:"36",ca:"36",e:"12",f:"6",fa:"6",s:"8",si:"8"}],["2015-09-30",{c:"36",ca:"36",e:"12",f:"34",fa:"34",s:"9",si:"9"}],["2020-09-16",{c:"84",ca:"84",e:"84",f:"75",fa:"79",s:"14",si:"14"}],["2021-04-26",{c:"35",ca:"35",e:"12",f:"25",fa:"25",s:"14.1",si:"14.5"}],["2015-07-29",{c:"37",ca:"37",e:"12",f:"34",fa:"34",s:"11",si:"11"}],["2022-03-14",{c:"69",ca:"69",e:"79",f:"96",fa:"96",s:"15.4",si:"15.4"}],["2021-09-07",{c:"67",ca:"70",e:"18",f:"60",fa:"92",s:"13",si:"13"}],["2023-10-24",{c:"85",ca:"85",e:"85",f:"119",fa:"119",s:"16",si:"16"}],["2015-07-29",{c:"9",ca:"25",e:"12",f:"4",fa:"4",s:"5.1",si:"8"}],["2021-09-20",{c:"63",ca:"63",e:"17",f:"30",fa:"30",s:"14",si:"15"}],["2024-10-29",{c:"104",ca:"104",e:"104",f:"132",fa:"132",s:"16.4",si:"16.4"}],["2020-01-15",{c:"47",ca:"47",e:"79",f:"53",fa:"53",s:"12",si:"12"}],["2017-04-19",{c:"33",ca:"33",e:"12",f:"53",fa:"53",s:"9.1",si:"9.3"}],["2020-09-16",{c:"47",ca:"47",e:"79",f:"56",fa:"56",s:"14",si:"14"}],["2015-07-29",{c:"26",ca:"26",e:"12",f:"22",fa:"22",s:"8",si:"8"}],["2018-04-30",{c:"26",ca:"26",e:"17",f:"22",fa:"22",s:"8",si:"8"}],["2022-12-13",{c:"100",ca:"100",e:"100",f:"108",fa:"108",s:"16",si:"16"}],["2021-09-20",{c:"56",ca:"58",e:"79",f:"51",fa:"51",s:"15",si:"15"}],["2024-10-29",{c:"104",ca:"104",e:"104",f:"132",fa:"132",s:"16.4",si:"16.4"}],["2020-09-16",{c:"32",ca:"32",e:"18",f:"65",fa:"65",s:"14",si:"14"}],["2020-01-15",{c:"56",ca:"56",e:"79",f:"22",fa:"24",s:"11",si:"11"}],["2025-10-03",{c:"141",ca:"141",e:"141",f:"117",fa:"117",s:"15.4",si:"15.4"}],["2023-05-09",{c:"76",ca:"76",e:"79",f:"113",fa:"113",s:"15.4",si:"15.4"}],["2020-01-15",{c:"58",ca:"58",e:"79",f:"44",fa:"44",s:"11",si:"11"}],["2015-07-29",{c:"5",ca:"18",e:"12",f:"11",fa:"14",s:"5",si:"4.2"}],["2026-03-24",{c:"97",ca:"97",e:"97",f:"114",fa:"114",s:"26.4",si:"26.4"}],["2015-07-29",{c:"23",ca:"25",e:"12",f:"31",fa:"31",s:"6",si:"8"}],["2020-01-15",{c:"23",ca:"25",e:"79",f:"31",fa:"31",s:"6",si:"8"}],["2021-01-21",{c:"88",ca:"88",e:"88",f:"82",fa:"82",s:"14",si:"14"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2024-03-19",{c:"114",ca:"114",e:"114",f:"124",fa:"124",s:"17.4",si:"17.4"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2020-01-15",{c:"36",ca:"36",e:"79",f:"36",fa:"36",s:"9.1",si:"9.3"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2015-09-30",{c:"44",ca:"44",e:"12",f:"15",fa:"15",s:"9",si:"9"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"1",si:"1"}],["2017-03-27",{c:"48",ca:"48",e:"12",f:"41",fa:"41",s:"10.1",si:"10.3"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"3",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"3",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"1",fa:"4",s:"3",si:"1"}],["2015-07-29",{c:"1",ca:"18",e:"12",f:"3",fa:"4",s:"1",si:"1"}],["2024-05-14",{c:"1",ca:"18",e:"12",f:"126",fa:"126",s:"3.1",si:"3"}],["2026-02-11",{c:"123",ca:"123",e:"123",f:"126",fa:"126",s:"26.3",si:"26.3"}]],c={w:"WebKit",g:"Gecko",p:"Presto",b:"Blink"},f={r:"retired",c:"current",b:"beta",n:"nightly",p:"planned",u:"unknown",e:"esr"},e=s=>{const a={};return Object.keys(s).forEach(r=>{const e=s[r];if(e&&e.releases){a[r]||(a[r]={releases:{}});const s=a[r].releases;e.releases.forEach(a=>{s[a[0]]={version:a[0],release_date:"u"==a[1]?"unknown":a[1],status:f[a[2]],engine:a[3]?c[a[3]]:void 0,engine_version:a[4]}})}}),a},b=(()=>{const s=[];return r.forEach(a=>{var r;s.push({status:{baseline_low_date:a[0],support:(r=a[1],{chrome:r.c,chrome_android:r.ca,edge:r.e,firefox:r.f,firefox_android:r.fa,safari:r.s,safari_ios:r.si})}})}),s})(),u=e(s),i=e(a);let n=!1;function o(){n=!1}const g=["chrome","chrome_android","edge","firefox","firefox_android","safari","safari_ios"],t=Object.keys(u).map(s=>[s,u[s]]).filter(([s])=>g.includes(s)),l=["webview_android","samsunginternet_android","opera_android","opera"],w=[...Object.keys(u).map(s=>[s,u[s]]).filter(([s])=>l.includes(s)),...Object.keys(i).map(s=>[s,i[s]])],p=["current","esr","retired","unknown","beta","nightly"];let d=!1;const v=s=>{if(!1===s.includeDownstreamBrowsers&&!0===s.includeKaiOS){if(console.log(new Error("KaiOS is a downstream browser and can only be included if you include other downstream browsers. Please ensure you use `includeDownstreamBrowsers: true`.")),"undefined"==typeof process||!process.exit)throw new Error("KaiOS configuration error: process.exit is not available");process.exit(1)}},_=s=>s&&s.startsWith("≤")?s.slice(1):s,h=(s,a)=>{if(s===a)return 0;const[r=0,c=0]=s.split(".",2).map(Number),[f=0,e=0]=a.split(".",2).map(Number);if(isNaN(r)||isNaN(c))throw new Error(`Invalid version: ${s}`);if(isNaN(f)||isNaN(e))throw new Error(`Invalid version: ${a}`);return r!==f?r>f?1:-1:c!==e?c>e?1:-1:0},m=s=>{let a=[];return s.forEach(s=>{let r=t.find(a=>a[0]===s.browser);if(r){Object.keys(r[1].releases).map(s=>[s,r[1].releases[s]]).filter(([,s])=>p.includes(s.status)).sort((s,a)=>h(s[0],a[0])).forEach(([r,c])=>!!p.includes(c.status)&&(1===h(r,s.version)&&(a.push({browser:s.browser,version:r,release_date:c.release_date?c.release_date:"unknown"}),!0)))}}),a},y=(s,a=!1)=>{if(s.getFullYear()<2015&&!d&&console.warn(new Error("There are no browser versions compatible with Baseline before 2015. You may receive unexpected results.")),s.getFullYear()<2002)throw new Error("None of the browsers in the core set were released before 2002. Please use a date after 2002.");if(s.getFullYear()>(new Date).getFullYear())throw new Error("There are no browser versions compatible with Baseline in the future");const r=(s=>b.filter(a=>a.status.baseline_low_date&&new Date(a.status.baseline_low_date)<=s).map(s=>({baseline_low_date:s.status.baseline_low_date,support:s.status.support})))(s),c=(s=>{let a={};return t.forEach(s=>{a[s[0]]={browser:s[0],version:"0",release_date:""}}),s.forEach(s=>{Object.keys(s.support).forEach(r=>{const c=s.support[r],f=_(c);a[r]&&1===h(f,_(a[r].version))&&(a[r]={browser:r,version:f,release_date:s.baseline_low_date})})}),Object.keys(a).map(s=>a[s])})(r);return a?[...c,...m(c)].sort((s,a)=>s.browsera.browser?1:h(s.version,a.version)):c},O=(s=[],a=!0,r=!1)=>{const c=a=>{var r;return s&&s.length>0?null===(r=s.filter(s=>s.browser===a).sort((s,a)=>h(s.version,a.version))[0])||void 0===r?void 0:r.version:void 0},f=c("chrome"),e=c("firefox");if(!f&&!e)throw new Error("There are no browser versions compatible with Baseline before Chrome and Firefox");let b=[];return w.filter(([s])=>!("kai_os"===s&&!r)).forEach(([s,r])=>{var c;if(!r.releases)return;let u=Object.keys(r.releases).map(s=>[s,r.releases[s]]).filter(([,s])=>{const{engine:a,engine_version:r}=s;return!(!a||!r)&&("Blink"===a&&f?h(r,f)>=0:!("Gecko"!==a||!e)&&h(r,e)>=0)}).sort((s,a)=>h(s[0],a[0]));for(let r=0;r{if(n||"undefined"!=typeof process&&process.env&&(process.env.BROWSERSLIST_IGNORE_OLD_DATA||process.env.BASELINE_BROWSER_MAPPING_IGNORE_OLD_DATA))return;const r=new Date;r.setMonth(r.getMonth()-2),s>r&&(null!=a?a:1776522778710){o[s]={},E({targetYear:s,suppressWarnings:u.suppressWarnings}).forEach(a=>{o[s]&&(o[s][a.browser]=a)})});const t=E({suppressWarnings:u.suppressWarnings}),l={};t.forEach(s=>{l[s.browser]=s});const w=new Date;w.setMonth(w.getMonth()+30);const p=E({widelyAvailableOnDate:w.toISOString().slice(0,10),suppressWarnings:u.suppressWarnings}),_={};p.forEach(s=>{_[s.browser]=s});const m=E({targetYear:2002,listAllCompatibleVersions:!0,suppressWarnings:u.suppressWarnings}),y=[];if(g.forEach(s=>{var a,r,c,f;let e=m.filter(a=>a.browser==s).sort((s,a)=>h(s.version,a.version)),b=null!==(r=null===(a=l[s])||void 0===a?void 0:a.version)&&void 0!==r?r:"0",g=null!==(f=null===(c=_[s])||void 0===c?void 0:c.version)&&void 0!==f?f:"0";n.forEach(a=>{var r;if(o[a]){let c=(null!==(r=o[a][s])&&void 0!==r?r:{version:"0"}).version,f=e.findIndex(s=>0===h(s.version,c));(a===i-1?e:e.slice(0,f)).forEach(s=>{let r=h(s.version,b)>=0,c=h(s.version,g)>=0,f=Object.assign(Object.assign({},s),{year:a<=2015?"pre_baseline":a-1});u.useSupports?(r&&(f.supports="widely"),c&&(f.supports="newly")):f=Object.assign(Object.assign({},f),{wa_compatible:r}),y.push(f)}),e=e.slice(f,e.length)}})}),u.includeDownstreamBrowsers){O(y,!0,u.includeKaiOS).forEach(s=>{let a=y.find(a=>"chrome"===a.browser&&a.version===s.engine_version);a&&(u.useSupports?y.push(Object.assign(Object.assign({},s),{year:a.year,supports:a.supports})):y.push(Object.assign(Object.assign({},s),{year:a.year,wa_compatible:a.wa_compatible})))})}if(y.sort((s,a)=>{if("pre_baseline"===s.year&&"pre_baseline"!==a.year)return-1;if("pre_baseline"===a.year&&"pre_baseline"!==s.year)return 1;if("pre_baseline"!==s.year&&"pre_baseline"!==a.year){if(s.yeara.year)return 1}return s.browsera.browser?1:h(s.version,a.version)}),"object"===u.outputFormat){const s={};return y.forEach(a=>{s[a.browser]||(s[a.browser]={});let r={year:a.year,release_date:a.release_date,engine:a.engine,engine_version:a.engine_version};s[a.browser][a.version]=u.useSupports?a.supports?Object.assign(Object.assign({},r),{supports:a.supports}):r:Object.assign(Object.assign({},r),{wa_compatible:a.wa_compatible})}),null!=s?s:{}}if("csv"===u.outputFormat){let s=`"browser","version","year","${u.useSupports?"supports":"wa_compatible"}","release_date","engine","engine_version"`;return y.forEach(a=>{var r,c,f,e;let b={browser:a.browser,version:a.version,year:a.year,release_date:null!==(r=a.release_date)&&void 0!==r?r:"NULL",engine:null!==(c=a.engine)&&void 0!==c?c:"NULL",engine_version:null!==(f=a.engine_version)&&void 0!==f?f:"NULL"};b=u.useSupports?Object.assign(Object.assign({},b),{supports:null!==(e=a.supports)&&void 0!==e?e:""}):Object.assign(Object.assign({},b),{wa_compatible:a.wa_compatible}),s+=`\n"${b.browser}","${b.version}","${b.year}","${u.useSupports?b.supports:b.wa_compatible}","${b.release_date}","${b.engine}","${b.engine_version}"`}),s}return y}export{o as _resetHasWarned,D as getAllVersions,E as getCompatibleVersions}; diff --git a/server/api/node_modules/baseline-browser-mapping/package.json b/server/api/node_modules/baseline-browser-mapping/package.json new file mode 100644 index 0000000..e0d3db5 --- /dev/null +++ b/server/api/node_modules/baseline-browser-mapping/package.json @@ -0,0 +1,68 @@ +{ + "name": "baseline-browser-mapping", + "main": "./dist/index.cjs", + "version": "2.10.20", + "description": "A library for obtaining browser versions with their maximum supported Baseline feature set and Widely Available status.", + "exports": { + ".": { + "require": "./dist/index.cjs", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + }, + "./legacy": { + "require": "./dist/index.cjs", + "types": "./dist/index.d.ts" + } + }, + "jsdelivr": "./dist/index.js", + "files": [ + "dist/*", + "!dist/scripts/*", + "LICENSE.txt", + "README.md" + ], + "types": "./dist/index.d.ts", + "type": "module", + "bin": { + "baseline-browser-mapping": "dist/cli.cjs" + }, + "engines": { + "node": ">=6.0.0" + }, + "scripts": { + "fix-cli-permissions": "output=$(npx baseline-browser-mapping 2>&1); path=$(printf '%s\n' \"$output\" | sed -n 's/^.*: \\(.*\\): Permission denied$/\\1/p; t; s/^\\(.*\\): Permission denied$/\\1/p'); if [ -n \"$path\" ]; then echo \"Permission denied for: $path\"; echo \"Removing $path ...\"; rm -rf \"$path\"; else echo \"$output\"; fi", + "test:format": "npx prettier --check .", + "test:lint": "npx eslint .", + "test:legacy-test": "node spec/legacy-tests/legacy-test.cjs; node dist/cli.cjs", + "test:jasmine": "npx jasmine", + "test:jasmine-browser": "npx jasmine-browser-runner runSpecs --config ./spec/support/jasmine-browser.js", + "test": "npm run build && npm run fix-cli-permissions && npm run test:format && npm run test:lint && npm run test:jasmine && npm run test:jasmine-browser", + "build": "rm -rf dist; npx prettier . --write; rollup -c; rm -rf ./dist/scripts/expose-data.d.ts ./dist/cli.d.ts", + "refresh-downstream": "npx tsx scripts/refresh-downstream.ts", + "refresh-static": "npx tsx scripts/refresh-static.ts", + "update-data-file": "npx tsx scripts/update-data-file.ts; npx prettier ./src/data/data.js --write", + "update-data-dependencies": "npm i @mdn/browser-compat-data@latest web-features@latest -D", + "check-data-changes": "git diff --name-only | grep -q '^src/data/data.js$' && echo 'changes-available=TRUE' || echo 'changes-available=FALSE'" + }, + "license": "Apache-2.0", + "devDependencies": { + "@mdn/browser-compat-data": "^7.3.12", + "@rollup/plugin-terser": "^1.0.0", + "@rollup/plugin-typescript": "^12.1.3", + "@types/node": "^22.15.17", + "eslint-plugin-new-with-error": "^5.0.0", + "jasmine": "^5.8.0", + "jasmine-browser-runner": "^3.0.0", + "jasmine-spec-reporter": "^7.0.0", + "prettier": "^3.5.3", + "rollup": "^4.44.0", + "tslib": "^2.8.1", + "typescript": "^5.7.2", + "typescript-eslint": "^8.35.0", + "web-features": "^3.23.1" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/web-platform-dx/baseline-browser-mapping.git" + } +} diff --git a/server/api/node_modules/basic-auth/HISTORY.md b/server/api/node_modules/basic-auth/HISTORY.md new file mode 100644 index 0000000..2c44a01 --- /dev/null +++ b/server/api/node_modules/basic-auth/HISTORY.md @@ -0,0 +1,52 @@ +2.0.1 / 2018-09-19 +================== + + * deps: safe-buffer@5.1.2 + +2.0.0 / 2017-09-12 +================== + + * Drop support for Node.js below 0.8 + * Remove `auth(ctx)` signature -- pass in header or `auth(ctx.req)` + * Use `safe-buffer` for improved Buffer API + +1.1.0 / 2016-11-18 +================== + + * Add `auth.parse` for low-level string parsing + +1.0.4 / 2016-05-10 +================== + + * Improve error message when `req` argument is not an object + * Improve error message when `req` missing `headers` property + +1.0.3 / 2015-07-01 +================== + + * Fix regression accepting a Koa context + +1.0.2 / 2015-06-12 +================== + + * Improve error message when `req` argument missing + * perf: enable strict mode + * perf: hoist regular expression + * perf: parse with regular expressions + * perf: remove argument reassignment + +1.0.1 / 2015-05-04 +================== + + * Update readme + +1.0.0 / 2014-07-01 +================== + + * Support empty password + * Support empty username + +0.0.1 / 2013-11-30 +================== + + * Initial release diff --git a/server/api/node_modules/basic-auth/LICENSE b/server/api/node_modules/basic-auth/LICENSE new file mode 100644 index 0000000..89041f6 --- /dev/null +++ b/server/api/node_modules/basic-auth/LICENSE @@ -0,0 +1,24 @@ +(The MIT License) + +Copyright (c) 2013 TJ Holowaychuk +Copyright (c) 2014 Jonathan Ong +Copyright (c) 2015-2016 Douglas Christopher Wilson + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/server/api/node_modules/basic-auth/README.md b/server/api/node_modules/basic-auth/README.md new file mode 100644 index 0000000..5f3d758 --- /dev/null +++ b/server/api/node_modules/basic-auth/README.md @@ -0,0 +1,113 @@ +# basic-auth + +[![NPM Version][npm-image]][npm-url] +[![NPM Downloads][downloads-image]][downloads-url] +[![Node.js Version][node-version-image]][node-version-url] +[![Build Status][travis-image]][travis-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +Generic basic auth Authorization header field parser for whatever. + +## Installation + +This is a [Node.js](https://nodejs.org/en/) module available through the +[npm registry](https://www.npmjs.com/). Installation is done using the +[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): + +``` +$ npm install basic-auth +``` + +## API + + + +```js +var auth = require('basic-auth') +``` + +### auth(req) + +Get the basic auth credentials from the given request. The `Authorization` +header is parsed and if the header is invalid, `undefined` is returned, +otherwise an object with `name` and `pass` properties. + +### auth.parse(string) + +Parse a basic auth authorization header string. This will return an object +with `name` and `pass` properties, or `undefined` if the string is invalid. + +## Example + +Pass a Node.js request object to the module export. If parsing fails +`undefined` is returned, otherwise an object with `.name` and `.pass`. + + + +```js +var auth = require('basic-auth') +var user = auth(req) +// => { name: 'something', pass: 'whatever' } +``` + +A header string from any other location can also be parsed with +`auth.parse`, for example a `Proxy-Authorization` header: + + + +```js +var auth = require('basic-auth') +var user = auth.parse(req.getHeader('Proxy-Authorization')) +``` + +### With vanilla node.js http server + +```js +var http = require('http') +var auth = require('basic-auth') +var compare = require('tsscmp') + +// Create server +var server = http.createServer(function (req, res) { + var credentials = auth(req) + + // Check credentials + // The "check" function will typically be against your user store + if (!credentials || !check(credentials.name, credentials.pass)) { + res.statusCode = 401 + res.setHeader('WWW-Authenticate', 'Basic realm="example"') + res.end('Access denied') + } else { + res.end('Access granted') + } +}) + +// Basic function to validate credentials for example +function check (name, pass) { + var valid = true + + // Simple method to prevent short-circut and use timing-safe compare + valid = compare(name, 'john') && valid + valid = compare(pass, 'secret') && valid + + return valid +} + +// Listen +server.listen(3000) +``` + +# License + +[MIT](LICENSE) + +[coveralls-image]: https://badgen.net/coveralls/c/github/jshttp/basic-auth/master +[coveralls-url]: https://coveralls.io/r/jshttp/basic-auth?branch=master +[downloads-image]: https://badgen.net/npm/dm/basic-auth +[downloads-url]: https://npmjs.org/package/basic-auth +[node-version-image]: https://badgen.net/npm/node/basic-auth +[node-version-url]: https://nodejs.org/en/download +[npm-image]: https://badgen.net/npm/v/basic-auth +[npm-url]: https://npmjs.org/package/basic-auth +[travis-image]: https://badgen.net/travis/jshttp/basic-auth/master +[travis-url]: https://travis-ci.org/jshttp/basic-auth diff --git a/server/api/node_modules/basic-auth/index.js b/server/api/node_modules/basic-auth/index.js new file mode 100644 index 0000000..9106e64 --- /dev/null +++ b/server/api/node_modules/basic-auth/index.js @@ -0,0 +1,133 @@ +/*! + * basic-auth + * Copyright(c) 2013 TJ Holowaychuk + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2015-2016 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var Buffer = require('safe-buffer').Buffer + +/** + * Module exports. + * @public + */ + +module.exports = auth +module.exports.parse = parse + +/** + * RegExp for basic auth credentials + * + * credentials = auth-scheme 1*SP token68 + * auth-scheme = "Basic" ; case insensitive + * token68 = 1*( ALPHA / DIGIT / "-" / "." / "_" / "~" / "+" / "/" ) *"=" + * @private + */ + +var CREDENTIALS_REGEXP = /^ *(?:[Bb][Aa][Ss][Ii][Cc]) +([A-Za-z0-9._~+/-]+=*) *$/ + +/** + * RegExp for basic auth user/pass + * + * user-pass = userid ":" password + * userid = * + * password = *TEXT + * @private + */ + +var USER_PASS_REGEXP = /^([^:]*):(.*)$/ + +/** + * Parse the Authorization header field of a request. + * + * @param {object} req + * @return {object} with .name and .pass + * @public + */ + +function auth (req) { + if (!req) { + throw new TypeError('argument req is required') + } + + if (typeof req !== 'object') { + throw new TypeError('argument req is required to be an object') + } + + // get header + var header = getAuthorization(req) + + // parse header + return parse(header) +} + +/** + * Decode base64 string. + * @private + */ + +function decodeBase64 (str) { + return Buffer.from(str, 'base64').toString() +} + +/** + * Get the Authorization header from request object. + * @private + */ + +function getAuthorization (req) { + if (!req.headers || typeof req.headers !== 'object') { + throw new TypeError('argument req is required to have headers property') + } + + return req.headers.authorization +} + +/** + * Parse basic auth to object. + * + * @param {string} string + * @return {object} + * @public + */ + +function parse (string) { + if (typeof string !== 'string') { + return undefined + } + + // parse header + var match = CREDENTIALS_REGEXP.exec(string) + + if (!match) { + return undefined + } + + // decode user pass + var userPass = USER_PASS_REGEXP.exec(decodeBase64(match[1])) + + if (!userPass) { + return undefined + } + + // return credentials object + return new Credentials(userPass[1], userPass[2]) +} + +/** + * Object to represent user credentials. + * @private + */ + +function Credentials (name, pass) { + this.name = name + this.pass = pass +} diff --git a/server/api/node_modules/basic-auth/node_modules/safe-buffer/LICENSE b/server/api/node_modules/basic-auth/node_modules/safe-buffer/LICENSE new file mode 100644 index 0000000..0c068ce --- /dev/null +++ b/server/api/node_modules/basic-auth/node_modules/safe-buffer/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) Feross Aboukhadijeh + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/server/api/node_modules/basic-auth/node_modules/safe-buffer/README.md b/server/api/node_modules/basic-auth/node_modules/safe-buffer/README.md new file mode 100644 index 0000000..e9a81af --- /dev/null +++ b/server/api/node_modules/basic-auth/node_modules/safe-buffer/README.md @@ -0,0 +1,584 @@ +# safe-buffer [![travis][travis-image]][travis-url] [![npm][npm-image]][npm-url] [![downloads][downloads-image]][downloads-url] [![javascript style guide][standard-image]][standard-url] + +[travis-image]: https://img.shields.io/travis/feross/safe-buffer/master.svg +[travis-url]: https://travis-ci.org/feross/safe-buffer +[npm-image]: https://img.shields.io/npm/v/safe-buffer.svg +[npm-url]: https://npmjs.org/package/safe-buffer +[downloads-image]: https://img.shields.io/npm/dm/safe-buffer.svg +[downloads-url]: https://npmjs.org/package/safe-buffer +[standard-image]: https://img.shields.io/badge/code_style-standard-brightgreen.svg +[standard-url]: https://standardjs.com + +#### Safer Node.js Buffer API + +**Use the new Node.js Buffer APIs (`Buffer.from`, `Buffer.alloc`, +`Buffer.allocUnsafe`, `Buffer.allocUnsafeSlow`) in all versions of Node.js.** + +**Uses the built-in implementation when available.** + +## install + +``` +npm install safe-buffer +``` + +## usage + +The goal of this package is to provide a safe replacement for the node.js `Buffer`. + +It's a drop-in replacement for `Buffer`. You can use it by adding one `require` line to +the top of your node.js modules: + +```js +var Buffer = require('safe-buffer').Buffer + +// Existing buffer code will continue to work without issues: + +new Buffer('hey', 'utf8') +new Buffer([1, 2, 3], 'utf8') +new Buffer(obj) +new Buffer(16) // create an uninitialized buffer (potentially unsafe) + +// But you can use these new explicit APIs to make clear what you want: + +Buffer.from('hey', 'utf8') // convert from many types to a Buffer +Buffer.alloc(16) // create a zero-filled buffer (safe) +Buffer.allocUnsafe(16) // create an uninitialized buffer (potentially unsafe) +``` + +## api + +### Class Method: Buffer.from(array) + + +* `array` {Array} + +Allocates a new `Buffer` using an `array` of octets. + +```js +const buf = Buffer.from([0x62,0x75,0x66,0x66,0x65,0x72]); + // creates a new Buffer containing ASCII bytes + // ['b','u','f','f','e','r'] +``` + +A `TypeError` will be thrown if `array` is not an `Array`. + +### Class Method: Buffer.from(arrayBuffer[, byteOffset[, length]]) + + +* `arrayBuffer` {ArrayBuffer} The `.buffer` property of a `TypedArray` or + a `new ArrayBuffer()` +* `byteOffset` {Number} Default: `0` +* `length` {Number} Default: `arrayBuffer.length - byteOffset` + +When passed a reference to the `.buffer` property of a `TypedArray` instance, +the newly created `Buffer` will share the same allocated memory as the +TypedArray. + +```js +const arr = new Uint16Array(2); +arr[0] = 5000; +arr[1] = 4000; + +const buf = Buffer.from(arr.buffer); // shares the memory with arr; + +console.log(buf); + // Prints: + +// changing the TypedArray changes the Buffer also +arr[1] = 6000; + +console.log(buf); + // Prints: +``` + +The optional `byteOffset` and `length` arguments specify a memory range within +the `arrayBuffer` that will be shared by the `Buffer`. + +```js +const ab = new ArrayBuffer(10); +const buf = Buffer.from(ab, 0, 2); +console.log(buf.length); + // Prints: 2 +``` + +A `TypeError` will be thrown if `arrayBuffer` is not an `ArrayBuffer`. + +### Class Method: Buffer.from(buffer) + + +* `buffer` {Buffer} + +Copies the passed `buffer` data onto a new `Buffer` instance. + +```js +const buf1 = Buffer.from('buffer'); +const buf2 = Buffer.from(buf1); + +buf1[0] = 0x61; +console.log(buf1.toString()); + // 'auffer' +console.log(buf2.toString()); + // 'buffer' (copy is not changed) +``` + +A `TypeError` will be thrown if `buffer` is not a `Buffer`. + +### Class Method: Buffer.from(str[, encoding]) + + +* `str` {String} String to encode. +* `encoding` {String} Encoding to use, Default: `'utf8'` + +Creates a new `Buffer` containing the given JavaScript string `str`. If +provided, the `encoding` parameter identifies the character encoding. +If not provided, `encoding` defaults to `'utf8'`. + +```js +const buf1 = Buffer.from('this is a tést'); +console.log(buf1.toString()); + // prints: this is a tést +console.log(buf1.toString('ascii')); + // prints: this is a tC)st + +const buf2 = Buffer.from('7468697320697320612074c3a97374', 'hex'); +console.log(buf2.toString()); + // prints: this is a tést +``` + +A `TypeError` will be thrown if `str` is not a string. + +### Class Method: Buffer.alloc(size[, fill[, encoding]]) + + +* `size` {Number} +* `fill` {Value} Default: `undefined` +* `encoding` {String} Default: `utf8` + +Allocates a new `Buffer` of `size` bytes. If `fill` is `undefined`, the +`Buffer` will be *zero-filled*. + +```js +const buf = Buffer.alloc(5); +console.log(buf); + // +``` + +The `size` must be less than or equal to the value of +`require('buffer').kMaxLength` (on 64-bit architectures, `kMaxLength` is +`(2^31)-1`). Otherwise, a [`RangeError`][] is thrown. A zero-length Buffer will +be created if a `size` less than or equal to 0 is specified. + +If `fill` is specified, the allocated `Buffer` will be initialized by calling +`buf.fill(fill)`. See [`buf.fill()`][] for more information. + +```js +const buf = Buffer.alloc(5, 'a'); +console.log(buf); + // +``` + +If both `fill` and `encoding` are specified, the allocated `Buffer` will be +initialized by calling `buf.fill(fill, encoding)`. For example: + +```js +const buf = Buffer.alloc(11, 'aGVsbG8gd29ybGQ=', 'base64'); +console.log(buf); + // +``` + +Calling `Buffer.alloc(size)` can be significantly slower than the alternative +`Buffer.allocUnsafe(size)` but ensures that the newly created `Buffer` instance +contents will *never contain sensitive data*. + +A `TypeError` will be thrown if `size` is not a number. + +### Class Method: Buffer.allocUnsafe(size) + + +* `size` {Number} + +Allocates a new *non-zero-filled* `Buffer` of `size` bytes. The `size` must +be less than or equal to the value of `require('buffer').kMaxLength` (on 64-bit +architectures, `kMaxLength` is `(2^31)-1`). Otherwise, a [`RangeError`][] is +thrown. A zero-length Buffer will be created if a `size` less than or equal to +0 is specified. + +The underlying memory for `Buffer` instances created in this way is *not +initialized*. The contents of the newly created `Buffer` are unknown and +*may contain sensitive data*. Use [`buf.fill(0)`][] to initialize such +`Buffer` instances to zeroes. + +```js +const buf = Buffer.allocUnsafe(5); +console.log(buf); + // + // (octets will be different, every time) +buf.fill(0); +console.log(buf); + // +``` + +A `TypeError` will be thrown if `size` is not a number. + +Note that the `Buffer` module pre-allocates an internal `Buffer` instance of +size `Buffer.poolSize` that is used as a pool for the fast allocation of new +`Buffer` instances created using `Buffer.allocUnsafe(size)` (and the deprecated +`new Buffer(size)` constructor) only when `size` is less than or equal to +`Buffer.poolSize >> 1` (floor of `Buffer.poolSize` divided by two). The default +value of `Buffer.poolSize` is `8192` but can be modified. + +Use of this pre-allocated internal memory pool is a key difference between +calling `Buffer.alloc(size, fill)` vs. `Buffer.allocUnsafe(size).fill(fill)`. +Specifically, `Buffer.alloc(size, fill)` will *never* use the internal Buffer +pool, while `Buffer.allocUnsafe(size).fill(fill)` *will* use the internal +Buffer pool if `size` is less than or equal to half `Buffer.poolSize`. The +difference is subtle but can be important when an application requires the +additional performance that `Buffer.allocUnsafe(size)` provides. + +### Class Method: Buffer.allocUnsafeSlow(size) + + +* `size` {Number} + +Allocates a new *non-zero-filled* and non-pooled `Buffer` of `size` bytes. The +`size` must be less than or equal to the value of +`require('buffer').kMaxLength` (on 64-bit architectures, `kMaxLength` is +`(2^31)-1`). Otherwise, a [`RangeError`][] is thrown. A zero-length Buffer will +be created if a `size` less than or equal to 0 is specified. + +The underlying memory for `Buffer` instances created in this way is *not +initialized*. The contents of the newly created `Buffer` are unknown and +*may contain sensitive data*. Use [`buf.fill(0)`][] to initialize such +`Buffer` instances to zeroes. + +When using `Buffer.allocUnsafe()` to allocate new `Buffer` instances, +allocations under 4KB are, by default, sliced from a single pre-allocated +`Buffer`. This allows applications to avoid the garbage collection overhead of +creating many individually allocated Buffers. This approach improves both +performance and memory usage by eliminating the need to track and cleanup as +many `Persistent` objects. + +However, in the case where a developer may need to retain a small chunk of +memory from a pool for an indeterminate amount of time, it may be appropriate +to create an un-pooled Buffer instance using `Buffer.allocUnsafeSlow()` then +copy out the relevant bits. + +```js +// need to keep around a few small chunks of memory +const store = []; + +socket.on('readable', () => { + const data = socket.read(); + // allocate for retained data + const sb = Buffer.allocUnsafeSlow(10); + // copy the data into the new allocation + data.copy(sb, 0, 0, 10); + store.push(sb); +}); +``` + +Use of `Buffer.allocUnsafeSlow()` should be used only as a last resort *after* +a developer has observed undue memory retention in their applications. + +A `TypeError` will be thrown if `size` is not a number. + +### All the Rest + +The rest of the `Buffer` API is exactly the same as in node.js. +[See the docs](https://nodejs.org/api/buffer.html). + + +## Related links + +- [Node.js issue: Buffer(number) is unsafe](https://github.com/nodejs/node/issues/4660) +- [Node.js Enhancement Proposal: Buffer.from/Buffer.alloc/Buffer.zalloc/Buffer() soft-deprecate](https://github.com/nodejs/node-eps/pull/4) + +## Why is `Buffer` unsafe? + +Today, the node.js `Buffer` constructor is overloaded to handle many different argument +types like `String`, `Array`, `Object`, `TypedArrayView` (`Uint8Array`, etc.), +`ArrayBuffer`, and also `Number`. + +The API is optimized for convenience: you can throw any type at it, and it will try to do +what you want. + +Because the Buffer constructor is so powerful, you often see code like this: + +```js +// Convert UTF-8 strings to hex +function toHex (str) { + return new Buffer(str).toString('hex') +} +``` + +***But what happens if `toHex` is called with a `Number` argument?*** + +### Remote Memory Disclosure + +If an attacker can make your program call the `Buffer` constructor with a `Number` +argument, then they can make it allocate uninitialized memory from the node.js process. +This could potentially disclose TLS private keys, user data, or database passwords. + +When the `Buffer` constructor is passed a `Number` argument, it returns an +**UNINITIALIZED** block of memory of the specified `size`. When you create a `Buffer` like +this, you **MUST** overwrite the contents before returning it to the user. + +From the [node.js docs](https://nodejs.org/api/buffer.html#buffer_new_buffer_size): + +> `new Buffer(size)` +> +> - `size` Number +> +> The underlying memory for `Buffer` instances created in this way is not initialized. +> **The contents of a newly created `Buffer` are unknown and could contain sensitive +> data.** Use `buf.fill(0)` to initialize a Buffer to zeroes. + +(Emphasis our own.) + +Whenever the programmer intended to create an uninitialized `Buffer` you often see code +like this: + +```js +var buf = new Buffer(16) + +// Immediately overwrite the uninitialized buffer with data from another buffer +for (var i = 0; i < buf.length; i++) { + buf[i] = otherBuf[i] +} +``` + + +### Would this ever be a problem in real code? + +Yes. It's surprisingly common to forget to check the type of your variables in a +dynamically-typed language like JavaScript. + +Usually the consequences of assuming the wrong type is that your program crashes with an +uncaught exception. But the failure mode for forgetting to check the type of arguments to +the `Buffer` constructor is more catastrophic. + +Here's an example of a vulnerable service that takes a JSON payload and converts it to +hex: + +```js +// Take a JSON payload {str: "some string"} and convert it to hex +var server = http.createServer(function (req, res) { + var data = '' + req.setEncoding('utf8') + req.on('data', function (chunk) { + data += chunk + }) + req.on('end', function () { + var body = JSON.parse(data) + res.end(new Buffer(body.str).toString('hex')) + }) +}) + +server.listen(8080) +``` + +In this example, an http client just has to send: + +```json +{ + "str": 1000 +} +``` + +and it will get back 1,000 bytes of uninitialized memory from the server. + +This is a very serious bug. It's similar in severity to the +[the Heartbleed bug](http://heartbleed.com/) that allowed disclosure of OpenSSL process +memory by remote attackers. + + +### Which real-world packages were vulnerable? + +#### [`bittorrent-dht`](https://www.npmjs.com/package/bittorrent-dht) + +[Mathias Buus](https://github.com/mafintosh) and I +([Feross Aboukhadijeh](http://feross.org/)) found this issue in one of our own packages, +[`bittorrent-dht`](https://www.npmjs.com/package/bittorrent-dht). The bug would allow +anyone on the internet to send a series of messages to a user of `bittorrent-dht` and get +them to reveal 20 bytes at a time of uninitialized memory from the node.js process. + +Here's +[the commit](https://github.com/feross/bittorrent-dht/commit/6c7da04025d5633699800a99ec3fbadf70ad35b8) +that fixed it. We released a new fixed version, created a +[Node Security Project disclosure](https://nodesecurity.io/advisories/68), and deprecated all +vulnerable versions on npm so users will get a warning to upgrade to a newer version. + +#### [`ws`](https://www.npmjs.com/package/ws) + +That got us wondering if there were other vulnerable packages. Sure enough, within a short +period of time, we found the same issue in [`ws`](https://www.npmjs.com/package/ws), the +most popular WebSocket implementation in node.js. + +If certain APIs were called with `Number` parameters instead of `String` or `Buffer` as +expected, then uninitialized server memory would be disclosed to the remote peer. + +These were the vulnerable methods: + +```js +socket.send(number) +socket.ping(number) +socket.pong(number) +``` + +Here's a vulnerable socket server with some echo functionality: + +```js +server.on('connection', function (socket) { + socket.on('message', function (message) { + message = JSON.parse(message) + if (message.type === 'echo') { + socket.send(message.data) // send back the user's message + } + }) +}) +``` + +`socket.send(number)` called on the server, will disclose server memory. + +Here's [the release](https://github.com/websockets/ws/releases/tag/1.0.1) where the issue +was fixed, with a more detailed explanation. Props to +[Arnout Kazemier](https://github.com/3rd-Eden) for the quick fix. Here's the +[Node Security Project disclosure](https://nodesecurity.io/advisories/67). + + +### What's the solution? + +It's important that node.js offers a fast way to get memory otherwise performance-critical +applications would needlessly get a lot slower. + +But we need a better way to *signal our intent* as programmers. **When we want +uninitialized memory, we should request it explicitly.** + +Sensitive functionality should not be packed into a developer-friendly API that loosely +accepts many different types. This type of API encourages the lazy practice of passing +variables in without checking the type very carefully. + +#### A new API: `Buffer.allocUnsafe(number)` + +The functionality of creating buffers with uninitialized memory should be part of another +API. We propose `Buffer.allocUnsafe(number)`. This way, it's not part of an API that +frequently gets user input of all sorts of different types passed into it. + +```js +var buf = Buffer.allocUnsafe(16) // careful, uninitialized memory! + +// Immediately overwrite the uninitialized buffer with data from another buffer +for (var i = 0; i < buf.length; i++) { + buf[i] = otherBuf[i] +} +``` + + +### How do we fix node.js core? + +We sent [a PR to node.js core](https://github.com/nodejs/node/pull/4514) (merged as +`semver-major`) which defends against one case: + +```js +var str = 16 +new Buffer(str, 'utf8') +``` + +In this situation, it's implied that the programmer intended the first argument to be a +string, since they passed an encoding as a second argument. Today, node.js will allocate +uninitialized memory in the case of `new Buffer(number, encoding)`, which is probably not +what the programmer intended. + +But this is only a partial solution, since if the programmer does `new Buffer(variable)` +(without an `encoding` parameter) there's no way to know what they intended. If `variable` +is sometimes a number, then uninitialized memory will sometimes be returned. + +### What's the real long-term fix? + +We could deprecate and remove `new Buffer(number)` and use `Buffer.allocUnsafe(number)` when +we need uninitialized memory. But that would break 1000s of packages. + +~~We believe the best solution is to:~~ + +~~1. Change `new Buffer(number)` to return safe, zeroed-out memory~~ + +~~2. Create a new API for creating uninitialized Buffers. We propose: `Buffer.allocUnsafe(number)`~~ + +#### Update + +We now support adding three new APIs: + +- `Buffer.from(value)` - convert from any type to a buffer +- `Buffer.alloc(size)` - create a zero-filled buffer +- `Buffer.allocUnsafe(size)` - create an uninitialized buffer with given size + +This solves the core problem that affected `ws` and `bittorrent-dht` which is +`Buffer(variable)` getting tricked into taking a number argument. + +This way, existing code continues working and the impact on the npm ecosystem will be +minimal. Over time, npm maintainers can migrate performance-critical code to use +`Buffer.allocUnsafe(number)` instead of `new Buffer(number)`. + + +### Conclusion + +We think there's a serious design issue with the `Buffer` API as it exists today. It +promotes insecure software by putting high-risk functionality into a convenient API +with friendly "developer ergonomics". + +This wasn't merely a theoretical exercise because we found the issue in some of the +most popular npm packages. + +Fortunately, there's an easy fix that can be applied today. Use `safe-buffer` in place of +`buffer`. + +```js +var Buffer = require('safe-buffer').Buffer +``` + +Eventually, we hope that node.js core can switch to this new, safer behavior. We believe +the impact on the ecosystem would be minimal since it's not a breaking change. +Well-maintained, popular packages would be updated to use `Buffer.alloc` quickly, while +older, insecure packages would magically become safe from this attack vector. + + +## links + +- [Node.js PR: buffer: throw if both length and enc are passed](https://github.com/nodejs/node/pull/4514) +- [Node Security Project disclosure for `ws`](https://nodesecurity.io/advisories/67) +- [Node Security Project disclosure for`bittorrent-dht`](https://nodesecurity.io/advisories/68) + + +## credit + +The original issues in `bittorrent-dht` +([disclosure](https://nodesecurity.io/advisories/68)) and +`ws` ([disclosure](https://nodesecurity.io/advisories/67)) were discovered by +[Mathias Buus](https://github.com/mafintosh) and +[Feross Aboukhadijeh](http://feross.org/). + +Thanks to [Adam Baldwin](https://github.com/evilpacket) for helping disclose these issues +and for his work running the [Node Security Project](https://nodesecurity.io/). + +Thanks to [John Hiesey](https://github.com/jhiesey) for proofreading this README and +auditing the code. + + +## license + +MIT. Copyright (C) [Feross Aboukhadijeh](http://feross.org) diff --git a/server/api/node_modules/basic-auth/node_modules/safe-buffer/index.d.ts b/server/api/node_modules/basic-auth/node_modules/safe-buffer/index.d.ts new file mode 100644 index 0000000..e9fed80 --- /dev/null +++ b/server/api/node_modules/basic-auth/node_modules/safe-buffer/index.d.ts @@ -0,0 +1,187 @@ +declare module "safe-buffer" { + export class Buffer { + length: number + write(string: string, offset?: number, length?: number, encoding?: string): number; + toString(encoding?: string, start?: number, end?: number): string; + toJSON(): { type: 'Buffer', data: any[] }; + equals(otherBuffer: Buffer): boolean; + compare(otherBuffer: Buffer, targetStart?: number, targetEnd?: number, sourceStart?: number, sourceEnd?: number): number; + copy(targetBuffer: Buffer, targetStart?: number, sourceStart?: number, sourceEnd?: number): number; + slice(start?: number, end?: number): Buffer; + writeUIntLE(value: number, offset: number, byteLength: number, noAssert?: boolean): number; + writeUIntBE(value: number, offset: number, byteLength: number, noAssert?: boolean): number; + writeIntLE(value: number, offset: number, byteLength: number, noAssert?: boolean): number; + writeIntBE(value: number, offset: number, byteLength: number, noAssert?: boolean): number; + readUIntLE(offset: number, byteLength: number, noAssert?: boolean): number; + readUIntBE(offset: number, byteLength: number, noAssert?: boolean): number; + readIntLE(offset: number, byteLength: number, noAssert?: boolean): number; + readIntBE(offset: number, byteLength: number, noAssert?: boolean): number; + readUInt8(offset: number, noAssert?: boolean): number; + readUInt16LE(offset: number, noAssert?: boolean): number; + readUInt16BE(offset: number, noAssert?: boolean): number; + readUInt32LE(offset: number, noAssert?: boolean): number; + readUInt32BE(offset: number, noAssert?: boolean): number; + readInt8(offset: number, noAssert?: boolean): number; + readInt16LE(offset: number, noAssert?: boolean): number; + readInt16BE(offset: number, noAssert?: boolean): number; + readInt32LE(offset: number, noAssert?: boolean): number; + readInt32BE(offset: number, noAssert?: boolean): number; + readFloatLE(offset: number, noAssert?: boolean): number; + readFloatBE(offset: number, noAssert?: boolean): number; + readDoubleLE(offset: number, noAssert?: boolean): number; + readDoubleBE(offset: number, noAssert?: boolean): number; + swap16(): Buffer; + swap32(): Buffer; + swap64(): Buffer; + writeUInt8(value: number, offset: number, noAssert?: boolean): number; + writeUInt16LE(value: number, offset: number, noAssert?: boolean): number; + writeUInt16BE(value: number, offset: number, noAssert?: boolean): number; + writeUInt32LE(value: number, offset: number, noAssert?: boolean): number; + writeUInt32BE(value: number, offset: number, noAssert?: boolean): number; + writeInt8(value: number, offset: number, noAssert?: boolean): number; + writeInt16LE(value: number, offset: number, noAssert?: boolean): number; + writeInt16BE(value: number, offset: number, noAssert?: boolean): number; + writeInt32LE(value: number, offset: number, noAssert?: boolean): number; + writeInt32BE(value: number, offset: number, noAssert?: boolean): number; + writeFloatLE(value: number, offset: number, noAssert?: boolean): number; + writeFloatBE(value: number, offset: number, noAssert?: boolean): number; + writeDoubleLE(value: number, offset: number, noAssert?: boolean): number; + writeDoubleBE(value: number, offset: number, noAssert?: boolean): number; + fill(value: any, offset?: number, end?: number): this; + indexOf(value: string | number | Buffer, byteOffset?: number, encoding?: string): number; + lastIndexOf(value: string | number | Buffer, byteOffset?: number, encoding?: string): number; + includes(value: string | number | Buffer, byteOffset?: number, encoding?: string): boolean; + + /** + * Allocates a new buffer containing the given {str}. + * + * @param str String to store in buffer. + * @param encoding encoding to use, optional. Default is 'utf8' + */ + constructor (str: string, encoding?: string); + /** + * Allocates a new buffer of {size} octets. + * + * @param size count of octets to allocate. + */ + constructor (size: number); + /** + * Allocates a new buffer containing the given {array} of octets. + * + * @param array The octets to store. + */ + constructor (array: Uint8Array); + /** + * Produces a Buffer backed by the same allocated memory as + * the given {ArrayBuffer}. + * + * + * @param arrayBuffer The ArrayBuffer with which to share memory. + */ + constructor (arrayBuffer: ArrayBuffer); + /** + * Allocates a new buffer containing the given {array} of octets. + * + * @param array The octets to store. + */ + constructor (array: any[]); + /** + * Copies the passed {buffer} data onto a new {Buffer} instance. + * + * @param buffer The buffer to copy. + */ + constructor (buffer: Buffer); + prototype: Buffer; + /** + * Allocates a new Buffer using an {array} of octets. + * + * @param array + */ + static from(array: any[]): Buffer; + /** + * When passed a reference to the .buffer property of a TypedArray instance, + * the newly created Buffer will share the same allocated memory as the TypedArray. + * The optional {byteOffset} and {length} arguments specify a memory range + * within the {arrayBuffer} that will be shared by the Buffer. + * + * @param arrayBuffer The .buffer property of a TypedArray or a new ArrayBuffer() + * @param byteOffset + * @param length + */ + static from(arrayBuffer: ArrayBuffer, byteOffset?: number, length?: number): Buffer; + /** + * Copies the passed {buffer} data onto a new Buffer instance. + * + * @param buffer + */ + static from(buffer: Buffer): Buffer; + /** + * Creates a new Buffer containing the given JavaScript string {str}. + * If provided, the {encoding} parameter identifies the character encoding. + * If not provided, {encoding} defaults to 'utf8'. + * + * @param str + */ + static from(str: string, encoding?: string): Buffer; + /** + * Returns true if {obj} is a Buffer + * + * @param obj object to test. + */ + static isBuffer(obj: any): obj is Buffer; + /** + * Returns true if {encoding} is a valid encoding argument. + * Valid string encodings in Node 0.12: 'ascii'|'utf8'|'utf16le'|'ucs2'(alias of 'utf16le')|'base64'|'binary'(deprecated)|'hex' + * + * @param encoding string to test. + */ + static isEncoding(encoding: string): boolean; + /** + * Gives the actual byte length of a string. encoding defaults to 'utf8'. + * This is not the same as String.prototype.length since that returns the number of characters in a string. + * + * @param string string to test. + * @param encoding encoding used to evaluate (defaults to 'utf8') + */ + static byteLength(string: string, encoding?: string): number; + /** + * Returns a buffer which is the result of concatenating all the buffers in the list together. + * + * If the list has no items, or if the totalLength is 0, then it returns a zero-length buffer. + * If the list has exactly one item, then the first item of the list is returned. + * If the list has more than one item, then a new Buffer is created. + * + * @param list An array of Buffer objects to concatenate + * @param totalLength Total length of the buffers when concatenated. + * If totalLength is not provided, it is read from the buffers in the list. However, this adds an additional loop to the function, so it is faster to provide the length explicitly. + */ + static concat(list: Buffer[], totalLength?: number): Buffer; + /** + * The same as buf1.compare(buf2). + */ + static compare(buf1: Buffer, buf2: Buffer): number; + /** + * Allocates a new buffer of {size} octets. + * + * @param size count of octets to allocate. + * @param fill if specified, buffer will be initialized by calling buf.fill(fill). + * If parameter is omitted, buffer will be filled with zeros. + * @param encoding encoding used for call to buf.fill while initalizing + */ + static alloc(size: number, fill?: string | Buffer | number, encoding?: string): Buffer; + /** + * Allocates a new buffer of {size} octets, leaving memory not initialized, so the contents + * of the newly created Buffer are unknown and may contain sensitive data. + * + * @param size count of octets to allocate + */ + static allocUnsafe(size: number): Buffer; + /** + * Allocates a new non-pooled buffer of {size} octets, leaving memory not initialized, so the contents + * of the newly created Buffer are unknown and may contain sensitive data. + * + * @param size count of octets to allocate + */ + static allocUnsafeSlow(size: number): Buffer; + } +} \ No newline at end of file diff --git a/server/api/node_modules/basic-auth/node_modules/safe-buffer/index.js b/server/api/node_modules/basic-auth/node_modules/safe-buffer/index.js new file mode 100644 index 0000000..22438da --- /dev/null +++ b/server/api/node_modules/basic-auth/node_modules/safe-buffer/index.js @@ -0,0 +1,62 @@ +/* eslint-disable node/no-deprecated-api */ +var buffer = require('buffer') +var Buffer = buffer.Buffer + +// alternative to using Object.keys for old browsers +function copyProps (src, dst) { + for (var key in src) { + dst[key] = src[key] + } +} +if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) { + module.exports = buffer +} else { + // Copy properties from require('buffer') + copyProps(buffer, exports) + exports.Buffer = SafeBuffer +} + +function SafeBuffer (arg, encodingOrOffset, length) { + return Buffer(arg, encodingOrOffset, length) +} + +// Copy static methods from Buffer +copyProps(Buffer, SafeBuffer) + +SafeBuffer.from = function (arg, encodingOrOffset, length) { + if (typeof arg === 'number') { + throw new TypeError('Argument must not be a number') + } + return Buffer(arg, encodingOrOffset, length) +} + +SafeBuffer.alloc = function (size, fill, encoding) { + if (typeof size !== 'number') { + throw new TypeError('Argument must be a number') + } + var buf = Buffer(size) + if (fill !== undefined) { + if (typeof encoding === 'string') { + buf.fill(fill, encoding) + } else { + buf.fill(fill) + } + } else { + buf.fill(0) + } + return buf +} + +SafeBuffer.allocUnsafe = function (size) { + if (typeof size !== 'number') { + throw new TypeError('Argument must be a number') + } + return Buffer(size) +} + +SafeBuffer.allocUnsafeSlow = function (size) { + if (typeof size !== 'number') { + throw new TypeError('Argument must be a number') + } + return buffer.SlowBuffer(size) +} diff --git a/server/api/node_modules/basic-auth/node_modules/safe-buffer/package.json b/server/api/node_modules/basic-auth/node_modules/safe-buffer/package.json new file mode 100644 index 0000000..623fbc3 --- /dev/null +++ b/server/api/node_modules/basic-auth/node_modules/safe-buffer/package.json @@ -0,0 +1,37 @@ +{ + "name": "safe-buffer", + "description": "Safer Node.js Buffer API", + "version": "5.1.2", + "author": { + "name": "Feross Aboukhadijeh", + "email": "feross@feross.org", + "url": "http://feross.org" + }, + "bugs": { + "url": "https://github.com/feross/safe-buffer/issues" + }, + "devDependencies": { + "standard": "*", + "tape": "^4.0.0" + }, + "homepage": "https://github.com/feross/safe-buffer", + "keywords": [ + "buffer", + "buffer allocate", + "node security", + "safe", + "safe-buffer", + "security", + "uninitialized" + ], + "license": "MIT", + "main": "index.js", + "types": "index.d.ts", + "repository": { + "type": "git", + "url": "git://github.com/feross/safe-buffer.git" + }, + "scripts": { + "test": "standard && tape test/*.js" + } +} diff --git a/server/api/node_modules/basic-auth/package.json b/server/api/node_modules/basic-auth/package.json new file mode 100644 index 0000000..01bd8dc --- /dev/null +++ b/server/api/node_modules/basic-auth/package.json @@ -0,0 +1,41 @@ +{ + "name": "basic-auth", + "description": "node.js basic auth parser", + "version": "2.0.1", + "license": "MIT", + "keywords": [ + "basic", + "auth", + "authorization", + "basicauth" + ], + "repository": "jshttp/basic-auth", + "dependencies": { + "safe-buffer": "5.1.2" + }, + "devDependencies": { + "eslint": "5.6.0", + "eslint-config-standard": "12.0.0", + "eslint-plugin-import": "2.14.0", + "eslint-plugin-markdown": "1.0.0-beta.6", + "eslint-plugin-node": "7.0.1", + "eslint-plugin-promise": "4.0.1", + "eslint-plugin-standard": "4.0.0", + "istanbul": "0.4.5", + "mocha": "5.2.0" + }, + "files": [ + "HISTORY.md", + "LICENSE", + "index.js" + ], + "engines": { + "node": ">= 0.8" + }, + "scripts": { + "lint": "eslint --plugin markdown --ext js,md .", + "test": "mocha --check-leaks --reporter spec --bail", + "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", + "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/" + } +} diff --git a/server/api/node_modules/bcryptjs/.npmignore b/server/api/node_modules/bcryptjs/.npmignore new file mode 100644 index 0000000..e14a574 --- /dev/null +++ b/server/api/node_modules/bcryptjs/.npmignore @@ -0,0 +1,6 @@ +node_modules/ +npm-debug.log +debug.log +doco/ +tests/bench.js +*.png diff --git a/server/api/node_modules/bcryptjs/.travis.yml b/server/api/node_modules/bcryptjs/.travis.yml new file mode 100644 index 0000000..e2ed92d --- /dev/null +++ b/server/api/node_modules/bcryptjs/.travis.yml @@ -0,0 +1,18 @@ +language: node_js + +node_js: + - 0.10 + - 0.12 + - 4 + - 6 + +before_script: npm -g install testjs + +env: + - CXX=g++-4.8 +addons: + apt: + sources: + - ubuntu-toolchain-r-test + packages: + - g++-4.8 diff --git a/server/api/node_modules/bcryptjs/LICENSE b/server/api/node_modules/bcryptjs/LICENSE new file mode 100644 index 0000000..3f6395f --- /dev/null +++ b/server/api/node_modules/bcryptjs/LICENSE @@ -0,0 +1,50 @@ +bcrypt.js +--------- +Copyright (c) 2012 Nevins Bartolomeo +Copyright (c) 2012 Shane Girish +Copyright (c) 2014 Daniel Wirtz + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. The name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +isaac.js +-------- +Copyright (c) 2012 Yves-Marie K. Rinquin + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/server/api/node_modules/bcryptjs/README.md b/server/api/node_modules/bcryptjs/README.md new file mode 100644 index 0000000..3fd7517 --- /dev/null +++ b/server/api/node_modules/bcryptjs/README.md @@ -0,0 +1,251 @@ +bcrypt.js +========= +Optimized bcrypt in JavaScript with zero dependencies. Compatible to the C++ [bcrypt](https://npmjs.org/package/bcrypt) +binding on node.js and also working in the browser. + +build static donate ❤ + + +Security considerations +----------------------- +Besides incorporating a salt to protect against rainbow table attacks, bcrypt is an adaptive function: over time, the +iteration count can be increased to make it slower, so it remains resistant to brute-force search attacks even with +increasing computation power. ([see](http://en.wikipedia.org/wiki/Bcrypt)) + +While bcrypt.js is compatible to the C++ bcrypt binding, it is written in pure JavaScript and thus slower ([about 30%](https://github.com/dcodeIO/bcrypt.js/wiki/Benchmark)), effectively reducing the number of iterations that can be +processed in an equal time span. + +The maximum input length is 72 bytes (note that UTF8 encoded characters use up to 4 bytes) and the length of generated +hashes is 60 characters. + +Usage +----- +The library is compatible with CommonJS and AMD loaders and is exposed globally as `dcodeIO.bcrypt` if neither is +available. + +### node.js + +On node.js, the inbuilt [crypto module](http://nodejs.org/api/crypto.html)'s randomBytes interface is used to obtain +secure random numbers. + +`npm install bcryptjs` + +```js +var bcrypt = require('bcryptjs'); +... +``` + +### Browser + +In the browser, bcrypt.js relies on [Web Crypto API](http://www.w3.org/TR/WebCryptoAPI)'s getRandomValues +interface to obtain secure random numbers. If no cryptographically secure source of randomness is available, you may +specify one through [bcrypt.setRandomFallback](https://github.com/dcodeIO/bcrypt.js#setrandomfallbackrandom). + +```js +var bcrypt = dcodeIO.bcrypt; +... +``` + +or + +```js +require.config({ + paths: { "bcrypt": "/path/to/bcrypt.js" } +}); +require(["bcrypt"], function(bcrypt) { + ... +}); +``` + +Usage - Sync +------------ +To hash a password: + +```javascript +var bcrypt = require('bcryptjs'); +var salt = bcrypt.genSaltSync(10); +var hash = bcrypt.hashSync("B4c0/\/", salt); +// Store hash in your password DB. +``` + +To check a password: + +```javascript +// Load hash from your password DB. +bcrypt.compareSync("B4c0/\/", hash); // true +bcrypt.compareSync("not_bacon", hash); // false +``` + +Auto-gen a salt and hash: + +```javascript +var hash = bcrypt.hashSync('bacon', 8); +``` + +Usage - Async +------------- +To hash a password: + +```javascript +var bcrypt = require('bcryptjs'); +bcrypt.genSalt(10, function(err, salt) { + bcrypt.hash("B4c0/\/", salt, function(err, hash) { + // Store hash in your password DB. + }); +}); +``` + +To check a password: + +```javascript +// Load hash from your password DB. +bcrypt.compare("B4c0/\/", hash, function(err, res) { + // res === true +}); +bcrypt.compare("not_bacon", hash, function(err, res) { + // res === false +}); + +// As of bcryptjs 2.4.0, compare returns a promise if callback is omitted: +bcrypt.compare("B4c0/\/", hash).then((res) => { + // res === true +}); +``` + +Auto-gen a salt and hash: + +```javascript +bcrypt.hash('bacon', 8, function(err, hash) { +}); +``` + +**Note:** Under the hood, asynchronisation splits a crypto operation into small chunks. After the completion of a chunk, the execution of the next chunk is placed on the back of [JS event loop queue](https://developer.mozilla.org/en/docs/Web/JavaScript/EventLoop), thus efficiently sharing the computational resources with the other operations in the queue. + +API +--- +### setRandomFallback(random) + +Sets the pseudo random number generator to use as a fallback if neither node's `crypto` module nor the Web Crypto +API is available. Please note: It is highly important that the PRNG used is cryptographically secure and that it is +seeded properly! + +| Parameter | Type | Description +|-----------------|-----------------|--------------- +| random | *function(number):!Array.<number>* | Function taking the number of bytes to generate as its sole argument, returning the corresponding array of cryptographically secure random byte values. +| **@see** | | http://nodejs.org/api/crypto.html +| **@see** | | http://www.w3.org/TR/WebCryptoAPI/ + +**Hint:** You might use [isaac.js](https://github.com/rubycon/isaac.js) as a CSPRNG but you still have to make sure to +seed it properly. + +### genSaltSync(rounds=, seed_length=) + +Synchronously generates a salt. + +| Parameter | Type | Description +|-----------------|-----------------|--------------- +| rounds | *number* | Number of rounds to use, defaults to 10 if omitted +| seed_length | *number* | Not supported. +| **@returns** | *string* | Resulting salt +| **@throws** | *Error* | If a random fallback is required but not set + +### genSalt(rounds=, seed_length=, callback) + +Asynchronously generates a salt. + +| Parameter | Type | Description +|-----------------|-----------------|--------------- +| rounds | *number | function(Error, string=)* | Number of rounds to use, defaults to 10 if omitted +| seed_length | *number | function(Error, string=)* | Not supported. +| callback | *function(Error, string=)* | Callback receiving the error, if any, and the resulting salt +| **@returns** | *Promise* | If `callback` has been omitted +| **@throws** | *Error* | If `callback` is present but not a function + +### hashSync(s, salt=) + +Synchronously generates a hash for the given string. + +| Parameter | Type | Description +|-----------------|-----------------|--------------- +| s | *string* | String to hash +| salt | *number | string* | Salt length to generate or salt to use, default to 10 +| **@returns** | *string* | Resulting hash + +### hash(s, salt, callback, progressCallback=) + +Asynchronously generates a hash for the given string. + +| Parameter | Type | Description +|-----------------|-----------------|--------------- +| s | *string* | String to hash +| salt | *number | string* | Salt length to generate or salt to use +| callback | *function(Error, string=)* | Callback receiving the error, if any, and the resulting hash +| progressCallback | *function(number)* | Callback successively called with the percentage of rounds completed (0.0 - 1.0), maximally once per `MAX_EXECUTION_TIME = 100` ms. +| **@returns** | *Promise* | If `callback` has been omitted +| **@throws** | *Error* | If `callback` is present but not a function + +### compareSync(s, hash) + +Synchronously tests a string against a hash. + +| Parameter | Type | Description +|-----------------|-----------------|--------------- +| s | *string* | String to compare +| hash | *string* | Hash to test against +| **@returns** | *boolean* | true if matching, otherwise false +| **@throws** | *Error* | If an argument is illegal + +### compare(s, hash, callback, progressCallback=) + +Asynchronously compares the given data against the given hash. + +| Parameter | Type | Description +|-----------------|-----------------|--------------- +| s | *string* | Data to compare +| hash | *string* | Data to be compared to +| callback | *function(Error, boolean)* | Callback receiving the error, if any, otherwise the result +| progressCallback | *function(number)* | Callback successively called with the percentage of rounds completed (0.0 - 1.0), maximally once per `MAX_EXECUTION_TIME = 100` ms. +| **@returns** | *Promise* | If `callback` has been omitted +| **@throws** | *Error* | If `callback` is present but not a function + +### getRounds(hash) + +Gets the number of rounds used to encrypt the specified hash. + +| Parameter | Type | Description +|-----------------|-----------------|--------------- +| hash | *string* | Hash to extract the used number of rounds from +| **@returns** | *number* | Number of rounds used +| **@throws** | *Error* | If `hash` is not a string + +### getSalt(hash) + +Gets the salt portion from a hash. Does not validate the hash. + +| Parameter | Type | Description +|-----------------|-----------------|--------------- +| hash | *string* | Hash to extract the salt from +| **@returns** | *string* | Extracted salt part +| **@throws** | *Error* | If `hash` is not a string or otherwise invalid + + +Command line +------------ +`Usage: bcrypt [salt]` + +If the input has spaces inside, simply surround it with quotes. + +Downloads +--------- +* [Distributions](https://github.com/dcodeIO/bcrypt.js/tree/master/dist) +* [ZIP-Archive](https://github.com/dcodeIO/bcrypt.js/archive/master.zip) +* [Tarball](https://github.com/dcodeIO/bcrypt.js/tarball/master) + +Credits +------- +Based on work started by Shane Girish at [bcrypt-nodejs](https://github.com/shaneGirish/bcrypt-nodejs) (MIT-licensed), +which is itself based on [javascript-bcrypt](http://code.google.com/p/javascript-bcrypt/) (New BSD-licensed). + +License +------- +New-BSD / MIT ([see](https://github.com/dcodeIO/bcrypt.js/blob/master/LICENSE)) diff --git a/server/api/node_modules/bcryptjs/bin/bcrypt b/server/api/node_modules/bcryptjs/bin/bcrypt new file mode 100644 index 0000000..4cfc9d9 --- /dev/null +++ b/server/api/node_modules/bcryptjs/bin/bcrypt @@ -0,0 +1,25 @@ +#!/usr/bin/env node + +var path = require("path"), + bcrypt = require(path.join(__dirname, '..', 'index.js')), + pkg = require(path.join(__dirname, '..', 'package.json')); + +if (process.argv.length < 3) { + process.stderr.write([ // No dependencies, so we do it from hand. + "", + " |_ _ _ _ |_", + " |_)(_| \\/|_)|_ v"+pkg['version']+" (c) "+pkg['author'], + " / | " + ].join('\n')+'\n\n'+" Usage: "+path.basename(process.argv[1])+" [rounds|salt]\n"); + process.exit(1); +} else { + var salt; + if (process.argv.length > 3) { + salt = process.argv[3]; + var rounds = parseInt(salt, 10); + if (rounds == salt) + salt = bcrypt.genSaltSync(rounds); + } else + salt = bcrypt.genSaltSync(); + process.stdout.write(bcrypt.hashSync(process.argv[2], salt)+"\n"); +} diff --git a/server/api/node_modules/bcryptjs/bower.json b/server/api/node_modules/bcryptjs/bower.json new file mode 100644 index 0000000..c152405 --- /dev/null +++ b/server/api/node_modules/bcryptjs/bower.json @@ -0,0 +1,22 @@ +{ + "name": "bcryptjs", + "description": "Optimized bcrypt in plain JavaScript with zero dependencies.", + "version": "2.4.3", + "main": "dist/bcrypt.min.js", + "license": "New-BSD", + "homepage": "http://dcode.io/", + "repository": { + "type": "git", + "url": "git://github.com/dcodeIO/bcrypt.js.git" + }, + "keywords": ["bcrypt", "password", "auth", "authentication", "encryption", "crypt", "crypto"], + "dependencies": {}, + "devDependencies": {}, + "ignore": [ + "**/.*", + "node_modules", + "bower_components", + "test", + "tests" + ] +} diff --git a/server/api/node_modules/bcryptjs/dist/README.md b/server/api/node_modules/bcryptjs/dist/README.md new file mode 100644 index 0000000..4020f45 --- /dev/null +++ b/server/api/node_modules/bcryptjs/dist/README.md @@ -0,0 +1,15 @@ +Distributions +============= +bcrypt.js is available as the following distributions: + +* **[bcrypt.js](https://github.com/dcodeIO/bcrypt.js/blob/master/dist/bcrypt.js)** + contains the commented source code. + +* **[bcrypt.min.js](https://github.com/dcodeIO/bcrypt.js/blob/master/dist/bcrypt.min.js)** + has been compiled with Closure Compiler using advanced optimizations. + +* **[bcrypt.min.map](https://github.com/dcodeIO/bcrypt.js/blob/master/dist/bcrypt.min.map)** + contains the source map generated by Closure Compiler. + +* **[bcrypt.min.js.gz](https://github.com/dcodeIO/bcrypt.js/blob/master/dist/bcrypt.min.js.gz)** + has also been gzipped using `-9`. diff --git a/server/api/node_modules/bcryptjs/dist/bcrypt.js b/server/api/node_modules/bcryptjs/dist/bcrypt.js new file mode 100644 index 0000000..a50dbee --- /dev/null +++ b/server/api/node_modules/bcryptjs/dist/bcrypt.js @@ -0,0 +1,1379 @@ +/* + Copyright (c) 2012 Nevins Bartolomeo + Copyright (c) 2012 Shane Girish + Copyright (c) 2014 Daniel Wirtz + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + 3. The name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/** + * @license bcrypt.js (c) 2013 Daniel Wirtz + * Released under the Apache License, Version 2.0 + * see: https://github.com/dcodeIO/bcrypt.js for details + */ +(function(global, factory) { + + /* AMD */ if (typeof define === 'function' && define["amd"]) + define([], factory); + /* CommonJS */ else if (typeof require === 'function' && typeof module === "object" && module && module["exports"]) + module["exports"] = factory(); + /* Global */ else + (global["dcodeIO"] = global["dcodeIO"] || {})["bcrypt"] = factory(); + +}(this, function() { + "use strict"; + + /** + * bcrypt namespace. + * @type {Object.} + */ + var bcrypt = {}; + + /** + * The random implementation to use as a fallback. + * @type {?function(number):!Array.} + * @inner + */ + var randomFallback = null; + + /** + * Generates cryptographically secure random bytes. + * @function + * @param {number} len Bytes length + * @returns {!Array.} Random bytes + * @throws {Error} If no random implementation is available + * @inner + */ + function random(len) { + /* node */ if (typeof module !== 'undefined' && module && module['exports']) + try { + return require("crypto")['randomBytes'](len); + } catch (e) {} + /* WCA */ try { + var a; (self['crypto']||self['msCrypto'])['getRandomValues'](a = new Uint32Array(len)); + return Array.prototype.slice.call(a); + } catch (e) {} + /* fallback */ if (!randomFallback) + throw Error("Neither WebCryptoAPI nor a crypto module is available. Use bcrypt.setRandomFallback to set an alternative"); + return randomFallback(len); + } + + // Test if any secure randomness source is available + var randomAvailable = false; + try { + random(1); + randomAvailable = true; + } catch (e) {} + + // Default fallback, if any + randomFallback = null; + /** + * Sets the pseudo random number generator to use as a fallback if neither node's `crypto` module nor the Web Crypto + * API is available. Please note: It is highly important that the PRNG used is cryptographically secure and that it + * is seeded properly! + * @param {?function(number):!Array.} random Function taking the number of bytes to generate as its + * sole argument, returning the corresponding array of cryptographically secure random byte values. + * @see http://nodejs.org/api/crypto.html + * @see http://www.w3.org/TR/WebCryptoAPI/ + */ + bcrypt.setRandomFallback = function(random) { + randomFallback = random; + }; + + /** + * Synchronously generates a salt. + * @param {number=} rounds Number of rounds to use, defaults to 10 if omitted + * @param {number=} seed_length Not supported. + * @returns {string} Resulting salt + * @throws {Error} If a random fallback is required but not set + * @expose + */ + bcrypt.genSaltSync = function(rounds, seed_length) { + rounds = rounds || GENSALT_DEFAULT_LOG2_ROUNDS; + if (typeof rounds !== 'number') + throw Error("Illegal arguments: "+(typeof rounds)+", "+(typeof seed_length)); + if (rounds < 4) + rounds = 4; + else if (rounds > 31) + rounds = 31; + var salt = []; + salt.push("$2a$"); + if (rounds < 10) + salt.push("0"); + salt.push(rounds.toString()); + salt.push('$'); + salt.push(base64_encode(random(BCRYPT_SALT_LEN), BCRYPT_SALT_LEN)); // May throw + return salt.join(''); + }; + + /** + * Asynchronously generates a salt. + * @param {(number|function(Error, string=))=} rounds Number of rounds to use, defaults to 10 if omitted + * @param {(number|function(Error, string=))=} seed_length Not supported. + * @param {function(Error, string=)=} callback Callback receiving the error, if any, and the resulting salt + * @returns {!Promise} If `callback` has been omitted + * @throws {Error} If `callback` is present but not a function + * @expose + */ + bcrypt.genSalt = function(rounds, seed_length, callback) { + if (typeof seed_length === 'function') + callback = seed_length, + seed_length = undefined; // Not supported. + if (typeof rounds === 'function') + callback = rounds, + rounds = undefined; + if (typeof rounds === 'undefined') + rounds = GENSALT_DEFAULT_LOG2_ROUNDS; + else if (typeof rounds !== 'number') + throw Error("illegal arguments: "+(typeof rounds)); + + function _async(callback) { + nextTick(function() { // Pretty thin, but salting is fast enough + try { + callback(null, bcrypt.genSaltSync(rounds)); + } catch (err) { + callback(err); + } + }); + } + + if (callback) { + if (typeof callback !== 'function') + throw Error("Illegal callback: "+typeof(callback)); + _async(callback); + } else + return new Promise(function(resolve, reject) { + _async(function(err, res) { + if (err) { + reject(err); + return; + } + resolve(res); + }); + }); + }; + + /** + * Synchronously generates a hash for the given string. + * @param {string} s String to hash + * @param {(number|string)=} salt Salt length to generate or salt to use, default to 10 + * @returns {string} Resulting hash + * @expose + */ + bcrypt.hashSync = function(s, salt) { + if (typeof salt === 'undefined') + salt = GENSALT_DEFAULT_LOG2_ROUNDS; + if (typeof salt === 'number') + salt = bcrypt.genSaltSync(salt); + if (typeof s !== 'string' || typeof salt !== 'string') + throw Error("Illegal arguments: "+(typeof s)+', '+(typeof salt)); + return _hash(s, salt); + }; + + /** + * Asynchronously generates a hash for the given string. + * @param {string} s String to hash + * @param {number|string} salt Salt length to generate or salt to use + * @param {function(Error, string=)=} callback Callback receiving the error, if any, and the resulting hash + * @param {function(number)=} progressCallback Callback successively called with the percentage of rounds completed + * (0.0 - 1.0), maximally once per `MAX_EXECUTION_TIME = 100` ms. + * @returns {!Promise} If `callback` has been omitted + * @throws {Error} If `callback` is present but not a function + * @expose + */ + bcrypt.hash = function(s, salt, callback, progressCallback) { + + function _async(callback) { + if (typeof s === 'string' && typeof salt === 'number') + bcrypt.genSalt(salt, function(err, salt) { + _hash(s, salt, callback, progressCallback); + }); + else if (typeof s === 'string' && typeof salt === 'string') + _hash(s, salt, callback, progressCallback); + else + nextTick(callback.bind(this, Error("Illegal arguments: "+(typeof s)+', '+(typeof salt)))); + } + + if (callback) { + if (typeof callback !== 'function') + throw Error("Illegal callback: "+typeof(callback)); + _async(callback); + } else + return new Promise(function(resolve, reject) { + _async(function(err, res) { + if (err) { + reject(err); + return; + } + resolve(res); + }); + }); + }; + + /** + * Compares two strings of the same length in constant time. + * @param {string} known Must be of the correct length + * @param {string} unknown Must be the same length as `known` + * @returns {boolean} + * @inner + */ + function safeStringCompare(known, unknown) { + var right = 0, + wrong = 0; + for (var i=0, k=known.length; i} UTF8 bytes + * @inner + */ + function stringToBytes(str) { + var out = [], + i = 0; + utfx.encodeUTF16toUTF8(function() { + if (i >= str.length) return null; + return str.charCodeAt(i++); + }, function(b) { + out.push(b); + }); + return out; + } + + // A base64 implementation for the bcrypt algorithm. This is partly non-standard. + + /** + * bcrypt's own non-standard base64 dictionary. + * @type {!Array.} + * @const + * @inner + **/ + var BASE64_CODE = "./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(''); + + /** + * @type {!Array.} + * @const + * @inner + **/ + var BASE64_INDEX = [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, + 1, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, -1, -1, -1, -1, + -1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 24, 25, 26, 27, -1, -1, -1, -1, -1, -1, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, -1, -1, -1, -1, -1]; + + /** + * @type {!function(...number):string} + * @inner + */ + var stringFromCharCode = String.fromCharCode; + + /** + * Encodes a byte array to base64 with up to len bytes of input. + * @param {!Array.} b Byte array + * @param {number} len Maximum input length + * @returns {string} + * @inner + */ + function base64_encode(b, len) { + var off = 0, + rs = [], + c1, c2; + if (len <= 0 || len > b.length) + throw Error("Illegal len: "+len); + while (off < len) { + c1 = b[off++] & 0xff; + rs.push(BASE64_CODE[(c1 >> 2) & 0x3f]); + c1 = (c1 & 0x03) << 4; + if (off >= len) { + rs.push(BASE64_CODE[c1 & 0x3f]); + break; + } + c2 = b[off++] & 0xff; + c1 |= (c2 >> 4) & 0x0f; + rs.push(BASE64_CODE[c1 & 0x3f]); + c1 = (c2 & 0x0f) << 2; + if (off >= len) { + rs.push(BASE64_CODE[c1 & 0x3f]); + break; + } + c2 = b[off++] & 0xff; + c1 |= (c2 >> 6) & 0x03; + rs.push(BASE64_CODE[c1 & 0x3f]); + rs.push(BASE64_CODE[c2 & 0x3f]); + } + return rs.join(''); + } + + /** + * Decodes a base64 encoded string to up to len bytes of output. + * @param {string} s String to decode + * @param {number} len Maximum output length + * @returns {!Array.} + * @inner + */ + function base64_decode(s, len) { + var off = 0, + slen = s.length, + olen = 0, + rs = [], + c1, c2, c3, c4, o, code; + if (len <= 0) + throw Error("Illegal len: "+len); + while (off < slen - 1 && olen < len) { + code = s.charCodeAt(off++); + c1 = code < BASE64_INDEX.length ? BASE64_INDEX[code] : -1; + code = s.charCodeAt(off++); + c2 = code < BASE64_INDEX.length ? BASE64_INDEX[code] : -1; + if (c1 == -1 || c2 == -1) + break; + o = (c1 << 2) >>> 0; + o |= (c2 & 0x30) >> 4; + rs.push(stringFromCharCode(o)); + if (++olen >= len || off >= slen) + break; + code = s.charCodeAt(off++); + c3 = code < BASE64_INDEX.length ? BASE64_INDEX[code] : -1; + if (c3 == -1) + break; + o = ((c2 & 0x0f) << 4) >>> 0; + o |= (c3 & 0x3c) >> 2; + rs.push(stringFromCharCode(o)); + if (++olen >= len || off >= slen) + break; + code = s.charCodeAt(off++); + c4 = code < BASE64_INDEX.length ? BASE64_INDEX[code] : -1; + o = ((c3 & 0x03) << 6) >>> 0; + o |= c4; + rs.push(stringFromCharCode(o)); + ++olen; + } + var res = []; + for (off = 0; off + * Released under the Apache License, Version 2.0 + * see: https://github.com/dcodeIO/utfx for details + */ + var utfx = function() { + "use strict"; + + /** + * utfx namespace. + * @inner + * @type {!Object.} + */ + var utfx = {}; + + /** + * Maximum valid code point. + * @type {number} + * @const + */ + utfx.MAX_CODEPOINT = 0x10FFFF; + + /** + * Encodes UTF8 code points to UTF8 bytes. + * @param {(!function():number|null) | number} src Code points source, either as a function returning the next code point + * respectively `null` if there are no more code points left or a single numeric code point. + * @param {!function(number)} dst Bytes destination as a function successively called with the next byte + */ + utfx.encodeUTF8 = function(src, dst) { + var cp = null; + if (typeof src === 'number') + cp = src, + src = function() { return null; }; + while (cp !== null || (cp = src()) !== null) { + if (cp < 0x80) + dst(cp&0x7F); + else if (cp < 0x800) + dst(((cp>>6)&0x1F)|0xC0), + dst((cp&0x3F)|0x80); + else if (cp < 0x10000) + dst(((cp>>12)&0x0F)|0xE0), + dst(((cp>>6)&0x3F)|0x80), + dst((cp&0x3F)|0x80); + else + dst(((cp>>18)&0x07)|0xF0), + dst(((cp>>12)&0x3F)|0x80), + dst(((cp>>6)&0x3F)|0x80), + dst((cp&0x3F)|0x80); + cp = null; + } + }; + + /** + * Decodes UTF8 bytes to UTF8 code points. + * @param {!function():number|null} src Bytes source as a function returning the next byte respectively `null` if there + * are no more bytes left. + * @param {!function(number)} dst Code points destination as a function successively called with each decoded code point. + * @throws {RangeError} If a starting byte is invalid in UTF8 + * @throws {Error} If the last sequence is truncated. Has an array property `bytes` holding the + * remaining bytes. + */ + utfx.decodeUTF8 = function(src, dst) { + var a, b, c, d, fail = function(b) { + b = b.slice(0, b.indexOf(null)); + var err = Error(b.toString()); + err.name = "TruncatedError"; + err['bytes'] = b; + throw err; + }; + while ((a = src()) !== null) { + if ((a&0x80) === 0) + dst(a); + else if ((a&0xE0) === 0xC0) + ((b = src()) === null) && fail([a, b]), + dst(((a&0x1F)<<6) | (b&0x3F)); + else if ((a&0xF0) === 0xE0) + ((b=src()) === null || (c=src()) === null) && fail([a, b, c]), + dst(((a&0x0F)<<12) | ((b&0x3F)<<6) | (c&0x3F)); + else if ((a&0xF8) === 0xF0) + ((b=src()) === null || (c=src()) === null || (d=src()) === null) && fail([a, b, c ,d]), + dst(((a&0x07)<<18) | ((b&0x3F)<<12) | ((c&0x3F)<<6) | (d&0x3F)); + else throw RangeError("Illegal starting byte: "+a); + } + }; + + /** + * Converts UTF16 characters to UTF8 code points. + * @param {!function():number|null} src Characters source as a function returning the next char code respectively + * `null` if there are no more characters left. + * @param {!function(number)} dst Code points destination as a function successively called with each converted code + * point. + */ + utfx.UTF16toUTF8 = function(src, dst) { + var c1, c2 = null; + while (true) { + if ((c1 = c2 !== null ? c2 : src()) === null) + break; + if (c1 >= 0xD800 && c1 <= 0xDFFF) { + if ((c2 = src()) !== null) { + if (c2 >= 0xDC00 && c2 <= 0xDFFF) { + dst((c1-0xD800)*0x400+c2-0xDC00+0x10000); + c2 = null; continue; + } + } + } + dst(c1); + } + if (c2 !== null) dst(c2); + }; + + /** + * Converts UTF8 code points to UTF16 characters. + * @param {(!function():number|null) | number} src Code points source, either as a function returning the next code point + * respectively `null` if there are no more code points left or a single numeric code point. + * @param {!function(number)} dst Characters destination as a function successively called with each converted char code. + * @throws {RangeError} If a code point is out of range + */ + utfx.UTF8toUTF16 = function(src, dst) { + var cp = null; + if (typeof src === 'number') + cp = src, src = function() { return null; }; + while (cp !== null || (cp = src()) !== null) { + if (cp <= 0xFFFF) + dst(cp); + else + cp -= 0x10000, + dst((cp>>10)+0xD800), + dst((cp%0x400)+0xDC00); + cp = null; + } + }; + + /** + * Converts and encodes UTF16 characters to UTF8 bytes. + * @param {!function():number|null} src Characters source as a function returning the next char code respectively `null` + * if there are no more characters left. + * @param {!function(number)} dst Bytes destination as a function successively called with the next byte. + */ + utfx.encodeUTF16toUTF8 = function(src, dst) { + utfx.UTF16toUTF8(src, function(cp) { + utfx.encodeUTF8(cp, dst); + }); + }; + + /** + * Decodes and converts UTF8 bytes to UTF16 characters. + * @param {!function():number|null} src Bytes source as a function returning the next byte respectively `null` if there + * are no more bytes left. + * @param {!function(number)} dst Characters destination as a function successively called with each converted char code. + * @throws {RangeError} If a starting byte is invalid in UTF8 + * @throws {Error} If the last sequence is truncated. Has an array property `bytes` holding the remaining bytes. + */ + utfx.decodeUTF8toUTF16 = function(src, dst) { + utfx.decodeUTF8(src, function(cp) { + utfx.UTF8toUTF16(cp, dst); + }); + }; + + /** + * Calculates the byte length of an UTF8 code point. + * @param {number} cp UTF8 code point + * @returns {number} Byte length + */ + utfx.calculateCodePoint = function(cp) { + return (cp < 0x80) ? 1 : (cp < 0x800) ? 2 : (cp < 0x10000) ? 3 : 4; + }; + + /** + * Calculates the number of UTF8 bytes required to store UTF8 code points. + * @param {(!function():number|null)} src Code points source as a function returning the next code point respectively + * `null` if there are no more code points left. + * @returns {number} The number of UTF8 bytes required + */ + utfx.calculateUTF8 = function(src) { + var cp, l=0; + while ((cp = src()) !== null) + l += utfx.calculateCodePoint(cp); + return l; + }; + + /** + * Calculates the number of UTF8 code points respectively UTF8 bytes required to store UTF16 char codes. + * @param {(!function():number|null)} src Characters source as a function returning the next char code respectively + * `null` if there are no more characters left. + * @returns {!Array.} The number of UTF8 code points at index 0 and the number of UTF8 bytes required at index 1. + */ + utfx.calculateUTF16asUTF8 = function(src) { + var n=0, l=0; + utfx.UTF16toUTF8(src, function(cp) { + ++n; l += utfx.calculateCodePoint(cp); + }); + return [n,l]; + }; + + return utfx; + }(); + + Date.now = Date.now || function() { return +new Date; }; + + /** + * @type {number} + * @const + * @inner + */ + var BCRYPT_SALT_LEN = 16; + + /** + * @type {number} + * @const + * @inner + */ + var GENSALT_DEFAULT_LOG2_ROUNDS = 10; + + /** + * @type {number} + * @const + * @inner + */ + var BLOWFISH_NUM_ROUNDS = 16; + + /** + * @type {number} + * @const + * @inner + */ + var MAX_EXECUTION_TIME = 100; + + /** + * @type {Array.} + * @const + * @inner + */ + var P_ORIG = [ + 0x243f6a88, 0x85a308d3, 0x13198a2e, 0x03707344, 0xa4093822, + 0x299f31d0, 0x082efa98, 0xec4e6c89, 0x452821e6, 0x38d01377, + 0xbe5466cf, 0x34e90c6c, 0xc0ac29b7, 0xc97c50dd, 0x3f84d5b5, + 0xb5470917, 0x9216d5d9, 0x8979fb1b + ]; + + /** + * @type {Array.} + * @const + * @inner + */ + var S_ORIG = [ + 0xd1310ba6, 0x98dfb5ac, 0x2ffd72db, 0xd01adfb7, 0xb8e1afed, + 0x6a267e96, 0xba7c9045, 0xf12c7f99, 0x24a19947, 0xb3916cf7, + 0x0801f2e2, 0x858efc16, 0x636920d8, 0x71574e69, 0xa458fea3, + 0xf4933d7e, 0x0d95748f, 0x728eb658, 0x718bcd58, 0x82154aee, + 0x7b54a41d, 0xc25a59b5, 0x9c30d539, 0x2af26013, 0xc5d1b023, + 0x286085f0, 0xca417918, 0xb8db38ef, 0x8e79dcb0, 0x603a180e, + 0x6c9e0e8b, 0xb01e8a3e, 0xd71577c1, 0xbd314b27, 0x78af2fda, + 0x55605c60, 0xe65525f3, 0xaa55ab94, 0x57489862, 0x63e81440, + 0x55ca396a, 0x2aab10b6, 0xb4cc5c34, 0x1141e8ce, 0xa15486af, + 0x7c72e993, 0xb3ee1411, 0x636fbc2a, 0x2ba9c55d, 0x741831f6, + 0xce5c3e16, 0x9b87931e, 0xafd6ba33, 0x6c24cf5c, 0x7a325381, + 0x28958677, 0x3b8f4898, 0x6b4bb9af, 0xc4bfe81b, 0x66282193, + 0x61d809cc, 0xfb21a991, 0x487cac60, 0x5dec8032, 0xef845d5d, + 0xe98575b1, 0xdc262302, 0xeb651b88, 0x23893e81, 0xd396acc5, + 0x0f6d6ff3, 0x83f44239, 0x2e0b4482, 0xa4842004, 0x69c8f04a, + 0x9e1f9b5e, 0x21c66842, 0xf6e96c9a, 0x670c9c61, 0xabd388f0, + 0x6a51a0d2, 0xd8542f68, 0x960fa728, 0xab5133a3, 0x6eef0b6c, + 0x137a3be4, 0xba3bf050, 0x7efb2a98, 0xa1f1651d, 0x39af0176, + 0x66ca593e, 0x82430e88, 0x8cee8619, 0x456f9fb4, 0x7d84a5c3, + 0x3b8b5ebe, 0xe06f75d8, 0x85c12073, 0x401a449f, 0x56c16aa6, + 0x4ed3aa62, 0x363f7706, 0x1bfedf72, 0x429b023d, 0x37d0d724, + 0xd00a1248, 0xdb0fead3, 0x49f1c09b, 0x075372c9, 0x80991b7b, + 0x25d479d8, 0xf6e8def7, 0xe3fe501a, 0xb6794c3b, 0x976ce0bd, + 0x04c006ba, 0xc1a94fb6, 0x409f60c4, 0x5e5c9ec2, 0x196a2463, + 0x68fb6faf, 0x3e6c53b5, 0x1339b2eb, 0x3b52ec6f, 0x6dfc511f, + 0x9b30952c, 0xcc814544, 0xaf5ebd09, 0xbee3d004, 0xde334afd, + 0x660f2807, 0x192e4bb3, 0xc0cba857, 0x45c8740f, 0xd20b5f39, + 0xb9d3fbdb, 0x5579c0bd, 0x1a60320a, 0xd6a100c6, 0x402c7279, + 0x679f25fe, 0xfb1fa3cc, 0x8ea5e9f8, 0xdb3222f8, 0x3c7516df, + 0xfd616b15, 0x2f501ec8, 0xad0552ab, 0x323db5fa, 0xfd238760, + 0x53317b48, 0x3e00df82, 0x9e5c57bb, 0xca6f8ca0, 0x1a87562e, + 0xdf1769db, 0xd542a8f6, 0x287effc3, 0xac6732c6, 0x8c4f5573, + 0x695b27b0, 0xbbca58c8, 0xe1ffa35d, 0xb8f011a0, 0x10fa3d98, + 0xfd2183b8, 0x4afcb56c, 0x2dd1d35b, 0x9a53e479, 0xb6f84565, + 0xd28e49bc, 0x4bfb9790, 0xe1ddf2da, 0xa4cb7e33, 0x62fb1341, + 0xcee4c6e8, 0xef20cada, 0x36774c01, 0xd07e9efe, 0x2bf11fb4, + 0x95dbda4d, 0xae909198, 0xeaad8e71, 0x6b93d5a0, 0xd08ed1d0, + 0xafc725e0, 0x8e3c5b2f, 0x8e7594b7, 0x8ff6e2fb, 0xf2122b64, + 0x8888b812, 0x900df01c, 0x4fad5ea0, 0x688fc31c, 0xd1cff191, + 0xb3a8c1ad, 0x2f2f2218, 0xbe0e1777, 0xea752dfe, 0x8b021fa1, + 0xe5a0cc0f, 0xb56f74e8, 0x18acf3d6, 0xce89e299, 0xb4a84fe0, + 0xfd13e0b7, 0x7cc43b81, 0xd2ada8d9, 0x165fa266, 0x80957705, + 0x93cc7314, 0x211a1477, 0xe6ad2065, 0x77b5fa86, 0xc75442f5, + 0xfb9d35cf, 0xebcdaf0c, 0x7b3e89a0, 0xd6411bd3, 0xae1e7e49, + 0x00250e2d, 0x2071b35e, 0x226800bb, 0x57b8e0af, 0x2464369b, + 0xf009b91e, 0x5563911d, 0x59dfa6aa, 0x78c14389, 0xd95a537f, + 0x207d5ba2, 0x02e5b9c5, 0x83260376, 0x6295cfa9, 0x11c81968, + 0x4e734a41, 0xb3472dca, 0x7b14a94a, 0x1b510052, 0x9a532915, + 0xd60f573f, 0xbc9bc6e4, 0x2b60a476, 0x81e67400, 0x08ba6fb5, + 0x571be91f, 0xf296ec6b, 0x2a0dd915, 0xb6636521, 0xe7b9f9b6, + 0xff34052e, 0xc5855664, 0x53b02d5d, 0xa99f8fa1, 0x08ba4799, + 0x6e85076a, 0x4b7a70e9, 0xb5b32944, 0xdb75092e, 0xc4192623, + 0xad6ea6b0, 0x49a7df7d, 0x9cee60b8, 0x8fedb266, 0xecaa8c71, + 0x699a17ff, 0x5664526c, 0xc2b19ee1, 0x193602a5, 0x75094c29, + 0xa0591340, 0xe4183a3e, 0x3f54989a, 0x5b429d65, 0x6b8fe4d6, + 0x99f73fd6, 0xa1d29c07, 0xefe830f5, 0x4d2d38e6, 0xf0255dc1, + 0x4cdd2086, 0x8470eb26, 0x6382e9c6, 0x021ecc5e, 0x09686b3f, + 0x3ebaefc9, 0x3c971814, 0x6b6a70a1, 0x687f3584, 0x52a0e286, + 0xb79c5305, 0xaa500737, 0x3e07841c, 0x7fdeae5c, 0x8e7d44ec, + 0x5716f2b8, 0xb03ada37, 0xf0500c0d, 0xf01c1f04, 0x0200b3ff, + 0xae0cf51a, 0x3cb574b2, 0x25837a58, 0xdc0921bd, 0xd19113f9, + 0x7ca92ff6, 0x94324773, 0x22f54701, 0x3ae5e581, 0x37c2dadc, + 0xc8b57634, 0x9af3dda7, 0xa9446146, 0x0fd0030e, 0xecc8c73e, + 0xa4751e41, 0xe238cd99, 0x3bea0e2f, 0x3280bba1, 0x183eb331, + 0x4e548b38, 0x4f6db908, 0x6f420d03, 0xf60a04bf, 0x2cb81290, + 0x24977c79, 0x5679b072, 0xbcaf89af, 0xde9a771f, 0xd9930810, + 0xb38bae12, 0xdccf3f2e, 0x5512721f, 0x2e6b7124, 0x501adde6, + 0x9f84cd87, 0x7a584718, 0x7408da17, 0xbc9f9abc, 0xe94b7d8c, + 0xec7aec3a, 0xdb851dfa, 0x63094366, 0xc464c3d2, 0xef1c1847, + 0x3215d908, 0xdd433b37, 0x24c2ba16, 0x12a14d43, 0x2a65c451, + 0x50940002, 0x133ae4dd, 0x71dff89e, 0x10314e55, 0x81ac77d6, + 0x5f11199b, 0x043556f1, 0xd7a3c76b, 0x3c11183b, 0x5924a509, + 0xf28fe6ed, 0x97f1fbfa, 0x9ebabf2c, 0x1e153c6e, 0x86e34570, + 0xeae96fb1, 0x860e5e0a, 0x5a3e2ab3, 0x771fe71c, 0x4e3d06fa, + 0x2965dcb9, 0x99e71d0f, 0x803e89d6, 0x5266c825, 0x2e4cc978, + 0x9c10b36a, 0xc6150eba, 0x94e2ea78, 0xa5fc3c53, 0x1e0a2df4, + 0xf2f74ea7, 0x361d2b3d, 0x1939260f, 0x19c27960, 0x5223a708, + 0xf71312b6, 0xebadfe6e, 0xeac31f66, 0xe3bc4595, 0xa67bc883, + 0xb17f37d1, 0x018cff28, 0xc332ddef, 0xbe6c5aa5, 0x65582185, + 0x68ab9802, 0xeecea50f, 0xdb2f953b, 0x2aef7dad, 0x5b6e2f84, + 0x1521b628, 0x29076170, 0xecdd4775, 0x619f1510, 0x13cca830, + 0xeb61bd96, 0x0334fe1e, 0xaa0363cf, 0xb5735c90, 0x4c70a239, + 0xd59e9e0b, 0xcbaade14, 0xeecc86bc, 0x60622ca7, 0x9cab5cab, + 0xb2f3846e, 0x648b1eaf, 0x19bdf0ca, 0xa02369b9, 0x655abb50, + 0x40685a32, 0x3c2ab4b3, 0x319ee9d5, 0xc021b8f7, 0x9b540b19, + 0x875fa099, 0x95f7997e, 0x623d7da8, 0xf837889a, 0x97e32d77, + 0x11ed935f, 0x16681281, 0x0e358829, 0xc7e61fd6, 0x96dedfa1, + 0x7858ba99, 0x57f584a5, 0x1b227263, 0x9b83c3ff, 0x1ac24696, + 0xcdb30aeb, 0x532e3054, 0x8fd948e4, 0x6dbc3128, 0x58ebf2ef, + 0x34c6ffea, 0xfe28ed61, 0xee7c3c73, 0x5d4a14d9, 0xe864b7e3, + 0x42105d14, 0x203e13e0, 0x45eee2b6, 0xa3aaabea, 0xdb6c4f15, + 0xfacb4fd0, 0xc742f442, 0xef6abbb5, 0x654f3b1d, 0x41cd2105, + 0xd81e799e, 0x86854dc7, 0xe44b476a, 0x3d816250, 0xcf62a1f2, + 0x5b8d2646, 0xfc8883a0, 0xc1c7b6a3, 0x7f1524c3, 0x69cb7492, + 0x47848a0b, 0x5692b285, 0x095bbf00, 0xad19489d, 0x1462b174, + 0x23820e00, 0x58428d2a, 0x0c55f5ea, 0x1dadf43e, 0x233f7061, + 0x3372f092, 0x8d937e41, 0xd65fecf1, 0x6c223bdb, 0x7cde3759, + 0xcbee7460, 0x4085f2a7, 0xce77326e, 0xa6078084, 0x19f8509e, + 0xe8efd855, 0x61d99735, 0xa969a7aa, 0xc50c06c2, 0x5a04abfc, + 0x800bcadc, 0x9e447a2e, 0xc3453484, 0xfdd56705, 0x0e1e9ec9, + 0xdb73dbd3, 0x105588cd, 0x675fda79, 0xe3674340, 0xc5c43465, + 0x713e38d8, 0x3d28f89e, 0xf16dff20, 0x153e21e7, 0x8fb03d4a, + 0xe6e39f2b, 0xdb83adf7, 0xe93d5a68, 0x948140f7, 0xf64c261c, + 0x94692934, 0x411520f7, 0x7602d4f7, 0xbcf46b2e, 0xd4a20068, + 0xd4082471, 0x3320f46a, 0x43b7d4b7, 0x500061af, 0x1e39f62e, + 0x97244546, 0x14214f74, 0xbf8b8840, 0x4d95fc1d, 0x96b591af, + 0x70f4ddd3, 0x66a02f45, 0xbfbc09ec, 0x03bd9785, 0x7fac6dd0, + 0x31cb8504, 0x96eb27b3, 0x55fd3941, 0xda2547e6, 0xabca0a9a, + 0x28507825, 0x530429f4, 0x0a2c86da, 0xe9b66dfb, 0x68dc1462, + 0xd7486900, 0x680ec0a4, 0x27a18dee, 0x4f3ffea2, 0xe887ad8c, + 0xb58ce006, 0x7af4d6b6, 0xaace1e7c, 0xd3375fec, 0xce78a399, + 0x406b2a42, 0x20fe9e35, 0xd9f385b9, 0xee39d7ab, 0x3b124e8b, + 0x1dc9faf7, 0x4b6d1856, 0x26a36631, 0xeae397b2, 0x3a6efa74, + 0xdd5b4332, 0x6841e7f7, 0xca7820fb, 0xfb0af54e, 0xd8feb397, + 0x454056ac, 0xba489527, 0x55533a3a, 0x20838d87, 0xfe6ba9b7, + 0xd096954b, 0x55a867bc, 0xa1159a58, 0xcca92963, 0x99e1db33, + 0xa62a4a56, 0x3f3125f9, 0x5ef47e1c, 0x9029317c, 0xfdf8e802, + 0x04272f70, 0x80bb155c, 0x05282ce3, 0x95c11548, 0xe4c66d22, + 0x48c1133f, 0xc70f86dc, 0x07f9c9ee, 0x41041f0f, 0x404779a4, + 0x5d886e17, 0x325f51eb, 0xd59bc0d1, 0xf2bcc18f, 0x41113564, + 0x257b7834, 0x602a9c60, 0xdff8e8a3, 0x1f636c1b, 0x0e12b4c2, + 0x02e1329e, 0xaf664fd1, 0xcad18115, 0x6b2395e0, 0x333e92e1, + 0x3b240b62, 0xeebeb922, 0x85b2a20e, 0xe6ba0d99, 0xde720c8c, + 0x2da2f728, 0xd0127845, 0x95b794fd, 0x647d0862, 0xe7ccf5f0, + 0x5449a36f, 0x877d48fa, 0xc39dfd27, 0xf33e8d1e, 0x0a476341, + 0x992eff74, 0x3a6f6eab, 0xf4f8fd37, 0xa812dc60, 0xa1ebddf8, + 0x991be14c, 0xdb6e6b0d, 0xc67b5510, 0x6d672c37, 0x2765d43b, + 0xdcd0e804, 0xf1290dc7, 0xcc00ffa3, 0xb5390f92, 0x690fed0b, + 0x667b9ffb, 0xcedb7d9c, 0xa091cf0b, 0xd9155ea3, 0xbb132f88, + 0x515bad24, 0x7b9479bf, 0x763bd6eb, 0x37392eb3, 0xcc115979, + 0x8026e297, 0xf42e312d, 0x6842ada7, 0xc66a2b3b, 0x12754ccc, + 0x782ef11c, 0x6a124237, 0xb79251e7, 0x06a1bbe6, 0x4bfb6350, + 0x1a6b1018, 0x11caedfa, 0x3d25bdd8, 0xe2e1c3c9, 0x44421659, + 0x0a121386, 0xd90cec6e, 0xd5abea2a, 0x64af674e, 0xda86a85f, + 0xbebfe988, 0x64e4c3fe, 0x9dbc8057, 0xf0f7c086, 0x60787bf8, + 0x6003604d, 0xd1fd8346, 0xf6381fb0, 0x7745ae04, 0xd736fccc, + 0x83426b33, 0xf01eab71, 0xb0804187, 0x3c005e5f, 0x77a057be, + 0xbde8ae24, 0x55464299, 0xbf582e61, 0x4e58f48f, 0xf2ddfda2, + 0xf474ef38, 0x8789bdc2, 0x5366f9c3, 0xc8b38e74, 0xb475f255, + 0x46fcd9b9, 0x7aeb2661, 0x8b1ddf84, 0x846a0e79, 0x915f95e2, + 0x466e598e, 0x20b45770, 0x8cd55591, 0xc902de4c, 0xb90bace1, + 0xbb8205d0, 0x11a86248, 0x7574a99e, 0xb77f19b6, 0xe0a9dc09, + 0x662d09a1, 0xc4324633, 0xe85a1f02, 0x09f0be8c, 0x4a99a025, + 0x1d6efe10, 0x1ab93d1d, 0x0ba5a4df, 0xa186f20f, 0x2868f169, + 0xdcb7da83, 0x573906fe, 0xa1e2ce9b, 0x4fcd7f52, 0x50115e01, + 0xa70683fa, 0xa002b5c4, 0x0de6d027, 0x9af88c27, 0x773f8641, + 0xc3604c06, 0x61a806b5, 0xf0177a28, 0xc0f586e0, 0x006058aa, + 0x30dc7d62, 0x11e69ed7, 0x2338ea63, 0x53c2dd94, 0xc2c21634, + 0xbbcbee56, 0x90bcb6de, 0xebfc7da1, 0xce591d76, 0x6f05e409, + 0x4b7c0188, 0x39720a3d, 0x7c927c24, 0x86e3725f, 0x724d9db9, + 0x1ac15bb4, 0xd39eb8fc, 0xed545578, 0x08fca5b5, 0xd83d7cd3, + 0x4dad0fc4, 0x1e50ef5e, 0xb161e6f8, 0xa28514d9, 0x6c51133c, + 0x6fd5c7e7, 0x56e14ec4, 0x362abfce, 0xddc6c837, 0xd79a3234, + 0x92638212, 0x670efa8e, 0x406000e0, 0x3a39ce37, 0xd3faf5cf, + 0xabc27737, 0x5ac52d1b, 0x5cb0679e, 0x4fa33742, 0xd3822740, + 0x99bc9bbe, 0xd5118e9d, 0xbf0f7315, 0xd62d1c7e, 0xc700c47b, + 0xb78c1b6b, 0x21a19045, 0xb26eb1be, 0x6a366eb4, 0x5748ab2f, + 0xbc946e79, 0xc6a376d2, 0x6549c2c8, 0x530ff8ee, 0x468dde7d, + 0xd5730a1d, 0x4cd04dc6, 0x2939bbdb, 0xa9ba4650, 0xac9526e8, + 0xbe5ee304, 0xa1fad5f0, 0x6a2d519a, 0x63ef8ce2, 0x9a86ee22, + 0xc089c2b8, 0x43242ef6, 0xa51e03aa, 0x9cf2d0a4, 0x83c061ba, + 0x9be96a4d, 0x8fe51550, 0xba645bd6, 0x2826a2f9, 0xa73a3ae1, + 0x4ba99586, 0xef5562e9, 0xc72fefd3, 0xf752f7da, 0x3f046f69, + 0x77fa0a59, 0x80e4a915, 0x87b08601, 0x9b09e6ad, 0x3b3ee593, + 0xe990fd5a, 0x9e34d797, 0x2cf0b7d9, 0x022b8b51, 0x96d5ac3a, + 0x017da67d, 0xd1cf3ed6, 0x7c7d2d28, 0x1f9f25cf, 0xadf2b89b, + 0x5ad6b472, 0x5a88f54c, 0xe029ac71, 0xe019a5e6, 0x47b0acfd, + 0xed93fa9b, 0xe8d3c48d, 0x283b57cc, 0xf8d56629, 0x79132e28, + 0x785f0191, 0xed756055, 0xf7960e44, 0xe3d35e8c, 0x15056dd4, + 0x88f46dba, 0x03a16125, 0x0564f0bd, 0xc3eb9e15, 0x3c9057a2, + 0x97271aec, 0xa93a072a, 0x1b3f6d9b, 0x1e6321f5, 0xf59c66fb, + 0x26dcf319, 0x7533d928, 0xb155fdf5, 0x03563482, 0x8aba3cbb, + 0x28517711, 0xc20ad9f8, 0xabcc5167, 0xccad925f, 0x4de81751, + 0x3830dc8e, 0x379d5862, 0x9320f991, 0xea7a90c2, 0xfb3e7bce, + 0x5121ce64, 0x774fbe32, 0xa8b6e37e, 0xc3293d46, 0x48de5369, + 0x6413e680, 0xa2ae0810, 0xdd6db224, 0x69852dfd, 0x09072166, + 0xb39a460a, 0x6445c0dd, 0x586cdecf, 0x1c20c8ae, 0x5bbef7dd, + 0x1b588d40, 0xccd2017f, 0x6bb4e3bb, 0xdda26a7e, 0x3a59ff45, + 0x3e350a44, 0xbcb4cdd5, 0x72eacea8, 0xfa6484bb, 0x8d6612ae, + 0xbf3c6f47, 0xd29be463, 0x542f5d9e, 0xaec2771b, 0xf64e6370, + 0x740e0d8d, 0xe75b1357, 0xf8721671, 0xaf537d5d, 0x4040cb08, + 0x4eb4e2cc, 0x34d2466a, 0x0115af84, 0xe1b00428, 0x95983a1d, + 0x06b89fb4, 0xce6ea048, 0x6f3f3b82, 0x3520ab82, 0x011a1d4b, + 0x277227f8, 0x611560b1, 0xe7933fdc, 0xbb3a792b, 0x344525bd, + 0xa08839e1, 0x51ce794b, 0x2f32c9b7, 0xa01fbac9, 0xe01cc87e, + 0xbcc7d1f6, 0xcf0111c3, 0xa1e8aac7, 0x1a908749, 0xd44fbd9a, + 0xd0dadecb, 0xd50ada38, 0x0339c32a, 0xc6913667, 0x8df9317c, + 0xe0b12b4f, 0xf79e59b7, 0x43f5bb3a, 0xf2d519ff, 0x27d9459c, + 0xbf97222c, 0x15e6fc2a, 0x0f91fc71, 0x9b941525, 0xfae59361, + 0xceb69ceb, 0xc2a86459, 0x12baa8d1, 0xb6c1075e, 0xe3056a0c, + 0x10d25065, 0xcb03a442, 0xe0ec6e0e, 0x1698db3b, 0x4c98a0be, + 0x3278e964, 0x9f1f9532, 0xe0d392df, 0xd3a0342b, 0x8971f21e, + 0x1b0a7441, 0x4ba3348c, 0xc5be7120, 0xc37632d8, 0xdf359f8d, + 0x9b992f2e, 0xe60b6f47, 0x0fe3f11d, 0xe54cda54, 0x1edad891, + 0xce6279cf, 0xcd3e7e6f, 0x1618b166, 0xfd2c1d05, 0x848fd2c5, + 0xf6fb2299, 0xf523f357, 0xa6327623, 0x93a83531, 0x56cccd02, + 0xacf08162, 0x5a75ebb5, 0x6e163697, 0x88d273cc, 0xde966292, + 0x81b949d0, 0x4c50901b, 0x71c65614, 0xe6c6c7bd, 0x327a140a, + 0x45e1d006, 0xc3f27b9a, 0xc9aa53fd, 0x62a80f00, 0xbb25bfe2, + 0x35bdd2f6, 0x71126905, 0xb2040222, 0xb6cbcf7c, 0xcd769c2b, + 0x53113ec0, 0x1640e3d3, 0x38abbd60, 0x2547adf0, 0xba38209c, + 0xf746ce76, 0x77afa1c5, 0x20756060, 0x85cbfe4e, 0x8ae88dd8, + 0x7aaaf9b0, 0x4cf9aa7e, 0x1948c25c, 0x02fb8a8c, 0x01c36ae4, + 0xd6ebe1f9, 0x90d4f869, 0xa65cdea0, 0x3f09252d, 0xc208e69f, + 0xb74e6132, 0xce77e25b, 0x578fdfe3, 0x3ac372e6 + ]; + + /** + * @type {Array.} + * @const + * @inner + */ + var C_ORIG = [ + 0x4f727068, 0x65616e42, 0x65686f6c, 0x64657253, 0x63727944, + 0x6f756274 + ]; + + /** + * @param {Array.} lr + * @param {number} off + * @param {Array.} P + * @param {Array.} S + * @returns {Array.} + * @inner + */ + function _encipher(lr, off, P, S) { // This is our bottleneck: 1714/1905 ticks / 90% - see profile.txt + var n, + l = lr[off], + r = lr[off + 1]; + + l ^= P[0]; + + /* + for (var i=0, k=BLOWFISH_NUM_ROUNDS-2; i<=k;) + // Feistel substitution on left word + n = S[l >>> 24], + n += S[0x100 | ((l >> 16) & 0xff)], + n ^= S[0x200 | ((l >> 8) & 0xff)], + n += S[0x300 | (l & 0xff)], + r ^= n ^ P[++i], + // Feistel substitution on right word + n = S[r >>> 24], + n += S[0x100 | ((r >> 16) & 0xff)], + n ^= S[0x200 | ((r >> 8) & 0xff)], + n += S[0x300 | (r & 0xff)], + l ^= n ^ P[++i]; + */ + + //The following is an unrolled version of the above loop. + //Iteration 0 + n = S[l >>> 24]; + n += S[0x100 | ((l >> 16) & 0xff)]; + n ^= S[0x200 | ((l >> 8) & 0xff)]; + n += S[0x300 | (l & 0xff)]; + r ^= n ^ P[1]; + n = S[r >>> 24]; + n += S[0x100 | ((r >> 16) & 0xff)]; + n ^= S[0x200 | ((r >> 8) & 0xff)]; + n += S[0x300 | (r & 0xff)]; + l ^= n ^ P[2]; + //Iteration 1 + n = S[l >>> 24]; + n += S[0x100 | ((l >> 16) & 0xff)]; + n ^= S[0x200 | ((l >> 8) & 0xff)]; + n += S[0x300 | (l & 0xff)]; + r ^= n ^ P[3]; + n = S[r >>> 24]; + n += S[0x100 | ((r >> 16) & 0xff)]; + n ^= S[0x200 | ((r >> 8) & 0xff)]; + n += S[0x300 | (r & 0xff)]; + l ^= n ^ P[4]; + //Iteration 2 + n = S[l >>> 24]; + n += S[0x100 | ((l >> 16) & 0xff)]; + n ^= S[0x200 | ((l >> 8) & 0xff)]; + n += S[0x300 | (l & 0xff)]; + r ^= n ^ P[5]; + n = S[r >>> 24]; + n += S[0x100 | ((r >> 16) & 0xff)]; + n ^= S[0x200 | ((r >> 8) & 0xff)]; + n += S[0x300 | (r & 0xff)]; + l ^= n ^ P[6]; + //Iteration 3 + n = S[l >>> 24]; + n += S[0x100 | ((l >> 16) & 0xff)]; + n ^= S[0x200 | ((l >> 8) & 0xff)]; + n += S[0x300 | (l & 0xff)]; + r ^= n ^ P[7]; + n = S[r >>> 24]; + n += S[0x100 | ((r >> 16) & 0xff)]; + n ^= S[0x200 | ((r >> 8) & 0xff)]; + n += S[0x300 | (r & 0xff)]; + l ^= n ^ P[8]; + //Iteration 4 + n = S[l >>> 24]; + n += S[0x100 | ((l >> 16) & 0xff)]; + n ^= S[0x200 | ((l >> 8) & 0xff)]; + n += S[0x300 | (l & 0xff)]; + r ^= n ^ P[9]; + n = S[r >>> 24]; + n += S[0x100 | ((r >> 16) & 0xff)]; + n ^= S[0x200 | ((r >> 8) & 0xff)]; + n += S[0x300 | (r & 0xff)]; + l ^= n ^ P[10]; + //Iteration 5 + n = S[l >>> 24]; + n += S[0x100 | ((l >> 16) & 0xff)]; + n ^= S[0x200 | ((l >> 8) & 0xff)]; + n += S[0x300 | (l & 0xff)]; + r ^= n ^ P[11]; + n = S[r >>> 24]; + n += S[0x100 | ((r >> 16) & 0xff)]; + n ^= S[0x200 | ((r >> 8) & 0xff)]; + n += S[0x300 | (r & 0xff)]; + l ^= n ^ P[12]; + //Iteration 6 + n = S[l >>> 24]; + n += S[0x100 | ((l >> 16) & 0xff)]; + n ^= S[0x200 | ((l >> 8) & 0xff)]; + n += S[0x300 | (l & 0xff)]; + r ^= n ^ P[13]; + n = S[r >>> 24]; + n += S[0x100 | ((r >> 16) & 0xff)]; + n ^= S[0x200 | ((r >> 8) & 0xff)]; + n += S[0x300 | (r & 0xff)]; + l ^= n ^ P[14]; + //Iteration 7 + n = S[l >>> 24]; + n += S[0x100 | ((l >> 16) & 0xff)]; + n ^= S[0x200 | ((l >> 8) & 0xff)]; + n += S[0x300 | (l & 0xff)]; + r ^= n ^ P[15]; + n = S[r >>> 24]; + n += S[0x100 | ((r >> 16) & 0xff)]; + n ^= S[0x200 | ((r >> 8) & 0xff)]; + n += S[0x300 | (r & 0xff)]; + l ^= n ^ P[16]; + + lr[off] = r ^ P[BLOWFISH_NUM_ROUNDS + 1]; + lr[off + 1] = l; + return lr; + } + + /** + * @param {Array.} data + * @param {number} offp + * @returns {{key: number, offp: number}} + * @inner + */ + function _streamtoword(data, offp) { + for (var i = 0, word = 0; i < 4; ++i) + word = (word << 8) | (data[offp] & 0xff), + offp = (offp + 1) % data.length; + return { key: word, offp: offp }; + } + + /** + * @param {Array.} key + * @param {Array.} P + * @param {Array.} S + * @inner + */ + function _key(key, P, S) { + var offset = 0, + lr = [0, 0], + plen = P.length, + slen = S.length, + sw; + for (var i = 0; i < plen; i++) + sw = _streamtoword(key, offset), + offset = sw.offp, + P[i] = P[i] ^ sw.key; + for (i = 0; i < plen; i += 2) + lr = _encipher(lr, 0, P, S), + P[i] = lr[0], + P[i + 1] = lr[1]; + for (i = 0; i < slen; i += 2) + lr = _encipher(lr, 0, P, S), + S[i] = lr[0], + S[i + 1] = lr[1]; + } + + /** + * Expensive key schedule Blowfish. + * @param {Array.} data + * @param {Array.} key + * @param {Array.} P + * @param {Array.} S + * @inner + */ + function _ekskey(data, key, P, S) { + var offp = 0, + lr = [0, 0], + plen = P.length, + slen = S.length, + sw; + for (var i = 0; i < plen; i++) + sw = _streamtoword(key, offp), + offp = sw.offp, + P[i] = P[i] ^ sw.key; + offp = 0; + for (i = 0; i < plen; i += 2) + sw = _streamtoword(data, offp), + offp = sw.offp, + lr[0] ^= sw.key, + sw = _streamtoword(data, offp), + offp = sw.offp, + lr[1] ^= sw.key, + lr = _encipher(lr, 0, P, S), + P[i] = lr[0], + P[i + 1] = lr[1]; + for (i = 0; i < slen; i += 2) + sw = _streamtoword(data, offp), + offp = sw.offp, + lr[0] ^= sw.key, + sw = _streamtoword(data, offp), + offp = sw.offp, + lr[1] ^= sw.key, + lr = _encipher(lr, 0, P, S), + S[i] = lr[0], + S[i + 1] = lr[1]; + } + + /** + * Internaly crypts a string. + * @param {Array.} b Bytes to crypt + * @param {Array.} salt Salt bytes to use + * @param {number} rounds Number of rounds + * @param {function(Error, Array.=)=} callback Callback receiving the error, if any, and the resulting bytes. If + * omitted, the operation will be performed synchronously. + * @param {function(number)=} progressCallback Callback called with the current progress + * @returns {!Array.|undefined} Resulting bytes if callback has been omitted, otherwise `undefined` + * @inner + */ + function _crypt(b, salt, rounds, callback, progressCallback) { + var cdata = C_ORIG.slice(), + clen = cdata.length, + err; + + // Validate + if (rounds < 4 || rounds > 31) { + err = Error("Illegal number of rounds (4-31): "+rounds); + if (callback) { + nextTick(callback.bind(this, err)); + return; + } else + throw err; + } + if (salt.length !== BCRYPT_SALT_LEN) { + err =Error("Illegal salt length: "+salt.length+" != "+BCRYPT_SALT_LEN); + if (callback) { + nextTick(callback.bind(this, err)); + return; + } else + throw err; + } + rounds = (1 << rounds) >>> 0; + + var P, S, i = 0, j; + + //Use typed arrays when available - huge speedup! + if (Int32Array) { + P = new Int32Array(P_ORIG); + S = new Int32Array(S_ORIG); + } else { + P = P_ORIG.slice(); + S = S_ORIG.slice(); + } + + _ekskey(salt, b, P, S); + + /** + * Calcualtes the next round. + * @returns {Array.|undefined} Resulting array if callback has been omitted, otherwise `undefined` + * @inner + */ + function next() { + if (progressCallback) + progressCallback(i / rounds); + if (i < rounds) { + var start = Date.now(); + for (; i < rounds;) { + i = i + 1; + _key(b, P, S); + _key(salt, P, S); + if (Date.now() - start > MAX_EXECUTION_TIME) + break; + } + } else { + for (i = 0; i < 64; i++) + for (j = 0; j < (clen >> 1); j++) + _encipher(cdata, j << 1, P, S); + var ret = []; + for (i = 0; i < clen; i++) + ret.push(((cdata[i] >> 24) & 0xff) >>> 0), + ret.push(((cdata[i] >> 16) & 0xff) >>> 0), + ret.push(((cdata[i] >> 8) & 0xff) >>> 0), + ret.push((cdata[i] & 0xff) >>> 0); + if (callback) { + callback(null, ret); + return; + } else + return ret; + } + if (callback) + nextTick(next); + } + + // Async + if (typeof callback !== 'undefined') { + next(); + + // Sync + } else { + var res; + while (true) + if (typeof(res = next()) !== 'undefined') + return res || []; + } + } + + /** + * Internally hashes a string. + * @param {string} s String to hash + * @param {?string} salt Salt to use, actually never null + * @param {function(Error, string=)=} callback Callback receiving the error, if any, and the resulting hash. If omitted, + * hashing is perormed synchronously. + * @param {function(number)=} progressCallback Callback called with the current progress + * @returns {string|undefined} Resulting hash if callback has been omitted, otherwise `undefined` + * @inner + */ + function _hash(s, salt, callback, progressCallback) { + var err; + if (typeof s !== 'string' || typeof salt !== 'string') { + err = Error("Invalid string / salt: Not a string"); + if (callback) { + nextTick(callback.bind(this, err)); + return; + } + else + throw err; + } + + // Validate the salt + var minor, offset; + if (salt.charAt(0) !== '$' || salt.charAt(1) !== '2') { + err = Error("Invalid salt version: "+salt.substring(0,2)); + if (callback) { + nextTick(callback.bind(this, err)); + return; + } + else + throw err; + } + if (salt.charAt(2) === '$') + minor = String.fromCharCode(0), + offset = 3; + else { + minor = salt.charAt(2); + if ((minor !== 'a' && minor !== 'b' && minor !== 'y') || salt.charAt(3) !== '$') { + err = Error("Invalid salt revision: "+salt.substring(2,4)); + if (callback) { + nextTick(callback.bind(this, err)); + return; + } else + throw err; + } + offset = 4; + } + + // Extract number of rounds + if (salt.charAt(offset + 2) > '$') { + err = Error("Missing salt rounds"); + if (callback) { + nextTick(callback.bind(this, err)); + return; + } else + throw err; + } + var r1 = parseInt(salt.substring(offset, offset + 1), 10) * 10, + r2 = parseInt(salt.substring(offset + 1, offset + 2), 10), + rounds = r1 + r2, + real_salt = salt.substring(offset + 3, offset + 25); + s += minor >= 'a' ? "\x00" : ""; + + var passwordb = stringToBytes(s), + saltb = base64_decode(real_salt, BCRYPT_SALT_LEN); + + /** + * Finishes hashing. + * @param {Array.} bytes Byte array + * @returns {string} + * @inner + */ + function finish(bytes) { + var res = []; + res.push("$2"); + if (minor >= 'a') + res.push(minor); + res.push("$"); + if (rounds < 10) + res.push("0"); + res.push(rounds.toString()); + res.push("$"); + res.push(base64_encode(saltb, saltb.length)); + res.push(base64_encode(bytes, C_ORIG.length * 4 - 1)); + return res.join(''); + } + + // Sync + if (typeof callback == 'undefined') + return finish(_crypt(passwordb, saltb, rounds)); + + // Async + else { + _crypt(passwordb, saltb, rounds, function(err, bytes) { + if (err) + callback(err, null); + else + callback(null, finish(bytes)); + }, progressCallback); + } + } + + /** + * Encodes a byte array to base64 with up to len bytes of input, using the custom bcrypt alphabet. + * @function + * @param {!Array.} b Byte array + * @param {number} len Maximum input length + * @returns {string} + * @expose + */ + bcrypt.encodeBase64 = base64_encode; + + /** + * Decodes a base64 encoded string to up to len bytes of output, using the custom bcrypt alphabet. + * @function + * @param {string} s String to decode + * @param {number} len Maximum output length + * @returns {!Array.} + * @expose + */ + bcrypt.decodeBase64 = base64_decode; + + return bcrypt; +})); diff --git a/server/api/node_modules/bcryptjs/dist/bcrypt.min.js b/server/api/node_modules/bcryptjs/dist/bcrypt.min.js new file mode 100644 index 0000000..0fd2f1e --- /dev/null +++ b/server/api/node_modules/bcryptjs/dist/bcrypt.min.js @@ -0,0 +1,48 @@ +/* + bcrypt.js (c) 2013 Daniel Wirtz + Released under the Apache License, Version 2.0 + see: https://github.com/dcodeIO/bcrypt.js for details +*/ +(function(u,r){"function"===typeof define&&define.amd?define([],r):"function"===typeof require&&"object"===typeof module&&module&&module.exports?module.exports=r():(u.dcodeIO=u.dcodeIO||{}).bcrypt=r()})(this,function(){function u(e){if("undefined"!==typeof module&&module&&module.exports)try{return require("crypto").randomBytes(e)}catch(d){}try{var c;(self.crypto||self.msCrypto).getRandomValues(c=new Uint32Array(e));return Array.prototype.slice.call(c)}catch(b){}if(!w)throw Error("Neither WebCryptoAPI nor a crypto module is available. Use bcrypt.setRandomFallback to set an alternative"); +return w(e)}function r(e,d){for(var c=0,b=0,a=0,f=e.length;ac?!1:0===b}function H(e){var d=[],c=0;I.encodeUTF16toUTF8(function(){return c>=e.length?null:e.charCodeAt(c++)},function(b){d.push(b)});return d}function x(e,d){var c=0,b=[],a,f;if(0>=d||d>e.length)throw Error("Illegal len: "+d);for(;c>2&63]);a=(a&3)<<4;if(c>=d){b.push(s[a&63]);break}f=e[c++]&255;a|=f>>4&15;b.push(s[a&63]);a=(f&15)<<2;if(c>=d){b.push(s[a& +63]);break}f=e[c++]&255;a|=f>>6&3;b.push(s[a&63]);b.push(s[f&63])}return b.join("")}function B(e,d){var c=0,b=e.length,a=0,f=[],g,m,h;if(0>=d)throw Error("Illegal len: "+d);for(;c>>0;h|=(m&48)>>4;f.push(z(h));if(++a>=d||c>=b)break;h=e.charCodeAt(c++);g=h>>0;h|=(g&60)>>2;f.push(z(h));if(++a>=d||c>=b)break;h=e.charCodeAt(c++);m=h>>0;h|=m;f.push(z(h));++a}b=[];for(c=0;c>>24];a+=b[256|f>>16&255];a^=b[512|f>>8&255];a+=b[768|f&255];g=g^a^c[1];a=b[g>>>24];a+=b[256|g>>16&255];a^=b[512|g>>8&255];a+=b[768|g&255];f=f^a^c[2];a=b[f>>>24];a+=b[256|f>>16&255];a^=b[512|f>>8&255];a+=b[768|f&255];g=g^a^c[3];a=b[g>>>24];a+=b[256|g>>16&255];a^=b[512|g>>8&255];a+=b[768|g&255];f=f^a^c[4];a=b[f>>>24];a+=b[256|f>>16&255];a^=b[512| +f>>8&255];a+=b[768|f&255];g=g^a^c[5];a=b[g>>>24];a+=b[256|g>>16&255];a^=b[512|g>>8&255];a+=b[768|g&255];f=f^a^c[6];a=b[f>>>24];a+=b[256|f>>16&255];a^=b[512|f>>8&255];a+=b[768|f&255];g=g^a^c[7];a=b[g>>>24];a+=b[256|g>>16&255];a^=b[512|g>>8&255];a+=b[768|g&255];f=f^a^c[8];a=b[f>>>24];a+=b[256|f>>16&255];a^=b[512|f>>8&255];a+=b[768|f&255];g=g^a^c[9];a=b[g>>>24];a+=b[256|g>>16&255];a^=b[512|g>>8&255];a+=b[768|g&255];f=f^a^c[10];a=b[f>>>24];a+=b[256|f>>16&255];a^=b[512|f>>8&255];a+=b[768|f&255];g=g^a^ +c[11];a=b[g>>>24];a+=b[256|g>>16&255];a^=b[512|g>>8&255];a+=b[768|g&255];f=f^a^c[12];a=b[f>>>24];a+=b[256|f>>16&255];a^=b[512|f>>8&255];a+=b[768|f&255];g=g^a^c[13];a=b[g>>>24];a+=b[256|g>>16&255];a^=b[512|g>>8&255];a+=b[768|g&255];f=f^a^c[14];a=b[f>>>24];a+=b[256|f>>16&255];a^=b[512|f>>8&255];a+=b[768|f&255];g=g^a^c[15];a=b[g>>>24];a+=b[256|g>>16&255];a^=b[512|g>>8&255];a+=b[768|g&255];f=f^a^c[16];e[d]=g^c[17];e[d+1]=f;return e}function t(e,d){for(var c=0,b=0;4>c;++c)b=b<<8|e[d]&255,d=(d+1)%e.length; +return{key:b,offp:d}}function C(e,d,c){for(var b=0,a=[0,0],f=d.length,g=c.length,m,h=0;hn;n++)for(y=0;y>1;y++)v(g,y<<1,l,k);h=[];for(n=0;n>24&255)>>>0),h.push((g[n]>>16&255)>>>0),h.push((g[n]>>8&255)>>>0),h.push((g[n]&255)>>>0);if(b){b(null,h);return}return h}b&&p(f)}var g=E.slice(),m=g.length,h;if(4>c||31>>0;var l,k,n=0,y;Int32Array?(l=new Int32Array(F),k=new Int32Array(G)):(l=F.slice(),k=G.slice());J(d,e,l,k);if("undefined"!==typeof b)f();else for(;;)if("undefined"!==typeof(h=f()))return h||[]}function A(e,d,c,b){function a(a){var b=[];b.push("$2");"a"<=f&&b.push(f);b.push("$");10>l&&b.push("0");b.push(l.toString());b.push("$");b.push(x(k,k.length));b.push(x(a,4* +E.length-1));return b.join("")}if("string"!==typeof e||"string"!==typeof d){b=Error("Invalid string / salt: Not a string");if(c){p(c.bind(this,b));return}throw b;}var f,g;if("$"!==d.charAt(0)||"2"!==d.charAt(1)){b=Error("Invalid salt version: "+d.substring(0,2));if(c){p(c.bind(this,b));return}throw b;}if("$"===d.charAt(2))f=String.fromCharCode(0),g=3;else{f=d.charAt(2);if("a"!==f&&"b"!==f&&"y"!==f||"$"!==d.charAt(3)){b=Error("Invalid salt revision: "+d.substring(2,4));if(c){p(c.bind(this,b));return}throw b; +}g=4}if("$"e?e=4:31e&&c.push("0");c.push(e.toString());c.push("$");c.push(x(u(16),16));return c.join("")};k.genSalt=function(e,d,c){function b(a){p(function(){try{a(null,k.genSaltSync(e))}catch(b){a(b)}})}"function"===typeof d&&(c=d,d=void 0);"function"===typeof e&&(c=e,e=void 0);if("undefined"===typeof e)e=10;else if("number"!==typeof e)throw Error("illegal arguments: "+typeof e);if(c){if("function"!==typeof c)throw Error("Illegal callback: "+ +typeof c);b(c)}else return new Promise(function(a,c){b(function(b,d){b?c(b):a(d)})})};k.hashSync=function(e,d){"undefined"===typeof d&&(d=10);"number"===typeof d&&(d=k.genSaltSync(d));if("string"!==typeof e||"string"!==typeof d)throw Error("Illegal arguments: "+typeof e+", "+typeof d);return A(e,d)};k.hash=function(e,d,c,b){function a(a){"string"===typeof e&&"number"===typeof d?k.genSalt(d,function(c,d){A(e,d,a,b)}):"string"===typeof e&&"string"===typeof d?A(e,d,a,b):p(a.bind(this,Error("Illegal arguments: "+ +typeof e+", "+typeof d)))}if(c){if("function"!==typeof c)throw Error("Illegal callback: "+typeof c);a(c)}else return new Promise(function(b,c){a(function(a,d){a?c(a):b(d)})})};k.compareSync=function(e,d){if("string"!==typeof e||"string"!==typeof d)throw Error("Illegal arguments: "+typeof e+", "+typeof d);return 60!==d.length?!1:r(k.hashSync(e,d.substr(0,d.length-31)),d)};k.compare=function(e,d,c,b){function a(a){"string"!==typeof e||"string"!==typeof d?p(a.bind(this,Error("Illegal arguments: "+typeof e+ +", "+typeof d))):60!==d.length?p(a.bind(this,null,!1)):k.hash(e,d.substr(0,29),function(b,c){b?a(b):a(null,r(c,d))},b)}if(c){if("function"!==typeof c)throw Error("Illegal callback: "+typeof c);a(c)}else return new Promise(function(b,c){a(function(a,d){a?c(a):b(d)})})};k.getRounds=function(e){if("string"!==typeof e)throw Error("Illegal arguments: "+typeof e);return parseInt(e.split("$")[2],10)};k.getSalt=function(e){if("string"!==typeof e)throw Error("Illegal arguments: "+typeof e);if(60!==e.length)throw Error("Illegal hash length: "+ +e.length+" != 60");return e.substring(0,29)};var p="undefined"!==typeof process&&process&&"function"===typeof process.nextTick?"function"===typeof setImmediate?setImmediate:process.nextTick:setTimeout,s="./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),q=[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,54,55,56,57,58,59,60,61,62,63,-1,-1,-1,-1,-1,-1,-1,2,3,4,5,6,7,8,9,10,11,12, +13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,-1,-1,-1,-1,-1,-1,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,-1,-1,-1,-1,-1],z=String.fromCharCode,I=function(){var e={MAX_CODEPOINT:1114111,encodeUTF8:function(d,c){var b=null;"number"===typeof d&&(b=d,d=function(){return null});for(;null!==b||null!==(b=d());)128>b?c(b&127):(2048>b?c(b>>6&31|192):(65536>b?c(b>>12&15|224):(c(b>>18&7|240),c(b>>12&63|128)),c(b>>6&63|128)),c(b&63|128)),b=null},decodeUTF8:function(d,c){for(var b, +a,f,e,k=function(a){a=a.slice(0,a.indexOf(null));var b=Error(a.toString());b.name="TruncatedError";b.bytes=a;throw b;};null!==(b=d());)if(0===(b&128))c(b);else if(192===(b&224))null===(a=d())&&k([b,a]),c((b&31)<<6|a&63);else if(224===(b&240))null!==(a=d())&&null!==(f=d())||k([b,a,f]),c((b&15)<<12|(a&63)<<6|f&63);else if(240===(b&248))null!==(a=d())&&null!==(f=d())&&null!==(e=d())||k([b,a,f,e]),c((b&7)<<18|(a&63)<<12|(f&63)<<6|e&63);else throw RangeError("Illegal starting byte: "+b);},UTF16toUTF8:function(d, +c){for(var b,a=null;null!==(b=null!==a?a:d());)55296<=b&&57343>=b&&null!==(a=d())&&56320<=a&&57343>=a?(c(1024*(b-55296)+a-56320+65536),a=null):c(b);null!==a&&c(a)},UTF8toUTF16:function(d,c){var b=null;"number"===typeof d&&(b=d,d=function(){return null});for(;null!==b||null!==(b=d());)65535>=b?c(b):(b-=65536,c((b>>10)+55296),c(b%1024+56320)),b=null},encodeUTF16toUTF8:function(d,c){e.UTF16toUTF8(d,function(b){e.encodeUTF8(b,c)})},decodeUTF8toUTF16:function(d,c){e.decodeUTF8(d,function(b){e.UTF8toUTF16(b, +c)})},calculateCodePoint:function(d){return 128>d?1:2048>d?2:65536>d?3:4},calculateUTF8:function(d){for(var c,b=0;null!==(c=d());)b+=e.calculateCodePoint(c);return b},calculateUTF16asUTF8:function(d){var c=0,b=0;e.UTF16toUTF8(d,function(a){++c;b+=e.calculateCodePoint(a)});return[c,b]}};return e}();Date.now=Date.now||function(){return+new Date};var F=[608135816,2242054355,320440878,57701188,2752067618,698298832,137296536,3964562569,1160258022,953160567,3193202383,887688300,3232508343,3380367581,1065670069, +3041331479,2450970073,2306472731],G=[3509652390,2564797868,805139163,3491422135,3101798381,1780907670,3128725573,4046225305,614570311,3012652279,134345442,2240740374,1667834072,1901547113,2757295779,4103290238,227898511,1921955416,1904987480,2182433518,2069144605,3260701109,2620446009,720527379,3318853667,677414384,3393288472,3101374703,2390351024,1614419982,1822297739,2954791486,3608508353,3174124327,2024746970,1432378464,3864339955,2857741204,1464375394,1676153920,1439316330,715854006,3033291828, +289532110,2706671279,2087905683,3018724369,1668267050,732546397,1947742710,3462151702,2609353502,2950085171,1814351708,2050118529,680887927,999245976,1800124847,3300911131,1713906067,1641548236,4213287313,1216130144,1575780402,4018429277,3917837745,3693486850,3949271944,596196993,3549867205,258830323,2213823033,772490370,2760122372,1774776394,2652871518,566650946,4142492826,1728879713,2882767088,1783734482,3629395816,2517608232,2874225571,1861159788,326777828,3124490320,2130389656,2716951837,967770486, +1724537150,2185432712,2364442137,1164943284,2105845187,998989502,3765401048,2244026483,1075463327,1455516326,1322494562,910128902,469688178,1117454909,936433444,3490320968,3675253459,1240580251,122909385,2157517691,634681816,4142456567,3825094682,3061402683,2540495037,79693498,3249098678,1084186820,1583128258,426386531,1761308591,1047286709,322548459,995290223,1845252383,2603652396,3431023940,2942221577,3202600964,3727903485,1712269319,422464435,3234572375,1170764815,3523960633,3117677531,1434042557, +442511882,3600875718,1076654713,1738483198,4213154764,2393238008,3677496056,1014306527,4251020053,793779912,2902807211,842905082,4246964064,1395751752,1040244610,2656851899,3396308128,445077038,3742853595,3577915638,679411651,2892444358,2354009459,1767581616,3150600392,3791627101,3102740896,284835224,4246832056,1258075500,768725851,2589189241,3069724005,3532540348,1274779536,3789419226,2764799539,1660621633,3471099624,4011903706,913787905,3497959166,737222580,2514213453,2928710040,3937242737,1804850592, +3499020752,2949064160,2386320175,2390070455,2415321851,4061277028,2290661394,2416832540,1336762016,1754252060,3520065937,3014181293,791618072,3188594551,3933548030,2332172193,3852520463,3043980520,413987798,3465142937,3030929376,4245938359,2093235073,3534596313,375366246,2157278981,2479649556,555357303,3870105701,2008414854,3344188149,4221384143,3956125452,2067696032,3594591187,2921233993,2428461,544322398,577241275,1471733935,610547355,4027169054,1432588573,1507829418,2025931657,3646575487,545086370, +48609733,2200306550,1653985193,298326376,1316178497,3007786442,2064951626,458293330,2589141269,3591329599,3164325604,727753846,2179363840,146436021,1461446943,4069977195,705550613,3059967265,3887724982,4281599278,3313849956,1404054877,2845806497,146425753,1854211946,1266315497,3048417604,3681880366,3289982499,290971E4,1235738493,2632868024,2414719590,3970600049,1771706367,1449415276,3266420449,422970021,1963543593,2690192192,3826793022,1062508698,1531092325,1804592342,2583117782,2714934279,4024971509, +1294809318,4028980673,1289560198,2221992742,1669523910,35572830,157838143,1052438473,1016535060,1802137761,1753167236,1386275462,3080475397,2857371447,1040679964,2145300060,2390574316,1461121720,2956646967,4031777805,4028374788,33600511,2920084762,1018524850,629373528,3691585981,3515945977,2091462646,2486323059,586499841,988145025,935516892,3367335476,2599673255,2839830854,265290510,3972581182,2759138881,3795373465,1005194799,847297441,406762289,1314163512,1332590856,1866599683,4127851711,750260880, +613907577,1450815602,3165620655,3734664991,3650291728,3012275730,3704569646,1427272223,778793252,1343938022,2676280711,2052605720,1946737175,3164576444,3914038668,3967478842,3682934266,1661551462,3294938066,4011595847,840292616,3712170807,616741398,312560963,711312465,1351876610,322626781,1910503582,271666773,2175563734,1594956187,70604529,3617834859,1007753275,1495573769,4069517037,2549218298,2663038764,504708206,2263041392,3941167025,2249088522,1514023603,1998579484,1312622330,694541497,2582060303, +2151582166,1382467621,776784248,2618340202,3323268794,2497899128,2784771155,503983604,4076293799,907881277,423175695,432175456,1378068232,4145222326,3954048622,3938656102,3820766613,2793130115,2977904593,26017576,3274890735,3194772133,1700274565,1756076034,4006520079,3677328699,720338349,1533947780,354530856,688349552,3973924725,1637815568,332179504,3949051286,53804574,2852348879,3044236432,1282449977,3583942155,3416972820,4006381244,1617046695,2628476075,3002303598,1686838959,431878346,2686675385, +1700445008,1080580658,1009431731,832498133,3223435511,2605976345,2271191193,2516031870,1648197032,4164389018,2548247927,300782431,375919233,238389289,3353747414,2531188641,2019080857,1475708069,455242339,2609103871,448939670,3451063019,1395535956,2413381860,1841049896,1491858159,885456874,4264095073,4001119347,1565136089,3898914787,1108368660,540939232,1173283510,2745871338,3681308437,4207628240,3343053890,4016749493,1699691293,1103962373,3625875870,2256883143,3830138730,1031889488,3479347698,1535977030, +4236805024,3251091107,2132092099,1774941330,1199868427,1452454533,157007616,2904115357,342012276,595725824,1480756522,206960106,497939518,591360097,863170706,2375253569,3596610801,1814182875,2094937945,3421402208,1082520231,3463918190,2785509508,435703966,3908032597,1641649973,2842273706,3305899714,1510255612,2148256476,2655287854,3276092548,4258621189,236887753,3681803219,274041037,1734335097,3815195456,3317970021,1899903192,1026095262,4050517792,356393447,2410691914,3873677099,3682840055,3913112168, +2491498743,4132185628,2489919796,1091903735,1979897079,3170134830,3567386728,3557303409,857797738,1136121015,1342202287,507115054,2535736646,337727348,3213592640,1301675037,2528481711,1895095763,1721773893,3216771564,62756741,2142006736,835421444,2531993523,1442658625,3659876326,2882144922,676362277,1392781812,170690266,3921047035,1759253602,3611846912,1745797284,664899054,1329594018,3901205900,3045908486,2062866102,2865634940,3543621612,3464012697,1080764994,553557557,3656615353,3996768171,991055499, +499776247,1265440854,648242737,3940784050,980351604,3713745714,1749149687,3396870395,4211799374,3640570775,1161844396,3125318951,1431517754,545492359,4268468663,3499529547,1437099964,2702547544,3433638243,2581715763,2787789398,1060185593,1593081372,2418618748,4260947970,69676912,2159744348,86519011,2512459080,3838209314,1220612927,3339683548,133810670,1090789135,1078426020,1569222167,845107691,3583754449,4072456591,1091646820,628848692,1613405280,3757631651,526609435,236106946,48312990,2942717905, +3402727701,1797494240,859738849,992217954,4005476642,2243076622,3870952857,3732016268,765654824,3490871365,2511836413,1685915746,3888969200,1414112111,2273134842,3281911079,4080962846,172450625,2569994100,980381355,4109958455,2819808352,2716589560,2568741196,3681446669,3329971472,1835478071,660984891,3704678404,4045999559,3422617507,3040415634,1762651403,1719377915,3470491036,2693910283,3642056355,3138596744,1364962596,2073328063,1983633131,926494387,3423689081,2150032023,4096667949,1749200295,3328846651, +309677260,2016342300,1779581495,3079819751,111262694,1274766160,443224088,298511866,1025883608,3806446537,1145181785,168956806,3641502830,3584813610,1689216846,3666258015,3200248200,1692713982,2646376535,4042768518,1618508792,1610833997,3523052358,4130873264,2001055236,3610705100,2202168115,4028541809,2961195399,1006657119,2006996926,3186142756,1430667929,3210227297,1314452623,4074634658,4101304120,2273951170,1399257539,3367210612,3027628629,1190975929,2062231137,2333990788,2221543033,2438960610, +1181637006,548689776,2362791313,3372408396,3104550113,3145860560,296247880,1970579870,3078560182,3769228297,1714227617,3291629107,3898220290,166772364,1251581989,493813264,448347421,195405023,2709975567,677966185,3703036547,1463355134,2715995803,1338867538,1343315457,2802222074,2684532164,233230375,2599980071,2000651841,3277868038,1638401717,4028070440,3237316320,6314154,819756386,300326615,590932579,1405279636,3267499572,3150704214,2428286686,3959192993,3461946742,1862657033,1266418056,963775037, +2089974820,2263052895,1917689273,448879540,3550394620,3981727096,150775221,3627908307,1303187396,508620638,2975983352,2726630617,1817252668,1876281319,1457606340,908771278,3720792119,3617206836,2455994898,1729034894,1080033504,976866871,3556439503,2881648439,1522871579,1555064734,1336096578,3548522304,2579274686,3574697629,3205460757,3593280638,3338716283,3079412587,564236357,2993598910,1781952180,1464380207,3163844217,3332601554,1699332808,1393555694,1183702653,3581086237,1288719814,691649499,2847557200, +2895455976,3193889540,2717570544,1781354906,1676643554,2592534050,3230253752,1126444790,2770207658,2633158820,2210423226,2615765581,2414155088,3127139286,673620729,2805611233,1269405062,4015350505,3341807571,4149409754,1057255273,2012875353,2162469141,2276492801,2601117357,993977747,3918593370,2654263191,753973209,36408145,2530585658,25011837,3520020182,2088578344,530523599,2918365339,1524020338,1518925132,3760827505,3759777254,1202760957,3985898139,3906192525,674977740,4174734889,2031300136,2019492241, +3983892565,4153806404,3822280332,352677332,2297720250,60907813,90501309,3286998549,1016092578,2535922412,2839152426,457141659,509813237,4120667899,652014361,1966332200,2975202805,55981186,2327461051,676427537,3255491064,2882294119,3433927263,1307055953,942726286,933058658,2468411793,3933900994,4215176142,1361170020,2001714738,2830558078,3274259782,1222529897,1679025792,2729314320,3714953764,1770335741,151462246,3013232138,1682292957,1483529935,471910574,1539241949,458788160,3436315007,1807016891, +3718408830,978976581,1043663428,3165965781,1927990952,4200891579,2372276910,3208408903,3533431907,1412390302,2931980059,4132332400,1947078029,3881505623,4168226417,2941484381,1077988104,1320477388,886195818,18198404,3786409E3,2509781533,112762804,3463356488,1866414978,891333506,18488651,661792760,1628790961,3885187036,3141171499,876946877,2693282273,1372485963,791857591,2686433993,3759982718,3167212022,3472953795,2716379847,445679433,3561995674,3504004811,3574258232,54117162,3331405415,2381918588, +3769707343,4154350007,1140177722,4074052095,668550556,3214352940,367459370,261225585,2610173221,4209349473,3468074219,3265815641,314222801,3066103646,3808782860,282218597,3406013506,3773591054,379116347,1285071038,846784868,2669647154,3771962079,3550491691,2305946142,453669953,1268987020,3317592352,3279303384,3744833421,2610507566,3859509063,266596637,3847019092,517658769,3462560207,3443424879,370717030,4247526661,2224018117,4143653529,4112773975,2788324899,2477274417,1456262402,2901442914,1517677493, +1846949527,2295493580,3734397586,2176403920,1280348187,1908823572,3871786941,846861322,1172426758,3287448474,3383383037,1655181056,3139813346,901632758,1897031941,2986607138,3066810236,3447102507,1393639104,373351379,950779232,625454576,3124240540,4148612726,2007998917,544563296,2244738638,2330496472,2058025392,1291430526,424198748,50039436,29584100,3605783033,2429876329,2791104160,1057563949,3255363231,3075367218,3463963227,1469046755,985887462],E=[1332899944,1700884034,1701343084,1684370003,1668446532, +1869963892];k.encodeBase64=x;k.decodeBase64=B;return k}); diff --git a/server/api/node_modules/bcryptjs/dist/bcrypt.min.js.gz b/server/api/node_modules/bcryptjs/dist/bcrypt.min.js.gz new file mode 100644 index 0000000..6bde4bd Binary files /dev/null and b/server/api/node_modules/bcryptjs/dist/bcrypt.min.js.gz differ diff --git a/server/api/node_modules/bcryptjs/dist/bcrypt.min.map b/server/api/node_modules/bcryptjs/dist/bcrypt.min.map new file mode 100644 index 0000000..35d0f83 --- /dev/null +++ b/server/api/node_modules/bcryptjs/dist/bcrypt.min.map @@ -0,0 +1,8 @@ +{ +"version":3, +"file":"", +"lineCount":48, +"mappings":"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", +"sources":["dist/bcrypt.js"], +"names":["global","factory","define","require","module","random","len","e","a","self","Uint32Array","Array","prototype","slice","call","randomFallback","Error","safeStringCompare","known","unknown","right","wrong","i","k","length","charCodeAt","stringToBytes","str","out","utfx","encodeUTF16toUTF8","b","push","base64_encode","off","rs","c1","c2","BASE64_CODE","join","base64_decode","s","slen","olen","o","code","BASE64_INDEX","stringFromCharCode","c3","c4","res","_encipher","lr","P","S","n","l","r","_streamtoword","data","offp","word","key","_key","offset","plen","sw","_ekskey","_crypt","salt","rounds","callback","progressCallback","next","start","Date","now","MAX_EXECUTION_TIME","j","clen","cdata","ret","nextTick","C_ORIG","err","bind","BCRYPT_SALT_LEN","Int32Array","P_ORIG","S_ORIG","_hash","finish","bytes","minor","toString","saltb","charAt","substring","String","fromCharCode","r1","parseInt","r2","real_salt","passwordb","bcrypt","setRandomFallback","bcrypt.setRandomFallback","genSaltSync","bcrypt.genSaltSync","seed_length","GENSALT_DEFAULT_LOG2_ROUNDS","genSalt","bcrypt.genSalt","_async","undefined","Promise","resolve","reject","hashSync","bcrypt.hashSync","hash","bcrypt.hash","compareSync","bcrypt.compareSync","substr","compare","bcrypt.compare","comp","getRounds","bcrypt.getRounds","split","getSalt","bcrypt.getSalt","process","setImmediate","setTimeout","utfx.encodeUTF8","src","dst","cp","utfx.decodeUTF8","c","d","fail","indexOf","name","RangeError","utfx.UTF16toUTF8","utfx.UTF8toUTF16","utfx.encodeUTF16toUTF8","UTF16toUTF8","encodeUTF8","utfx.decodeUTF8toUTF16","decodeUTF8","UTF8toUTF16","utfx.calculateCodePoint","utfx.calculateUTF8","calculateCodePoint","utfx.calculateUTF16asUTF8","encodeBase64","decodeBase64"] +} diff --git a/server/api/node_modules/bcryptjs/externs/bcrypt.js b/server/api/node_modules/bcryptjs/externs/bcrypt.js new file mode 100644 index 0000000..c458f9d --- /dev/null +++ b/server/api/node_modules/bcryptjs/externs/bcrypt.js @@ -0,0 +1,91 @@ +/* + * Copyright 2012 The Closure Compiler Authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @fileoverview Definitions for bcrypt.js 2. + * @externs + * @author Daniel Wirtz + */ + +/** + * @type {Object.} + */ +var bcrypt = {}; + +/** + * @param {?function(number):!Array.} random + */ +bcrypt.setRandomFallback = function(random) {}; + +/** + * @param {number=} rounds + * @param {number=} seed_length + * @returns {string} + */ +bcrypt.genSaltSync = function(rounds, seed_length) {}; + +/** + * @param {(number|function(Error, ?string))=} rounds + * @param {(number|function(Error, ?string))=} seed_length + * @param {function(Error, string=)=} callback + */ +bcrypt.genSalt = function(rounds, seed_length, callback) {}; + +/** + * @param {string} s + * @param {(number|string)=} salt + * @returns {?string} + */ +bcrypt.hashSync = function(s, salt) {}; + +/** + * @param {string} s + * @param {number|string} salt + * @param {function(Error, string=)} callback + * @expose + */ +bcrypt.hash = function(s, salt, callback) {}; + +/** + * @param {string} s + * @param {string} hash + * @returns {boolean} + * @throws {Error} + */ +bcrypt.compareSync = function(s, hash) {}; + +/** + * @param {string} s + * @param {string} hash + * @param {function(Error, boolean)} callback + * @throws {Error} + */ +bcrypt.compare = function(s, hash, callback) {}; + +/** + * @param {string} hash + * @returns {number} + * @throws {Error} + */ +bcrypt.getRounds = function(hash) {}; + +/** + * @param {string} hash + * @returns {string} + * @throws {Error} + * @expose + */ +bcrypt.getSalt = function(hash) {}; diff --git a/server/api/node_modules/bcryptjs/externs/minimal-env.js b/server/api/node_modules/bcryptjs/externs/minimal-env.js new file mode 100644 index 0000000..0db9d4c --- /dev/null +++ b/server/api/node_modules/bcryptjs/externs/minimal-env.js @@ -0,0 +1,98 @@ +/** + * @fileoverview Minimal environment for bcrypt.js. + * @externs + */ + +/** + * @param {string} moduleName + * returns {*} + */ +function require(moduleName) {} + +/** + * @constructor + * @private + */ +var Module = function() {}; + +/** + * @type {*} + */ +Module.prototype.exports; + +/** + * @type {Module} + */ +var module; + +/** + * @type {string} + */ +var __dirname; + +/** + * @type {Object.} + */ +var process = {}; + +/** + * @param {function()} func + */ +process.nextTick = function(func) {}; + +/** + * @param {string} s + * @constructor + * @extends Array + */ +var Buffer = function(s) {}; + +/** + BEGIN_NODE_INCLUDE + var crypto = require('crypto'); + END_NODE_INCLUDE + */ + +/** + * @type {Object.} + */ +var crypto = {}; + +/** + * @param {number} n + * @returns {Array.} + */ +crypto.randomBytes = function(n) {}; + +/** + * @type {Object.} + */ +window.crypto = {}; + +/** + * @param {Uint8Array|Int8Array|Uint16Array|Int16Array|Uint32Array|Int32Array} array + */ +window.crypto.getRandomValues = function(array) {}; + +/** + * @param {string} name + * @param {function(...[*]):*} constructor + */ +var define = function(name, constructor) {}; + +/** + * @type {boolean} + */ +define.amd; + +/** + * @param {...*} var_args + * @returns {string} + */ +String.fromCodePoint = function(var_args) {}; + +/** + * @param {number} offset + * @returns {number} + */ +String.prototype.codePointAt = function(offset) {}; diff --git a/server/api/node_modules/bcryptjs/index.js b/server/api/node_modules/bcryptjs/index.js new file mode 100644 index 0000000..f11b4e7 --- /dev/null +++ b/server/api/node_modules/bcryptjs/index.js @@ -0,0 +1,29 @@ +/* + Copyright (c) 2012 Nevins Bartolomeo + Copyright (c) 2012 Shane Girish + Copyright (c) 2013 Daniel Wirtz + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + 3. The name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +module.exports = require("./dist/bcrypt.js"); diff --git a/server/api/node_modules/bcryptjs/package.json b/server/api/node_modules/bcryptjs/package.json new file mode 100644 index 0000000..97be5df --- /dev/null +++ b/server/api/node_modules/bcryptjs/package.json @@ -0,0 +1,47 @@ +{ + "name": "bcryptjs", + "description": "Optimized bcrypt in plain JavaScript with zero dependencies. Compatible to 'bcrypt'.", + "version": "2.4.3", + "author": "Daniel Wirtz ", + "contributors": [ + "Shane Girish (https://github.com/shaneGirish)", + "Alex Murray <> (https://github.com/alexmurray)", + "Nicolas Pelletier <> (https://github.com/NicolasPelletier)", + "Josh Rogers <> (https://github.com/geekymole)", + "Noah Isaacson (https://github.com/nisaacson)" + ], + "repository": { + "type": "url", + "url": "https://github.com/dcodeIO/bcrypt.js.git" + }, + "bugs": { + "url": "https://github.com/dcodeIO/bcrypt.js/issues" + }, + "keywords": [ + "bcrypt", + "password", + "auth", + "authentication", + "encryption", + "crypt", + "crypto" + ], + "main": "index.js", + "browser": "dist/bcrypt.js", + "dependencies": {}, + "devDependencies": { + "testjs": "~1", + "closurecompiler": "~1", + "metascript": "~0.18", + "bcrypt": "latest", + "utfx": "~1" + }, + "license": "MIT", + "scripts": { + "test": "node node_modules/testjs/bin/testjs", + "build": "node scripts/build.js", + "compile": "node node_modules/closurecompiler/bin/ccjs dist/bcrypt.js --compilation_level=SIMPLE_OPTIMIZATIONS --create_source_map=dist/bcrypt.min.map > dist/bcrypt.min.js", + "compress": "gzip -c -9 dist/bcrypt.min.js > dist/bcrypt.min.js.gz", + "make": "npm run build && npm run compile && npm run compress && npm test" + } +} diff --git a/server/api/node_modules/bcryptjs/scripts/build.js b/server/api/node_modules/bcryptjs/scripts/build.js new file mode 100644 index 0000000..7b34ea4 --- /dev/null +++ b/server/api/node_modules/bcryptjs/scripts/build.js @@ -0,0 +1,37 @@ +var MetaScript = require("metascript"), + path = require("path"), + fs = require("fs"); + +var rootDir = path.join(__dirname, ".."), + srcDir = path.join(rootDir, "src"), + distDir = path.join(rootDir, "dist"), + pkg = require(path.join(rootDir, "package.json")), + filename; + +var scope = { + VERSION: pkg.version, + ISAAC: false +}; + +// Make standard build +console.log("Building bcrypt.js with scope", JSON.stringify(scope, null, 2)); +fs.writeFileSync( + path.join(distDir, "bcrypt.js"), + MetaScript.transform(fs.readFileSync(filename = path.join(srcDir, "wrap.js")), filename, scope, srcDir) +); + +// Make isaac build - see: https://github.com/dcodeIO/bcrypt.js/issues/16 +/* scope.ISAAC = true; +console.log("Building bcrypt-isaac.js with scope", JSON.stringify(scope, null, 2)); +fs.writeFileSync( + path.join(distDir, "bcrypt-isaac.js"), + MetaScript.transform(fs.readFileSync(filename = path.join(srcDir, "bcrypt.js")), filename, scope, srcDir) +); */ + +// Update bower.json +scope = { VERSION: pkg.version }; +console.log("Updating bower.json with scope", JSON.stringify(scope, null, 2)); +fs.writeFileSync( + path.join(rootDir, "bower.json"), + MetaScript.transform(fs.readFileSync(filename = path.join(srcDir, "bower.json")), filename, scope, srcDir) +); diff --git a/server/api/node_modules/bcryptjs/src/bcrypt.js b/server/api/node_modules/bcryptjs/src/bcrypt.js new file mode 100644 index 0000000..11dedc1 --- /dev/null +++ b/server/api/node_modules/bcryptjs/src/bcrypt.js @@ -0,0 +1,327 @@ +/** + * bcrypt namespace. + * @type {Object.} + */ +var bcrypt = {}; + +/** + * The random implementation to use as a fallback. + * @type {?function(number):!Array.} + * @inner + */ +var randomFallback = null; + +/** + * Generates cryptographically secure random bytes. + * @function + * @param {number} len Bytes length + * @returns {!Array.} Random bytes + * @throws {Error} If no random implementation is available + * @inner + */ +function random(len) { + /* node */ if (typeof module !== 'undefined' && module && module['exports']) + try { + return require("crypto")['randomBytes'](len); + } catch (e) {} + /* WCA */ try { + var a; (self['crypto']||self['msCrypto'])['getRandomValues'](a = new Uint32Array(len)); + return Array.prototype.slice.call(a); + } catch (e) {} + /* fallback */ if (!randomFallback) + throw Error("Neither WebCryptoAPI nor a crypto module is available. Use bcrypt.setRandomFallback to set an alternative"); + return randomFallback(len); +} + +// Test if any secure randomness source is available +var randomAvailable = false; +try { + random(1); + randomAvailable = true; +} catch (e) {} + +// Default fallback, if any +randomFallback = /*? if (ISAAC) { */function(len) { + for (var a=[], i=0; i} random Function taking the number of bytes to generate as its + * sole argument, returning the corresponding array of cryptographically secure random byte values. + * @see http://nodejs.org/api/crypto.html + * @see http://www.w3.org/TR/WebCryptoAPI/ + */ +bcrypt.setRandomFallback = function(random) { + randomFallback = random; +}; + +/** + * Synchronously generates a salt. + * @param {number=} rounds Number of rounds to use, defaults to 10 if omitted + * @param {number=} seed_length Not supported. + * @returns {string} Resulting salt + * @throws {Error} If a random fallback is required but not set + * @expose + */ +bcrypt.genSaltSync = function(rounds, seed_length) { + rounds = rounds || GENSALT_DEFAULT_LOG2_ROUNDS; + if (typeof rounds !== 'number') + throw Error("Illegal arguments: "+(typeof rounds)+", "+(typeof seed_length)); + if (rounds < 4) + rounds = 4; + else if (rounds > 31) + rounds = 31; + var salt = []; + salt.push("$2a$"); + if (rounds < 10) + salt.push("0"); + salt.push(rounds.toString()); + salt.push('$'); + salt.push(base64_encode(random(BCRYPT_SALT_LEN), BCRYPT_SALT_LEN)); // May throw + return salt.join(''); +}; + +/** + * Asynchronously generates a salt. + * @param {(number|function(Error, string=))=} rounds Number of rounds to use, defaults to 10 if omitted + * @param {(number|function(Error, string=))=} seed_length Not supported. + * @param {function(Error, string=)=} callback Callback receiving the error, if any, and the resulting salt + * @returns {!Promise} If `callback` has been omitted + * @throws {Error} If `callback` is present but not a function + * @expose + */ +bcrypt.genSalt = function(rounds, seed_length, callback) { + if (typeof seed_length === 'function') + callback = seed_length, + seed_length = undefined; // Not supported. + if (typeof rounds === 'function') + callback = rounds, + rounds = undefined; + if (typeof rounds === 'undefined') + rounds = GENSALT_DEFAULT_LOG2_ROUNDS; + else if (typeof rounds !== 'number') + throw Error("illegal arguments: "+(typeof rounds)); + + function _async(callback) { + nextTick(function() { // Pretty thin, but salting is fast enough + try { + callback(null, bcrypt.genSaltSync(rounds)); + } catch (err) { + callback(err); + } + }); + } + + if (callback) { + if (typeof callback !== 'function') + throw Error("Illegal callback: "+typeof(callback)); + _async(callback); + } else + return new Promise(function(resolve, reject) { + _async(function(err, res) { + if (err) { + reject(err); + return; + } + resolve(res); + }); + }); +}; + +/** + * Synchronously generates a hash for the given string. + * @param {string} s String to hash + * @param {(number|string)=} salt Salt length to generate or salt to use, default to 10 + * @returns {string} Resulting hash + * @expose + */ +bcrypt.hashSync = function(s, salt) { + if (typeof salt === 'undefined') + salt = GENSALT_DEFAULT_LOG2_ROUNDS; + if (typeof salt === 'number') + salt = bcrypt.genSaltSync(salt); + if (typeof s !== 'string' || typeof salt !== 'string') + throw Error("Illegal arguments: "+(typeof s)+', '+(typeof salt)); + return _hash(s, salt); +}; + +/** + * Asynchronously generates a hash for the given string. + * @param {string} s String to hash + * @param {number|string} salt Salt length to generate or salt to use + * @param {function(Error, string=)=} callback Callback receiving the error, if any, and the resulting hash + * @param {function(number)=} progressCallback Callback successively called with the percentage of rounds completed + * (0.0 - 1.0), maximally once per `MAX_EXECUTION_TIME = 100` ms. + * @returns {!Promise} If `callback` has been omitted + * @throws {Error} If `callback` is present but not a function + * @expose + */ +bcrypt.hash = function(s, salt, callback, progressCallback) { + + function _async(callback) { + if (typeof s === 'string' && typeof salt === 'number') + bcrypt.genSalt(salt, function(err, salt) { + _hash(s, salt, callback, progressCallback); + }); + else if (typeof s === 'string' && typeof salt === 'string') + _hash(s, salt, callback, progressCallback); + else + nextTick(callback.bind(this, Error("Illegal arguments: "+(typeof s)+', '+(typeof salt)))); + } + + if (callback) { + if (typeof callback !== 'function') + throw Error("Illegal callback: "+typeof(callback)); + _async(callback); + } else + return new Promise(function(resolve, reject) { + _async(function(err, res) { + if (err) { + reject(err); + return; + } + resolve(res); + }); + }); +}; + +/** + * Compares two strings of the same length in constant time. + * @param {string} known Must be of the correct length + * @param {string} unknown Must be the same length as `known` + * @returns {boolean} + * @inner + */ +function safeStringCompare(known, unknown) { + var right = 0, + wrong = 0; + for (var i=0, k=known.length; i} b Byte array + * @param {number} len Maximum input length + * @returns {string} + * @expose + */ +bcrypt.encodeBase64 = base64_encode; + +/** + * Decodes a base64 encoded string to up to len bytes of output, using the custom bcrypt alphabet. + * @function + * @param {string} s String to decode + * @param {number} len Maximum output length + * @returns {!Array.} + * @expose + */ +bcrypt.decodeBase64 = base64_decode; diff --git a/server/api/node_modules/bcryptjs/src/bcrypt/impl.js b/server/api/node_modules/bcryptjs/src/bcrypt/impl.js new file mode 100644 index 0000000..fb00aee --- /dev/null +++ b/server/api/node_modules/bcryptjs/src/bcrypt/impl.js @@ -0,0 +1,669 @@ +/** + * @type {number} + * @const + * @inner + */ +var BCRYPT_SALT_LEN = 16; + +/** + * @type {number} + * @const + * @inner + */ +var GENSALT_DEFAULT_LOG2_ROUNDS = 10; + +/** + * @type {number} + * @const + * @inner + */ +var BLOWFISH_NUM_ROUNDS = 16; + +/** + * @type {number} + * @const + * @inner + */ +var MAX_EXECUTION_TIME = 100; + +/** + * @type {Array.} + * @const + * @inner + */ +var P_ORIG = [ + 0x243f6a88, 0x85a308d3, 0x13198a2e, 0x03707344, 0xa4093822, + 0x299f31d0, 0x082efa98, 0xec4e6c89, 0x452821e6, 0x38d01377, + 0xbe5466cf, 0x34e90c6c, 0xc0ac29b7, 0xc97c50dd, 0x3f84d5b5, + 0xb5470917, 0x9216d5d9, 0x8979fb1b +]; + +/** + * @type {Array.} + * @const + * @inner + */ +var S_ORIG = [ + 0xd1310ba6, 0x98dfb5ac, 0x2ffd72db, 0xd01adfb7, 0xb8e1afed, + 0x6a267e96, 0xba7c9045, 0xf12c7f99, 0x24a19947, 0xb3916cf7, + 0x0801f2e2, 0x858efc16, 0x636920d8, 0x71574e69, 0xa458fea3, + 0xf4933d7e, 0x0d95748f, 0x728eb658, 0x718bcd58, 0x82154aee, + 0x7b54a41d, 0xc25a59b5, 0x9c30d539, 0x2af26013, 0xc5d1b023, + 0x286085f0, 0xca417918, 0xb8db38ef, 0x8e79dcb0, 0x603a180e, + 0x6c9e0e8b, 0xb01e8a3e, 0xd71577c1, 0xbd314b27, 0x78af2fda, + 0x55605c60, 0xe65525f3, 0xaa55ab94, 0x57489862, 0x63e81440, + 0x55ca396a, 0x2aab10b6, 0xb4cc5c34, 0x1141e8ce, 0xa15486af, + 0x7c72e993, 0xb3ee1411, 0x636fbc2a, 0x2ba9c55d, 0x741831f6, + 0xce5c3e16, 0x9b87931e, 0xafd6ba33, 0x6c24cf5c, 0x7a325381, + 0x28958677, 0x3b8f4898, 0x6b4bb9af, 0xc4bfe81b, 0x66282193, + 0x61d809cc, 0xfb21a991, 0x487cac60, 0x5dec8032, 0xef845d5d, + 0xe98575b1, 0xdc262302, 0xeb651b88, 0x23893e81, 0xd396acc5, + 0x0f6d6ff3, 0x83f44239, 0x2e0b4482, 0xa4842004, 0x69c8f04a, + 0x9e1f9b5e, 0x21c66842, 0xf6e96c9a, 0x670c9c61, 0xabd388f0, + 0x6a51a0d2, 0xd8542f68, 0x960fa728, 0xab5133a3, 0x6eef0b6c, + 0x137a3be4, 0xba3bf050, 0x7efb2a98, 0xa1f1651d, 0x39af0176, + 0x66ca593e, 0x82430e88, 0x8cee8619, 0x456f9fb4, 0x7d84a5c3, + 0x3b8b5ebe, 0xe06f75d8, 0x85c12073, 0x401a449f, 0x56c16aa6, + 0x4ed3aa62, 0x363f7706, 0x1bfedf72, 0x429b023d, 0x37d0d724, + 0xd00a1248, 0xdb0fead3, 0x49f1c09b, 0x075372c9, 0x80991b7b, + 0x25d479d8, 0xf6e8def7, 0xe3fe501a, 0xb6794c3b, 0x976ce0bd, + 0x04c006ba, 0xc1a94fb6, 0x409f60c4, 0x5e5c9ec2, 0x196a2463, + 0x68fb6faf, 0x3e6c53b5, 0x1339b2eb, 0x3b52ec6f, 0x6dfc511f, + 0x9b30952c, 0xcc814544, 0xaf5ebd09, 0xbee3d004, 0xde334afd, + 0x660f2807, 0x192e4bb3, 0xc0cba857, 0x45c8740f, 0xd20b5f39, + 0xb9d3fbdb, 0x5579c0bd, 0x1a60320a, 0xd6a100c6, 0x402c7279, + 0x679f25fe, 0xfb1fa3cc, 0x8ea5e9f8, 0xdb3222f8, 0x3c7516df, + 0xfd616b15, 0x2f501ec8, 0xad0552ab, 0x323db5fa, 0xfd238760, + 0x53317b48, 0x3e00df82, 0x9e5c57bb, 0xca6f8ca0, 0x1a87562e, + 0xdf1769db, 0xd542a8f6, 0x287effc3, 0xac6732c6, 0x8c4f5573, + 0x695b27b0, 0xbbca58c8, 0xe1ffa35d, 0xb8f011a0, 0x10fa3d98, + 0xfd2183b8, 0x4afcb56c, 0x2dd1d35b, 0x9a53e479, 0xb6f84565, + 0xd28e49bc, 0x4bfb9790, 0xe1ddf2da, 0xa4cb7e33, 0x62fb1341, + 0xcee4c6e8, 0xef20cada, 0x36774c01, 0xd07e9efe, 0x2bf11fb4, + 0x95dbda4d, 0xae909198, 0xeaad8e71, 0x6b93d5a0, 0xd08ed1d0, + 0xafc725e0, 0x8e3c5b2f, 0x8e7594b7, 0x8ff6e2fb, 0xf2122b64, + 0x8888b812, 0x900df01c, 0x4fad5ea0, 0x688fc31c, 0xd1cff191, + 0xb3a8c1ad, 0x2f2f2218, 0xbe0e1777, 0xea752dfe, 0x8b021fa1, + 0xe5a0cc0f, 0xb56f74e8, 0x18acf3d6, 0xce89e299, 0xb4a84fe0, + 0xfd13e0b7, 0x7cc43b81, 0xd2ada8d9, 0x165fa266, 0x80957705, + 0x93cc7314, 0x211a1477, 0xe6ad2065, 0x77b5fa86, 0xc75442f5, + 0xfb9d35cf, 0xebcdaf0c, 0x7b3e89a0, 0xd6411bd3, 0xae1e7e49, + 0x00250e2d, 0x2071b35e, 0x226800bb, 0x57b8e0af, 0x2464369b, + 0xf009b91e, 0x5563911d, 0x59dfa6aa, 0x78c14389, 0xd95a537f, + 0x207d5ba2, 0x02e5b9c5, 0x83260376, 0x6295cfa9, 0x11c81968, + 0x4e734a41, 0xb3472dca, 0x7b14a94a, 0x1b510052, 0x9a532915, + 0xd60f573f, 0xbc9bc6e4, 0x2b60a476, 0x81e67400, 0x08ba6fb5, + 0x571be91f, 0xf296ec6b, 0x2a0dd915, 0xb6636521, 0xe7b9f9b6, + 0xff34052e, 0xc5855664, 0x53b02d5d, 0xa99f8fa1, 0x08ba4799, + 0x6e85076a, 0x4b7a70e9, 0xb5b32944, 0xdb75092e, 0xc4192623, + 0xad6ea6b0, 0x49a7df7d, 0x9cee60b8, 0x8fedb266, 0xecaa8c71, + 0x699a17ff, 0x5664526c, 0xc2b19ee1, 0x193602a5, 0x75094c29, + 0xa0591340, 0xe4183a3e, 0x3f54989a, 0x5b429d65, 0x6b8fe4d6, + 0x99f73fd6, 0xa1d29c07, 0xefe830f5, 0x4d2d38e6, 0xf0255dc1, + 0x4cdd2086, 0x8470eb26, 0x6382e9c6, 0x021ecc5e, 0x09686b3f, + 0x3ebaefc9, 0x3c971814, 0x6b6a70a1, 0x687f3584, 0x52a0e286, + 0xb79c5305, 0xaa500737, 0x3e07841c, 0x7fdeae5c, 0x8e7d44ec, + 0x5716f2b8, 0xb03ada37, 0xf0500c0d, 0xf01c1f04, 0x0200b3ff, + 0xae0cf51a, 0x3cb574b2, 0x25837a58, 0xdc0921bd, 0xd19113f9, + 0x7ca92ff6, 0x94324773, 0x22f54701, 0x3ae5e581, 0x37c2dadc, + 0xc8b57634, 0x9af3dda7, 0xa9446146, 0x0fd0030e, 0xecc8c73e, + 0xa4751e41, 0xe238cd99, 0x3bea0e2f, 0x3280bba1, 0x183eb331, + 0x4e548b38, 0x4f6db908, 0x6f420d03, 0xf60a04bf, 0x2cb81290, + 0x24977c79, 0x5679b072, 0xbcaf89af, 0xde9a771f, 0xd9930810, + 0xb38bae12, 0xdccf3f2e, 0x5512721f, 0x2e6b7124, 0x501adde6, + 0x9f84cd87, 0x7a584718, 0x7408da17, 0xbc9f9abc, 0xe94b7d8c, + 0xec7aec3a, 0xdb851dfa, 0x63094366, 0xc464c3d2, 0xef1c1847, + 0x3215d908, 0xdd433b37, 0x24c2ba16, 0x12a14d43, 0x2a65c451, + 0x50940002, 0x133ae4dd, 0x71dff89e, 0x10314e55, 0x81ac77d6, + 0x5f11199b, 0x043556f1, 0xd7a3c76b, 0x3c11183b, 0x5924a509, + 0xf28fe6ed, 0x97f1fbfa, 0x9ebabf2c, 0x1e153c6e, 0x86e34570, + 0xeae96fb1, 0x860e5e0a, 0x5a3e2ab3, 0x771fe71c, 0x4e3d06fa, + 0x2965dcb9, 0x99e71d0f, 0x803e89d6, 0x5266c825, 0x2e4cc978, + 0x9c10b36a, 0xc6150eba, 0x94e2ea78, 0xa5fc3c53, 0x1e0a2df4, + 0xf2f74ea7, 0x361d2b3d, 0x1939260f, 0x19c27960, 0x5223a708, + 0xf71312b6, 0xebadfe6e, 0xeac31f66, 0xe3bc4595, 0xa67bc883, + 0xb17f37d1, 0x018cff28, 0xc332ddef, 0xbe6c5aa5, 0x65582185, + 0x68ab9802, 0xeecea50f, 0xdb2f953b, 0x2aef7dad, 0x5b6e2f84, + 0x1521b628, 0x29076170, 0xecdd4775, 0x619f1510, 0x13cca830, + 0xeb61bd96, 0x0334fe1e, 0xaa0363cf, 0xb5735c90, 0x4c70a239, + 0xd59e9e0b, 0xcbaade14, 0xeecc86bc, 0x60622ca7, 0x9cab5cab, + 0xb2f3846e, 0x648b1eaf, 0x19bdf0ca, 0xa02369b9, 0x655abb50, + 0x40685a32, 0x3c2ab4b3, 0x319ee9d5, 0xc021b8f7, 0x9b540b19, + 0x875fa099, 0x95f7997e, 0x623d7da8, 0xf837889a, 0x97e32d77, + 0x11ed935f, 0x16681281, 0x0e358829, 0xc7e61fd6, 0x96dedfa1, + 0x7858ba99, 0x57f584a5, 0x1b227263, 0x9b83c3ff, 0x1ac24696, + 0xcdb30aeb, 0x532e3054, 0x8fd948e4, 0x6dbc3128, 0x58ebf2ef, + 0x34c6ffea, 0xfe28ed61, 0xee7c3c73, 0x5d4a14d9, 0xe864b7e3, + 0x42105d14, 0x203e13e0, 0x45eee2b6, 0xa3aaabea, 0xdb6c4f15, + 0xfacb4fd0, 0xc742f442, 0xef6abbb5, 0x654f3b1d, 0x41cd2105, + 0xd81e799e, 0x86854dc7, 0xe44b476a, 0x3d816250, 0xcf62a1f2, + 0x5b8d2646, 0xfc8883a0, 0xc1c7b6a3, 0x7f1524c3, 0x69cb7492, + 0x47848a0b, 0x5692b285, 0x095bbf00, 0xad19489d, 0x1462b174, + 0x23820e00, 0x58428d2a, 0x0c55f5ea, 0x1dadf43e, 0x233f7061, + 0x3372f092, 0x8d937e41, 0xd65fecf1, 0x6c223bdb, 0x7cde3759, + 0xcbee7460, 0x4085f2a7, 0xce77326e, 0xa6078084, 0x19f8509e, + 0xe8efd855, 0x61d99735, 0xa969a7aa, 0xc50c06c2, 0x5a04abfc, + 0x800bcadc, 0x9e447a2e, 0xc3453484, 0xfdd56705, 0x0e1e9ec9, + 0xdb73dbd3, 0x105588cd, 0x675fda79, 0xe3674340, 0xc5c43465, + 0x713e38d8, 0x3d28f89e, 0xf16dff20, 0x153e21e7, 0x8fb03d4a, + 0xe6e39f2b, 0xdb83adf7, 0xe93d5a68, 0x948140f7, 0xf64c261c, + 0x94692934, 0x411520f7, 0x7602d4f7, 0xbcf46b2e, 0xd4a20068, + 0xd4082471, 0x3320f46a, 0x43b7d4b7, 0x500061af, 0x1e39f62e, + 0x97244546, 0x14214f74, 0xbf8b8840, 0x4d95fc1d, 0x96b591af, + 0x70f4ddd3, 0x66a02f45, 0xbfbc09ec, 0x03bd9785, 0x7fac6dd0, + 0x31cb8504, 0x96eb27b3, 0x55fd3941, 0xda2547e6, 0xabca0a9a, + 0x28507825, 0x530429f4, 0x0a2c86da, 0xe9b66dfb, 0x68dc1462, + 0xd7486900, 0x680ec0a4, 0x27a18dee, 0x4f3ffea2, 0xe887ad8c, + 0xb58ce006, 0x7af4d6b6, 0xaace1e7c, 0xd3375fec, 0xce78a399, + 0x406b2a42, 0x20fe9e35, 0xd9f385b9, 0xee39d7ab, 0x3b124e8b, + 0x1dc9faf7, 0x4b6d1856, 0x26a36631, 0xeae397b2, 0x3a6efa74, + 0xdd5b4332, 0x6841e7f7, 0xca7820fb, 0xfb0af54e, 0xd8feb397, + 0x454056ac, 0xba489527, 0x55533a3a, 0x20838d87, 0xfe6ba9b7, + 0xd096954b, 0x55a867bc, 0xa1159a58, 0xcca92963, 0x99e1db33, + 0xa62a4a56, 0x3f3125f9, 0x5ef47e1c, 0x9029317c, 0xfdf8e802, + 0x04272f70, 0x80bb155c, 0x05282ce3, 0x95c11548, 0xe4c66d22, + 0x48c1133f, 0xc70f86dc, 0x07f9c9ee, 0x41041f0f, 0x404779a4, + 0x5d886e17, 0x325f51eb, 0xd59bc0d1, 0xf2bcc18f, 0x41113564, + 0x257b7834, 0x602a9c60, 0xdff8e8a3, 0x1f636c1b, 0x0e12b4c2, + 0x02e1329e, 0xaf664fd1, 0xcad18115, 0x6b2395e0, 0x333e92e1, + 0x3b240b62, 0xeebeb922, 0x85b2a20e, 0xe6ba0d99, 0xde720c8c, + 0x2da2f728, 0xd0127845, 0x95b794fd, 0x647d0862, 0xe7ccf5f0, + 0x5449a36f, 0x877d48fa, 0xc39dfd27, 0xf33e8d1e, 0x0a476341, + 0x992eff74, 0x3a6f6eab, 0xf4f8fd37, 0xa812dc60, 0xa1ebddf8, + 0x991be14c, 0xdb6e6b0d, 0xc67b5510, 0x6d672c37, 0x2765d43b, + 0xdcd0e804, 0xf1290dc7, 0xcc00ffa3, 0xb5390f92, 0x690fed0b, + 0x667b9ffb, 0xcedb7d9c, 0xa091cf0b, 0xd9155ea3, 0xbb132f88, + 0x515bad24, 0x7b9479bf, 0x763bd6eb, 0x37392eb3, 0xcc115979, + 0x8026e297, 0xf42e312d, 0x6842ada7, 0xc66a2b3b, 0x12754ccc, + 0x782ef11c, 0x6a124237, 0xb79251e7, 0x06a1bbe6, 0x4bfb6350, + 0x1a6b1018, 0x11caedfa, 0x3d25bdd8, 0xe2e1c3c9, 0x44421659, + 0x0a121386, 0xd90cec6e, 0xd5abea2a, 0x64af674e, 0xda86a85f, + 0xbebfe988, 0x64e4c3fe, 0x9dbc8057, 0xf0f7c086, 0x60787bf8, + 0x6003604d, 0xd1fd8346, 0xf6381fb0, 0x7745ae04, 0xd736fccc, + 0x83426b33, 0xf01eab71, 0xb0804187, 0x3c005e5f, 0x77a057be, + 0xbde8ae24, 0x55464299, 0xbf582e61, 0x4e58f48f, 0xf2ddfda2, + 0xf474ef38, 0x8789bdc2, 0x5366f9c3, 0xc8b38e74, 0xb475f255, + 0x46fcd9b9, 0x7aeb2661, 0x8b1ddf84, 0x846a0e79, 0x915f95e2, + 0x466e598e, 0x20b45770, 0x8cd55591, 0xc902de4c, 0xb90bace1, + 0xbb8205d0, 0x11a86248, 0x7574a99e, 0xb77f19b6, 0xe0a9dc09, + 0x662d09a1, 0xc4324633, 0xe85a1f02, 0x09f0be8c, 0x4a99a025, + 0x1d6efe10, 0x1ab93d1d, 0x0ba5a4df, 0xa186f20f, 0x2868f169, + 0xdcb7da83, 0x573906fe, 0xa1e2ce9b, 0x4fcd7f52, 0x50115e01, + 0xa70683fa, 0xa002b5c4, 0x0de6d027, 0x9af88c27, 0x773f8641, + 0xc3604c06, 0x61a806b5, 0xf0177a28, 0xc0f586e0, 0x006058aa, + 0x30dc7d62, 0x11e69ed7, 0x2338ea63, 0x53c2dd94, 0xc2c21634, + 0xbbcbee56, 0x90bcb6de, 0xebfc7da1, 0xce591d76, 0x6f05e409, + 0x4b7c0188, 0x39720a3d, 0x7c927c24, 0x86e3725f, 0x724d9db9, + 0x1ac15bb4, 0xd39eb8fc, 0xed545578, 0x08fca5b5, 0xd83d7cd3, + 0x4dad0fc4, 0x1e50ef5e, 0xb161e6f8, 0xa28514d9, 0x6c51133c, + 0x6fd5c7e7, 0x56e14ec4, 0x362abfce, 0xddc6c837, 0xd79a3234, + 0x92638212, 0x670efa8e, 0x406000e0, 0x3a39ce37, 0xd3faf5cf, + 0xabc27737, 0x5ac52d1b, 0x5cb0679e, 0x4fa33742, 0xd3822740, + 0x99bc9bbe, 0xd5118e9d, 0xbf0f7315, 0xd62d1c7e, 0xc700c47b, + 0xb78c1b6b, 0x21a19045, 0xb26eb1be, 0x6a366eb4, 0x5748ab2f, + 0xbc946e79, 0xc6a376d2, 0x6549c2c8, 0x530ff8ee, 0x468dde7d, + 0xd5730a1d, 0x4cd04dc6, 0x2939bbdb, 0xa9ba4650, 0xac9526e8, + 0xbe5ee304, 0xa1fad5f0, 0x6a2d519a, 0x63ef8ce2, 0x9a86ee22, + 0xc089c2b8, 0x43242ef6, 0xa51e03aa, 0x9cf2d0a4, 0x83c061ba, + 0x9be96a4d, 0x8fe51550, 0xba645bd6, 0x2826a2f9, 0xa73a3ae1, + 0x4ba99586, 0xef5562e9, 0xc72fefd3, 0xf752f7da, 0x3f046f69, + 0x77fa0a59, 0x80e4a915, 0x87b08601, 0x9b09e6ad, 0x3b3ee593, + 0xe990fd5a, 0x9e34d797, 0x2cf0b7d9, 0x022b8b51, 0x96d5ac3a, + 0x017da67d, 0xd1cf3ed6, 0x7c7d2d28, 0x1f9f25cf, 0xadf2b89b, + 0x5ad6b472, 0x5a88f54c, 0xe029ac71, 0xe019a5e6, 0x47b0acfd, + 0xed93fa9b, 0xe8d3c48d, 0x283b57cc, 0xf8d56629, 0x79132e28, + 0x785f0191, 0xed756055, 0xf7960e44, 0xe3d35e8c, 0x15056dd4, + 0x88f46dba, 0x03a16125, 0x0564f0bd, 0xc3eb9e15, 0x3c9057a2, + 0x97271aec, 0xa93a072a, 0x1b3f6d9b, 0x1e6321f5, 0xf59c66fb, + 0x26dcf319, 0x7533d928, 0xb155fdf5, 0x03563482, 0x8aba3cbb, + 0x28517711, 0xc20ad9f8, 0xabcc5167, 0xccad925f, 0x4de81751, + 0x3830dc8e, 0x379d5862, 0x9320f991, 0xea7a90c2, 0xfb3e7bce, + 0x5121ce64, 0x774fbe32, 0xa8b6e37e, 0xc3293d46, 0x48de5369, + 0x6413e680, 0xa2ae0810, 0xdd6db224, 0x69852dfd, 0x09072166, + 0xb39a460a, 0x6445c0dd, 0x586cdecf, 0x1c20c8ae, 0x5bbef7dd, + 0x1b588d40, 0xccd2017f, 0x6bb4e3bb, 0xdda26a7e, 0x3a59ff45, + 0x3e350a44, 0xbcb4cdd5, 0x72eacea8, 0xfa6484bb, 0x8d6612ae, + 0xbf3c6f47, 0xd29be463, 0x542f5d9e, 0xaec2771b, 0xf64e6370, + 0x740e0d8d, 0xe75b1357, 0xf8721671, 0xaf537d5d, 0x4040cb08, + 0x4eb4e2cc, 0x34d2466a, 0x0115af84, 0xe1b00428, 0x95983a1d, + 0x06b89fb4, 0xce6ea048, 0x6f3f3b82, 0x3520ab82, 0x011a1d4b, + 0x277227f8, 0x611560b1, 0xe7933fdc, 0xbb3a792b, 0x344525bd, + 0xa08839e1, 0x51ce794b, 0x2f32c9b7, 0xa01fbac9, 0xe01cc87e, + 0xbcc7d1f6, 0xcf0111c3, 0xa1e8aac7, 0x1a908749, 0xd44fbd9a, + 0xd0dadecb, 0xd50ada38, 0x0339c32a, 0xc6913667, 0x8df9317c, + 0xe0b12b4f, 0xf79e59b7, 0x43f5bb3a, 0xf2d519ff, 0x27d9459c, + 0xbf97222c, 0x15e6fc2a, 0x0f91fc71, 0x9b941525, 0xfae59361, + 0xceb69ceb, 0xc2a86459, 0x12baa8d1, 0xb6c1075e, 0xe3056a0c, + 0x10d25065, 0xcb03a442, 0xe0ec6e0e, 0x1698db3b, 0x4c98a0be, + 0x3278e964, 0x9f1f9532, 0xe0d392df, 0xd3a0342b, 0x8971f21e, + 0x1b0a7441, 0x4ba3348c, 0xc5be7120, 0xc37632d8, 0xdf359f8d, + 0x9b992f2e, 0xe60b6f47, 0x0fe3f11d, 0xe54cda54, 0x1edad891, + 0xce6279cf, 0xcd3e7e6f, 0x1618b166, 0xfd2c1d05, 0x848fd2c5, + 0xf6fb2299, 0xf523f357, 0xa6327623, 0x93a83531, 0x56cccd02, + 0xacf08162, 0x5a75ebb5, 0x6e163697, 0x88d273cc, 0xde966292, + 0x81b949d0, 0x4c50901b, 0x71c65614, 0xe6c6c7bd, 0x327a140a, + 0x45e1d006, 0xc3f27b9a, 0xc9aa53fd, 0x62a80f00, 0xbb25bfe2, + 0x35bdd2f6, 0x71126905, 0xb2040222, 0xb6cbcf7c, 0xcd769c2b, + 0x53113ec0, 0x1640e3d3, 0x38abbd60, 0x2547adf0, 0xba38209c, + 0xf746ce76, 0x77afa1c5, 0x20756060, 0x85cbfe4e, 0x8ae88dd8, + 0x7aaaf9b0, 0x4cf9aa7e, 0x1948c25c, 0x02fb8a8c, 0x01c36ae4, + 0xd6ebe1f9, 0x90d4f869, 0xa65cdea0, 0x3f09252d, 0xc208e69f, + 0xb74e6132, 0xce77e25b, 0x578fdfe3, 0x3ac372e6 +]; + +/** + * @type {Array.} + * @const + * @inner + */ +var C_ORIG = [ + 0x4f727068, 0x65616e42, 0x65686f6c, 0x64657253, 0x63727944, + 0x6f756274 +]; + +/** + * @param {Array.} lr + * @param {number} off + * @param {Array.} P + * @param {Array.} S + * @returns {Array.} + * @inner + */ +function _encipher(lr, off, P, S) { // This is our bottleneck: 1714/1905 ticks / 90% - see profile.txt + var n, + l = lr[off], + r = lr[off + 1]; + + l ^= P[0]; + + /* + for (var i=0, k=BLOWFISH_NUM_ROUNDS-2; i<=k;) + // Feistel substitution on left word + n = S[l >>> 24], + n += S[0x100 | ((l >> 16) & 0xff)], + n ^= S[0x200 | ((l >> 8) & 0xff)], + n += S[0x300 | (l & 0xff)], + r ^= n ^ P[++i], + // Feistel substitution on right word + n = S[r >>> 24], + n += S[0x100 | ((r >> 16) & 0xff)], + n ^= S[0x200 | ((r >> 8) & 0xff)], + n += S[0x300 | (r & 0xff)], + l ^= n ^ P[++i]; + */ + + //The following is an unrolled version of the above loop. + //Iteration 0 + n = S[l >>> 24]; + n += S[0x100 | ((l >> 16) & 0xff)]; + n ^= S[0x200 | ((l >> 8) & 0xff)]; + n += S[0x300 | (l & 0xff)]; + r ^= n ^ P[1]; + n = S[r >>> 24]; + n += S[0x100 | ((r >> 16) & 0xff)]; + n ^= S[0x200 | ((r >> 8) & 0xff)]; + n += S[0x300 | (r & 0xff)]; + l ^= n ^ P[2]; + //Iteration 1 + n = S[l >>> 24]; + n += S[0x100 | ((l >> 16) & 0xff)]; + n ^= S[0x200 | ((l >> 8) & 0xff)]; + n += S[0x300 | (l & 0xff)]; + r ^= n ^ P[3]; + n = S[r >>> 24]; + n += S[0x100 | ((r >> 16) & 0xff)]; + n ^= S[0x200 | ((r >> 8) & 0xff)]; + n += S[0x300 | (r & 0xff)]; + l ^= n ^ P[4]; + //Iteration 2 + n = S[l >>> 24]; + n += S[0x100 | ((l >> 16) & 0xff)]; + n ^= S[0x200 | ((l >> 8) & 0xff)]; + n += S[0x300 | (l & 0xff)]; + r ^= n ^ P[5]; + n = S[r >>> 24]; + n += S[0x100 | ((r >> 16) & 0xff)]; + n ^= S[0x200 | ((r >> 8) & 0xff)]; + n += S[0x300 | (r & 0xff)]; + l ^= n ^ P[6]; + //Iteration 3 + n = S[l >>> 24]; + n += S[0x100 | ((l >> 16) & 0xff)]; + n ^= S[0x200 | ((l >> 8) & 0xff)]; + n += S[0x300 | (l & 0xff)]; + r ^= n ^ P[7]; + n = S[r >>> 24]; + n += S[0x100 | ((r >> 16) & 0xff)]; + n ^= S[0x200 | ((r >> 8) & 0xff)]; + n += S[0x300 | (r & 0xff)]; + l ^= n ^ P[8]; + //Iteration 4 + n = S[l >>> 24]; + n += S[0x100 | ((l >> 16) & 0xff)]; + n ^= S[0x200 | ((l >> 8) & 0xff)]; + n += S[0x300 | (l & 0xff)]; + r ^= n ^ P[9]; + n = S[r >>> 24]; + n += S[0x100 | ((r >> 16) & 0xff)]; + n ^= S[0x200 | ((r >> 8) & 0xff)]; + n += S[0x300 | (r & 0xff)]; + l ^= n ^ P[10]; + //Iteration 5 + n = S[l >>> 24]; + n += S[0x100 | ((l >> 16) & 0xff)]; + n ^= S[0x200 | ((l >> 8) & 0xff)]; + n += S[0x300 | (l & 0xff)]; + r ^= n ^ P[11]; + n = S[r >>> 24]; + n += S[0x100 | ((r >> 16) & 0xff)]; + n ^= S[0x200 | ((r >> 8) & 0xff)]; + n += S[0x300 | (r & 0xff)]; + l ^= n ^ P[12]; + //Iteration 6 + n = S[l >>> 24]; + n += S[0x100 | ((l >> 16) & 0xff)]; + n ^= S[0x200 | ((l >> 8) & 0xff)]; + n += S[0x300 | (l & 0xff)]; + r ^= n ^ P[13]; + n = S[r >>> 24]; + n += S[0x100 | ((r >> 16) & 0xff)]; + n ^= S[0x200 | ((r >> 8) & 0xff)]; + n += S[0x300 | (r & 0xff)]; + l ^= n ^ P[14]; + //Iteration 7 + n = S[l >>> 24]; + n += S[0x100 | ((l >> 16) & 0xff)]; + n ^= S[0x200 | ((l >> 8) & 0xff)]; + n += S[0x300 | (l & 0xff)]; + r ^= n ^ P[15]; + n = S[r >>> 24]; + n += S[0x100 | ((r >> 16) & 0xff)]; + n ^= S[0x200 | ((r >> 8) & 0xff)]; + n += S[0x300 | (r & 0xff)]; + l ^= n ^ P[16]; + + lr[off] = r ^ P[BLOWFISH_NUM_ROUNDS + 1]; + lr[off + 1] = l; + return lr; +} + +/** + * @param {Array.} data + * @param {number} offp + * @returns {{key: number, offp: number}} + * @inner + */ +function _streamtoword(data, offp) { + for (var i = 0, word = 0; i < 4; ++i) + word = (word << 8) | (data[offp] & 0xff), + offp = (offp + 1) % data.length; + return { key: word, offp: offp }; +} + +/** + * @param {Array.} key + * @param {Array.} P + * @param {Array.} S + * @inner + */ +function _key(key, P, S) { + var offset = 0, + lr = [0, 0], + plen = P.length, + slen = S.length, + sw; + for (var i = 0; i < plen; i++) + sw = _streamtoword(key, offset), + offset = sw.offp, + P[i] = P[i] ^ sw.key; + for (i = 0; i < plen; i += 2) + lr = _encipher(lr, 0, P, S), + P[i] = lr[0], + P[i + 1] = lr[1]; + for (i = 0; i < slen; i += 2) + lr = _encipher(lr, 0, P, S), + S[i] = lr[0], + S[i + 1] = lr[1]; +} + +/** + * Expensive key schedule Blowfish. + * @param {Array.} data + * @param {Array.} key + * @param {Array.} P + * @param {Array.} S + * @inner + */ +function _ekskey(data, key, P, S) { + var offp = 0, + lr = [0, 0], + plen = P.length, + slen = S.length, + sw; + for (var i = 0; i < plen; i++) + sw = _streamtoword(key, offp), + offp = sw.offp, + P[i] = P[i] ^ sw.key; + offp = 0; + for (i = 0; i < plen; i += 2) + sw = _streamtoword(data, offp), + offp = sw.offp, + lr[0] ^= sw.key, + sw = _streamtoword(data, offp), + offp = sw.offp, + lr[1] ^= sw.key, + lr = _encipher(lr, 0, P, S), + P[i] = lr[0], + P[i + 1] = lr[1]; + for (i = 0; i < slen; i += 2) + sw = _streamtoword(data, offp), + offp = sw.offp, + lr[0] ^= sw.key, + sw = _streamtoword(data, offp), + offp = sw.offp, + lr[1] ^= sw.key, + lr = _encipher(lr, 0, P, S), + S[i] = lr[0], + S[i + 1] = lr[1]; +} + +/** + * Internaly crypts a string. + * @param {Array.} b Bytes to crypt + * @param {Array.} salt Salt bytes to use + * @param {number} rounds Number of rounds + * @param {function(Error, Array.=)=} callback Callback receiving the error, if any, and the resulting bytes. If + * omitted, the operation will be performed synchronously. + * @param {function(number)=} progressCallback Callback called with the current progress + * @returns {!Array.|undefined} Resulting bytes if callback has been omitted, otherwise `undefined` + * @inner + */ +function _crypt(b, salt, rounds, callback, progressCallback) { + var cdata = C_ORIG.slice(), + clen = cdata.length, + err; + + // Validate + if (rounds < 4 || rounds > 31) { + err = Error("Illegal number of rounds (4-31): "+rounds); + if (callback) { + nextTick(callback.bind(this, err)); + return; + } else + throw err; + } + if (salt.length !== BCRYPT_SALT_LEN) { + err =Error("Illegal salt length: "+salt.length+" != "+BCRYPT_SALT_LEN); + if (callback) { + nextTick(callback.bind(this, err)); + return; + } else + throw err; + } + rounds = (1 << rounds) >>> 0; + + var P, S, i = 0, j; + + //Use typed arrays when available - huge speedup! + if (Int32Array) { + P = new Int32Array(P_ORIG); + S = new Int32Array(S_ORIG); + } else { + P = P_ORIG.slice(); + S = S_ORIG.slice(); + } + + _ekskey(salt, b, P, S); + + /** + * Calcualtes the next round. + * @returns {Array.|undefined} Resulting array if callback has been omitted, otherwise `undefined` + * @inner + */ + function next() { + if (progressCallback) + progressCallback(i / rounds); + if (i < rounds) { + var start = Date.now(); + for (; i < rounds;) { + i = i + 1; + _key(b, P, S); + _key(salt, P, S); + if (Date.now() - start > MAX_EXECUTION_TIME) + break; + } + } else { + for (i = 0; i < 64; i++) + for (j = 0; j < (clen >> 1); j++) + _encipher(cdata, j << 1, P, S); + var ret = []; + for (i = 0; i < clen; i++) + ret.push(((cdata[i] >> 24) & 0xff) >>> 0), + ret.push(((cdata[i] >> 16) & 0xff) >>> 0), + ret.push(((cdata[i] >> 8) & 0xff) >>> 0), + ret.push((cdata[i] & 0xff) >>> 0); + if (callback) { + callback(null, ret); + return; + } else + return ret; + } + if (callback) + nextTick(next); + } + + // Async + if (typeof callback !== 'undefined') { + next(); + + // Sync + } else { + var res; + while (true) + if (typeof(res = next()) !== 'undefined') + return res || []; + } +} + +/** + * Internally hashes a string. + * @param {string} s String to hash + * @param {?string} salt Salt to use, actually never null + * @param {function(Error, string=)=} callback Callback receiving the error, if any, and the resulting hash. If omitted, + * hashing is perormed synchronously. + * @param {function(number)=} progressCallback Callback called with the current progress + * @returns {string|undefined} Resulting hash if callback has been omitted, otherwise `undefined` + * @inner + */ +function _hash(s, salt, callback, progressCallback) { + var err; + if (typeof s !== 'string' || typeof salt !== 'string') { + err = Error("Invalid string / salt: Not a string"); + if (callback) { + nextTick(callback.bind(this, err)); + return; + } + else + throw err; + } + + // Validate the salt + var minor, offset; + if (salt.charAt(0) !== '$' || salt.charAt(1) !== '2') { + err = Error("Invalid salt version: "+salt.substring(0,2)); + if (callback) { + nextTick(callback.bind(this, err)); + return; + } + else + throw err; + } + if (salt.charAt(2) === '$') + minor = String.fromCharCode(0), + offset = 3; + else { + minor = salt.charAt(2); + if ((minor !== 'a' && minor !== 'b' && minor !== 'y') || salt.charAt(3) !== '$') { + err = Error("Invalid salt revision: "+salt.substring(2,4)); + if (callback) { + nextTick(callback.bind(this, err)); + return; + } else + throw err; + } + offset = 4; + } + + // Extract number of rounds + if (salt.charAt(offset + 2) > '$') { + err = Error("Missing salt rounds"); + if (callback) { + nextTick(callback.bind(this, err)); + return; + } else + throw err; + } + var r1 = parseInt(salt.substring(offset, offset + 1), 10) * 10, + r2 = parseInt(salt.substring(offset + 1, offset + 2), 10), + rounds = r1 + r2, + real_salt = salt.substring(offset + 3, offset + 25); + s += minor >= 'a' ? "\x00" : ""; + + var passwordb = stringToBytes(s), + saltb = base64_decode(real_salt, BCRYPT_SALT_LEN); + + /** + * Finishes hashing. + * @param {Array.} bytes Byte array + * @returns {string} + * @inner + */ + function finish(bytes) { + var res = []; + res.push("$2"); + if (minor >= 'a') + res.push(minor); + res.push("$"); + if (rounds < 10) + res.push("0"); + res.push(rounds.toString()); + res.push("$"); + res.push(base64_encode(saltb, saltb.length)); + res.push(base64_encode(bytes, C_ORIG.length * 4 - 1)); + return res.join(''); + } + + // Sync + if (typeof callback == 'undefined') + return finish(_crypt(passwordb, saltb, rounds)); + + // Async + else { + _crypt(passwordb, saltb, rounds, function(err, bytes) { + if (err) + callback(err, null); + else + callback(null, finish(bytes)); + }, progressCallback); + } +} diff --git a/server/api/node_modules/bcryptjs/src/bcrypt/prng/README.md b/server/api/node_modules/bcryptjs/src/bcrypt/prng/README.md new file mode 100644 index 0000000..4735aa6 --- /dev/null +++ b/server/api/node_modules/bcryptjs/src/bcrypt/prng/README.md @@ -0,0 +1,5 @@ +Because of [reasonable security doubts](https://github.com/dcodeIO/bcrypt.js/issues/16), these files, which used to be +a part of bcrypt-isaac.js, are no longer used but are kept here for reference only. + +What is required instead is a proper way to collect entropy sources (using an intermediate stream cipher) which is then +used to seed the CSPRNG. Pick one and use `bcrypt.setRandomFallback` instead. diff --git a/server/api/node_modules/bcryptjs/src/bcrypt/prng/accum.js b/server/api/node_modules/bcryptjs/src/bcrypt/prng/accum.js new file mode 100644 index 0000000..8ea7773 --- /dev/null +++ b/server/api/node_modules/bcryptjs/src/bcrypt/prng/accum.js @@ -0,0 +1,133 @@ +/* basic entropy accumulator */ +var accum = (function() { + + var pool, // randomness pool + time, // start timestamp + last; // last step timestamp + + /* initialize with default pool */ + function init() { + pool = []; + time = new Date().getTime(); + last = time; + // use Math.random + pool.push((Math.random() * 0xffffffff)|0); + // use current time + pool.push(time|0); + } + + /* perform one step */ + function step() { + if (!to) + return; + if (pool.length >= 255) { // stop at 255 values (1 more is added on fetch) + stop(); + return; + } + var now = new Date().getTime(); + // use actual time difference + pool.push(now-last); + // always compute, occasionally use Math.random + var rnd = (Math.random() * 0xffffffff)|0; + if (now % 2) + pool[pool.length-1] += rnd; + last = now; + to = setTimeout(step, 100+Math.random()*512); // use hypothetical time difference + } + + var to = null; + + /* starts accumulating */ + function start() { + if (to) return; + to = setTimeout(step, 100+Math.random()*512); + if (console.log) + console.log("bcrypt-isaac: collecting entropy..."); + // install collectors + if (typeof window !== 'undefined' && window && window.addEventListener) + window.addEventListener("load", loadCollector, false), + window.addEventListener("mousemove", mouseCollector, false), + window.addEventListener("touchmove", touchCollector, false); + else if (typeof document !== 'undefined' && document && document.attachEvent) + document.attachEvent("onload", loadCollector), + document.attachEvent("onmousemove", mouseCollector); + } + + /* stops accumulating */ + function stop() { + if (!to) return; + clearTimeout(to); to = null; + // uninstall collectors + if (typeof window !== 'undefined' && window && window.removeEventListener) + window.removeEventListener("load", loadCollector, false), + window.removeEventListener("mousemove", mouseCollector, false), + window.removeEventListener("touchmove", touchCollector, false); + else if (typeof document !== 'undefined' && document && document.detachEvent) + document.detachEvent("onload", loadCollector), + document.detachEvent("onmousemove", mouseCollector); + } + + /* fetches the randomness pool */ + function fetch() { + // add overall time difference + pool.push((new Date().getTime()-time)|0); + var res = pool; + init(); + if (console.log) + console.log("bcrypt-isaac: using "+res.length+"/256 samples of entropy"); + // console.log(res); + return res; + } + + /* adds the current time to the top of the pool */ + function addTime() { + pool[pool.length-1] += new Date().getTime() - time; + } + + /* page load collector */ + function loadCollector() { + if (!to || pool.length >= 255) + return; + pool.push(0); + addTime(); + } + + /* mouse events collector */ + function mouseCollector(ev) { + if (!to || pool.length >= 255) + return; + try { + var x = ev.x || ev.clientX || ev.offsetX || 0, + y = ev.y || ev.clientY || ev.offsetY || 0; + if (x != 0 || y != 0) + pool[pool.length-1] += ((x-mouseCollector.last[0]) ^ (y-mouseCollector.last[1])), + addTime(), + mouseCollector.last = [x,y]; + } catch (e) {} + } + mouseCollector.last = [0,0]; + + /* touch events collector */ + function touchCollector(ev) { + if (!to || pool.length >= 255) + return; + try { + var touch = ev.touches[0] || ev.changedTouches[0]; + var x = touch.pageX || touch.clientX || 0, + y = touch.pageY || touch.clientY || 0; + if (x != 0 || y != 0) + pool[pool.length-1] += (x-touchCollector.last[0]) ^ (y-touchCollector.last[1]), + addTime(), + touchCollector.last = [x,y]; + } catch (e) {} + } + touchCollector.last = [0,0]; + + init(); + return { + "start": start, + "stop": stop, + "fetch": fetch + } + +})(); diff --git a/server/api/node_modules/bcryptjs/src/bcrypt/prng/isaac.js b/server/api/node_modules/bcryptjs/src/bcrypt/prng/isaac.js new file mode 100644 index 0000000..e33b0e5 --- /dev/null +++ b/server/api/node_modules/bcryptjs/src/bcrypt/prng/isaac.js @@ -0,0 +1,140 @@ +/* + isaac.js Copyright (c) 2012 Yves-Marie K. Rinquin + + 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. + */ + +/* isaac module pattern */ +var isaac = (function(){ + + /* internal states */ + var m = Array(256), // internal memory + acc = 0, // accumulator + brs = 0, // last result + cnt = 0, // counter + r = Array(256), // result array + gnt = 0, // generation counter + isd = false; // initially seeded + + + /* 32-bit integer safe adder */ + function add(x, y) { + var lsb = (x & 0xffff) + (y & 0xffff), + msb = (x >>> 16) + (y >>> 16) + (lsb >>> 16); + return (msb << 16) | (lsb & 0xffff); + } + + /* initialisation */ + function reset() { + acc = brs = cnt = 0; + for (var i = 0; i < 256; ++i) + m[i] = r[i] = 0; + gnt = 0; + } + + /* seeding function */ + function seed(s) { + var a, b, c, d, e, f, g, h, i; + + /* seeding the seeds of love */ + a = b = c = d = e = f = g = h = 0x9e3779b9; /* the golden ratio */ + + if (s && typeof(s) === 'number') + s = [s]; + + if (s instanceof Array) { + reset(); + for (i = 0; i < s.length; ++i) + r[i & 0xff] += typeof(s[i]) === 'number' ? s[i] : 0; + } + + /* private: seed mixer */ + function seed_mix() { + a ^= b << 11; d = add(d, a); b = add(b, c); + b ^= c >>> 2; e = add(e, b); c = add(c, d); + c ^= d << 8; f = add(f, c); d = add(d, e); + d ^= e >>> 16; g = add(g, d); e = add(e, f); + e ^= f << 10; h = add(h, e); f = add(f, g); + f ^= g >>> 4; a = add(a, f); g = add(g, h); + g ^= h << 8; b = add(b, g); h = add(h, a); + h ^= a >>> 9; c = add(c, h); a = add(a, b); + } + + for (i = 0; i < 4; i++) /* scramble it */ + seed_mix(); + + for (i = 0; i < 256; i += 8) { + if (s) /* use all the information in the seed */ + a = add(a, r[i + 0]), b = add(b, r[i + 1]), + c = add(c, r[i + 2]), d = add(d, r[i + 3]), + e = add(e, r[i + 4]), f = add(f, r[i + 5]), + g = add(g, r[i + 6]), h = add(h, r[i + 7]); + seed_mix(); + /* fill in m[] with messy stuff */ + m[i + 0] = a; m[i + 1] = b; m[i + 2] = c; m[i + 3] = d; + m[i + 4] = e; m[i + 5] = f; m[i + 6] = g; m[i + 7] = h; + } + if (s) + /* do a second pass to make all of the seed affect all of m[] */ + for (i = 0; i < 256; i += 8) + a = add(a, m[i + 0]), b = add(b, m[i + 1]), + c = add(c, m[i + 2]), d = add(d, m[i + 3]), + e = add(e, m[i + 4]), f = add(f, m[i + 5]), + g = add(g, m[i + 6]), h = add(h, m[i + 7]), + seed_mix(), + /* fill in m[] with messy stuff (again) */ + m[i + 0] = a, m[i + 1] = b, m[i + 2] = c, m[i + 3] = d, + m[i + 4] = e, m[i + 5] = f, m[i + 6] = g, m[i + 7] = h; + prng(); /* fill in the first set of results */ + gnt = 256; /* prepare to use the first set of results */; + } + + /* isaac generator, n = number of run */ + function prng(n) { + var i, x, y; + n = n && typeof(n) === 'number' ? Math.abs(Math.floor(n)) : 1; + while (n--) { + cnt = add(cnt, 1); + brs = add(brs, cnt); + for(i = 0; i < 256; i++) { + switch(i & 3) { + case 0: acc ^= acc << 13; break; + case 1: acc ^= acc >>> 6; break; + case 2: acc ^= acc << 2; break; + case 3: acc ^= acc >>> 16; break; + } + acc = add(m[(i + 128) & 0xff], acc); x = m[i]; + m[i] = y = add(m[(x >>> 2) & 0xff], add(acc, brs)); + r[i] = brs = add(m[(y >>> 10) & 0xff], x); + } + } + } + + /* return a random number between */ + return function() { + if (!isd) // seed from accumulator + isd = true, + accum.stop(), + seed(accum.fetch()); + if (!gnt--) + prng(), gnt = 255; + return r[gnt]; + }; +})(); diff --git a/server/api/node_modules/bcryptjs/src/bcrypt/util.js b/server/api/node_modules/bcryptjs/src/bcrypt/util.js new file mode 100644 index 0000000..a149f71 --- /dev/null +++ b/server/api/node_modules/bcryptjs/src/bcrypt/util.js @@ -0,0 +1,33 @@ +/** + * Continues with the callback on the next tick. + * @function + * @param {function(...[*])} callback Callback to execute + * @inner + */ +var nextTick = typeof process !== 'undefined' && process && typeof process.nextTick === 'function' + ? (typeof setImmediate === 'function' ? setImmediate : process.nextTick) + : setTimeout; + +/** + * Converts a JavaScript string to UTF8 bytes. + * @param {string} str String + * @returns {!Array.} UTF8 bytes + * @inner + */ +function stringToBytes(str) { + var out = [], + i = 0; + utfx.encodeUTF16toUTF8(function() { + if (i >= str.length) return null; + return str.charCodeAt(i++); + }, function(b) { + out.push(b); + }); + return out; +} + +//? include("util/base64.js"); + +//? include("../../node_modules/utfx/dist/utfx-embeddable.js"); + +Date.now = Date.now || function() { return +new Date; }; diff --git a/server/api/node_modules/bcryptjs/src/bcrypt/util/base64.js b/server/api/node_modules/bcryptjs/src/bcrypt/util/base64.js new file mode 100644 index 0000000..deda4af --- /dev/null +++ b/server/api/node_modules/bcryptjs/src/bcrypt/util/base64.js @@ -0,0 +1,115 @@ +// A base64 implementation for the bcrypt algorithm. This is partly non-standard. + +/** + * bcrypt's own non-standard base64 dictionary. + * @type {!Array.} + * @const + * @inner + **/ +var BASE64_CODE = "./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(''); + +/** + * @type {!Array.} + * @const + * @inner + **/ +var BASE64_INDEX = [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, + 1, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, -1, -1, -1, -1, + -1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 24, 25, 26, 27, -1, -1, -1, -1, -1, -1, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, -1, -1, -1, -1, -1]; + +/** + * @type {!function(...number):string} + * @inner + */ +var stringFromCharCode = String.fromCharCode; + +/** + * Encodes a byte array to base64 with up to len bytes of input. + * @param {!Array.} b Byte array + * @param {number} len Maximum input length + * @returns {string} + * @inner + */ +function base64_encode(b, len) { + var off = 0, + rs = [], + c1, c2; + if (len <= 0 || len > b.length) + throw Error("Illegal len: "+len); + while (off < len) { + c1 = b[off++] & 0xff; + rs.push(BASE64_CODE[(c1 >> 2) & 0x3f]); + c1 = (c1 & 0x03) << 4; + if (off >= len) { + rs.push(BASE64_CODE[c1 & 0x3f]); + break; + } + c2 = b[off++] & 0xff; + c1 |= (c2 >> 4) & 0x0f; + rs.push(BASE64_CODE[c1 & 0x3f]); + c1 = (c2 & 0x0f) << 2; + if (off >= len) { + rs.push(BASE64_CODE[c1 & 0x3f]); + break; + } + c2 = b[off++] & 0xff; + c1 |= (c2 >> 6) & 0x03; + rs.push(BASE64_CODE[c1 & 0x3f]); + rs.push(BASE64_CODE[c2 & 0x3f]); + } + return rs.join(''); +} + +/** + * Decodes a base64 encoded string to up to len bytes of output. + * @param {string} s String to decode + * @param {number} len Maximum output length + * @returns {!Array.} + * @inner + */ +function base64_decode(s, len) { + var off = 0, + slen = s.length, + olen = 0, + rs = [], + c1, c2, c3, c4, o, code; + if (len <= 0) + throw Error("Illegal len: "+len); + while (off < slen - 1 && olen < len) { + code = s.charCodeAt(off++); + c1 = code < BASE64_INDEX.length ? BASE64_INDEX[code] : -1; + code = s.charCodeAt(off++); + c2 = code < BASE64_INDEX.length ? BASE64_INDEX[code] : -1; + if (c1 == -1 || c2 == -1) + break; + o = (c1 << 2) >>> 0; + o |= (c2 & 0x30) >> 4; + rs.push(stringFromCharCode(o)); + if (++olen >= len || off >= slen) + break; + code = s.charCodeAt(off++); + c3 = code < BASE64_INDEX.length ? BASE64_INDEX[code] : -1; + if (c3 == -1) + break; + o = ((c2 & 0x0f) << 4) >>> 0; + o |= (c3 & 0x3c) >> 2; + rs.push(stringFromCharCode(o)); + if (++olen >= len || off >= slen) + break; + code = s.charCodeAt(off++); + c4 = code < BASE64_INDEX.length ? BASE64_INDEX[code] : -1; + o = ((c3 & 0x03) << 6) >>> 0; + o |= c4; + rs.push(stringFromCharCode(o)); + ++olen; + } + var res = []; + for (off = 0; off + Copyright (c) 2012 Shane Girish + Copyright (c) 2014 Daniel Wirtz + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + 3. The name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/** + * @license bcrypt.js (c) 2013 Daniel Wirtz + * Released under the Apache License, Version 2.0 + * see: https://github.com/dcodeIO/bcrypt.js for details + */ +(function(global, factory) { + + /* AMD */ if (typeof define === 'function' && define["amd"]) + define([], factory); + /* CommonJS */ else if (typeof require === 'function' && typeof module === "object" && module && module["exports"]) + module["exports"] = factory(); + /* Global */ else + (global["dcodeIO"] = global["dcodeIO"] || {})["bcrypt"] = factory(); + +}(this, function() { + "use strict"; + + //? include("bcrypt.js"); + + return bcrypt; +})); diff --git a/server/api/node_modules/bcryptjs/tests/quickbrown.txt b/server/api/node_modules/bcryptjs/tests/quickbrown.txt new file mode 100644 index 0000000..81e850f --- /dev/null +++ b/server/api/node_modules/bcryptjs/tests/quickbrown.txt @@ -0,0 +1,150 @@ +Sentences that contain all letters commonly used in a language +-------------------------------------------------------------- + +Markus Kuhn -- 2012-04-11 + +This is an example of a plain-text file encoded in UTF-8. + + +Danish (da) +--------- + + Quizdeltagerne spiste jordbær med fløde, mens cirkusklovnen + Wolther spillede på xylofon. + (= Quiz contestants were eating strawbery with cream while Wolther + the circus clown played on xylophone.) + +German (de) +----------- + + Falsches Üben von Xylophonmusik quält jeden größeren Zwerg + (= Wrongful practicing of xylophone music tortures every larger dwarf) + + Zwölf Boxkämpfer jagten Eva quer über den Sylter Deich + (= Twelve boxing fighters hunted Eva across the dike of Sylt) + + Heizölrückstoßabdämpfung + (= fuel oil recoil absorber) + (jqvwxy missing, but all non-ASCII letters in one word) + +Greek (el) +---------- + + Γαζέες καὶ μυρτιὲς δὲν θὰ βρῶ πιὰ στὸ χρυσαφὶ ξέφωτο + (= No more shall I see acacias or myrtles in the golden clearing) + + Ξεσκεπάζω τὴν ψυχοφθόρα βδελυγμία + (= I uncover the soul-destroying abhorrence) + +English (en) +------------ + + The quick brown fox jumps over the lazy dog + +Spanish (es) +------------ + + El pingüino Wenceslao hizo kilómetros bajo exhaustiva lluvia y + frío, añoraba a su querido cachorro. + (Contains every letter and every accent, but not every combination + of vowel + acute.) + +French (fr) +----------- + + Portez ce vieux whisky au juge blond qui fume sur son île intérieure, à + côté de l'alcôve ovoïde, où les bûches se consument dans l'âtre, ce + qui lui permet de penser à la cænogenèse de l'être dont il est question + dans la cause ambiguë entendue à Moÿ, dans un capharnaüm qui, + pense-t-il, diminue çà et là la qualité de son œuvre. + + l'île exiguë + Où l'obèse jury mûr + Fête l'haï volapük, + Âne ex aéquo au whist, + Ôtez ce vœu déçu. + + Le cœur déçu mais l'âme plutôt naïve, Louÿs rêva de crapaüter en + canoë au delà des îles, près du mälström où brûlent les novæ. + +Irish Gaelic (ga) +----------------- + + D'fhuascail Íosa, Úrmhac na hÓighe Beannaithe, pór Éava agus Ádhaimh + +Hungarian (hu) +-------------- + + Árvíztűrő tükörfúrógép + (= flood-proof mirror-drilling machine, only all non-ASCII letters) + +Icelandic (is) +-------------- + + Kæmi ný öxi hér ykist þjófum nú bæði víl og ádrepa + + Sævör grét áðan því úlpan var ónýt + (some ASCII letters missing) + +Japanese (jp) +------------- + + Hiragana: (Iroha) + + いろはにほへとちりぬるを + わかよたれそつねならむ + うゐのおくやまけふこえて + あさきゆめみしゑひもせす + + Katakana: + + イロハニホヘト チリヌルヲ ワカヨタレソ ツネナラム + ウヰノオクヤマ ケフコエテ アサキユメミシ ヱヒモセスン + +Hebrew (iw) +----------- + + ? דג סקרן שט בים מאוכזב ולפתע מצא לו חברה איך הקליטה + +Polish (pl) +----------- + + Pchnąć w tę łódź jeża lub ośm skrzyń fig + (= To push a hedgehog or eight bins of figs in this boat) + +Russian (ru) +------------ + + В чащах юга жил бы цитрус? Да, но фальшивый экземпляр! + (= Would a citrus live in the bushes of south? Yes, but only a fake one!) + + Съешь же ещё этих мягких французских булок да выпей чаю + (= Eat some more of these fresh French loafs and have some tea) + +Thai (th) +--------- + + [--------------------------|------------------------] + ๏ เป็นมนุษย์สุดประเสริฐเลิศคุณค่า กว่าบรรดาฝูงสัตว์เดรัจฉาน + จงฝ่าฟันพัฒนาวิชาการ อย่าล้างผลาญฤๅเข่นฆ่าบีฑาใคร + ไม่ถือโทษโกรธแช่งซัดฮึดฮัดด่า หัดอภัยเหมือนกีฬาอัชฌาสัย + ปฏิบัติประพฤติกฎกำหนดใจ พูดจาให้จ๊ะๆ จ๋าๆ น่าฟังเอย ฯ + + [The copyright for the Thai example is owned by The Computer + Association of Thailand under the Royal Patronage of His Majesty the + King.] + +Turkish (tr) +------------ + + Pijamalı hasta, yağız şoföre çabucak güvendi. + (=Patient with pajamas, trusted swarthy driver quickly) + + +Special thanks to the people from all over the world who contributed +these sentences since 1999. + +A much larger collection of such pangrams is now available at + + http://en.wikipedia.org/wiki/List_of_pangrams + diff --git a/server/api/node_modules/bcryptjs/tests/suite.js b/server/api/node_modules/bcryptjs/tests/suite.js new file mode 100644 index 0000000..8c8afe1 --- /dev/null +++ b/server/api/node_modules/bcryptjs/tests/suite.js @@ -0,0 +1,197 @@ +var path = require("path"), + fs = require("fs"), + binding = require("bcrypt"), + bcrypt = require(path.join(__dirname, '..', 'index.js'))/*, + isaac = eval( + fs.readFileSync(path.join(__dirname, "..", "src", "bcrypt", "prng", "accum.js"))+ + fs.readFileSync(path.join(__dirname, "..", "src", "bcrypt", "prng", "isaac.js"))+ + " accum.start();"+ + " isaac" + )*/; + +module.exports = { + + "encodeBase64": function(test) { + var str = bcrypt.encodeBase64([0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10], 16); + test.strictEqual(str, "..CA.uOD/eaGAOmJB.yMBu"); + test.done(); + }, + + "decodeBase64": function(test) { + var bytes = bcrypt.decodeBase64("..CA.uOD/eaGAOmJB.yMBv.", 16); + test.deepEqual(bytes, [0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F]); + test.done(); + }, + + "genSaltSync": function(test) { + var salt = bcrypt.genSaltSync(10); + test.ok(salt); + test.ok(typeof salt == 'string'); + test.ok(salt.length > 0); + test.done(); + }, + + "genSalt": function(test) { + bcrypt.genSalt(10, function(err, salt) { + test.ok(salt); + test.ok(typeof salt == 'string'); + test.ok(salt.length > 0); + test.done(); + }); + }, + + "hashSync": function(test) { + test.doesNotThrow(function() { + bcrypt.hashSync("hello", 10); + }); + test.notEqual(bcrypt.hashSync("hello", 10), bcrypt.hashSync("hello", 10)); + test.done(); + }, + + "hash": function(test) { + bcrypt.hash("hello", 10, function(err, hash) { + test.notOk(err); + test.ok(hash); + test.done(); + }); + }, + + "compareSync": function(test) { + var salt1 = bcrypt.genSaltSync(), + hash1 = bcrypt.hashSync("hello", salt1); // $2a$ + var salt2 = bcrypt.genSaltSync().replace(/\$2a\$/, "$2y$"), + hash2 = bcrypt.hashSync("world", salt2); + var salt3 = bcrypt.genSaltSync().replace(/\$2a\$/, "$2b$"), + hash3 = bcrypt.hashSync("hello world", salt3); + + test.strictEqual(hash1.substring(0,4), "$2a$"); + test.ok(bcrypt.compareSync("hello", hash1)); + test.notOk(bcrypt.compareSync("hello", hash2)); + test.notOk(bcrypt.compareSync("hello", hash3)); + + test.strictEqual(hash2.substring(0,4), "$2y$"); + test.ok(bcrypt.compareSync("world", hash2)); + test.notOk(bcrypt.compareSync("world", hash1)); + test.notOk(bcrypt.compareSync("world", hash3)); + + test.strictEqual(hash3.substring(0,4), "$2b$"); + test.ok(bcrypt.compareSync("hello world", hash3)); + test.notOk(bcrypt.compareSync("hello world", hash1)); + test.notOk(bcrypt.compareSync("hello world", hash2)); + + test.done(); + }, + + "compare": function(test) { + var salt1 = bcrypt.genSaltSync(), + hash1 = bcrypt.hashSync("hello", salt1); // $2a$ + var salt2 = bcrypt.genSaltSync(); + salt2 = salt2.substring(0,2)+'y'+salt2.substring(3); // $2y$ + var hash2 = bcrypt.hashSync("world", salt2); + bcrypt.compare("hello", hash1, function(err, same) { + test.notOk(err); + test.ok(same); + bcrypt.compare("hello", hash2, function(err, same) { + test.notOk(err); + test.notOk(same); + bcrypt.compare("world", hash2, function(err, same) { + test.notOk(err); + test.ok(same); + bcrypt.compare("world", hash1, function(err, same) { + test.notOk(err); + test.notOk(same); + test.done(); + }); + }); + }); + }); + }, + + "getSalt": function(test) { + var hash1 = bcrypt.hashSync("hello", bcrypt.genSaltSync()); + var salt = bcrypt.getSalt(hash1); + var hash2 = bcrypt.hashSync("hello", salt); + test.equal(hash1, hash2); + test.done(); + }, + + "getRounds": function(test) { + var hash1 = bcrypt.hashSync("hello", bcrypt.genSaltSync()); + test.equal(bcrypt.getRounds(hash1), 10); + test.done(); + }, + + "progress": function(test) { + bcrypt.genSalt(12, function(err, salt) { + test.ok(!err); + var progress = []; + bcrypt.hash("hello world", salt, function(err, hash) { + test.ok(!err); + test.ok(typeof hash === 'string'); + test.ok(progress.length >= 2); + test.strictEqual(progress[0], 0); + test.strictEqual(progress[progress.length-1], 1); + test.done(); + }, function(n) { + progress.push(n); + }); + }); + }, + + "promise": function(test) { + bcrypt.genSalt(10) + .then(function(salt) { + bcrypt.hash("hello", salt) + .then(function(hash) { + test.ok(hash); + bcrypt.compare("hello", hash) + .then(function(result) { + test.ok(result); + bcrypt.genSalt(/* no args */) + .then(function(salt) { + test.ok(salt); + test.done(); + }, function(err) { + test.fail(err, null, "promise rejected"); + }); + }, function(err) { + test.fail(err, null, "promise rejected"); + }); + }, function(err) { + test.fail(err, null, 'promise rejected'); + }); + }, function(err) { + test.fail(err, null, "promise rejected"); + }); + }, + + "compat": { + "quickbrown": function(test) { + var pass = fs.readFileSync(path.join(__dirname, "quickbrown.txt"))+"", + salt = bcrypt.genSaltSync(), + hash1 = binding.hashSync(pass, salt), + hash2 = bcrypt.hashSync(pass, salt); + test.equal(hash1, hash2); + test.done(); + }, + + "roundsOOB": function(test) { + var salt1 = bcrypt.genSaltSync(0), // $10$ like not set + salt2 = binding.genSaltSync(0); + test.strictEqual(salt1.substring(0, 7), "$2a$10$"); + test.strictEqual(salt2.substring(0, 7), "$2a$10$"); + + salt1 = bcrypt.genSaltSync(3); // $04$ is lower cap + salt2 = bcrypt.genSaltSync(3); + test.strictEqual(salt1.substring(0, 7), "$2a$04$"); + test.strictEqual(salt2.substring(0, 7), "$2a$04$"); + + salt1 = bcrypt.genSaltSync(32); // $31$ is upper cap + salt2 = bcrypt.genSaltSync(32); + test.strictEqual(salt1.substring(0, 7), "$2a$31$"); + test.strictEqual(salt2.substring(0, 7), "$2a$31$"); + + test.done(); + } + } +}; diff --git a/server/api/node_modules/binary-extensions/binary-extensions.json b/server/api/node_modules/binary-extensions/binary-extensions.json new file mode 100644 index 0000000..ac08048 --- /dev/null +++ b/server/api/node_modules/binary-extensions/binary-extensions.json @@ -0,0 +1,263 @@ +[ + "3dm", + "3ds", + "3g2", + "3gp", + "7z", + "a", + "aac", + "adp", + "afdesign", + "afphoto", + "afpub", + "ai", + "aif", + "aiff", + "alz", + "ape", + "apk", + "appimage", + "ar", + "arj", + "asf", + "au", + "avi", + "bak", + "baml", + "bh", + "bin", + "bk", + "bmp", + "btif", + "bz2", + "bzip2", + "cab", + "caf", + "cgm", + "class", + "cmx", + "cpio", + "cr2", + "cur", + "dat", + "dcm", + "deb", + "dex", + "djvu", + "dll", + "dmg", + "dng", + "doc", + "docm", + "docx", + "dot", + "dotm", + "dra", + "DS_Store", + "dsk", + "dts", + "dtshd", + "dvb", + "dwg", + "dxf", + "ecelp4800", + "ecelp7470", + "ecelp9600", + "egg", + "eol", + "eot", + "epub", + "exe", + "f4v", + "fbs", + "fh", + "fla", + "flac", + "flatpak", + "fli", + "flv", + "fpx", + "fst", + "fvt", + "g3", + "gh", + "gif", + "graffle", + "gz", + "gzip", + "h261", + "h263", + "h264", + "icns", + "ico", + "ief", + "img", + "ipa", + "iso", + "jar", + "jpeg", + "jpg", + "jpgv", + "jpm", + "jxr", + "key", + "ktx", + "lha", + "lib", + "lvp", + "lz", + "lzh", + "lzma", + "lzo", + "m3u", + "m4a", + "m4v", + "mar", + "mdi", + "mht", + "mid", + "midi", + "mj2", + "mka", + "mkv", + "mmr", + "mng", + "mobi", + "mov", + "movie", + "mp3", + "mp4", + "mp4a", + "mpeg", + "mpg", + "mpga", + "mxu", + "nef", + "npx", + "numbers", + "nupkg", + "o", + "odp", + "ods", + "odt", + "oga", + "ogg", + "ogv", + "otf", + "ott", + "pages", + "pbm", + "pcx", + "pdb", + "pdf", + "pea", + "pgm", + "pic", + "png", + "pnm", + "pot", + "potm", + "potx", + "ppa", + "ppam", + "ppm", + "pps", + "ppsm", + "ppsx", + "ppt", + "pptm", + "pptx", + "psd", + "pya", + "pyc", + "pyo", + "pyv", + "qt", + "rar", + "ras", + "raw", + "resources", + "rgb", + "rip", + "rlc", + "rmf", + "rmvb", + "rpm", + "rtf", + "rz", + "s3m", + "s7z", + "scpt", + "sgi", + "shar", + "snap", + "sil", + "sketch", + "slk", + "smv", + "snk", + "so", + "stl", + "suo", + "sub", + "swf", + "tar", + "tbz", + "tbz2", + "tga", + "tgz", + "thmx", + "tif", + "tiff", + "tlz", + "ttc", + "ttf", + "txz", + "udf", + "uvh", + "uvi", + "uvm", + "uvp", + "uvs", + "uvu", + "viv", + "vob", + "war", + "wav", + "wax", + "wbmp", + "wdp", + "weba", + "webm", + "webp", + "whl", + "wim", + "wm", + "wma", + "wmv", + "wmx", + "woff", + "woff2", + "wrm", + "wvx", + "xbm", + "xif", + "xla", + "xlam", + "xls", + "xlsb", + "xlsm", + "xlsx", + "xlt", + "xltm", + "xltx", + "xm", + "xmind", + "xpi", + "xpm", + "xwd", + "xz", + "z", + "zip", + "zipx" +] diff --git a/server/api/node_modules/binary-extensions/binary-extensions.json.d.ts b/server/api/node_modules/binary-extensions/binary-extensions.json.d.ts new file mode 100644 index 0000000..94a248c --- /dev/null +++ b/server/api/node_modules/binary-extensions/binary-extensions.json.d.ts @@ -0,0 +1,3 @@ +declare const binaryExtensionsJson: readonly string[]; + +export = binaryExtensionsJson; diff --git a/server/api/node_modules/binary-extensions/index.d.ts b/server/api/node_modules/binary-extensions/index.d.ts new file mode 100644 index 0000000..f469ac5 --- /dev/null +++ b/server/api/node_modules/binary-extensions/index.d.ts @@ -0,0 +1,14 @@ +/** +List of binary file extensions. + +@example +``` +import binaryExtensions = require('binary-extensions'); + +console.log(binaryExtensions); +//=> ['3ds', '3g2', …] +``` +*/ +declare const binaryExtensions: readonly string[]; + +export = binaryExtensions; diff --git a/server/api/node_modules/binary-extensions/index.js b/server/api/node_modules/binary-extensions/index.js new file mode 100644 index 0000000..d46e468 --- /dev/null +++ b/server/api/node_modules/binary-extensions/index.js @@ -0,0 +1 @@ +module.exports = require('./binary-extensions.json'); diff --git a/server/api/node_modules/binary-extensions/license b/server/api/node_modules/binary-extensions/license new file mode 100644 index 0000000..5493a1a --- /dev/null +++ b/server/api/node_modules/binary-extensions/license @@ -0,0 +1,10 @@ +MIT License + +Copyright (c) Sindre Sorhus (https://sindresorhus.com) +Copyright (c) Paul Miller (https://paulmillr.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. diff --git a/server/api/node_modules/binary-extensions/package.json b/server/api/node_modules/binary-extensions/package.json new file mode 100644 index 0000000..4710c33 --- /dev/null +++ b/server/api/node_modules/binary-extensions/package.json @@ -0,0 +1,40 @@ +{ + "name": "binary-extensions", + "version": "2.3.0", + "description": "List of binary file extensions", + "license": "MIT", + "repository": "sindresorhus/binary-extensions", + "funding": "https://github.com/sponsors/sindresorhus", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "https://sindresorhus.com" + }, + "sideEffects": false, + "engines": { + "node": ">=8" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "files": [ + "index.js", + "index.d.ts", + "binary-extensions.json", + "binary-extensions.json.d.ts" + ], + "keywords": [ + "binary", + "extensions", + "extension", + "file", + "json", + "list", + "array" + ], + "devDependencies": { + "ava": "^1.4.1", + "tsd": "^0.7.2", + "xo": "^0.24.0" + } +} diff --git a/server/api/node_modules/binary-extensions/readme.md b/server/api/node_modules/binary-extensions/readme.md new file mode 100644 index 0000000..88519b3 --- /dev/null +++ b/server/api/node_modules/binary-extensions/readme.md @@ -0,0 +1,25 @@ +# binary-extensions + +> List of binary file extensions + +The list is just a [JSON file](binary-extensions.json) and can be used anywhere. + +## Install + +```sh +npm install binary-extensions +``` + +## Usage + +```js +const binaryExtensions = require('binary-extensions'); + +console.log(binaryExtensions); +//=> ['3ds', '3g2', …] +``` + +## Related + +- [is-binary-path](https://github.com/sindresorhus/is-binary-path) - Check if a filepath is a binary file +- [text-extensions](https://github.com/sindresorhus/text-extensions) - List of text file extensions diff --git a/server/api/node_modules/body-parser/HISTORY.md b/server/api/node_modules/body-parser/HISTORY.md new file mode 100644 index 0000000..c9b0b5b --- /dev/null +++ b/server/api/node_modules/body-parser/HISTORY.md @@ -0,0 +1,680 @@ +1.20.4 / 2025-12-01 +=================== + + * deps: qs@~6.14.0 + * deps: use tilde notation for dependencies + * deps: http-errors@~2.0.1 + * deps: raw-body@~2.5.3 + +1.20.3 / 2024-09-10 +=================== + + * deps: qs@6.13.0 + * add `depth` option to customize the depth level in the parser + * IMPORTANT: The default `depth` level for parsing URL-encoded data is now `32` (previously was `Infinity`) + +1.20.2 / 2023-02-21 +=================== + + * Fix strict json error message on Node.js 19+ + * deps: content-type@~1.0.5 + - perf: skip value escaping when unnecessary + * deps: raw-body@2.5.2 + +1.20.1 / 2022-10-06 +=================== + + * deps: qs@6.11.0 + * perf: remove unnecessary object clone + +1.20.0 / 2022-04-02 +=================== + + * Fix error message for json parse whitespace in `strict` + * Fix internal error when inflated body exceeds limit + * Prevent loss of async hooks context + * Prevent hanging when request already read + * deps: depd@2.0.0 + - Replace internal `eval` usage with `Function` constructor + - Use instance methods on `process` to check for listeners + * deps: http-errors@2.0.0 + - deps: depd@2.0.0 + - deps: statuses@2.0.1 + * deps: on-finished@2.4.1 + * deps: qs@6.10.3 + * deps: raw-body@2.5.1 + - deps: http-errors@2.0.0 + +1.19.2 / 2022-02-15 +=================== + + * deps: bytes@3.1.2 + * deps: qs@6.9.7 + * Fix handling of `__proto__` keys + * deps: raw-body@2.4.3 + - deps: bytes@3.1.2 + +1.19.1 / 2021-12-10 +=================== + + * deps: bytes@3.1.1 + * deps: http-errors@1.8.1 + - deps: inherits@2.0.4 + - deps: toidentifier@1.0.1 + - deps: setprototypeof@1.2.0 + * deps: qs@6.9.6 + * deps: raw-body@2.4.2 + - deps: bytes@3.1.1 + - deps: http-errors@1.8.1 + * deps: safe-buffer@5.2.1 + * deps: type-is@~1.6.18 + +1.19.0 / 2019-04-25 +=================== + + * deps: bytes@3.1.0 + - Add petabyte (`pb`) support + * deps: http-errors@1.7.2 + - Set constructor name when possible + - deps: setprototypeof@1.1.1 + - deps: statuses@'>= 1.5.0 < 2' + * deps: iconv-lite@0.4.24 + - Added encoding MIK + * deps: qs@6.7.0 + - Fix parsing array brackets after index + * deps: raw-body@2.4.0 + - deps: bytes@3.1.0 + - deps: http-errors@1.7.2 + - deps: iconv-lite@0.4.24 + * deps: type-is@~1.6.17 + - deps: mime-types@~2.1.24 + - perf: prevent internal `throw` on invalid type + +1.18.3 / 2018-05-14 +=================== + + * Fix stack trace for strict json parse error + * deps: depd@~1.1.2 + - perf: remove argument reassignment + * deps: http-errors@~1.6.3 + - deps: depd@~1.1.2 + - deps: setprototypeof@1.1.0 + - deps: statuses@'>= 1.3.1 < 2' + * deps: iconv-lite@0.4.23 + - Fix loading encoding with year appended + - Fix deprecation warnings on Node.js 10+ + * deps: qs@6.5.2 + * deps: raw-body@2.3.3 + - deps: http-errors@1.6.3 + - deps: iconv-lite@0.4.23 + * deps: type-is@~1.6.16 + - deps: mime-types@~2.1.18 + +1.18.2 / 2017-09-22 +=================== + + * deps: debug@2.6.9 + * perf: remove argument reassignment + +1.18.1 / 2017-09-12 +=================== + + * deps: content-type@~1.0.4 + - perf: remove argument reassignment + - perf: skip parameter parsing when no parameters + * deps: iconv-lite@0.4.19 + - Fix ISO-8859-1 regression + - Update Windows-1255 + * deps: qs@6.5.1 + - Fix parsing & compacting very deep objects + * deps: raw-body@2.3.2 + - deps: iconv-lite@0.4.19 + +1.18.0 / 2017-09-08 +=================== + + * Fix JSON strict violation error to match native parse error + * Include the `body` property on verify errors + * Include the `type` property on all generated errors + * Use `http-errors` to set status code on errors + * deps: bytes@3.0.0 + * deps: debug@2.6.8 + * deps: depd@~1.1.1 + - Remove unnecessary `Buffer` loading + * deps: http-errors@~1.6.2 + - deps: depd@1.1.1 + * deps: iconv-lite@0.4.18 + - Add support for React Native + - Add a warning if not loaded as utf-8 + - Fix CESU-8 decoding in Node.js 8 + - Improve speed of ISO-8859-1 encoding + * deps: qs@6.5.0 + * deps: raw-body@2.3.1 + - Use `http-errors` for standard emitted errors + - deps: bytes@3.0.0 + - deps: iconv-lite@0.4.18 + - perf: skip buffer decoding on overage chunk + * perf: prevent internal `throw` when missing charset + +1.17.2 / 2017-05-17 +=================== + + * deps: debug@2.6.7 + - Fix `DEBUG_MAX_ARRAY_LENGTH` + - deps: ms@2.0.0 + * deps: type-is@~1.6.15 + - deps: mime-types@~2.1.15 + +1.17.1 / 2017-03-06 +=================== + + * deps: qs@6.4.0 + - Fix regression parsing keys starting with `[` + +1.17.0 / 2017-03-01 +=================== + + * deps: http-errors@~1.6.1 + - Make `message` property enumerable for `HttpError`s + - deps: setprototypeof@1.0.3 + * deps: qs@6.3.1 + - Fix compacting nested arrays + +1.16.1 / 2017-02-10 +=================== + + * deps: debug@2.6.1 + - Fix deprecation messages in WebStorm and other editors + - Undeprecate `DEBUG_FD` set to `1` or `2` + +1.16.0 / 2017-01-17 +=================== + + * deps: debug@2.6.0 + - Allow colors in workers + - Deprecated `DEBUG_FD` environment variable + - Fix error when running under React Native + - Use same color for same namespace + - deps: ms@0.7.2 + * deps: http-errors@~1.5.1 + - deps: inherits@2.0.3 + - deps: setprototypeof@1.0.2 + - deps: statuses@'>= 1.3.1 < 2' + * deps: iconv-lite@0.4.15 + - Added encoding MS-31J + - Added encoding MS-932 + - Added encoding MS-936 + - Added encoding MS-949 + - Added encoding MS-950 + - Fix GBK/GB18030 handling of Euro character + * deps: qs@6.2.1 + - Fix array parsing from skipping empty values + * deps: raw-body@~2.2.0 + - deps: iconv-lite@0.4.15 + * deps: type-is@~1.6.14 + - deps: mime-types@~2.1.13 + +1.15.2 / 2016-06-19 +=================== + + * deps: bytes@2.4.0 + * deps: content-type@~1.0.2 + - perf: enable strict mode + * deps: http-errors@~1.5.0 + - Use `setprototypeof` module to replace `__proto__` setting + - deps: statuses@'>= 1.3.0 < 2' + - perf: enable strict mode + * deps: qs@6.2.0 + * deps: raw-body@~2.1.7 + - deps: bytes@2.4.0 + - perf: remove double-cleanup on happy path + * deps: type-is@~1.6.13 + - deps: mime-types@~2.1.11 + +1.15.1 / 2016-05-05 +=================== + + * deps: bytes@2.3.0 + - Drop partial bytes on all parsed units + - Fix parsing byte string that looks like hex + * deps: raw-body@~2.1.6 + - deps: bytes@2.3.0 + * deps: type-is@~1.6.12 + - deps: mime-types@~2.1.10 + +1.15.0 / 2016-02-10 +=================== + + * deps: http-errors@~1.4.0 + - Add `HttpError` export, for `err instanceof createError.HttpError` + - deps: inherits@2.0.1 + - deps: statuses@'>= 1.2.1 < 2' + * deps: qs@6.1.0 + * deps: type-is@~1.6.11 + - deps: mime-types@~2.1.9 + +1.14.2 / 2015-12-16 +=================== + + * deps: bytes@2.2.0 + * deps: iconv-lite@0.4.13 + * deps: qs@5.2.0 + * deps: raw-body@~2.1.5 + - deps: bytes@2.2.0 + - deps: iconv-lite@0.4.13 + * deps: type-is@~1.6.10 + - deps: mime-types@~2.1.8 + +1.14.1 / 2015-09-27 +=================== + + * Fix issue where invalid charset results in 400 when `verify` used + * deps: iconv-lite@0.4.12 + - Fix CESU-8 decoding in Node.js 4.x + * deps: raw-body@~2.1.4 + - Fix masking critical errors from `iconv-lite` + - deps: iconv-lite@0.4.12 + * deps: type-is@~1.6.9 + - deps: mime-types@~2.1.7 + +1.14.0 / 2015-09-16 +=================== + + * Fix JSON strict parse error to match syntax errors + * Provide static `require` analysis in `urlencoded` parser + * deps: depd@~1.1.0 + - Support web browser loading + * deps: qs@5.1.0 + * deps: raw-body@~2.1.3 + - Fix sync callback when attaching data listener causes sync read + * deps: type-is@~1.6.8 + - Fix type error when given invalid type to match against + - deps: mime-types@~2.1.6 + +1.13.3 / 2015-07-31 +=================== + + * deps: type-is@~1.6.6 + - deps: mime-types@~2.1.4 + +1.13.2 / 2015-07-05 +=================== + + * deps: iconv-lite@0.4.11 + * deps: qs@4.0.0 + - Fix dropping parameters like `hasOwnProperty` + - Fix user-visible incompatibilities from 3.1.0 + - Fix various parsing edge cases + * deps: raw-body@~2.1.2 + - Fix error stack traces to skip `makeError` + - deps: iconv-lite@0.4.11 + * deps: type-is@~1.6.4 + - deps: mime-types@~2.1.2 + - perf: enable strict mode + - perf: remove argument reassignment + +1.13.1 / 2015-06-16 +=================== + + * deps: qs@2.4.2 + - Downgraded from 3.1.0 because of user-visible incompatibilities + +1.13.0 / 2015-06-14 +=================== + + * Add `statusCode` property on `Error`s, in addition to `status` + * Change `type` default to `application/json` for JSON parser + * Change `type` default to `application/x-www-form-urlencoded` for urlencoded parser + * Provide static `require` analysis + * Use the `http-errors` module to generate errors + * deps: bytes@2.1.0 + - Slight optimizations + * deps: iconv-lite@0.4.10 + - The encoding UTF-16 without BOM now defaults to UTF-16LE when detection fails + - Leading BOM is now removed when decoding + * deps: on-finished@~2.3.0 + - Add defined behavior for HTTP `CONNECT` requests + - Add defined behavior for HTTP `Upgrade` requests + - deps: ee-first@1.1.1 + * deps: qs@3.1.0 + - Fix dropping parameters like `hasOwnProperty` + - Fix various parsing edge cases + - Parsed object now has `null` prototype + * deps: raw-body@~2.1.1 + - Use `unpipe` module for unpiping requests + - deps: iconv-lite@0.4.10 + * deps: type-is@~1.6.3 + - deps: mime-types@~2.1.1 + - perf: reduce try block size + - perf: remove bitwise operations + * perf: enable strict mode + * perf: remove argument reassignment + * perf: remove delete call + +1.12.4 / 2015-05-10 +=================== + + * deps: debug@~2.2.0 + * deps: qs@2.4.2 + - Fix allowing parameters like `constructor` + * deps: on-finished@~2.2.1 + * deps: raw-body@~2.0.1 + - Fix a false-positive when unpiping in Node.js 0.8 + - deps: bytes@2.0.1 + * deps: type-is@~1.6.2 + - deps: mime-types@~2.0.11 + +1.12.3 / 2015-04-15 +=================== + + * Slight efficiency improvement when not debugging + * deps: depd@~1.0.1 + * deps: iconv-lite@0.4.8 + - Add encoding alias UNICODE-1-1-UTF-7 + * deps: raw-body@1.3.4 + - Fix hanging callback if request aborts during read + - deps: iconv-lite@0.4.8 + +1.12.2 / 2015-03-16 +=================== + + * deps: qs@2.4.1 + - Fix error when parameter `hasOwnProperty` is present + +1.12.1 / 2015-03-15 +=================== + + * deps: debug@~2.1.3 + - Fix high intensity foreground color for bold + - deps: ms@0.7.0 + * deps: type-is@~1.6.1 + - deps: mime-types@~2.0.10 + +1.12.0 / 2015-02-13 +=================== + + * add `debug` messages + * accept a function for the `type` option + * use `content-type` to parse `Content-Type` headers + * deps: iconv-lite@0.4.7 + - Gracefully support enumerables on `Object.prototype` + * deps: raw-body@1.3.3 + - deps: iconv-lite@0.4.7 + * deps: type-is@~1.6.0 + - fix argument reassignment + - fix false-positives in `hasBody` `Transfer-Encoding` check + - support wildcard for both type and subtype (`*/*`) + - deps: mime-types@~2.0.9 + +1.11.0 / 2015-01-30 +=================== + + * make internal `extended: true` depth limit infinity + * deps: type-is@~1.5.6 + - deps: mime-types@~2.0.8 + +1.10.2 / 2015-01-20 +=================== + + * deps: iconv-lite@0.4.6 + - Fix rare aliases of single-byte encodings + * deps: raw-body@1.3.2 + - deps: iconv-lite@0.4.6 + +1.10.1 / 2015-01-01 +=================== + + * deps: on-finished@~2.2.0 + * deps: type-is@~1.5.5 + - deps: mime-types@~2.0.7 + +1.10.0 / 2014-12-02 +=================== + + * make internal `extended: true` array limit dynamic + +1.9.3 / 2014-11-21 +================== + + * deps: iconv-lite@0.4.5 + - Fix Windows-31J and X-SJIS encoding support + * deps: qs@2.3.3 + - Fix `arrayLimit` behavior + * deps: raw-body@1.3.1 + - deps: iconv-lite@0.4.5 + * deps: type-is@~1.5.3 + - deps: mime-types@~2.0.3 + +1.9.2 / 2014-10-27 +================== + + * deps: qs@2.3.2 + - Fix parsing of mixed objects and values + +1.9.1 / 2014-10-22 +================== + + * deps: on-finished@~2.1.1 + - Fix handling of pipelined requests + * deps: qs@2.3.0 + - Fix parsing of mixed implicit and explicit arrays + * deps: type-is@~1.5.2 + - deps: mime-types@~2.0.2 + +1.9.0 / 2014-09-24 +================== + + * include the charset in "unsupported charset" error message + * include the encoding in "unsupported content encoding" error message + * deps: depd@~1.0.0 + +1.8.4 / 2014-09-23 +================== + + * fix content encoding to be case-insensitive + +1.8.3 / 2014-09-19 +================== + + * deps: qs@2.2.4 + - Fix issue with object keys starting with numbers truncated + +1.8.2 / 2014-09-15 +================== + + * deps: depd@0.4.5 + +1.8.1 / 2014-09-07 +================== + + * deps: media-typer@0.3.0 + * deps: type-is@~1.5.1 + +1.8.0 / 2014-09-05 +================== + + * make empty-body-handling consistent between chunked requests + - empty `json` produces `{}` + - empty `raw` produces `new Buffer(0)` + - empty `text` produces `''` + - empty `urlencoded` produces `{}` + * deps: qs@2.2.3 + - Fix issue where first empty value in array is discarded + * deps: type-is@~1.5.0 + - fix `hasbody` to be true for `content-length: 0` + +1.7.0 / 2014-09-01 +================== + + * add `parameterLimit` option to `urlencoded` parser + * change `urlencoded` extended array limit to 100 + * respond with 413 when over `parameterLimit` in `urlencoded` + +1.6.7 / 2014-08-29 +================== + + * deps: qs@2.2.2 + - Remove unnecessary cloning + +1.6.6 / 2014-08-27 +================== + + * deps: qs@2.2.0 + - Array parsing fix + - Performance improvements + +1.6.5 / 2014-08-16 +================== + + * deps: on-finished@2.1.0 + +1.6.4 / 2014-08-14 +================== + + * deps: qs@1.2.2 + +1.6.3 / 2014-08-10 +================== + + * deps: qs@1.2.1 + +1.6.2 / 2014-08-07 +================== + + * deps: qs@1.2.0 + - Fix parsing array of objects + +1.6.1 / 2014-08-06 +================== + + * deps: qs@1.1.0 + - Accept urlencoded square brackets + - Accept empty values in implicit array notation + +1.6.0 / 2014-08-05 +================== + + * deps: qs@1.0.2 + - Complete rewrite + - Limits array length to 20 + - Limits object depth to 5 + - Limits parameters to 1,000 + +1.5.2 / 2014-07-27 +================== + + * deps: depd@0.4.4 + - Work-around v8 generating empty stack traces + +1.5.1 / 2014-07-26 +================== + + * deps: depd@0.4.3 + - Fix exception when global `Error.stackTraceLimit` is too low + +1.5.0 / 2014-07-20 +================== + + * deps: depd@0.4.2 + - Add `TRACE_DEPRECATION` environment variable + - Remove non-standard grey color from color output + - Support `--no-deprecation` argument + - Support `--trace-deprecation` argument + * deps: iconv-lite@0.4.4 + - Added encoding UTF-7 + * deps: raw-body@1.3.0 + - deps: iconv-lite@0.4.4 + - Added encoding UTF-7 + - Fix `Cannot switch to old mode now` error on Node.js 0.10+ + * deps: type-is@~1.3.2 + +1.4.3 / 2014-06-19 +================== + + * deps: type-is@1.3.1 + - fix global variable leak + +1.4.2 / 2014-06-19 +================== + + * deps: type-is@1.3.0 + - improve type parsing + +1.4.1 / 2014-06-19 +================== + + * fix urlencoded extended deprecation message + +1.4.0 / 2014-06-19 +================== + + * add `text` parser + * add `raw` parser + * check accepted charset in content-type (accepts utf-8) + * check accepted encoding in content-encoding (accepts identity) + * deprecate `bodyParser()` middleware; use `.json()` and `.urlencoded()` as needed + * deprecate `urlencoded()` without provided `extended` option + * lazy-load urlencoded parsers + * parsers split into files for reduced mem usage + * support gzip and deflate bodies + - set `inflate: false` to turn off + * deps: raw-body@1.2.2 + - Support all encodings from `iconv-lite` + +1.3.1 / 2014-06-11 +================== + + * deps: type-is@1.2.1 + - Switch dependency from mime to mime-types@1.0.0 + +1.3.0 / 2014-05-31 +================== + + * add `extended` option to urlencoded parser + +1.2.2 / 2014-05-27 +================== + + * deps: raw-body@1.1.6 + - assert stream encoding on node.js 0.8 + - assert stream encoding on node.js < 0.10.6 + - deps: bytes@1 + +1.2.1 / 2014-05-26 +================== + + * invoke `next(err)` after request fully read + - prevents hung responses and socket hang ups + +1.2.0 / 2014-05-11 +================== + + * add `verify` option + * deps: type-is@1.2.0 + - support suffix matching + +1.1.2 / 2014-05-11 +================== + + * improve json parser speed + +1.1.1 / 2014-05-11 +================== + + * fix repeated limit parsing with every request + +1.1.0 / 2014-05-10 +================== + + * add `type` option + * deps: pin for safety and consistency + +1.0.2 / 2014-04-14 +================== + + * use `type-is` module + +1.0.1 / 2014-03-20 +================== + + * lower default limits to 100kb diff --git a/server/api/node_modules/body-parser/LICENSE b/server/api/node_modules/body-parser/LICENSE new file mode 100644 index 0000000..386b7b6 --- /dev/null +++ b/server/api/node_modules/body-parser/LICENSE @@ -0,0 +1,23 @@ +(The MIT License) + +Copyright (c) 2014 Jonathan Ong +Copyright (c) 2014-2015 Douglas Christopher Wilson + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/server/api/node_modules/body-parser/README.md b/server/api/node_modules/body-parser/README.md new file mode 100644 index 0000000..f6661b7 --- /dev/null +++ b/server/api/node_modules/body-parser/README.md @@ -0,0 +1,476 @@ +# body-parser + +[![NPM Version][npm-version-image]][npm-url] +[![NPM Downloads][npm-downloads-image]][npm-url] +[![Build Status][ci-image]][ci-url] +[![Test Coverage][coveralls-image]][coveralls-url] +[![OpenSSF Scorecard Badge][ossf-scorecard-badge]][ossf-scorecard-visualizer] + +Node.js body parsing middleware. + +Parse incoming request bodies in a middleware before your handlers, available +under the `req.body` property. + +**Note** As `req.body`'s shape is based on user-controlled input, all +properties and values in this object are untrusted and should be validated +before trusting. For example, `req.body.foo.toString()` may fail in multiple +ways, for example the `foo` property may not be there or may not be a string, +and `toString` may not be a function and instead a string or other user input. + +[Learn about the anatomy of an HTTP transaction in Node.js](https://nodejs.org/en/docs/guides/anatomy-of-an-http-transaction/). + +_This does not handle multipart bodies_, due to their complex and typically +large nature. For multipart bodies, you may be interested in the following +modules: + + * [busboy](https://www.npmjs.org/package/busboy#readme) and + [connect-busboy](https://www.npmjs.org/package/connect-busboy#readme) + * [multiparty](https://www.npmjs.org/package/multiparty#readme) and + [connect-multiparty](https://www.npmjs.org/package/connect-multiparty#readme) + * [formidable](https://www.npmjs.org/package/formidable#readme) + * [multer](https://www.npmjs.org/package/multer#readme) + +This module provides the following parsers: + + * [JSON body parser](#bodyparserjsonoptions) + * [Raw body parser](#bodyparserrawoptions) + * [Text body parser](#bodyparsertextoptions) + * [URL-encoded form body parser](#bodyparserurlencodedoptions) + +Other body parsers you might be interested in: + +- [body](https://www.npmjs.org/package/body#readme) +- [co-body](https://www.npmjs.org/package/co-body#readme) + +## Installation + +```sh +$ npm install body-parser +``` + +## API + +```js +var bodyParser = require('body-parser') +``` + +The `bodyParser` object exposes various factories to create middlewares. All +middlewares will populate the `req.body` property with the parsed body when +the `Content-Type` request header matches the `type` option, or an empty +object (`{}`) if there was no body to parse, the `Content-Type` was not matched, +or an error occurred. + +The various errors returned by this module are described in the +[errors section](#errors). + +### bodyParser.json([options]) + +Returns middleware that only parses `json` and only looks at requests where +the `Content-Type` header matches the `type` option. This parser accepts any +Unicode encoding of the body and supports automatic inflation of `gzip` and +`deflate` encodings. + +A new `body` object containing the parsed data is populated on the `request` +object after the middleware (i.e. `req.body`). + +#### Options + +The `json` function takes an optional `options` object that may contain any of +the following keys: + +##### inflate + +When set to `true`, then deflated (compressed) bodies will be inflated; when +`false`, deflated bodies are rejected. Defaults to `true`. + +##### limit + +Controls the maximum request body size. If this is a number, then the value +specifies the number of bytes; if it is a string, the value is passed to the +[bytes](https://www.npmjs.com/package/bytes) library for parsing. Defaults +to `'100kb'`. + +##### reviver + +The `reviver` option is passed directly to `JSON.parse` as the second +argument. You can find more information on this argument +[in the MDN documentation about JSON.parse](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse#Example.3A_Using_the_reviver_parameter). + +##### strict + +When set to `true`, will only accept arrays and objects; when `false` will +accept anything `JSON.parse` accepts. Defaults to `true`. + +##### type + +The `type` option is used to determine what media type the middleware will +parse. This option can be a string, array of strings, or a function. If not a +function, `type` option is passed directly to the +[type-is](https://www.npmjs.org/package/type-is#readme) library and this can +be an extension name (like `json`), a mime type (like `application/json`), or +a mime type with a wildcard (like `*/*` or `*/json`). If a function, the `type` +option is called as `fn(req)` and the request is parsed if it returns a truthy +value. Defaults to `application/json`. + +##### verify + +The `verify` option, if supplied, is called as `verify(req, res, buf, encoding)`, +where `buf` is a `Buffer` of the raw request body and `encoding` is the +encoding of the request. The parsing can be aborted by throwing an error. + +### bodyParser.raw([options]) + +Returns middleware that parses all bodies as a `Buffer` and only looks at +requests where the `Content-Type` header matches the `type` option. This +parser supports automatic inflation of `gzip` and `deflate` encodings. + +A new `body` object containing the parsed data is populated on the `request` +object after the middleware (i.e. `req.body`). This will be a `Buffer` object +of the body. + +#### Options + +The `raw` function takes an optional `options` object that may contain any of +the following keys: + +##### inflate + +When set to `true`, then deflated (compressed) bodies will be inflated; when +`false`, deflated bodies are rejected. Defaults to `true`. + +##### limit + +Controls the maximum request body size. If this is a number, then the value +specifies the number of bytes; if it is a string, the value is passed to the +[bytes](https://www.npmjs.com/package/bytes) library for parsing. Defaults +to `'100kb'`. + +##### type + +The `type` option is used to determine what media type the middleware will +parse. This option can be a string, array of strings, or a function. +If not a function, `type` option is passed directly to the +[type-is](https://www.npmjs.org/package/type-is#readme) library and this +can be an extension name (like `bin`), a mime type (like +`application/octet-stream`), or a mime type with a wildcard (like `*/*` or +`application/*`). If a function, the `type` option is called as `fn(req)` +and the request is parsed if it returns a truthy value. Defaults to +`application/octet-stream`. + +##### verify + +The `verify` option, if supplied, is called as `verify(req, res, buf, encoding)`, +where `buf` is a `Buffer` of the raw request body and `encoding` is the +encoding of the request. The parsing can be aborted by throwing an error. + +### bodyParser.text([options]) + +Returns middleware that parses all bodies as a string and only looks at +requests where the `Content-Type` header matches the `type` option. This +parser supports automatic inflation of `gzip` and `deflate` encodings. + +A new `body` string containing the parsed data is populated on the `request` +object after the middleware (i.e. `req.body`). This will be a string of the +body. + +#### Options + +The `text` function takes an optional `options` object that may contain any of +the following keys: + +##### defaultCharset + +Specify the default character set for the text content if the charset is not +specified in the `Content-Type` header of the request. Defaults to `utf-8`. + +##### inflate + +When set to `true`, then deflated (compressed) bodies will be inflated; when +`false`, deflated bodies are rejected. Defaults to `true`. + +##### limit + +Controls the maximum request body size. If this is a number, then the value +specifies the number of bytes; if it is a string, the value is passed to the +[bytes](https://www.npmjs.com/package/bytes) library for parsing. Defaults +to `'100kb'`. + +##### type + +The `type` option is used to determine what media type the middleware will +parse. This option can be a string, array of strings, or a function. If not +a function, `type` option is passed directly to the +[type-is](https://www.npmjs.org/package/type-is#readme) library and this can +be an extension name (like `txt`), a mime type (like `text/plain`), or a mime +type with a wildcard (like `*/*` or `text/*`). If a function, the `type` +option is called as `fn(req)` and the request is parsed if it returns a +truthy value. Defaults to `text/plain`. + +##### verify + +The `verify` option, if supplied, is called as `verify(req, res, buf, encoding)`, +where `buf` is a `Buffer` of the raw request body and `encoding` is the +encoding of the request. The parsing can be aborted by throwing an error. + +### bodyParser.urlencoded([options]) + +Returns middleware that only parses `urlencoded` bodies and only looks at +requests where the `Content-Type` header matches the `type` option. This +parser accepts only UTF-8 encoding of the body and supports automatic +inflation of `gzip` and `deflate` encodings. + +A new `body` object containing the parsed data is populated on the `request` +object after the middleware (i.e. `req.body`). This object will contain +key-value pairs, where the value can be a string or array (when `extended` is +`false`), or any type (when `extended` is `true`). + +#### Options + +The `urlencoded` function takes an optional `options` object that may contain +any of the following keys: + +##### extended + +The `extended` option allows to choose between parsing the URL-encoded data +with the `querystring` library (when `false`) or the `qs` library (when +`true`). The "extended" syntax allows for rich objects and arrays to be +encoded into the URL-encoded format, allowing for a JSON-like experience +with URL-encoded. For more information, please +[see the qs library](https://www.npmjs.org/package/qs#readme). + +Defaults to `true`, but using the default has been deprecated. Please +research into the difference between `qs` and `querystring` and choose the +appropriate setting. + +##### inflate + +When set to `true`, then deflated (compressed) bodies will be inflated; when +`false`, deflated bodies are rejected. Defaults to `true`. + +##### limit + +Controls the maximum request body size. If this is a number, then the value +specifies the number of bytes; if it is a string, the value is passed to the +[bytes](https://www.npmjs.com/package/bytes) library for parsing. Defaults +to `'100kb'`. + +##### parameterLimit + +The `parameterLimit` option controls the maximum number of parameters that +are allowed in the URL-encoded data. If a request contains more parameters +than this value, a 413 will be returned to the client. Defaults to `1000`. + +##### type + +The `type` option is used to determine what media type the middleware will +parse. This option can be a string, array of strings, or a function. If not +a function, `type` option is passed directly to the +[type-is](https://www.npmjs.org/package/type-is#readme) library and this can +be an extension name (like `urlencoded`), a mime type (like +`application/x-www-form-urlencoded`), or a mime type with a wildcard (like +`*/x-www-form-urlencoded`). If a function, the `type` option is called as +`fn(req)` and the request is parsed if it returns a truthy value. Defaults +to `application/x-www-form-urlencoded`. + +##### verify + +The `verify` option, if supplied, is called as `verify(req, res, buf, encoding)`, +where `buf` is a `Buffer` of the raw request body and `encoding` is the +encoding of the request. The parsing can be aborted by throwing an error. + +#### depth + +The `depth` option is used to configure the maximum depth of the `qs` library when `extended` is `true`. This allows you to limit the amount of keys that are parsed and can be useful to prevent certain types of abuse. Defaults to `32`. It is recommended to keep this value as low as possible. + +## Errors + +The middlewares provided by this module create errors using the +[`http-errors` module](https://www.npmjs.com/package/http-errors). The errors +will typically have a `status`/`statusCode` property that contains the suggested +HTTP response code, an `expose` property to determine if the `message` property +should be displayed to the client, a `type` property to determine the type of +error without matching against the `message`, and a `body` property containing +the read body, if available. + +The following are the common errors created, though any error can come through +for various reasons. + +### content encoding unsupported + +This error will occur when the request had a `Content-Encoding` header that +contained an encoding but the "inflation" option was set to `false`. The +`status` property is set to `415`, the `type` property is set to +`'encoding.unsupported'`, and the `charset` property will be set to the +encoding that is unsupported. + +### entity parse failed + +This error will occur when the request contained an entity that could not be +parsed by the middleware. The `status` property is set to `400`, the `type` +property is set to `'entity.parse.failed'`, and the `body` property is set to +the entity value that failed parsing. + +### entity verify failed + +This error will occur when the request contained an entity that could not be +failed verification by the defined `verify` option. The `status` property is +set to `403`, the `type` property is set to `'entity.verify.failed'`, and the +`body` property is set to the entity value that failed verification. + +### request aborted + +This error will occur when the request is aborted by the client before reading +the body has finished. The `received` property will be set to the number of +bytes received before the request was aborted and the `expected` property is +set to the number of expected bytes. The `status` property is set to `400` +and `type` property is set to `'request.aborted'`. + +### request entity too large + +This error will occur when the request body's size is larger than the "limit" +option. The `limit` property will be set to the byte limit and the `length` +property will be set to the request body's length. The `status` property is +set to `413` and the `type` property is set to `'entity.too.large'`. + +### request size did not match content length + +This error will occur when the request's length did not match the length from +the `Content-Length` header. This typically occurs when the request is malformed, +typically when the `Content-Length` header was calculated based on characters +instead of bytes. The `status` property is set to `400` and the `type` property +is set to `'request.size.invalid'`. + +### stream encoding should not be set + +This error will occur when something called the `req.setEncoding` method prior +to this middleware. This module operates directly on bytes only and you cannot +call `req.setEncoding` when using this module. The `status` property is set to +`500` and the `type` property is set to `'stream.encoding.set'`. + +### stream is not readable + +This error will occur when the request is no longer readable when this middleware +attempts to read it. This typically means something other than a middleware from +this module read the request body already and the middleware was also configured to +read the same request. The `status` property is set to `500` and the `type` +property is set to `'stream.not.readable'`. + +### too many parameters + +This error will occur when the content of the request exceeds the configured +`parameterLimit` for the `urlencoded` parser. The `status` property is set to +`413` and the `type` property is set to `'parameters.too.many'`. + +### unsupported charset "BOGUS" + +This error will occur when the request had a charset parameter in the +`Content-Type` header, but the `iconv-lite` module does not support it OR the +parser does not support it. The charset is contained in the message as well +as in the `charset` property. The `status` property is set to `415`, the +`type` property is set to `'charset.unsupported'`, and the `charset` property +is set to the charset that is unsupported. + +### unsupported content encoding "bogus" + +This error will occur when the request had a `Content-Encoding` header that +contained an unsupported encoding. The encoding is contained in the message +as well as in the `encoding` property. The `status` property is set to `415`, +the `type` property is set to `'encoding.unsupported'`, and the `encoding` +property is set to the encoding that is unsupported. + +### The input exceeded the depth + +This error occurs when using `bodyParser.urlencoded` with the `extended` property set to `true` and the input exceeds the configured `depth` option. The `status` property is set to `400`. It is recommended to review the `depth` option and evaluate if it requires a higher value. When the `depth` option is set to `32` (default value), the error will not be thrown. + +## Examples + +### Express/Connect top-level generic + +This example demonstrates adding a generic JSON and URL-encoded parser as a +top-level middleware, which will parse the bodies of all incoming requests. +This is the simplest setup. + +```js +var express = require('express') +var bodyParser = require('body-parser') + +var app = express() + +// parse application/x-www-form-urlencoded +app.use(bodyParser.urlencoded({ extended: false })) + +// parse application/json +app.use(bodyParser.json()) + +app.use(function (req, res) { + res.setHeader('Content-Type', 'text/plain') + res.write('you posted:\n') + res.end(JSON.stringify(req.body, null, 2)) +}) +``` + +### Express route-specific + +This example demonstrates adding body parsers specifically to the routes that +need them. In general, this is the most recommended way to use body-parser with +Express. + +```js +var express = require('express') +var bodyParser = require('body-parser') + +var app = express() + +// create application/json parser +var jsonParser = bodyParser.json() + +// create application/x-www-form-urlencoded parser +var urlencodedParser = bodyParser.urlencoded({ extended: false }) + +// POST /login gets urlencoded bodies +app.post('/login', urlencodedParser, function (req, res) { + res.send('welcome, ' + req.body.username) +}) + +// POST /api/users gets JSON bodies +app.post('/api/users', jsonParser, function (req, res) { + // create user in req.body +}) +``` + +### Change accepted type for parsers + +All the parsers accept a `type` option which allows you to change the +`Content-Type` that the middleware will parse. + +```js +var express = require('express') +var bodyParser = require('body-parser') + +var app = express() + +// parse various different custom JSON types as JSON +app.use(bodyParser.json({ type: 'application/*+json' })) + +// parse some custom thing into a Buffer +app.use(bodyParser.raw({ type: 'application/vnd.custom-type' })) + +// parse an HTML body into a string +app.use(bodyParser.text({ type: 'text/html' })) +``` + +## License + +[MIT](LICENSE) + +[ci-image]: https://badgen.net/github/checks/expressjs/body-parser/master?label=ci +[ci-url]: https://github.com/expressjs/body-parser/actions/workflows/ci.yml +[coveralls-image]: https://badgen.net/coveralls/c/github/expressjs/body-parser/master +[coveralls-url]: https://coveralls.io/r/expressjs/body-parser?branch=master +[node-version-image]: https://badgen.net/npm/node/body-parser +[node-version-url]: https://nodejs.org/en/download +[npm-downloads-image]: https://badgen.net/npm/dm/body-parser +[npm-url]: https://npmjs.org/package/body-parser +[npm-version-image]: https://badgen.net/npm/v/body-parser +[ossf-scorecard-badge]: https://api.scorecard.dev/projects/github.com/expressjs/body-parser/badge +[ossf-scorecard-visualizer]: https://ossf.github.io/scorecard-visualizer/#/projects/github.com/expressjs/body-parser \ No newline at end of file diff --git a/server/api/node_modules/body-parser/index.js b/server/api/node_modules/body-parser/index.js new file mode 100644 index 0000000..bb24d73 --- /dev/null +++ b/server/api/node_modules/body-parser/index.js @@ -0,0 +1,156 @@ +/*! + * body-parser + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var deprecate = require('depd')('body-parser') + +/** + * Cache of loaded parsers. + * @private + */ + +var parsers = Object.create(null) + +/** + * @typedef Parsers + * @type {function} + * @property {function} json + * @property {function} raw + * @property {function} text + * @property {function} urlencoded + */ + +/** + * Module exports. + * @type {Parsers} + */ + +exports = module.exports = deprecate.function(bodyParser, + 'bodyParser: use individual json/urlencoded middlewares') + +/** + * JSON parser. + * @public + */ + +Object.defineProperty(exports, 'json', { + configurable: true, + enumerable: true, + get: createParserGetter('json') +}) + +/** + * Raw parser. + * @public + */ + +Object.defineProperty(exports, 'raw', { + configurable: true, + enumerable: true, + get: createParserGetter('raw') +}) + +/** + * Text parser. + * @public + */ + +Object.defineProperty(exports, 'text', { + configurable: true, + enumerable: true, + get: createParserGetter('text') +}) + +/** + * URL-encoded parser. + * @public + */ + +Object.defineProperty(exports, 'urlencoded', { + configurable: true, + enumerable: true, + get: createParserGetter('urlencoded') +}) + +/** + * Create a middleware to parse json and urlencoded bodies. + * + * @param {object} [options] + * @return {function} + * @deprecated + * @public + */ + +function bodyParser (options) { + // use default type for parsers + var opts = Object.create(options || null, { + type: { + configurable: true, + enumerable: true, + value: undefined, + writable: true + } + }) + + var _urlencoded = exports.urlencoded(opts) + var _json = exports.json(opts) + + return function bodyParser (req, res, next) { + _json(req, res, function (err) { + if (err) return next(err) + _urlencoded(req, res, next) + }) + } +} + +/** + * Create a getter for loading a parser. + * @private + */ + +function createParserGetter (name) { + return function get () { + return loadParser(name) + } +} + +/** + * Load a parser module. + * @private + */ + +function loadParser (parserName) { + var parser = parsers[parserName] + + if (parser !== undefined) { + return parser + } + + // this uses a switch for static require analysis + switch (parserName) { + case 'json': + parser = require('./lib/types/json') + break + case 'raw': + parser = require('./lib/types/raw') + break + case 'text': + parser = require('./lib/types/text') + break + case 'urlencoded': + parser = require('./lib/types/urlencoded') + break + } + + // store to prevent invoking require() + return (parsers[parserName] = parser) +} diff --git a/server/api/node_modules/body-parser/lib/read.js b/server/api/node_modules/body-parser/lib/read.js new file mode 100644 index 0000000..fce6283 --- /dev/null +++ b/server/api/node_modules/body-parser/lib/read.js @@ -0,0 +1,205 @@ +/*! + * body-parser + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var createError = require('http-errors') +var destroy = require('destroy') +var getBody = require('raw-body') +var iconv = require('iconv-lite') +var onFinished = require('on-finished') +var unpipe = require('unpipe') +var zlib = require('zlib') + +/** + * Module exports. + */ + +module.exports = read + +/** + * Read a request into a buffer and parse. + * + * @param {object} req + * @param {object} res + * @param {function} next + * @param {function} parse + * @param {function} debug + * @param {object} options + * @private + */ + +function read (req, res, next, parse, debug, options) { + var length + var opts = options + var stream + + // flag as parsed + req._body = true + + // read options + var encoding = opts.encoding !== null + ? opts.encoding + : null + var verify = opts.verify + + try { + // get the content stream + stream = contentstream(req, debug, opts.inflate) + length = stream.length + stream.length = undefined + } catch (err) { + return next(err) + } + + // set raw-body options + opts.length = length + opts.encoding = verify + ? null + : encoding + + // assert charset is supported + if (opts.encoding === null && encoding !== null && !iconv.encodingExists(encoding)) { + return next(createError(415, 'unsupported charset "' + encoding.toUpperCase() + '"', { + charset: encoding.toLowerCase(), + type: 'charset.unsupported' + })) + } + + // read body + debug('read body') + getBody(stream, opts, function (error, body) { + if (error) { + var _error + + if (error.type === 'encoding.unsupported') { + // echo back charset + _error = createError(415, 'unsupported charset "' + encoding.toUpperCase() + '"', { + charset: encoding.toLowerCase(), + type: 'charset.unsupported' + }) + } else { + // set status code on error + _error = createError(400, error) + } + + // unpipe from stream and destroy + if (stream !== req) { + unpipe(req) + destroy(stream, true) + } + + // read off entire request + dump(req, function onfinished () { + next(createError(400, _error)) + }) + return + } + + // verify + if (verify) { + try { + debug('verify body') + verify(req, res, body, encoding) + } catch (err) { + next(createError(403, err, { + body: body, + type: err.type || 'entity.verify.failed' + })) + return + } + } + + // parse + var str = body + try { + debug('parse body') + str = typeof body !== 'string' && encoding !== null + ? iconv.decode(body, encoding) + : body + req.body = parse(str) + } catch (err) { + next(createError(400, err, { + body: str, + type: err.type || 'entity.parse.failed' + })) + return + } + + next() + }) +} + +/** + * Get the content stream of the request. + * + * @param {object} req + * @param {function} debug + * @param {boolean} [inflate=true] + * @return {object} + * @api private + */ + +function contentstream (req, debug, inflate) { + var encoding = (req.headers['content-encoding'] || 'identity').toLowerCase() + var length = req.headers['content-length'] + var stream + + debug('content-encoding "%s"', encoding) + + if (inflate === false && encoding !== 'identity') { + throw createError(415, 'content encoding unsupported', { + encoding: encoding, + type: 'encoding.unsupported' + }) + } + + switch (encoding) { + case 'deflate': + stream = zlib.createInflate() + debug('inflate body') + req.pipe(stream) + break + case 'gzip': + stream = zlib.createGunzip() + debug('gunzip body') + req.pipe(stream) + break + case 'identity': + stream = req + stream.length = length + break + default: + throw createError(415, 'unsupported content encoding "' + encoding + '"', { + encoding: encoding, + type: 'encoding.unsupported' + }) + } + + return stream +} + +/** + * Dump the contents of a request. + * + * @param {object} req + * @param {function} callback + * @api private + */ + +function dump (req, callback) { + if (onFinished.isFinished(req)) { + callback(null) + } else { + onFinished(req, callback) + req.resume() + } +} diff --git a/server/api/node_modules/body-parser/lib/types/json.js b/server/api/node_modules/body-parser/lib/types/json.js new file mode 100644 index 0000000..59f3f7e --- /dev/null +++ b/server/api/node_modules/body-parser/lib/types/json.js @@ -0,0 +1,247 @@ +/*! + * body-parser + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var bytes = require('bytes') +var contentType = require('content-type') +var createError = require('http-errors') +var debug = require('debug')('body-parser:json') +var read = require('../read') +var typeis = require('type-is') + +/** + * Module exports. + */ + +module.exports = json + +/** + * RegExp to match the first non-space in a string. + * + * Allowed whitespace is defined in RFC 7159: + * + * ws = *( + * %x20 / ; Space + * %x09 / ; Horizontal tab + * %x0A / ; Line feed or New line + * %x0D ) ; Carriage return + */ + +var FIRST_CHAR_REGEXP = /^[\x20\x09\x0a\x0d]*([^\x20\x09\x0a\x0d])/ // eslint-disable-line no-control-regex + +var JSON_SYNTAX_CHAR = '#' +var JSON_SYNTAX_REGEXP = /#+/g + +/** + * Create a middleware to parse JSON bodies. + * + * @param {object} [options] + * @return {function} + * @public + */ + +function json (options) { + var opts = options || {} + + var limit = typeof opts.limit !== 'number' + ? bytes.parse(opts.limit || '100kb') + : opts.limit + var inflate = opts.inflate !== false + var reviver = opts.reviver + var strict = opts.strict !== false + var type = opts.type || 'application/json' + var verify = opts.verify || false + + if (verify !== false && typeof verify !== 'function') { + throw new TypeError('option verify must be function') + } + + // create the appropriate type checking function + var shouldParse = typeof type !== 'function' + ? typeChecker(type) + : type + + function parse (body) { + if (body.length === 0) { + // special-case empty json body, as it's a common client-side mistake + // TODO: maybe make this configurable or part of "strict" option + return {} + } + + if (strict) { + var first = firstchar(body) + + if (first !== '{' && first !== '[') { + debug('strict violation') + throw createStrictSyntaxError(body, first) + } + } + + try { + debug('parse json') + return JSON.parse(body, reviver) + } catch (e) { + throw normalizeJsonSyntaxError(e, { + message: e.message, + stack: e.stack + }) + } + } + + return function jsonParser (req, res, next) { + if (req._body) { + debug('body already parsed') + next() + return + } + + req.body = req.body || {} + + // skip requests without bodies + if (!typeis.hasBody(req)) { + debug('skip empty body') + next() + return + } + + debug('content-type %j', req.headers['content-type']) + + // determine if request should be parsed + if (!shouldParse(req)) { + debug('skip parsing') + next() + return + } + + // assert charset per RFC 7159 sec 8.1 + var charset = getCharset(req) || 'utf-8' + if (charset.slice(0, 4) !== 'utf-') { + debug('invalid charset') + next(createError(415, 'unsupported charset "' + charset.toUpperCase() + '"', { + charset: charset, + type: 'charset.unsupported' + })) + return + } + + // read + read(req, res, next, parse, debug, { + encoding: charset, + inflate: inflate, + limit: limit, + verify: verify + }) + } +} + +/** + * Create strict violation syntax error matching native error. + * + * @param {string} str + * @param {string} char + * @return {Error} + * @private + */ + +function createStrictSyntaxError (str, char) { + var index = str.indexOf(char) + var partial = '' + + if (index !== -1) { + partial = str.substring(0, index) + JSON_SYNTAX_CHAR + + for (var i = index + 1; i < str.length; i++) { + partial += JSON_SYNTAX_CHAR + } + } + + try { + JSON.parse(partial); /* istanbul ignore next */ throw new SyntaxError('strict violation') + } catch (e) { + return normalizeJsonSyntaxError(e, { + message: e.message.replace(JSON_SYNTAX_REGEXP, function (placeholder) { + return str.substring(index, index + placeholder.length) + }), + stack: e.stack + }) + } +} + +/** + * Get the first non-whitespace character in a string. + * + * @param {string} str + * @return {function} + * @private + */ + +function firstchar (str) { + var match = FIRST_CHAR_REGEXP.exec(str) + + return match + ? match[1] + : undefined +} + +/** + * Get the charset of a request. + * + * @param {object} req + * @api private + */ + +function getCharset (req) { + try { + return (contentType.parse(req).parameters.charset || '').toLowerCase() + } catch (e) { + return undefined + } +} + +/** + * Normalize a SyntaxError for JSON.parse. + * + * @param {SyntaxError} error + * @param {object} obj + * @return {SyntaxError} + */ + +function normalizeJsonSyntaxError (error, obj) { + var keys = Object.getOwnPropertyNames(error) + + for (var i = 0; i < keys.length; i++) { + var key = keys[i] + if (key !== 'stack' && key !== 'message') { + delete error[key] + } + } + + // replace stack before message for Node.js 0.10 and below + error.stack = obj.stack.replace(error.message, obj.message) + error.message = obj.message + + return error +} + +/** + * Get the simple type checker. + * + * @param {string} type + * @return {function} + */ + +function typeChecker (type) { + return function checkType (req) { + return Boolean(typeis(req, type)) + } +} diff --git a/server/api/node_modules/body-parser/lib/types/raw.js b/server/api/node_modules/body-parser/lib/types/raw.js new file mode 100644 index 0000000..f5d1b67 --- /dev/null +++ b/server/api/node_modules/body-parser/lib/types/raw.js @@ -0,0 +1,101 @@ +/*! + * body-parser + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + */ + +var bytes = require('bytes') +var debug = require('debug')('body-parser:raw') +var read = require('../read') +var typeis = require('type-is') + +/** + * Module exports. + */ + +module.exports = raw + +/** + * Create a middleware to parse raw bodies. + * + * @param {object} [options] + * @return {function} + * @api public + */ + +function raw (options) { + var opts = options || {} + + var inflate = opts.inflate !== false + var limit = typeof opts.limit !== 'number' + ? bytes.parse(opts.limit || '100kb') + : opts.limit + var type = opts.type || 'application/octet-stream' + var verify = opts.verify || false + + if (verify !== false && typeof verify !== 'function') { + throw new TypeError('option verify must be function') + } + + // create the appropriate type checking function + var shouldParse = typeof type !== 'function' + ? typeChecker(type) + : type + + function parse (buf) { + return buf + } + + return function rawParser (req, res, next) { + if (req._body) { + debug('body already parsed') + next() + return + } + + req.body = req.body || {} + + // skip requests without bodies + if (!typeis.hasBody(req)) { + debug('skip empty body') + next() + return + } + + debug('content-type %j', req.headers['content-type']) + + // determine if request should be parsed + if (!shouldParse(req)) { + debug('skip parsing') + next() + return + } + + // read + read(req, res, next, parse, debug, { + encoding: null, + inflate: inflate, + limit: limit, + verify: verify + }) + } +} + +/** + * Get the simple type checker. + * + * @param {string} type + * @return {function} + */ + +function typeChecker (type) { + return function checkType (req) { + return Boolean(typeis(req, type)) + } +} diff --git a/server/api/node_modules/body-parser/lib/types/text.js b/server/api/node_modules/body-parser/lib/types/text.js new file mode 100644 index 0000000..083a009 --- /dev/null +++ b/server/api/node_modules/body-parser/lib/types/text.js @@ -0,0 +1,121 @@ +/*! + * body-parser + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + */ + +var bytes = require('bytes') +var contentType = require('content-type') +var debug = require('debug')('body-parser:text') +var read = require('../read') +var typeis = require('type-is') + +/** + * Module exports. + */ + +module.exports = text + +/** + * Create a middleware to parse text bodies. + * + * @param {object} [options] + * @return {function} + * @api public + */ + +function text (options) { + var opts = options || {} + + var defaultCharset = opts.defaultCharset || 'utf-8' + var inflate = opts.inflate !== false + var limit = typeof opts.limit !== 'number' + ? bytes.parse(opts.limit || '100kb') + : opts.limit + var type = opts.type || 'text/plain' + var verify = opts.verify || false + + if (verify !== false && typeof verify !== 'function') { + throw new TypeError('option verify must be function') + } + + // create the appropriate type checking function + var shouldParse = typeof type !== 'function' + ? typeChecker(type) + : type + + function parse (buf) { + return buf + } + + return function textParser (req, res, next) { + if (req._body) { + debug('body already parsed') + next() + return + } + + req.body = req.body || {} + + // skip requests without bodies + if (!typeis.hasBody(req)) { + debug('skip empty body') + next() + return + } + + debug('content-type %j', req.headers['content-type']) + + // determine if request should be parsed + if (!shouldParse(req)) { + debug('skip parsing') + next() + return + } + + // get charset + var charset = getCharset(req) || defaultCharset + + // read + read(req, res, next, parse, debug, { + encoding: charset, + inflate: inflate, + limit: limit, + verify: verify + }) + } +} + +/** + * Get the charset of a request. + * + * @param {object} req + * @api private + */ + +function getCharset (req) { + try { + return (contentType.parse(req).parameters.charset || '').toLowerCase() + } catch (e) { + return undefined + } +} + +/** + * Get the simple type checker. + * + * @param {string} type + * @return {function} + */ + +function typeChecker (type) { + return function checkType (req) { + return Boolean(typeis(req, type)) + } +} diff --git a/server/api/node_modules/body-parser/lib/types/urlencoded.js b/server/api/node_modules/body-parser/lib/types/urlencoded.js new file mode 100644 index 0000000..832992c --- /dev/null +++ b/server/api/node_modules/body-parser/lib/types/urlencoded.js @@ -0,0 +1,300 @@ +/*! + * body-parser + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var bytes = require('bytes') +var contentType = require('content-type') +var createError = require('http-errors') +var debug = require('debug')('body-parser:urlencoded') +var deprecate = require('depd')('body-parser') +var read = require('../read') +var typeis = require('type-is') + +/** + * Module exports. + */ + +module.exports = urlencoded + +/** + * Cache of parser modules. + */ + +var parsers = Object.create(null) + +/** + * Create a middleware to parse urlencoded bodies. + * + * @param {object} [options] + * @return {function} + * @public + */ + +function urlencoded (options) { + var opts = options || {} + + // notice because option default will flip in next major + if (opts.extended === undefined) { + deprecate('undefined extended: provide extended option') + } + + var extended = opts.extended !== false + var inflate = opts.inflate !== false + var limit = typeof opts.limit !== 'number' + ? bytes.parse(opts.limit || '100kb') + : opts.limit + var type = opts.type || 'application/x-www-form-urlencoded' + var verify = opts.verify || false + + if (verify !== false && typeof verify !== 'function') { + throw new TypeError('option verify must be function') + } + + // create the appropriate query parser + var queryparse = extended + ? extendedparser(opts) + : simpleparser(opts) + + // create the appropriate type checking function + var shouldParse = typeof type !== 'function' + ? typeChecker(type) + : type + + function parse (body) { + return body.length + ? queryparse(body) + : {} + } + + return function urlencodedParser (req, res, next) { + if (req._body) { + debug('body already parsed') + next() + return + } + + req.body = req.body || {} + + // skip requests without bodies + if (!typeis.hasBody(req)) { + debug('skip empty body') + next() + return + } + + debug('content-type %j', req.headers['content-type']) + + // determine if request should be parsed + if (!shouldParse(req)) { + debug('skip parsing') + next() + return + } + + // assert charset + var charset = getCharset(req) || 'utf-8' + if (charset !== 'utf-8') { + debug('invalid charset') + next(createError(415, 'unsupported charset "' + charset.toUpperCase() + '"', { + charset: charset, + type: 'charset.unsupported' + })) + return + } + + // read + read(req, res, next, parse, debug, { + debug: debug, + encoding: charset, + inflate: inflate, + limit: limit, + verify: verify + }) + } +} + +/** + * Get the extended query parser. + * + * @param {object} options + */ + +function extendedparser (options) { + var parameterLimit = options.parameterLimit !== undefined + ? options.parameterLimit + : 1000 + var depth = options.depth !== undefined ? options.depth : 32 + var parse = parser('qs') + + if (isNaN(parameterLimit) || parameterLimit < 1) { + throw new TypeError('option parameterLimit must be a positive number') + } + + if (isNaN(depth) || depth < 0) { + throw new TypeError('option depth must be a zero or a positive number') + } + + if (isFinite(parameterLimit)) { + parameterLimit = parameterLimit | 0 + } + + return function queryparse (body) { + var paramCount = parameterCount(body, parameterLimit) + + if (paramCount === undefined) { + debug('too many parameters') + throw createError(413, 'too many parameters', { + type: 'parameters.too.many' + }) + } + + var arrayLimit = Math.max(100, paramCount) + + debug('parse extended urlencoding') + try { + return parse(body, { + allowPrototypes: true, + arrayLimit: arrayLimit, + depth: depth, + strictDepth: true, + parameterLimit: parameterLimit + }) + } catch (err) { + if (err instanceof RangeError) { + throw createError(400, 'The input exceeded the depth', { + type: 'querystring.parse.rangeError' + }) + } else { + throw err + } + } + } +} + +/** + * Get the charset of a request. + * + * @param {object} req + * @api private + */ + +function getCharset (req) { + try { + return (contentType.parse(req).parameters.charset || '').toLowerCase() + } catch (e) { + return undefined + } +} + +/** + * Count the number of parameters, stopping once limit reached + * + * @param {string} body + * @param {number} limit + * @api private + */ + +function parameterCount (body, limit) { + var count = 0 + var index = 0 + + while ((index = body.indexOf('&', index)) !== -1) { + count++ + index++ + + if (count === limit) { + return undefined + } + } + + return count +} + +/** + * Get parser for module name dynamically. + * + * @param {string} name + * @return {function} + * @api private + */ + +function parser (name) { + var mod = parsers[name] + + if (mod !== undefined) { + return mod.parse + } + + // this uses a switch for static require analysis + switch (name) { + case 'qs': + mod = require('qs') + break + case 'querystring': + mod = require('querystring') + break + } + + // store to prevent invoking require() + parsers[name] = mod + + return mod.parse +} + +/** + * Get the simple query parser. + * + * @param {object} options + */ + +function simpleparser (options) { + var parameterLimit = options.parameterLimit !== undefined + ? options.parameterLimit + : 1000 + var parse = parser('querystring') + + if (isNaN(parameterLimit) || parameterLimit < 1) { + throw new TypeError('option parameterLimit must be a positive number') + } + + if (isFinite(parameterLimit)) { + parameterLimit = parameterLimit | 0 + } + + return function queryparse (body) { + var paramCount = parameterCount(body, parameterLimit) + + if (paramCount === undefined) { + debug('too many parameters') + throw createError(413, 'too many parameters', { + type: 'parameters.too.many' + }) + } + + debug('parse urlencoding') + return parse(body, undefined, undefined, { maxKeys: parameterLimit }) + } +} + +/** + * Get the simple type checker. + * + * @param {string} type + * @return {function} + */ + +function typeChecker (type) { + return function checkType (req) { + return Boolean(typeis(req, type)) + } +} diff --git a/server/api/node_modules/body-parser/package.json b/server/api/node_modules/body-parser/package.json new file mode 100644 index 0000000..c8e61c1 --- /dev/null +++ b/server/api/node_modules/body-parser/package.json @@ -0,0 +1,55 @@ +{ + "name": "body-parser", + "description": "Node.js body parsing middleware", + "version": "1.20.4", + "contributors": [ + "Douglas Christopher Wilson ", + "Jonathan Ong (http://jongleberry.com)" + ], + "license": "MIT", + "repository": "expressjs/body-parser", + "dependencies": { + "bytes": "~3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "~1.2.0", + "http-errors": "~2.0.1", + "iconv-lite": "~0.4.24", + "on-finished": "~2.4.1", + "qs": "~6.14.0", + "raw-body": "~2.5.3", + "type-is": "~1.6.18", + "unpipe": "~1.0.0" + }, + "devDependencies": { + "eslint": "8.34.0", + "eslint-config-standard": "14.1.1", + "eslint-plugin-import": "2.27.5", + "eslint-plugin-markdown": "3.0.0", + "eslint-plugin-node": "11.1.0", + "eslint-plugin-promise": "6.1.1", + "eslint-plugin-standard": "4.1.0", + "methods": "1.1.2", + "mocha": "10.2.0", + "nyc": "15.1.0", + "safe-buffer": "5.2.1", + "supertest": "6.3.3" + }, + "files": [ + "lib/", + "LICENSE", + "HISTORY.md", + "index.js" + ], + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + }, + "scripts": { + "lint": "eslint .", + "test": "mocha --require test/support/env --reporter spec --check-leaks --bail test/", + "test-ci": "nyc --reporter=lcov --reporter=text npm test", + "test-cov": "nyc --reporter=html --reporter=text npm test" + } +} diff --git a/server/api/node_modules/brace-expansion/LICENSE b/server/api/node_modules/brace-expansion/LICENSE new file mode 100644 index 0000000..de32266 --- /dev/null +++ b/server/api/node_modules/brace-expansion/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2013 Julian Gruber + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/server/api/node_modules/brace-expansion/README.md b/server/api/node_modules/brace-expansion/README.md new file mode 100644 index 0000000..6b4e0e1 --- /dev/null +++ b/server/api/node_modules/brace-expansion/README.md @@ -0,0 +1,129 @@ +# brace-expansion + +[Brace expansion](https://www.gnu.org/software/bash/manual/html_node/Brace-Expansion.html), +as known from sh/bash, in JavaScript. + +[![build status](https://secure.travis-ci.org/juliangruber/brace-expansion.svg)](http://travis-ci.org/juliangruber/brace-expansion) +[![downloads](https://img.shields.io/npm/dm/brace-expansion.svg)](https://www.npmjs.org/package/brace-expansion) +[![Greenkeeper badge](https://badges.greenkeeper.io/juliangruber/brace-expansion.svg)](https://greenkeeper.io/) + +[![testling badge](https://ci.testling.com/juliangruber/brace-expansion.png)](https://ci.testling.com/juliangruber/brace-expansion) + +## Example + +```js +var expand = require('brace-expansion'); + +expand('file-{a,b,c}.jpg') +// => ['file-a.jpg', 'file-b.jpg', 'file-c.jpg'] + +expand('-v{,,}') +// => ['-v', '-v', '-v'] + +expand('file{0..2}.jpg') +// => ['file0.jpg', 'file1.jpg', 'file2.jpg'] + +expand('file-{a..c}.jpg') +// => ['file-a.jpg', 'file-b.jpg', 'file-c.jpg'] + +expand('file{2..0}.jpg') +// => ['file2.jpg', 'file1.jpg', 'file0.jpg'] + +expand('file{0..4..2}.jpg') +// => ['file0.jpg', 'file2.jpg', 'file4.jpg'] + +expand('file-{a..e..2}.jpg') +// => ['file-a.jpg', 'file-c.jpg', 'file-e.jpg'] + +expand('file{00..10..5}.jpg') +// => ['file00.jpg', 'file05.jpg', 'file10.jpg'] + +expand('{{A..C},{a..c}}') +// => ['A', 'B', 'C', 'a', 'b', 'c'] + +expand('ppp{,config,oe{,conf}}') +// => ['ppp', 'pppconfig', 'pppoe', 'pppoeconf'] +``` + +## API + +```js +var expand = require('brace-expansion'); +``` + +### var expanded = expand(str) + +Return an array of all possible and valid expansions of `str`. If none are +found, `[str]` is returned. + +Valid expansions are: + +```js +/^(.*,)+(.+)?$/ +// {a,b,...} +``` + +A comma separated list of options, like `{a,b}` or `{a,{b,c}}` or `{,a,}`. + +```js +/^-?\d+\.\.-?\d+(\.\.-?\d+)?$/ +// {x..y[..incr]} +``` + +A numeric sequence from `x` to `y` inclusive, with optional increment. +If `x` or `y` start with a leading `0`, all the numbers will be padded +to have equal length. Negative numbers and backwards iteration work too. + +```js +/^-?\d+\.\.-?\d+(\.\.-?\d+)?$/ +// {x..y[..incr]} +``` + +An alphabetic sequence from `x` to `y` inclusive, with optional increment. +`x` and `y` must be exactly one character, and if given, `incr` must be a +number. + +For compatibility reasons, the string `${` is not eligible for brace expansion. + +## Installation + +With [npm](https://npmjs.org) do: + +```bash +npm install brace-expansion +``` + +## Contributors + +- [Julian Gruber](https://github.com/juliangruber) +- [Isaac Z. Schlueter](https://github.com/isaacs) + +## Sponsors + +This module is proudly supported by my [Sponsors](https://github.com/juliangruber/sponsors)! + +Do you want to support modules like this to improve their quality, stability and weigh in on new features? Then please consider donating to my [Patreon](https://www.patreon.com/juliangruber). Not sure how much of my modules you're using? Try [feross/thanks](https://github.com/feross/thanks)! + +## License + +(MIT) + +Copyright (c) 2013 Julian Gruber <julian@juliangruber.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. diff --git a/server/api/node_modules/brace-expansion/index.js b/server/api/node_modules/brace-expansion/index.js new file mode 100644 index 0000000..87ecd30 --- /dev/null +++ b/server/api/node_modules/brace-expansion/index.js @@ -0,0 +1,203 @@ +var concatMap = require('concat-map'); +var balanced = require('balanced-match'); + +module.exports = expandTop; + +var escSlash = '\0SLASH'+Math.random()+'\0'; +var escOpen = '\0OPEN'+Math.random()+'\0'; +var escClose = '\0CLOSE'+Math.random()+'\0'; +var escComma = '\0COMMA'+Math.random()+'\0'; +var escPeriod = '\0PERIOD'+Math.random()+'\0'; + +function numeric(str) { + return parseInt(str, 10) == str + ? parseInt(str, 10) + : str.charCodeAt(0); +} + +function escapeBraces(str) { + return str.split('\\\\').join(escSlash) + .split('\\{').join(escOpen) + .split('\\}').join(escClose) + .split('\\,').join(escComma) + .split('\\.').join(escPeriod); +} + +function unescapeBraces(str) { + return str.split(escSlash).join('\\') + .split(escOpen).join('{') + .split(escClose).join('}') + .split(escComma).join(',') + .split(escPeriod).join('.'); +} + + +// Basically just str.split(","), but handling cases +// where we have nested braced sections, which should be +// treated as individual members, like {a,{b,c},d} +function parseCommaParts(str) { + if (!str) + return ['']; + + var parts = []; + var m = balanced('{', '}', str); + + if (!m) + return str.split(','); + + var pre = m.pre; + var body = m.body; + var post = m.post; + var p = pre.split(','); + + p[p.length-1] += '{' + body + '}'; + var postParts = parseCommaParts(post); + if (post.length) { + p[p.length-1] += postParts.shift(); + p.push.apply(p, postParts); + } + + parts.push.apply(parts, p); + + return parts; +} + +function expandTop(str, options) { + if (!str) + return []; + + options = options || {}; + var max = options.max == null ? Infinity : options.max; + + // I don't know why Bash 4.3 does this, but it does. + // Anything starting with {} will have the first two bytes preserved + // but *only* at the top level, so {},a}b will not expand to anything, + // but a{},b}c will be expanded to [a}c,abc]. + // One could argue that this is a bug in Bash, but since the goal of + // this module is to match Bash's rules, we escape a leading {} + if (str.substr(0, 2) === '{}') { + str = '\\{\\}' + str.substr(2); + } + + return expand(escapeBraces(str), max, true).map(unescapeBraces); +} + +function identity(e) { + return e; +} + +function embrace(str) { + return '{' + str + '}'; +} +function isPadded(el) { + return /^-?0\d/.test(el); +} + +function lte(i, y) { + return i <= y; +} +function gte(i, y) { + return i >= y; +} + +function expand(str, max, isTop) { + var expansions = []; + + var m = balanced('{', '}', str); + if (!m || /\$$/.test(m.pre)) return [str]; + + var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body); + var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body); + var isSequence = isNumericSequence || isAlphaSequence; + var isOptions = m.body.indexOf(',') >= 0; + if (!isSequence && !isOptions) { + // {a},b} + if (m.post.match(/,(?!,).*\}/)) { + str = m.pre + '{' + m.body + escClose + m.post; + return expand(str, max, true); + } + return [str]; + } + + var n; + if (isSequence) { + n = m.body.split(/\.\./); + } else { + n = parseCommaParts(m.body); + if (n.length === 1) { + // x{{a,b}}y ==> x{a}y x{b}y + n = expand(n[0], max, false).map(embrace); + if (n.length === 1) { + var post = m.post.length + ? expand(m.post, max, false) + : ['']; + return post.map(function(p) { + return m.pre + n[0] + p; + }); + } + } + } + + // at this point, n is the parts, and we know it's not a comma set + // with a single entry. + + // no need to expand pre, since it is guaranteed to be free of brace-sets + var pre = m.pre; + var post = m.post.length + ? expand(m.post, max, false) + : ['']; + + var N; + + if (isSequence) { + var x = numeric(n[0]); + var y = numeric(n[1]); + var width = Math.max(n[0].length, n[1].length) + var incr = n.length == 3 + ? Math.max(Math.abs(numeric(n[2])), 1) + : 1; + var test = lte; + var reverse = y < x; + if (reverse) { + incr *= -1; + test = gte; + } + var pad = n.some(isPadded); + + N = []; + + for (var i = x; test(i, y); i += incr) { + var c; + if (isAlphaSequence) { + c = String.fromCharCode(i); + if (c === '\\') + c = ''; + } else { + c = String(i); + if (pad) { + var need = width - c.length; + if (need > 0) { + var z = new Array(need + 1).join('0'); + if (i < 0) + c = '-' + z + c.slice(1); + else + c = z + c; + } + } + } + N.push(c); + } + } else { + N = concatMap(n, function(el) { return expand(el, max, false) }); + } + + for (var j = 0; j < N.length; j++) { + for (var k = 0; k < post.length && expansions.length < max; k++) { + var expansion = pre + N[j] + post[k]; + if (!isTop || isSequence || expansion) + expansions.push(expansion); + } + } + + return expansions; +} diff --git a/server/api/node_modules/brace-expansion/package.json b/server/api/node_modules/brace-expansion/package.json new file mode 100644 index 0000000..ff14975 --- /dev/null +++ b/server/api/node_modules/brace-expansion/package.json @@ -0,0 +1,50 @@ +{ + "name": "brace-expansion", + "description": "Brace expansion as known from sh/bash", + "version": "1.1.14", + "repository": { + "type": "git", + "url": "git://github.com/juliangruber/brace-expansion.git" + }, + "homepage": "https://github.com/juliangruber/brace-expansion", + "main": "index.js", + "scripts": { + "test": "tape test/*.js", + "gentest": "bash test/generate.sh", + "bench": "matcha test/perf/bench.js" + }, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + }, + "devDependencies": { + "matcha": "^0.7.0", + "tape": "^4.6.0" + }, + "keywords": [], + "author": { + "name": "Julian Gruber", + "email": "mail@juliangruber.com", + "url": "http://juliangruber.com" + }, + "license": "MIT", + "testling": { + "files": "test/*.js", + "browsers": [ + "ie/8..latest", + "firefox/20..latest", + "firefox/nightly", + "chrome/25..latest", + "chrome/canary", + "opera/12..latest", + "opera/next", + "safari/5.1..latest", + "ipad/6.0..latest", + "iphone/6.0..latest", + "android-browser/4.2..latest" + ] + }, + "publishConfig": { + "tag": "1.x" + } +} diff --git a/server/api/node_modules/braces/LICENSE b/server/api/node_modules/braces/LICENSE new file mode 100644 index 0000000..9af4a67 --- /dev/null +++ b/server/api/node_modules/braces/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014-present, Jon Schlinkert. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/server/api/node_modules/braces/README.md b/server/api/node_modules/braces/README.md new file mode 100644 index 0000000..f59dd60 --- /dev/null +++ b/server/api/node_modules/braces/README.md @@ -0,0 +1,586 @@ +# braces [![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=W8YFZ425KND68) [![NPM version](https://img.shields.io/npm/v/braces.svg?style=flat)](https://www.npmjs.com/package/braces) [![NPM monthly downloads](https://img.shields.io/npm/dm/braces.svg?style=flat)](https://npmjs.org/package/braces) [![NPM total downloads](https://img.shields.io/npm/dt/braces.svg?style=flat)](https://npmjs.org/package/braces) [![Linux Build Status](https://img.shields.io/travis/micromatch/braces.svg?style=flat&label=Travis)](https://travis-ci.org/micromatch/braces) + +> Bash-like brace expansion, implemented in JavaScript. Safer than other brace expansion libs, with complete support for the Bash 4.3 braces specification, without sacrificing speed. + +Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support. + +## Install + +Install with [npm](https://www.npmjs.com/): + +```sh +$ npm install --save braces +``` + +## v3.0.0 Released!! + +See the [changelog](CHANGELOG.md) for details. + +## Why use braces? + +Brace patterns make globs more powerful by adding the ability to match specific ranges and sequences of characters. + +- **Accurate** - complete support for the [Bash 4.3 Brace Expansion](www.gnu.org/software/bash/) specification (passes all of the Bash braces tests) +- **[fast and performant](#benchmarks)** - Starts fast, runs fast and [scales well](#performance) as patterns increase in complexity. +- **Organized code base** - The parser and compiler are easy to maintain and update when edge cases crop up. +- **Well-tested** - Thousands of test assertions, and passes all of the Bash, minimatch, and [brace-expansion](https://github.com/juliangruber/brace-expansion) unit tests (as of the date this was written). +- **Safer** - You shouldn't have to worry about users defining aggressive or malicious brace patterns that can break your application. Braces takes measures to prevent malicious regex that can be used for DDoS attacks (see [catastrophic backtracking](https://www.regular-expressions.info/catastrophic.html)). +- [Supports lists](#lists) - (aka "sets") `a/{b,c}/d` => `['a/b/d', 'a/c/d']` +- [Supports sequences](#sequences) - (aka "ranges") `{01..03}` => `['01', '02', '03']` +- [Supports steps](#steps) - (aka "increments") `{2..10..2}` => `['2', '4', '6', '8', '10']` +- [Supports escaping](#escaping) - To prevent evaluation of special characters. + +## Usage + +The main export is a function that takes one or more brace `patterns` and `options`. + +```js +const braces = require('braces'); +// braces(patterns[, options]); + +console.log(braces(['{01..05}', '{a..e}'])); +//=> ['(0[1-5])', '([a-e])'] + +console.log(braces(['{01..05}', '{a..e}'], { expand: true })); +//=> ['01', '02', '03', '04', '05', 'a', 'b', 'c', 'd', 'e'] +``` + +### Brace Expansion vs. Compilation + +By default, brace patterns are compiled into strings that are optimized for creating regular expressions and matching. + +**Compiled** + +```js +console.log(braces('a/{x,y,z}/b')); +//=> ['a/(x|y|z)/b'] +console.log(braces(['a/{01..20}/b', 'a/{1..5}/b'])); +//=> [ 'a/(0[1-9]|1[0-9]|20)/b', 'a/([1-5])/b' ] +``` + +**Expanded** + +Enable brace expansion by setting the `expand` option to true, or by using [braces.expand()](#expand) (returns an array similar to what you'd expect from Bash, or `echo {1..5}`, or [minimatch](https://github.com/isaacs/minimatch)): + +```js +console.log(braces('a/{x,y,z}/b', { expand: true })); +//=> ['a/x/b', 'a/y/b', 'a/z/b'] + +console.log(braces.expand('{01..10}')); +//=> ['01','02','03','04','05','06','07','08','09','10'] +``` + +### Lists + +Expand lists (like Bash "sets"): + +```js +console.log(braces('a/{foo,bar,baz}/*.js')); +//=> ['a/(foo|bar|baz)/*.js'] + +console.log(braces.expand('a/{foo,bar,baz}/*.js')); +//=> ['a/foo/*.js', 'a/bar/*.js', 'a/baz/*.js'] +``` + +### Sequences + +Expand ranges of characters (like Bash "sequences"): + +```js +console.log(braces.expand('{1..3}')); // ['1', '2', '3'] +console.log(braces.expand('a/{1..3}/b')); // ['a/1/b', 'a/2/b', 'a/3/b'] +console.log(braces('{a..c}', { expand: true })); // ['a', 'b', 'c'] +console.log(braces('foo/{a..c}', { expand: true })); // ['foo/a', 'foo/b', 'foo/c'] + +// supports zero-padded ranges +console.log(braces('a/{01..03}/b')); //=> ['a/(0[1-3])/b'] +console.log(braces('a/{001..300}/b')); //=> ['a/(0{2}[1-9]|0[1-9][0-9]|[12][0-9]{2}|300)/b'] +``` + +See [fill-range](https://github.com/jonschlinkert/fill-range) for all available range-expansion options. + +### Steppped ranges + +Steps, or increments, may be used with ranges: + +```js +console.log(braces.expand('{2..10..2}')); +//=> ['2', '4', '6', '8', '10'] + +console.log(braces('{2..10..2}')); +//=> ['(2|4|6|8|10)'] +``` + +When the [.optimize](#optimize) method is used, or [options.optimize](#optionsoptimize) is set to true, sequences are passed to [to-regex-range](https://github.com/jonschlinkert/to-regex-range) for expansion. + +### Nesting + +Brace patterns may be nested. The results of each expanded string are not sorted, and left to right order is preserved. + +**"Expanded" braces** + +```js +console.log(braces.expand('a{b,c,/{x,y}}/e')); +//=> ['ab/e', 'ac/e', 'a/x/e', 'a/y/e'] + +console.log(braces.expand('a/{x,{1..5},y}/c')); +//=> ['a/x/c', 'a/1/c', 'a/2/c', 'a/3/c', 'a/4/c', 'a/5/c', 'a/y/c'] +``` + +**"Optimized" braces** + +```js +console.log(braces('a{b,c,/{x,y}}/e')); +//=> ['a(b|c|/(x|y))/e'] + +console.log(braces('a/{x,{1..5},y}/c')); +//=> ['a/(x|([1-5])|y)/c'] +``` + +### Escaping + +**Escaping braces** + +A brace pattern will not be expanded or evaluted if _either the opening or closing brace is escaped_: + +```js +console.log(braces.expand('a\\{d,c,b}e')); +//=> ['a{d,c,b}e'] + +console.log(braces.expand('a{d,c,b\\}e')); +//=> ['a{d,c,b}e'] +``` + +**Escaping commas** + +Commas inside braces may also be escaped: + +```js +console.log(braces.expand('a{b\\,c}d')); +//=> ['a{b,c}d'] + +console.log(braces.expand('a{d\\,c,b}e')); +//=> ['ad,ce', 'abe'] +``` + +**Single items** + +Following bash conventions, a brace pattern is also not expanded when it contains a single character: + +```js +console.log(braces.expand('a{b}c')); +//=> ['a{b}c'] +``` + +## Options + +### options.maxLength + +**Type**: `Number` + +**Default**: `10,000` + +**Description**: Limit the length of the input string. Useful when the input string is generated or your application allows users to pass a string, et cetera. + +```js +console.log(braces('a/{b,c}/d', { maxLength: 3 })); //=> throws an error +``` + +### options.expand + +**Type**: `Boolean` + +**Default**: `undefined` + +**Description**: Generate an "expanded" brace pattern (alternatively you can use the `braces.expand()` method, which does the same thing). + +```js +console.log(braces('a/{b,c}/d', { expand: true })); +//=> [ 'a/b/d', 'a/c/d' ] +``` + +### options.nodupes + +**Type**: `Boolean` + +**Default**: `undefined` + +**Description**: Remove duplicates from the returned array. + +### options.rangeLimit + +**Type**: `Number` + +**Default**: `1000` + +**Description**: To prevent malicious patterns from being passed by users, an error is thrown when `braces.expand()` is used or `options.expand` is true and the generated range will exceed the `rangeLimit`. + +You can customize `options.rangeLimit` or set it to `Inifinity` to disable this altogether. + +**Examples** + +```js +// pattern exceeds the "rangeLimit", so it's optimized automatically +console.log(braces.expand('{1..1000}')); +//=> ['([1-9]|[1-9][0-9]{1,2}|1000)'] + +// pattern does not exceed "rangeLimit", so it's NOT optimized +console.log(braces.expand('{1..100}')); +//=> ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '40', '41', '42', '43', '44', '45', '46', '47', '48', '49', '50', '51', '52', '53', '54', '55', '56', '57', '58', '59', '60', '61', '62', '63', '64', '65', '66', '67', '68', '69', '70', '71', '72', '73', '74', '75', '76', '77', '78', '79', '80', '81', '82', '83', '84', '85', '86', '87', '88', '89', '90', '91', '92', '93', '94', '95', '96', '97', '98', '99', '100'] +``` + +### options.transform + +**Type**: `Function` + +**Default**: `undefined` + +**Description**: Customize range expansion. + +**Example: Transforming non-numeric values** + +```js +const alpha = braces.expand('x/{a..e}/y', { + transform(value, index) { + // When non-numeric values are passed, "value" is a character code. + return 'foo/' + String.fromCharCode(value) + '-' + index; + }, +}); +console.log(alpha); +//=> [ 'x/foo/a-0/y', 'x/foo/b-1/y', 'x/foo/c-2/y', 'x/foo/d-3/y', 'x/foo/e-4/y' ] +``` + +**Example: Transforming numeric values** + +```js +const numeric = braces.expand('{1..5}', { + transform(value) { + // when numeric values are passed, "value" is a number + return 'foo/' + value * 2; + }, +}); +console.log(numeric); +//=> [ 'foo/2', 'foo/4', 'foo/6', 'foo/8', 'foo/10' ] +``` + +### options.quantifiers + +**Type**: `Boolean` + +**Default**: `undefined` + +**Description**: In regular expressions, quanitifiers can be used to specify how many times a token can be repeated. For example, `a{1,3}` will match the letter `a` one to three times. + +Unfortunately, regex quantifiers happen to share the same syntax as [Bash lists](#lists) + +The `quantifiers` option tells braces to detect when [regex quantifiers](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp#quantifiers) are defined in the given pattern, and not to try to expand them as lists. + +**Examples** + +```js +const braces = require('braces'); +console.log(braces('a/b{1,3}/{x,y,z}')); +//=> [ 'a/b(1|3)/(x|y|z)' ] +console.log(braces('a/b{1,3}/{x,y,z}', { quantifiers: true })); +//=> [ 'a/b{1,3}/(x|y|z)' ] +console.log(braces('a/b{1,3}/{x,y,z}', { quantifiers: true, expand: true })); +//=> [ 'a/b{1,3}/x', 'a/b{1,3}/y', 'a/b{1,3}/z' ] +``` + +### options.keepEscaping + +**Type**: `Boolean` + +**Default**: `undefined` + +**Description**: Do not strip backslashes that were used for escaping from the result. + +## What is "brace expansion"? + +Brace expansion is a type of parameter expansion that was made popular by unix shells for generating lists of strings, as well as regex-like matching when used alongside wildcards (globs). + +In addition to "expansion", braces are also used for matching. In other words: + +- [brace expansion](#brace-expansion) is for generating new lists +- [brace matching](#brace-matching) is for filtering existing lists + +
+More about brace expansion (click to expand) + +There are two main types of brace expansion: + +1. **lists**: which are defined using comma-separated values inside curly braces: `{a,b,c}` +2. **sequences**: which are defined using a starting value and an ending value, separated by two dots: `a{1..3}b`. Optionally, a third argument may be passed to define a "step" or increment to use: `a{1..100..10}b`. These are also sometimes referred to as "ranges". + +Here are some example brace patterns to illustrate how they work: + +**Sets** + +``` +{a,b,c} => a b c +{a,b,c}{1,2} => a1 a2 b1 b2 c1 c2 +``` + +**Sequences** + +``` +{1..9} => 1 2 3 4 5 6 7 8 9 +{4..-4} => 4 3 2 1 0 -1 -2 -3 -4 +{1..20..3} => 1 4 7 10 13 16 19 +{a..j} => a b c d e f g h i j +{j..a} => j i h g f e d c b a +{a..z..3} => a d g j m p s v y +``` + +**Combination** + +Sets and sequences can be mixed together or used along with any other strings. + +``` +{a,b,c}{1..3} => a1 a2 a3 b1 b2 b3 c1 c2 c3 +foo/{a,b,c}/bar => foo/a/bar foo/b/bar foo/c/bar +``` + +The fact that braces can be "expanded" from relatively simple patterns makes them ideal for quickly generating test fixtures, file paths, and similar use cases. + +## Brace matching + +In addition to _expansion_, brace patterns are also useful for performing regular-expression-like matching. + +For example, the pattern `foo/{1..3}/bar` would match any of following strings: + +``` +foo/1/bar +foo/2/bar +foo/3/bar +``` + +But not: + +``` +baz/1/qux +baz/2/qux +baz/3/qux +``` + +Braces can also be combined with [glob patterns](https://github.com/jonschlinkert/micromatch) to perform more advanced wildcard matching. For example, the pattern `*/{1..3}/*` would match any of following strings: + +``` +foo/1/bar +foo/2/bar +foo/3/bar +baz/1/qux +baz/2/qux +baz/3/qux +``` + +## Brace matching pitfalls + +Although brace patterns offer a user-friendly way of matching ranges or sets of strings, there are also some major disadvantages and potential risks you should be aware of. + +### tldr + +**"brace bombs"** + +- brace expansion can eat up a huge amount of processing resources +- as brace patterns increase _linearly in size_, the system resources required to expand the pattern increase exponentially +- users can accidentally (or intentially) exhaust your system's resources resulting in the equivalent of a DoS attack (bonus: no programming knowledge is required!) + +For a more detailed explanation with examples, see the [geometric complexity](#geometric-complexity) section. + +### The solution + +Jump to the [performance section](#performance) to see how Braces solves this problem in comparison to other libraries. + +### Geometric complexity + +At minimum, brace patterns with sets limited to two elements have quadradic or `O(n^2)` complexity. But the complexity of the algorithm increases exponentially as the number of sets, _and elements per set_, increases, which is `O(n^c)`. + +For example, the following sets demonstrate quadratic (`O(n^2)`) complexity: + +``` +{1,2}{3,4} => (2X2) => 13 14 23 24 +{1,2}{3,4}{5,6} => (2X2X2) => 135 136 145 146 235 236 245 246 +``` + +But add an element to a set, and we get a n-fold Cartesian product with `O(n^c)` complexity: + +``` +{1,2,3}{4,5,6}{7,8,9} => (3X3X3) => 147 148 149 157 158 159 167 168 169 247 248 + 249 257 258 259 267 268 269 347 348 349 357 + 358 359 367 368 369 +``` + +Now, imagine how this complexity grows given that each element is a n-tuple: + +``` +{1..100}{1..100} => (100X100) => 10,000 elements (38.4 kB) +{1..100}{1..100}{1..100} => (100X100X100) => 1,000,000 elements (5.76 MB) +``` + +Although these examples are clearly contrived, they demonstrate how brace patterns can quickly grow out of control. + +**More information** + +Interested in learning more about brace expansion? + +- [linuxjournal/bash-brace-expansion](http://www.linuxjournal.com/content/bash-brace-expansion) +- [rosettacode/Brace_expansion](https://rosettacode.org/wiki/Brace_expansion) +- [cartesian product](https://en.wikipedia.org/wiki/Cartesian_product) + +
+ +## Performance + +Braces is not only screaming fast, it's also more accurate the other brace expansion libraries. + +### Better algorithms + +Fortunately there is a solution to the ["brace bomb" problem](#brace-matching-pitfalls): _don't expand brace patterns into an array when they're used for matching_. + +Instead, convert the pattern into an optimized regular expression. This is easier said than done, and braces is the only library that does this currently. + +**The proof is in the numbers** + +Minimatch gets exponentially slower as patterns increase in complexity, braces does not. The following results were generated using `braces()` and `minimatch.braceExpand()`, respectively. + +| **Pattern** | **braces** | **[minimatch][]** | +| --------------------------- | ------------------- | ---------------------------- | +| `{1..9007199254740991}`[^1] | `298 B` (5ms 459μs) | N/A (freezes) | +| `{1..1000000000000000}` | `41 B` (1ms 15μs) | N/A (freezes) | +| `{1..100000000000000}` | `40 B` (890μs) | N/A (freezes) | +| `{1..10000000000000}` | `39 B` (2ms 49μs) | N/A (freezes) | +| `{1..1000000000000}` | `38 B` (608μs) | N/A (freezes) | +| `{1..100000000000}` | `37 B` (397μs) | N/A (freezes) | +| `{1..10000000000}` | `35 B` (983μs) | N/A (freezes) | +| `{1..1000000000}` | `34 B` (798μs) | N/A (freezes) | +| `{1..100000000}` | `33 B` (733μs) | N/A (freezes) | +| `{1..10000000}` | `32 B` (5ms 632μs) | `78.89 MB` (16s 388ms 569μs) | +| `{1..1000000}` | `31 B` (1ms 381μs) | `6.89 MB` (1s 496ms 887μs) | +| `{1..100000}` | `30 B` (950μs) | `588.89 kB` (146ms 921μs) | +| `{1..10000}` | `29 B` (1ms 114μs) | `48.89 kB` (14ms 187μs) | +| `{1..1000}` | `28 B` (760μs) | `3.89 kB` (1ms 453μs) | +| `{1..100}` | `22 B` (345μs) | `291 B` (196μs) | +| `{1..10}` | `10 B` (533μs) | `20 B` (37μs) | +| `{1..3}` | `7 B` (190μs) | `5 B` (27μs) | + +### Faster algorithms + +When you need expansion, braces is still much faster. + +_(the following results were generated using `braces.expand()` and `minimatch.braceExpand()`, respectively)_ + +| **Pattern** | **braces** | **[minimatch][]** | +| --------------- | --------------------------- | ---------------------------- | +| `{1..10000000}` | `78.89 MB` (2s 698ms 642μs) | `78.89 MB` (18s 601ms 974μs) | +| `{1..1000000}` | `6.89 MB` (458ms 576μs) | `6.89 MB` (1s 491ms 621μs) | +| `{1..100000}` | `588.89 kB` (20ms 728μs) | `588.89 kB` (156ms 919μs) | +| `{1..10000}` | `48.89 kB` (2ms 202μs) | `48.89 kB` (13ms 641μs) | +| `{1..1000}` | `3.89 kB` (1ms 796μs) | `3.89 kB` (1ms 958μs) | +| `{1..100}` | `291 B` (424μs) | `291 B` (211μs) | +| `{1..10}` | `20 B` (487μs) | `20 B` (72μs) | +| `{1..3}` | `5 B` (166μs) | `5 B` (27μs) | + +If you'd like to run these comparisons yourself, see [test/support/generate.js](test/support/generate.js). + +## Benchmarks + +### Running benchmarks + +Install dev dependencies: + +```bash +npm i -d && npm benchmark +``` + +### Latest results + +Braces is more accurate, without sacrificing performance. + +```bash +● expand - range (expanded) + braces x 53,167 ops/sec ±0.12% (102 runs sampled) + minimatch x 11,378 ops/sec ±0.10% (102 runs sampled) +● expand - range (optimized for regex) + braces x 373,442 ops/sec ±0.04% (100 runs sampled) + minimatch x 3,262 ops/sec ±0.18% (100 runs sampled) +● expand - nested ranges (expanded) + braces x 33,921 ops/sec ±0.09% (99 runs sampled) + minimatch x 10,855 ops/sec ±0.28% (100 runs sampled) +● expand - nested ranges (optimized for regex) + braces x 287,479 ops/sec ±0.52% (98 runs sampled) + minimatch x 3,219 ops/sec ±0.28% (101 runs sampled) +● expand - set (expanded) + braces x 238,243 ops/sec ±0.19% (97 runs sampled) + minimatch x 538,268 ops/sec ±0.31% (96 runs sampled) +● expand - set (optimized for regex) + braces x 321,844 ops/sec ±0.10% (97 runs sampled) + minimatch x 140,600 ops/sec ±0.15% (100 runs sampled) +● expand - nested sets (expanded) + braces x 165,371 ops/sec ±0.42% (96 runs sampled) + minimatch x 337,720 ops/sec ±0.28% (100 runs sampled) +● expand - nested sets (optimized for regex) + braces x 242,948 ops/sec ±0.12% (99 runs sampled) + minimatch x 87,403 ops/sec ±0.79% (96 runs sampled) +``` + +## About + +
+Contributing + +Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). + +
+ +
+Running Tests + +Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command: + +```sh +$ npm install && npm test +``` + +
+ +
+Building docs + +_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_ + +To generate the readme, run the following command: + +```sh +$ npm install -g verbose/verb#dev verb-generate-readme && verb +``` + +
+ +### Contributors + +| **Commits** | **Contributor** | +| ----------- | ------------------------------------------------------------- | +| 197 | [jonschlinkert](https://github.com/jonschlinkert) | +| 4 | [doowb](https://github.com/doowb) | +| 1 | [es128](https://github.com/es128) | +| 1 | [eush77](https://github.com/eush77) | +| 1 | [hemanth](https://github.com/hemanth) | +| 1 | [wtgtybhertgeghgtwtg](https://github.com/wtgtybhertgeghgtwtg) | + +### Author + +**Jon Schlinkert** + +- [GitHub Profile](https://github.com/jonschlinkert) +- [Twitter Profile](https://twitter.com/jonschlinkert) +- [LinkedIn Profile](https://linkedin.com/in/jonschlinkert) + +### License + +Copyright © 2019, [Jon Schlinkert](https://github.com/jonschlinkert). +Released under the [MIT License](LICENSE). + +--- + +_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.8.0, on April 08, 2019._ diff --git a/server/api/node_modules/braces/index.js b/server/api/node_modules/braces/index.js new file mode 100644 index 0000000..d222c13 --- /dev/null +++ b/server/api/node_modules/braces/index.js @@ -0,0 +1,170 @@ +'use strict'; + +const stringify = require('./lib/stringify'); +const compile = require('./lib/compile'); +const expand = require('./lib/expand'); +const parse = require('./lib/parse'); + +/** + * Expand the given pattern or create a regex-compatible string. + * + * ```js + * const braces = require('braces'); + * console.log(braces('{a,b,c}', { compile: true })); //=> ['(a|b|c)'] + * console.log(braces('{a,b,c}')); //=> ['a', 'b', 'c'] + * ``` + * @param {String} `str` + * @param {Object} `options` + * @return {String} + * @api public + */ + +const braces = (input, options = {}) => { + let output = []; + + if (Array.isArray(input)) { + for (const pattern of input) { + const result = braces.create(pattern, options); + if (Array.isArray(result)) { + output.push(...result); + } else { + output.push(result); + } + } + } else { + output = [].concat(braces.create(input, options)); + } + + if (options && options.expand === true && options.nodupes === true) { + output = [...new Set(output)]; + } + return output; +}; + +/** + * Parse the given `str` with the given `options`. + * + * ```js + * // braces.parse(pattern, [, options]); + * const ast = braces.parse('a/{b,c}/d'); + * console.log(ast); + * ``` + * @param {String} pattern Brace pattern to parse + * @param {Object} options + * @return {Object} Returns an AST + * @api public + */ + +braces.parse = (input, options = {}) => parse(input, options); + +/** + * Creates a braces string from an AST, or an AST node. + * + * ```js + * const braces = require('braces'); + * let ast = braces.parse('foo/{a,b}/bar'); + * console.log(stringify(ast.nodes[2])); //=> '{a,b}' + * ``` + * @param {String} `input` Brace pattern or AST. + * @param {Object} `options` + * @return {Array} Returns an array of expanded values. + * @api public + */ + +braces.stringify = (input, options = {}) => { + if (typeof input === 'string') { + return stringify(braces.parse(input, options), options); + } + return stringify(input, options); +}; + +/** + * Compiles a brace pattern into a regex-compatible, optimized string. + * This method is called by the main [braces](#braces) function by default. + * + * ```js + * const braces = require('braces'); + * console.log(braces.compile('a/{b,c}/d')); + * //=> ['a/(b|c)/d'] + * ``` + * @param {String} `input` Brace pattern or AST. + * @param {Object} `options` + * @return {Array} Returns an array of expanded values. + * @api public + */ + +braces.compile = (input, options = {}) => { + if (typeof input === 'string') { + input = braces.parse(input, options); + } + return compile(input, options); +}; + +/** + * Expands a brace pattern into an array. This method is called by the + * main [braces](#braces) function when `options.expand` is true. Before + * using this method it's recommended that you read the [performance notes](#performance)) + * and advantages of using [.compile](#compile) instead. + * + * ```js + * const braces = require('braces'); + * console.log(braces.expand('a/{b,c}/d')); + * //=> ['a/b/d', 'a/c/d']; + * ``` + * @param {String} `pattern` Brace pattern + * @param {Object} `options` + * @return {Array} Returns an array of expanded values. + * @api public + */ + +braces.expand = (input, options = {}) => { + if (typeof input === 'string') { + input = braces.parse(input, options); + } + + let result = expand(input, options); + + // filter out empty strings if specified + if (options.noempty === true) { + result = result.filter(Boolean); + } + + // filter out duplicates if specified + if (options.nodupes === true) { + result = [...new Set(result)]; + } + + return result; +}; + +/** + * Processes a brace pattern and returns either an expanded array + * (if `options.expand` is true), a highly optimized regex-compatible string. + * This method is called by the main [braces](#braces) function. + * + * ```js + * const braces = require('braces'); + * console.log(braces.create('user-{200..300}/project-{a,b,c}-{1..10}')) + * //=> 'user-(20[0-9]|2[1-9][0-9]|300)/project-(a|b|c)-([1-9]|10)' + * ``` + * @param {String} `pattern` Brace pattern + * @param {Object} `options` + * @return {Array} Returns an array of expanded values. + * @api public + */ + +braces.create = (input, options = {}) => { + if (input === '' || input.length < 3) { + return [input]; + } + + return options.expand !== true + ? braces.compile(input, options) + : braces.expand(input, options); +}; + +/** + * Expose "braces" + */ + +module.exports = braces; diff --git a/server/api/node_modules/braces/lib/compile.js b/server/api/node_modules/braces/lib/compile.js new file mode 100644 index 0000000..dce69be --- /dev/null +++ b/server/api/node_modules/braces/lib/compile.js @@ -0,0 +1,60 @@ +'use strict'; + +const fill = require('fill-range'); +const utils = require('./utils'); + +const compile = (ast, options = {}) => { + const walk = (node, parent = {}) => { + const invalidBlock = utils.isInvalidBrace(parent); + const invalidNode = node.invalid === true && options.escapeInvalid === true; + const invalid = invalidBlock === true || invalidNode === true; + const prefix = options.escapeInvalid === true ? '\\' : ''; + let output = ''; + + if (node.isOpen === true) { + return prefix + node.value; + } + + if (node.isClose === true) { + console.log('node.isClose', prefix, node.value); + return prefix + node.value; + } + + if (node.type === 'open') { + return invalid ? prefix + node.value : '('; + } + + if (node.type === 'close') { + return invalid ? prefix + node.value : ')'; + } + + if (node.type === 'comma') { + return node.prev.type === 'comma' ? '' : invalid ? node.value : '|'; + } + + if (node.value) { + return node.value; + } + + if (node.nodes && node.ranges > 0) { + const args = utils.reduce(node.nodes); + const range = fill(...args, { ...options, wrap: false, toRegex: true, strictZeros: true }); + + if (range.length !== 0) { + return args.length > 1 && range.length > 1 ? `(${range})` : range; + } + } + + if (node.nodes) { + for (const child of node.nodes) { + output += walk(child, node); + } + } + + return output; + }; + + return walk(ast); +}; + +module.exports = compile; diff --git a/server/api/node_modules/braces/lib/constants.js b/server/api/node_modules/braces/lib/constants.js new file mode 100644 index 0000000..2bb3b88 --- /dev/null +++ b/server/api/node_modules/braces/lib/constants.js @@ -0,0 +1,57 @@ +'use strict'; + +module.exports = { + MAX_LENGTH: 10000, + + // Digits + CHAR_0: '0', /* 0 */ + CHAR_9: '9', /* 9 */ + + // Alphabet chars. + CHAR_UPPERCASE_A: 'A', /* A */ + CHAR_LOWERCASE_A: 'a', /* a */ + CHAR_UPPERCASE_Z: 'Z', /* Z */ + CHAR_LOWERCASE_Z: 'z', /* z */ + + CHAR_LEFT_PARENTHESES: '(', /* ( */ + CHAR_RIGHT_PARENTHESES: ')', /* ) */ + + CHAR_ASTERISK: '*', /* * */ + + // Non-alphabetic chars. + CHAR_AMPERSAND: '&', /* & */ + CHAR_AT: '@', /* @ */ + CHAR_BACKSLASH: '\\', /* \ */ + CHAR_BACKTICK: '`', /* ` */ + CHAR_CARRIAGE_RETURN: '\r', /* \r */ + CHAR_CIRCUMFLEX_ACCENT: '^', /* ^ */ + CHAR_COLON: ':', /* : */ + CHAR_COMMA: ',', /* , */ + CHAR_DOLLAR: '$', /* . */ + CHAR_DOT: '.', /* . */ + CHAR_DOUBLE_QUOTE: '"', /* " */ + CHAR_EQUAL: '=', /* = */ + CHAR_EXCLAMATION_MARK: '!', /* ! */ + CHAR_FORM_FEED: '\f', /* \f */ + CHAR_FORWARD_SLASH: '/', /* / */ + CHAR_HASH: '#', /* # */ + CHAR_HYPHEN_MINUS: '-', /* - */ + CHAR_LEFT_ANGLE_BRACKET: '<', /* < */ + CHAR_LEFT_CURLY_BRACE: '{', /* { */ + CHAR_LEFT_SQUARE_BRACKET: '[', /* [ */ + CHAR_LINE_FEED: '\n', /* \n */ + CHAR_NO_BREAK_SPACE: '\u00A0', /* \u00A0 */ + CHAR_PERCENT: '%', /* % */ + CHAR_PLUS: '+', /* + */ + CHAR_QUESTION_MARK: '?', /* ? */ + CHAR_RIGHT_ANGLE_BRACKET: '>', /* > */ + CHAR_RIGHT_CURLY_BRACE: '}', /* } */ + CHAR_RIGHT_SQUARE_BRACKET: ']', /* ] */ + CHAR_SEMICOLON: ';', /* ; */ + CHAR_SINGLE_QUOTE: '\'', /* ' */ + CHAR_SPACE: ' ', /* */ + CHAR_TAB: '\t', /* \t */ + CHAR_UNDERSCORE: '_', /* _ */ + CHAR_VERTICAL_LINE: '|', /* | */ + CHAR_ZERO_WIDTH_NOBREAK_SPACE: '\uFEFF' /* \uFEFF */ +}; diff --git a/server/api/node_modules/braces/lib/expand.js b/server/api/node_modules/braces/lib/expand.js new file mode 100644 index 0000000..35b2c41 --- /dev/null +++ b/server/api/node_modules/braces/lib/expand.js @@ -0,0 +1,113 @@ +'use strict'; + +const fill = require('fill-range'); +const stringify = require('./stringify'); +const utils = require('./utils'); + +const append = (queue = '', stash = '', enclose = false) => { + const result = []; + + queue = [].concat(queue); + stash = [].concat(stash); + + if (!stash.length) return queue; + if (!queue.length) { + return enclose ? utils.flatten(stash).map(ele => `{${ele}}`) : stash; + } + + for (const item of queue) { + if (Array.isArray(item)) { + for (const value of item) { + result.push(append(value, stash, enclose)); + } + } else { + for (let ele of stash) { + if (enclose === true && typeof ele === 'string') ele = `{${ele}}`; + result.push(Array.isArray(ele) ? append(item, ele, enclose) : item + ele); + } + } + } + return utils.flatten(result); +}; + +const expand = (ast, options = {}) => { + const rangeLimit = options.rangeLimit === undefined ? 1000 : options.rangeLimit; + + const walk = (node, parent = {}) => { + node.queue = []; + + let p = parent; + let q = parent.queue; + + while (p.type !== 'brace' && p.type !== 'root' && p.parent) { + p = p.parent; + q = p.queue; + } + + if (node.invalid || node.dollar) { + q.push(append(q.pop(), stringify(node, options))); + return; + } + + if (node.type === 'brace' && node.invalid !== true && node.nodes.length === 2) { + q.push(append(q.pop(), ['{}'])); + return; + } + + if (node.nodes && node.ranges > 0) { + const args = utils.reduce(node.nodes); + + if (utils.exceedsLimit(...args, options.step, rangeLimit)) { + throw new RangeError('expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.'); + } + + let range = fill(...args, options); + if (range.length === 0) { + range = stringify(node, options); + } + + q.push(append(q.pop(), range)); + node.nodes = []; + return; + } + + const enclose = utils.encloseBrace(node); + let queue = node.queue; + let block = node; + + while (block.type !== 'brace' && block.type !== 'root' && block.parent) { + block = block.parent; + queue = block.queue; + } + + for (let i = 0; i < node.nodes.length; i++) { + const child = node.nodes[i]; + + if (child.type === 'comma' && node.type === 'brace') { + if (i === 1) queue.push(''); + queue.push(''); + continue; + } + + if (child.type === 'close') { + q.push(append(q.pop(), queue, enclose)); + continue; + } + + if (child.value && child.type !== 'open') { + queue.push(append(queue.pop(), child.value)); + continue; + } + + if (child.nodes) { + walk(child, node); + } + } + + return queue; + }; + + return utils.flatten(walk(ast)); +}; + +module.exports = expand; diff --git a/server/api/node_modules/braces/lib/parse.js b/server/api/node_modules/braces/lib/parse.js new file mode 100644 index 0000000..3a6988e --- /dev/null +++ b/server/api/node_modules/braces/lib/parse.js @@ -0,0 +1,331 @@ +'use strict'; + +const stringify = require('./stringify'); + +/** + * Constants + */ + +const { + MAX_LENGTH, + CHAR_BACKSLASH, /* \ */ + CHAR_BACKTICK, /* ` */ + CHAR_COMMA, /* , */ + CHAR_DOT, /* . */ + CHAR_LEFT_PARENTHESES, /* ( */ + CHAR_RIGHT_PARENTHESES, /* ) */ + CHAR_LEFT_CURLY_BRACE, /* { */ + CHAR_RIGHT_CURLY_BRACE, /* } */ + CHAR_LEFT_SQUARE_BRACKET, /* [ */ + CHAR_RIGHT_SQUARE_BRACKET, /* ] */ + CHAR_DOUBLE_QUOTE, /* " */ + CHAR_SINGLE_QUOTE, /* ' */ + CHAR_NO_BREAK_SPACE, + CHAR_ZERO_WIDTH_NOBREAK_SPACE +} = require('./constants'); + +/** + * parse + */ + +const parse = (input, options = {}) => { + if (typeof input !== 'string') { + throw new TypeError('Expected a string'); + } + + const opts = options || {}; + const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH; + if (input.length > max) { + throw new SyntaxError(`Input length (${input.length}), exceeds max characters (${max})`); + } + + const ast = { type: 'root', input, nodes: [] }; + const stack = [ast]; + let block = ast; + let prev = ast; + let brackets = 0; + const length = input.length; + let index = 0; + let depth = 0; + let value; + + /** + * Helpers + */ + + const advance = () => input[index++]; + const push = node => { + if (node.type === 'text' && prev.type === 'dot') { + prev.type = 'text'; + } + + if (prev && prev.type === 'text' && node.type === 'text') { + prev.value += node.value; + return; + } + + block.nodes.push(node); + node.parent = block; + node.prev = prev; + prev = node; + return node; + }; + + push({ type: 'bos' }); + + while (index < length) { + block = stack[stack.length - 1]; + value = advance(); + + /** + * Invalid chars + */ + + if (value === CHAR_ZERO_WIDTH_NOBREAK_SPACE || value === CHAR_NO_BREAK_SPACE) { + continue; + } + + /** + * Escaped chars + */ + + if (value === CHAR_BACKSLASH) { + push({ type: 'text', value: (options.keepEscaping ? value : '') + advance() }); + continue; + } + + /** + * Right square bracket (literal): ']' + */ + + if (value === CHAR_RIGHT_SQUARE_BRACKET) { + push({ type: 'text', value: '\\' + value }); + continue; + } + + /** + * Left square bracket: '[' + */ + + if (value === CHAR_LEFT_SQUARE_BRACKET) { + brackets++; + + let next; + + while (index < length && (next = advance())) { + value += next; + + if (next === CHAR_LEFT_SQUARE_BRACKET) { + brackets++; + continue; + } + + if (next === CHAR_BACKSLASH) { + value += advance(); + continue; + } + + if (next === CHAR_RIGHT_SQUARE_BRACKET) { + brackets--; + + if (brackets === 0) { + break; + } + } + } + + push({ type: 'text', value }); + continue; + } + + /** + * Parentheses + */ + + if (value === CHAR_LEFT_PARENTHESES) { + block = push({ type: 'paren', nodes: [] }); + stack.push(block); + push({ type: 'text', value }); + continue; + } + + if (value === CHAR_RIGHT_PARENTHESES) { + if (block.type !== 'paren') { + push({ type: 'text', value }); + continue; + } + block = stack.pop(); + push({ type: 'text', value }); + block = stack[stack.length - 1]; + continue; + } + + /** + * Quotes: '|"|` + */ + + if (value === CHAR_DOUBLE_QUOTE || value === CHAR_SINGLE_QUOTE || value === CHAR_BACKTICK) { + const open = value; + let next; + + if (options.keepQuotes !== true) { + value = ''; + } + + while (index < length && (next = advance())) { + if (next === CHAR_BACKSLASH) { + value += next + advance(); + continue; + } + + if (next === open) { + if (options.keepQuotes === true) value += next; + break; + } + + value += next; + } + + push({ type: 'text', value }); + continue; + } + + /** + * Left curly brace: '{' + */ + + if (value === CHAR_LEFT_CURLY_BRACE) { + depth++; + + const dollar = prev.value && prev.value.slice(-1) === '$' || block.dollar === true; + const brace = { + type: 'brace', + open: true, + close: false, + dollar, + depth, + commas: 0, + ranges: 0, + nodes: [] + }; + + block = push(brace); + stack.push(block); + push({ type: 'open', value }); + continue; + } + + /** + * Right curly brace: '}' + */ + + if (value === CHAR_RIGHT_CURLY_BRACE) { + if (block.type !== 'brace') { + push({ type: 'text', value }); + continue; + } + + const type = 'close'; + block = stack.pop(); + block.close = true; + + push({ type, value }); + depth--; + + block = stack[stack.length - 1]; + continue; + } + + /** + * Comma: ',' + */ + + if (value === CHAR_COMMA && depth > 0) { + if (block.ranges > 0) { + block.ranges = 0; + const open = block.nodes.shift(); + block.nodes = [open, { type: 'text', value: stringify(block) }]; + } + + push({ type: 'comma', value }); + block.commas++; + continue; + } + + /** + * Dot: '.' + */ + + if (value === CHAR_DOT && depth > 0 && block.commas === 0) { + const siblings = block.nodes; + + if (depth === 0 || siblings.length === 0) { + push({ type: 'text', value }); + continue; + } + + if (prev.type === 'dot') { + block.range = []; + prev.value += value; + prev.type = 'range'; + + if (block.nodes.length !== 3 && block.nodes.length !== 5) { + block.invalid = true; + block.ranges = 0; + prev.type = 'text'; + continue; + } + + block.ranges++; + block.args = []; + continue; + } + + if (prev.type === 'range') { + siblings.pop(); + + const before = siblings[siblings.length - 1]; + before.value += prev.value + value; + prev = before; + block.ranges--; + continue; + } + + push({ type: 'dot', value }); + continue; + } + + /** + * Text + */ + + push({ type: 'text', value }); + } + + // Mark imbalanced braces and brackets as invalid + do { + block = stack.pop(); + + if (block.type !== 'root') { + block.nodes.forEach(node => { + if (!node.nodes) { + if (node.type === 'open') node.isOpen = true; + if (node.type === 'close') node.isClose = true; + if (!node.nodes) node.type = 'text'; + node.invalid = true; + } + }); + + // get the location of the block on parent.nodes (block's siblings) + const parent = stack[stack.length - 1]; + const index = parent.nodes.indexOf(block); + // replace the (invalid) block with it's nodes + parent.nodes.splice(index, 1, ...block.nodes); + } + } while (stack.length > 0); + + push({ type: 'eos' }); + return ast; +}; + +module.exports = parse; diff --git a/server/api/node_modules/braces/lib/stringify.js b/server/api/node_modules/braces/lib/stringify.js new file mode 100644 index 0000000..8bcf872 --- /dev/null +++ b/server/api/node_modules/braces/lib/stringify.js @@ -0,0 +1,32 @@ +'use strict'; + +const utils = require('./utils'); + +module.exports = (ast, options = {}) => { + const stringify = (node, parent = {}) => { + const invalidBlock = options.escapeInvalid && utils.isInvalidBrace(parent); + const invalidNode = node.invalid === true && options.escapeInvalid === true; + let output = ''; + + if (node.value) { + if ((invalidBlock || invalidNode) && utils.isOpenOrClose(node)) { + return '\\' + node.value; + } + return node.value; + } + + if (node.value) { + return node.value; + } + + if (node.nodes) { + for (const child of node.nodes) { + output += stringify(child); + } + } + return output; + }; + + return stringify(ast); +}; + diff --git a/server/api/node_modules/braces/lib/utils.js b/server/api/node_modules/braces/lib/utils.js new file mode 100644 index 0000000..d19311f --- /dev/null +++ b/server/api/node_modules/braces/lib/utils.js @@ -0,0 +1,122 @@ +'use strict'; + +exports.isInteger = num => { + if (typeof num === 'number') { + return Number.isInteger(num); + } + if (typeof num === 'string' && num.trim() !== '') { + return Number.isInteger(Number(num)); + } + return false; +}; + +/** + * Find a node of the given type + */ + +exports.find = (node, type) => node.nodes.find(node => node.type === type); + +/** + * Find a node of the given type + */ + +exports.exceedsLimit = (min, max, step = 1, limit) => { + if (limit === false) return false; + if (!exports.isInteger(min) || !exports.isInteger(max)) return false; + return ((Number(max) - Number(min)) / Number(step)) >= limit; +}; + +/** + * Escape the given node with '\\' before node.value + */ + +exports.escapeNode = (block, n = 0, type) => { + const node = block.nodes[n]; + if (!node) return; + + if ((type && node.type === type) || node.type === 'open' || node.type === 'close') { + if (node.escaped !== true) { + node.value = '\\' + node.value; + node.escaped = true; + } + } +}; + +/** + * Returns true if the given brace node should be enclosed in literal braces + */ + +exports.encloseBrace = node => { + if (node.type !== 'brace') return false; + if ((node.commas >> 0 + node.ranges >> 0) === 0) { + node.invalid = true; + return true; + } + return false; +}; + +/** + * Returns true if a brace node is invalid. + */ + +exports.isInvalidBrace = block => { + if (block.type !== 'brace') return false; + if (block.invalid === true || block.dollar) return true; + if ((block.commas >> 0 + block.ranges >> 0) === 0) { + block.invalid = true; + return true; + } + if (block.open !== true || block.close !== true) { + block.invalid = true; + return true; + } + return false; +}; + +/** + * Returns true if a node is an open or close node + */ + +exports.isOpenOrClose = node => { + if (node.type === 'open' || node.type === 'close') { + return true; + } + return node.open === true || node.close === true; +}; + +/** + * Reduce an array of text nodes. + */ + +exports.reduce = nodes => nodes.reduce((acc, node) => { + if (node.type === 'text') acc.push(node.value); + if (node.type === 'range') node.type = 'text'; + return acc; +}, []); + +/** + * Flatten an array + */ + +exports.flatten = (...args) => { + const result = []; + + const flat = arr => { + for (let i = 0; i < arr.length; i++) { + const ele = arr[i]; + + if (Array.isArray(ele)) { + flat(ele); + continue; + } + + if (ele !== undefined) { + result.push(ele); + } + } + return result; + }; + + flat(args); + return result; +}; diff --git a/server/api/node_modules/braces/package.json b/server/api/node_modules/braces/package.json new file mode 100644 index 0000000..c3c056e --- /dev/null +++ b/server/api/node_modules/braces/package.json @@ -0,0 +1,77 @@ +{ + "name": "braces", + "description": "Bash-like brace expansion, implemented in JavaScript. Safer than other brace expansion libs, with complete support for the Bash 4.3 braces specification, without sacrificing speed.", + "version": "3.0.3", + "homepage": "https://github.com/micromatch/braces", + "author": "Jon Schlinkert (https://github.com/jonschlinkert)", + "contributors": [ + "Brian Woodward (https://twitter.com/doowb)", + "Elan Shanker (https://github.com/es128)", + "Eugene Sharygin (https://github.com/eush77)", + "hemanth.hm (http://h3manth.com)", + "Jon Schlinkert (http://twitter.com/jonschlinkert)" + ], + "repository": "micromatch/braces", + "bugs": { + "url": "https://github.com/micromatch/braces/issues" + }, + "license": "MIT", + "files": [ + "index.js", + "lib" + ], + "main": "index.js", + "engines": { + "node": ">=8" + }, + "scripts": { + "test": "mocha", + "benchmark": "node benchmark" + }, + "dependencies": { + "fill-range": "^7.1.1" + }, + "devDependencies": { + "ansi-colors": "^3.2.4", + "bash-path": "^2.0.1", + "gulp-format-md": "^2.0.0", + "mocha": "^6.1.1" + }, + "keywords": [ + "alpha", + "alphabetical", + "bash", + "brace", + "braces", + "expand", + "expansion", + "filepath", + "fill", + "fs", + "glob", + "globbing", + "letter", + "match", + "matches", + "matching", + "number", + "numerical", + "path", + "range", + "ranges", + "sh" + ], + "verb": { + "toc": false, + "layout": "default", + "tasks": [ + "readme" + ], + "lint": { + "reflinks": true + }, + "plugins": [ + "gulp-format-md" + ] + } +} diff --git a/server/api/node_modules/browserslist/LICENSE b/server/api/node_modules/browserslist/LICENSE new file mode 100644 index 0000000..042c189 --- /dev/null +++ b/server/api/node_modules/browserslist/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright 2014 Andrey Sitnik and other contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/server/api/node_modules/browserslist/README.md b/server/api/node_modules/browserslist/README.md new file mode 100644 index 0000000..603164b --- /dev/null +++ b/server/api/node_modules/browserslist/README.md @@ -0,0 +1,64 @@ +# Browserslist + +Browserslist logo by Anton Popov + +The config to share target browsers and Node.js versions between different +front-end tools. It is used in: + +- [Autoprefixer] +- [Babel] +- [postcss-preset-env] +- [eslint-plugin-compat] +- [stylelint-no-unsupported-browser-features] +- [postcss-normalize] +- [obsolete-webpack-plugin] + +All tools will find target browsers automatically, +when you add the following to `package.json`: + +```json + "browserslist": [ + "defaults and fully supports es6-module", + "maintained node versions" + ] +``` + +Or in `.browserslistrc` config: + +```yaml +# Browsers that we support + +defaults and fully supports es6-module +maintained node versions +``` + +Developers set their version lists using queries like `last 2 versions` +to be free from updating versions manually. +Browserslist will use [`caniuse-lite`] with [Can I Use] data for this queries. + +You can check how config works at our playground: [`browsersl.ist`](https://browsersl.ist/) + + + browsersl.ist website + + +
+
+
+ Sponsored by Evil Martians  Supported by Cube +
+ +[stylelint-no-unsupported-browser-features]: https://github.com/ismay/stylelint-no-unsupported-browser-features +[obsolete-webpack-plugin]: https://github.com/ElemeFE/obsolete-webpack-plugin +[eslint-plugin-compat]: https://github.com/amilajack/eslint-plugin-compat +[postcss-preset-env]: https://github.com/csstools/postcss-plugins/tree/main/plugin-packs/postcss-preset-env +[postcss-normalize]: https://github.com/csstools/postcss-normalize +[`browsersl.ist`]: https://browsersl.ist/ +[`caniuse-lite`]: https://github.com/ben-eb/caniuse-lite +[Autoprefixer]: https://github.com/postcss/autoprefixer +[Can I Use]: https://caniuse.com/ +[Babel]: https://github.com/babel/babel/tree/master/packages/babel-preset-env + +## Docs +Read full docs **[here](https://github.com/browserslist/browserslist#readme)**. diff --git a/server/api/node_modules/browserslist/browser.js b/server/api/node_modules/browserslist/browser.js new file mode 100644 index 0000000..1a681fd --- /dev/null +++ b/server/api/node_modules/browserslist/browser.js @@ -0,0 +1,54 @@ +var BrowserslistError = require('./error') + +function noop() {} + +module.exports = { + loadQueries: function loadQueries() { + throw new BrowserslistError( + 'Sharable configs are not supported in client-side build of Browserslist' + ) + }, + + getStat: function getStat(opts) { + return opts.stats + }, + + loadConfig: function loadConfig(opts) { + if (opts.config) { + throw new BrowserslistError( + 'Browserslist config are not supported in client-side build' + ) + } + }, + + loadCountry: function loadCountry() { + throw new BrowserslistError( + 'Country statistics are not supported ' + + 'in client-side build of Browserslist' + ) + }, + + loadFeature: function loadFeature() { + throw new BrowserslistError( + 'Supports queries are not available in client-side build of Browserslist' + ) + }, + + currentNode: function currentNode(resolve, context) { + return resolve(['maintained node versions'], context)[0] + }, + + parseConfig: noop, + + readConfig: noop, + + findConfig: noop, + + findConfigFile: noop, + + clearCaches: noop, + + oldDataWarning: noop, + + env: {} +} diff --git a/server/api/node_modules/browserslist/cli.js b/server/api/node_modules/browserslist/cli.js new file mode 100644 index 0000000..78c08d7 --- /dev/null +++ b/server/api/node_modules/browserslist/cli.js @@ -0,0 +1,156 @@ +#!/usr/bin/env node + +var fs = require('fs') +var updateDb = require('update-browserslist-db') + +var browserslist = require('./') +var pkg = require('./package.json') + +var args = process.argv.slice(2) + +var USAGE = + 'Usage:\n' + + ' npx browserslist\n' + + ' npx browserslist "QUERIES"\n' + + ' npx browserslist --json "QUERIES"\n' + + ' npx browserslist --config="path/to/browserlist/file"\n' + + ' npx browserslist --coverage "QUERIES"\n' + + ' npx browserslist --coverage=US "QUERIES"\n' + + ' npx browserslist --coverage=US,RU,global "QUERIES"\n' + + ' npx browserslist --env="environment name defined in config"\n' + + ' npx browserslist --stats="path/to/browserlist/stats/file"\n' + + ' npx browserslist --mobile-to-desktop\n' + + ' npx browserslist --ignore-unknown-versions\n' + +function isArg(arg) { + return args.some(function (str) { + return str === arg || str.indexOf(arg + '=') === 0 + }) +} + +function error(msg) { + process.stderr.write('browserslist: ' + msg + '\n') + process.exit(1) +} + +if (isArg('--help') || isArg('-h')) { + process.stdout.write(pkg.description + '.\n\n' + USAGE + '\n') +} else if (isArg('--version') || isArg('-v')) { + process.stdout.write('browserslist ' + pkg.version + '\n') +} else if (isArg('--update-db')) { + /* c8 ignore next 8 */ + process.stdout.write( + 'The --update-db command is deprecated.\n' + + 'Please use npx update-browserslist-db@latest instead.\n' + ) + process.stdout.write('Browserslist DB update will still be made.\n') + updateDb(function (str) { + process.stdout.write(str) + }) +} else { + var mode = 'browsers' + var opts = {} + var queries + var areas + + for (var i = 0; i < args.length; i++) { + if (args[i][0] !== '-') { + queries = args[i].replace(/^["']|["']$/g, '') + continue + } + + var arg = args[i].split('=') + var name = arg[0] + var value = arg[1] + + if (value) value = value.replace(/^["']|["']$/g, '') + + if (name === '--config' || name === '-b') { + opts.config = value + } else if (name === '--env' || name === '-e') { + opts.env = value + } else if (name === '--stats' || name === '-s') { + opts.stats = value + } else if (name === '--coverage' || name === '-c') { + if (mode !== 'json') mode = 'coverage' + if (value) { + areas = value.split(',') + } else { + areas = ['global'] + } + } else if (name === '--json') { + mode = 'json' + } else if (name === '--mobile-to-desktop') { + /* c8 ignore next */ + opts.mobileToDesktop = true + } else if (name === '--ignore-unknown-versions') { + /* c8 ignore next */ + opts.ignoreUnknownVersions = true + } else { + error('Unknown arguments ' + args[i] + '.\n\n' + USAGE) + } + } + + var browsers + try { + browsers = browserslist(queries, opts) + } catch (e) { + if (e.name === 'BrowserslistError') { + error(e.message) + } /* c8 ignore start */ else { + throw e + } /* c8 ignore end */ + } + + var coverage + if (mode === 'browsers') { + browsers.forEach(function (browser) { + process.stdout.write(browser + '\n') + }) + } else if (areas) { + coverage = areas.map(function (area) { + var stats + if (area !== 'global') { + stats = area + } else if (opts.stats) { + stats = JSON.parse(fs.readFileSync(opts.stats)) + } + var result = browserslist.coverage(browsers, stats) + var round = Math.round(result * 100) / 100.0 + + return [area, round] + }) + + if (mode === 'coverage') { + var prefix = 'These browsers account for ' + process.stdout.write(prefix) + coverage.forEach(function (data, index) { + var area = data[0] + var round = data[1] + var end = 'globally' + if (area && area !== 'global') { + end = 'in the ' + area.toUpperCase() + } else if (opts.stats) { + end = 'in custom statistics' + } + + if (index !== 0) { + process.stdout.write(prefix.replace(/./g, ' ')) + } + + process.stdout.write(round + '% of all users ' + end + '\n') + }) + } + } + + if (mode === 'json') { + var data = { browsers: browsers } + if (coverage) { + data.coverage = coverage.reduce(function (object, j) { + object[j[0]] = j[1] + return object + }, {}) + } + process.stdout.write(JSON.stringify(data, null, ' ') + '\n') + } +} diff --git a/server/api/node_modules/browserslist/error.d.ts b/server/api/node_modules/browserslist/error.d.ts new file mode 100644 index 0000000..12ff921 --- /dev/null +++ b/server/api/node_modules/browserslist/error.d.ts @@ -0,0 +1,7 @@ +declare class BrowserslistError extends Error { + constructor(message: any) + name: 'BrowserslistError' + browserslist: true +} + +export = BrowserslistError diff --git a/server/api/node_modules/browserslist/error.js b/server/api/node_modules/browserslist/error.js new file mode 100644 index 0000000..6e5da7a --- /dev/null +++ b/server/api/node_modules/browserslist/error.js @@ -0,0 +1,12 @@ +function BrowserslistError(message) { + this.name = 'BrowserslistError' + this.message = message + this.browserslist = true + if (Error.captureStackTrace) { + Error.captureStackTrace(this, BrowserslistError) + } +} + +BrowserslistError.prototype = Error.prototype + +module.exports = BrowserslistError diff --git a/server/api/node_modules/browserslist/index.d.ts b/server/api/node_modules/browserslist/index.d.ts new file mode 100644 index 0000000..a08176c --- /dev/null +++ b/server/api/node_modules/browserslist/index.d.ts @@ -0,0 +1,224 @@ +/** + * Return array of browsers by selection queries. + * + * ```js + * browserslist('IE >= 10, IE 8') //=> ['ie 11', 'ie 10', 'ie 8'] + * ``` + * + * @param queries Browser queries. + * @param opts Options. + * @returns Array with browser names in Can I Use. + */ +declare function browserslist( + queries?: string | readonly string[] | null, + opts?: browserslist.Options +): string[] + +declare namespace browserslist { + interface Query { + compose: 'or' | 'and' + type: string + query: string + not?: true + } + + interface Options { + /** + * Path to processed file. It will be used to find config files. + */ + path?: string | false + /** + * Processing environment. It will be used to take right queries + * from config file. + */ + env?: string + /** + * Custom browser usage statistics for "> 1% in my stats" query. + */ + stats?: Stats | string + /** + * Path to config file with queries. + */ + config?: string + /** + * Do not throw on unknown version in direct query. + */ + ignoreUnknownVersions?: boolean + /** + * Throw an error if env is not found. + */ + throwOnMissing?: boolean + /** + * Disable security checks for extend query. + */ + dangerousExtend?: boolean + /** + * Alias mobile browsers to the desktop version when Can I Use + * doesn’t have data about the specified version. + */ + mobileToDesktop?: boolean + } + + type Config = { + defaults: string[] + [section: string]: string[] | undefined + } + + interface Stats { + [browser: string]: { + [version: string]: number + } + } + + /** + * Browser names aliases. + */ + let aliases: { + [alias: string]: string | undefined + } + + /** + * Aliases to work with joined versions like `ios_saf 7.0-7.1`. + */ + let versionAliases: { + [browser: string]: + | { + [version: string]: string | undefined + } + | undefined + } + + /** + * Can I Use only provides a few versions for some browsers (e.g. `and_chr`). + * + * Fallback to a similar browser for unknown versions. + */ + let desktopNames: { + [browser: string]: string | undefined + } + + let data: { + [browser: string]: + | { + name: string + versions: string[] + released: string[] + releaseDate: { + [version: string]: number | undefined | null + } + } + | undefined + } + + let nodeVersions: string[] + + interface Usage { + [version: string]: number + } + + let usage: { + global?: Usage + custom?: Usage | null + [country: string]: Usage | undefined | null + } + + let cache: { + [feature: string]: { + [name: string]: { + [version: string]: string + } + } + } + + /** + * Default browsers query + */ + let defaults: readonly string[] + + /** + * Which statistics should be used. Country code or custom statistics. + * Pass `"my stats"` to load statistics from `Browserslist` files. + */ + type StatsOptions = string | 'my stats' | Stats | { dataByBrowser: Stats } + + /** + * Return browsers market coverage. + * + * ```js + * browserslist.coverage(browserslist('> 1% in US'), 'US') //=> 83.1 + * ``` + * + * @param browsers Browsers names in Can I Use. + * @param stats Which statistics should be used. + * @returns Total market coverage for all selected browsers. + */ + function coverage(browsers: readonly string[], stats?: StatsOptions): number + + /** + * Get queries AST to analyze the config content. + * + * @param queries Browser queries. + * @param opts Options. + * @returns An array of the data of each query in the config. + */ + function parse( + queries?: string | readonly string[] | null, + opts?: browserslist.Options + ): Query[] + + /** + * Return queries for specific file inside the project. + * + * ```js + * browserslist.loadConfig({ + * file: process.cwd() + * }) ?? browserslist.defaults + * ``` + */ + function loadConfig(options: LoadConfigOptions): string[] | undefined + + function clearCaches(): void + + function parseConfig(string: string): Config + + function readConfig(file: string): Config + + function findConfig(...pathSegments: string[]): Config | undefined + + function findConfigFile(...pathSegments: string[]): string | undefined + + interface LoadConfigOptions { + /** + * Path to config file + * */ + config?: string + + /** + * Path to file inside the project to find Browserslist config + * in closest folder + */ + path?: string + + /** + * Environment to choose part of config. + */ + env?: string + } +} + +declare global { + namespace NodeJS { + interface ProcessEnv { + BROWSERSLIST?: string + BROWSERSLIST_CONFIG?: string + BROWSERSLIST_DANGEROUS_EXTEND?: string + BROWSERSLIST_DISABLE_CACHE?: string + BROWSERSLIST_ENV?: string + BROWSERSLIST_IGNORE_OLD_DATA?: string + BROWSERSLIST_STATS?: string + BROWSERSLIST_ROOT_PATH?: string + } + } +} + +export = browserslist diff --git a/server/api/node_modules/browserslist/index.js b/server/api/node_modules/browserslist/index.js new file mode 100644 index 0000000..8b52d93 --- /dev/null +++ b/server/api/node_modules/browserslist/index.js @@ -0,0 +1,1339 @@ +var bbm = require('baseline-browser-mapping') +var jsReleases = require('node-releases/data/processed/envs.json') +var agents = require('caniuse-lite/dist/unpacker/agents').agents +var e2c = require('electron-to-chromium/versions') +var jsEOL = require('node-releases/data/release-schedule/release-schedule.json') +var path = require('path') + +var BrowserslistError = require('./error') +var env = require('./node') +var parseWithoutCache = require('./parse') // Will load browser.js in webpack + +var YEAR = 365.259641 * 24 * 60 * 60 * 1000 +var ANDROID_EVERGREEN_FIRST = '37' +var OP_MOB_BLINK_FIRST = 14 +var FIREFOX_ESR_VERSION = '140' + +// Helpers + +function isVersionsMatch(versionA, versionB) { + return (versionA + '.').indexOf(versionB + '.') === 0 +} + +function isEolReleased(name) { + var version = name.slice(1) + return browserslist.nodeVersions.some(function (i) { + return isVersionsMatch(i, version) + }) +} + +function normalize(versions) { + return versions.filter(function (version) { + return typeof version === 'string' + }) +} + +function normalizeElectron(version) { + var versionToUse = version + if (version.split('.').length === 3) { + versionToUse = version.split('.').slice(0, -1).join('.') + } + return versionToUse +} + +function nameMapper(name) { + return function mapName(version) { + return name + ' ' + version + } +} + +function getMajor(version) { + return parseInt(version.split('.')[0]) +} + +function getMajorVersions(released, number) { + if (released.length === 0) return [] + var majorVersions = uniq(released.map(getMajor)) + var minimum = majorVersions[majorVersions.length - number] + if (!minimum) { + return released + } + var selected = [] + for (var i = released.length - 1; i >= 0; i--) { + if (minimum > getMajor(released[i])) break + selected.unshift(released[i]) + } + return selected +} + +function uniq(array) { + var filtered = [] + for (var i = 0; i < array.length; i++) { + if (filtered.indexOf(array[i]) === -1) filtered.push(array[i]) + } + return filtered +} + +function fillUsage(result, name, data) { + for (var i in data) { + result[name + ' ' + i] = data[i] + } +} + +function generateFilter(sign, version) { + version = parseFloat(version) + if (sign === '>') { + return function (v) { + return parseLatestFloat(v) > version + } + } else if (sign === '>=') { + return function (v) { + return parseLatestFloat(v) >= version + } + } else if (sign === '<') { + return function (v) { + return parseFloat(v) < version + } + } else { + return function (v) { + return parseFloat(v) <= version + } + } + + function parseLatestFloat(v) { + return parseFloat(v.split('-')[1] || v) + } +} + +function generateSemverFilter(sign, version) { + version = version.split('.').map(parseSimpleInt) + version[1] = version[1] || 0 + version[2] = version[2] || 0 + if (sign === '>') { + return function (v) { + v = v.split('.').map(parseSimpleInt) + return compareSemver(v, version) > 0 + } + } else if (sign === '>=') { + return function (v) { + v = v.split('.').map(parseSimpleInt) + return compareSemver(v, version) >= 0 + } + } else if (sign === '<') { + return function (v) { + v = v.split('.').map(parseSimpleInt) + return compareSemver(version, v) > 0 + } + } else { + return function (v) { + v = v.split('.').map(parseSimpleInt) + return compareSemver(version, v) >= 0 + } + } +} + +function parseSimpleInt(x) { + return parseInt(x) +} + +function compare(a, b) { + if (a < b) return -1 + if (a > b) return +1 + return 0 +} + +function compareSemver(a, b) { + return ( + compare(parseInt(a[0]), parseInt(b[0])) || + compare(parseInt(a[1] || '0'), parseInt(b[1] || '0')) || + compare(parseInt(a[2] || '0'), parseInt(b[2] || '0')) + ) +} + +// this follows the npm-like semver behavior +function semverFilterLoose(operator, range) { + range = range.split('.').map(parseSimpleInt) + if (typeof range[1] === 'undefined') { + range[1] = 'x' + } + // ignore any patch version because we only return minor versions + // range[2] = 'x' + switch (operator) { + case '<=': + return function (version) { + version = version.split('.').map(parseSimpleInt) + return compareSemverLoose(version, range) <= 0 + } + case '>=': + default: + return function (version) { + version = version.split('.').map(parseSimpleInt) + return compareSemverLoose(version, range) >= 0 + } + } +} + +// this follows the npm-like semver behavior +function compareSemverLoose(version, range) { + if (version[0] !== range[0]) { + return version[0] < range[0] ? -1 : +1 + } + if (range[1] === 'x') { + return 0 + } + if (version[1] !== range[1]) { + return version[1] < range[1] ? -1 : +1 + } + return 0 +} + +function resolveVersion(data, version) { + if (data.versions.indexOf(version) !== -1) { + return version + } else if (browserslist.versionAliases[data.name][version]) { + return browserslist.versionAliases[data.name][version] + } else { + return false + } +} + +function normalizeVersion(data, version) { + var resolved = resolveVersion(data, version) + if (resolved) { + return resolved + } else if (data.versions.length === 1) { + return data.versions[0] + } else { + return false + } +} + +function filterByYear(since, context) { + since = since / 1000 + return Object.keys(agents).reduce(function (selected, name) { + var data = byName(name, context) + if (!data) return selected + var versions = Object.keys(data.releaseDate).filter(function (v) { + var date = data.releaseDate[v] + return date !== null && date >= since + }) + return selected.concat(versions.map(nameMapper(data.name))) + }, []) +} + +function cloneData(data) { + return { + name: data.name, + versions: data.versions, + released: data.released, + releaseDate: data.releaseDate + } +} + +function byName(name, context) { + name = name.toLowerCase() + name = browserslist.aliases[name] || name + if (context.mobileToDesktop && browserslist.desktopNames[name]) { + var desktop = browserslist.data[browserslist.desktopNames[name]] + if (name === 'android') { + return normalizeAndroidData(cloneData(browserslist.data[name]), desktop) + } else { + var cloned = cloneData(desktop) + cloned.name = name + return cloned + } + } + return browserslist.data[name] +} + +function normalizeAndroidVersions(androidVersions, chromeVersions) { + var iFirstEvergreen = chromeVersions.indexOf(ANDROID_EVERGREEN_FIRST) + return androidVersions + .filter(function (version) { + return /^(?:[2-4]\.|[34]$)/.test(version) + }) + .concat(chromeVersions.slice(iFirstEvergreen)) +} + +var DANGEROUS_KEYS = ['__proto__', 'constructor', 'prototype'] + +function copyObject(obj) { + var copy = {} + for (var key in obj) { + if (DANGEROUS_KEYS.indexOf(key) === -1) { + copy[key] = obj[key] + } + } + return copy +} + +function normalizeAndroidData(android, chrome) { + android.released = normalizeAndroidVersions(android.released, chrome.released) + android.versions = normalizeAndroidVersions(android.versions, chrome.versions) + android.releaseDate = copyObject(android.releaseDate) + android.released.forEach(function (v) { + if (android.releaseDate[v] === undefined) { + android.releaseDate[v] = chrome.releaseDate[v] + } + }) + return android +} + +function checkName(name, context) { + var data = byName(name, context) + if (!data) throw new BrowserslistError('Unknown browser ' + name) + return data +} + +function unknownQuery(query) { + return new BrowserslistError( + 'Unknown browser query `' + + query + + '`. ' + + 'Maybe you are using old Browserslist or made typo in query.' + ) +} + +// Adjusts last X versions queries for some mobile browsers, +// where caniuse data jumps from a legacy version to the latest +function filterJumps(list, name, nVersions, context) { + var jump = 1 + switch (name) { + case 'android': + if (context.mobileToDesktop) return list + var released = browserslist.data.chrome.released + jump = released.length - released.indexOf(ANDROID_EVERGREEN_FIRST) + break + case 'op_mob': + var latest = browserslist.data.op_mob.released.slice(-1)[0] + jump = getMajor(latest) - OP_MOB_BLINK_FIRST + 1 + break + default: + return list + } + if (nVersions <= jump) { + return list.slice(-1) + } + return list.slice(jump - 1 - nVersions) +} + +function isSupported(flags, withPartial) { + return ( + typeof flags === 'string' && + (flags.indexOf('y') >= 0 || (withPartial && flags.indexOf('a') >= 0)) + ) +} + +function resolve(queries, context) { + return parseQueries(queries).reduce(function (result, node, index) { + if (node.not && index === 0) { + throw new BrowserslistError( + 'Write any browsers query (for instance, `defaults`) ' + + 'before `' + + node.query + + '`' + ) + } + var type = QUERIES[node.type] + var array = type.select.call(browserslist, context, node).map(function (j) { + var parts = j.split(' ') + if (parts[1] === '0') { + return parts[0] + ' ' + byName(parts[0], context).versions[0] + } else { + return j + } + }) + + if (node.compose === 'and') { + if (node.not) { + return result.filter(function (j) { + return array.indexOf(j) === -1 + }) + } else { + return result.filter(function (j) { + return array.indexOf(j) !== -1 + }) + } + } else { + if (node.not) { + var filter = {} + array.forEach(function (j) { + filter[j] = true + }) + return result.filter(function (j) { + return !filter[j] + }) + } + return result.concat(array) + } + }, []) +} + +function prepareOpts(opts) { + if (typeof opts === 'undefined') opts = {} + + if (typeof opts.path === 'undefined') { + opts.path = path.resolve ? path.resolve('.') : '.' + } + + return opts +} + +function prepareQueries(queries, opts) { + if (typeof queries === 'undefined' || queries === null) { + var config = browserslist.loadConfig(opts) + if (config) { + queries = config + } else { + queries = browserslist.defaults + } + } + + return queries +} + +function checkQueries(queries) { + if (!(typeof queries === 'string' || Array.isArray(queries))) { + throw new BrowserslistError( + 'Browser queries must be an array or string. Got ' + typeof queries + '.' + ) + } +} + +var cache = {} +var parseCache = {} + +function browserslist(queries, opts) { + opts = prepareOpts(opts) + queries = prepareQueries(queries, opts) + checkQueries(queries) + + var needsPath = parseQueries(queries).some(function (node) { + return QUERIES[node.type].needsPath + }) + var context = { + ignoreUnknownVersions: opts.ignoreUnknownVersions, + dangerousExtend: opts.dangerousExtend, + throwOnMissing: opts.throwOnMissing, + mobileToDesktop: opts.mobileToDesktop, + env: opts.env + } + // Removing to avoid using context.path without marking query as needsPath + if (needsPath) { + context.path = opts.path + } + + env.oldDataWarning(browserslist.data) + var stats = env.getStat(opts, browserslist.data) + if (stats) { + context.customUsage = {} + for (var browser in stats) { + fillUsage(context.customUsage, browser, stats[browser]) + } + } + + var cacheKey = JSON.stringify([queries, context]) + if (cache[cacheKey]) return cache[cacheKey] + + var result = uniq(resolve(queries, context)).sort(function (name1, name2) { + name1 = name1.split(' ') + name2 = name2.split(' ') + if (name1[0] === name2[0]) { + // assumptions on caniuse data + // 1) version ranges never overlaps + // 2) if version is not a range, it never contains `-` + var version1 = name1[1].split('-')[0] + var version2 = name2[1].split('-')[0] + return compareSemver(version2.split('.'), version1.split('.')) + } else { + return compare(name1[0], name2[0]) + } + }) + if (!env.env.BROWSERSLIST_DISABLE_CACHE) { + cache[cacheKey] = result + } + return result +} + +function parseQueries(queries) { + var cacheKey = JSON.stringify(queries) + if (cacheKey in parseCache) return parseCache[cacheKey] + var result = parseWithoutCache(QUERIES, queries) + if (!env.env.BROWSERSLIST_DISABLE_CACHE) { + parseCache[cacheKey] = result + } + return result +} + +function loadCustomUsage(context, config) { + var stats = env.loadStat(context, config, browserslist.data) + if (stats) { + context.customUsage = {} + for (var browser in stats) { + fillUsage(context.customUsage, browser, stats[browser]) + } + } + if (!context.customUsage) { + throw new BrowserslistError('Custom usage statistics was not provided') + } + return context.customUsage +} + +browserslist.parse = function (queries, opts) { + opts = prepareOpts(opts) + queries = prepareQueries(queries, opts) + checkQueries(queries) + return parseQueries(queries) +} + +// Will be filled by Can I Use data below +browserslist.cache = {} +browserslist.data = {} +browserslist.usage = { + global: {}, + custom: null +} + +// Default browsers query +browserslist.defaults = ['> 0.5%', 'last 2 versions', 'Firefox ESR', 'not dead'] + +// Browser names aliases +browserslist.aliases = { + fx: 'firefox', + ff: 'firefox', + ios: 'ios_saf', + explorer: 'ie', + blackberry: 'bb', + explorermobile: 'ie_mob', + operamini: 'op_mini', + operamobile: 'op_mob', + chromeandroid: 'and_chr', + firefoxandroid: 'and_ff', + ucandroid: 'and_uc', + qqandroid: 'and_qq' +} + +// Can I Use only provides a few versions for some browsers (e.g. and_chr). +// Fallback to a similar browser for unknown versions +// Note op_mob is not included as its chromium versions are not in sync with Opera desktop +browserslist.desktopNames = { + and_chr: 'chrome', + and_ff: 'firefox', + ie_mob: 'ie', + android: 'chrome' // has extra processing logic +} + +// Aliases to work with joined versions like `ios_saf 7.0-7.1` +browserslist.versionAliases = {} + +browserslist.clearCaches = env.clearCaches +browserslist.parseConfig = env.parseConfig +browserslist.readConfig = env.readConfig +browserslist.findConfigFile = env.findConfigFile +browserslist.findConfig = env.findConfig +browserslist.loadConfig = env.loadConfig + +browserslist.coverage = function (browsers, stats) { + var data + if (typeof stats === 'undefined') { + data = browserslist.usage.global + } else if (stats === 'my stats') { + var opts = {} + opts.path = path.resolve ? path.resolve('.') : '.' + var customStats = env.getStat(opts) + if (!customStats) { + throw new BrowserslistError('Custom usage statistics was not provided') + } + data = {} + for (var browser in customStats) { + fillUsage(data, browser, customStats[browser]) + } + } else if (typeof stats === 'string') { + if (stats.length > 2) { + stats = stats.toLowerCase() + } else { + stats = stats.toUpperCase() + } + env.loadCountry(browserslist.usage, stats, browserslist.data) + data = browserslist.usage[stats] + } else { + if ('dataByBrowser' in stats) { + stats = stats.dataByBrowser + } + data = {} + for (var name in stats) { + for (var version in stats[name]) { + data[name + ' ' + version] = stats[name][version] + } + } + } + + return browsers.reduce(function (all, i) { + var usage = data[i] + if (usage === undefined) { + usage = data[i.replace(/ \S+$/, ' 0')] + } + return all + (usage || 0) + }, 0) +} + +function nodeQuery(context, node) { + var matched = browserslist.nodeVersions.filter(function (i) { + return isVersionsMatch(i, node.version) + }) + if (matched.length === 0) { + if (context.ignoreUnknownVersions) { + return [] + } else { + throw new BrowserslistError( + 'Unknown version ' + node.version + ' of Node.js' + ) + } + } + return ['node ' + matched[matched.length - 1]] +} + +function sinceQuery(context, node) { + var year = parseInt(node.year) + var month = parseInt(node.month || '01') - 1 + var day = parseInt(node.day || '01') + return filterByYear(Date.UTC(year, month, day, 0, 0, 0), context) +} + +function bbmTransform(bbmVersions) { + var browsers = { + chrome: 'chrome', + chrome_android: 'and_chr', + edge: 'edge', + firefox: 'firefox', + firefox_android: 'and_ff', + safari: 'safari', + safari_ios: 'ios_saf', + webview_android: 'android', + samsunginternet_android: 'samsung', + opera_android: 'op_mob', + opera: 'opera', + qq_android: 'and_qq', + uc_android: 'and_uc', + kai_os: 'kaios' + } + + return bbmVersions + .filter(function (version) { + return Object.keys(browsers).indexOf(version.browser) !== -1 + }) + .map(function (version) { + return browsers[version.browser] + ' >= ' + version.version + }) +} + +function coverQuery(context, node) { + var coverage = parseFloat(node.coverage) + var usage = browserslist.usage.global + if (node.place) { + if (node.place.match(/^my\s+stats$/i)) { + if (!context.customUsage) { + throw new BrowserslistError('Custom usage statistics was not provided') + } + usage = context.customUsage + } else { + var place + if (node.place.length === 2) { + place = node.place.toUpperCase() + } else { + place = node.place.toLowerCase() + } + env.loadCountry(browserslist.usage, place, browserslist.data) + usage = browserslist.usage[place] + } + } else if (node.config) { + usage = loadCustomUsage(context, node.config) + } + var versions = Object.keys(usage).sort(function (a, b) { + return usage[b] - usage[a] + }) + var covered = 0 + var result = [] + var version + for (var i = 0; i < versions.length; i++) { + version = versions[i] + if (usage[version] === 0) break + covered += usage[version] + result.push(version) + if (covered >= coverage) break + } + return result +} + +var QUERIES = { + last_major_versions: { + matches: ['versions'], + regexp: /^last\s+(\d+)\s+major\s+versions?$/i, + select: function (context, node) { + return Object.keys(agents).reduce(function (selected, name) { + var data = byName(name, context) + if (!data) return selected + var list = getMajorVersions(data.released, node.versions) + list = list.map(nameMapper(data.name)) + list = filterJumps(list, data.name, node.versions, context) + return selected.concat(list) + }, []) + } + }, + last_versions: { + matches: ['versions'], + regexp: /^last\s+(\d+)\s+versions?$/i, + select: function (context, node) { + return Object.keys(agents).reduce(function (selected, name) { + var data = byName(name, context) + if (!data) return selected + var list = data.released.slice(-node.versions) + list = list.map(nameMapper(data.name)) + list = filterJumps(list, data.name, node.versions, context) + return selected.concat(list) + }, []) + } + }, + last_electron_major_versions: { + matches: ['versions'], + regexp: /^last\s+(\d+)\s+electron\s+major\s+versions?$/i, + select: function (context, node) { + var validVersions = getMajorVersions(Object.keys(e2c), node.versions) + return validVersions.map(function (i) { + return 'chrome ' + e2c[i] + }) + } + }, + last_node_major_versions: { + matches: ['versions'], + regexp: /^last\s+(\d+)\s+node\s+major\s+versions?$/i, + select: function (context, node) { + return getMajorVersions(browserslist.nodeVersions, node.versions).map( + function (version) { + return 'node ' + version + } + ) + } + }, + last_browser_major_versions: { + matches: ['versions', 'browser'], + regexp: /^last\s+(\d+)\s+(\w+)\s+major\s+versions?$/i, + select: function (context, node) { + var data = checkName(node.browser, context) + var validVersions = getMajorVersions(data.released, node.versions) + var list = validVersions.map(nameMapper(data.name)) + list = filterJumps(list, data.name, node.versions, context) + return list + } + }, + last_electron_versions: { + matches: ['versions'], + regexp: /^last\s+(\d+)\s+electron\s+versions?$/i, + select: function (context, node) { + return Object.keys(e2c) + .slice(-node.versions) + .map(function (i) { + return 'chrome ' + e2c[i] + }) + } + }, + last_node_versions: { + matches: ['versions'], + regexp: /^last\s+(\d+)\s+node\s+versions?$/i, + select: function (context, node) { + return browserslist.nodeVersions + .slice(-node.versions) + .map(function (version) { + return 'node ' + version + }) + } + }, + last_browser_versions: { + matches: ['versions', 'browser'], + regexp: /^last\s+(\d+)\s+(\w+)\s+versions?$/i, + select: function (context, node) { + var data = checkName(node.browser, context) + var list = data.released.slice(-node.versions).map(nameMapper(data.name)) + list = filterJumps(list, data.name, node.versions, context) + return list + } + }, + unreleased_versions: { + matches: [], + regexp: /^unreleased\s+versions$/i, + select: function (context) { + return Object.keys(agents).reduce(function (selected, name) { + var data = byName(name, context) + if (!data) return selected + var list = data.versions.filter(function (v) { + return data.released.indexOf(v) === -1 + }) + list = list.map(nameMapper(data.name)) + return selected.concat(list) + }, []) + } + }, + unreleased_electron_versions: { + matches: [], + regexp: /^unreleased\s+electron\s+versions?$/i, + select: function () { + return [] + } + }, + unreleased_browser_versions: { + matches: ['browser'], + regexp: /^unreleased\s+(\w+)\s+versions?$/i, + select: function (context, node) { + var data = checkName(node.browser, context) + return data.versions + .filter(function (v) { + return data.released.indexOf(v) === -1 + }) + .map(nameMapper(data.name)) + } + }, + last_years: { + matches: ['years'], + regexp: /^last\s+((\d+\.)?\d+)\s+years?$/i, + select: function (context, node) { + return filterByYear(Date.now() - YEAR * node.years, context) + } + }, + since_y: { + matches: ['year'], + regexp: /^since (\d+)$/i, + select: sinceQuery + }, + since_y_m: { + matches: ['year', 'month'], + regexp: /^since (\d+)-(\d+)$/i, + select: sinceQuery + }, + since_y_m_d: { + matches: ['year', 'month', 'day'], + regexp: /^since (\d+)-(\d+)-(\d+)$/i, + select: sinceQuery + }, + baseline: { + matches: ['year', 'availability', 'date', 'downstream', 'kaios'], + // Matches: + // baseline 2024 + // baseline newly available + // baseline widely available + // baseline widely available on 2024-06-01 + // ...with downstream + // ...including kaios + regexp: + /^baseline\s+(?:(\d+)|(newly|widely)\s+available(?:\s+on\s+(\d{4}-\d{2}-\d{2}))?)?(\s+with\s+downstream)?(\s+including\s+kaios)?$/i, + select: function (context, node) { + var baselineVersions + var includeDownstream = !!node.downstream + var includeKaiOS = !!node.kaios + if (node.availability === 'newly' && node.date) { + throw new BrowserslistError( + 'Using newly available with a date is not supported, please use "widely available on YYYY-MM-DD" and add 30 months to the date you specified.' + ) + } + if (node.year) { + baselineVersions = bbm.getCompatibleVersions({ + targetYear: node.year, + includeDownstreamBrowsers: includeDownstream, + includeKaiOS: includeKaiOS, + suppressWarnings: true + }) + } else if (node.date) { + baselineVersions = bbm.getCompatibleVersions({ + widelyAvailableOnDate: node.date, + includeDownstreamBrowsers: includeDownstream, + includeKaiOS: includeKaiOS, + suppressWarnings: true + }) + } else if (node.availability === 'newly') { + var future30months = new Date().setMonth(new Date().getMonth() + 30) + baselineVersions = bbm.getCompatibleVersions({ + widelyAvailableOnDate: future30months, + includeDownstreamBrowsers: includeDownstream, + includeKaiOS: includeKaiOS, + suppressWarnings: true + }) + } else { + baselineVersions = bbm.getCompatibleVersions({ + includeDownstreamBrowsers: includeDownstream, + includeKaiOS: includeKaiOS, + suppressWarnings: true + }) + } + return resolve(bbmTransform(baselineVersions), context) + } + }, + popularity: { + matches: ['sign', 'popularity'], + regexp: /^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%$/, + select: function (context, node) { + var popularity = parseFloat(node.popularity) + var usage = browserslist.usage.global + return Object.keys(usage).reduce(function (result, version) { + if (node.sign === '>') { + if (usage[version] > popularity) { + result.push(version) + } + } else if (node.sign === '<') { + if (usage[version] < popularity) { + result.push(version) + } + } else if (node.sign === '<=') { + if (usage[version] <= popularity) { + result.push(version) + } + } else if (usage[version] >= popularity) { + result.push(version) + } + return result + }, []) + } + }, + popularity_in_my_stats: { + matches: ['sign', 'popularity'], + regexp: /^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+my\s+stats$/, + select: function (context, node) { + var popularity = parseFloat(node.popularity) + if (!context.customUsage) { + throw new BrowserslistError('Custom usage statistics was not provided') + } + var usage = context.customUsage + return Object.keys(usage).reduce(function (result, version) { + var percentage = usage[version] + if (percentage == null) { + return result + } + + if (node.sign === '>') { + if (percentage > popularity) { + result.push(version) + } + } else if (node.sign === '<') { + if (percentage < popularity) { + result.push(version) + } + } else if (node.sign === '<=') { + if (percentage <= popularity) { + result.push(version) + } + } else if (percentage >= popularity) { + result.push(version) + } + return result + }, []) + } + }, + popularity_in_config_stats: { + matches: ['sign', 'popularity', 'config'], + regexp: /^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+(\S+)\s+stats$/, + select: function (context, node) { + var popularity = parseFloat(node.popularity) + var usage = loadCustomUsage(context, node.config) + return Object.keys(usage).reduce(function (result, version) { + var percentage = usage[version] + if (percentage == null) { + return result + } + + if (node.sign === '>') { + if (percentage > popularity) { + result.push(version) + } + } else if (node.sign === '<') { + if (percentage < popularity) { + result.push(version) + } + } else if (node.sign === '<=') { + if (percentage <= popularity) { + result.push(version) + } + } else if (percentage >= popularity) { + result.push(version) + } + return result + }, []) + } + }, + popularity_in_place: { + matches: ['sign', 'popularity', 'place'], + regexp: /^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+((alt-)?\w\w)$/, + select: function (context, node) { + var popularity = parseFloat(node.popularity) + var place = node.place + if (place.length === 2) { + place = place.toUpperCase() + } else { + place = place.toLowerCase() + } + env.loadCountry(browserslist.usage, place, browserslist.data) + var usage = browserslist.usage[place] + return Object.keys(usage).reduce(function (result, version) { + var percentage = usage[version] + if (percentage == null) { + return result + } + + if (node.sign === '>') { + if (percentage > popularity) { + result.push(version) + } + } else if (node.sign === '<') { + if (percentage < popularity) { + result.push(version) + } + } else if (node.sign === '<=') { + if (percentage <= popularity) { + result.push(version) + } + } else if (percentage >= popularity) { + result.push(version) + } + return result + }, []) + } + }, + cover: { + matches: ['coverage'], + regexp: /^cover\s+(\d+|\d+\.\d+|\.\d+)%$/i, + select: coverQuery + }, + cover_in: { + matches: ['coverage', 'place'], + regexp: /^cover\s+(\d+|\d+\.\d+|\.\d+)%\s+in\s+(my\s+stats|(alt-)?\w\w)$/i, + select: coverQuery + }, + cover_config: { + matches: ['coverage', 'config'], + regexp: /^cover\s+(\d+|\d+\.\d+|\.\d+)%\s+in\s+(\S+)\s+stats$/i, + select: coverQuery + }, + supports: { + matches: ['supportType', 'feature'], + regexp: /^(?:(fully|partially)\s+)?supports\s+([\w-]+)$/, + select: function (context, node) { + env.loadFeature(browserslist.cache, node.feature) + var withPartial = node.supportType !== 'fully' + var features = browserslist.cache[node.feature] + var result = [] + for (var name in features) { + var data = byName(name, context) + // Only check desktop when latest released mobile has support + var iMax = data.released.length - 1 + while (iMax >= 0) { + if (data.released[iMax] in features[name]) break + iMax-- + } + var checkDesktop = + context.mobileToDesktop && + name in browserslist.desktopNames && + isSupported(features[name][data.released[iMax]], withPartial) + data.versions.forEach(function (version) { + var flags = features[name][version] + if (flags === undefined && checkDesktop) { + flags = features[browserslist.desktopNames[name]][version] + } + if (isSupported(flags, withPartial)) { + result.push(name + ' ' + version) + } + }) + } + return result + } + }, + electron_range: { + matches: ['from', 'to'], + regexp: /^electron\s+([\d.]+)\s*-\s*([\d.]+)$/i, + select: function (context, node) { + var fromToUse = normalizeElectron(node.from) + var toToUse = normalizeElectron(node.to) + var from = parseFloat(node.from) + var to = parseFloat(node.to) + if (!e2c[fromToUse]) { + throw new BrowserslistError('Unknown version ' + from + ' of electron') + } + if (!e2c[toToUse]) { + throw new BrowserslistError('Unknown version ' + to + ' of electron') + } + return Object.keys(e2c) + .filter(function (i) { + var parsed = parseFloat(i) + return parsed >= from && parsed <= to + }) + .map(function (i) { + return 'chrome ' + e2c[i] + }) + } + }, + node_range: { + matches: ['from', 'to'], + regexp: /^node\s+([\d.]+)\s*-\s*([\d.]+)$/i, + select: function (context, node) { + return browserslist.nodeVersions + .filter(semverFilterLoose('>=', node.from)) + .filter(semverFilterLoose('<=', node.to)) + .map(function (v) { + return 'node ' + v + }) + } + }, + browser_range: { + matches: ['browser', 'from', 'to'], + regexp: /^(\w+)\s+([\d.]+)\s*-\s*([\d.]+)$/i, + select: function (context, node) { + var data = checkName(node.browser, context) + var from = parseFloat(normalizeVersion(data, node.from) || node.from) + var to = parseFloat(normalizeVersion(data, node.to) || node.to) + function filter(v) { + var parsed = parseFloat(v) + return parsed >= from && parsed <= to + } + return data.released.filter(filter).map(nameMapper(data.name)) + } + }, + electron_ray: { + matches: ['sign', 'version'], + regexp: /^electron\s*(>=?|<=?)\s*([\d.]+)$/i, + select: function (context, node) { + var versionToUse = normalizeElectron(node.version) + return Object.keys(e2c) + .filter(generateFilter(node.sign, versionToUse)) + .map(function (i) { + return 'chrome ' + e2c[i] + }) + } + }, + node_ray: { + matches: ['sign', 'version'], + regexp: /^node\s*(>=?|<=?)\s*([\d.]+)$/i, + select: function (context, node) { + return browserslist.nodeVersions + .filter(generateSemverFilter(node.sign, node.version)) + .map(function (v) { + return 'node ' + v + }) + } + }, + browser_ray: { + matches: ['browser', 'sign', 'version'], + regexp: /^(\w+)\s*(>=?|<=?)\s*([\d.]+|esr)$/i, + select: function (context, node) { + var version = node.version + var data = checkName(node.browser, context) + var alias = browserslist.versionAliases[data.name][version.toLowerCase()] + if (alias) version = alias + if (!/[\d.]+/.test(version)) { + throw new BrowserslistError( + 'Unknown version ' + version + ' of ' + node.browser + ) + } + return data.released + .filter(generateFilter(node.sign, version)) + .map(function (v) { + return data.name + ' ' + v + }) + } + }, + firefox_esr: { + matches: [], + regexp: /^(firefox|ff|fx)\s+esr$/i, + select: function () { + return ['firefox ' + FIREFOX_ESR_VERSION] + } + }, + opera_mini_all: { + matches: [], + regexp: /(operamini|op_mini)\s+all/i, + select: function () { + return ['op_mini all'] + } + }, + electron_version: { + matches: ['version'], + regexp: /^electron\s+([\d.]+)$/i, + select: function (context, node) { + var versionToUse = normalizeElectron(node.version) + var chrome = e2c[versionToUse] + if (!chrome) { + throw new BrowserslistError( + 'Unknown version ' + node.version + ' of electron' + ) + } + return ['chrome ' + chrome] + } + }, + node_major_version: { + matches: ['version'], + regexp: /^node\s+(\d+)$/i, + select: nodeQuery + }, + node_minor_version: { + matches: ['version'], + regexp: /^node\s+(\d+\.\d+)$/i, + select: nodeQuery + }, + node_patch_version: { + matches: ['version'], + regexp: /^node\s+(\d+\.\d+\.\d+)$/i, + select: nodeQuery + }, + current_node: { + matches: [], + regexp: /^current\s+node$/i, + select: function (context) { + return [env.currentNode(resolve, context)] + } + }, + maintained_node: { + matches: [], + regexp: /^maintained\s+node\s+versions$/i, + select: function (context) { + var now = Date.now() + var queries = Object.keys(jsEOL) + .filter(function (key) { + return ( + now < Date.parse(jsEOL[key].end) && + now > Date.parse(jsEOL[key].start) && + isEolReleased(key) + ) + }) + .map(function (key) { + return 'node ' + key.slice(1) + }) + return resolve(queries, context) + } + }, + phantomjs_1_9: { + matches: [], + regexp: /^phantomjs\s+1.9$/i, + select: function () { + return ['safari 5'] + } + }, + phantomjs_2_1: { + matches: [], + regexp: /^phantomjs\s+2.1$/i, + select: function () { + return ['safari 6'] + } + }, + browser_version: { + matches: ['browser', 'version'], + regexp: /^(\w+)\s+(tp|[\d.]+)$/i, + select: function (context, node) { + var version = node.version + if (/^tp$/i.test(version)) version = 'TP' + var data = checkName(node.browser, context) + var alias = normalizeVersion(data, version) + if (alias) { + version = alias + } else { + if (version.indexOf('.') === -1) { + alias = version + '.0' + } else { + alias = version.replace(/\.0$/, '') + } + alias = normalizeVersion(data, alias) + if (alias) { + version = alias + } else if (context.ignoreUnknownVersions) { + return [] + } else { + throw new BrowserslistError( + 'Unknown version ' + version + ' of ' + node.browser + ) + } + } + return [data.name + ' ' + version] + } + }, + browserslist_config: { + matches: [], + regexp: /^browserslist config$/i, + needsPath: true, + select: function (context) { + return browserslist(undefined, context) + } + }, + extends: { + matches: ['config'], + regexp: /^extends (.+)$/i, + needsPath: true, + select: function (context, node) { + return resolve(env.loadQueries(context, node.config), context) + } + }, + defaults: { + matches: [], + regexp: /^defaults$/i, + select: function (context) { + return resolve(browserslist.defaults, context) + } + }, + dead: { + matches: [], + regexp: /^dead$/i, + select: function (context) { + var dead = [ + 'Baidu >= 0', + 'ie <= 11', + 'ie_mob <= 11', + 'bb <= 10', + 'op_mob <= 12.1', + 'samsung 4' + ] + return resolve(dead, context) + } + }, + unknown: { + matches: [], + regexp: /^(\w+)$/i, + select: function (context, node) { + if (byName(node.query, context)) { + throw new BrowserslistError( + 'Specify versions in Browserslist query for browser ' + node.query + ) + } else { + throw unknownQuery(node.query) + } + } + } +} + +// Get and convert Can I Use data + +;(function () { + for (var name in agents) { + var browser = agents[name] + browserslist.data[name] = { + name: name, + versions: normalize(agents[name].versions), + released: normalize(agents[name].versions.slice(0, -3)), + releaseDate: agents[name].release_date + } + fillUsage(browserslist.usage.global, name, browser.usage_global) + + browserslist.versionAliases[name] = {} + for (var i = 0; i < browser.versions.length; i++) { + var full = browser.versions[i] + if (!full) continue + + if (full.indexOf('-') !== -1) { + var interval = full.split('-') + for (var j = 0; j < interval.length; j++) { + browserslist.versionAliases[name][interval[j]] = full + } + } + } + } + + browserslist.nodeVersions = jsReleases.map(function (release) { + return release.version + }) +})() + +browserslist.versionAliases.firefox.esr = FIREFOX_ESR_VERSION + +module.exports = browserslist diff --git a/server/api/node_modules/browserslist/node.js b/server/api/node_modules/browserslist/node.js new file mode 100644 index 0000000..ffa977d --- /dev/null +++ b/server/api/node_modules/browserslist/node.js @@ -0,0 +1,502 @@ +var feature = require('caniuse-lite/dist/unpacker/feature').default +var region = require('caniuse-lite/dist/unpacker/region').default +var fs = require('fs') +var path = require('path') + +var BrowserslistError = require('./error') + +var IS_SECTION = /^\s*\[(.+)]\s*$/ +var CONFIG_PATTERN = /^browserslist-config-/ +var SCOPED_CONFIG__PATTERN = /@[^/]+(?:\/[^/]+)?\/browserslist-config(?:-|$|\/)/ +var FORMAT = + 'Browserslist config should be a string or an array ' + + 'of strings with browser queries' +var PATHTYPE_UNKNOWN = 'unknown' +var PATHTYPE_DIR = 'directory' +var PATHTYPE_FILE = 'file' + +var dataTimeChecked = false +var statCache = {} +var configPathCache = {} +var parseConfigCache = {} + +function checkExtend(name) { + var use = ' Use `dangerousExtend` option to disable.' + if (!CONFIG_PATTERN.test(name) && !SCOPED_CONFIG__PATTERN.test(name)) { + throw new BrowserslistError( + 'Browserslist config needs `browserslist-config-` prefix. ' + use + ) + } + if (name.replace(/^@[^/]+\//, '').indexOf('.') !== -1) { + throw new BrowserslistError( + '`.` not allowed in Browserslist config name. ' + use + ) + } + if (name.indexOf('node_modules') !== -1) { + throw new BrowserslistError( + '`node_modules` not allowed in Browserslist config.' + use + ) + } +} + +function getPathType(filepath) { + var stats + try { + stats = fs.existsSync(filepath) && fs.statSync(filepath) + } catch (err) { + /* c8 ignore start */ + if ( + err.code !== 'ENOENT' && + err.code !== 'EACCES' && + err.code !== 'ERR_ACCESS_DENIED' + ) { + throw err + } + /* c8 ignore end */ + } + + if (stats && stats.isDirectory()) return PATHTYPE_DIR + if (stats && stats.isFile()) return PATHTYPE_FILE + + return PATHTYPE_UNKNOWN +} + +function isFile(file) { + return getPathType(file) === PATHTYPE_FILE +} + +function isDirectory(dir) { + return getPathType(dir) === PATHTYPE_DIR +} + +function eachParent(file, callback, cache) { + var loc = path.resolve(file) + var pathsForCacheResult = [] + var result + do { + if (!pathInRoot(loc)) { + break + } + if (cache && loc in cache) { + result = cache[loc] + break + } + pathsForCacheResult.push(loc) + + if (!isDirectory(loc)) { + continue + } + + var locResult = callback(loc) + if (typeof locResult !== 'undefined') { + result = locResult + break + } + } while (loc !== (loc = path.dirname(loc))) + + if (cache && !process.env.BROWSERSLIST_DISABLE_CACHE) { + pathsForCacheResult.forEach(function (cachePath) { + cache[cachePath] = result + }) + } + return result +} + +function pathInRoot(p) { + if (!process.env.BROWSERSLIST_ROOT_PATH) return true + var rootPath = path.resolve(process.env.BROWSERSLIST_ROOT_PATH) + if (path.relative(rootPath, p).substring(0, 2) === '..') { + return false + } + return true +} + +function check(section) { + if (Array.isArray(section)) { + for (var i = 0; i < section.length; i++) { + if (typeof section[i] !== 'string') { + throw new BrowserslistError(FORMAT) + } + } + } else if (typeof section !== 'string') { + throw new BrowserslistError(FORMAT) + } +} + +function pickEnv(config, opts) { + if (typeof config !== 'object') return config + + var name + if (typeof opts.env === 'string') { + name = opts.env + } else if (process.env.BROWSERSLIST_ENV) { + name = process.env.BROWSERSLIST_ENV + } else if (process.env.NODE_ENV) { + name = process.env.NODE_ENV + } else { + name = 'production' + } + + if (opts.throwOnMissing) { + if (name && name !== 'defaults' && !config[name]) { + throw new BrowserslistError( + 'Missing config for Browserslist environment `' + name + '`' + ) + } + } + + return config[name] || config.defaults +} + +function parsePackage(file) { + var text = fs + .readFileSync(file) + .toString() + .replace(/^\uFEFF/m, '') + var list + if (text.indexOf('"browserslist"') >= 0) { + list = JSON.parse(text).browserslist + } else if (text.indexOf('"browserlist"') >= 0) { + var config = JSON.parse(text) + if (config.browserlist && !config.browserslist) { + throw new BrowserslistError( + '`browserlist` key instead of `browserslist` in ' + file + ) + } + } + if (Array.isArray(list) || typeof list === 'string') { + list = { defaults: list } + } + for (var i in list) { + check(list[i]) + } + + return list +} + +function parsePackageOrReadConfig(file) { + if (file in parseConfigCache) { + return parseConfigCache[file] + } + + var isPackage = path.basename(file) === 'package.json' + var result = isPackage ? parsePackage(file) : module.exports.readConfig(file) + + if (!process.env.BROWSERSLIST_DISABLE_CACHE) { + parseConfigCache[file] = result + } + return result +} + +function latestReleaseTime(agents) { + var latest = 0 + for (var name in agents) { + var dates = agents[name].releaseDate || {} + for (var key in dates) { + if (latest < dates[key]) { + latest = dates[key] + } + } + } + return latest * 1000 +} + +function getMonthsPassed(date) { + var now = new Date() + var past = new Date(date) + + var years = now.getFullYear() - past.getFullYear() + var months = now.getMonth() - past.getMonth() + + return years * 12 + months +} + +function normalizeStats(data, stats) { + if (!data) { + data = {} + } + if (stats && 'dataByBrowser' in stats) { + stats = stats.dataByBrowser + } + + if (typeof stats !== 'object') return undefined + + var normalized = {} + for (var i in stats) { + var versions = Object.keys(stats[i]) + if (versions.length === 1 && data[i] && data[i].versions.length === 1) { + var normal = data[i].versions[0] + normalized[i] = {} + normalized[i][normal] = stats[i][versions[0]] + } else { + normalized[i] = stats[i] + } + } + + return normalized +} + +function normalizeUsageData(usageData, data) { + for (var browser in usageData) { + var browserUsage = usageData[browser] + // https://github.com/browserslist/browserslist/issues/431#issuecomment-565230615 + // caniuse-db returns { 0: "percentage" } for `and_*` regional stats + if ('0' in browserUsage) { + var versions = data[browser].versions + browserUsage[versions[versions.length - 1]] = browserUsage[0] + delete browserUsage[0] + } + } +} + +module.exports = { + loadQueries: function loadQueries(ctx, name) { + if (!ctx.dangerousExtend && !process.env.BROWSERSLIST_DANGEROUS_EXTEND) { + checkExtend(name) + } + var queries = require(require.resolve(name, { paths: ['.', ctx.path] })) + if (typeof queries === 'object' && queries !== null && queries.__esModule) { + queries = queries.default + } + if (queries) { + if (Array.isArray(queries)) { + return queries + } else if (typeof queries === 'object') { + if (!queries.defaults) queries.defaults = [] + return pickEnv(queries, ctx, name) + } + } + throw new BrowserslistError( + '`' + + name + + '` config exports not an array of queries' + + ' or an object of envs' + ) + }, + + loadStat: function loadStat(ctx, name, data) { + if (!ctx.dangerousExtend && !process.env.BROWSERSLIST_DANGEROUS_EXTEND) { + checkExtend(name) + } + var stats = require( + // Use forward slashes for module paths, also on Windows. + require.resolve(path.posix.join(name, 'browserslist-stats.json'), { + paths: ['.'] + }) + ) + return normalizeStats(data, stats) + }, + + getStat: function getStat(opts, data) { + var stats + if (opts.stats) { + stats = opts.stats + } else if (process.env.BROWSERSLIST_STATS) { + stats = process.env.BROWSERSLIST_STATS + } else if (opts.path && path.resolve && fs.existsSync) { + stats = eachParent( + opts.path, + function (dir) { + var file = path.join(dir, 'browserslist-stats.json') + return isFile(file) ? file : undefined + }, + statCache + ) + } + if (typeof stats === 'string') { + try { + stats = JSON.parse(fs.readFileSync(stats)) + } catch (e) { + throw new BrowserslistError("Can't read " + stats) + } + } + return normalizeStats(data, stats) + }, + + loadConfig: function loadConfig(opts) { + if (process.env.BROWSERSLIST) { + return process.env.BROWSERSLIST + } else if (opts.config || process.env.BROWSERSLIST_CONFIG) { + var file = opts.config || process.env.BROWSERSLIST_CONFIG + return pickEnv(parsePackageOrReadConfig(file), opts) + } else if (opts.path) { + return pickEnv(module.exports.findConfig(opts.path), opts) + } else { + return undefined + } + }, + + loadCountry: function loadCountry(usage, country, data) { + var code = country.replace(/[^\w-]/g, '') + if (!usage[code]) { + var compressed + try { + compressed = require('caniuse-lite/data/regions/' + code + '.js') + } catch (e) { + throw new BrowserslistError('Unknown region name `' + code + '`.') + } + var usageData = region(compressed) + normalizeUsageData(usageData, data) + usage[country] = {} + for (var i in usageData) { + for (var j in usageData[i]) { + usage[country][i + ' ' + j] = usageData[i][j] + } + } + } + }, + + loadFeature: function loadFeature(features, name) { + name = name.replace(/[^\w-]/g, '') + if (features[name]) return + var compressed + try { + compressed = require('caniuse-lite/data/features/' + name + '.js') + } catch (e) { + throw new BrowserslistError('Unknown feature name `' + name + '`.') + } + var stats = feature(compressed).stats + features[name] = {} + for (var i in stats) { + features[name][i] = {} + for (var j in stats[i]) { + features[name][i][j] = stats[i][j] + } + } + }, + + parseConfig: function parseConfig(string) { + var result = { defaults: [] } + var sections = ['defaults'] + + string + .toString() + .replace(/#[^\n]*/g, '') + .split(/\n|,/) + .map(function (line) { + return line.trim() + }) + .filter(function (line) { + return line !== '' + }) + .forEach(function (line) { + if (IS_SECTION.test(line)) { + sections = line.match(IS_SECTION)[1].trim().split(' ') + sections.forEach(function (section) { + if (result[section]) { + throw new BrowserslistError( + 'Duplicate section ' + section + ' in Browserslist config' + ) + } + result[section] = [] + }) + } else { + sections.forEach(function (section) { + result[section].push(line) + }) + } + }) + + return result + }, + + readConfig: function readConfig(file) { + if (!isFile(file)) { + throw new BrowserslistError("Can't read " + file + ' config') + } + + return module.exports.parseConfig(fs.readFileSync(file)) + }, + + findConfigFile: function findConfigFile(from) { + return eachParent( + from, + function (dir) { + var config = path.join(dir, 'browserslist') + var pkg = path.join(dir, 'package.json') + var rc = path.join(dir, '.browserslistrc') + + var pkgBrowserslist + if (isFile(pkg)) { + try { + pkgBrowserslist = parsePackage(pkg) + } catch (e) { + if (e.name === 'BrowserslistError') throw e + console.warn( + '[Browserslist] Could not parse ' + pkg + '. Ignoring it.' + ) + } + } + + if (isFile(config) && pkgBrowserslist) { + throw new BrowserslistError( + dir + ' contains both browserslist and package.json with browsers' + ) + } else if (isFile(rc) && pkgBrowserslist) { + throw new BrowserslistError( + dir + + ' contains both .browserslistrc and package.json with browsers' + ) + } else if (isFile(config) && isFile(rc)) { + throw new BrowserslistError( + dir + ' contains both .browserslistrc and browserslist' + ) + } else if (isFile(config)) { + return config + } else if (isFile(rc)) { + return rc + } else if (pkgBrowserslist) { + return pkg + } + }, + configPathCache + ) + }, + + findConfig: function findConfig(from) { + var configFile = this.findConfigFile(from) + + return configFile ? parsePackageOrReadConfig(configFile) : undefined + }, + + clearCaches: function clearCaches() { + dataTimeChecked = false + statCache = {} + configPathCache = {} + parseConfigCache = {} + + this.cache = {} + }, + + oldDataWarning: function oldDataWarning(agentsObj) { + if (dataTimeChecked) return + dataTimeChecked = true + if (process.env.BROWSERSLIST_IGNORE_OLD_DATA) return + + var latest = latestReleaseTime(agentsObj) + var monthsPassed = getMonthsPassed(latest) + + if (latest !== 0 && monthsPassed >= 6) { + if (process.env.BROWSERSLIST_TRACE_WARNING) { + console.info('Last browser release in DB: ' + String(new Date(latest))) + console.trace() + } + + var months = monthsPassed + ' ' + (monthsPassed > 1 ? 'months' : 'month') + console.warn( + 'Browserslist: browsers data (caniuse-lite) is ' + + months + + ' old. Please run:\n' + + ' npx update-browserslist-db@latest\n' + + ' Why you should do it regularly: ' + + 'https://github.com/browserslist/update-db#readme' + ) + } + }, + + currentNode: function currentNode() { + return 'node ' + process.versions.node + }, + + env: process.env +} diff --git a/server/api/node_modules/browserslist/package.json b/server/api/node_modules/browserslist/package.json new file mode 100644 index 0000000..db5a948 --- /dev/null +++ b/server/api/node_modules/browserslist/package.json @@ -0,0 +1,45 @@ +{ + "name": "browserslist", + "version": "4.28.2", + "description": "Share target browsers between different front-end tools, like Autoprefixer, Stylelint and babel-env-preset", + "keywords": [ + "browsers", + "caniuse", + "target" + ], + "license": "MIT", + "author": "Andrey Sitnik ", + "repository": "browserslist/browserslist", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "browserslist": "cli.js" + }, + "browser": { + "./node.js": "./browser.js", + "path": false + }, + "types": "./index.d.ts", + "dependencies": { + "baseline-browser-mapping": "^2.10.12", + "caniuse-lite": "^1.0.30001782", + "electron-to-chromium": "^1.5.328", + "node-releases": "^2.0.36", + "update-browserslist-db": "^1.2.3" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } +} diff --git a/server/api/node_modules/browserslist/parse.js b/server/api/node_modules/browserslist/parse.js new file mode 100644 index 0000000..c9d8f45 --- /dev/null +++ b/server/api/node_modules/browserslist/parse.js @@ -0,0 +1,78 @@ +var AND_REGEXP = /^\s+and\s+(.*)/i +var OR_REGEXP = /^(?:,\s*|\s+or\s+)(.*)/i + +function flatten(array) { + if (!Array.isArray(array)) return [array] + return array.reduce(function (a, b) { + return a.concat(flatten(b)) + }, []) +} + +function find(string, predicate) { + for (var max = string.length, n = 1; n <= max; n++) { + var parsed = string.substr(-n, n) + if (predicate(parsed, n, max)) { + return string.slice(0, -n) + } + } + return '' +} + +function matchQuery(all, query) { + var node = { query: query } + if (query.indexOf('not ') === 0) { + node.not = true + query = query.slice(4) + } + + for (var name in all) { + var type = all[name] + var match = query.match(type.regexp) + if (match) { + node.type = name + for (var i = 0; i < type.matches.length; i++) { + node[type.matches[i]] = match[i + 1] + } + return node + } + } + + node.type = 'unknown' + return node +} + +function matchBlock(all, string, qs) { + var node + return find(string, function (parsed, n, max) { + if (AND_REGEXP.test(parsed)) { + node = matchQuery(all, parsed.match(AND_REGEXP)[1]) + node.compose = 'and' + qs.unshift(node) + return true + } else if (OR_REGEXP.test(parsed)) { + node = matchQuery(all, parsed.match(OR_REGEXP)[1]) + node.compose = 'or' + qs.unshift(node) + return true + } else if (n === max) { + node = matchQuery(all, parsed.trim()) + node.compose = 'or' + qs.unshift(node) + return true + } + return false + }) +} + +module.exports = function parse(all, queries) { + if (!Array.isArray(queries)) queries = [queries] + return flatten( + queries.map(function (block) { + var qs = [] + do { + block = matchBlock(all, block, qs) + } while (block) + return qs + }) + ) +} diff --git a/server/api/node_modules/bser/README.md b/server/api/node_modules/bser/README.md new file mode 100644 index 0000000..eab0658 --- /dev/null +++ b/server/api/node_modules/bser/README.md @@ -0,0 +1,81 @@ +# BSER Binary Serialization + +BSER is a binary serialization scheme that can be used as an alternative to JSON. +BSER uses a framed encoding that makes it simpler to use to stream a sequence of +encoded values. + +It is intended to be used for local-IPC only and strings are represented as binary +with no specific encoding; this matches the convention employed by most operating +system filename storage. + +For more details about the serialization scheme see +[Watchman's docs](https://facebook.github.io/watchman/docs/bser.html). + +## API + +```js +var bser = require('bser'); +``` + +### bser.loadFromBuffer + +The is the synchronous decoder; given an input string or buffer, +decodes a single value and returns it. Throws an error if the +input is invalid. + +```js +var obj = bser.loadFromBuffer(buf); +``` + +### bser.dumpToBuffer + +Synchronously encodes a value as BSER. + +```js +var encoded = bser.dumpToBuffer(['hello']); +console.log(bser.loadFromBuffer(encoded)); // ['hello'] +``` + +### BunserBuf + +The asynchronous decoder API is implemented in the BunserBuf object. +You may incrementally append data to this object and it will emit the +decoded values via its `value` event. + +```js +var bunser = new bser.BunserBuf(); + +bunser.on('value', function(obj) { + console.log(obj); +}); +``` + +Then in your socket `data` event: + +```js +bunser.append(buf); +``` + +## Example + +Read BSER from socket: + +```js +var bunser = new bser.BunserBuf(); + +bunser.on('value', function(obj) { + console.log('data from socket', obj); +}); + +var socket = net.connect('/socket'); + +socket.on('data', function(buf) { + bunser.append(buf); +}); +``` + +Write BSER to socket: + +```js +socket.write(bser.dumpToBuffer(obj)); +``` diff --git a/server/api/node_modules/bser/index.js b/server/api/node_modules/bser/index.js new file mode 100644 index 0000000..4ae14d3 --- /dev/null +++ b/server/api/node_modules/bser/index.js @@ -0,0 +1,586 @@ +/* Copyright 2015-present Facebook, Inc. + * Licensed under the Apache License, Version 2.0 */ + +var EE = require('events').EventEmitter; +var util = require('util'); +var os = require('os'); +var assert = require('assert'); +var Int64 = require('node-int64'); + +// BSER uses the local endianness to reduce byte swapping overheads +// (the protocol is expressly local IPC only). We need to tell node +// to use the native endianness when reading various native values. +var isBigEndian = os.endianness() == 'BE'; + +// Find the next power-of-2 >= size +function nextPow2(size) { + return Math.pow(2, Math.ceil(Math.log(size) / Math.LN2)); +} + +// Expandable buffer that we can provide a size hint for +function Accumulator(initsize) { + this.buf = Buffer.alloc(nextPow2(initsize || 8192)); + this.readOffset = 0; + this.writeOffset = 0; +} +// For testing +exports.Accumulator = Accumulator + +// How much we can write into this buffer without allocating +Accumulator.prototype.writeAvail = function() { + return this.buf.length - this.writeOffset; +} + +// How much we can read +Accumulator.prototype.readAvail = function() { + return this.writeOffset - this.readOffset; +} + +// Ensure that we have enough space for size bytes +Accumulator.prototype.reserve = function(size) { + if (size < this.writeAvail()) { + return; + } + + // If we can make room by shunting down, do so + if (this.readOffset > 0) { + this.buf.copy(this.buf, 0, this.readOffset, this.writeOffset); + this.writeOffset -= this.readOffset; + this.readOffset = 0; + } + + // If we made enough room, no need to allocate more + if (size < this.writeAvail()) { + return; + } + + // Allocate a replacement and copy it in + var buf = Buffer.alloc(nextPow2(this.buf.length + size - this.writeAvail())); + this.buf.copy(buf); + this.buf = buf; +} + +// Append buffer or string. Will resize as needed +Accumulator.prototype.append = function(buf) { + if (Buffer.isBuffer(buf)) { + this.reserve(buf.length); + buf.copy(this.buf, this.writeOffset, 0, buf.length); + this.writeOffset += buf.length; + } else { + var size = Buffer.byteLength(buf); + this.reserve(size); + this.buf.write(buf, this.writeOffset); + this.writeOffset += size; + } +} + +Accumulator.prototype.assertReadableSize = function(size) { + if (this.readAvail() < size) { + throw new Error("wanted to read " + size + + " bytes but only have " + this.readAvail()); + } +} + +Accumulator.prototype.peekString = function(size) { + this.assertReadableSize(size); + return this.buf.toString('utf-8', this.readOffset, this.readOffset + size); +} + +Accumulator.prototype.readString = function(size) { + var str = this.peekString(size); + this.readOffset += size; + return str; +} + +Accumulator.prototype.peekInt = function(size) { + this.assertReadableSize(size); + switch (size) { + case 1: + return this.buf.readInt8(this.readOffset, size); + case 2: + return isBigEndian ? + this.buf.readInt16BE(this.readOffset, size) : + this.buf.readInt16LE(this.readOffset, size); + case 4: + return isBigEndian ? + this.buf.readInt32BE(this.readOffset, size) : + this.buf.readInt32LE(this.readOffset, size); + case 8: + var big = this.buf.slice(this.readOffset, this.readOffset + 8); + if (isBigEndian) { + // On a big endian system we can simply pass the buffer directly + return new Int64(big); + } + // Otherwise we need to byteswap + return new Int64(byteswap64(big)); + default: + throw new Error("invalid integer size " + size); + } +} + +Accumulator.prototype.readInt = function(bytes) { + var ival = this.peekInt(bytes); + if (ival instanceof Int64 && isFinite(ival.valueOf())) { + ival = ival.valueOf(); + } + this.readOffset += bytes; + return ival; +} + +Accumulator.prototype.peekDouble = function() { + this.assertReadableSize(8); + return isBigEndian ? + this.buf.readDoubleBE(this.readOffset) : + this.buf.readDoubleLE(this.readOffset); +} + +Accumulator.prototype.readDouble = function() { + var dval = this.peekDouble(); + this.readOffset += 8; + return dval; +} + +Accumulator.prototype.readAdvance = function(size) { + if (size > 0) { + this.assertReadableSize(size); + } else if (size < 0 && this.readOffset + size < 0) { + throw new Error("advance with negative offset " + size + + " would seek off the start of the buffer"); + } + this.readOffset += size; +} + +Accumulator.prototype.writeByte = function(value) { + this.reserve(1); + this.buf.writeInt8(value, this.writeOffset); + ++this.writeOffset; +} + +Accumulator.prototype.writeInt = function(value, size) { + this.reserve(size); + switch (size) { + case 1: + this.buf.writeInt8(value, this.writeOffset); + break; + case 2: + if (isBigEndian) { + this.buf.writeInt16BE(value, this.writeOffset); + } else { + this.buf.writeInt16LE(value, this.writeOffset); + } + break; + case 4: + if (isBigEndian) { + this.buf.writeInt32BE(value, this.writeOffset); + } else { + this.buf.writeInt32LE(value, this.writeOffset); + } + break; + default: + throw new Error("unsupported integer size " + size); + } + this.writeOffset += size; +} + +Accumulator.prototype.writeDouble = function(value) { + this.reserve(8); + if (isBigEndian) { + this.buf.writeDoubleBE(value, this.writeOffset); + } else { + this.buf.writeDoubleLE(value, this.writeOffset); + } + this.writeOffset += 8; +} + +var BSER_ARRAY = 0x00; +var BSER_OBJECT = 0x01; +var BSER_STRING = 0x02; +var BSER_INT8 = 0x03; +var BSER_INT16 = 0x04; +var BSER_INT32 = 0x05; +var BSER_INT64 = 0x06; +var BSER_REAL = 0x07; +var BSER_TRUE = 0x08; +var BSER_FALSE = 0x09; +var BSER_NULL = 0x0a; +var BSER_TEMPLATE = 0x0b; +var BSER_SKIP = 0x0c; + +var ST_NEED_PDU = 0; // Need to read and decode PDU length +var ST_FILL_PDU = 1; // Know the length, need to read whole content + +var MAX_INT8 = 127; +var MAX_INT16 = 32767; +var MAX_INT32 = 2147483647; + +function BunserBuf() { + EE.call(this); + this.buf = new Accumulator(); + this.state = ST_NEED_PDU; +} +util.inherits(BunserBuf, EE); +exports.BunserBuf = BunserBuf; + +BunserBuf.prototype.append = function(buf, synchronous) { + if (synchronous) { + this.buf.append(buf); + return this.process(synchronous); + } + + try { + this.buf.append(buf); + } catch (err) { + this.emit('error', err); + return; + } + // Arrange to decode later. This allows the consuming + // application to make progress with other work in the + // case that we have a lot of subscription updates coming + // in from a large tree. + this.processLater(); +} + +BunserBuf.prototype.processLater = function() { + var self = this; + process.nextTick(function() { + try { + self.process(false); + } catch (err) { + self.emit('error', err); + } + }); +} + +// Do something with the buffer to advance our state. +// If we're running synchronously we'll return either +// the value we've decoded or undefined if we don't +// yet have enought data. +// If we're running asynchronously, we'll emit the value +// when it becomes ready and schedule another invocation +// of process on the next tick if we still have data we +// can process. +BunserBuf.prototype.process = function(synchronous) { + if (this.state == ST_NEED_PDU) { + if (this.buf.readAvail() < 2) { + return; + } + // Validate BSER header + this.expectCode(0); + this.expectCode(1); + this.pduLen = this.decodeInt(true /* relaxed */); + if (this.pduLen === false) { + // Need more data, walk backwards + this.buf.readAdvance(-2); + return; + } + // Ensure that we have a big enough buffer to read the rest of the PDU + this.buf.reserve(this.pduLen); + this.state = ST_FILL_PDU; + } + + if (this.state == ST_FILL_PDU) { + if (this.buf.readAvail() < this.pduLen) { + // Need more data + return; + } + + // We have enough to decode it + var val = this.decodeAny(); + if (synchronous) { + return val; + } + this.emit('value', val); + this.state = ST_NEED_PDU; + } + + if (!synchronous && this.buf.readAvail() > 0) { + this.processLater(); + } +} + +BunserBuf.prototype.raise = function(reason) { + throw new Error(reason + ", in Buffer of length " + + this.buf.buf.length + " (" + this.buf.readAvail() + + " readable) at offset " + this.buf.readOffset + " buffer: " + + JSON.stringify(this.buf.buf.slice( + this.buf.readOffset, this.buf.readOffset + 32).toJSON())); +} + +BunserBuf.prototype.expectCode = function(expected) { + var code = this.buf.readInt(1); + if (code != expected) { + this.raise("expected bser opcode " + expected + " but got " + code); + } +} + +BunserBuf.prototype.decodeAny = function() { + var code = this.buf.peekInt(1); + switch (code) { + case BSER_INT8: + case BSER_INT16: + case BSER_INT32: + case BSER_INT64: + return this.decodeInt(); + case BSER_REAL: + this.buf.readAdvance(1); + return this.buf.readDouble(); + case BSER_TRUE: + this.buf.readAdvance(1); + return true; + case BSER_FALSE: + this.buf.readAdvance(1); + return false; + case BSER_NULL: + this.buf.readAdvance(1); + return null; + case BSER_STRING: + return this.decodeString(); + case BSER_ARRAY: + return this.decodeArray(); + case BSER_OBJECT: + return this.decodeObject(); + case BSER_TEMPLATE: + return this.decodeTemplate(); + default: + this.raise("unhandled bser opcode " + code); + } +} + +BunserBuf.prototype.decodeArray = function() { + this.expectCode(BSER_ARRAY); + var nitems = this.decodeInt(); + var arr = []; + for (var i = 0; i < nitems; ++i) { + arr.push(this.decodeAny()); + } + return arr; +} + +BunserBuf.prototype.decodeObject = function() { + this.expectCode(BSER_OBJECT); + var nitems = this.decodeInt(); + var res = {}; + for (var i = 0; i < nitems; ++i) { + var key = this.decodeString(); + var val = this.decodeAny(); + res[key] = val; + } + return res; +} + +BunserBuf.prototype.decodeTemplate = function() { + this.expectCode(BSER_TEMPLATE); + var keys = this.decodeArray(); + var nitems = this.decodeInt(); + var arr = []; + for (var i = 0; i < nitems; ++i) { + var obj = {}; + for (var keyidx = 0; keyidx < keys.length; ++keyidx) { + if (this.buf.peekInt(1) == BSER_SKIP) { + this.buf.readAdvance(1); + continue; + } + var val = this.decodeAny(); + obj[keys[keyidx]] = val; + } + arr.push(obj); + } + return arr; +} + +BunserBuf.prototype.decodeString = function() { + this.expectCode(BSER_STRING); + var len = this.decodeInt(); + return this.buf.readString(len); +} + +// This is unusual compared to the other decode functions in that +// we may not have enough data available to satisfy the read, and +// we don't want to throw. This is only true when we're reading +// the PDU length from the PDU header; we'll set relaxSizeAsserts +// in that case. +BunserBuf.prototype.decodeInt = function(relaxSizeAsserts) { + if (relaxSizeAsserts && (this.buf.readAvail() < 1)) { + return false; + } else { + this.buf.assertReadableSize(1); + } + var code = this.buf.peekInt(1); + var size = 0; + switch (code) { + case BSER_INT8: + size = 1; + break; + case BSER_INT16: + size = 2; + break; + case BSER_INT32: + size = 4; + break; + case BSER_INT64: + size = 8; + break; + default: + this.raise("invalid bser int encoding " + code); + } + + if (relaxSizeAsserts && (this.buf.readAvail() < 1 + size)) { + return false; + } + this.buf.readAdvance(1); + return this.buf.readInt(size); +} + +// synchronously BSER decode a string and return the value +function loadFromBuffer(input) { + var buf = new BunserBuf(); + var result = buf.append(input, true); + if (buf.buf.readAvail()) { + throw Error( + 'excess data found after input buffer, use BunserBuf instead'); + } + if (typeof result === 'undefined') { + throw Error( + 'no bser found in string and no error raised!?'); + } + return result; +} +exports.loadFromBuffer = loadFromBuffer + +// Byteswap an arbitrary buffer, flipping from one endian +// to the other, returning a new buffer with the resultant data +function byteswap64(buf) { + var swap = Buffer.alloc(buf.length); + for (var i = 0; i < buf.length; i++) { + swap[i] = buf[buf.length -1 - i]; + } + return swap; +} + +function dump_int64(buf, val) { + // Get the raw bytes. The Int64 buffer is big endian + var be = val.toBuffer(); + + if (isBigEndian) { + // We're a big endian system, so the buffer is exactly how we + // want it to be + buf.writeByte(BSER_INT64); + buf.append(be); + return; + } + // We need to byte swap to get the correct representation + var le = byteswap64(be); + buf.writeByte(BSER_INT64); + buf.append(le); +} + +function dump_int(buf, val) { + var abs = Math.abs(val); + if (abs <= MAX_INT8) { + buf.writeByte(BSER_INT8); + buf.writeInt(val, 1); + } else if (abs <= MAX_INT16) { + buf.writeByte(BSER_INT16); + buf.writeInt(val, 2); + } else if (abs <= MAX_INT32) { + buf.writeByte(BSER_INT32); + buf.writeInt(val, 4); + } else { + dump_int64(buf, new Int64(val)); + } +} + +function dump_any(buf, val) { + switch (typeof(val)) { + case 'number': + // check if it is an integer or a float + if (isFinite(val) && Math.floor(val) === val) { + dump_int(buf, val); + } else { + buf.writeByte(BSER_REAL); + buf.writeDouble(val); + } + return; + case 'string': + buf.writeByte(BSER_STRING); + dump_int(buf, Buffer.byteLength(val)); + buf.append(val); + return; + case 'boolean': + buf.writeByte(val ? BSER_TRUE : BSER_FALSE); + return; + case 'object': + if (val === null) { + buf.writeByte(BSER_NULL); + return; + } + if (val instanceof Int64) { + dump_int64(buf, val); + return; + } + if (Array.isArray(val)) { + buf.writeByte(BSER_ARRAY); + dump_int(buf, val.length); + for (var i = 0; i < val.length; ++i) { + dump_any(buf, val[i]); + } + return; + } + buf.writeByte(BSER_OBJECT); + var keys = Object.keys(val); + + // First pass to compute number of defined keys + var num_keys = keys.length; + for (var i = 0; i < keys.length; ++i) { + var key = keys[i]; + var v = val[key]; + if (typeof(v) == 'undefined') { + num_keys--; + } + } + dump_int(buf, num_keys); + for (var i = 0; i < keys.length; ++i) { + var key = keys[i]; + var v = val[key]; + if (typeof(v) == 'undefined') { + // Don't include it + continue; + } + dump_any(buf, key); + try { + dump_any(buf, v); + } catch (e) { + throw new Error( + e.message + ' (while serializing object property with name `' + + key + "')"); + } + } + return; + + default: + throw new Error('cannot serialize type ' + typeof(val) + ' to BSER'); + } +} + +// BSER encode value and return a buffer of the contents +function dumpToBuffer(val) { + var buf = new Accumulator(); + // Build out the header + buf.writeByte(0); + buf.writeByte(1); + // Reserve room for an int32 to hold our PDU length + buf.writeByte(BSER_INT32); + buf.writeInt(0, 4); // We'll come back and fill this in at the end + + dump_any(buf, val); + + // Compute PDU length + var off = buf.writeOffset; + var len = off - 7 /* the header length */; + buf.writeOffset = 3; // The length value to fill in + buf.writeInt(len, 4); // write the length in the space we reserved + buf.writeOffset = off; + + return buf.buf.slice(0, off); +} +exports.dumpToBuffer = dumpToBuffer diff --git a/server/api/node_modules/bser/package.json b/server/api/node_modules/bser/package.json new file mode 100644 index 0000000..824f7d4 --- /dev/null +++ b/server/api/node_modules/bser/package.json @@ -0,0 +1,33 @@ +{ + "name": "bser", + "version": "2.1.1", + "description": "JavaScript implementation of the BSER Binary Serialization", + "main": "index.js", + "directories": { + "test": "test" + }, + "scripts": { + "test": "node test/bser.js" + }, + "files": [ + "index.js" + ], + "repository": { + "type": "git", + "url": "https://github.com/facebook/watchman" + }, + "keywords": [ + "bser", + "binary", + "protocol" + ], + "author": "Wez Furlong (http://wezfurlong.org)", + "license": "Apache-2.0", + "bugs": { + "url": "https://github.com/facebook/watchman/issues" + }, + "homepage": "https://facebook.github.io/watchman/docs/bser.html", + "dependencies": { + "node-int64": "^0.4.0" + } +} diff --git a/server/api/node_modules/buffer-equal-constant-time/.npmignore b/server/api/node_modules/buffer-equal-constant-time/.npmignore new file mode 100644 index 0000000..34e4f5c --- /dev/null +++ b/server/api/node_modules/buffer-equal-constant-time/.npmignore @@ -0,0 +1,2 @@ +.*.sw[mnop] +node_modules/ diff --git a/server/api/node_modules/buffer-equal-constant-time/.travis.yml b/server/api/node_modules/buffer-equal-constant-time/.travis.yml new file mode 100644 index 0000000..78e1c01 --- /dev/null +++ b/server/api/node_modules/buffer-equal-constant-time/.travis.yml @@ -0,0 +1,4 @@ +language: node_js +node_js: +- "0.11" +- "0.10" diff --git a/server/api/node_modules/buffer-equal-constant-time/LICENSE.txt b/server/api/node_modules/buffer-equal-constant-time/LICENSE.txt new file mode 100644 index 0000000..9a064f3 --- /dev/null +++ b/server/api/node_modules/buffer-equal-constant-time/LICENSE.txt @@ -0,0 +1,12 @@ +Copyright (c) 2013, GoInstant Inc., a salesforce.com company +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + +* Neither the name of salesforce.com, nor GoInstant, nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/server/api/node_modules/buffer-equal-constant-time/README.md b/server/api/node_modules/buffer-equal-constant-time/README.md new file mode 100644 index 0000000..4f227f5 --- /dev/null +++ b/server/api/node_modules/buffer-equal-constant-time/README.md @@ -0,0 +1,50 @@ +# buffer-equal-constant-time + +Constant-time `Buffer` comparison for node.js. Should work with browserify too. + +[![Build Status](https://travis-ci.org/goinstant/buffer-equal-constant-time.png?branch=master)](https://travis-ci.org/goinstant/buffer-equal-constant-time) + +```sh + npm install buffer-equal-constant-time +``` + +# Usage + +```js + var bufferEq = require('buffer-equal-constant-time'); + + var a = new Buffer('asdf'); + var b = new Buffer('asdf'); + if (bufferEq(a,b)) { + // the same! + } else { + // different in at least one byte! + } +``` + +If you'd like to install an `.equal()` method onto the node.js `Buffer` and +`SlowBuffer` prototypes: + +```js + require('buffer-equal-constant-time').install(); + + var a = new Buffer('asdf'); + var b = new Buffer('asdf'); + if (a.equal(b)) { + // the same! + } else { + // different in at least one byte! + } +``` + +To get rid of the installed `.equal()` method, call `.restore()`: + +```js + require('buffer-equal-constant-time').restore(); +``` + +# Legal + +© 2013 GoInstant Inc., a salesforce.com company + +Licensed under the BSD 3-clause license. diff --git a/server/api/node_modules/buffer-equal-constant-time/index.js b/server/api/node_modules/buffer-equal-constant-time/index.js new file mode 100644 index 0000000..5462c1f --- /dev/null +++ b/server/api/node_modules/buffer-equal-constant-time/index.js @@ -0,0 +1,41 @@ +/*jshint node:true */ +'use strict'; +var Buffer = require('buffer').Buffer; // browserify +var SlowBuffer = require('buffer').SlowBuffer; + +module.exports = bufferEq; + +function bufferEq(a, b) { + + // shortcutting on type is necessary for correctness + if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) { + return false; + } + + // buffer sizes should be well-known information, so despite this + // shortcutting, it doesn't leak any information about the *contents* of the + // buffers. + if (a.length !== b.length) { + return false; + } + + var c = 0; + for (var i = 0; i < a.length; i++) { + /*jshint bitwise:false */ + c |= a[i] ^ b[i]; // XOR + } + return c === 0; +} + +bufferEq.install = function() { + Buffer.prototype.equal = SlowBuffer.prototype.equal = function equal(that) { + return bufferEq(this, that); + }; +}; + +var origBufEqual = Buffer.prototype.equal; +var origSlowBufEqual = SlowBuffer.prototype.equal; +bufferEq.restore = function() { + Buffer.prototype.equal = origBufEqual; + SlowBuffer.prototype.equal = origSlowBufEqual; +}; diff --git a/server/api/node_modules/buffer-equal-constant-time/package.json b/server/api/node_modules/buffer-equal-constant-time/package.json new file mode 100644 index 0000000..17c7de2 --- /dev/null +++ b/server/api/node_modules/buffer-equal-constant-time/package.json @@ -0,0 +1,21 @@ +{ + "name": "buffer-equal-constant-time", + "version": "1.0.1", + "description": "Constant-time comparison of Buffers", + "main": "index.js", + "scripts": { + "test": "mocha test.js" + }, + "repository": "git@github.com:goinstant/buffer-equal-constant-time.git", + "keywords": [ + "buffer", + "equal", + "constant-time", + "crypto" + ], + "author": "GoInstant Inc., a salesforce.com company", + "license": "BSD-3-Clause", + "devDependencies": { + "mocha": "~1.15.1" + } +} diff --git a/server/api/node_modules/buffer-equal-constant-time/test.js b/server/api/node_modules/buffer-equal-constant-time/test.js new file mode 100644 index 0000000..0bc972d --- /dev/null +++ b/server/api/node_modules/buffer-equal-constant-time/test.js @@ -0,0 +1,42 @@ +/*jshint node:true */ +'use strict'; + +var bufferEq = require('./index'); +var assert = require('assert'); + +describe('buffer-equal-constant-time', function() { + var a = new Buffer('asdfasdf123456'); + var b = new Buffer('asdfasdf123456'); + var c = new Buffer('asdfasdf'); + + describe('bufferEq', function() { + it('says a == b', function() { + assert.strictEqual(bufferEq(a, b), true); + }); + + it('says a != c', function() { + assert.strictEqual(bufferEq(a, c), false); + }); + }); + + describe('install/restore', function() { + before(function() { + bufferEq.install(); + }); + after(function() { + bufferEq.restore(); + }); + + it('installed an .equal method', function() { + var SlowBuffer = require('buffer').SlowBuffer; + assert.ok(Buffer.prototype.equal); + assert.ok(SlowBuffer.prototype.equal); + }); + + it('infected existing Buffers', function() { + assert.strictEqual(a.equal(b), true); + assert.strictEqual(a.equal(c), false); + }); + }); + +}); diff --git a/server/api/node_modules/buffer-from/LICENSE b/server/api/node_modules/buffer-from/LICENSE new file mode 100644 index 0000000..e4bf1d6 --- /dev/null +++ b/server/api/node_modules/buffer-from/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2016, 2018 Linus Unnebäck + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/server/api/node_modules/buffer-from/index.js b/server/api/node_modules/buffer-from/index.js new file mode 100644 index 0000000..e1a58b5 --- /dev/null +++ b/server/api/node_modules/buffer-from/index.js @@ -0,0 +1,72 @@ +/* eslint-disable node/no-deprecated-api */ + +var toString = Object.prototype.toString + +var isModern = ( + typeof Buffer !== 'undefined' && + typeof Buffer.alloc === 'function' && + typeof Buffer.allocUnsafe === 'function' && + typeof Buffer.from === 'function' +) + +function isArrayBuffer (input) { + return toString.call(input).slice(8, -1) === 'ArrayBuffer' +} + +function fromArrayBuffer (obj, byteOffset, length) { + byteOffset >>>= 0 + + var maxLength = obj.byteLength - byteOffset + + if (maxLength < 0) { + throw new RangeError("'offset' is out of bounds") + } + + if (length === undefined) { + length = maxLength + } else { + length >>>= 0 + + if (length > maxLength) { + throw new RangeError("'length' is out of bounds") + } + } + + return isModern + ? Buffer.from(obj.slice(byteOffset, byteOffset + length)) + : new Buffer(new Uint8Array(obj.slice(byteOffset, byteOffset + length))) +} + +function fromString (string, encoding) { + if (typeof encoding !== 'string' || encoding === '') { + encoding = 'utf8' + } + + if (!Buffer.isEncoding(encoding)) { + throw new TypeError('"encoding" must be a valid string encoding') + } + + return isModern + ? Buffer.from(string, encoding) + : new Buffer(string, encoding) +} + +function bufferFrom (value, encodingOrOffset, length) { + if (typeof value === 'number') { + throw new TypeError('"value" argument must not be a number') + } + + if (isArrayBuffer(value)) { + return fromArrayBuffer(value, encodingOrOffset, length) + } + + if (typeof value === 'string') { + return fromString(value, encodingOrOffset) + } + + return isModern + ? Buffer.from(value) + : new Buffer(value) +} + +module.exports = bufferFrom diff --git a/server/api/node_modules/buffer-from/package.json b/server/api/node_modules/buffer-from/package.json new file mode 100644 index 0000000..6ac5327 --- /dev/null +++ b/server/api/node_modules/buffer-from/package.json @@ -0,0 +1,19 @@ +{ + "name": "buffer-from", + "version": "1.1.2", + "license": "MIT", + "repository": "LinusU/buffer-from", + "files": [ + "index.js" + ], + "scripts": { + "test": "standard && node test" + }, + "devDependencies": { + "standard": "^12.0.1" + }, + "keywords": [ + "buffer", + "buffer from" + ] +} diff --git a/server/api/node_modules/buffer-from/readme.md b/server/api/node_modules/buffer-from/readme.md new file mode 100644 index 0000000..9880a55 --- /dev/null +++ b/server/api/node_modules/buffer-from/readme.md @@ -0,0 +1,69 @@ +# Buffer From + +A [ponyfill](https://ponyfill.com) for `Buffer.from`, uses native implementation if available. + +## Installation + +```sh +npm install --save buffer-from +``` + +## Usage + +```js +const bufferFrom = require('buffer-from') + +console.log(bufferFrom([1, 2, 3, 4])) +//=> + +const arr = new Uint8Array([1, 2, 3, 4]) +console.log(bufferFrom(arr.buffer, 1, 2)) +//=> + +console.log(bufferFrom('test', 'utf8')) +//=> + +const buf = bufferFrom('test') +console.log(bufferFrom(buf)) +//=> +``` + +## API + +### bufferFrom(array) + +- `array` <Array> + +Allocates a new `Buffer` using an `array` of octets. + +### bufferFrom(arrayBuffer[, byteOffset[, length]]) + +- `arrayBuffer` <ArrayBuffer> The `.buffer` property of a TypedArray or ArrayBuffer +- `byteOffset` <Integer> Where to start copying from `arrayBuffer`. **Default:** `0` +- `length` <Integer> How many bytes to copy from `arrayBuffer`. **Default:** `arrayBuffer.length - byteOffset` + +When passed a reference to the `.buffer` property of a TypedArray instance, the +newly created `Buffer` will share the same allocated memory as the TypedArray. + +The optional `byteOffset` and `length` arguments specify a memory range within +the `arrayBuffer` that will be shared by the `Buffer`. + +### bufferFrom(buffer) + +- `buffer` <Buffer> An existing `Buffer` to copy data from + +Copies the passed `buffer` data onto a new `Buffer` instance. + +### bufferFrom(string[, encoding]) + +- `string` <String> A string to encode. +- `encoding` <String> The encoding of `string`. **Default:** `'utf8'` + +Creates a new `Buffer` containing the given JavaScript string `string`. If +provided, the `encoding` parameter identifies the character encoding of +`string`. + +## See also + +- [buffer-alloc](https://github.com/LinusU/buffer-alloc) A ponyfill for `Buffer.alloc` +- [buffer-alloc-unsafe](https://github.com/LinusU/buffer-alloc-unsafe) A ponyfill for `Buffer.allocUnsafe` diff --git a/server/api/node_modules/busboy/.eslintrc.js b/server/api/node_modules/busboy/.eslintrc.js new file mode 100644 index 0000000..be9311d --- /dev/null +++ b/server/api/node_modules/busboy/.eslintrc.js @@ -0,0 +1,5 @@ +'use strict'; + +module.exports = { + extends: '@mscdex/eslint-config', +}; diff --git a/server/api/node_modules/busboy/.github/workflows/ci.yml b/server/api/node_modules/busboy/.github/workflows/ci.yml new file mode 100644 index 0000000..799bae0 --- /dev/null +++ b/server/api/node_modules/busboy/.github/workflows/ci.yml @@ -0,0 +1,24 @@ +name: CI + +on: + pull_request: + push: + branches: [ master ] + +jobs: + tests-linux: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + node-version: [10.16.0, 10.x, 12.x, 14.x, 16.x] + steps: + - uses: actions/checkout@v2 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node-version }} + - name: Install module + run: npm install + - name: Run tests + run: npm test diff --git a/server/api/node_modules/busboy/.github/workflows/lint.yml b/server/api/node_modules/busboy/.github/workflows/lint.yml new file mode 100644 index 0000000..9f9e1f5 --- /dev/null +++ b/server/api/node_modules/busboy/.github/workflows/lint.yml @@ -0,0 +1,23 @@ +name: lint + +on: + pull_request: + push: + branches: [ master ] + +env: + NODE_VERSION: 16.x + +jobs: + lint-js: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Use Node.js ${{ env.NODE_VERSION }} + uses: actions/setup-node@v1 + with: + node-version: ${{ env.NODE_VERSION }} + - name: Install ESLint + ESLint configs/plugins + run: npm install --only=dev + - name: Lint files + run: npm run lint diff --git a/server/api/node_modules/busboy/LICENSE b/server/api/node_modules/busboy/LICENSE new file mode 100644 index 0000000..290762e --- /dev/null +++ b/server/api/node_modules/busboy/LICENSE @@ -0,0 +1,19 @@ +Copyright Brian White. All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to +deal in the Software without restriction, including without limitation the +rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +sell copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +IN THE SOFTWARE. \ No newline at end of file diff --git a/server/api/node_modules/busboy/README.md b/server/api/node_modules/busboy/README.md new file mode 100644 index 0000000..654af30 --- /dev/null +++ b/server/api/node_modules/busboy/README.md @@ -0,0 +1,191 @@ +# Description + +A node.js module for parsing incoming HTML form data. + +Changes (breaking or otherwise) in v1.0.0 can be found [here](https://github.com/mscdex/busboy/issues/266). + +# Requirements + +* [node.js](http://nodejs.org/) -- v10.16.0 or newer + + +# Install + + npm install busboy + + +# Examples + +* Parsing (multipart) with default options: + +```js +const http = require('http'); + +const busboy = require('busboy'); + +http.createServer((req, res) => { + if (req.method === 'POST') { + console.log('POST request'); + const bb = busboy({ headers: req.headers }); + bb.on('file', (name, file, info) => { + const { filename, encoding, mimeType } = info; + console.log( + `File [${name}]: filename: %j, encoding: %j, mimeType: %j`, + filename, + encoding, + mimeType + ); + file.on('data', (data) => { + console.log(`File [${name}] got ${data.length} bytes`); + }).on('close', () => { + console.log(`File [${name}] done`); + }); + }); + bb.on('field', (name, val, info) => { + console.log(`Field [${name}]: value: %j`, val); + }); + bb.on('close', () => { + console.log('Done parsing form!'); + res.writeHead(303, { Connection: 'close', Location: '/' }); + res.end(); + }); + req.pipe(bb); + } else if (req.method === 'GET') { + res.writeHead(200, { Connection: 'close' }); + res.end(` + + + +
+
+
+ +
+ + + `); + } +}).listen(8000, () => { + console.log('Listening for requests'); +}); + +// Example output: +// +// Listening for requests +// < ... form submitted ... > +// POST request +// File [filefield]: filename: "logo.jpg", encoding: "binary", mime: "image/jpeg" +// File [filefield] got 11912 bytes +// Field [textfield]: value: "testing! :-)" +// File [filefield] done +// Done parsing form! +``` + +* Save all incoming files to disk: + +```js +const { randomFillSync } = require('crypto'); +const fs = require('fs'); +const http = require('http'); +const os = require('os'); +const path = require('path'); + +const busboy = require('busboy'); + +const random = (() => { + const buf = Buffer.alloc(16); + return () => randomFillSync(buf).toString('hex'); +})(); + +http.createServer((req, res) => { + if (req.method === 'POST') { + const bb = busboy({ headers: req.headers }); + bb.on('file', (name, file, info) => { + const saveTo = path.join(os.tmpdir(), `busboy-upload-${random()}`); + file.pipe(fs.createWriteStream(saveTo)); + }); + bb.on('close', () => { + res.writeHead(200, { 'Connection': 'close' }); + res.end(`That's all folks!`); + }); + req.pipe(bb); + return; + } + res.writeHead(404); + res.end(); +}).listen(8000, () => { + console.log('Listening for requests'); +}); +``` + + +# API + +## Exports + +`busboy` exports a single function: + +**( _function_ )**(< _object_ >config) - Creates and returns a new _Writable_ form parser stream. + +* Valid `config` properties: + + * **headers** - _object_ - These are the HTTP headers of the incoming request, which are used by individual parsers. + + * **highWaterMark** - _integer_ - highWaterMark to use for the parser stream. **Default:** node's _stream.Writable_ default. + + * **fileHwm** - _integer_ - highWaterMark to use for individual file streams. **Default:** node's _stream.Readable_ default. + + * **defCharset** - _string_ - Default character set to use when one isn't defined. **Default:** `'utf8'`. + + * **defParamCharset** - _string_ - For multipart forms, the default character set to use for values of part header parameters (e.g. filename) that are not extended parameters (that contain an explicit charset). **Default:** `'latin1'`. + + * **preservePath** - _boolean_ - If paths in filenames from file parts in a `'multipart/form-data'` request shall be preserved. **Default:** `false`. + + * **limits** - _object_ - Various limits on incoming data. Valid properties are: + + * **fieldNameSize** - _integer_ - Max field name size (in bytes). **Default:** `100`. + + * **fieldSize** - _integer_ - Max field value size (in bytes). **Default:** `1048576` (1MB). + + * **fields** - _integer_ - Max number of non-file fields. **Default:** `Infinity`. + + * **fileSize** - _integer_ - For multipart forms, the max file size (in bytes). **Default:** `Infinity`. + + * **files** - _integer_ - For multipart forms, the max number of file fields. **Default:** `Infinity`. + + * **parts** - _integer_ - For multipart forms, the max number of parts (fields + files). **Default:** `Infinity`. + + * **headerPairs** - _integer_ - For multipart forms, the max number of header key-value pairs to parse. **Default:** `2000` (same as node's http module). + +This function can throw exceptions if there is something wrong with the values in `config`. For example, if the Content-Type in `headers` is missing entirely, is not a supported type, or is missing the boundary for `'multipart/form-data'` requests. + +## (Special) Parser stream events + +* **file**(< _string_ >name, < _Readable_ >stream, < _object_ >info) - Emitted for each new file found. `name` contains the form field name. `stream` is a _Readable_ stream containing the file's data. No transformations/conversions (e.g. base64 to raw binary) are done on the file's data. `info` contains the following properties: + + * `filename` - _string_ - If supplied, this contains the file's filename. **WARNING:** You should almost _never_ use this value as-is (especially if you are using `preservePath: true` in your `config`) as it could contain malicious input. You are better off generating your own (safe) filenames, or at the very least using a hash of the filename. + + * `encoding` - _string_ - The file's `'Content-Transfer-Encoding'` value. + + * `mimeType` - _string_ - The file's `'Content-Type'` value. + + **Note:** If you listen for this event, you should always consume the `stream` whether you care about its contents or not (you can simply do `stream.resume();` if you want to discard/skip the contents), otherwise the `'finish'`/`'close'` event will never fire on the busboy parser stream. + However, if you aren't accepting files, you can either simply not listen for the `'file'` event at all or set `limits.files` to `0`, and any/all files will be automatically skipped (these skipped files will still count towards any configured `limits.files` and `limits.parts` limits though). + + **Note:** If a configured `limits.fileSize` limit was reached for a file, `stream` will both have a boolean property `truncated` set to `true` (best checked at the end of the stream) and emit a `'limit'` event to notify you when this happens. + +* **field**(< _string_ >name, < _string_ >value, < _object_ >info) - Emitted for each new non-file field found. `name` contains the form field name. `value` contains the string value of the field. `info` contains the following properties: + + * `nameTruncated` - _boolean_ - Whether `name` was truncated or not (due to a configured `limits.fieldNameSize` limit) + + * `valueTruncated` - _boolean_ - Whether `value` was truncated or not (due to a configured `limits.fieldSize` limit) + + * `encoding` - _string_ - The field's `'Content-Transfer-Encoding'` value. + + * `mimeType` - _string_ - The field's `'Content-Type'` value. + +* **partsLimit**() - Emitted when the configured `limits.parts` limit has been reached. No more `'file'` or `'field'` events will be emitted. + +* **filesLimit**() - Emitted when the configured `limits.files` limit has been reached. No more `'file'` events will be emitted. + +* **fieldsLimit**() - Emitted when the configured `limits.fields` limit has been reached. No more `'field'` events will be emitted. diff --git a/server/api/node_modules/busboy/bench/bench-multipart-fields-100mb-big.js b/server/api/node_modules/busboy/bench/bench-multipart-fields-100mb-big.js new file mode 100644 index 0000000..ef15729 --- /dev/null +++ b/server/api/node_modules/busboy/bench/bench-multipart-fields-100mb-big.js @@ -0,0 +1,149 @@ +'use strict'; + +function createMultipartBuffers(boundary, sizes) { + const bufs = []; + for (let i = 0; i < sizes.length; ++i) { + const mb = sizes[i] * 1024 * 1024; + bufs.push(Buffer.from([ + `--${boundary}`, + `content-disposition: form-data; name="field${i + 1}"`, + '', + '0'.repeat(mb), + '', + ].join('\r\n'))); + } + bufs.push(Buffer.from([ + `--${boundary}--`, + '', + ].join('\r\n'))); + return bufs; +} + +const boundary = '-----------------------------168072824752491622650073'; +const buffers = createMultipartBuffers(boundary, [ + 10, + 10, + 10, + 20, + 50, +]); +const calls = { + partBegin: 0, + headerField: 0, + headerValue: 0, + headerEnd: 0, + headersEnd: 0, + partData: 0, + partEnd: 0, + end: 0, +}; + +const moduleName = process.argv[2]; +switch (moduleName) { + case 'busboy': { + const busboy = require('busboy'); + + const parser = busboy({ + limits: { + fieldSizeLimit: Infinity, + }, + headers: { + 'content-type': `multipart/form-data; boundary=${boundary}`, + }, + }); + parser.on('field', (name, val, info) => { + ++calls.partBegin; + ++calls.partData; + ++calls.partEnd; + }).on('close', () => { + ++calls.end; + console.timeEnd(moduleName); + }); + + console.time(moduleName); + for (const buf of buffers) + parser.write(buf); + break; + } + + case 'formidable': { + const { MultipartParser } = require('formidable'); + + const parser = new MultipartParser(); + parser.initWithBoundary(boundary); + parser.on('data', ({ name }) => { + ++calls[name]; + if (name === 'end') + console.timeEnd(moduleName); + }); + + console.time(moduleName); + for (const buf of buffers) + parser.write(buf); + + break; + } + + case 'multiparty': { + const { Readable } = require('stream'); + + const { Form } = require('multiparty'); + + const form = new Form({ + maxFieldsSize: Infinity, + maxFields: Infinity, + maxFilesSize: Infinity, + autoFields: false, + autoFiles: false, + }); + + const req = new Readable({ read: () => {} }); + req.headers = { + 'content-type': `multipart/form-data; boundary=${boundary}`, + }; + + function hijack(name, fn) { + const oldFn = form[name]; + form[name] = function() { + fn(); + return oldFn.apply(this, arguments); + }; + } + + hijack('onParseHeaderField', () => { + ++calls.headerField; + }); + hijack('onParseHeaderValue', () => { + ++calls.headerValue; + }); + hijack('onParsePartBegin', () => { + ++calls.partBegin; + }); + hijack('onParsePartData', () => { + ++calls.partData; + }); + hijack('onParsePartEnd', () => { + ++calls.partEnd; + }); + + form.on('close', () => { + ++calls.end; + console.timeEnd(moduleName); + }).on('part', (p) => p.resume()); + + console.time(moduleName); + form.parse(req); + for (const buf of buffers) + req.push(buf); + req.push(null); + + break; + } + + default: + if (moduleName === undefined) + console.error('Missing parser module name'); + else + console.error(`Invalid parser module name: ${moduleName}`); + process.exit(1); +} diff --git a/server/api/node_modules/busboy/bench/bench-multipart-fields-100mb-small.js b/server/api/node_modules/busboy/bench/bench-multipart-fields-100mb-small.js new file mode 100644 index 0000000..f32d421 --- /dev/null +++ b/server/api/node_modules/busboy/bench/bench-multipart-fields-100mb-small.js @@ -0,0 +1,143 @@ +'use strict'; + +function createMultipartBuffers(boundary, sizes) { + const bufs = []; + for (let i = 0; i < sizes.length; ++i) { + const mb = sizes[i] * 1024 * 1024; + bufs.push(Buffer.from([ + `--${boundary}`, + `content-disposition: form-data; name="field${i + 1}"`, + '', + '0'.repeat(mb), + '', + ].join('\r\n'))); + } + bufs.push(Buffer.from([ + `--${boundary}--`, + '', + ].join('\r\n'))); + return bufs; +} + +const boundary = '-----------------------------168072824752491622650073'; +const buffers = createMultipartBuffers(boundary, (new Array(100)).fill(1)); +const calls = { + partBegin: 0, + headerField: 0, + headerValue: 0, + headerEnd: 0, + headersEnd: 0, + partData: 0, + partEnd: 0, + end: 0, +}; + +const moduleName = process.argv[2]; +switch (moduleName) { + case 'busboy': { + const busboy = require('busboy'); + + const parser = busboy({ + limits: { + fieldSizeLimit: Infinity, + }, + headers: { + 'content-type': `multipart/form-data; boundary=${boundary}`, + }, + }); + parser.on('field', (name, val, info) => { + ++calls.partBegin; + ++calls.partData; + ++calls.partEnd; + }).on('close', () => { + ++calls.end; + console.timeEnd(moduleName); + }); + + console.time(moduleName); + for (const buf of buffers) + parser.write(buf); + break; + } + + case 'formidable': { + const { MultipartParser } = require('formidable'); + + const parser = new MultipartParser(); + parser.initWithBoundary(boundary); + parser.on('data', ({ name }) => { + ++calls[name]; + if (name === 'end') + console.timeEnd(moduleName); + }); + + console.time(moduleName); + for (const buf of buffers) + parser.write(buf); + + break; + } + + case 'multiparty': { + const { Readable } = require('stream'); + + const { Form } = require('multiparty'); + + const form = new Form({ + maxFieldsSize: Infinity, + maxFields: Infinity, + maxFilesSize: Infinity, + autoFields: false, + autoFiles: false, + }); + + const req = new Readable({ read: () => {} }); + req.headers = { + 'content-type': `multipart/form-data; boundary=${boundary}`, + }; + + function hijack(name, fn) { + const oldFn = form[name]; + form[name] = function() { + fn(); + return oldFn.apply(this, arguments); + }; + } + + hijack('onParseHeaderField', () => { + ++calls.headerField; + }); + hijack('onParseHeaderValue', () => { + ++calls.headerValue; + }); + hijack('onParsePartBegin', () => { + ++calls.partBegin; + }); + hijack('onParsePartData', () => { + ++calls.partData; + }); + hijack('onParsePartEnd', () => { + ++calls.partEnd; + }); + + form.on('close', () => { + ++calls.end; + console.timeEnd(moduleName); + }).on('part', (p) => p.resume()); + + console.time(moduleName); + form.parse(req); + for (const buf of buffers) + req.push(buf); + req.push(null); + + break; + } + + default: + if (moduleName === undefined) + console.error('Missing parser module name'); + else + console.error(`Invalid parser module name: ${moduleName}`); + process.exit(1); +} diff --git a/server/api/node_modules/busboy/bench/bench-multipart-files-100mb-big.js b/server/api/node_modules/busboy/bench/bench-multipart-files-100mb-big.js new file mode 100644 index 0000000..b46bdee --- /dev/null +++ b/server/api/node_modules/busboy/bench/bench-multipart-files-100mb-big.js @@ -0,0 +1,154 @@ +'use strict'; + +function createMultipartBuffers(boundary, sizes) { + const bufs = []; + for (let i = 0; i < sizes.length; ++i) { + const mb = sizes[i] * 1024 * 1024; + bufs.push(Buffer.from([ + `--${boundary}`, + `content-disposition: form-data; name="file${i + 1}"; ` + + `filename="random${i + 1}.bin"`, + 'content-type: application/octet-stream', + '', + '0'.repeat(mb), + '', + ].join('\r\n'))); + } + bufs.push(Buffer.from([ + `--${boundary}--`, + '', + ].join('\r\n'))); + return bufs; +} + +const boundary = '-----------------------------168072824752491622650073'; +const buffers = createMultipartBuffers(boundary, [ + 10, + 10, + 10, + 20, + 50, +]); +const calls = { + partBegin: 0, + headerField: 0, + headerValue: 0, + headerEnd: 0, + headersEnd: 0, + partData: 0, + partEnd: 0, + end: 0, +}; + +const moduleName = process.argv[2]; +switch (moduleName) { + case 'busboy': { + const busboy = require('busboy'); + + const parser = busboy({ + limits: { + fieldSizeLimit: Infinity, + }, + headers: { + 'content-type': `multipart/form-data; boundary=${boundary}`, + }, + }); + parser.on('file', (name, stream, info) => { + ++calls.partBegin; + stream.on('data', (chunk) => { + ++calls.partData; + }).on('end', () => { + ++calls.partEnd; + }); + }).on('close', () => { + ++calls.end; + console.timeEnd(moduleName); + }); + + console.time(moduleName); + for (const buf of buffers) + parser.write(buf); + break; + } + + case 'formidable': { + const { MultipartParser } = require('formidable'); + + const parser = new MultipartParser(); + parser.initWithBoundary(boundary); + parser.on('data', ({ name }) => { + ++calls[name]; + if (name === 'end') + console.timeEnd(moduleName); + }); + + console.time(moduleName); + for (const buf of buffers) + parser.write(buf); + + break; + } + + case 'multiparty': { + const { Readable } = require('stream'); + + const { Form } = require('multiparty'); + + const form = new Form({ + maxFieldsSize: Infinity, + maxFields: Infinity, + maxFilesSize: Infinity, + autoFields: false, + autoFiles: false, + }); + + const req = new Readable({ read: () => {} }); + req.headers = { + 'content-type': `multipart/form-data; boundary=${boundary}`, + }; + + function hijack(name, fn) { + const oldFn = form[name]; + form[name] = function() { + fn(); + return oldFn.apply(this, arguments); + }; + } + + hijack('onParseHeaderField', () => { + ++calls.headerField; + }); + hijack('onParseHeaderValue', () => { + ++calls.headerValue; + }); + hijack('onParsePartBegin', () => { + ++calls.partBegin; + }); + hijack('onParsePartData', () => { + ++calls.partData; + }); + hijack('onParsePartEnd', () => { + ++calls.partEnd; + }); + + form.on('close', () => { + ++calls.end; + console.timeEnd(moduleName); + }).on('part', (p) => p.resume()); + + console.time(moduleName); + form.parse(req); + for (const buf of buffers) + req.push(buf); + req.push(null); + + break; + } + + default: + if (moduleName === undefined) + console.error('Missing parser module name'); + else + console.error(`Invalid parser module name: ${moduleName}`); + process.exit(1); +} diff --git a/server/api/node_modules/busboy/bench/bench-multipart-files-100mb-small.js b/server/api/node_modules/busboy/bench/bench-multipart-files-100mb-small.js new file mode 100644 index 0000000..46b5dff --- /dev/null +++ b/server/api/node_modules/busboy/bench/bench-multipart-files-100mb-small.js @@ -0,0 +1,148 @@ +'use strict'; + +function createMultipartBuffers(boundary, sizes) { + const bufs = []; + for (let i = 0; i < sizes.length; ++i) { + const mb = sizes[i] * 1024 * 1024; + bufs.push(Buffer.from([ + `--${boundary}`, + `content-disposition: form-data; name="file${i + 1}"; ` + + `filename="random${i + 1}.bin"`, + 'content-type: application/octet-stream', + '', + '0'.repeat(mb), + '', + ].join('\r\n'))); + } + bufs.push(Buffer.from([ + `--${boundary}--`, + '', + ].join('\r\n'))); + return bufs; +} + +const boundary = '-----------------------------168072824752491622650073'; +const buffers = createMultipartBuffers(boundary, (new Array(100)).fill(1)); +const calls = { + partBegin: 0, + headerField: 0, + headerValue: 0, + headerEnd: 0, + headersEnd: 0, + partData: 0, + partEnd: 0, + end: 0, +}; + +const moduleName = process.argv[2]; +switch (moduleName) { + case 'busboy': { + const busboy = require('busboy'); + + const parser = busboy({ + limits: { + fieldSizeLimit: Infinity, + }, + headers: { + 'content-type': `multipart/form-data; boundary=${boundary}`, + }, + }); + parser.on('file', (name, stream, info) => { + ++calls.partBegin; + stream.on('data', (chunk) => { + ++calls.partData; + }).on('end', () => { + ++calls.partEnd; + }); + }).on('close', () => { + ++calls.end; + console.timeEnd(moduleName); + }); + + console.time(moduleName); + for (const buf of buffers) + parser.write(buf); + break; + } + + case 'formidable': { + const { MultipartParser } = require('formidable'); + + const parser = new MultipartParser(); + parser.initWithBoundary(boundary); + parser.on('data', ({ name }) => { + ++calls[name]; + if (name === 'end') + console.timeEnd(moduleName); + }); + + console.time(moduleName); + for (const buf of buffers) + parser.write(buf); + + break; + } + + case 'multiparty': { + const { Readable } = require('stream'); + + const { Form } = require('multiparty'); + + const form = new Form({ + maxFieldsSize: Infinity, + maxFields: Infinity, + maxFilesSize: Infinity, + autoFields: false, + autoFiles: false, + }); + + const req = new Readable({ read: () => {} }); + req.headers = { + 'content-type': `multipart/form-data; boundary=${boundary}`, + }; + + function hijack(name, fn) { + const oldFn = form[name]; + form[name] = function() { + fn(); + return oldFn.apply(this, arguments); + }; + } + + hijack('onParseHeaderField', () => { + ++calls.headerField; + }); + hijack('onParseHeaderValue', () => { + ++calls.headerValue; + }); + hijack('onParsePartBegin', () => { + ++calls.partBegin; + }); + hijack('onParsePartData', () => { + ++calls.partData; + }); + hijack('onParsePartEnd', () => { + ++calls.partEnd; + }); + + form.on('close', () => { + ++calls.end; + console.timeEnd(moduleName); + }).on('part', (p) => p.resume()); + + console.time(moduleName); + form.parse(req); + for (const buf of buffers) + req.push(buf); + req.push(null); + + break; + } + + default: + if (moduleName === undefined) + console.error('Missing parser module name'); + else + console.error(`Invalid parser module name: ${moduleName}`); + process.exit(1); +} diff --git a/server/api/node_modules/busboy/bench/bench-urlencoded-fields-100pairs-small.js b/server/api/node_modules/busboy/bench/bench-urlencoded-fields-100pairs-small.js new file mode 100644 index 0000000..5c337df --- /dev/null +++ b/server/api/node_modules/busboy/bench/bench-urlencoded-fields-100pairs-small.js @@ -0,0 +1,101 @@ +'use strict'; + +const buffers = [ + Buffer.from( + (new Array(100)).fill('').map((_, i) => `key${i}=value${i}`).join('&') + ), +]; +const calls = { + field: 0, + end: 0, +}; + +let n = 3e3; + +const moduleName = process.argv[2]; +switch (moduleName) { + case 'busboy': { + const busboy = require('busboy'); + + console.time(moduleName); + (function next() { + const parser = busboy({ + limits: { + fieldSizeLimit: Infinity, + }, + headers: { + 'content-type': 'application/x-www-form-urlencoded; charset=utf-8', + }, + }); + parser.on('field', (name, val, info) => { + ++calls.field; + }).on('close', () => { + ++calls.end; + if (--n === 0) + console.timeEnd(moduleName); + else + process.nextTick(next); + }); + + for (const buf of buffers) + parser.write(buf); + parser.end(); + })(); + break; + } + + case 'formidable': { + const QuerystringParser = + require('formidable/src/parsers/Querystring.js'); + + console.time(moduleName); + (function next() { + const parser = new QuerystringParser(); + parser.on('data', (obj) => { + ++calls.field; + }).on('end', () => { + ++calls.end; + if (--n === 0) + console.timeEnd(moduleName); + else + process.nextTick(next); + }); + + for (const buf of buffers) + parser.write(buf); + parser.end(); + })(); + break; + } + + case 'formidable-streaming': { + const QuerystringParser = + require('formidable/src/parsers/StreamingQuerystring.js'); + + console.time(moduleName); + (function next() { + const parser = new QuerystringParser(); + parser.on('data', (obj) => { + ++calls.field; + }).on('end', () => { + ++calls.end; + if (--n === 0) + console.timeEnd(moduleName); + else + process.nextTick(next); + }); + + for (const buf of buffers) + parser.write(buf); + parser.end(); + })(); + break; + } + + default: + if (moduleName === undefined) + console.error('Missing parser module name'); + else + console.error(`Invalid parser module name: ${moduleName}`); + process.exit(1); +} diff --git a/server/api/node_modules/busboy/bench/bench-urlencoded-fields-900pairs-small-alt.js b/server/api/node_modules/busboy/bench/bench-urlencoded-fields-900pairs-small-alt.js new file mode 100644 index 0000000..1f5645c --- /dev/null +++ b/server/api/node_modules/busboy/bench/bench-urlencoded-fields-900pairs-small-alt.js @@ -0,0 +1,84 @@ +'use strict'; + +const buffers = [ + Buffer.from( + (new Array(900)).fill('').map((_, i) => `key${i}=value${i}`).join('&') + ), +]; +const calls = { + field: 0, + end: 0, +}; + +const moduleName = process.argv[2]; +switch (moduleName) { + case 'busboy': { + const busboy = require('busboy'); + + console.time(moduleName); + const parser = busboy({ + limits: { + fieldSizeLimit: Infinity, + }, + headers: { + 'content-type': 'application/x-www-form-urlencoded; charset=utf-8', + }, + }); + parser.on('field', (name, val, info) => { + ++calls.field; + }).on('close', () => { + ++calls.end; + console.timeEnd(moduleName); + }); + + for (const buf of buffers) + parser.write(buf); + parser.end(); + break; + } + + case 'formidable': { + const QuerystringParser = + require('formidable/src/parsers/Querystring.js'); + + console.time(moduleName); + const parser = new QuerystringParser(); + parser.on('data', (obj) => { + ++calls.field; + }).on('end', () => { + ++calls.end; + console.timeEnd(moduleName); + }); + + for (const buf of buffers) + parser.write(buf); + parser.end(); + break; + } + + case 'formidable-streaming': { + const QuerystringParser = + require('formidable/src/parsers/StreamingQuerystring.js'); + + console.time(moduleName); + const parser = new QuerystringParser(); + parser.on('data', (obj) => { + ++calls.field; + }).on('end', () => { + ++calls.end; + console.timeEnd(moduleName); + }); + + for (const buf of buffers) + parser.write(buf); + parser.end(); + break; + } + + default: + if (moduleName === undefined) + console.error('Missing parser module name'); + else + console.error(`Invalid parser module name: ${moduleName}`); + process.exit(1); +} diff --git a/server/api/node_modules/busboy/lib/index.js b/server/api/node_modules/busboy/lib/index.js new file mode 100644 index 0000000..873272d --- /dev/null +++ b/server/api/node_modules/busboy/lib/index.js @@ -0,0 +1,57 @@ +'use strict'; + +const { parseContentType } = require('./utils.js'); + +function getInstance(cfg) { + const headers = cfg.headers; + const conType = parseContentType(headers['content-type']); + if (!conType) + throw new Error('Malformed content type'); + + for (const type of TYPES) { + const matched = type.detect(conType); + if (!matched) + continue; + + const instanceCfg = { + limits: cfg.limits, + headers, + conType, + highWaterMark: undefined, + fileHwm: undefined, + defCharset: undefined, + defParamCharset: undefined, + preservePath: false, + }; + if (cfg.highWaterMark) + instanceCfg.highWaterMark = cfg.highWaterMark; + if (cfg.fileHwm) + instanceCfg.fileHwm = cfg.fileHwm; + instanceCfg.defCharset = cfg.defCharset; + instanceCfg.defParamCharset = cfg.defParamCharset; + instanceCfg.preservePath = cfg.preservePath; + return new type(instanceCfg); + } + + throw new Error(`Unsupported content type: ${headers['content-type']}`); +} + +// Note: types are explicitly listed here for easier bundling +// See: https://github.com/mscdex/busboy/issues/121 +const TYPES = [ + require('./types/multipart'), + require('./types/urlencoded'), +].filter(function(typemod) { return typeof typemod.detect === 'function'; }); + +module.exports = (cfg) => { + if (typeof cfg !== 'object' || cfg === null) + cfg = {}; + + if (typeof cfg.headers !== 'object' + || cfg.headers === null + || typeof cfg.headers['content-type'] !== 'string') { + throw new Error('Missing Content-Type'); + } + + return getInstance(cfg); +}; diff --git a/server/api/node_modules/busboy/lib/types/multipart.js b/server/api/node_modules/busboy/lib/types/multipart.js new file mode 100644 index 0000000..cc0d7bb --- /dev/null +++ b/server/api/node_modules/busboy/lib/types/multipart.js @@ -0,0 +1,653 @@ +'use strict'; + +const { Readable, Writable } = require('stream'); + +const StreamSearch = require('streamsearch'); + +const { + basename, + convertToUTF8, + getDecoder, + parseContentType, + parseDisposition, +} = require('../utils.js'); + +const BUF_CRLF = Buffer.from('\r\n'); +const BUF_CR = Buffer.from('\r'); +const BUF_DASH = Buffer.from('-'); + +function noop() {} + +const MAX_HEADER_PAIRS = 2000; // From node +const MAX_HEADER_SIZE = 16 * 1024; // From node (its default value) + +const HPARSER_NAME = 0; +const HPARSER_PRE_OWS = 1; +const HPARSER_VALUE = 2; +class HeaderParser { + constructor(cb) { + this.header = Object.create(null); + this.pairCount = 0; + this.byteCount = 0; + this.state = HPARSER_NAME; + this.name = ''; + this.value = ''; + this.crlf = 0; + this.cb = cb; + } + + reset() { + this.header = Object.create(null); + this.pairCount = 0; + this.byteCount = 0; + this.state = HPARSER_NAME; + this.name = ''; + this.value = ''; + this.crlf = 0; + } + + push(chunk, pos, end) { + let start = pos; + while (pos < end) { + switch (this.state) { + case HPARSER_NAME: { + let done = false; + for (; pos < end; ++pos) { + if (this.byteCount === MAX_HEADER_SIZE) + return -1; + ++this.byteCount; + const code = chunk[pos]; + if (TOKEN[code] !== 1) { + if (code !== 58/* ':' */) + return -1; + this.name += chunk.latin1Slice(start, pos); + if (this.name.length === 0) + return -1; + ++pos; + done = true; + this.state = HPARSER_PRE_OWS; + break; + } + } + if (!done) { + this.name += chunk.latin1Slice(start, pos); + break; + } + // FALLTHROUGH + } + case HPARSER_PRE_OWS: { + // Skip optional whitespace + let done = false; + for (; pos < end; ++pos) { + if (this.byteCount === MAX_HEADER_SIZE) + return -1; + ++this.byteCount; + const code = chunk[pos]; + if (code !== 32/* ' ' */ && code !== 9/* '\t' */) { + start = pos; + done = true; + this.state = HPARSER_VALUE; + break; + } + } + if (!done) + break; + // FALLTHROUGH + } + case HPARSER_VALUE: + switch (this.crlf) { + case 0: // Nothing yet + for (; pos < end; ++pos) { + if (this.byteCount === MAX_HEADER_SIZE) + return -1; + ++this.byteCount; + const code = chunk[pos]; + if (FIELD_VCHAR[code] !== 1) { + if (code !== 13/* '\r' */) + return -1; + ++this.crlf; + break; + } + } + this.value += chunk.latin1Slice(start, pos++); + break; + case 1: // Received CR + if (this.byteCount === MAX_HEADER_SIZE) + return -1; + ++this.byteCount; + if (chunk[pos++] !== 10/* '\n' */) + return -1; + ++this.crlf; + break; + case 2: { // Received CR LF + if (this.byteCount === MAX_HEADER_SIZE) + return -1; + ++this.byteCount; + const code = chunk[pos]; + if (code === 32/* ' ' */ || code === 9/* '\t' */) { + // Folded value + start = pos; + this.crlf = 0; + } else { + if (++this.pairCount < MAX_HEADER_PAIRS) { + this.name = this.name.toLowerCase(); + if (this.header[this.name] === undefined) + this.header[this.name] = [this.value]; + else + this.header[this.name].push(this.value); + } + if (code === 13/* '\r' */) { + ++this.crlf; + ++pos; + } else { + // Assume start of next header field name + start = pos; + this.crlf = 0; + this.state = HPARSER_NAME; + this.name = ''; + this.value = ''; + } + } + break; + } + case 3: { // Received CR LF CR + if (this.byteCount === MAX_HEADER_SIZE) + return -1; + ++this.byteCount; + if (chunk[pos++] !== 10/* '\n' */) + return -1; + // End of header + const header = this.header; + this.reset(); + this.cb(header); + return pos; + } + } + break; + } + } + + return pos; + } +} + +class FileStream extends Readable { + constructor(opts, owner) { + super(opts); + this.truncated = false; + this._readcb = null; + this.once('end', () => { + // We need to make sure that we call any outstanding _writecb() that is + // associated with this file so that processing of the rest of the form + // can continue. This may not happen if the file stream ends right after + // backpressure kicks in, so we force it here. + this._read(); + if (--owner._fileEndsLeft === 0 && owner._finalcb) { + const cb = owner._finalcb; + owner._finalcb = null; + // Make sure other 'end' event handlers get a chance to be executed + // before busboy's 'finish' event is emitted + process.nextTick(cb); + } + }); + } + _read(n) { + const cb = this._readcb; + if (cb) { + this._readcb = null; + cb(); + } + } +} + +const ignoreData = { + push: (chunk, pos) => {}, + destroy: () => {}, +}; + +function callAndUnsetCb(self, err) { + const cb = self._writecb; + self._writecb = null; + if (err) + self.destroy(err); + else if (cb) + cb(); +} + +function nullDecoder(val, hint) { + return val; +} + +class Multipart extends Writable { + constructor(cfg) { + const streamOpts = { + autoDestroy: true, + emitClose: true, + highWaterMark: (typeof cfg.highWaterMark === 'number' + ? cfg.highWaterMark + : undefined), + }; + super(streamOpts); + + if (!cfg.conType.params || typeof cfg.conType.params.boundary !== 'string') + throw new Error('Multipart: Boundary not found'); + + const boundary = cfg.conType.params.boundary; + const paramDecoder = (typeof cfg.defParamCharset === 'string' + && cfg.defParamCharset + ? getDecoder(cfg.defParamCharset) + : nullDecoder); + const defCharset = (cfg.defCharset || 'utf8'); + const preservePath = cfg.preservePath; + const fileOpts = { + autoDestroy: true, + emitClose: true, + highWaterMark: (typeof cfg.fileHwm === 'number' + ? cfg.fileHwm + : undefined), + }; + + const limits = cfg.limits; + const fieldSizeLimit = (limits && typeof limits.fieldSize === 'number' + ? limits.fieldSize + : 1 * 1024 * 1024); + const fileSizeLimit = (limits && typeof limits.fileSize === 'number' + ? limits.fileSize + : Infinity); + const filesLimit = (limits && typeof limits.files === 'number' + ? limits.files + : Infinity); + const fieldsLimit = (limits && typeof limits.fields === 'number' + ? limits.fields + : Infinity); + const partsLimit = (limits && typeof limits.parts === 'number' + ? limits.parts + : Infinity); + + let parts = -1; // Account for initial boundary + let fields = 0; + let files = 0; + let skipPart = false; + + this._fileEndsLeft = 0; + this._fileStream = undefined; + this._complete = false; + let fileSize = 0; + + let field; + let fieldSize = 0; + let partCharset; + let partEncoding; + let partType; + let partName; + let partTruncated = false; + + let hitFilesLimit = false; + let hitFieldsLimit = false; + + this._hparser = null; + const hparser = new HeaderParser((header) => { + this._hparser = null; + skipPart = false; + + partType = 'text/plain'; + partCharset = defCharset; + partEncoding = '7bit'; + partName = undefined; + partTruncated = false; + + let filename; + if (!header['content-disposition']) { + skipPart = true; + return; + } + + const disp = parseDisposition(header['content-disposition'][0], + paramDecoder); + if (!disp || disp.type !== 'form-data') { + skipPart = true; + return; + } + + if (disp.params) { + if (disp.params.name) + partName = disp.params.name; + + if (disp.params['filename*']) + filename = disp.params['filename*']; + else if (disp.params.filename) + filename = disp.params.filename; + + if (filename !== undefined && !preservePath) + filename = basename(filename); + } + + if (header['content-type']) { + const conType = parseContentType(header['content-type'][0]); + if (conType) { + partType = `${conType.type}/${conType.subtype}`; + if (conType.params && typeof conType.params.charset === 'string') + partCharset = conType.params.charset.toLowerCase(); + } + } + + if (header['content-transfer-encoding']) + partEncoding = header['content-transfer-encoding'][0].toLowerCase(); + + if (partType === 'application/octet-stream' || filename !== undefined) { + // File + + if (files === filesLimit) { + if (!hitFilesLimit) { + hitFilesLimit = true; + this.emit('filesLimit'); + } + skipPart = true; + return; + } + ++files; + + if (this.listenerCount('file') === 0) { + skipPart = true; + return; + } + + fileSize = 0; + this._fileStream = new FileStream(fileOpts, this); + ++this._fileEndsLeft; + this.emit( + 'file', + partName, + this._fileStream, + { filename, + encoding: partEncoding, + mimeType: partType } + ); + } else { + // Non-file + + if (fields === fieldsLimit) { + if (!hitFieldsLimit) { + hitFieldsLimit = true; + this.emit('fieldsLimit'); + } + skipPart = true; + return; + } + ++fields; + + if (this.listenerCount('field') === 0) { + skipPart = true; + return; + } + + field = []; + fieldSize = 0; + } + }); + + let matchPostBoundary = 0; + const ssCb = (isMatch, data, start, end, isDataSafe) => { +retrydata: + while (data) { + if (this._hparser !== null) { + const ret = this._hparser.push(data, start, end); + if (ret === -1) { + this._hparser = null; + hparser.reset(); + this.emit('error', new Error('Malformed part header')); + break; + } + start = ret; + } + + if (start === end) + break; + + if (matchPostBoundary !== 0) { + if (matchPostBoundary === 1) { + switch (data[start]) { + case 45: // '-' + // Try matching '--' after boundary + matchPostBoundary = 2; + ++start; + break; + case 13: // '\r' + // Try matching CR LF before header + matchPostBoundary = 3; + ++start; + break; + default: + matchPostBoundary = 0; + } + if (start === end) + return; + } + + if (matchPostBoundary === 2) { + matchPostBoundary = 0; + if (data[start] === 45/* '-' */) { + // End of multipart data + this._complete = true; + this._bparser = ignoreData; + return; + } + // We saw something other than '-', so put the dash we consumed + // "back" + const writecb = this._writecb; + this._writecb = noop; + ssCb(false, BUF_DASH, 0, 1, false); + this._writecb = writecb; + } else if (matchPostBoundary === 3) { + matchPostBoundary = 0; + if (data[start] === 10/* '\n' */) { + ++start; + if (parts >= partsLimit) + break; + // Prepare the header parser + this._hparser = hparser; + if (start === end) + break; + // Process the remaining data as a header + continue retrydata; + } else { + // We saw something other than LF, so put the CR we consumed + // "back" + const writecb = this._writecb; + this._writecb = noop; + ssCb(false, BUF_CR, 0, 1, false); + this._writecb = writecb; + } + } + } + + if (!skipPart) { + if (this._fileStream) { + let chunk; + const actualLen = Math.min(end - start, fileSizeLimit - fileSize); + if (!isDataSafe) { + chunk = Buffer.allocUnsafe(actualLen); + data.copy(chunk, 0, start, start + actualLen); + } else { + chunk = data.slice(start, start + actualLen); + } + + fileSize += chunk.length; + if (fileSize === fileSizeLimit) { + if (chunk.length > 0) + this._fileStream.push(chunk); + this._fileStream.emit('limit'); + this._fileStream.truncated = true; + skipPart = true; + } else if (!this._fileStream.push(chunk)) { + if (this._writecb) + this._fileStream._readcb = this._writecb; + this._writecb = null; + } + } else if (field !== undefined) { + let chunk; + const actualLen = Math.min( + end - start, + fieldSizeLimit - fieldSize + ); + if (!isDataSafe) { + chunk = Buffer.allocUnsafe(actualLen); + data.copy(chunk, 0, start, start + actualLen); + } else { + chunk = data.slice(start, start + actualLen); + } + + fieldSize += actualLen; + field.push(chunk); + if (fieldSize === fieldSizeLimit) { + skipPart = true; + partTruncated = true; + } + } + } + + break; + } + + if (isMatch) { + matchPostBoundary = 1; + + if (this._fileStream) { + // End the active file stream if the previous part was a file + this._fileStream.push(null); + this._fileStream = null; + } else if (field !== undefined) { + let data; + switch (field.length) { + case 0: + data = ''; + break; + case 1: + data = convertToUTF8(field[0], partCharset, 0); + break; + default: + data = convertToUTF8( + Buffer.concat(field, fieldSize), + partCharset, + 0 + ); + } + field = undefined; + fieldSize = 0; + this.emit( + 'field', + partName, + data, + { nameTruncated: false, + valueTruncated: partTruncated, + encoding: partEncoding, + mimeType: partType } + ); + } + + if (++parts === partsLimit) + this.emit('partsLimit'); + } + }; + this._bparser = new StreamSearch(`\r\n--${boundary}`, ssCb); + + this._writecb = null; + this._finalcb = null; + + // Just in case there is no preamble + this.write(BUF_CRLF); + } + + static detect(conType) { + return (conType.type === 'multipart' && conType.subtype === 'form-data'); + } + + _write(chunk, enc, cb) { + this._writecb = cb; + this._bparser.push(chunk, 0); + if (this._writecb) + callAndUnsetCb(this); + } + + _destroy(err, cb) { + this._hparser = null; + this._bparser = ignoreData; + if (!err) + err = checkEndState(this); + const fileStream = this._fileStream; + if (fileStream) { + this._fileStream = null; + fileStream.destroy(err); + } + cb(err); + } + + _final(cb) { + this._bparser.destroy(); + if (!this._complete) + return cb(new Error('Unexpected end of form')); + if (this._fileEndsLeft) + this._finalcb = finalcb.bind(null, this, cb); + else + finalcb(this, cb); + } +} + +function finalcb(self, cb, err) { + if (err) + return cb(err); + err = checkEndState(self); + cb(err); +} + +function checkEndState(self) { + if (self._hparser) + return new Error('Malformed part header'); + const fileStream = self._fileStream; + if (fileStream) { + self._fileStream = null; + fileStream.destroy(new Error('Unexpected end of file')); + } + if (!self._complete) + return new Error('Unexpected end of form'); +} + +const TOKEN = [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, + 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +]; + +const FIELD_VCHAR = [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, +]; + +module.exports = Multipart; diff --git a/server/api/node_modules/busboy/lib/types/urlencoded.js b/server/api/node_modules/busboy/lib/types/urlencoded.js new file mode 100644 index 0000000..5c463a2 --- /dev/null +++ b/server/api/node_modules/busboy/lib/types/urlencoded.js @@ -0,0 +1,350 @@ +'use strict'; + +const { Writable } = require('stream'); + +const { getDecoder } = require('../utils.js'); + +class URLEncoded extends Writable { + constructor(cfg) { + const streamOpts = { + autoDestroy: true, + emitClose: true, + highWaterMark: (typeof cfg.highWaterMark === 'number' + ? cfg.highWaterMark + : undefined), + }; + super(streamOpts); + + let charset = (cfg.defCharset || 'utf8'); + if (cfg.conType.params && typeof cfg.conType.params.charset === 'string') + charset = cfg.conType.params.charset; + + this.charset = charset; + + const limits = cfg.limits; + this.fieldSizeLimit = (limits && typeof limits.fieldSize === 'number' + ? limits.fieldSize + : 1 * 1024 * 1024); + this.fieldsLimit = (limits && typeof limits.fields === 'number' + ? limits.fields + : Infinity); + this.fieldNameSizeLimit = ( + limits && typeof limits.fieldNameSize === 'number' + ? limits.fieldNameSize + : 100 + ); + + this._inKey = true; + this._keyTrunc = false; + this._valTrunc = false; + this._bytesKey = 0; + this._bytesVal = 0; + this._fields = 0; + this._key = ''; + this._val = ''; + this._byte = -2; + this._lastPos = 0; + this._encode = 0; + this._decoder = getDecoder(charset); + } + + static detect(conType) { + return (conType.type === 'application' + && conType.subtype === 'x-www-form-urlencoded'); + } + + _write(chunk, enc, cb) { + if (this._fields >= this.fieldsLimit) + return cb(); + + let i = 0; + const len = chunk.length; + this._lastPos = 0; + + // Check if we last ended mid-percent-encoded byte + if (this._byte !== -2) { + i = readPctEnc(this, chunk, i, len); + if (i === -1) + return cb(new Error('Malformed urlencoded form')); + if (i >= len) + return cb(); + if (this._inKey) + ++this._bytesKey; + else + ++this._bytesVal; + } + +main: + while (i < len) { + if (this._inKey) { + // Parsing key + + i = skipKeyBytes(this, chunk, i, len); + + while (i < len) { + switch (chunk[i]) { + case 61: // '=' + if (this._lastPos < i) + this._key += chunk.latin1Slice(this._lastPos, i); + this._lastPos = ++i; + this._key = this._decoder(this._key, this._encode); + this._encode = 0; + this._inKey = false; + continue main; + case 38: // '&' + if (this._lastPos < i) + this._key += chunk.latin1Slice(this._lastPos, i); + this._lastPos = ++i; + this._key = this._decoder(this._key, this._encode); + this._encode = 0; + if (this._bytesKey > 0) { + this.emit( + 'field', + this._key, + '', + { nameTruncated: this._keyTrunc, + valueTruncated: false, + encoding: this.charset, + mimeType: 'text/plain' } + ); + } + this._key = ''; + this._val = ''; + this._keyTrunc = false; + this._valTrunc = false; + this._bytesKey = 0; + this._bytesVal = 0; + if (++this._fields >= this.fieldsLimit) { + this.emit('fieldsLimit'); + return cb(); + } + continue; + case 43: // '+' + if (this._lastPos < i) + this._key += chunk.latin1Slice(this._lastPos, i); + this._key += ' '; + this._lastPos = i + 1; + break; + case 37: // '%' + if (this._encode === 0) + this._encode = 1; + if (this._lastPos < i) + this._key += chunk.latin1Slice(this._lastPos, i); + this._lastPos = i + 1; + this._byte = -1; + i = readPctEnc(this, chunk, i + 1, len); + if (i === -1) + return cb(new Error('Malformed urlencoded form')); + if (i >= len) + return cb(); + ++this._bytesKey; + i = skipKeyBytes(this, chunk, i, len); + continue; + } + ++i; + ++this._bytesKey; + i = skipKeyBytes(this, chunk, i, len); + } + if (this._lastPos < i) + this._key += chunk.latin1Slice(this._lastPos, i); + } else { + // Parsing value + + i = skipValBytes(this, chunk, i, len); + + while (i < len) { + switch (chunk[i]) { + case 38: // '&' + if (this._lastPos < i) + this._val += chunk.latin1Slice(this._lastPos, i); + this._lastPos = ++i; + this._inKey = true; + this._val = this._decoder(this._val, this._encode); + this._encode = 0; + if (this._bytesKey > 0 || this._bytesVal > 0) { + this.emit( + 'field', + this._key, + this._val, + { nameTruncated: this._keyTrunc, + valueTruncated: this._valTrunc, + encoding: this.charset, + mimeType: 'text/plain' } + ); + } + this._key = ''; + this._val = ''; + this._keyTrunc = false; + this._valTrunc = false; + this._bytesKey = 0; + this._bytesVal = 0; + if (++this._fields >= this.fieldsLimit) { + this.emit('fieldsLimit'); + return cb(); + } + continue main; + case 43: // '+' + if (this._lastPos < i) + this._val += chunk.latin1Slice(this._lastPos, i); + this._val += ' '; + this._lastPos = i + 1; + break; + case 37: // '%' + if (this._encode === 0) + this._encode = 1; + if (this._lastPos < i) + this._val += chunk.latin1Slice(this._lastPos, i); + this._lastPos = i + 1; + this._byte = -1; + i = readPctEnc(this, chunk, i + 1, len); + if (i === -1) + return cb(new Error('Malformed urlencoded form')); + if (i >= len) + return cb(); + ++this._bytesVal; + i = skipValBytes(this, chunk, i, len); + continue; + } + ++i; + ++this._bytesVal; + i = skipValBytes(this, chunk, i, len); + } + if (this._lastPos < i) + this._val += chunk.latin1Slice(this._lastPos, i); + } + } + + cb(); + } + + _final(cb) { + if (this._byte !== -2) + return cb(new Error('Malformed urlencoded form')); + if (!this._inKey || this._bytesKey > 0 || this._bytesVal > 0) { + if (this._inKey) + this._key = this._decoder(this._key, this._encode); + else + this._val = this._decoder(this._val, this._encode); + this.emit( + 'field', + this._key, + this._val, + { nameTruncated: this._keyTrunc, + valueTruncated: this._valTrunc, + encoding: this.charset, + mimeType: 'text/plain' } + ); + } + cb(); + } +} + +function readPctEnc(self, chunk, pos, len) { + if (pos >= len) + return len; + + if (self._byte === -1) { + // We saw a '%' but no hex characters yet + const hexUpper = HEX_VALUES[chunk[pos++]]; + if (hexUpper === -1) + return -1; + + if (hexUpper >= 8) + self._encode = 2; // Indicate high bits detected + + if (pos < len) { + // Both hex characters are in this chunk + const hexLower = HEX_VALUES[chunk[pos++]]; + if (hexLower === -1) + return -1; + + if (self._inKey) + self._key += String.fromCharCode((hexUpper << 4) + hexLower); + else + self._val += String.fromCharCode((hexUpper << 4) + hexLower); + + self._byte = -2; + self._lastPos = pos; + } else { + // Only one hex character was available in this chunk + self._byte = hexUpper; + } + } else { + // We saw only one hex character so far + const hexLower = HEX_VALUES[chunk[pos++]]; + if (hexLower === -1) + return -1; + + if (self._inKey) + self._key += String.fromCharCode((self._byte << 4) + hexLower); + else + self._val += String.fromCharCode((self._byte << 4) + hexLower); + + self._byte = -2; + self._lastPos = pos; + } + + return pos; +} + +function skipKeyBytes(self, chunk, pos, len) { + // Skip bytes if we've truncated + if (self._bytesKey > self.fieldNameSizeLimit) { + if (!self._keyTrunc) { + if (self._lastPos < pos) + self._key += chunk.latin1Slice(self._lastPos, pos - 1); + } + self._keyTrunc = true; + for (; pos < len; ++pos) { + const code = chunk[pos]; + if (code === 61/* '=' */ || code === 38/* '&' */) + break; + ++self._bytesKey; + } + self._lastPos = pos; + } + + return pos; +} + +function skipValBytes(self, chunk, pos, len) { + // Skip bytes if we've truncated + if (self._bytesVal > self.fieldSizeLimit) { + if (!self._valTrunc) { + if (self._lastPos < pos) + self._val += chunk.latin1Slice(self._lastPos, pos - 1); + } + self._valTrunc = true; + for (; pos < len; ++pos) { + if (chunk[pos] === 38/* '&' */) + break; + ++self._bytesVal; + } + self._lastPos = pos; + } + + return pos; +} + +/* eslint-disable no-multi-spaces */ +const HEX_VALUES = [ + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1, -1, -1, -1, -1, -1, + -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +]; +/* eslint-enable no-multi-spaces */ + +module.exports = URLEncoded; diff --git a/server/api/node_modules/busboy/lib/utils.js b/server/api/node_modules/busboy/lib/utils.js new file mode 100644 index 0000000..8274f6c --- /dev/null +++ b/server/api/node_modules/busboy/lib/utils.js @@ -0,0 +1,596 @@ +'use strict'; + +function parseContentType(str) { + if (str.length === 0) + return; + + const params = Object.create(null); + let i = 0; + + // Parse type + for (; i < str.length; ++i) { + const code = str.charCodeAt(i); + if (TOKEN[code] !== 1) { + if (code !== 47/* '/' */ || i === 0) + return; + break; + } + } + // Check for type without subtype + if (i === str.length) + return; + + const type = str.slice(0, i).toLowerCase(); + + // Parse subtype + const subtypeStart = ++i; + for (; i < str.length; ++i) { + const code = str.charCodeAt(i); + if (TOKEN[code] !== 1) { + // Make sure we have a subtype + if (i === subtypeStart) + return; + + if (parseContentTypeParams(str, i, params) === undefined) + return; + break; + } + } + // Make sure we have a subtype + if (i === subtypeStart) + return; + + const subtype = str.slice(subtypeStart, i).toLowerCase(); + + return { type, subtype, params }; +} + +function parseContentTypeParams(str, i, params) { + while (i < str.length) { + // Consume whitespace + for (; i < str.length; ++i) { + const code = str.charCodeAt(i); + if (code !== 32/* ' ' */ && code !== 9/* '\t' */) + break; + } + + // Ended on whitespace + if (i === str.length) + break; + + // Check for malformed parameter + if (str.charCodeAt(i++) !== 59/* ';' */) + return; + + // Consume whitespace + for (; i < str.length; ++i) { + const code = str.charCodeAt(i); + if (code !== 32/* ' ' */ && code !== 9/* '\t' */) + break; + } + + // Ended on whitespace (malformed) + if (i === str.length) + return; + + let name; + const nameStart = i; + // Parse parameter name + for (; i < str.length; ++i) { + const code = str.charCodeAt(i); + if (TOKEN[code] !== 1) { + if (code !== 61/* '=' */) + return; + break; + } + } + + // No value (malformed) + if (i === str.length) + return; + + name = str.slice(nameStart, i); + ++i; // Skip over '=' + + // No value (malformed) + if (i === str.length) + return; + + let value = ''; + let valueStart; + if (str.charCodeAt(i) === 34/* '"' */) { + valueStart = ++i; + let escaping = false; + // Parse quoted value + for (; i < str.length; ++i) { + const code = str.charCodeAt(i); + if (code === 92/* '\\' */) { + if (escaping) { + valueStart = i; + escaping = false; + } else { + value += str.slice(valueStart, i); + escaping = true; + } + continue; + } + if (code === 34/* '"' */) { + if (escaping) { + valueStart = i; + escaping = false; + continue; + } + value += str.slice(valueStart, i); + break; + } + if (escaping) { + valueStart = i - 1; + escaping = false; + } + // Invalid unescaped quoted character (malformed) + if (QDTEXT[code] !== 1) + return; + } + + // No end quote (malformed) + if (i === str.length) + return; + + ++i; // Skip over double quote + } else { + valueStart = i; + // Parse unquoted value + for (; i < str.length; ++i) { + const code = str.charCodeAt(i); + if (TOKEN[code] !== 1) { + // No value (malformed) + if (i === valueStart) + return; + break; + } + } + value = str.slice(valueStart, i); + } + + name = name.toLowerCase(); + if (params[name] === undefined) + params[name] = value; + } + + return params; +} + +function parseDisposition(str, defDecoder) { + if (str.length === 0) + return; + + const params = Object.create(null); + let i = 0; + + for (; i < str.length; ++i) { + const code = str.charCodeAt(i); + if (TOKEN[code] !== 1) { + if (parseDispositionParams(str, i, params, defDecoder) === undefined) + return; + break; + } + } + + const type = str.slice(0, i).toLowerCase(); + + return { type, params }; +} + +function parseDispositionParams(str, i, params, defDecoder) { + while (i < str.length) { + // Consume whitespace + for (; i < str.length; ++i) { + const code = str.charCodeAt(i); + if (code !== 32/* ' ' */ && code !== 9/* '\t' */) + break; + } + + // Ended on whitespace + if (i === str.length) + break; + + // Check for malformed parameter + if (str.charCodeAt(i++) !== 59/* ';' */) + return; + + // Consume whitespace + for (; i < str.length; ++i) { + const code = str.charCodeAt(i); + if (code !== 32/* ' ' */ && code !== 9/* '\t' */) + break; + } + + // Ended on whitespace (malformed) + if (i === str.length) + return; + + let name; + const nameStart = i; + // Parse parameter name + for (; i < str.length; ++i) { + const code = str.charCodeAt(i); + if (TOKEN[code] !== 1) { + if (code === 61/* '=' */) + break; + return; + } + } + + // No value (malformed) + if (i === str.length) + return; + + let value = ''; + let valueStart; + let charset; + //~ let lang; + name = str.slice(nameStart, i); + if (name.charCodeAt(name.length - 1) === 42/* '*' */) { + // Extended value + + const charsetStart = ++i; + // Parse charset name + for (; i < str.length; ++i) { + const code = str.charCodeAt(i); + if (CHARSET[code] !== 1) { + if (code !== 39/* '\'' */) + return; + break; + } + } + + // Incomplete charset (malformed) + if (i === str.length) + return; + + charset = str.slice(charsetStart, i); + ++i; // Skip over the '\'' + + //~ const langStart = ++i; + // Parse language name + for (; i < str.length; ++i) { + const code = str.charCodeAt(i); + if (code === 39/* '\'' */) + break; + } + + // Incomplete language (malformed) + if (i === str.length) + return; + + //~ lang = str.slice(langStart, i); + ++i; // Skip over the '\'' + + // No value (malformed) + if (i === str.length) + return; + + valueStart = i; + + let encode = 0; + // Parse value + for (; i < str.length; ++i) { + const code = str.charCodeAt(i); + if (EXTENDED_VALUE[code] !== 1) { + if (code === 37/* '%' */) { + let hexUpper; + let hexLower; + if (i + 2 < str.length + && (hexUpper = HEX_VALUES[str.charCodeAt(i + 1)]) !== -1 + && (hexLower = HEX_VALUES[str.charCodeAt(i + 2)]) !== -1) { + const byteVal = (hexUpper << 4) + hexLower; + value += str.slice(valueStart, i); + value += String.fromCharCode(byteVal); + i += 2; + valueStart = i + 1; + if (byteVal >= 128) + encode = 2; + else if (encode === 0) + encode = 1; + continue; + } + // '%' disallowed in non-percent encoded contexts (malformed) + return; + } + break; + } + } + + value += str.slice(valueStart, i); + value = convertToUTF8(value, charset, encode); + if (value === undefined) + return; + } else { + // Non-extended value + + ++i; // Skip over '=' + + // No value (malformed) + if (i === str.length) + return; + + if (str.charCodeAt(i) === 34/* '"' */) { + valueStart = ++i; + let escaping = false; + // Parse quoted value + for (; i < str.length; ++i) { + const code = str.charCodeAt(i); + if (code === 92/* '\\' */) { + if (escaping) { + valueStart = i; + escaping = false; + } else { + value += str.slice(valueStart, i); + escaping = true; + } + continue; + } + if (code === 34/* '"' */) { + if (escaping) { + valueStart = i; + escaping = false; + continue; + } + value += str.slice(valueStart, i); + break; + } + if (escaping) { + valueStart = i - 1; + escaping = false; + } + // Invalid unescaped quoted character (malformed) + if (QDTEXT[code] !== 1) + return; + } + + // No end quote (malformed) + if (i === str.length) + return; + + ++i; // Skip over double quote + } else { + valueStart = i; + // Parse unquoted value + for (; i < str.length; ++i) { + const code = str.charCodeAt(i); + if (TOKEN[code] !== 1) { + // No value (malformed) + if (i === valueStart) + return; + break; + } + } + value = str.slice(valueStart, i); + } + + value = defDecoder(value, 2); + if (value === undefined) + return; + } + + name = name.toLowerCase(); + if (params[name] === undefined) + params[name] = value; + } + + return params; +} + +function getDecoder(charset) { + let lc; + while (true) { + switch (charset) { + case 'utf-8': + case 'utf8': + return decoders.utf8; + case 'latin1': + case 'ascii': // TODO: Make these a separate, strict decoder? + case 'us-ascii': + case 'iso-8859-1': + case 'iso8859-1': + case 'iso88591': + case 'iso_8859-1': + case 'windows-1252': + case 'iso_8859-1:1987': + case 'cp1252': + case 'x-cp1252': + return decoders.latin1; + case 'utf16le': + case 'utf-16le': + case 'ucs2': + case 'ucs-2': + return decoders.utf16le; + case 'base64': + return decoders.base64; + default: + if (lc === undefined) { + lc = true; + charset = charset.toLowerCase(); + continue; + } + return decoders.other.bind(charset); + } + } +} + +const decoders = { + utf8: (data, hint) => { + if (data.length === 0) + return ''; + if (typeof data === 'string') { + // If `data` never had any percent-encoded bytes or never had any that + // were outside of the ASCII range, then we can safely just return the + // input since UTF-8 is ASCII compatible + if (hint < 2) + return data; + + data = Buffer.from(data, 'latin1'); + } + return data.utf8Slice(0, data.length); + }, + + latin1: (data, hint) => { + if (data.length === 0) + return ''; + if (typeof data === 'string') + return data; + return data.latin1Slice(0, data.length); + }, + + utf16le: (data, hint) => { + if (data.length === 0) + return ''; + if (typeof data === 'string') + data = Buffer.from(data, 'latin1'); + return data.ucs2Slice(0, data.length); + }, + + base64: (data, hint) => { + if (data.length === 0) + return ''; + if (typeof data === 'string') + data = Buffer.from(data, 'latin1'); + return data.base64Slice(0, data.length); + }, + + other: (data, hint) => { + if (data.length === 0) + return ''; + if (typeof data === 'string') + data = Buffer.from(data, 'latin1'); + try { + const decoder = new TextDecoder(this); + return decoder.decode(data); + } catch {} + }, +}; + +function convertToUTF8(data, charset, hint) { + const decode = getDecoder(charset); + if (decode) + return decode(data, hint); +} + +function basename(path) { + if (typeof path !== 'string') + return ''; + for (let i = path.length - 1; i >= 0; --i) { + switch (path.charCodeAt(i)) { + case 0x2F: // '/' + case 0x5C: // '\' + path = path.slice(i + 1); + return (path === '..' || path === '.' ? '' : path); + } + } + return (path === '..' || path === '.' ? '' : path); +} + +const TOKEN = [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, + 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +]; + +const QDTEXT = [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, +]; + +const CHARSET = [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, + 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +]; + +const EXTENDED_VALUE = [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, + 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +]; + +/* eslint-disable no-multi-spaces */ +const HEX_VALUES = [ + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1, -1, -1, -1, -1, -1, + -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +]; +/* eslint-enable no-multi-spaces */ + +module.exports = { + basename, + convertToUTF8, + getDecoder, + parseContentType, + parseDisposition, +}; diff --git a/server/api/node_modules/busboy/package.json b/server/api/node_modules/busboy/package.json new file mode 100644 index 0000000..ac2577f --- /dev/null +++ b/server/api/node_modules/busboy/package.json @@ -0,0 +1,22 @@ +{ "name": "busboy", + "version": "1.6.0", + "author": "Brian White ", + "description": "A streaming parser for HTML form data for node.js", + "main": "./lib/index.js", + "dependencies": { + "streamsearch": "^1.1.0" + }, + "devDependencies": { + "@mscdex/eslint-config": "^1.1.0", + "eslint": "^7.32.0" + }, + "scripts": { + "test": "node test/test.js", + "lint": "eslint --cache --report-unused-disable-directives --ext=.js .eslintrc.js lib test bench", + "lint:fix": "npm run lint -- --fix" + }, + "engines": { "node": ">=10.16.0" }, + "keywords": [ "uploads", "forms", "multipart", "form-data" ], + "licenses": [ { "type": "MIT", "url": "http://github.com/mscdex/busboy/raw/master/LICENSE" } ], + "repository": { "type": "git", "url": "http://github.com/mscdex/busboy.git" } +} diff --git a/server/api/node_modules/busboy/test/common.js b/server/api/node_modules/busboy/test/common.js new file mode 100644 index 0000000..fb82ad8 --- /dev/null +++ b/server/api/node_modules/busboy/test/common.js @@ -0,0 +1,109 @@ +'use strict'; + +const assert = require('assert'); +const { inspect } = require('util'); + +const mustCallChecks = []; + +function noop() {} + +function runCallChecks(exitCode) { + if (exitCode !== 0) return; + + const failed = mustCallChecks.filter((context) => { + if ('minimum' in context) { + context.messageSegment = `at least ${context.minimum}`; + return context.actual < context.minimum; + } + context.messageSegment = `exactly ${context.exact}`; + return context.actual !== context.exact; + }); + + failed.forEach((context) => { + console.error('Mismatched %s function calls. Expected %s, actual %d.', + context.name, + context.messageSegment, + context.actual); + console.error(context.stack.split('\n').slice(2).join('\n')); + }); + + if (failed.length) + process.exit(1); +} + +function mustCall(fn, exact) { + return _mustCallInner(fn, exact, 'exact'); +} + +function mustCallAtLeast(fn, minimum) { + return _mustCallInner(fn, minimum, 'minimum'); +} + +function _mustCallInner(fn, criteria = 1, field) { + if (process._exiting) + throw new Error('Cannot use common.mustCall*() in process exit handler'); + + if (typeof fn === 'number') { + criteria = fn; + fn = noop; + } else if (fn === undefined) { + fn = noop; + } + + if (typeof criteria !== 'number') + throw new TypeError(`Invalid ${field} value: ${criteria}`); + + const context = { + [field]: criteria, + actual: 0, + stack: inspect(new Error()), + name: fn.name || '' + }; + + // Add the exit listener only once to avoid listener leak warnings + if (mustCallChecks.length === 0) + process.on('exit', runCallChecks); + + mustCallChecks.push(context); + + function wrapped(...args) { + ++context.actual; + return fn.call(this, ...args); + } + // TODO: remove origFn? + wrapped.origFn = fn; + + return wrapped; +} + +function getCallSite(top) { + const originalStackFormatter = Error.prepareStackTrace; + Error.prepareStackTrace = (err, stack) => + `${stack[0].getFileName()}:${stack[0].getLineNumber()}`; + const err = new Error(); + Error.captureStackTrace(err, top); + // With the V8 Error API, the stack is not formatted until it is accessed + // eslint-disable-next-line no-unused-expressions + err.stack; + Error.prepareStackTrace = originalStackFormatter; + return err.stack; +} + +function mustNotCall(msg) { + const callSite = getCallSite(mustNotCall); + return function mustNotCall(...args) { + args = args.map(inspect).join(', '); + const argsInfo = (args.length > 0 + ? `\ncalled with arguments: ${args}` + : ''); + assert.fail( + `${msg || 'function should not have been called'} at ${callSite}` + + argsInfo); + }; +} + +module.exports = { + mustCall, + mustCallAtLeast, + mustNotCall, +}; diff --git a/server/api/node_modules/busboy/test/test-types-multipart-charsets.js b/server/api/node_modules/busboy/test/test-types-multipart-charsets.js new file mode 100644 index 0000000..ed9c38a --- /dev/null +++ b/server/api/node_modules/busboy/test/test-types-multipart-charsets.js @@ -0,0 +1,94 @@ +'use strict'; + +const assert = require('assert'); +const { inspect } = require('util'); + +const { mustCall } = require(`${__dirname}/common.js`); + +const busboy = require('..'); + +const input = Buffer.from([ + '-----------------------------paZqsnEHRufoShdX6fh0lUhXBP4k', + 'Content-Disposition: form-data; ' + + 'name="upload_file_0"; filename="テスト.dat"', + 'Content-Type: application/octet-stream', + '', + 'A'.repeat(1023), + '-----------------------------paZqsnEHRufoShdX6fh0lUhXBP4k--' +].join('\r\n')); +const boundary = '---------------------------paZqsnEHRufoShdX6fh0lUhXBP4k'; +const expected = [ + { type: 'file', + name: 'upload_file_0', + data: Buffer.from('A'.repeat(1023)), + info: { + filename: 'テスト.dat', + encoding: '7bit', + mimeType: 'application/octet-stream', + }, + limited: false, + }, +]; +const bb = busboy({ + defParamCharset: 'utf8', + headers: { + 'content-type': `multipart/form-data; boundary=${boundary}`, + } +}); +const results = []; + +bb.on('field', (name, val, info) => { + results.push({ type: 'field', name, val, info }); +}); + +bb.on('file', (name, stream, info) => { + const data = []; + let nb = 0; + const file = { + type: 'file', + name, + data: null, + info, + limited: false, + }; + results.push(file); + stream.on('data', (d) => { + data.push(d); + nb += d.length; + }).on('limit', () => { + file.limited = true; + }).on('close', () => { + file.data = Buffer.concat(data, nb); + assert.strictEqual(stream.truncated, file.limited); + }).once('error', (err) => { + file.err = err.message; + }); +}); + +bb.on('error', (err) => { + results.push({ error: err.message }); +}); + +bb.on('partsLimit', () => { + results.push('partsLimit'); +}); + +bb.on('filesLimit', () => { + results.push('filesLimit'); +}); + +bb.on('fieldsLimit', () => { + results.push('fieldsLimit'); +}); + +bb.on('close', mustCall(() => { + assert.deepStrictEqual( + results, + expected, + 'Results mismatch.\n' + + `Parsed: ${inspect(results)}\n` + + `Expected: ${inspect(expected)}` + ); +})); + +bb.end(input); diff --git a/server/api/node_modules/busboy/test/test-types-multipart-stream-pause.js b/server/api/node_modules/busboy/test/test-types-multipart-stream-pause.js new file mode 100644 index 0000000..df7268a --- /dev/null +++ b/server/api/node_modules/busboy/test/test-types-multipart-stream-pause.js @@ -0,0 +1,102 @@ +'use strict'; + +const assert = require('assert'); +const { randomFillSync } = require('crypto'); +const { inspect } = require('util'); + +const busboy = require('..'); + +const { mustCall } = require('./common.js'); + +const BOUNDARY = 'u2KxIV5yF1y+xUspOQCCZopaVgeV6Jxihv35XQJmuTx8X3sh'; + +function formDataSection(key, value) { + return Buffer.from( + `\r\n--${BOUNDARY}` + + `\r\nContent-Disposition: form-data; name="${key}"` + + `\r\n\r\n${value}` + ); +} + +function formDataFile(key, filename, contentType) { + const buf = Buffer.allocUnsafe(100000); + return Buffer.concat([ + Buffer.from(`\r\n--${BOUNDARY}\r\n`), + Buffer.from(`Content-Disposition: form-data; name="${key}"` + + `; filename="${filename}"\r\n`), + Buffer.from(`Content-Type: ${contentType}\r\n\r\n`), + randomFillSync(buf) + ]); +} + +const reqChunks = [ + Buffer.concat([ + formDataFile('file', 'file.bin', 'application/octet-stream'), + formDataSection('foo', 'foo value'), + ]), + formDataSection('bar', 'bar value'), + Buffer.from(`\r\n--${BOUNDARY}--\r\n`) +]; +const bb = busboy({ + headers: { + 'content-type': `multipart/form-data; boundary=${BOUNDARY}` + } +}); +const expected = [ + { type: 'file', + name: 'file', + info: { + filename: 'file.bin', + encoding: '7bit', + mimeType: 'application/octet-stream', + }, + }, + { type: 'field', + name: 'foo', + val: 'foo value', + info: { + nameTruncated: false, + valueTruncated: false, + encoding: '7bit', + mimeType: 'text/plain', + }, + }, + { type: 'field', + name: 'bar', + val: 'bar value', + info: { + nameTruncated: false, + valueTruncated: false, + encoding: '7bit', + mimeType: 'text/plain', + }, + }, +]; +const results = []; + +bb.on('field', (name, val, info) => { + results.push({ type: 'field', name, val, info }); +}); + +bb.on('file', (name, stream, info) => { + results.push({ type: 'file', name, info }); + // Simulate a pipe where the destination is pausing (perhaps due to waiting + // for file system write to finish) + setTimeout(() => { + stream.resume(); + }, 10); +}); + +bb.on('close', mustCall(() => { + assert.deepStrictEqual( + results, + expected, + 'Results mismatch.\n' + + `Parsed: ${inspect(results)}\n` + + `Expected: ${inspect(expected)}` + ); +})); + +for (const chunk of reqChunks) + bb.write(chunk); +bb.end(); diff --git a/server/api/node_modules/busboy/test/test-types-multipart.js b/server/api/node_modules/busboy/test/test-types-multipart.js new file mode 100644 index 0000000..9755642 --- /dev/null +++ b/server/api/node_modules/busboy/test/test-types-multipart.js @@ -0,0 +1,1053 @@ +'use strict'; + +const assert = require('assert'); +const { inspect } = require('util'); + +const busboy = require('..'); + +const active = new Map(); + +const tests = [ + { source: [ + ['-----------------------------paZqsnEHRufoShdX6fh0lUhXBP4k', + 'Content-Disposition: form-data; name="file_name_0"', + '', + 'super alpha file', + '-----------------------------paZqsnEHRufoShdX6fh0lUhXBP4k', + 'Content-Disposition: form-data; name="file_name_1"', + '', + 'super beta file', + '-----------------------------paZqsnEHRufoShdX6fh0lUhXBP4k', + 'Content-Disposition: form-data; ' + + 'name="upload_file_0"; filename="1k_a.dat"', + 'Content-Type: application/octet-stream', + '', + 'A'.repeat(1023), + '-----------------------------paZqsnEHRufoShdX6fh0lUhXBP4k', + 'Content-Disposition: form-data; ' + + 'name="upload_file_1"; filename="1k_b.dat"', + 'Content-Type: application/octet-stream', + '', + 'B'.repeat(1023), + '-----------------------------paZqsnEHRufoShdX6fh0lUhXBP4k--' + ].join('\r\n') + ], + boundary: '---------------------------paZqsnEHRufoShdX6fh0lUhXBP4k', + expected: [ + { type: 'field', + name: 'file_name_0', + val: 'super alpha file', + info: { + nameTruncated: false, + valueTruncated: false, + encoding: '7bit', + mimeType: 'text/plain', + }, + }, + { type: 'field', + name: 'file_name_1', + val: 'super beta file', + info: { + nameTruncated: false, + valueTruncated: false, + encoding: '7bit', + mimeType: 'text/plain', + }, + }, + { type: 'file', + name: 'upload_file_0', + data: Buffer.from('A'.repeat(1023)), + info: { + filename: '1k_a.dat', + encoding: '7bit', + mimeType: 'application/octet-stream', + }, + limited: false, + }, + { type: 'file', + name: 'upload_file_1', + data: Buffer.from('B'.repeat(1023)), + info: { + filename: '1k_b.dat', + encoding: '7bit', + mimeType: 'application/octet-stream', + }, + limited: false, + }, + ], + what: 'Fields and files' + }, + { source: [ + ['------WebKitFormBoundaryTB2MiQ36fnSJlrhY', + 'Content-Disposition: form-data; name="cont"', + '', + 'some random content', + '------WebKitFormBoundaryTB2MiQ36fnSJlrhY', + 'Content-Disposition: form-data; name="pass"', + '', + 'some random pass', + '------WebKitFormBoundaryTB2MiQ36fnSJlrhY', + 'Content-Disposition: form-data; name=bit', + '', + '2', + '------WebKitFormBoundaryTB2MiQ36fnSJlrhY--' + ].join('\r\n') + ], + boundary: '----WebKitFormBoundaryTB2MiQ36fnSJlrhY', + expected: [ + { type: 'field', + name: 'cont', + val: 'some random content', + info: { + nameTruncated: false, + valueTruncated: false, + encoding: '7bit', + mimeType: 'text/plain', + }, + }, + { type: 'field', + name: 'pass', + val: 'some random pass', + info: { + nameTruncated: false, + valueTruncated: false, + encoding: '7bit', + mimeType: 'text/plain', + }, + }, + { type: 'field', + name: 'bit', + val: '2', + info: { + nameTruncated: false, + valueTruncated: false, + encoding: '7bit', + mimeType: 'text/plain', + }, + }, + ], + what: 'Fields only' + }, + { source: [ + '' + ], + boundary: '----WebKitFormBoundaryTB2MiQ36fnSJlrhY', + expected: [ + { error: 'Unexpected end of form' }, + ], + what: 'No fields and no files' + }, + { source: [ + ['-----------------------------paZqsnEHRufoShdX6fh0lUhXBP4k', + 'Content-Disposition: form-data; name="file_name_0"', + '', + 'super alpha file', + '-----------------------------paZqsnEHRufoShdX6fh0lUhXBP4k', + 'Content-Disposition: form-data; ' + + 'name="upload_file_0"; filename="1k_a.dat"', + 'Content-Type: application/octet-stream', + '', + 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', + '-----------------------------paZqsnEHRufoShdX6fh0lUhXBP4k--' + ].join('\r\n') + ], + boundary: '---------------------------paZqsnEHRufoShdX6fh0lUhXBP4k', + limits: { + fileSize: 13, + fieldSize: 5 + }, + expected: [ + { type: 'field', + name: 'file_name_0', + val: 'super', + info: { + nameTruncated: false, + valueTruncated: true, + encoding: '7bit', + mimeType: 'text/plain', + }, + }, + { type: 'file', + name: 'upload_file_0', + data: Buffer.from('ABCDEFGHIJKLM'), + info: { + filename: '1k_a.dat', + encoding: '7bit', + mimeType: 'application/octet-stream', + }, + limited: true, + }, + ], + what: 'Fields and files (limits)' + }, + { source: [ + ['-----------------------------paZqsnEHRufoShdX6fh0lUhXBP4k', + 'Content-Disposition: form-data; name="file_name_0"', + '', + 'super alpha file', + '-----------------------------paZqsnEHRufoShdX6fh0lUhXBP4k', + 'Content-Disposition: form-data; ' + + 'name="upload_file_0"; filename="1k_a.dat"', + 'Content-Type: application/octet-stream', + '', + 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', + '-----------------------------paZqsnEHRufoShdX6fh0lUhXBP4k--' + ].join('\r\n') + ], + boundary: '---------------------------paZqsnEHRufoShdX6fh0lUhXBP4k', + limits: { + files: 0 + }, + expected: [ + { type: 'field', + name: 'file_name_0', + val: 'super alpha file', + info: { + nameTruncated: false, + valueTruncated: false, + encoding: '7bit', + mimeType: 'text/plain', + }, + }, + 'filesLimit', + ], + what: 'Fields and files (limits: 0 files)' + }, + { source: [ + ['-----------------------------paZqsnEHRufoShdX6fh0lUhXBP4k', + 'Content-Disposition: form-data; name="file_name_0"', + '', + 'super alpha file', + '-----------------------------paZqsnEHRufoShdX6fh0lUhXBP4k', + 'Content-Disposition: form-data; name="file_name_1"', + '', + 'super beta file', + '-----------------------------paZqsnEHRufoShdX6fh0lUhXBP4k', + 'Content-Disposition: form-data; ' + + 'name="upload_file_0"; filename="1k_a.dat"', + 'Content-Type: application/octet-stream', + '', + 'A'.repeat(1023), + '-----------------------------paZqsnEHRufoShdX6fh0lUhXBP4k', + 'Content-Disposition: form-data; ' + + 'name="upload_file_1"; filename="1k_b.dat"', + 'Content-Type: application/octet-stream', + '', + 'B'.repeat(1023), + '-----------------------------paZqsnEHRufoShdX6fh0lUhXBP4k--' + ].join('\r\n') + ], + boundary: '---------------------------paZqsnEHRufoShdX6fh0lUhXBP4k', + expected: [ + { type: 'field', + name: 'file_name_0', + val: 'super alpha file', + info: { + nameTruncated: false, + valueTruncated: false, + encoding: '7bit', + mimeType: 'text/plain', + }, + }, + { type: 'field', + name: 'file_name_1', + val: 'super beta file', + info: { + nameTruncated: false, + valueTruncated: false, + encoding: '7bit', + mimeType: 'text/plain', + }, + }, + ], + events: ['field'], + what: 'Fields and (ignored) files' + }, + { source: [ + ['-----------------------------paZqsnEHRufoShdX6fh0lUhXBP4k', + 'Content-Disposition: form-data; ' + + 'name="upload_file_0"; filename="/tmp/1k_a.dat"', + 'Content-Type: application/octet-stream', + '', + 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', + '-----------------------------paZqsnEHRufoShdX6fh0lUhXBP4k', + 'Content-Disposition: form-data; ' + + 'name="upload_file_1"; filename="C:\\files\\1k_b.dat"', + 'Content-Type: application/octet-stream', + '', + 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', + '-----------------------------paZqsnEHRufoShdX6fh0lUhXBP4k', + 'Content-Disposition: form-data; ' + + 'name="upload_file_2"; filename="relative/1k_c.dat"', + 'Content-Type: application/octet-stream', + '', + 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', + '-----------------------------paZqsnEHRufoShdX6fh0lUhXBP4k--' + ].join('\r\n') + ], + boundary: '---------------------------paZqsnEHRufoShdX6fh0lUhXBP4k', + expected: [ + { type: 'file', + name: 'upload_file_0', + data: Buffer.from('ABCDEFGHIJKLMNOPQRSTUVWXYZ'), + info: { + filename: '1k_a.dat', + encoding: '7bit', + mimeType: 'application/octet-stream', + }, + limited: false, + }, + { type: 'file', + name: 'upload_file_1', + data: Buffer.from('ABCDEFGHIJKLMNOPQRSTUVWXYZ'), + info: { + filename: '1k_b.dat', + encoding: '7bit', + mimeType: 'application/octet-stream', + }, + limited: false, + }, + { type: 'file', + name: 'upload_file_2', + data: Buffer.from('ABCDEFGHIJKLMNOPQRSTUVWXYZ'), + info: { + filename: '1k_c.dat', + encoding: '7bit', + mimeType: 'application/octet-stream', + }, + limited: false, + }, + ], + what: 'Files with filenames containing paths' + }, + { source: [ + ['-----------------------------paZqsnEHRufoShdX6fh0lUhXBP4k', + 'Content-Disposition: form-data; ' + + 'name="upload_file_0"; filename="/absolute/1k_a.dat"', + 'Content-Type: application/octet-stream', + '', + 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', + '-----------------------------paZqsnEHRufoShdX6fh0lUhXBP4k', + 'Content-Disposition: form-data; ' + + 'name="upload_file_1"; filename="C:\\absolute\\1k_b.dat"', + 'Content-Type: application/octet-stream', + '', + 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', + '-----------------------------paZqsnEHRufoShdX6fh0lUhXBP4k', + 'Content-Disposition: form-data; ' + + 'name="upload_file_2"; filename="relative/1k_c.dat"', + 'Content-Type: application/octet-stream', + '', + 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', + '-----------------------------paZqsnEHRufoShdX6fh0lUhXBP4k--' + ].join('\r\n') + ], + boundary: '---------------------------paZqsnEHRufoShdX6fh0lUhXBP4k', + preservePath: true, + expected: [ + { type: 'file', + name: 'upload_file_0', + data: Buffer.from('ABCDEFGHIJKLMNOPQRSTUVWXYZ'), + info: { + filename: '/absolute/1k_a.dat', + encoding: '7bit', + mimeType: 'application/octet-stream', + }, + limited: false, + }, + { type: 'file', + name: 'upload_file_1', + data: Buffer.from('ABCDEFGHIJKLMNOPQRSTUVWXYZ'), + info: { + filename: 'C:\\absolute\\1k_b.dat', + encoding: '7bit', + mimeType: 'application/octet-stream', + }, + limited: false, + }, + { type: 'file', + name: 'upload_file_2', + data: Buffer.from('ABCDEFGHIJKLMNOPQRSTUVWXYZ'), + info: { + filename: 'relative/1k_c.dat', + encoding: '7bit', + mimeType: 'application/octet-stream', + }, + limited: false, + }, + ], + what: 'Paths to be preserved through the preservePath option' + }, + { source: [ + ['------WebKitFormBoundaryTB2MiQ36fnSJlrhY', + 'Content-Disposition: form-data; name="cont"', + 'Content-Type: ', + '', + 'some random content', + '------WebKitFormBoundaryTB2MiQ36fnSJlrhY', + 'Content-Disposition: ', + '', + 'some random pass', + '------WebKitFormBoundaryTB2MiQ36fnSJlrhY--' + ].join('\r\n') + ], + boundary: '----WebKitFormBoundaryTB2MiQ36fnSJlrhY', + expected: [ + { type: 'field', + name: 'cont', + val: 'some random content', + info: { + nameTruncated: false, + valueTruncated: false, + encoding: '7bit', + mimeType: 'text/plain', + }, + }, + ], + what: 'Empty content-type and empty content-disposition' + }, + { source: [ + ['-----------------------------paZqsnEHRufoShdX6fh0lUhXBP4k', + 'Content-Disposition: form-data; ' + + 'name="file"; filename*=utf-8\'\'n%C3%A4me.txt', + 'Content-Type: application/octet-stream', + '', + 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', + '-----------------------------paZqsnEHRufoShdX6fh0lUhXBP4k--' + ].join('\r\n') + ], + boundary: '---------------------------paZqsnEHRufoShdX6fh0lUhXBP4k', + expected: [ + { type: 'file', + name: 'file', + data: Buffer.from('ABCDEFGHIJKLMNOPQRSTUVWXYZ'), + info: { + filename: 'näme.txt', + encoding: '7bit', + mimeType: 'application/octet-stream', + }, + limited: false, + }, + ], + what: 'Unicode filenames' + }, + { source: [ + ['--asdasdasdasd\r\n', + 'Content-Type: text/plain\r\n', + 'Content-Disposition: form-data; name="foo"\r\n', + '\r\n', + 'asd\r\n', + '--asdasdasdasd--' + ].join(':)') + ], + boundary: 'asdasdasdasd', + expected: [ + { error: 'Malformed part header' }, + { error: 'Unexpected end of form' }, + ], + what: 'Stopped mid-header' + }, + { source: [ + ['------WebKitFormBoundaryTB2MiQ36fnSJlrhY', + 'Content-Disposition: form-data; name="cont"', + 'Content-Type: application/json', + '', + '{}', + '------WebKitFormBoundaryTB2MiQ36fnSJlrhY--', + ].join('\r\n') + ], + boundary: '----WebKitFormBoundaryTB2MiQ36fnSJlrhY', + expected: [ + { type: 'field', + name: 'cont', + val: '{}', + info: { + nameTruncated: false, + valueTruncated: false, + encoding: '7bit', + mimeType: 'application/json', + }, + }, + ], + what: 'content-type for fields' + }, + { source: [ + '------WebKitFormBoundaryTB2MiQ36fnSJlrhY--', + ], + boundary: '----WebKitFormBoundaryTB2MiQ36fnSJlrhY', + expected: [], + what: 'empty form' + }, + { source: [ + ['-----------------------------paZqsnEHRufoShdX6fh0lUhXBP4k', + 'Content-Disposition: form-data; ' + + 'name=upload_file_0; filename="1k_a.dat"', + 'Content-Type: application/octet-stream', + 'Content-Transfer-Encoding: binary', + '', + '', + ].join('\r\n') + ], + boundary: '---------------------------paZqsnEHRufoShdX6fh0lUhXBP4k', + expected: [ + { type: 'file', + name: 'upload_file_0', + data: Buffer.alloc(0), + info: { + filename: '1k_a.dat', + encoding: 'binary', + mimeType: 'application/octet-stream', + }, + limited: false, + err: 'Unexpected end of form', + }, + { error: 'Unexpected end of form' }, + ], + what: 'Stopped mid-file #1' + }, + { source: [ + ['-----------------------------paZqsnEHRufoShdX6fh0lUhXBP4k', + 'Content-Disposition: form-data; ' + + 'name=upload_file_0; filename="1k_a.dat"', + 'Content-Type: application/octet-stream', + '', + 'a', + ].join('\r\n') + ], + boundary: '---------------------------paZqsnEHRufoShdX6fh0lUhXBP4k', + expected: [ + { type: 'file', + name: 'upload_file_0', + data: Buffer.from('a'), + info: { + filename: '1k_a.dat', + encoding: '7bit', + mimeType: 'application/octet-stream', + }, + limited: false, + err: 'Unexpected end of form', + }, + { error: 'Unexpected end of form' }, + ], + what: 'Stopped mid-file #2' + }, + { source: [ + ['-----------------------------paZqsnEHRufoShdX6fh0lUhXBP4k', + 'Content-Disposition: form-data; ' + + 'name="upload_file_0"; filename="notes.txt"', + 'Content-Type: text/plain; charset=utf8', + '', + 'a', + '-----------------------------paZqsnEHRufoShdX6fh0lUhXBP4k--', + ].join('\r\n') + ], + boundary: '---------------------------paZqsnEHRufoShdX6fh0lUhXBP4k', + expected: [ + { type: 'file', + name: 'upload_file_0', + data: Buffer.from('a'), + info: { + filename: 'notes.txt', + encoding: '7bit', + mimeType: 'text/plain', + }, + limited: false, + }, + ], + what: 'Text file with charset' + }, + { source: [ + ['-----------------------------paZqsnEHRufoShdX6fh0lUhXBP4k', + 'Content-Disposition: form-data; ' + + 'name="upload_file_0"; filename="notes.txt"', + 'Content-Type: ', + ' text/plain; charset=utf8', + '', + 'a', + '-----------------------------paZqsnEHRufoShdX6fh0lUhXBP4k--', + ].join('\r\n') + ], + boundary: '---------------------------paZqsnEHRufoShdX6fh0lUhXBP4k', + expected: [ + { type: 'file', + name: 'upload_file_0', + data: Buffer.from('a'), + info: { + filename: 'notes.txt', + encoding: '7bit', + mimeType: 'text/plain', + }, + limited: false, + }, + ], + what: 'Folded header value' + }, + { source: [ + ['-----------------------------paZqsnEHRufoShdX6fh0lUhXBP4k', + 'Content-Type: text/plain; charset=utf8', + '', + 'a', + '-----------------------------paZqsnEHRufoShdX6fh0lUhXBP4k--', + ].join('\r\n') + ], + boundary: '---------------------------paZqsnEHRufoShdX6fh0lUhXBP4k', + expected: [], + what: 'No Content-Disposition' + }, + { source: [ + ['-----------------------------paZqsnEHRufoShdX6fh0lUhXBP4k', + 'Content-Disposition: form-data; name="file_name_0"', + '', + 'a'.repeat(64 * 1024), + '-----------------------------paZqsnEHRufoShdX6fh0lUhXBP4k', + 'Content-Disposition: form-data; ' + + 'name="upload_file_0"; filename="notes.txt"', + 'Content-Type: ', + ' text/plain; charset=utf8', + '', + 'bc', + '-----------------------------paZqsnEHRufoShdX6fh0lUhXBP4k--', + ].join('\r\n') + ], + boundary: '---------------------------paZqsnEHRufoShdX6fh0lUhXBP4k', + limits: { + fieldSize: Infinity, + }, + expected: [ + { type: 'file', + name: 'upload_file_0', + data: Buffer.from('bc'), + info: { + filename: 'notes.txt', + encoding: '7bit', + mimeType: 'text/plain', + }, + limited: false, + }, + ], + events: [ 'file' ], + what: 'Skip field parts if no listener' + }, + { source: [ + ['-----------------------------paZqsnEHRufoShdX6fh0lUhXBP4k', + 'Content-Disposition: form-data; name="file_name_0"', + '', + 'a', + '-----------------------------paZqsnEHRufoShdX6fh0lUhXBP4k', + 'Content-Disposition: form-data; ' + + 'name="upload_file_0"; filename="notes.txt"', + 'Content-Type: ', + ' text/plain; charset=utf8', + '', + 'bc', + '-----------------------------paZqsnEHRufoShdX6fh0lUhXBP4k--', + ].join('\r\n') + ], + boundary: '---------------------------paZqsnEHRufoShdX6fh0lUhXBP4k', + limits: { + parts: 1, + }, + expected: [ + { type: 'field', + name: 'file_name_0', + val: 'a', + info: { + nameTruncated: false, + valueTruncated: false, + encoding: '7bit', + mimeType: 'text/plain', + }, + }, + 'partsLimit', + ], + what: 'Parts limit' + }, + { source: [ + ['-----------------------------paZqsnEHRufoShdX6fh0lUhXBP4k', + 'Content-Disposition: form-data; name="file_name_0"', + '', + 'a', + '-----------------------------paZqsnEHRufoShdX6fh0lUhXBP4k', + 'Content-Disposition: form-data; name="file_name_1"', + '', + 'b', + '-----------------------------paZqsnEHRufoShdX6fh0lUhXBP4k--', + ].join('\r\n') + ], + boundary: '---------------------------paZqsnEHRufoShdX6fh0lUhXBP4k', + limits: { + fields: 1, + }, + expected: [ + { type: 'field', + name: 'file_name_0', + val: 'a', + info: { + nameTruncated: false, + valueTruncated: false, + encoding: '7bit', + mimeType: 'text/plain', + }, + }, + 'fieldsLimit', + ], + what: 'Fields limit' + }, + { source: [ + ['-----------------------------paZqsnEHRufoShdX6fh0lUhXBP4k', + 'Content-Disposition: form-data; ' + + 'name="upload_file_0"; filename="notes.txt"', + 'Content-Type: text/plain; charset=utf8', + '', + 'ab', + '-----------------------------paZqsnEHRufoShdX6fh0lUhXBP4k', + 'Content-Disposition: form-data; ' + + 'name="upload_file_1"; filename="notes2.txt"', + 'Content-Type: text/plain; charset=utf8', + '', + 'cd', + '-----------------------------paZqsnEHRufoShdX6fh0lUhXBP4k--', + ].join('\r\n') + ], + boundary: '---------------------------paZqsnEHRufoShdX6fh0lUhXBP4k', + limits: { + files: 1, + }, + expected: [ + { type: 'file', + name: 'upload_file_0', + data: Buffer.from('ab'), + info: { + filename: 'notes.txt', + encoding: '7bit', + mimeType: 'text/plain', + }, + limited: false, + }, + 'filesLimit', + ], + what: 'Files limit' + }, + { source: [ + ['-----------------------------paZqsnEHRufoShdX6fh0lUhXBP4k', + 'Content-Disposition: form-data; ' + + `name="upload_file_0"; filename="${'a'.repeat(64 * 1024)}.txt"`, + 'Content-Type: text/plain; charset=utf8', + '', + 'ab', + '-----------------------------paZqsnEHRufoShdX6fh0lUhXBP4k', + 'Content-Disposition: form-data; ' + + 'name="upload_file_1"; filename="notes2.txt"', + 'Content-Type: text/plain; charset=utf8', + '', + 'cd', + '-----------------------------paZqsnEHRufoShdX6fh0lUhXBP4k--', + ].join('\r\n') + ], + boundary: '---------------------------paZqsnEHRufoShdX6fh0lUhXBP4k', + expected: [ + { error: 'Malformed part header' }, + { type: 'file', + name: 'upload_file_1', + data: Buffer.from('cd'), + info: { + filename: 'notes2.txt', + encoding: '7bit', + mimeType: 'text/plain', + }, + limited: false, + }, + ], + what: 'Oversized part header' + }, + { source: [ + ['-----------------------------paZqsnEHRufoShdX6fh0lUhXBP4k', + 'Content-Disposition: form-data; ' + + 'name="upload_file_0"; filename="notes.txt"', + 'Content-Type: text/plain; charset=utf8', + '', + 'a'.repeat(31) + '\r', + ].join('\r\n'), + 'b'.repeat(40), + '\r\n-----------------------------paZqsnEHRufoShdX6fh0lUhXBP4k--', + ], + boundary: '---------------------------paZqsnEHRufoShdX6fh0lUhXBP4k', + fileHwm: 32, + expected: [ + { type: 'file', + name: 'upload_file_0', + data: Buffer.from('a'.repeat(31) + '\r' + 'b'.repeat(40)), + info: { + filename: 'notes.txt', + encoding: '7bit', + mimeType: 'text/plain', + }, + limited: false, + }, + ], + what: 'Lookbehind data should not stall file streams' + }, + { source: [ + ['-----------------------------paZqsnEHRufoShdX6fh0lUhXBP4k', + 'Content-Disposition: form-data; ' + + `name="upload_file_0"; filename="${'a'.repeat(8 * 1024)}.txt"`, + 'Content-Type: text/plain; charset=utf8', + '', + 'ab', + '-----------------------------paZqsnEHRufoShdX6fh0lUhXBP4k', + 'Content-Disposition: form-data; ' + + `name="upload_file_1"; filename="${'b'.repeat(8 * 1024)}.txt"`, + 'Content-Type: text/plain; charset=utf8', + '', + 'cd', + '-----------------------------paZqsnEHRufoShdX6fh0lUhXBP4k', + 'Content-Disposition: form-data; ' + + `name="upload_file_2"; filename="${'c'.repeat(8 * 1024)}.txt"`, + 'Content-Type: text/plain; charset=utf8', + '', + 'ef', + '-----------------------------paZqsnEHRufoShdX6fh0lUhXBP4k--', + ].join('\r\n') + ], + boundary: '---------------------------paZqsnEHRufoShdX6fh0lUhXBP4k', + expected: [ + { type: 'file', + name: 'upload_file_0', + data: Buffer.from('ab'), + info: { + filename: `${'a'.repeat(8 * 1024)}.txt`, + encoding: '7bit', + mimeType: 'text/plain', + }, + limited: false, + }, + { type: 'file', + name: 'upload_file_1', + data: Buffer.from('cd'), + info: { + filename: `${'b'.repeat(8 * 1024)}.txt`, + encoding: '7bit', + mimeType: 'text/plain', + }, + limited: false, + }, + { type: 'file', + name: 'upload_file_2', + data: Buffer.from('ef'), + info: { + filename: `${'c'.repeat(8 * 1024)}.txt`, + encoding: '7bit', + mimeType: 'text/plain', + }, + limited: false, + }, + ], + what: 'Header size limit should be per part' + }, + { source: [ + '\r\n--d1bf46b3-aa33-4061-b28d-6c5ced8b08ee\r\n', + 'Content-Type: application/gzip\r\n' + + 'Content-Encoding: gzip\r\n' + + 'Content-Disposition: form-data; name=batch-1; filename=batch-1' + + '\r\n\r\n', + '\r\n--d1bf46b3-aa33-4061-b28d-6c5ced8b08ee--', + ], + boundary: 'd1bf46b3-aa33-4061-b28d-6c5ced8b08ee', + expected: [ + { type: 'file', + name: 'batch-1', + data: Buffer.alloc(0), + info: { + filename: 'batch-1', + encoding: '7bit', + mimeType: 'application/gzip', + }, + limited: false, + }, + ], + what: 'Empty part' + }, +]; + +for (const test of tests) { + active.set(test, 1); + + const { what, boundary, events, limits, preservePath, fileHwm } = test; + const bb = busboy({ + fileHwm, + limits, + preservePath, + headers: { + 'content-type': `multipart/form-data; boundary=${boundary}`, + } + }); + const results = []; + + if (events === undefined || events.includes('field')) { + bb.on('field', (name, val, info) => { + results.push({ type: 'field', name, val, info }); + }); + } + + if (events === undefined || events.includes('file')) { + bb.on('file', (name, stream, info) => { + const data = []; + let nb = 0; + const file = { + type: 'file', + name, + data: null, + info, + limited: false, + }; + results.push(file); + stream.on('data', (d) => { + data.push(d); + nb += d.length; + }).on('limit', () => { + file.limited = true; + }).on('close', () => { + file.data = Buffer.concat(data, nb); + assert.strictEqual(stream.truncated, file.limited); + }).once('error', (err) => { + file.err = err.message; + }); + }); + } + + bb.on('error', (err) => { + results.push({ error: err.message }); + }); + + bb.on('partsLimit', () => { + results.push('partsLimit'); + }); + + bb.on('filesLimit', () => { + results.push('filesLimit'); + }); + + bb.on('fieldsLimit', () => { + results.push('fieldsLimit'); + }); + + bb.on('close', () => { + active.delete(test); + + assert.deepStrictEqual( + results, + test.expected, + `[${what}] Results mismatch.\n` + + `Parsed: ${inspect(results)}\n` + + `Expected: ${inspect(test.expected)}` + ); + }); + + for (const src of test.source) { + const buf = (typeof src === 'string' ? Buffer.from(src, 'utf8') : src); + bb.write(buf); + } + bb.end(); +} + +// Byte-by-byte versions +for (let test of tests) { + test = { ...test }; + test.what += ' (byte-by-byte)'; + active.set(test, 1); + + const { what, boundary, events, limits, preservePath, fileHwm } = test; + const bb = busboy({ + fileHwm, + limits, + preservePath, + headers: { + 'content-type': `multipart/form-data; boundary=${boundary}`, + } + }); + const results = []; + + if (events === undefined || events.includes('field')) { + bb.on('field', (name, val, info) => { + results.push({ type: 'field', name, val, info }); + }); + } + + if (events === undefined || events.includes('file')) { + bb.on('file', (name, stream, info) => { + const data = []; + let nb = 0; + const file = { + type: 'file', + name, + data: null, + info, + limited: false, + }; + results.push(file); + stream.on('data', (d) => { + data.push(d); + nb += d.length; + }).on('limit', () => { + file.limited = true; + }).on('close', () => { + file.data = Buffer.concat(data, nb); + assert.strictEqual(stream.truncated, file.limited); + }).once('error', (err) => { + file.err = err.message; + }); + }); + } + + bb.on('error', (err) => { + results.push({ error: err.message }); + }); + + bb.on('partsLimit', () => { + results.push('partsLimit'); + }); + + bb.on('filesLimit', () => { + results.push('filesLimit'); + }); + + bb.on('fieldsLimit', () => { + results.push('fieldsLimit'); + }); + + bb.on('close', () => { + active.delete(test); + + assert.deepStrictEqual( + results, + test.expected, + `[${what}] Results mismatch.\n` + + `Parsed: ${inspect(results)}\n` + + `Expected: ${inspect(test.expected)}` + ); + }); + + for (const src of test.source) { + const buf = (typeof src === 'string' ? Buffer.from(src, 'utf8') : src); + for (let i = 0; i < buf.length; ++i) + bb.write(buf.slice(i, i + 1)); + } + bb.end(); +} + +{ + let exception = false; + process.once('uncaughtException', (ex) => { + exception = true; + throw ex; + }); + process.on('exit', () => { + if (exception || active.size === 0) + return; + process.exitCode = 1; + console.error('=========================='); + console.error(`${active.size} test(s) did not finish:`); + console.error('=========================='); + console.error(Array.from(active.keys()).map((v) => v.what).join('\n')); + }); +} diff --git a/server/api/node_modules/busboy/test/test-types-urlencoded.js b/server/api/node_modules/busboy/test/test-types-urlencoded.js new file mode 100644 index 0000000..c35962b --- /dev/null +++ b/server/api/node_modules/busboy/test/test-types-urlencoded.js @@ -0,0 +1,488 @@ +'use strict'; + +const assert = require('assert'); +const { transcode } = require('buffer'); +const { inspect } = require('util'); + +const busboy = require('..'); + +const active = new Map(); + +const tests = [ + { source: ['foo'], + expected: [ + ['foo', + '', + { nameTruncated: false, + valueTruncated: false, + encoding: 'utf-8', + mimeType: 'text/plain' }, + ], + ], + what: 'Unassigned value' + }, + { source: ['foo=bar'], + expected: [ + ['foo', + 'bar', + { nameTruncated: false, + valueTruncated: false, + encoding: 'utf-8', + mimeType: 'text/plain' }, + ], + ], + what: 'Assigned value' + }, + { source: ['foo&bar=baz'], + expected: [ + ['foo', + '', + { nameTruncated: false, + valueTruncated: false, + encoding: 'utf-8', + mimeType: 'text/plain' }, + ], + ['bar', + 'baz', + { nameTruncated: false, + valueTruncated: false, + encoding: 'utf-8', + mimeType: 'text/plain' }, + ], + ], + what: 'Unassigned and assigned value' + }, + { source: ['foo=bar&baz'], + expected: [ + ['foo', + 'bar', + { nameTruncated: false, + valueTruncated: false, + encoding: 'utf-8', + mimeType: 'text/plain' }, + ], + ['baz', + '', + { nameTruncated: false, + valueTruncated: false, + encoding: 'utf-8', + mimeType: 'text/plain' }, + ], + ], + what: 'Assigned and unassigned value' + }, + { source: ['foo=bar&baz=bla'], + expected: [ + ['foo', + 'bar', + { nameTruncated: false, + valueTruncated: false, + encoding: 'utf-8', + mimeType: 'text/plain' }, + ], + ['baz', + 'bla', + { nameTruncated: false, + valueTruncated: false, + encoding: 'utf-8', + mimeType: 'text/plain' }, + ], + ], + what: 'Two assigned values' + }, + { source: ['foo&bar'], + expected: [ + ['foo', + '', + { nameTruncated: false, + valueTruncated: false, + encoding: 'utf-8', + mimeType: 'text/plain' }, + ], + ['bar', + '', + { nameTruncated: false, + valueTruncated: false, + encoding: 'utf-8', + mimeType: 'text/plain' }, + ], + ], + what: 'Two unassigned values' + }, + { source: ['foo&bar&'], + expected: [ + ['foo', + '', + { nameTruncated: false, + valueTruncated: false, + encoding: 'utf-8', + mimeType: 'text/plain' }, + ], + ['bar', + '', + { nameTruncated: false, + valueTruncated: false, + encoding: 'utf-8', + mimeType: 'text/plain' }, + ], + ], + what: 'Two unassigned values and ampersand' + }, + { source: ['foo+1=bar+baz%2Bquux'], + expected: [ + ['foo 1', + 'bar baz+quux', + { nameTruncated: false, + valueTruncated: false, + encoding: 'utf-8', + mimeType: 'text/plain' }, + ], + ], + what: 'Assigned key and value with (plus) space' + }, + { source: ['foo=bar%20baz%21'], + expected: [ + ['foo', + 'bar baz!', + { nameTruncated: false, + valueTruncated: false, + encoding: 'utf-8', + mimeType: 'text/plain' }, + ], + ], + what: 'Assigned value with encoded bytes' + }, + { source: ['foo%20bar=baz%20bla%21'], + expected: [ + ['foo bar', + 'baz bla!', + { nameTruncated: false, + valueTruncated: false, + encoding: 'utf-8', + mimeType: 'text/plain' }, + ], + ], + what: 'Assigned value with encoded bytes #2' + }, + { source: ['foo=bar%20baz%21&num=1000'], + expected: [ + ['foo', + 'bar baz!', + { nameTruncated: false, + valueTruncated: false, + encoding: 'utf-8', + mimeType: 'text/plain' }, + ], + ['num', + '1000', + { nameTruncated: false, + valueTruncated: false, + encoding: 'utf-8', + mimeType: 'text/plain' }, + ], + ], + what: 'Two assigned values, one with encoded bytes' + }, + { source: [ + Array.from(transcode(Buffer.from('foo'), 'utf8', 'utf16le')).map( + (n) => `%${n.toString(16).padStart(2, '0')}` + ).join(''), + '=', + Array.from(transcode(Buffer.from('😀!'), 'utf8', 'utf16le')).map( + (n) => `%${n.toString(16).padStart(2, '0')}` + ).join(''), + ], + expected: [ + ['foo', + '😀!', + { nameTruncated: false, + valueTruncated: false, + encoding: 'UTF-16LE', + mimeType: 'text/plain' }, + ], + ], + charset: 'UTF-16LE', + what: 'Encoded value with multi-byte charset' + }, + { source: [ + 'foo=<', + Array.from(transcode(Buffer.from('©:^þ'), 'utf8', 'latin1')).map( + (n) => `%${n.toString(16).padStart(2, '0')}` + ).join(''), + ], + expected: [ + ['foo', + '<©:^þ', + { nameTruncated: false, + valueTruncated: false, + encoding: 'ISO-8859-1', + mimeType: 'text/plain' }, + ], + ], + charset: 'ISO-8859-1', + what: 'Encoded value with single-byte, ASCII-compatible, non-UTF8 charset' + }, + { source: ['foo=bar&baz=bla'], + expected: [], + what: 'Limits: zero fields', + limits: { fields: 0 } + }, + { source: ['foo=bar&baz=bla'], + expected: [ + ['foo', + 'bar', + { nameTruncated: false, + valueTruncated: false, + encoding: 'utf-8', + mimeType: 'text/plain' }, + ], + ], + what: 'Limits: one field', + limits: { fields: 1 } + }, + { source: ['foo=bar&baz=bla'], + expected: [ + ['foo', + 'bar', + { nameTruncated: false, + valueTruncated: false, + encoding: 'utf-8', + mimeType: 'text/plain' }, + ], + ['baz', + 'bla', + { nameTruncated: false, + valueTruncated: false, + encoding: 'utf-8', + mimeType: 'text/plain' }, + ], + ], + what: 'Limits: field part lengths match limits', + limits: { fieldNameSize: 3, fieldSize: 3 } + }, + { source: ['foo=bar&baz=bla'], + expected: [ + ['fo', + 'bar', + { nameTruncated: true, + valueTruncated: false, + encoding: 'utf-8', + mimeType: 'text/plain' }, + ], + ['ba', + 'bla', + { nameTruncated: true, + valueTruncated: false, + encoding: 'utf-8', + mimeType: 'text/plain' }, + ], + ], + what: 'Limits: truncated field name', + limits: { fieldNameSize: 2 } + }, + { source: ['foo=bar&baz=bla'], + expected: [ + ['foo', + 'ba', + { nameTruncated: false, + valueTruncated: true, + encoding: 'utf-8', + mimeType: 'text/plain' }, + ], + ['baz', + 'bl', + { nameTruncated: false, + valueTruncated: true, + encoding: 'utf-8', + mimeType: 'text/plain' }, + ], + ], + what: 'Limits: truncated field value', + limits: { fieldSize: 2 } + }, + { source: ['foo=bar&baz=bla'], + expected: [ + ['fo', + 'ba', + { nameTruncated: true, + valueTruncated: true, + encoding: 'utf-8', + mimeType: 'text/plain' }, + ], + ['ba', + 'bl', + { nameTruncated: true, + valueTruncated: true, + encoding: 'utf-8', + mimeType: 'text/plain' }, + ], + ], + what: 'Limits: truncated field name and value', + limits: { fieldNameSize: 2, fieldSize: 2 } + }, + { source: ['foo=bar&baz=bla'], + expected: [ + ['fo', + '', + { nameTruncated: true, + valueTruncated: true, + encoding: 'utf-8', + mimeType: 'text/plain' }, + ], + ['ba', + '', + { nameTruncated: true, + valueTruncated: true, + encoding: 'utf-8', + mimeType: 'text/plain' }, + ], + ], + what: 'Limits: truncated field name and zero value limit', + limits: { fieldNameSize: 2, fieldSize: 0 } + }, + { source: ['foo=bar&baz=bla'], + expected: [ + ['', + '', + { nameTruncated: true, + valueTruncated: true, + encoding: 'utf-8', + mimeType: 'text/plain' }, + ], + ['', + '', + { nameTruncated: true, + valueTruncated: true, + encoding: 'utf-8', + mimeType: 'text/plain' }, + ], + ], + what: 'Limits: truncated zero field name and zero value limit', + limits: { fieldNameSize: 0, fieldSize: 0 } + }, + { source: ['&'], + expected: [], + what: 'Ampersand' + }, + { source: ['&&&&&'], + expected: [], + what: 'Many ampersands' + }, + { source: ['='], + expected: [ + ['', + '', + { nameTruncated: false, + valueTruncated: false, + encoding: 'utf-8', + mimeType: 'text/plain' }, + ], + ], + what: 'Assigned value, empty name and value' + }, + { source: [''], + expected: [], + what: 'Nothing' + }, +]; + +for (const test of tests) { + active.set(test, 1); + + const { what } = test; + const charset = test.charset || 'utf-8'; + const bb = busboy({ + limits: test.limits, + headers: { + 'content-type': `application/x-www-form-urlencoded; charset=${charset}`, + }, + }); + const results = []; + + bb.on('field', (key, val, info) => { + results.push([key, val, info]); + }); + + bb.on('file', () => { + throw new Error(`[${what}] Unexpected file`); + }); + + bb.on('close', () => { + active.delete(test); + + assert.deepStrictEqual( + results, + test.expected, + `[${what}] Results mismatch.\n` + + `Parsed: ${inspect(results)}\n` + + `Expected: ${inspect(test.expected)}` + ); + }); + + for (const src of test.source) { + const buf = (typeof src === 'string' ? Buffer.from(src, 'utf8') : src); + bb.write(buf); + } + bb.end(); +} + +// Byte-by-byte versions +for (let test of tests) { + test = { ...test }; + test.what += ' (byte-by-byte)'; + active.set(test, 1); + + const { what } = test; + const charset = test.charset || 'utf-8'; + const bb = busboy({ + limits: test.limits, + headers: { + 'content-type': `application/x-www-form-urlencoded; charset="${charset}"`, + }, + }); + const results = []; + + bb.on('field', (key, val, info) => { + results.push([key, val, info]); + }); + + bb.on('file', () => { + throw new Error(`[${what}] Unexpected file`); + }); + + bb.on('close', () => { + active.delete(test); + + assert.deepStrictEqual( + results, + test.expected, + `[${what}] Results mismatch.\n` + + `Parsed: ${inspect(results)}\n` + + `Expected: ${inspect(test.expected)}` + ); + }); + + for (const src of test.source) { + const buf = (typeof src === 'string' ? Buffer.from(src, 'utf8') : src); + for (let i = 0; i < buf.length; ++i) + bb.write(buf.slice(i, i + 1)); + } + bb.end(); +} + +{ + let exception = false; + process.once('uncaughtException', (ex) => { + exception = true; + throw ex; + }); + process.on('exit', () => { + if (exception || active.size === 0) + return; + process.exitCode = 1; + console.error('=========================='); + console.error(`${active.size} test(s) did not finish:`); + console.error('=========================='); + console.error(Array.from(active.keys()).map((v) => v.what).join('\n')); + }); +} diff --git a/server/api/node_modules/busboy/test/test.js b/server/api/node_modules/busboy/test/test.js new file mode 100644 index 0000000..d0380f2 --- /dev/null +++ b/server/api/node_modules/busboy/test/test.js @@ -0,0 +1,20 @@ +'use strict'; + +const { spawnSync } = require('child_process'); +const { readdirSync } = require('fs'); +const { join } = require('path'); + +const files = readdirSync(__dirname).sort(); +for (const filename of files) { + if (filename.startsWith('test-')) { + const path = join(__dirname, filename); + console.log(`> Running ${filename} ...`); + const result = spawnSync(`${process.argv0} ${path}`, { + shell: true, + stdio: 'inherit', + windowsHide: true + }); + if (result.status !== 0) + process.exitCode = 1; + } +} diff --git a/server/api/node_modules/bytes/History.md b/server/api/node_modules/bytes/History.md new file mode 100644 index 0000000..d60ce0e --- /dev/null +++ b/server/api/node_modules/bytes/History.md @@ -0,0 +1,97 @@ +3.1.2 / 2022-01-27 +================== + + * Fix return value for un-parsable strings + +3.1.1 / 2021-11-15 +================== + + * Fix "thousandsSeparator" incorrecting formatting fractional part + +3.1.0 / 2019-01-22 +================== + + * Add petabyte (`pb`) support + +3.0.0 / 2017-08-31 +================== + + * Change "kB" to "KB" in format output + * Remove support for Node.js 0.6 + * Remove support for ComponentJS + +2.5.0 / 2017-03-24 +================== + + * Add option "unit" + +2.4.0 / 2016-06-01 +================== + + * Add option "unitSeparator" + +2.3.0 / 2016-02-15 +================== + + * Drop partial bytes on all parsed units + * Fix non-finite numbers to `.format` to return `null` + * Fix parsing byte string that looks like hex + * perf: hoist regular expressions + +2.2.0 / 2015-11-13 +================== + + * add option "decimalPlaces" + * add option "fixedDecimals" + +2.1.0 / 2015-05-21 +================== + + * add `.format` export + * add `.parse` export + +2.0.2 / 2015-05-20 +================== + + * remove map recreation + * remove unnecessary object construction + +2.0.1 / 2015-05-07 +================== + + * fix browserify require + * remove node.extend dependency + +2.0.0 / 2015-04-12 +================== + + * add option "case" + * add option "thousandsSeparator" + * return "null" on invalid parse input + * support proper round-trip: bytes(bytes(num)) === num + * units no longer case sensitive when parsing + +1.0.0 / 2014-05-05 +================== + + * add negative support. fixes #6 + +0.3.0 / 2014-03-19 +================== + + * added terabyte support + +0.2.1 / 2013-04-01 +================== + + * add .component + +0.2.0 / 2012-10-28 +================== + + * bytes(200).should.eql('200b') + +0.1.0 / 2012-07-04 +================== + + * add bytes to string conversion [yields] diff --git a/server/api/node_modules/bytes/LICENSE b/server/api/node_modules/bytes/LICENSE new file mode 100644 index 0000000..63e95a9 --- /dev/null +++ b/server/api/node_modules/bytes/LICENSE @@ -0,0 +1,23 @@ +(The MIT License) + +Copyright (c) 2012-2014 TJ Holowaychuk +Copyright (c) 2015 Jed Watson + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/server/api/node_modules/bytes/Readme.md b/server/api/node_modules/bytes/Readme.md new file mode 100644 index 0000000..5790e23 --- /dev/null +++ b/server/api/node_modules/bytes/Readme.md @@ -0,0 +1,152 @@ +# Bytes utility + +[![NPM Version][npm-image]][npm-url] +[![NPM Downloads][downloads-image]][downloads-url] +[![Build Status][ci-image]][ci-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +Utility to parse a string bytes (ex: `1TB`) to bytes (`1099511627776`) and vice-versa. + +## Installation + +This is a [Node.js](https://nodejs.org/en/) module available through the +[npm registry](https://www.npmjs.com/). Installation is done using the +[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): + +```bash +$ npm install bytes +``` + +## Usage + +```js +var bytes = require('bytes'); +``` + +#### bytes(number|string value, [options]): number|string|null + +Default export function. Delegates to either `bytes.format` or `bytes.parse` based on the type of `value`. + +**Arguments** + +| Name | Type | Description | +|---------|----------|--------------------| +| value | `number`|`string` | Number value to format or string value to parse | +| options | `Object` | Conversion options for `format` | + +**Returns** + +| Name | Type | Description | +|---------|------------------|-------------------------------------------------| +| results | `string`|`number`|`null` | Return null upon error. Numeric value in bytes, or string value otherwise. | + +**Example** + +```js +bytes(1024); +// output: '1KB' + +bytes('1KB'); +// output: 1024 +``` + +#### bytes.format(number value, [options]): string|null + +Format the given value in bytes into a string. If the value is negative, it is kept as such. If it is a float, it is + rounded. + +**Arguments** + +| Name | Type | Description | +|---------|----------|--------------------| +| value | `number` | Value in bytes | +| options | `Object` | Conversion options | + +**Options** + +| Property | Type | Description | +|-------------------|--------|-----------------------------------------------------------------------------------------| +| decimalPlaces | `number`|`null` | Maximum number of decimal places to include in output. Default value to `2`. | +| fixedDecimals | `boolean`|`null` | Whether to always display the maximum number of decimal places. Default value to `false` | +| thousandsSeparator | `string`|`null` | Example of values: `' '`, `','` and `'.'`... Default value to `''`. | +| unit | `string`|`null` | The unit in which the result will be returned (B/KB/MB/GB/TB). Default value to `''` (which means auto detect). | +| unitSeparator | `string`|`null` | Separator to use between number and unit. Default value to `''`. | + +**Returns** + +| Name | Type | Description | +|---------|------------------|-------------------------------------------------| +| results | `string`|`null` | Return null upon error. String value otherwise. | + +**Example** + +```js +bytes.format(1024); +// output: '1KB' + +bytes.format(1000); +// output: '1000B' + +bytes.format(1000, {thousandsSeparator: ' '}); +// output: '1 000B' + +bytes.format(1024 * 1.7, {decimalPlaces: 0}); +// output: '2KB' + +bytes.format(1024, {unitSeparator: ' '}); +// output: '1 KB' +``` + +#### bytes.parse(string|number value): number|null + +Parse the string value into an integer in bytes. If no unit is given, or `value` +is a number, it is assumed the value is in bytes. + +Supported units and abbreviations are as follows and are case-insensitive: + + * `b` for bytes + * `kb` for kilobytes + * `mb` for megabytes + * `gb` for gigabytes + * `tb` for terabytes + * `pb` for petabytes + +The units are in powers of two, not ten. This means 1kb = 1024b according to this parser. + +**Arguments** + +| Name | Type | Description | +|---------------|--------|--------------------| +| value | `string`|`number` | String to parse, or number in bytes. | + +**Returns** + +| Name | Type | Description | +|---------|-------------|-------------------------| +| results | `number`|`null` | Return null upon error. Value in bytes otherwise. | + +**Example** + +```js +bytes.parse('1KB'); +// output: 1024 + +bytes.parse('1024'); +// output: 1024 + +bytes.parse(1024); +// output: 1024 +``` + +## License + +[MIT](LICENSE) + +[ci-image]: https://badgen.net/github/checks/visionmedia/bytes.js/master?label=ci +[ci-url]: https://github.com/visionmedia/bytes.js/actions?query=workflow%3Aci +[coveralls-image]: https://badgen.net/coveralls/c/github/visionmedia/bytes.js/master +[coveralls-url]: https://coveralls.io/r/visionmedia/bytes.js?branch=master +[downloads-image]: https://badgen.net/npm/dm/bytes +[downloads-url]: https://npmjs.org/package/bytes +[npm-image]: https://badgen.net/npm/v/bytes +[npm-url]: https://npmjs.org/package/bytes diff --git a/server/api/node_modules/bytes/index.js b/server/api/node_modules/bytes/index.js new file mode 100644 index 0000000..6f2d0f8 --- /dev/null +++ b/server/api/node_modules/bytes/index.js @@ -0,0 +1,170 @@ +/*! + * bytes + * Copyright(c) 2012-2014 TJ Holowaychuk + * Copyright(c) 2015 Jed Watson + * MIT Licensed + */ + +'use strict'; + +/** + * Module exports. + * @public + */ + +module.exports = bytes; +module.exports.format = format; +module.exports.parse = parse; + +/** + * Module variables. + * @private + */ + +var formatThousandsRegExp = /\B(?=(\d{3})+(?!\d))/g; + +var formatDecimalsRegExp = /(?:\.0*|(\.[^0]+)0+)$/; + +var map = { + b: 1, + kb: 1 << 10, + mb: 1 << 20, + gb: 1 << 30, + tb: Math.pow(1024, 4), + pb: Math.pow(1024, 5), +}; + +var parseRegExp = /^((-|\+)?(\d+(?:\.\d+)?)) *(kb|mb|gb|tb|pb)$/i; + +/** + * Convert the given value in bytes into a string or parse to string to an integer in bytes. + * + * @param {string|number} value + * @param {{ + * case: [string], + * decimalPlaces: [number] + * fixedDecimals: [boolean] + * thousandsSeparator: [string] + * unitSeparator: [string] + * }} [options] bytes options. + * + * @returns {string|number|null} + */ + +function bytes(value, options) { + if (typeof value === 'string') { + return parse(value); + } + + if (typeof value === 'number') { + return format(value, options); + } + + return null; +} + +/** + * Format the given value in bytes into a string. + * + * If the value is negative, it is kept as such. If it is a float, + * it is rounded. + * + * @param {number} value + * @param {object} [options] + * @param {number} [options.decimalPlaces=2] + * @param {number} [options.fixedDecimals=false] + * @param {string} [options.thousandsSeparator=] + * @param {string} [options.unit=] + * @param {string} [options.unitSeparator=] + * + * @returns {string|null} + * @public + */ + +function format(value, options) { + if (!Number.isFinite(value)) { + return null; + } + + var mag = Math.abs(value); + var thousandsSeparator = (options && options.thousandsSeparator) || ''; + var unitSeparator = (options && options.unitSeparator) || ''; + var decimalPlaces = (options && options.decimalPlaces !== undefined) ? options.decimalPlaces : 2; + var fixedDecimals = Boolean(options && options.fixedDecimals); + var unit = (options && options.unit) || ''; + + if (!unit || !map[unit.toLowerCase()]) { + if (mag >= map.pb) { + unit = 'PB'; + } else if (mag >= map.tb) { + unit = 'TB'; + } else if (mag >= map.gb) { + unit = 'GB'; + } else if (mag >= map.mb) { + unit = 'MB'; + } else if (mag >= map.kb) { + unit = 'KB'; + } else { + unit = 'B'; + } + } + + var val = value / map[unit.toLowerCase()]; + var str = val.toFixed(decimalPlaces); + + if (!fixedDecimals) { + str = str.replace(formatDecimalsRegExp, '$1'); + } + + if (thousandsSeparator) { + str = str.split('.').map(function (s, i) { + return i === 0 + ? s.replace(formatThousandsRegExp, thousandsSeparator) + : s + }).join('.'); + } + + return str + unitSeparator + unit; +} + +/** + * Parse the string value into an integer in bytes. + * + * If no unit is given, it is assumed the value is in bytes. + * + * @param {number|string} val + * + * @returns {number|null} + * @public + */ + +function parse(val) { + if (typeof val === 'number' && !isNaN(val)) { + return val; + } + + if (typeof val !== 'string') { + return null; + } + + // Test if the string passed is valid + var results = parseRegExp.exec(val); + var floatValue; + var unit = 'b'; + + if (!results) { + // Nothing could be extracted from the given string + floatValue = parseInt(val, 10); + unit = 'b' + } else { + // Retrieve the value and the unit + floatValue = parseFloat(results[1]); + unit = results[4].toLowerCase(); + } + + if (isNaN(floatValue)) { + return null; + } + + return Math.floor(map[unit] * floatValue); +} diff --git a/server/api/node_modules/bytes/package.json b/server/api/node_modules/bytes/package.json new file mode 100644 index 0000000..f2b6a8b --- /dev/null +++ b/server/api/node_modules/bytes/package.json @@ -0,0 +1,42 @@ +{ + "name": "bytes", + "description": "Utility to parse a string bytes to bytes and vice-versa", + "version": "3.1.2", + "author": "TJ Holowaychuk (http://tjholowaychuk.com)", + "contributors": [ + "Jed Watson ", + "Théo FIDRY " + ], + "license": "MIT", + "keywords": [ + "byte", + "bytes", + "utility", + "parse", + "parser", + "convert", + "converter" + ], + "repository": "visionmedia/bytes.js", + "devDependencies": { + "eslint": "7.32.0", + "eslint-plugin-markdown": "2.2.1", + "mocha": "9.2.0", + "nyc": "15.1.0" + }, + "files": [ + "History.md", + "LICENSE", + "Readme.md", + "index.js" + ], + "engines": { + "node": ">= 0.8" + }, + "scripts": { + "lint": "eslint .", + "test": "mocha --check-leaks --reporter spec", + "test-ci": "nyc --reporter=lcov --reporter=text npm test", + "test-cov": "nyc --reporter=html --reporter=text npm test" + } +} diff --git a/server/api/node_modules/call-bind-apply-helpers/.eslintrc b/server/api/node_modules/call-bind-apply-helpers/.eslintrc new file mode 100644 index 0000000..201e859 --- /dev/null +++ b/server/api/node_modules/call-bind-apply-helpers/.eslintrc @@ -0,0 +1,17 @@ +{ + "root": true, + + "extends": "@ljharb", + + "rules": { + "func-name-matching": 0, + "id-length": 0, + "new-cap": [2, { + "capIsNewExceptions": [ + "GetIntrinsic", + ], + }], + "no-extra-parens": 0, + "no-magic-numbers": 0, + }, +} diff --git a/server/api/node_modules/call-bind-apply-helpers/.github/FUNDING.yml b/server/api/node_modules/call-bind-apply-helpers/.github/FUNDING.yml new file mode 100644 index 0000000..0011e9d --- /dev/null +++ b/server/api/node_modules/call-bind-apply-helpers/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: [ljharb] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: npm/call-bind-apply-helpers +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/server/api/node_modules/call-bind-apply-helpers/.nycrc b/server/api/node_modules/call-bind-apply-helpers/.nycrc new file mode 100644 index 0000000..bdd626c --- /dev/null +++ b/server/api/node_modules/call-bind-apply-helpers/.nycrc @@ -0,0 +1,9 @@ +{ + "all": true, + "check-coverage": false, + "reporter": ["text-summary", "text", "html", "json"], + "exclude": [ + "coverage", + "test" + ] +} diff --git a/server/api/node_modules/call-bind-apply-helpers/CHANGELOG.md b/server/api/node_modules/call-bind-apply-helpers/CHANGELOG.md new file mode 100644 index 0000000..2484942 --- /dev/null +++ b/server/api/node_modules/call-bind-apply-helpers/CHANGELOG.md @@ -0,0 +1,30 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [v1.0.2](https://github.com/ljharb/call-bind-apply-helpers/compare/v1.0.1...v1.0.2) - 2025-02-12 + +### Commits + +- [types] improve inferred types [`e6f9586`](https://github.com/ljharb/call-bind-apply-helpers/commit/e6f95860a3c72879cb861a858cdfb8138fbedec1) +- [Dev Deps] update `@arethetypeswrong/cli`, `@ljharb/tsconfig`, `@types/tape`, `es-value-fixtures`, `for-each`, `has-strict-mode`, `object-inspect` [`e43d540`](https://github.com/ljharb/call-bind-apply-helpers/commit/e43d5409f97543bfbb11f345d47d8ce4e066d8c1) + +## [v1.0.1](https://github.com/ljharb/call-bind-apply-helpers/compare/v1.0.0...v1.0.1) - 2024-12-08 + +### Commits + +- [types] `reflectApply`: fix types [`4efc396`](https://github.com/ljharb/call-bind-apply-helpers/commit/4efc3965351a4f02cc55e836fa391d3d11ef2ef8) +- [Fix] `reflectApply`: oops, Reflect is not a function [`83cc739`](https://github.com/ljharb/call-bind-apply-helpers/commit/83cc7395de6b79b7730bdf092f1436f0b1263c75) +- [Dev Deps] update `@arethetypeswrong/cli` [`80bd5d3`](https://github.com/ljharb/call-bind-apply-helpers/commit/80bd5d3ae58b4f6b6995ce439dd5a1bcb178a940) + +## v1.0.0 - 2024-12-05 + +### Commits + +- Initial implementation, tests, readme [`7879629`](https://github.com/ljharb/call-bind-apply-helpers/commit/78796290f9b7430c9934d6f33d94ae9bc89fce04) +- Initial commit [`3f1dc16`](https://github.com/ljharb/call-bind-apply-helpers/commit/3f1dc164afc43285631b114a5f9dd9137b2b952f) +- npm init [`081df04`](https://github.com/ljharb/call-bind-apply-helpers/commit/081df048c312fcee400922026f6e97281200a603) +- Only apps should have lockfiles [`5b9ca0f`](https://github.com/ljharb/call-bind-apply-helpers/commit/5b9ca0fe8101ebfaf309c549caac4e0a017ed930) diff --git a/server/api/node_modules/call-bind-apply-helpers/LICENSE b/server/api/node_modules/call-bind-apply-helpers/LICENSE new file mode 100644 index 0000000..f82f389 --- /dev/null +++ b/server/api/node_modules/call-bind-apply-helpers/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 Jordan Harband + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/server/api/node_modules/call-bind-apply-helpers/README.md b/server/api/node_modules/call-bind-apply-helpers/README.md new file mode 100644 index 0000000..8fc0dae --- /dev/null +++ b/server/api/node_modules/call-bind-apply-helpers/README.md @@ -0,0 +1,62 @@ +# call-bind-apply-helpers [![Version Badge][npm-version-svg]][package-url] + +[![github actions][actions-image]][actions-url] +[![coverage][codecov-image]][codecov-url] +[![dependency status][deps-svg]][deps-url] +[![dev dependency status][dev-deps-svg]][dev-deps-url] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +[![npm badge][npm-badge-png]][package-url] + +Helper functions around Function call/apply/bind, for use in `call-bind`. + +The only packages that should likely ever use this package directly are `call-bind` and `get-intrinsic`. +Please use `call-bind` unless you have a very good reason not to. + +## Getting started + +```sh +npm install --save call-bind-apply-helpers +``` + +## Usage/Examples + +```js +const assert = require('assert'); +const callBindBasic = require('call-bind-apply-helpers'); + +function f(a, b) { + assert.equal(this, 1); + assert.equal(a, 2); + assert.equal(b, 3); + assert.equal(arguments.length, 2); +} + +const fBound = callBindBasic([f, 1]); + +delete Function.prototype.call; +delete Function.prototype.bind; + +fBound(2, 3); +``` + +## Tests + +Clone the repo, `npm install`, and run `npm test` + +[package-url]: https://npmjs.org/package/call-bind-apply-helpers +[npm-version-svg]: https://versionbadg.es/ljharb/call-bind-apply-helpers.svg +[deps-svg]: https://david-dm.org/ljharb/call-bind-apply-helpers.svg +[deps-url]: https://david-dm.org/ljharb/call-bind-apply-helpers +[dev-deps-svg]: https://david-dm.org/ljharb/call-bind-apply-helpers/dev-status.svg +[dev-deps-url]: https://david-dm.org/ljharb/call-bind-apply-helpers#info=devDependencies +[npm-badge-png]: https://nodei.co/npm/call-bind-apply-helpers.png?downloads=true&stars=true +[license-image]: https://img.shields.io/npm/l/call-bind-apply-helpers.svg +[license-url]: LICENSE +[downloads-image]: https://img.shields.io/npm/dm/call-bind-apply-helpers.svg +[downloads-url]: https://npm-stat.com/charts.html?package=call-bind-apply-helpers +[codecov-image]: https://codecov.io/gh/ljharb/call-bind-apply-helpers/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/ljharb/call-bind-apply-helpers/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/ljharb/call-bind-apply-helpers +[actions-url]: https://github.com/ljharb/call-bind-apply-helpers/actions diff --git a/server/api/node_modules/call-bind-apply-helpers/actualApply.d.ts b/server/api/node_modules/call-bind-apply-helpers/actualApply.d.ts new file mode 100644 index 0000000..b87286a --- /dev/null +++ b/server/api/node_modules/call-bind-apply-helpers/actualApply.d.ts @@ -0,0 +1 @@ +export = Reflect.apply; \ No newline at end of file diff --git a/server/api/node_modules/call-bind-apply-helpers/actualApply.js b/server/api/node_modules/call-bind-apply-helpers/actualApply.js new file mode 100644 index 0000000..ffa5135 --- /dev/null +++ b/server/api/node_modules/call-bind-apply-helpers/actualApply.js @@ -0,0 +1,10 @@ +'use strict'; + +var bind = require('function-bind'); + +var $apply = require('./functionApply'); +var $call = require('./functionCall'); +var $reflectApply = require('./reflectApply'); + +/** @type {import('./actualApply')} */ +module.exports = $reflectApply || bind.call($call, $apply); diff --git a/server/api/node_modules/call-bind-apply-helpers/applyBind.d.ts b/server/api/node_modules/call-bind-apply-helpers/applyBind.d.ts new file mode 100644 index 0000000..d176c1a --- /dev/null +++ b/server/api/node_modules/call-bind-apply-helpers/applyBind.d.ts @@ -0,0 +1,19 @@ +import actualApply from './actualApply'; + +type TupleSplitHead = T['length'] extends N + ? T + : T extends [...infer R, any] + ? TupleSplitHead + : never + +type TupleSplitTail = O['length'] extends N + ? T + : T extends [infer F, ...infer R] + ? TupleSplitTail<[...R], N, [...O, F]> + : never + +type TupleSplit = [TupleSplitHead, TupleSplitTail] + +declare function applyBind(...args: TupleSplit, 2>[1]): ReturnType; + +export = applyBind; \ No newline at end of file diff --git a/server/api/node_modules/call-bind-apply-helpers/applyBind.js b/server/api/node_modules/call-bind-apply-helpers/applyBind.js new file mode 100644 index 0000000..d2b7723 --- /dev/null +++ b/server/api/node_modules/call-bind-apply-helpers/applyBind.js @@ -0,0 +1,10 @@ +'use strict'; + +var bind = require('function-bind'); +var $apply = require('./functionApply'); +var actualApply = require('./actualApply'); + +/** @type {import('./applyBind')} */ +module.exports = function applyBind() { + return actualApply(bind, $apply, arguments); +}; diff --git a/server/api/node_modules/call-bind-apply-helpers/functionApply.d.ts b/server/api/node_modules/call-bind-apply-helpers/functionApply.d.ts new file mode 100644 index 0000000..1f6e11b --- /dev/null +++ b/server/api/node_modules/call-bind-apply-helpers/functionApply.d.ts @@ -0,0 +1 @@ +export = Function.prototype.apply; \ No newline at end of file diff --git a/server/api/node_modules/call-bind-apply-helpers/functionApply.js b/server/api/node_modules/call-bind-apply-helpers/functionApply.js new file mode 100644 index 0000000..c71df9c --- /dev/null +++ b/server/api/node_modules/call-bind-apply-helpers/functionApply.js @@ -0,0 +1,4 @@ +'use strict'; + +/** @type {import('./functionApply')} */ +module.exports = Function.prototype.apply; diff --git a/server/api/node_modules/call-bind-apply-helpers/functionCall.d.ts b/server/api/node_modules/call-bind-apply-helpers/functionCall.d.ts new file mode 100644 index 0000000..15e93df --- /dev/null +++ b/server/api/node_modules/call-bind-apply-helpers/functionCall.d.ts @@ -0,0 +1 @@ +export = Function.prototype.call; \ No newline at end of file diff --git a/server/api/node_modules/call-bind-apply-helpers/functionCall.js b/server/api/node_modules/call-bind-apply-helpers/functionCall.js new file mode 100644 index 0000000..7a8d873 --- /dev/null +++ b/server/api/node_modules/call-bind-apply-helpers/functionCall.js @@ -0,0 +1,4 @@ +'use strict'; + +/** @type {import('./functionCall')} */ +module.exports = Function.prototype.call; diff --git a/server/api/node_modules/call-bind-apply-helpers/index.d.ts b/server/api/node_modules/call-bind-apply-helpers/index.d.ts new file mode 100644 index 0000000..541516b --- /dev/null +++ b/server/api/node_modules/call-bind-apply-helpers/index.d.ts @@ -0,0 +1,64 @@ +type RemoveFromTuple< + Tuple extends readonly unknown[], + RemoveCount extends number, + Index extends 1[] = [] +> = Index["length"] extends RemoveCount + ? Tuple + : Tuple extends [infer First, ...infer Rest] + ? RemoveFromTuple + : Tuple; + +type ConcatTuples< + Prefix extends readonly unknown[], + Suffix extends readonly unknown[] +> = [...Prefix, ...Suffix]; + +type ExtractFunctionParams = T extends (this: infer TThis, ...args: infer P extends readonly unknown[]) => infer R + ? { thisArg: TThis; params: P; returnType: R } + : never; + +type BindFunction< + T extends (this: any, ...args: any[]) => any, + TThis, + TBoundArgs extends readonly unknown[], + ReceiverBound extends boolean +> = ExtractFunctionParams extends { + thisArg: infer OrigThis; + params: infer P extends readonly unknown[]; + returnType: infer R; +} + ? ReceiverBound extends true + ? (...args: RemoveFromTuple>) => R extends [OrigThis, ...infer Rest] + ? [TThis, ...Rest] // Replace `this` with `thisArg` + : R + : >>( + thisArg: U, + ...args: RemainingArgs + ) => R extends [OrigThis, ...infer Rest] + ? [U, ...ConcatTuples] // Preserve bound args in return type + : R + : never; + +declare function callBind< + const T extends (this: any, ...args: any[]) => any, + Extracted extends ExtractFunctionParams, + const TBoundArgs extends Partial & readonly unknown[], + const TThis extends Extracted["thisArg"] +>( + args: [fn: T, thisArg: TThis, ...boundArgs: TBoundArgs] +): BindFunction; + +declare function callBind< + const T extends (this: any, ...args: any[]) => any, + Extracted extends ExtractFunctionParams, + const TBoundArgs extends Partial & readonly unknown[] +>( + args: [fn: T, ...boundArgs: TBoundArgs] +): BindFunction; + +declare function callBind( + args: [fn: Exclude, ...rest: TArgs] +): never; + +// export as namespace callBind; +export = callBind; diff --git a/server/api/node_modules/call-bind-apply-helpers/index.js b/server/api/node_modules/call-bind-apply-helpers/index.js new file mode 100644 index 0000000..2f6dab4 --- /dev/null +++ b/server/api/node_modules/call-bind-apply-helpers/index.js @@ -0,0 +1,15 @@ +'use strict'; + +var bind = require('function-bind'); +var $TypeError = require('es-errors/type'); + +var $call = require('./functionCall'); +var $actualApply = require('./actualApply'); + +/** @type {(args: [Function, thisArg?: unknown, ...args: unknown[]]) => Function} TODO FIXME, find a way to use import('.') */ +module.exports = function callBindBasic(args) { + if (args.length < 1 || typeof args[0] !== 'function') { + throw new $TypeError('a function is required'); + } + return $actualApply(bind, $call, args); +}; diff --git a/server/api/node_modules/call-bind-apply-helpers/package.json b/server/api/node_modules/call-bind-apply-helpers/package.json new file mode 100644 index 0000000..923b8be --- /dev/null +++ b/server/api/node_modules/call-bind-apply-helpers/package.json @@ -0,0 +1,85 @@ +{ + "name": "call-bind-apply-helpers", + "version": "1.0.2", + "description": "Helper functions around Function call/apply/bind, for use in `call-bind`", + "main": "index.js", + "exports": { + ".": "./index.js", + "./actualApply": "./actualApply.js", + "./applyBind": "./applyBind.js", + "./functionApply": "./functionApply.js", + "./functionCall": "./functionCall.js", + "./reflectApply": "./reflectApply.js", + "./package.json": "./package.json" + }, + "scripts": { + "prepack": "npmignore --auto --commentLines=auto", + "prepublish": "not-in-publish || npm run prepublishOnly", + "prepublishOnly": "safe-publish-latest", + "prelint": "evalmd README.md", + "lint": "eslint --ext=.js,.mjs .", + "postlint": "tsc -p . && attw -P", + "pretest": "npm run lint", + "tests-only": "nyc tape 'test/**/*.js'", + "test": "npm run tests-only", + "posttest": "npx npm@'>=10.2' audit --production", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ljharb/call-bind-apply-helpers.git" + }, + "author": "Jordan Harband ", + "license": "MIT", + "bugs": { + "url": "https://github.com/ljharb/call-bind-apply-helpers/issues" + }, + "homepage": "https://github.com/ljharb/call-bind-apply-helpers#readme", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "devDependencies": { + "@arethetypeswrong/cli": "^0.17.3", + "@ljharb/eslint-config": "^21.1.1", + "@ljharb/tsconfig": "^0.2.3", + "@types/for-each": "^0.3.3", + "@types/function-bind": "^1.1.10", + "@types/object-inspect": "^1.13.0", + "@types/tape": "^5.8.1", + "auto-changelog": "^2.5.0", + "encoding": "^0.1.13", + "es-value-fixtures": "^1.7.1", + "eslint": "=8.8.0", + "evalmd": "^0.0.19", + "for-each": "^0.3.5", + "has-strict-mode": "^1.1.0", + "in-publish": "^2.0.1", + "npmignore": "^0.3.1", + "nyc": "^10.3.2", + "object-inspect": "^1.13.4", + "safe-publish-latest": "^2.0.0", + "tape": "^5.9.0", + "typescript": "next" + }, + "testling": { + "files": "test/index.js" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "publishConfig": { + "ignore": [ + ".github/workflows" + ] + }, + "engines": { + "node": ">= 0.4" + } +} diff --git a/server/api/node_modules/call-bind-apply-helpers/reflectApply.d.ts b/server/api/node_modules/call-bind-apply-helpers/reflectApply.d.ts new file mode 100644 index 0000000..6b2ae76 --- /dev/null +++ b/server/api/node_modules/call-bind-apply-helpers/reflectApply.d.ts @@ -0,0 +1,3 @@ +declare const reflectApply: false | typeof Reflect.apply; + +export = reflectApply; diff --git a/server/api/node_modules/call-bind-apply-helpers/reflectApply.js b/server/api/node_modules/call-bind-apply-helpers/reflectApply.js new file mode 100644 index 0000000..3d03caa --- /dev/null +++ b/server/api/node_modules/call-bind-apply-helpers/reflectApply.js @@ -0,0 +1,4 @@ +'use strict'; + +/** @type {import('./reflectApply')} */ +module.exports = typeof Reflect !== 'undefined' && Reflect && Reflect.apply; diff --git a/server/api/node_modules/call-bind-apply-helpers/test/index.js b/server/api/node_modules/call-bind-apply-helpers/test/index.js new file mode 100644 index 0000000..1cdc89e --- /dev/null +++ b/server/api/node_modules/call-bind-apply-helpers/test/index.js @@ -0,0 +1,63 @@ +'use strict'; + +var callBind = require('../'); +var hasStrictMode = require('has-strict-mode')(); +var forEach = require('for-each'); +var inspect = require('object-inspect'); +var v = require('es-value-fixtures'); + +var test = require('tape'); + +test('callBindBasic', function (t) { + forEach(v.nonFunctions, function (nonFunction) { + t['throws']( + // @ts-expect-error + function () { callBind([nonFunction]); }, + TypeError, + inspect(nonFunction) + ' is not a function' + ); + }); + + var sentinel = { sentinel: true }; + /** @type {(this: T, a: A, b: B) => [T | undefined, A, B]} */ + var func = function (a, b) { + // eslint-disable-next-line no-invalid-this + return [!hasStrictMode && this === global ? undefined : this, a, b]; + }; + t.equal(func.length, 2, 'original function length is 2'); + + /** type {(thisArg: unknown, a: number, b: number) => [unknown, number, number]} */ + var bound = callBind([func]); + /** type {((a: number, b: number) => [typeof sentinel, typeof a, typeof b])} */ + var boundR = callBind([func, sentinel]); + /** type {((b: number) => [typeof sentinel, number, typeof b])} */ + var boundArg = callBind([func, sentinel, /** @type {const} */ (1)]); + + // @ts-expect-error + t.deepEqual(bound(), [undefined, undefined, undefined], 'bound func with no args'); + + // @ts-expect-error + t.deepEqual(func(), [undefined, undefined, undefined], 'unbound func with too few args'); + // @ts-expect-error + t.deepEqual(bound(1, 2), [hasStrictMode ? 1 : Object(1), 2, undefined], 'bound func too few args'); + // @ts-expect-error + t.deepEqual(boundR(), [sentinel, undefined, undefined], 'bound func with receiver, with too few args'); + // @ts-expect-error + t.deepEqual(boundArg(), [sentinel, 1, undefined], 'bound func with receiver and arg, with too few args'); + + t.deepEqual(func(1, 2), [undefined, 1, 2], 'unbound func with right args'); + t.deepEqual(bound(1, 2, 3), [hasStrictMode ? 1 : Object(1), 2, 3], 'bound func with right args'); + t.deepEqual(boundR(1, 2), [sentinel, 1, 2], 'bound func with receiver, with right args'); + t.deepEqual(boundArg(2), [sentinel, 1, 2], 'bound func with receiver and arg, with right arg'); + + // @ts-expect-error + t.deepEqual(func(1, 2, 3), [undefined, 1, 2], 'unbound func with too many args'); + // @ts-expect-error + t.deepEqual(bound(1, 2, 3, 4), [hasStrictMode ? 1 : Object(1), 2, 3], 'bound func with too many args'); + // @ts-expect-error + t.deepEqual(boundR(1, 2, 3), [sentinel, 1, 2], 'bound func with receiver, with too many args'); + // @ts-expect-error + t.deepEqual(boundArg(2, 3), [sentinel, 1, 2], 'bound func with receiver and arg, with too many args'); + + t.end(); +}); diff --git a/server/api/node_modules/call-bind-apply-helpers/tsconfig.json b/server/api/node_modules/call-bind-apply-helpers/tsconfig.json new file mode 100644 index 0000000..aef9993 --- /dev/null +++ b/server/api/node_modules/call-bind-apply-helpers/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "@ljharb/tsconfig", + "compilerOptions": { + "target": "es2021", + }, + "exclude": [ + "coverage", + ], +} \ No newline at end of file diff --git a/server/api/node_modules/call-bound/.eslintrc b/server/api/node_modules/call-bound/.eslintrc new file mode 100644 index 0000000..2612ed8 --- /dev/null +++ b/server/api/node_modules/call-bound/.eslintrc @@ -0,0 +1,13 @@ +{ + "root": true, + + "extends": "@ljharb", + + "rules": { + "new-cap": [2, { + "capIsNewExceptions": [ + "GetIntrinsic", + ], + }], + }, +} diff --git a/server/api/node_modules/call-bound/.github/FUNDING.yml b/server/api/node_modules/call-bound/.github/FUNDING.yml new file mode 100644 index 0000000..2a2a135 --- /dev/null +++ b/server/api/node_modules/call-bound/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: [ljharb] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: npm/call-bound +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/server/api/node_modules/call-bound/.nycrc b/server/api/node_modules/call-bound/.nycrc new file mode 100644 index 0000000..bdd626c --- /dev/null +++ b/server/api/node_modules/call-bound/.nycrc @@ -0,0 +1,9 @@ +{ + "all": true, + "check-coverage": false, + "reporter": ["text-summary", "text", "html", "json"], + "exclude": [ + "coverage", + "test" + ] +} diff --git a/server/api/node_modules/call-bound/CHANGELOG.md b/server/api/node_modules/call-bound/CHANGELOG.md new file mode 100644 index 0000000..8bde4e9 --- /dev/null +++ b/server/api/node_modules/call-bound/CHANGELOG.md @@ -0,0 +1,42 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [v1.0.4](https://github.com/ljharb/call-bound/compare/v1.0.3...v1.0.4) - 2025-03-03 + +### Commits + +- [types] improve types [`e648922`](https://github.com/ljharb/call-bound/commit/e6489222a9e54f350fbf952ceabe51fd8b6027ff) +- [Dev Deps] update `@arethetypeswrong/cli`, `@ljharb/tsconfig`, `@types/tape`, `es-value-fixtures`, `for-each`, `has-strict-mode`, `object-inspect` [`a42a5eb`](https://github.com/ljharb/call-bound/commit/a42a5ebe6c1b54fcdc7997c7dc64fdca9e936719) +- [Deps] update `call-bind-apply-helpers`, `get-intrinsic` [`f529eac`](https://github.com/ljharb/call-bound/commit/f529eac132404c17156bbc23ab2297a25d0f20b8) + +## [v1.0.3](https://github.com/ljharb/call-bound/compare/v1.0.2...v1.0.3) - 2024-12-15 + +### Commits + +- [Refactor] use `call-bind-apply-helpers` instead of `call-bind` [`5e0b134`](https://github.com/ljharb/call-bound/commit/5e0b13496df14fb7d05dae9412f088da8d3f75be) +- [Deps] update `get-intrinsic` [`41fc967`](https://github.com/ljharb/call-bound/commit/41fc96732a22c7b7e8f381f93ccc54bb6293be2e) +- [readme] fix example [`79a0137`](https://github.com/ljharb/call-bound/commit/79a0137723f7c6d09c9c05452bbf8d5efb5d6e49) +- [meta] add `sideEffects` flag [`08b07be`](https://github.com/ljharb/call-bound/commit/08b07be7f1c03f67dc6f3cdaf0906259771859f7) + +## [v1.0.2](https://github.com/ljharb/call-bound/compare/v1.0.1...v1.0.2) - 2024-12-10 + +### Commits + +- [Dev Deps] update `@arethetypeswrong/cli`, `@ljharb/tsconfig`, `gopd` [`e6a5ffe`](https://github.com/ljharb/call-bound/commit/e6a5ffe849368fe4f74dfd6cdeca1b9baa39e8d5) +- [Deps] update `call-bind`, `get-intrinsic` [`2aeb5b5`](https://github.com/ljharb/call-bound/commit/2aeb5b521dc2b2683d1345c753ea1161de2d1c14) +- [types] improve return type [`1a0c9fe`](https://github.com/ljharb/call-bound/commit/1a0c9fe3114471e7ca1f57d104e2efe713bb4871) + +## v1.0.1 - 2024-12-05 + +### Commits + +- Initial implementation, tests, readme, types [`6d94121`](https://github.com/ljharb/call-bound/commit/6d94121a9243602e506334069f7a03189fe3363d) +- Initial commit [`0eae867`](https://github.com/ljharb/call-bound/commit/0eae867334ea025c33e6e91cdecfc9df96680cf9) +- npm init [`71b2479`](https://github.com/ljharb/call-bound/commit/71b2479c6723e0b7d91a6b663613067e98b7b275) +- Only apps should have lockfiles [`c3754a9`](https://github.com/ljharb/call-bound/commit/c3754a949b7f9132b47e2d18c1729889736741eb) +- [actions] skip `npm ls` in node < 10 [`74275a5`](https://github.com/ljharb/call-bound/commit/74275a5186b8caf6309b6b97472bdcb0df4683a8) +- [Dev Deps] add missing peer dep [`1354de8`](https://github.com/ljharb/call-bound/commit/1354de8679413e4ae9c523d85f76fa7a5e032d97) diff --git a/server/api/node_modules/call-bound/LICENSE b/server/api/node_modules/call-bound/LICENSE new file mode 100644 index 0000000..f82f389 --- /dev/null +++ b/server/api/node_modules/call-bound/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 Jordan Harband + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/server/api/node_modules/call-bound/README.md b/server/api/node_modules/call-bound/README.md new file mode 100644 index 0000000..a44e43e --- /dev/null +++ b/server/api/node_modules/call-bound/README.md @@ -0,0 +1,53 @@ +# call-bound [![Version Badge][npm-version-svg]][package-url] + +[![github actions][actions-image]][actions-url] +[![coverage][codecov-image]][codecov-url] +[![dependency status][deps-svg]][deps-url] +[![dev dependency status][dev-deps-svg]][dev-deps-url] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +[![npm badge][npm-badge-png]][package-url] + +Robust call-bound JavaScript intrinsics, using `call-bind` and `get-intrinsic`. + +## Getting started + +```sh +npm install --save call-bound +``` + +## Usage/Examples + +```js +const assert = require('assert'); +const callBound = require('call-bound'); + +const slice = callBound('Array.prototype.slice'); + +delete Function.prototype.call; +delete Function.prototype.bind; +delete Array.prototype.slice; + +assert.deepEqual(slice([1, 2, 3, 4], 1, -1), [2, 3]); +``` + +## Tests + +Clone the repo, `npm install`, and run `npm test` + +[package-url]: https://npmjs.org/package/call-bound +[npm-version-svg]: https://versionbadg.es/ljharb/call-bound.svg +[deps-svg]: https://david-dm.org/ljharb/call-bound.svg +[deps-url]: https://david-dm.org/ljharb/call-bound +[dev-deps-svg]: https://david-dm.org/ljharb/call-bound/dev-status.svg +[dev-deps-url]: https://david-dm.org/ljharb/call-bound#info=devDependencies +[npm-badge-png]: https://nodei.co/npm/call-bound.png?downloads=true&stars=true +[license-image]: https://img.shields.io/npm/l/call-bound.svg +[license-url]: LICENSE +[downloads-image]: https://img.shields.io/npm/dm/call-bound.svg +[downloads-url]: https://npm-stat.com/charts.html?package=call-bound +[codecov-image]: https://codecov.io/gh/ljharb/call-bound/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/ljharb/call-bound/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/ljharb/call-bound +[actions-url]: https://github.com/ljharb/call-bound/actions diff --git a/server/api/node_modules/call-bound/index.d.ts b/server/api/node_modules/call-bound/index.d.ts new file mode 100644 index 0000000..5562f00 --- /dev/null +++ b/server/api/node_modules/call-bound/index.d.ts @@ -0,0 +1,94 @@ +type Intrinsic = typeof globalThis; + +type IntrinsicName = keyof Intrinsic | `%${keyof Intrinsic}%`; + +type IntrinsicPath = IntrinsicName | `${StripPercents}.${string}` | `%${StripPercents}.${string}%`; + +type AllowMissing = boolean; + +type StripPercents = T extends `%${infer U}%` ? U : T; + +type BindMethodPrecise = + F extends (this: infer This, ...args: infer Args) => infer R + ? (obj: This, ...args: Args) => R + : F extends { + (this: infer This1, ...args: infer Args1): infer R1; + (this: infer This2, ...args: infer Args2): infer R2 + } + ? { + (obj: This1, ...args: Args1): R1; + (obj: This2, ...args: Args2): R2 + } + : never + +// Extract method type from a prototype +type GetPrototypeMethod = + (typeof globalThis)[T] extends { prototype: any } + ? M extends keyof (typeof globalThis)[T]['prototype'] + ? (typeof globalThis)[T]['prototype'][M] + : never + : never + +// Get static property/method +type GetStaticMember = + P extends keyof (typeof globalThis)[T] ? (typeof globalThis)[T][P] : never + +// Type that maps string path to actual bound function or value with better precision +type BoundIntrinsic = + S extends `${infer Obj}.prototype.${infer Method}` + ? Obj extends keyof typeof globalThis + ? BindMethodPrecise> + : unknown + : S extends `${infer Obj}.${infer Prop}` + ? Obj extends keyof typeof globalThis + ? GetStaticMember + : unknown + : unknown + +declare function arraySlice(array: readonly T[], start?: number, end?: number): T[]; +declare function arraySlice(array: ArrayLike, start?: number, end?: number): T[]; +declare function arraySlice(array: IArguments, start?: number, end?: number): T[]; + +// Special cases for methods that need explicit typing +interface SpecialCases { + '%Object.prototype.isPrototypeOf%': (thisArg: {}, obj: unknown) => boolean; + '%String.prototype.replace%': { + (str: string, searchValue: string | RegExp, replaceValue: string): string; + (str: string, searchValue: string | RegExp, replacer: (substring: string, ...args: any[]) => string): string + }; + '%Object.prototype.toString%': (obj: {}) => string; + '%Object.prototype.hasOwnProperty%': (obj: {}, v: PropertyKey) => boolean; + '%Array.prototype.slice%': typeof arraySlice; + '%Array.prototype.map%': (array: readonly T[], callbackfn: (value: T, index: number, array: readonly T[]) => U, thisArg?: any) => U[]; + '%Array.prototype.filter%': (array: readonly T[], predicate: (value: T, index: number, array: readonly T[]) => unknown, thisArg?: any) => T[]; + '%Array.prototype.indexOf%': (array: readonly T[], searchElement: T, fromIndex?: number) => number; + '%Function.prototype.apply%': (fn: (...args: A) => R, thisArg: any, args: A) => R; + '%Function.prototype.call%': (fn: (...args: A) => R, thisArg: any, ...args: A) => R; + '%Function.prototype.bind%': (fn: (...args: A) => R, thisArg: any, ...args: A) => (...remainingArgs: A) => R; + '%Promise.prototype.then%': { + (promise: Promise, onfulfilled: (value: T) => R | PromiseLike): Promise; + (promise: Promise, onfulfilled: ((value: T) => R | PromiseLike) | undefined | null, onrejected: (reason: any) => R | PromiseLike): Promise; + }; + '%RegExp.prototype.test%': (regexp: RegExp, str: string) => boolean; + '%RegExp.prototype.exec%': (regexp: RegExp, str: string) => RegExpExecArray | null; + '%Error.prototype.toString%': (error: Error) => string; + '%TypeError.prototype.toString%': (error: TypeError) => string; + '%String.prototype.split%': ( + obj: unknown, + splitter: string | RegExp | { + [Symbol.split](string: string, limit?: number): string[]; + }, + limit?: number | undefined + ) => string[]; +} + +/** + * Returns a bound function for a prototype method, or a value for a static property. + * + * @param name - The name of the intrinsic (e.g. 'Array.prototype.slice') + * @param {AllowMissing} [allowMissing] - Whether to allow missing intrinsics (default: false) + */ +declare function callBound, S extends IntrinsicPath>(name: K, allowMissing?: AllowMissing): SpecialCases[`%${StripPercents}%`]; +declare function callBound, S extends IntrinsicPath>(name: S, allowMissing?: AllowMissing): BoundIntrinsic; + +export = callBound; diff --git a/server/api/node_modules/call-bound/index.js b/server/api/node_modules/call-bound/index.js new file mode 100644 index 0000000..e9ade74 --- /dev/null +++ b/server/api/node_modules/call-bound/index.js @@ -0,0 +1,19 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var callBindBasic = require('call-bind-apply-helpers'); + +/** @type {(thisArg: string, searchString: string, position?: number) => number} */ +var $indexOf = callBindBasic([GetIntrinsic('%String.prototype.indexOf%')]); + +/** @type {import('.')} */ +module.exports = function callBoundIntrinsic(name, allowMissing) { + /* eslint no-extra-parens: 0 */ + + var intrinsic = /** @type {(this: unknown, ...args: unknown[]) => unknown} */ (GetIntrinsic(name, !!allowMissing)); + if (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) { + return callBindBasic(/** @type {const} */ ([intrinsic])); + } + return intrinsic; +}; diff --git a/server/api/node_modules/call-bound/package.json b/server/api/node_modules/call-bound/package.json new file mode 100644 index 0000000..d542db4 --- /dev/null +++ b/server/api/node_modules/call-bound/package.json @@ -0,0 +1,99 @@ +{ + "name": "call-bound", + "version": "1.0.4", + "description": "Robust call-bound JavaScript intrinsics, using `call-bind` and `get-intrinsic`.", + "main": "index.js", + "exports": { + ".": "./index.js", + "./package.json": "./package.json" + }, + "sideEffects": false, + "scripts": { + "prepack": "npmignore --auto --commentLines=auto", + "prepublish": "not-in-publish || npm run prepublishOnly", + "prepublishOnly": "safe-publish-latest", + "prelint": "evalmd README.md", + "lint": "eslint --ext=.js,.mjs .", + "postlint": "tsc -p . && attw -P", + "pretest": "npm run lint", + "tests-only": "nyc tape 'test/**/*.js'", + "test": "npm run tests-only", + "posttest": "npx npm@'>=10.2' audit --production", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ljharb/call-bound.git" + }, + "keywords": [ + "javascript", + "ecmascript", + "es", + "js", + "callbind", + "callbound", + "call", + "bind", + "bound", + "call-bind", + "call-bound", + "function", + "es-abstract" + ], + "author": "Jordan Harband ", + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "license": "MIT", + "bugs": { + "url": "https://github.com/ljharb/call-bound/issues" + }, + "homepage": "https://github.com/ljharb/call-bound#readme", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "devDependencies": { + "@arethetypeswrong/cli": "^0.17.4", + "@ljharb/eslint-config": "^21.1.1", + "@ljharb/tsconfig": "^0.3.0", + "@types/call-bind": "^1.0.5", + "@types/get-intrinsic": "^1.2.3", + "@types/tape": "^5.8.1", + "auto-changelog": "^2.5.0", + "encoding": "^0.1.13", + "es-value-fixtures": "^1.7.1", + "eslint": "=8.8.0", + "evalmd": "^0.0.19", + "for-each": "^0.3.5", + "gopd": "^1.2.0", + "has-strict-mode": "^1.1.0", + "in-publish": "^2.0.1", + "npmignore": "^0.3.1", + "nyc": "^10.3.2", + "object-inspect": "^1.13.4", + "safe-publish-latest": "^2.0.0", + "tape": "^5.9.0", + "typescript": "next" + }, + "testling": { + "files": "test/index.js" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "publishConfig": { + "ignore": [ + ".github/workflows" + ] + }, + "engines": { + "node": ">= 0.4" + } +} diff --git a/server/api/node_modules/call-bound/test/index.js b/server/api/node_modules/call-bound/test/index.js new file mode 100644 index 0000000..a2fc9f0 --- /dev/null +++ b/server/api/node_modules/call-bound/test/index.js @@ -0,0 +1,61 @@ +'use strict'; + +var test = require('tape'); + +var callBound = require('../'); + +/** @template {true} T @template U @typedef {T extends U ? T : never} AssertType */ + +test('callBound', function (t) { + // static primitive + t.equal(callBound('Array.length'), Array.length, 'Array.length yields itself'); + t.equal(callBound('%Array.length%'), Array.length, '%Array.length% yields itself'); + + // static non-function object + t.equal(callBound('Array.prototype'), Array.prototype, 'Array.prototype yields itself'); + t.equal(callBound('%Array.prototype%'), Array.prototype, '%Array.prototype% yields itself'); + t.equal(callBound('Array.constructor'), Array.constructor, 'Array.constructor yields itself'); + t.equal(callBound('%Array.constructor%'), Array.constructor, '%Array.constructor% yields itself'); + + // static function + t.equal(callBound('Date.parse'), Date.parse, 'Date.parse yields itself'); + t.equal(callBound('%Date.parse%'), Date.parse, '%Date.parse% yields itself'); + + // prototype primitive + t.equal(callBound('Error.prototype.message'), Error.prototype.message, 'Error.prototype.message yields itself'); + t.equal(callBound('%Error.prototype.message%'), Error.prototype.message, '%Error.prototype.message% yields itself'); + + var x = callBound('Object.prototype.toString'); + var y = callBound('%Object.prototype.toString%'); + + // prototype function + t.notEqual(x, Object.prototype.toString, 'Object.prototype.toString does not yield itself'); + t.notEqual(y, Object.prototype.toString, '%Object.prototype.toString% does not yield itself'); + t.equal(x(true), Object.prototype.toString.call(true), 'call-bound Object.prototype.toString calls into the original'); + t.equal(y(true), Object.prototype.toString.call(true), 'call-bound %Object.prototype.toString% calls into the original'); + + t['throws']( + // @ts-expect-error + function () { callBound('does not exist'); }, + SyntaxError, + 'nonexistent intrinsic throws' + ); + t['throws']( + // @ts-expect-error + function () { callBound('does not exist', true); }, + SyntaxError, + 'allowMissing arg still throws for unknown intrinsic' + ); + + t.test('real but absent intrinsic', { skip: typeof WeakRef !== 'undefined' }, function (st) { + st['throws']( + function () { callBound('WeakRef'); }, + TypeError, + 'real but absent intrinsic throws' + ); + st.equal(callBound('WeakRef', true), undefined, 'allowMissing arg avoids exception'); + st.end(); + }); + + t.end(); +}); diff --git a/server/api/node_modules/call-bound/tsconfig.json b/server/api/node_modules/call-bound/tsconfig.json new file mode 100644 index 0000000..8976d98 --- /dev/null +++ b/server/api/node_modules/call-bound/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "@ljharb/tsconfig", + "compilerOptions": { + "target": "ESNext", + "lib": ["es2024"], + }, + "exclude": [ + "coverage", + ], +} diff --git a/server/api/node_modules/callsites/index.d.ts b/server/api/node_modules/callsites/index.d.ts new file mode 100644 index 0000000..61f597c --- /dev/null +++ b/server/api/node_modules/callsites/index.d.ts @@ -0,0 +1,96 @@ +declare namespace callsites { + interface CallSite { + /** + Returns the value of `this`. + */ + getThis(): unknown | undefined; + + /** + Returns the type of `this` as a string. This is the name of the function stored in the constructor field of `this`, if available, otherwise the object's `[[Class]]` internal property. + */ + getTypeName(): string | null; + + /** + Returns the current function. + */ + getFunction(): Function | undefined; + + /** + Returns the name of the current function, typically its `name` property. If a name property is not available an attempt will be made to try to infer a name from the function's context. + */ + getFunctionName(): string | null; + + /** + Returns the name of the property of `this` or one of its prototypes that holds the current function. + */ + getMethodName(): string | undefined; + + /** + Returns the name of the script if this function was defined in a script. + */ + getFileName(): string | null; + + /** + Returns the current line number if this function was defined in a script. + */ + getLineNumber(): number | null; + + /** + Returns the current column number if this function was defined in a script. + */ + getColumnNumber(): number | null; + + /** + Returns a string representing the location where `eval` was called if this function was created using a call to `eval`. + */ + getEvalOrigin(): string | undefined; + + /** + Returns `true` if this is a top-level invocation, that is, if it's a global object. + */ + isToplevel(): boolean; + + /** + Returns `true` if this call takes place in code defined by a call to `eval`. + */ + isEval(): boolean; + + /** + Returns `true` if this call is in native V8 code. + */ + isNative(): boolean; + + /** + Returns `true` if this is a constructor call. + */ + isConstructor(): boolean; + } +} + +declare const callsites: { + /** + Get callsites from the V8 stack trace API. + + @returns An array of `CallSite` objects. + + @example + ``` + import callsites = require('callsites'); + + function unicorn() { + console.log(callsites()[0].getFileName()); + //=> '/Users/sindresorhus/dev/callsites/test.js' + } + + unicorn(); + ``` + */ + (): callsites.CallSite[]; + + // TODO: Remove this for the next major release, refactor the whole definition to: + // declare function callsites(): callsites.CallSite[]; + // export = callsites; + default: typeof callsites; +}; + +export = callsites; diff --git a/server/api/node_modules/callsites/index.js b/server/api/node_modules/callsites/index.js new file mode 100644 index 0000000..486c241 --- /dev/null +++ b/server/api/node_modules/callsites/index.js @@ -0,0 +1,13 @@ +'use strict'; + +const callsites = () => { + const _prepareStackTrace = Error.prepareStackTrace; + Error.prepareStackTrace = (_, stack) => stack; + const stack = new Error().stack.slice(1); + Error.prepareStackTrace = _prepareStackTrace; + return stack; +}; + +module.exports = callsites; +// TODO: Remove this for the next major release +module.exports.default = callsites; diff --git a/server/api/node_modules/callsites/license b/server/api/node_modules/callsites/license new file mode 100644 index 0000000..e7af2f7 --- /dev/null +++ b/server/api/node_modules/callsites/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (sindresorhus.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. diff --git a/server/api/node_modules/callsites/package.json b/server/api/node_modules/callsites/package.json new file mode 100644 index 0000000..93463c3 --- /dev/null +++ b/server/api/node_modules/callsites/package.json @@ -0,0 +1,39 @@ +{ + "name": "callsites", + "version": "3.1.0", + "description": "Get callsites from the V8 stack trace API", + "license": "MIT", + "repository": "sindresorhus/callsites", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { + "node": ">=6" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "keywords": [ + "stacktrace", + "v8", + "callsite", + "callsites", + "stack", + "trace", + "function", + "file", + "line", + "debug" + ], + "devDependencies": { + "ava": "^1.4.1", + "tsd": "^0.7.2", + "xo": "^0.24.0" + } +} diff --git a/server/api/node_modules/callsites/readme.md b/server/api/node_modules/callsites/readme.md new file mode 100644 index 0000000..fc84613 --- /dev/null +++ b/server/api/node_modules/callsites/readme.md @@ -0,0 +1,48 @@ +# callsites [![Build Status](https://travis-ci.org/sindresorhus/callsites.svg?branch=master)](https://travis-ci.org/sindresorhus/callsites) + +> Get callsites from the [V8 stack trace API](https://v8.dev/docs/stack-trace-api) + + +## Install + +``` +$ npm install callsites +``` + + +## Usage + +```js +const callsites = require('callsites'); + +function unicorn() { + console.log(callsites()[0].getFileName()); + //=> '/Users/sindresorhus/dev/callsites/test.js' +} + +unicorn(); +``` + + +## API + +Returns an array of callsite objects with the following methods: + +- `getThis`: returns the value of `this`. +- `getTypeName`: returns the type of `this` as a string. This is the name of the function stored in the constructor field of `this`, if available, otherwise the object's `[[Class]]` internal property. +- `getFunction`: returns the current function. +- `getFunctionName`: returns the name of the current function, typically its `name` property. If a name property is not available an attempt will be made to try to infer a name from the function's context. +- `getMethodName`: returns the name of the property of `this` or one of its prototypes that holds the current function. +- `getFileName`: if this function was defined in a script returns the name of the script. +- `getLineNumber`: if this function was defined in a script returns the current line number. +- `getColumnNumber`: if this function was defined in a script returns the current column number +- `getEvalOrigin`: if this function was created using a call to `eval` returns a string representing the location where `eval` was called. +- `isToplevel`: is this a top-level invocation, that is, is this the global object? +- `isEval`: does this call take place in code defined by a call to `eval`? +- `isNative`: is this call in native V8 code? +- `isConstructor`: is this a constructor call? + + +## License + +MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/server/api/node_modules/camelcase/index.d.ts b/server/api/node_modules/camelcase/index.d.ts new file mode 100644 index 0000000..58f2069 --- /dev/null +++ b/server/api/node_modules/camelcase/index.d.ts @@ -0,0 +1,63 @@ +declare namespace camelcase { + interface Options { + /** + Uppercase the first character: `foo-bar` → `FooBar`. + + @default false + */ + readonly pascalCase?: boolean; + } +} + +declare const camelcase: { + /** + Convert a dash/dot/underscore/space separated string to camelCase or PascalCase: `foo-bar` → `fooBar`. + + @param input - String to convert to camel case. + + @example + ``` + import camelCase = require('camelcase'); + + camelCase('foo-bar'); + //=> 'fooBar' + + camelCase('foo_bar'); + //=> 'fooBar' + + camelCase('Foo-Bar'); + //=> 'fooBar' + + camelCase('Foo-Bar', {pascalCase: true}); + //=> 'FooBar' + + camelCase('--foo.bar', {pascalCase: false}); + //=> 'fooBar' + + camelCase('foo bar'); + //=> 'fooBar' + + console.log(process.argv[3]); + //=> '--foo-bar' + camelCase(process.argv[3]); + //=> 'fooBar' + + camelCase(['foo', 'bar']); + //=> 'fooBar' + + camelCase(['__foo__', '--bar'], {pascalCase: true}); + //=> 'FooBar' + ``` + */ + (input: string | ReadonlyArray, options?: camelcase.Options): string; + + // TODO: Remove this for the next major release, refactor the whole definition to: + // declare function camelcase( + // input: string | ReadonlyArray, + // options?: camelcase.Options + // ): string; + // export = camelcase; + default: typeof camelcase; +}; + +export = camelcase; diff --git a/server/api/node_modules/camelcase/index.js b/server/api/node_modules/camelcase/index.js new file mode 100644 index 0000000..579f99b --- /dev/null +++ b/server/api/node_modules/camelcase/index.js @@ -0,0 +1,76 @@ +'use strict'; + +const preserveCamelCase = string => { + let isLastCharLower = false; + let isLastCharUpper = false; + let isLastLastCharUpper = false; + + for (let i = 0; i < string.length; i++) { + const character = string[i]; + + if (isLastCharLower && /[a-zA-Z]/.test(character) && character.toUpperCase() === character) { + string = string.slice(0, i) + '-' + string.slice(i); + isLastCharLower = false; + isLastLastCharUpper = isLastCharUpper; + isLastCharUpper = true; + i++; + } else if (isLastCharUpper && isLastLastCharUpper && /[a-zA-Z]/.test(character) && character.toLowerCase() === character) { + string = string.slice(0, i - 1) + '-' + string.slice(i - 1); + isLastLastCharUpper = isLastCharUpper; + isLastCharUpper = false; + isLastCharLower = true; + } else { + isLastCharLower = character.toLowerCase() === character && character.toUpperCase() !== character; + isLastLastCharUpper = isLastCharUpper; + isLastCharUpper = character.toUpperCase() === character && character.toLowerCase() !== character; + } + } + + return string; +}; + +const camelCase = (input, options) => { + if (!(typeof input === 'string' || Array.isArray(input))) { + throw new TypeError('Expected the input to be `string | string[]`'); + } + + options = Object.assign({ + pascalCase: false + }, options); + + const postProcess = x => options.pascalCase ? x.charAt(0).toUpperCase() + x.slice(1) : x; + + if (Array.isArray(input)) { + input = input.map(x => x.trim()) + .filter(x => x.length) + .join('-'); + } else { + input = input.trim(); + } + + if (input.length === 0) { + return ''; + } + + if (input.length === 1) { + return options.pascalCase ? input.toUpperCase() : input.toLowerCase(); + } + + const hasUpperCase = input !== input.toLowerCase(); + + if (hasUpperCase) { + input = preserveCamelCase(input); + } + + input = input + .replace(/^[_.\- ]+/, '') + .toLowerCase() + .replace(/[_.\- ]+(\w|$)/g, (_, p1) => p1.toUpperCase()) + .replace(/\d+(\w|$)/g, m => m.toUpperCase()); + + return postProcess(input); +}; + +module.exports = camelCase; +// TODO: Remove this for the next major release +module.exports.default = camelCase; diff --git a/server/api/node_modules/camelcase/license b/server/api/node_modules/camelcase/license new file mode 100644 index 0000000..e7af2f7 --- /dev/null +++ b/server/api/node_modules/camelcase/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (sindresorhus.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. diff --git a/server/api/node_modules/camelcase/package.json b/server/api/node_modules/camelcase/package.json new file mode 100644 index 0000000..fbdbaaa --- /dev/null +++ b/server/api/node_modules/camelcase/package.json @@ -0,0 +1,43 @@ +{ + "name": "camelcase", + "version": "5.3.1", + "description": "Convert a dash/dot/underscore/space separated string to camelCase or PascalCase: `foo-bar` → `fooBar`", + "license": "MIT", + "repository": "sindresorhus/camelcase", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { + "node": ">=6" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "keywords": [ + "camelcase", + "camel-case", + "camel", + "case", + "dash", + "hyphen", + "dot", + "underscore", + "separator", + "string", + "text", + "convert", + "pascalcase", + "pascal-case" + ], + "devDependencies": { + "ava": "^1.4.1", + "tsd": "^0.7.1", + "xo": "^0.24.0" + } +} diff --git a/server/api/node_modules/camelcase/readme.md b/server/api/node_modules/camelcase/readme.md new file mode 100644 index 0000000..fde2726 --- /dev/null +++ b/server/api/node_modules/camelcase/readme.md @@ -0,0 +1,99 @@ +# camelcase [![Build Status](https://travis-ci.org/sindresorhus/camelcase.svg?branch=master)](https://travis-ci.org/sindresorhus/camelcase) + +> Convert a dash/dot/underscore/space separated string to camelCase or PascalCase: `foo-bar` → `fooBar` + +--- + +
+ + Get professional support for 'camelcase' with a Tidelift subscription + +
+ + Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. +
+
+ +--- + +## Install + +``` +$ npm install camelcase +``` + + +## Usage + +```js +const camelCase = require('camelcase'); + +camelCase('foo-bar'); +//=> 'fooBar' + +camelCase('foo_bar'); +//=> 'fooBar' + +camelCase('Foo-Bar'); +//=> 'fooBar' + +camelCase('Foo-Bar', {pascalCase: true}); +//=> 'FooBar' + +camelCase('--foo.bar', {pascalCase: false}); +//=> 'fooBar' + +camelCase('foo bar'); +//=> 'fooBar' + +console.log(process.argv[3]); +//=> '--foo-bar' +camelCase(process.argv[3]); +//=> 'fooBar' + +camelCase(['foo', 'bar']); +//=> 'fooBar' + +camelCase(['__foo__', '--bar'], {pascalCase: true}); +//=> 'FooBar' +``` + + +## API + +### camelCase(input, [options]) + +#### input + +Type: `string` `string[]` + +String to convert to camel case. + +#### options + +Type: `Object` + +##### pascalCase + +Type: `boolean`
+Default: `false` + +Uppercase the first character: `foo-bar` → `FooBar` + + +## Security + +To report a security vulnerability, please use the [Tidelift security contact](https://tidelift.com/security). Tidelift will coordinate the fix and disclosure. + + +## Related + +- [decamelize](https://github.com/sindresorhus/decamelize) - The inverse of this module +- [uppercamelcase](https://github.com/SamVerschueren/uppercamelcase) - Like this module, but to PascalCase instead of camelCase +- [titleize](https://github.com/sindresorhus/titleize) - Capitalize every word in string +- [humanize-string](https://github.com/sindresorhus/humanize-string) - Convert a camelized/dasherized/underscored string into a humanized one + + +## License + +MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/server/api/node_modules/caniuse-lite/LICENSE b/server/api/node_modules/caniuse-lite/LICENSE new file mode 100644 index 0000000..06c608d --- /dev/null +++ b/server/api/node_modules/caniuse-lite/LICENSE @@ -0,0 +1,395 @@ +Attribution 4.0 International + +======================================================================= + +Creative Commons Corporation ("Creative Commons") is not a law firm and +does not provide legal services or legal advice. Distribution of +Creative Commons public licenses does not create a lawyer-client or +other relationship. Creative Commons makes its licenses and related +information available on an "as-is" basis. Creative Commons gives no +warranties regarding its licenses, any material licensed under their +terms and conditions, or any related information. Creative Commons +disclaims all liability for damages resulting from their use to the +fullest extent possible. + +Using Creative Commons Public Licenses + +Creative Commons public licenses provide a standard set of terms and +conditions that creators and other rights holders may use to share +original works of authorship and other material subject to copyright +and certain other rights specified in the public license below. The +following considerations are for informational purposes only, are not +exhaustive, and do not form part of our licenses. + + Considerations for licensors: Our public licenses are + intended for use by those authorized to give the public + permission to use material in ways otherwise restricted by + copyright and certain other rights. Our licenses are + irrevocable. Licensors should read and understand the terms + and conditions of the license they choose before applying it. + Licensors should also secure all rights necessary before + applying our licenses so that the public can reuse the + material as expected. Licensors should clearly mark any + material not subject to the license. This includes other CC- + licensed material, or material used under an exception or + limitation to copyright. More considerations for licensors: + wiki.creativecommons.org/Considerations_for_licensors + + Considerations for the public: By using one of our public + licenses, a licensor grants the public permission to use the + licensed material under specified terms and conditions. If + the licensor's permission is not necessary for any reason--for + example, because of any applicable exception or limitation to + copyright--then that use is not regulated by the license. Our + licenses grant only permissions under copyright and certain + other rights that a licensor has authority to grant. Use of + the licensed material may still be restricted for other + reasons, including because others have copyright or other + rights in the material. A licensor may make special requests, + such as asking that all changes be marked or described. + Although not required by our licenses, you are encouraged to + respect those requests where reasonable. More_considerations + for the public: + wiki.creativecommons.org/Considerations_for_licensees + +======================================================================= + +Creative Commons Attribution 4.0 International Public License + +By exercising the Licensed Rights (defined below), You accept and agree +to be bound by the terms and conditions of this Creative Commons +Attribution 4.0 International Public License ("Public License"). To the +extent this Public License may be interpreted as a contract, You are +granted the Licensed Rights in consideration of Your acceptance of +these terms and conditions, and the Licensor grants You such rights in +consideration of benefits the Licensor receives from making the +Licensed Material available under these terms and conditions. + + +Section 1 -- Definitions. + + a. Adapted Material means material subject to Copyright and Similar + Rights that is derived from or based upon the Licensed Material + and in which the Licensed Material is translated, altered, + arranged, transformed, or otherwise modified in a manner requiring + permission under the Copyright and Similar Rights held by the + Licensor. For purposes of this Public License, where the Licensed + Material is a musical work, performance, or sound recording, + Adapted Material is always produced where the Licensed Material is + synched in timed relation with a moving image. + + b. Adapter's License means the license You apply to Your Copyright + and Similar Rights in Your contributions to Adapted Material in + accordance with the terms and conditions of this Public License. + + c. Copyright and Similar Rights means copyright and/or similar rights + closely related to copyright including, without limitation, + performance, broadcast, sound recording, and Sui Generis Database + Rights, without regard to how the rights are labeled or + categorized. For purposes of this Public License, the rights + specified in Section 2(b)(1)-(2) are not Copyright and Similar + Rights. + + d. Effective Technological Measures means those measures that, in the + absence of proper authority, may not be circumvented under laws + fulfilling obligations under Article 11 of the WIPO Copyright + Treaty adopted on December 20, 1996, and/or similar international + agreements. + + e. Exceptions and Limitations means fair use, fair dealing, and/or + any other exception or limitation to Copyright and Similar Rights + that applies to Your use of the Licensed Material. + + f. Licensed Material means the artistic or literary work, database, + or other material to which the Licensor applied this Public + License. + + g. Licensed Rights means the rights granted to You subject to the + terms and conditions of this Public License, which are limited to + all Copyright and Similar Rights that apply to Your use of the + Licensed Material and that the Licensor has authority to license. + + h. Licensor means the individual(s) or entity(ies) granting rights + under this Public License. + + i. Share means to provide material to the public by any means or + process that requires permission under the Licensed Rights, such + as reproduction, public display, public performance, distribution, + dissemination, communication, or importation, and to make material + available to the public including in ways that members of the + public may access the material from a place and at a time + individually chosen by them. + + j. Sui Generis Database Rights means rights other than copyright + resulting from Directive 96/9/EC of the European Parliament and of + the Council of 11 March 1996 on the legal protection of databases, + as amended and/or succeeded, as well as other essentially + equivalent rights anywhere in the world. + + k. You means the individual or entity exercising the Licensed Rights + under this Public License. Your has a corresponding meaning. + + +Section 2 -- Scope. + + a. License grant. + + 1. Subject to the terms and conditions of this Public License, + the Licensor hereby grants You a worldwide, royalty-free, + non-sublicensable, non-exclusive, irrevocable license to + exercise the Licensed Rights in the Licensed Material to: + + a. reproduce and Share the Licensed Material, in whole or + in part; and + + b. produce, reproduce, and Share Adapted Material. + + 2. Exceptions and Limitations. For the avoidance of doubt, where + Exceptions and Limitations apply to Your use, this Public + License does not apply, and You do not need to comply with + its terms and conditions. + + 3. Term. The term of this Public License is specified in Section + 6(a). + + 4. Media and formats; technical modifications allowed. The + Licensor authorizes You to exercise the Licensed Rights in + all media and formats whether now known or hereafter created, + and to make technical modifications necessary to do so. The + Licensor waives and/or agrees not to assert any right or + authority to forbid You from making technical modifications + necessary to exercise the Licensed Rights, including + technical modifications necessary to circumvent Effective + Technological Measures. For purposes of this Public License, + simply making modifications authorized by this Section 2(a) + (4) never produces Adapted Material. + + 5. Downstream recipients. + + a. Offer from the Licensor -- Licensed Material. Every + recipient of the Licensed Material automatically + receives an offer from the Licensor to exercise the + Licensed Rights under the terms and conditions of this + Public License. + + b. No downstream restrictions. You may not offer or impose + any additional or different terms or conditions on, or + apply any Effective Technological Measures to, the + Licensed Material if doing so restricts exercise of the + Licensed Rights by any recipient of the Licensed + Material. + + 6. No endorsement. Nothing in this Public License constitutes or + may be construed as permission to assert or imply that You + are, or that Your use of the Licensed Material is, connected + with, or sponsored, endorsed, or granted official status by, + the Licensor or others designated to receive attribution as + provided in Section 3(a)(1)(A)(i). + + b. Other rights. + + 1. Moral rights, such as the right of integrity, are not + licensed under this Public License, nor are publicity, + privacy, and/or other similar personality rights; however, to + the extent possible, the Licensor waives and/or agrees not to + assert any such rights held by the Licensor to the limited + extent necessary to allow You to exercise the Licensed + Rights, but not otherwise. + + 2. Patent and trademark rights are not licensed under this + Public License. + + 3. To the extent possible, the Licensor waives any right to + collect royalties from You for the exercise of the Licensed + Rights, whether directly or through a collecting society + under any voluntary or waivable statutory or compulsory + licensing scheme. In all other cases the Licensor expressly + reserves any right to collect such royalties. + + +Section 3 -- License Conditions. + +Your exercise of the Licensed Rights is expressly made subject to the +following conditions. + + a. Attribution. + + 1. If You Share the Licensed Material (including in modified + form), You must: + + a. retain the following if it is supplied by the Licensor + with the Licensed Material: + + i. identification of the creator(s) of the Licensed + Material and any others designated to receive + attribution, in any reasonable manner requested by + the Licensor (including by pseudonym if + designated); + + ii. a copyright notice; + + iii. a notice that refers to this Public License; + + iv. a notice that refers to the disclaimer of + warranties; + + v. a URI or hyperlink to the Licensed Material to the + extent reasonably practicable; + + b. indicate if You modified the Licensed Material and + retain an indication of any previous modifications; and + + c. indicate the Licensed Material is licensed under this + Public License, and include the text of, or the URI or + hyperlink to, this Public License. + + 2. You may satisfy the conditions in Section 3(a)(1) in any + reasonable manner based on the medium, means, and context in + which You Share the Licensed Material. For example, it may be + reasonable to satisfy the conditions by providing a URI or + hyperlink to a resource that includes the required + information. + + 3. If requested by the Licensor, You must remove any of the + information required by Section 3(a)(1)(A) to the extent + reasonably practicable. + + 4. If You Share Adapted Material You produce, the Adapter's + License You apply must not prevent recipients of the Adapted + Material from complying with this Public License. + + +Section 4 -- Sui Generis Database Rights. + +Where the Licensed Rights include Sui Generis Database Rights that +apply to Your use of the Licensed Material: + + a. for the avoidance of doubt, Section 2(a)(1) grants You the right + to extract, reuse, reproduce, and Share all or a substantial + portion of the contents of the database; + + b. if You include all or a substantial portion of the database + contents in a database in which You have Sui Generis Database + Rights, then the database in which You have Sui Generis Database + Rights (but not its individual contents) is Adapted Material; and + + c. You must comply with the conditions in Section 3(a) if You Share + all or a substantial portion of the contents of the database. + +For the avoidance of doubt, this Section 4 supplements and does not +replace Your obligations under this Public License where the Licensed +Rights include other Copyright and Similar Rights. + + +Section 5 -- Disclaimer of Warranties and Limitation of Liability. + + a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE + EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS + AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF + ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, + IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, + WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, + ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT + KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT + ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. + + b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE + TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, + NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, + INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, + COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR + USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN + ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR + DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR + IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. + + c. The disclaimer of warranties and limitation of liability provided + above shall be interpreted in a manner that, to the extent + possible, most closely approximates an absolute disclaimer and + waiver of all liability. + + +Section 6 -- Term and Termination. + + a. This Public License applies for the term of the Copyright and + Similar Rights licensed here. However, if You fail to comply with + this Public License, then Your rights under this Public License + terminate automatically. + + b. Where Your right to use the Licensed Material has terminated under + Section 6(a), it reinstates: + + 1. automatically as of the date the violation is cured, provided + it is cured within 30 days of Your discovery of the + violation; or + + 2. upon express reinstatement by the Licensor. + + For the avoidance of doubt, this Section 6(b) does not affect any + right the Licensor may have to seek remedies for Your violations + of this Public License. + + c. For the avoidance of doubt, the Licensor may also offer the + Licensed Material under separate terms or conditions or stop + distributing the Licensed Material at any time; however, doing so + will not terminate this Public License. + + d. Sections 1, 5, 6, 7, and 8 survive termination of this Public + License. + + +Section 7 -- Other Terms and Conditions. + + a. The Licensor shall not be bound by any additional or different + terms or conditions communicated by You unless expressly agreed. + + b. Any arrangements, understandings, or agreements regarding the + Licensed Material not stated herein are separate from and + independent of the terms and conditions of this Public License. + + +Section 8 -- Interpretation. + + a. For the avoidance of doubt, this Public License does not, and + shall not be interpreted to, reduce, limit, restrict, or impose + conditions on any use of the Licensed Material that could lawfully + be made without permission under this Public License. + + b. To the extent possible, if any provision of this Public License is + deemed unenforceable, it shall be automatically reformed to the + minimum extent necessary to make it enforceable. If the provision + cannot be reformed, it shall be severed from this Public License + without affecting the enforceability of the remaining terms and + conditions. + + c. No term or condition of this Public License will be waived and no + failure to comply consented to unless expressly agreed to by the + Licensor. + + d. Nothing in this Public License constitutes or may be interpreted + as a limitation upon, or waiver of, any privileges and immunities + that apply to the Licensor or You, including from the legal + processes of any jurisdiction or authority. + + +======================================================================= + +Creative Commons is not a party to its public +licenses. Notwithstanding, Creative Commons may elect to apply one of +its public licenses to material it publishes and in those instances +will be considered the “Licensor.” The text of the Creative Commons +public licenses is dedicated to the public domain under the CC0 Public +Domain Dedication. Except for the limited purpose of indicating that +material is shared under a Creative Commons public license or as +otherwise permitted by the Creative Commons policies published at +creativecommons.org/policies, Creative Commons does not authorize the +use of the trademark "Creative Commons" or any other trademark or logo +of Creative Commons without its prior written consent including, +without limitation, in connection with any unauthorized modifications +to any of its public licenses or any other arrangements, +understandings, or agreements concerning use of licensed material. For +the avoidance of doubt, this paragraph does not form part of the +public licenses. + +Creative Commons may be contacted at creativecommons.org. diff --git a/server/api/node_modules/caniuse-lite/README.md b/server/api/node_modules/caniuse-lite/README.md new file mode 100644 index 0000000..f2c67bc --- /dev/null +++ b/server/api/node_modules/caniuse-lite/README.md @@ -0,0 +1,6 @@ +# caniuse-lite + +A smaller version of caniuse-db, with only the essentials! + +## Docs +Read full docs **[here](https://github.com/browserslist/caniuse-lite#readme)**. diff --git a/server/api/node_modules/caniuse-lite/data/agents.js b/server/api/node_modules/caniuse-lite/data/agents.js new file mode 100644 index 0000000..78cf242 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/agents.js @@ -0,0 +1 @@ +module.exports={A:{A:{J:0,D:0,E:0,F:0,A:0,B:0.290244,"5C":0},B:"ms",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","5C","J","D","E","F","A","B","","",""],E:"IE",F:{"5C":962323200,J:998870400,D:1161129600,E:1237420800,F:1300060800,A:1346716800,B:1381968000}},B:{A:{"0":0,"1":0,"2":0.012996,"3":0,"4":0.008664,"5":0,"6":0,"7":0,"8":0.004332,"9":0.004332,C:0,K:0,L:0,G:0,M:0,N:0,O:0,P:0,H:0,Q:0,R:0,S:0,T:0,U:0,V:0,W:0,X:0,Y:0,Z:0,a:0.008664,b:0,c:0,d:0,e:0,f:0,g:0,h:0,i:0,j:0,k:0,l:0,m:0,n:0,o:0,p:0,q:0,r:0.034656,s:0,t:0,u:0,v:0,w:0.004332,x:0,y:0,z:0,LB:0,MB:0,NB:0.004332,OB:0.012996,PB:0.004332,QB:0.008664,RB:0.008664,SB:0.008664,TB:0.008664,UB:0.008664,VB:0.017328,WB:0.012996,XB:0.012996,YB:0.017328,ZB:0.025992,aB:0.073644,bB:0.138624,cB:2.56888,dB:2.44758},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","C","K","L","G","M","N","O","P","H","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","0","1","2","3","4","5","6","7","8","9","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","","",""],E:"Edge",F:{"0":1697155200,"1":1698969600,"2":1701993600,"3":1706227200,"4":1708732800,"5":1711152000,"6":1713398400,"7":1715990400,"8":1718841600,"9":1721865600,C:1438128000,K:1447286400,L:1470096000,G:1491868800,M:1508198400,N:1525046400,O:1542067200,P:1579046400,H:1581033600,Q:1586736000,R:1590019200,S:1594857600,T:1598486400,U:1602201600,V:1605830400,W:1611360000,X:1614816000,Y:1618358400,Z:1622073600,a:1626912000,b:1630627200,c:1632441600,d:1634774400,e:1637539200,f:1641427200,g:1643932800,h:1646265600,i:1649635200,j:1651190400,k:1653955200,l:1655942400,m:1659657600,n:1661990400,o:1664755200,p:1666915200,q:1670198400,r:1673481600,s:1675900800,t:1678665600,u:1680825600,v:1683158400,w:1685664000,x:1689897600,y:1692576000,z:1694649600,LB:1724371200,MB:1726704000,NB:1729123200,OB:1731542400,PB:1737417600,QB:1740614400,RB:1741219200,SB:1743984000,TB:1746316800,UB:1748476800,VB:1750896000,WB:1754611200,XB:1756944000,YB:1759363200,ZB:1761868800,aB:1764806400,bB:1768780800,cB:1770854400,dB:1773446400},D:{C:"ms",K:"ms",L:"ms",G:"ms",M:"ms",N:"ms",O:"ms"}},C:{A:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"6C":0,YC:0,I:0,eB:0.008664,J:0,D:0,E:0,F:0,A:0,B:0,C:0,K:0,L:0,G:0,M:0,N:0,O:0,fB:0,AB:0,BB:0,CB:0,DB:0,EB:0,FB:0,GB:0,HB:0,IB:0,JB:0,gB:0,hB:0,iB:0,jB:0,kB:0,lB:0,mB:0,nB:0,oB:0,pB:0,qB:0,rB:0,sB:0,tB:0,uB:0,vB:0,wB:0,xB:0,yB:0,zB:0,"0B":0,"1B":0,"2B":0.012996,"3B":0,"4B":0,"5B":0,"6B":0,"7B":0,"8B":0,ZC:0,"9B":0,aC:0,AC:0,BC:0,CC:0,DC:0,EC:0,FC:0,GC:0,HC:0,IC:0,JC:0,KC:0,LC:0,MC:0,NC:0,OC:0,PC:0,QC:0.008664,P:0,H:0,Q:0,bC:0,R:0,S:0,T:0,U:0,V:0,W:0,X:0,Y:0,Z:0,a:0,b:0,c:0,d:0,e:0,f:0,g:0,h:0,i:0,j:0,k:0,l:0,m:0,n:0,o:0,p:0,q:0,r:0,s:0,t:0,u:0,v:0,w:0,x:0.142956,y:0,z:0,LB:0.008664,MB:0,NB:0,OB:0,PB:0,QB:0,RB:0,SB:0.004332,TB:0.008664,UB:0,VB:0.004332,WB:0.004332,XB:0.095304,YB:0,ZB:0.004332,aB:0.004332,bB:0.008664,cB:0.008664,dB:0.017328,KB:0.095304,cC:1.23895,RC:0.242592,dC:0,"7C":0,"8C":0,"9C":0,AD:0},B:"moz",C:["6C","YC","9C","AD","I","eB","J","D","E","F","A","B","C","K","L","G","M","N","O","fB","AB","BB","CB","DB","EB","FB","GB","HB","IB","JB","gB","hB","iB","jB","kB","lB","mB","nB","oB","pB","qB","rB","sB","tB","uB","vB","wB","xB","yB","zB","0B","1B","2B","3B","4B","5B","6B","7B","8B","ZC","9B","aC","AC","BC","CC","DC","EC","FC","GC","HC","IC","JC","KC","LC","MC","NC","OC","PC","QC","P","H","Q","bC","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","0","1","2","3","4","5","6","7","8","9","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","KB","cC","RC","dC","7C","8C"],E:"Firefox",F:{"0":1695686400,"1":1698105600,"2":1700524800,"3":1702944000,"4":1705968000,"5":1708387200,"6":1710806400,"7":1713225600,"8":1715644800,"9":1718064000,"6C":1161648000,YC:1213660800,"9C":1246320000,AD:1264032000,I:1300752000,eB:1308614400,J:1313452800,D:1317081600,E:1317081600,F:1320710400,A:1324339200,B:1327968000,C:1331596800,K:1335225600,L:1338854400,G:1342483200,M:1346112000,N:1349740800,O:1353628800,fB:1357603200,AB:1361232000,BB:1364860800,CB:1368489600,DB:1372118400,EB:1375747200,FB:1379376000,GB:1386633600,HB:1391472000,IB:1395100800,JB:1398729600,gB:1402358400,hB:1405987200,iB:1409616000,jB:1413244800,kB:1417392000,lB:1421107200,mB:1424736000,nB:1428278400,oB:1431475200,pB:1435881600,qB:1439251200,rB:1442880000,sB:1446508800,tB:1450137600,uB:1453852800,vB:1457395200,wB:1461628800,xB:1465257600,yB:1470096000,zB:1474329600,"0B":1479168000,"1B":1485216000,"2B":1488844800,"3B":1492560000,"4B":1497312000,"5B":1502150400,"6B":1506556800,"7B":1510617600,"8B":1516665600,ZC:1520985600,"9B":1525824000,aC:1529971200,AC:1536105600,BC:1540252800,CC:1544486400,DC:1548720000,EC:1552953600,FC:1558396800,GC:1562630400,HC:1567468800,IC:1571788800,JC:1575331200,KC:1578355200,LC:1581379200,MC:1583798400,NC:1586304000,OC:1588636800,PC:1591056000,QC:1593475200,P:1595894400,H:1598313600,Q:1600732800,bC:1603152000,R:1605571200,S:1607990400,T:1611619200,U:1614038400,V:1616457600,W:1618790400,X:1622505600,Y:1626134400,Z:1628553600,a:1630972800,b:1633392000,c:1635811200,d:1638835200,e:1641859200,f:1644364800,g:1646697600,h:1649116800,i:1651536000,j:1653955200,k:1656374400,l:1658793600,m:1661212800,n:1663632000,o:1666051200,p:1668470400,q:1670889600,r:1673913600,s:1676332800,t:1678752000,u:1681171200,v:1683590400,w:1686009600,x:1688428800,y:1690848000,z:1693267200,LB:1720483200,MB:1722902400,NB:1725321600,OB:1727740800,PB:1730160000,QB:1732579200,RB:1736208000,SB:1738627200,TB:1741046400,UB:1743465600,VB:1745884800,WB:1748304000,XB:1750723200,YB:1753142400,ZB:1755561600,aB:1757980800,bB:1760400000,cB:1762819200,dB:1765238400,KB:1768262400,cC:1771891200,RC:1774310400,dC:null,"7C":null,"8C":null}},D:{A:{"0":0.008664,"1":0.017328,"2":0.08664,"3":0.017328,"4":0.038988,"5":0.012996,"6":0.082308,"7":0.02166,"8":0.038988,"9":0.012996,I:0,eB:0,J:0,D:0,E:0,F:0,A:0,B:0,C:0,K:0,L:0,G:0,M:0,N:0,O:0,fB:0,AB:0,BB:0,CB:0,DB:0,EB:0,FB:0,GB:0,HB:0,IB:0,JB:0,gB:0,hB:0,iB:0,jB:0,kB:0,lB:0,mB:0,nB:0,oB:0,pB:0.034656,qB:0.034656,rB:0.034656,sB:0.034656,tB:0.034656,uB:0.034656,vB:0.034656,wB:0.034656,xB:0.034656,yB:0.038988,zB:0.04332,"0B":0.034656,"1B":0.034656,"2B":0.034656,"3B":0.034656,"4B":0.034656,"5B":0.034656,"6B":0.034656,"7B":0.034656,"8B":0.034656,ZC:0.034656,"9B":0.034656,aC:0,AC:0,BC:0,CC:0,DC:0,EC:0,FC:0,GC:0,HC:0.004332,IC:0,JC:0,KC:0,LC:0,MC:0,NC:0,OC:0,PC:0.034656,QC:0,P:0.008664,H:0.004332,Q:0,R:0,S:0,T:0,U:0.008664,V:0.008664,W:0,X:0,Y:0,Z:0.004332,a:0.004332,b:0.008664,c:0,d:0,e:0,f:0.008664,g:0.004332,h:0.004332,i:0,j:0.008664,k:0.004332,l:0.121296,m:0.06498,n:0.06498,o:0.06498,p:0.06498,q:0.069312,r:0.645468,s:0.06498,t:0.06498,u:0.142956,v:0,w:0.025992,x:0.008664,y:0.17328,z:0.069312,LB:0.056316,MB:0.012996,NB:0.060648,OB:0.229596,PB:0.034656,QB:0.147288,RB:0.047652,SB:0.051984,TB:0.04332,UB:0.047652,VB:0.212268,WB:0.34656,XB:0.073644,YB:0.082308,ZB:0.207936,aB:0.320568,bB:0.940044,cB:9.30947,dB:6.96152,KB:0.025992,cC:0.004332,RC:0,dC:0},B:"webkit",C:["","","","","","","","I","eB","J","D","E","F","A","B","C","K","L","G","M","N","O","fB","AB","BB","CB","DB","EB","FB","GB","HB","IB","JB","gB","hB","iB","jB","kB","lB","mB","nB","oB","pB","qB","rB","sB","tB","uB","vB","wB","xB","yB","zB","0B","1B","2B","3B","4B","5B","6B","7B","8B","ZC","9B","aC","AC","BC","CC","DC","EC","FC","GC","HC","IC","JC","KC","LC","MC","NC","OC","PC","QC","P","H","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","0","1","2","3","4","5","6","7","8","9","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","KB","cC","RC","dC"],E:"Chrome",F:{"0":1696896000,"1":1698710400,"2":1701993600,"3":1705968000,"4":1708387200,"5":1710806400,"6":1713225600,"7":1715644800,"8":1718064000,"9":1721174400,I:1264377600,eB:1274745600,J:1283385600,D:1287619200,E:1291248000,F:1296777600,A:1299542400,B:1303862400,C:1307404800,K:1312243200,L:1316131200,G:1316131200,M:1319500800,N:1323734400,O:1328659200,fB:1332892800,AB:1337040000,BB:1340668800,CB:1343692800,DB:1348531200,EB:1352246400,FB:1357862400,GB:1361404800,HB:1364428800,IB:1369094400,JB:1374105600,gB:1376956800,hB:1384214400,iB:1389657600,jB:1392940800,kB:1397001600,lB:1400544000,mB:1405468800,nB:1409011200,oB:1412640000,pB:1416268800,qB:1421798400,rB:1425513600,sB:1429401600,tB:1432080000,uB:1437523200,vB:1441152000,wB:1444780800,xB:1449014400,yB:1453248000,zB:1456963200,"0B":1460592000,"1B":1464134400,"2B":1469059200,"3B":1472601600,"4B":1476230400,"5B":1480550400,"6B":1485302400,"7B":1489017600,"8B":1492560000,ZC:1496707200,"9B":1500940800,aC:1504569600,AC:1508198400,BC:1512518400,CC:1516752000,DC:1520294400,EC:1523923200,FC:1527552000,GC:1532390400,HC:1536019200,IC:1539648000,JC:1543968000,KC:1548720000,LC:1552348800,MC:1555977600,NC:1559606400,OC:1564444800,PC:1568073600,QC:1571702400,P:1575936000,H:1580860800,Q:1586304000,R:1589846400,S:1594684800,T:1598313600,U:1601942400,V:1605571200,W:1611014400,X:1614556800,Y:1618272000,Z:1621987200,a:1626739200,b:1630368000,c:1632268800,d:1634601600,e:1637020800,f:1641340800,g:1643673600,h:1646092800,i:1648512000,j:1650931200,k:1653350400,l:1655769600,m:1659398400,n:1661817600,o:1664236800,p:1666656000,q:1669680000,r:1673308800,s:1675728000,t:1678147200,u:1680566400,v:1682985600,w:1685404800,x:1689724800,y:1692057600,z:1694476800,LB:1724112000,MB:1726531200,NB:1728950400,OB:1731369600,PB:1736812800,QB:1738627200,RB:1741046400,SB:1743465600,TB:1745884800,UB:1748304000,VB:1750723200,WB:1754352000,XB:1756771200,YB:1759190400,ZB:1761609600,aB:1764633600,bB:1768262400,cB:1770681600,dB:1773100800,KB:1775520000,cC:null,RC:null,dC:null}},E:{A:{I:0,eB:0,J:0,D:0,E:0,F:0,A:0,B:0,C:0,K:0,L:0.008664,G:0,BD:0,eC:0,CD:0,DD:0,ED:0,FD:0,fC:0,SC:0,TC:0,GD:0.02166,HD:0.02166,ID:0,gC:0,hC:0.004332,UC:0.004332,JD:0.090972,VC:0.004332,iC:0.012996,jC:0.008664,kC:0.017328,lC:0.012996,mC:0.012996,KD:0.155952,WC:0.004332,nC:0.112632,oC:0.008664,pC:0.012996,qC:0.030324,rC:0.04332,LD:0.177612,XC:0.008664,sC:0.02166,tC:0.008664,uC:0.04332,vC:0.02166,wC:0.463524,xC:0.030324,yC:0.04332,zC:0.255588,"0C":1.30393,"1C":0.047652,"2C":0,MD:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","BD","eC","I","eB","CD","J","DD","D","ED","E","F","FD","A","fC","B","SC","C","TC","K","GD","L","HD","G","ID","gC","hC","UC","JD","VC","iC","jC","kC","lC","mC","KD","WC","nC","oC","pC","qC","rC","LD","XC","sC","tC","uC","vC","wC","xC","yC","zC","0C","1C","2C","MD",""],E:"Safari",F:{BD:1205798400,eC:1226534400,I:1244419200,eB:1275868800,CD:1311120000,J:1343174400,DD:1382400000,D:1382400000,ED:1410998400,E:1413417600,F:1443657600,FD:1458518400,A:1474329600,fC:1490572800,B:1505779200,SC:1522281600,C:1537142400,TC:1553472000,K:1568851200,GD:1585008000,L:1600214400,HD:1619395200,G:1632096000,ID:1635292800,gC:1639353600,hC:1647216000,UC:1652745600,JD:1658275200,VC:1662940800,iC:1666569600,jC:1670889600,kC:1674432000,lC:1679875200,mC:1684368000,KD:1690156800,WC:1695686400,nC:1698192000,oC:1702252800,pC:1705881600,qC:1709596800,rC:1715558400,LD:1722211200,XC:1726444800,sC:1730073600,tC:1733875200,uC:1737936000,vC:1743379200,wC:1747008000,xC:1757894400,yC:1762128000,zC:1762041600,"0C":1770854400,"1C":1774310400,"2C":null,MD:null}},F:{A:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0.012996,"9":0.441864,F:0,B:0,C:0,G:0,M:0,N:0,O:0,fB:0,AB:0,BB:0,CB:0,DB:0,EB:0,FB:0,GB:0,HB:0,IB:0,JB:0,gB:0,hB:0,iB:0,jB:0,kB:0,lB:0,mB:0,nB:0,oB:0,pB:0,qB:0,rB:0,sB:0,tB:0,uB:0,vB:0,wB:0,xB:0,yB:0,zB:0,"0B":0,"1B":0,"2B":0,"3B":0,"4B":0,"5B":0,"6B":0,"7B":0,"8B":0,"9B":0,AC:0,BC:0,CC:0,DC:0,EC:0,FC:0,GC:0,HC:0,IC:0,JC:0,KC:0,LC:0,MC:0,NC:0,OC:0,PC:0,QC:0,P:0,H:0,Q:0,bC:0,R:0,S:0,T:0,U:0,V:0,W:0,X:0,Y:0,Z:0,a:0,b:0,c:0.004332,d:0.073644,e:0.06498,f:0,g:0,h:0,i:0,j:0,k:0,l:0,m:0,n:0,o:0,p:0,q:0,r:0,s:0,t:0,u:0,v:0,w:0,x:0,y:0,z:0,ND:0,OD:0,PD:0,QD:0,SC:0,"3C":0,RD:0,TC:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","F","ND","OD","PD","QD","B","SC","3C","RD","C","TC","G","M","N","O","fB","AB","BB","CB","DB","EB","FB","GB","HB","IB","JB","gB","hB","iB","jB","kB","lB","mB","nB","oB","pB","qB","rB","sB","tB","uB","vB","wB","xB","yB","zB","0B","1B","2B","3B","4B","5B","6B","7B","8B","9B","AC","BC","CC","DC","EC","FC","GC","HC","IC","JC","KC","LC","MC","NC","OC","PC","QC","P","H","Q","bC","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","0","1","2","3","4","5","6","7","8","9","","",""],E:"Opera",F:{"0":1744675200,"1":1747094400,"2":1751414400,"3":1756339200,"4":1757548800,"5":1761609600,"6":1762992000,"7":1764806400,"8":1769990400,"9":1772064000,F:1150761600,ND:1223424000,OD:1251763200,PD:1267488000,QD:1277942400,B:1292457600,SC:1302566400,"3C":1309219200,RD:1323129600,C:1323129600,TC:1352073600,G:1372723200,M:1377561600,N:1381104000,O:1386288000,fB:1390867200,AB:1393891200,BB:1399334400,CB:1401753600,DB:1405987200,EB:1409616000,FB:1413331200,GB:1417132800,HB:1422316800,IB:1425945600,JB:1430179200,gB:1433808000,hB:1438646400,iB:1442448000,jB:1445904000,kB:1449100800,lB:1454371200,mB:1457308800,nB:1462320000,oB:1465344000,pB:1470096000,qB:1474329600,rB:1477267200,sB:1481587200,tB:1486425600,uB:1490054400,vB:1494374400,wB:1498003200,xB:1502236800,yB:1506470400,zB:1510099200,"0B":1515024000,"1B":1517961600,"2B":1521676800,"3B":1525910400,"4B":1530144000,"5B":1534982400,"6B":1537833600,"7B":1543363200,"8B":1548201600,"9B":1554768000,AC:1561593600,BC:1566259200,CC:1570406400,DC:1573689600,EC:1578441600,FC:1583971200,GC:1587513600,HC:1592956800,IC:1595894400,JC:1600128000,KC:1603238400,LC:1613520000,MC:1612224000,NC:1616544000,OC:1619568000,PC:1623715200,QC:1627948800,P:1631577600,H:1633392000,Q:1635984000,bC:1638403200,R:1642550400,S:1644969600,T:1647993600,U:1650412800,V:1652745600,W:1654646400,X:1657152000,Y:1660780800,Z:1663113600,a:1668816000,b:1668643200,c:1671062400,d:1675209600,e:1677024000,f:1679529600,g:1681948800,h:1684195200,i:1687219200,j:1690329600,k:1692748800,l:1696204800,m:1699920000,n:1699920000,o:1702944000,p:1707264000,q:1710115200,r:1711497600,s:1716336000,t:1719273600,u:1721088000,v:1724284800,w:1727222400,x:1732665600,y:1736294400,z:1739404800},D:{F:"o",B:"o",C:"o",ND:"o",OD:"o",PD:"o",QD:"o",SC:"o","3C":"o",RD:"o",TC:"o"}},G:{A:{E:0,eC:0,SD:0,"4C":0.00147255,TD:0,UD:0,VD:0.00294509,WD:0,XD:0,YD:0,ZD:0,aD:0.00736273,bD:0.185541,cD:0.00441764,dD:0,eD:0.0574293,fD:0,gD:0.0220882,hD:0.00294509,iD:0.00736273,jD:0.0132529,kD:0.0132529,lD:0.0191431,gC:0.0117804,hC:0.0147255,UC:0.016198,mD:0.260641,VC:0.0265058,iC:0.0515391,jC:0.0294509,kC:0.0530117,lC:0.0117804,mC:0.0220882,nD:0.362246,WC:0.016198,nC:0.0265058,oC:0.0235607,pC:0.032396,qC:0.0530117,rC:0.100133,oD:0.257696,XC:0.0559568,sC:0.114859,tC:0.0603744,uC:0.192904,vC:0.0927704,wC:2.95098,xC:0.184068,yC:0.279784,zC:1.64631,"0C":7.15216,"1C":0.268003,"2C":0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","eC","SD","4C","TD","UD","VD","E","WD","XD","YD","ZD","aD","bD","cD","dD","eD","fD","gD","hD","iD","jD","kD","lD","gC","hC","UC","mD","VC","iC","jC","kC","lC","mC","nD","WC","nC","oC","pC","qC","rC","oD","XC","sC","tC","uC","vC","wC","xC","yC","zC","0C","1C","2C","",""],E:"Safari on iOS",F:{eC:1270252800,SD:1283904000,"4C":1299628800,TD:1331078400,UD:1359331200,VD:1394409600,E:1410912000,WD:1413763200,XD:1442361600,YD:1458518400,ZD:1473724800,aD:1490572800,bD:1505779200,cD:1522281600,dD:1537142400,eD:1553472000,fD:1568851200,gD:1572220800,hD:1580169600,iD:1585008000,jD:1600214400,kD:1619395200,lD:1632096000,gC:1639353600,hC:1647216000,UC:1652659200,mD:1658275200,VC:1662940800,iC:1666569600,jC:1670889600,kC:1674432000,lC:1679875200,mC:1684368000,nD:1690156800,WC:1694995200,nC:1698192000,oC:1702252800,pC:1705881600,qC:1709596800,rC:1715558400,oD:1722211200,XC:1726444800,sC:1730073600,tC:1733875200,uC:1737936000,vC:1743379200,wC:1747008000,xC:1757894400,yC:1762128000,zC:1765497600,"0C":1770854400,"1C":1774310400,"2C":null}},H:{A:{pD:0},B:"o",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","pD","","",""],E:"Opera Mini",F:{pD:1426464000}},I:{A:{YC:0,I:0,KB:0.0509661,qD:0,rD:0,sD:0,tD:0,"4C":0,uD:0,vD:0.000025506},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","qD","rD","sD","YC","I","tD","4C","uD","vD","KB","","",""],E:"Android Browser",F:{qD:1256515200,rD:1274313600,sD:1291593600,YC:1298332800,I:1318896000,tD:1341792000,"4C":1374624000,uD:1386547200,vD:1401667200,KB:1775606400}},J:{A:{D:0,A:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","D","A","","",""],E:"Blackberry Browser",F:{D:1325376000,A:1359504000}},K:{A:{A:0,B:0,C:0,H:0.895544,SC:0,"3C":0,TC:0},B:"o",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A","B","SC","3C","C","TC","H","","",""],E:"Opera Mobile",F:{A:1287100800,B:1300752000,SC:1314835200,"3C":1318291200,C:1330300800,TC:1349740800,H:1709769600},D:{H:"webkit"}},L:{A:{KB:44.7569},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","KB","","",""],E:"Chrome for Android",F:{KB:1775606400}},M:{A:{RC:0.351416},B:"moz",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","RC","","",""],E:"Firefox for Android",F:{RC:1774310400}},N:{A:{A:0,B:0},B:"ms",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A","B","","",""],E:"IE Mobile",F:{A:1340150400,B:1353456000}},O:{A:{UC:0.640484},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","UC","","",""],E:"UC Browser for Android",F:{UC:1710115200},D:{UC:"webkit"}},P:{A:{I:0,AB:0,BB:0.0107893,CB:0,DB:0,EB:0.0107893,FB:0.0107893,GB:0.032368,HB:0.032368,IB:0.0863147,JB:1.94208,wD:0,xD:0,yD:0,zD:0,"0D":0,fC:0,"1D":0,"2D":0,"3D":0,"4D":0,"5D":0,VC:0,WC:0,XC:0,"6D":0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","I","wD","xD","yD","zD","0D","fC","1D","2D","3D","4D","5D","VC","WC","XC","6D","AB","BB","CB","DB","EB","FB","GB","HB","IB","JB","","",""],E:"Samsung Internet",F:{I:1461024000,wD:1481846400,xD:1509408000,yD:1528329600,zD:1546128000,"0D":1554163200,fC:1567900800,"1D":1582588800,"2D":1593475200,"3D":1605657600,"4D":1618531200,"5D":1629072000,VC:1640736000,WC:1651708800,XC:1659657600,"6D":1667260800,AB:1677369600,BB:1684454400,CB:1689292800,DB:1697587200,EB:1711497600,FB:1715126400,GB:1717718400,HB:1725667200,IB:1746057600,JB:1761264000}},Q:{A:{"7D":0.11336},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","7D","","",""],E:"QQ Browser",F:{"7D":1710288000}},R:{A:{"8D":0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","8D","","",""],E:"Baidu Browser",F:{"8D":1710201600}},S:{A:{"9D":0.005668,AE:0},B:"moz",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","9D","AE","","",""],E:"KaiOS Browser",F:{"9D":1527811200,AE:1631664000}}}; diff --git a/server/api/node_modules/caniuse-lite/data/browserVersions.js b/server/api/node_modules/caniuse-lite/data/browserVersions.js new file mode 100644 index 0000000..ef90459 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/browserVersions.js @@ -0,0 +1 @@ +module.exports={"0":"118","1":"119","2":"120","3":"121","4":"122","5":"123","6":"124","7":"125","8":"126","9":"127",A:"10",B:"11",C:"12",D:"7",E:"8",F:"9",G:"15",H:"80",I:"4",J:"6",K:"13",L:"14",M:"16",N:"17",O:"18",P:"79",Q:"81",R:"83",S:"84",T:"85",U:"86",V:"87",W:"88",X:"89",Y:"90",Z:"91",a:"92",b:"93",c:"94",d:"95",e:"96",f:"97",g:"98",h:"99",i:"100",j:"101",k:"102",l:"103",m:"104",n:"105",o:"106",p:"107",q:"108",r:"109",s:"110",t:"111",u:"112",v:"113",w:"114",x:"115",y:"116",z:"117",AB:"20",BB:"21",CB:"22",DB:"23",EB:"24",FB:"25",GB:"26",HB:"27",IB:"28",JB:"29",KB:"147",LB:"128",MB:"129",NB:"130",OB:"131",PB:"132",QB:"133",RB:"134",SB:"135",TB:"136",UB:"137",VB:"138",WB:"139",XB:"140",YB:"141",ZB:"142",aB:"143",bB:"144",cB:"145",dB:"146",eB:"5",fB:"19",gB:"30",hB:"31",iB:"32",jB:"33",kB:"34",lB:"35",mB:"36",nB:"37",oB:"38",pB:"39",qB:"40",rB:"41",sB:"42",tB:"43",uB:"44",vB:"45",wB:"46",xB:"47",yB:"48",zB:"49","0B":"50","1B":"51","2B":"52","3B":"53","4B":"54","5B":"55","6B":"56","7B":"57","8B":"58","9B":"60",AC:"62",BC:"63",CC:"64",DC:"65",EC:"66",FC:"67",GC:"68",HC:"69",IC:"70",JC:"71",KC:"72",LC:"73",MC:"74",NC:"75",OC:"76",PC:"77",QC:"78",RC:"149",SC:"11.1",TC:"12.1",UC:"15.5",VC:"16.0",WC:"17.0",XC:"18.0",YC:"3",ZC:"59",aC:"61",bC:"82",cC:"148",dC:"150",eC:"3.2",fC:"10.1",gC:"15.2-15.3",hC:"15.4",iC:"16.1",jC:"16.2",kC:"16.3",lC:"16.4",mC:"16.5",nC:"17.1",oC:"17.2",pC:"17.3",qC:"17.4",rC:"17.5",sC:"18.1",tC:"18.2",uC:"18.3",vC:"18.4",wC:"18.5-18.7",xC:"26.0",yC:"26.1",zC:"26.2","0C":"26.3","1C":"26.4","2C":"26.5","3C":"11.5","4C":"4.2-4.3","5C":"5.5","6C":"2","7C":"151","8C":"152","9C":"3.5",AD:"3.6",BD:"3.1",CD:"5.1",DD:"6.1",ED:"7.1",FD:"9.1",GD:"13.1",HD:"14.1",ID:"15.1",JD:"15.6",KD:"16.6",LD:"17.6",MD:"TP",ND:"9.5-9.6",OD:"10.0-10.1",PD:"10.5",QD:"10.6",RD:"11.6",SD:"4.0-4.1",TD:"5.0-5.1",UD:"6.0-6.1",VD:"7.0-7.1",WD:"8.1-8.4",XD:"9.0-9.2",YD:"9.3",ZD:"10.0-10.2",aD:"10.3",bD:"11.0-11.2",cD:"11.3-11.4",dD:"12.0-12.1",eD:"12.2-12.5",fD:"13.0-13.1",gD:"13.2",hD:"13.3",iD:"13.4-13.7",jD:"14.0-14.4",kD:"14.5-14.8",lD:"15.0-15.1",mD:"15.6-15.8",nD:"16.6-16.7",oD:"17.6-17.7",pD:"all",qD:"2.1",rD:"2.2",sD:"2.3",tD:"4.1",uD:"4.4",vD:"4.4.3-4.4.4",wD:"5.0-5.4",xD:"6.2-6.4",yD:"7.2-7.4",zD:"8.2","0D":"9.2","1D":"11.1-11.2","2D":"12.0","3D":"13.0","4D":"14.0","5D":"15.0","6D":"19.0","7D":"14.9","8D":"13.52","9D":"2.5",AE:"3.0-3.1"}; diff --git a/server/api/node_modules/caniuse-lite/data/browsers.js b/server/api/node_modules/caniuse-lite/data/browsers.js new file mode 100644 index 0000000..04fbb50 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/browsers.js @@ -0,0 +1 @@ +module.exports={A:"ie",B:"edge",C:"firefox",D:"chrome",E:"safari",F:"opera",G:"ios_saf",H:"op_mini",I:"android",J:"bb",K:"op_mob",L:"and_chr",M:"and_ff",N:"ie_mob",O:"and_uc",P:"samsung",Q:"and_qq",R:"baidu",S:"kaios"}; diff --git a/server/api/node_modules/caniuse-lite/data/features.js b/server/api/node_modules/caniuse-lite/data/features.js new file mode 100644 index 0000000..2a3d561 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features.js @@ -0,0 +1 @@ +module.exports={"aac":require("./features/aac"),"abortcontroller":require("./features/abortcontroller"),"ac3-ec3":require("./features/ac3-ec3"),"accelerometer":require("./features/accelerometer"),"addeventlistener":require("./features/addeventlistener"),"alternate-stylesheet":require("./features/alternate-stylesheet"),"ambient-light":require("./features/ambient-light"),"apng":require("./features/apng"),"array-find-index":require("./features/array-find-index"),"array-find":require("./features/array-find"),"array-flat":require("./features/array-flat"),"array-includes":require("./features/array-includes"),"arrow-functions":require("./features/arrow-functions"),"asmjs":require("./features/asmjs"),"async-clipboard":require("./features/async-clipboard"),"async-functions":require("./features/async-functions"),"atob-btoa":require("./features/atob-btoa"),"audio-api":require("./features/audio-api"),"audio":require("./features/audio"),"audiotracks":require("./features/audiotracks"),"autofocus":require("./features/autofocus"),"auxclick":require("./features/auxclick"),"av1":require("./features/av1"),"avif":require("./features/avif"),"background-attachment":require("./features/background-attachment"),"background-clip-text":require("./features/background-clip-text"),"background-img-opts":require("./features/background-img-opts"),"background-position-x-y":require("./features/background-position-x-y"),"background-repeat-round-space":require("./features/background-repeat-round-space"),"background-sync":require("./features/background-sync"),"battery-status":require("./features/battery-status"),"beacon":require("./features/beacon"),"beforeafterprint":require("./features/beforeafterprint"),"bigint":require("./features/bigint"),"blobbuilder":require("./features/blobbuilder"),"bloburls":require("./features/bloburls"),"border-image":require("./features/border-image"),"border-radius":require("./features/border-radius"),"broadcastchannel":require("./features/broadcastchannel"),"brotli":require("./features/brotli"),"calc":require("./features/calc"),"canvas-blending":require("./features/canvas-blending"),"canvas-text":require("./features/canvas-text"),"canvas":require("./features/canvas"),"ch-unit":require("./features/ch-unit"),"chacha20-poly1305":require("./features/chacha20-poly1305"),"channel-messaging":require("./features/channel-messaging"),"childnode-remove":require("./features/childnode-remove"),"classlist":require("./features/classlist"),"client-hints-dpr-width-viewport":require("./features/client-hints-dpr-width-viewport"),"clipboard":require("./features/clipboard"),"colr-v1":require("./features/colr-v1"),"colr":require("./features/colr"),"comparedocumentposition":require("./features/comparedocumentposition"),"console-basic":require("./features/console-basic"),"console-time":require("./features/console-time"),"const":require("./features/const"),"constraint-validation":require("./features/constraint-validation"),"contenteditable":require("./features/contenteditable"),"contentsecuritypolicy":require("./features/contentsecuritypolicy"),"contentsecuritypolicy2":require("./features/contentsecuritypolicy2"),"cookie-store-api":require("./features/cookie-store-api"),"cors":require("./features/cors"),"createimagebitmap":require("./features/createimagebitmap"),"credential-management":require("./features/credential-management"),"cross-document-view-transitions":require("./features/cross-document-view-transitions"),"cryptography":require("./features/cryptography"),"css-all":require("./features/css-all"),"css-anchor-positioning":require("./features/css-anchor-positioning"),"css-animation":require("./features/css-animation"),"css-any-link":require("./features/css-any-link"),"css-appearance":require("./features/css-appearance"),"css-at-counter-style":require("./features/css-at-counter-style"),"css-autofill":require("./features/css-autofill"),"css-backdrop-filter":require("./features/css-backdrop-filter"),"css-background-offsets":require("./features/css-background-offsets"),"css-backgroundblendmode":require("./features/css-backgroundblendmode"),"css-boxdecorationbreak":require("./features/css-boxdecorationbreak"),"css-boxshadow":require("./features/css-boxshadow"),"css-canvas":require("./features/css-canvas"),"css-caret-color":require("./features/css-caret-color"),"css-cascade-layers":require("./features/css-cascade-layers"),"css-cascade-scope":require("./features/css-cascade-scope"),"css-case-insensitive":require("./features/css-case-insensitive"),"css-clip-path":require("./features/css-clip-path"),"css-color-adjust":require("./features/css-color-adjust"),"css-color-function":require("./features/css-color-function"),"css-conic-gradients":require("./features/css-conic-gradients"),"css-container-queries-style":require("./features/css-container-queries-style"),"css-container-queries":require("./features/css-container-queries"),"css-container-query-units":require("./features/css-container-query-units"),"css-containment":require("./features/css-containment"),"css-content-visibility":require("./features/css-content-visibility"),"css-counters":require("./features/css-counters"),"css-crisp-edges":require("./features/css-crisp-edges"),"css-cross-fade":require("./features/css-cross-fade"),"css-default-pseudo":require("./features/css-default-pseudo"),"css-descendant-gtgt":require("./features/css-descendant-gtgt"),"css-deviceadaptation":require("./features/css-deviceadaptation"),"css-dir-pseudo":require("./features/css-dir-pseudo"),"css-display-contents":require("./features/css-display-contents"),"css-element-function":require("./features/css-element-function"),"css-env-function":require("./features/css-env-function"),"css-exclusions":require("./features/css-exclusions"),"css-featurequeries":require("./features/css-featurequeries"),"css-file-selector-button":require("./features/css-file-selector-button"),"css-filter-function":require("./features/css-filter-function"),"css-filters":require("./features/css-filters"),"css-first-letter":require("./features/css-first-letter"),"css-first-line":require("./features/css-first-line"),"css-fixed":require("./features/css-fixed"),"css-focus-visible":require("./features/css-focus-visible"),"css-focus-within":require("./features/css-focus-within"),"css-font-palette":require("./features/css-font-palette"),"css-font-rendering-controls":require("./features/css-font-rendering-controls"),"css-font-stretch":require("./features/css-font-stretch"),"css-gencontent":require("./features/css-gencontent"),"css-gradients":require("./features/css-gradients"),"css-grid-animation":require("./features/css-grid-animation"),"css-grid-lanes":require("./features/css-grid-lanes"),"css-grid":require("./features/css-grid"),"css-hanging-punctuation":require("./features/css-hanging-punctuation"),"css-has":require("./features/css-has"),"css-hyphens":require("./features/css-hyphens"),"css-if":require("./features/css-if"),"css-image-orientation":require("./features/css-image-orientation"),"css-image-set":require("./features/css-image-set"),"css-in-out-of-range":require("./features/css-in-out-of-range"),"css-indeterminate-pseudo":require("./features/css-indeterminate-pseudo"),"css-initial-letter":require("./features/css-initial-letter"),"css-initial-value":require("./features/css-initial-value"),"css-lch-lab":require("./features/css-lch-lab"),"css-letter-spacing":require("./features/css-letter-spacing"),"css-line-clamp":require("./features/css-line-clamp"),"css-logical-props":require("./features/css-logical-props"),"css-marker-pseudo":require("./features/css-marker-pseudo"),"css-masks":require("./features/css-masks"),"css-matches-pseudo":require("./features/css-matches-pseudo"),"css-math-functions":require("./features/css-math-functions"),"css-media-interaction":require("./features/css-media-interaction"),"css-media-range-syntax":require("./features/css-media-range-syntax"),"css-media-resolution":require("./features/css-media-resolution"),"css-media-scripting":require("./features/css-media-scripting"),"css-mediaqueries":require("./features/css-mediaqueries"),"css-mixblendmode":require("./features/css-mixblendmode"),"css-module-scripts":require("./features/css-module-scripts"),"css-motion-paths":require("./features/css-motion-paths"),"css-namespaces":require("./features/css-namespaces"),"css-nesting":require("./features/css-nesting"),"css-not-sel-list":require("./features/css-not-sel-list"),"css-nth-child-of":require("./features/css-nth-child-of"),"css-opacity":require("./features/css-opacity"),"css-optional-pseudo":require("./features/css-optional-pseudo"),"css-overflow-anchor":require("./features/css-overflow-anchor"),"css-overflow-overlay":require("./features/css-overflow-overlay"),"css-overflow":require("./features/css-overflow"),"css-overscroll-behavior":require("./features/css-overscroll-behavior"),"css-page-break":require("./features/css-page-break"),"css-paged-media":require("./features/css-paged-media"),"css-paint-api":require("./features/css-paint-api"),"css-placeholder-shown":require("./features/css-placeholder-shown"),"css-placeholder":require("./features/css-placeholder"),"css-print-color-adjust":require("./features/css-print-color-adjust"),"css-read-only-write":require("./features/css-read-only-write"),"css-rebeccapurple":require("./features/css-rebeccapurple"),"css-reflections":require("./features/css-reflections"),"css-regions":require("./features/css-regions"),"css-relative-colors":require("./features/css-relative-colors"),"css-repeating-gradients":require("./features/css-repeating-gradients"),"css-resize":require("./features/css-resize"),"css-revert-value":require("./features/css-revert-value"),"css-rrggbbaa":require("./features/css-rrggbbaa"),"css-scroll-behavior":require("./features/css-scroll-behavior"),"css-scrollbar":require("./features/css-scrollbar"),"css-sel2":require("./features/css-sel2"),"css-sel3":require("./features/css-sel3"),"css-selection":require("./features/css-selection"),"css-shapes":require("./features/css-shapes"),"css-snappoints":require("./features/css-snappoints"),"css-sticky":require("./features/css-sticky"),"css-subgrid":require("./features/css-subgrid"),"css-supports-api":require("./features/css-supports-api"),"css-table":require("./features/css-table"),"css-text-align-last":require("./features/css-text-align-last"),"css-text-box-trim":require("./features/css-text-box-trim"),"css-text-indent":require("./features/css-text-indent"),"css-text-justify":require("./features/css-text-justify"),"css-text-orientation":require("./features/css-text-orientation"),"css-text-spacing":require("./features/css-text-spacing"),"css-text-wrap-balance":require("./features/css-text-wrap-balance"),"css-textshadow":require("./features/css-textshadow"),"css-touch-action":require("./features/css-touch-action"),"css-transitions":require("./features/css-transitions"),"css-unicode-bidi":require("./features/css-unicode-bidi"),"css-unset-value":require("./features/css-unset-value"),"css-variables":require("./features/css-variables"),"css-when-else":require("./features/css-when-else"),"css-widows-orphans":require("./features/css-widows-orphans"),"css-width-stretch":require("./features/css-width-stretch"),"css-writing-mode":require("./features/css-writing-mode"),"css-zoom":require("./features/css-zoom"),"css3-attr":require("./features/css3-attr"),"css3-boxsizing":require("./features/css3-boxsizing"),"css3-colors":require("./features/css3-colors"),"css3-cursors-grab":require("./features/css3-cursors-grab"),"css3-cursors-newer":require("./features/css3-cursors-newer"),"css3-cursors":require("./features/css3-cursors"),"css3-tabsize":require("./features/css3-tabsize"),"currentcolor":require("./features/currentcolor"),"custom-elements":require("./features/custom-elements"),"custom-elementsv1":require("./features/custom-elementsv1"),"customevent":require("./features/customevent"),"customizable-select":require("./features/customizable-select"),"datalist":require("./features/datalist"),"dataset":require("./features/dataset"),"datauri":require("./features/datauri"),"date-tolocaledatestring":require("./features/date-tolocaledatestring"),"declarative-shadow-dom":require("./features/declarative-shadow-dom"),"decorators":require("./features/decorators"),"details":require("./features/details"),"deviceorientation":require("./features/deviceorientation"),"devicepixelratio":require("./features/devicepixelratio"),"dialog":require("./features/dialog"),"dispatchevent":require("./features/dispatchevent"),"dnssec":require("./features/dnssec"),"do-not-track":require("./features/do-not-track"),"document-currentscript":require("./features/document-currentscript"),"document-evaluate-xpath":require("./features/document-evaluate-xpath"),"document-execcommand":require("./features/document-execcommand"),"document-policy":require("./features/document-policy"),"document-scrollingelement":require("./features/document-scrollingelement"),"documenthead":require("./features/documenthead"),"dom-manip-convenience":require("./features/dom-manip-convenience"),"dom-range":require("./features/dom-range"),"domcontentloaded":require("./features/domcontentloaded"),"dommatrix":require("./features/dommatrix"),"download":require("./features/download"),"dragndrop":require("./features/dragndrop"),"element-closest":require("./features/element-closest"),"element-from-point":require("./features/element-from-point"),"element-scroll-methods":require("./features/element-scroll-methods"),"eme":require("./features/eme"),"eot":require("./features/eot"),"es5":require("./features/es5"),"es6-class":require("./features/es6-class"),"es6-generators":require("./features/es6-generators"),"es6-module-dynamic-import":require("./features/es6-module-dynamic-import"),"es6-module":require("./features/es6-module"),"es6-number":require("./features/es6-number"),"es6-string-includes":require("./features/es6-string-includes"),"es6":require("./features/es6"),"eventsource":require("./features/eventsource"),"extended-system-fonts":require("./features/extended-system-fonts"),"feature-policy":require("./features/feature-policy"),"fetch":require("./features/fetch"),"fieldset-disabled":require("./features/fieldset-disabled"),"fileapi":require("./features/fileapi"),"filereader":require("./features/filereader"),"filereadersync":require("./features/filereadersync"),"filesystem":require("./features/filesystem"),"flac":require("./features/flac"),"flexbox-gap":require("./features/flexbox-gap"),"flexbox":require("./features/flexbox"),"flow-root":require("./features/flow-root"),"focusin-focusout-events":require("./features/focusin-focusout-events"),"font-family-system-ui":require("./features/font-family-system-ui"),"font-feature":require("./features/font-feature"),"font-kerning":require("./features/font-kerning"),"font-loading":require("./features/font-loading"),"font-size-adjust":require("./features/font-size-adjust"),"font-smooth":require("./features/font-smooth"),"font-unicode-range":require("./features/font-unicode-range"),"font-variant-alternates":require("./features/font-variant-alternates"),"font-variant-numeric":require("./features/font-variant-numeric"),"fontface":require("./features/fontface"),"form-attribute":require("./features/form-attribute"),"form-submit-attributes":require("./features/form-submit-attributes"),"form-validation":require("./features/form-validation"),"forms":require("./features/forms"),"fullscreen":require("./features/fullscreen"),"gamepad":require("./features/gamepad"),"geolocation":require("./features/geolocation"),"getboundingclientrect":require("./features/getboundingclientrect"),"getcomputedstyle":require("./features/getcomputedstyle"),"getelementsbyclassname":require("./features/getelementsbyclassname"),"getrandomvalues":require("./features/getrandomvalues"),"gyroscope":require("./features/gyroscope"),"hardwareconcurrency":require("./features/hardwareconcurrency"),"hashchange":require("./features/hashchange"),"heif":require("./features/heif"),"hevc":require("./features/hevc"),"hidden":require("./features/hidden"),"high-resolution-time":require("./features/high-resolution-time"),"history":require("./features/history"),"html-media-capture":require("./features/html-media-capture"),"html5semantic":require("./features/html5semantic"),"http-live-streaming":require("./features/http-live-streaming"),"http2":require("./features/http2"),"http3":require("./features/http3"),"iframe-sandbox":require("./features/iframe-sandbox"),"iframe-seamless":require("./features/iframe-seamless"),"iframe-srcdoc":require("./features/iframe-srcdoc"),"imagecapture":require("./features/imagecapture"),"ime":require("./features/ime"),"img-naturalwidth-naturalheight":require("./features/img-naturalwidth-naturalheight"),"import-maps":require("./features/import-maps"),"imports":require("./features/imports"),"indeterminate-checkbox":require("./features/indeterminate-checkbox"),"indexeddb":require("./features/indexeddb"),"indexeddb2":require("./features/indexeddb2"),"inline-block":require("./features/inline-block"),"innertext":require("./features/innertext"),"input-autocomplete-onoff":require("./features/input-autocomplete-onoff"),"input-color":require("./features/input-color"),"input-datetime":require("./features/input-datetime"),"input-email-tel-url":require("./features/input-email-tel-url"),"input-event":require("./features/input-event"),"input-file-accept":require("./features/input-file-accept"),"input-file-directory":require("./features/input-file-directory"),"input-file-multiple":require("./features/input-file-multiple"),"input-inputmode":require("./features/input-inputmode"),"input-minlength":require("./features/input-minlength"),"input-number":require("./features/input-number"),"input-pattern":require("./features/input-pattern"),"input-placeholder":require("./features/input-placeholder"),"input-range":require("./features/input-range"),"input-search":require("./features/input-search"),"input-selection":require("./features/input-selection"),"insert-adjacent":require("./features/insert-adjacent"),"insertadjacenthtml":require("./features/insertadjacenthtml"),"internationalization":require("./features/internationalization"),"intersectionobserver-v2":require("./features/intersectionobserver-v2"),"intersectionobserver":require("./features/intersectionobserver"),"intl-pluralrules":require("./features/intl-pluralrules"),"intrinsic-width":require("./features/intrinsic-width"),"jpeg2000":require("./features/jpeg2000"),"jpegxl":require("./features/jpegxl"),"jpegxr":require("./features/jpegxr"),"js-regexp-lookbehind":require("./features/js-regexp-lookbehind"),"json":require("./features/json"),"justify-content-space-evenly":require("./features/justify-content-space-evenly"),"kerning-pairs-ligatures":require("./features/kerning-pairs-ligatures"),"keyboardevent-charcode":require("./features/keyboardevent-charcode"),"keyboardevent-code":require("./features/keyboardevent-code"),"keyboardevent-getmodifierstate":require("./features/keyboardevent-getmodifierstate"),"keyboardevent-key":require("./features/keyboardevent-key"),"keyboardevent-location":require("./features/keyboardevent-location"),"keyboardevent-which":require("./features/keyboardevent-which"),"lazyload":require("./features/lazyload"),"let":require("./features/let"),"link-icon-png":require("./features/link-icon-png"),"link-icon-svg":require("./features/link-icon-svg"),"link-rel-dns-prefetch":require("./features/link-rel-dns-prefetch"),"link-rel-modulepreload":require("./features/link-rel-modulepreload"),"link-rel-preconnect":require("./features/link-rel-preconnect"),"link-rel-prefetch":require("./features/link-rel-prefetch"),"link-rel-preload":require("./features/link-rel-preload"),"link-rel-prerender":require("./features/link-rel-prerender"),"loading-lazy-attr":require("./features/loading-lazy-attr"),"loading-lazy-media":require("./features/loading-lazy-media"),"localecompare":require("./features/localecompare"),"magnetometer":require("./features/magnetometer"),"matchesselector":require("./features/matchesselector"),"matchmedia":require("./features/matchmedia"),"mathml":require("./features/mathml"),"maxlength":require("./features/maxlength"),"mdn-css-backdrop-pseudo-element":require("./features/mdn-css-backdrop-pseudo-element"),"mdn-css-unicode-bidi-isolate-override":require("./features/mdn-css-unicode-bidi-isolate-override"),"mdn-css-unicode-bidi-isolate":require("./features/mdn-css-unicode-bidi-isolate"),"mdn-css-unicode-bidi-plaintext":require("./features/mdn-css-unicode-bidi-plaintext"),"mdn-text-decoration-color":require("./features/mdn-text-decoration-color"),"mdn-text-decoration-line":require("./features/mdn-text-decoration-line"),"mdn-text-decoration-shorthand":require("./features/mdn-text-decoration-shorthand"),"mdn-text-decoration-style":require("./features/mdn-text-decoration-style"),"media-fragments":require("./features/media-fragments"),"mediacapture-fromelement":require("./features/mediacapture-fromelement"),"mediarecorder":require("./features/mediarecorder"),"mediasource":require("./features/mediasource"),"menu":require("./features/menu"),"meta-theme-color":require("./features/meta-theme-color"),"meter":require("./features/meter"),"midi":require("./features/midi"),"minmaxwh":require("./features/minmaxwh"),"mp3":require("./features/mp3"),"mpeg-dash":require("./features/mpeg-dash"),"mpeg4":require("./features/mpeg4"),"multibackgrounds":require("./features/multibackgrounds"),"multicolumn":require("./features/multicolumn"),"mutation-events":require("./features/mutation-events"),"mutationobserver":require("./features/mutationobserver"),"namevalue-storage":require("./features/namevalue-storage"),"native-filesystem-api":require("./features/native-filesystem-api"),"nav-timing":require("./features/nav-timing"),"netinfo":require("./features/netinfo"),"notifications":require("./features/notifications"),"object-entries":require("./features/object-entries"),"object-fit":require("./features/object-fit"),"object-observe":require("./features/object-observe"),"object-values":require("./features/object-values"),"objectrtc":require("./features/objectrtc"),"offline-apps":require("./features/offline-apps"),"offscreencanvas":require("./features/offscreencanvas"),"ogg-vorbis":require("./features/ogg-vorbis"),"ogv":require("./features/ogv"),"ol-reversed":require("./features/ol-reversed"),"once-event-listener":require("./features/once-event-listener"),"online-status":require("./features/online-status"),"opus":require("./features/opus"),"orientation-sensor":require("./features/orientation-sensor"),"outline":require("./features/outline"),"pad-start-end":require("./features/pad-start-end"),"page-transition-events":require("./features/page-transition-events"),"pagevisibility":require("./features/pagevisibility"),"passive-event-listener":require("./features/passive-event-listener"),"passkeys":require("./features/passkeys"),"passwordrules":require("./features/passwordrules"),"path2d":require("./features/path2d"),"payment-request":require("./features/payment-request"),"pdf-viewer":require("./features/pdf-viewer"),"permissions-api":require("./features/permissions-api"),"permissions-policy":require("./features/permissions-policy"),"picture-in-picture":require("./features/picture-in-picture"),"picture":require("./features/picture"),"ping":require("./features/ping"),"png-alpha":require("./features/png-alpha"),"pointer-events":require("./features/pointer-events"),"pointer":require("./features/pointer"),"pointerlock":require("./features/pointerlock"),"portals":require("./features/portals"),"prefers-color-scheme":require("./features/prefers-color-scheme"),"prefers-reduced-motion":require("./features/prefers-reduced-motion"),"progress":require("./features/progress"),"promise-finally":require("./features/promise-finally"),"promises":require("./features/promises"),"proximity":require("./features/proximity"),"proxy":require("./features/proxy"),"publickeypinning":require("./features/publickeypinning"),"push-api":require("./features/push-api"),"queryselector":require("./features/queryselector"),"readonly-attr":require("./features/readonly-attr"),"referrer-policy":require("./features/referrer-policy"),"registerprotocolhandler":require("./features/registerprotocolhandler"),"rel-noopener":require("./features/rel-noopener"),"rel-noreferrer":require("./features/rel-noreferrer"),"rellist":require("./features/rellist"),"rem":require("./features/rem"),"requestanimationframe":require("./features/requestanimationframe"),"requestidlecallback":require("./features/requestidlecallback"),"resizeobserver":require("./features/resizeobserver"),"resource-timing":require("./features/resource-timing"),"rest-parameters":require("./features/rest-parameters"),"rtcpeerconnection":require("./features/rtcpeerconnection"),"ruby":require("./features/ruby"),"run-in":require("./features/run-in"),"same-site-cookie-attribute":require("./features/same-site-cookie-attribute"),"screen-orientation":require("./features/screen-orientation"),"script-async":require("./features/script-async"),"script-defer":require("./features/script-defer"),"scrollintoview":require("./features/scrollintoview"),"scrollintoviewifneeded":require("./features/scrollintoviewifneeded"),"sdch":require("./features/sdch"),"selection-api":require("./features/selection-api"),"server-timing":require("./features/server-timing"),"serviceworkers":require("./features/serviceworkers"),"setimmediate":require("./features/setimmediate"),"shadowdom":require("./features/shadowdom"),"shadowdomv1":require("./features/shadowdomv1"),"sharedarraybuffer":require("./features/sharedarraybuffer"),"sharedworkers":require("./features/sharedworkers"),"sni":require("./features/sni"),"spdy":require("./features/spdy"),"speech-recognition":require("./features/speech-recognition"),"speech-synthesis":require("./features/speech-synthesis"),"spellcheck-attribute":require("./features/spellcheck-attribute"),"sql-storage":require("./features/sql-storage"),"srcset":require("./features/srcset"),"stream":require("./features/stream"),"streams":require("./features/streams"),"stricttransportsecurity":require("./features/stricttransportsecurity"),"style-scoped":require("./features/style-scoped"),"subresource-bundling":require("./features/subresource-bundling"),"subresource-integrity":require("./features/subresource-integrity"),"svg-css":require("./features/svg-css"),"svg-filters":require("./features/svg-filters"),"svg-fonts":require("./features/svg-fonts"),"svg-fragment":require("./features/svg-fragment"),"svg-html":require("./features/svg-html"),"svg-html5":require("./features/svg-html5"),"svg-img":require("./features/svg-img"),"svg-smil":require("./features/svg-smil"),"svg":require("./features/svg"),"sxg":require("./features/sxg"),"tabindex-attr":require("./features/tabindex-attr"),"template-literals":require("./features/template-literals"),"template":require("./features/template"),"temporal":require("./features/temporal"),"testfeat":require("./features/testfeat"),"text-decoration":require("./features/text-decoration"),"text-emphasis":require("./features/text-emphasis"),"text-overflow":require("./features/text-overflow"),"text-size-adjust":require("./features/text-size-adjust"),"text-stroke":require("./features/text-stroke"),"textcontent":require("./features/textcontent"),"textencoder":require("./features/textencoder"),"tls1-1":require("./features/tls1-1"),"tls1-2":require("./features/tls1-2"),"tls1-3":require("./features/tls1-3"),"touch":require("./features/touch"),"transforms2d":require("./features/transforms2d"),"transforms3d":require("./features/transforms3d"),"trusted-types":require("./features/trusted-types"),"ttf":require("./features/ttf"),"typedarrays":require("./features/typedarrays"),"u2f":require("./features/u2f"),"unhandledrejection":require("./features/unhandledrejection"),"upgradeinsecurerequests":require("./features/upgradeinsecurerequests"),"url-scroll-to-text-fragment":require("./features/url-scroll-to-text-fragment"),"url":require("./features/url"),"urlsearchparams":require("./features/urlsearchparams"),"use-strict":require("./features/use-strict"),"user-select-none":require("./features/user-select-none"),"user-timing":require("./features/user-timing"),"variable-fonts":require("./features/variable-fonts"),"vector-effect":require("./features/vector-effect"),"vibration":require("./features/vibration"),"video":require("./features/video"),"videotracks":require("./features/videotracks"),"view-transitions":require("./features/view-transitions"),"viewport-unit-variants":require("./features/viewport-unit-variants"),"viewport-units":require("./features/viewport-units"),"wai-aria":require("./features/wai-aria"),"wake-lock":require("./features/wake-lock"),"wasm-bigint":require("./features/wasm-bigint"),"wasm-bulk-memory":require("./features/wasm-bulk-memory"),"wasm-extended-const":require("./features/wasm-extended-const"),"wasm-gc":require("./features/wasm-gc"),"wasm-multi-memory":require("./features/wasm-multi-memory"),"wasm-multi-value":require("./features/wasm-multi-value"),"wasm-mutable-globals":require("./features/wasm-mutable-globals"),"wasm-nontrapping-fptoint":require("./features/wasm-nontrapping-fptoint"),"wasm-reference-types":require("./features/wasm-reference-types"),"wasm-relaxed-simd":require("./features/wasm-relaxed-simd"),"wasm-signext":require("./features/wasm-signext"),"wasm-simd":require("./features/wasm-simd"),"wasm-tail-calls":require("./features/wasm-tail-calls"),"wasm-threads":require("./features/wasm-threads"),"wasm":require("./features/wasm"),"wav":require("./features/wav"),"wbr-element":require("./features/wbr-element"),"web-animation":require("./features/web-animation"),"web-app-manifest":require("./features/web-app-manifest"),"web-bluetooth":require("./features/web-bluetooth"),"web-serial":require("./features/web-serial"),"web-share":require("./features/web-share"),"webauthn":require("./features/webauthn"),"webcodecs":require("./features/webcodecs"),"webgl":require("./features/webgl"),"webgl2":require("./features/webgl2"),"webgpu":require("./features/webgpu"),"webhid":require("./features/webhid"),"webkit-user-drag":require("./features/webkit-user-drag"),"webm":require("./features/webm"),"webnfc":require("./features/webnfc"),"webp":require("./features/webp"),"websockets":require("./features/websockets"),"webtransport":require("./features/webtransport"),"webusb":require("./features/webusb"),"webvr":require("./features/webvr"),"webvtt":require("./features/webvtt"),"webworkers":require("./features/webworkers"),"webxr":require("./features/webxr"),"will-change":require("./features/will-change"),"woff":require("./features/woff"),"woff2":require("./features/woff2"),"word-break":require("./features/word-break"),"wordwrap":require("./features/wordwrap"),"x-doc-messaging":require("./features/x-doc-messaging"),"x-frame-options":require("./features/x-frame-options"),"xhr2":require("./features/xhr2"),"xhtml":require("./features/xhtml"),"xhtmlsmil":require("./features/xhtmlsmil"),"xml-serializer":require("./features/xml-serializer"),"zstd":require("./features/zstd")}; diff --git a/server/api/node_modules/caniuse-lite/data/features/aac.js b/server/api/node_modules/caniuse-lite/data/features/aac.js new file mode 100644 index 0000000..8bc8f94 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/aac.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"F A B","2":"J D E 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"2":"6C YC I eB J D E F A B C K L G M N O fB AB BB 9C AD","132":"0 1 2 3 4 5 6 7 8 9 CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F","16":"A B"},E:{"1":"I eB J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"BD eC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ND OD PD QD SC 3C RD TC"},G:{"1":"E SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","16":"eC"},H:{"2":"pD"},I:{"1":"YC I KB tD 4C uD vD","2":"qD rD sD"},J:{"1":"A","2":"D"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"132":"RC"},N:{"1":"A","2":"B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"132":"9D AE"}},B:6,C:"AAC audio file format",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/abortcontroller.js b/server/api/node_modules/caniuse-lite/data/features/abortcontroller.js new file mode 100644 index 0000000..ad79fbe --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/abortcontroller.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G"},C:{"1":"0 1 2 3 4 5 6 7 8 9 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC"},E:{"1":"K L G TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B BD eC CD DD ED FD fC","130":"C SC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B ND OD PD QD SC 3C RD TC"},G:{"1":"cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I wD xD yD zD"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","2":"9D"}},B:1,C:"AbortController & AbortSignal",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/ac3-ec3.js b/server/api/node_modules/caniuse-lite/data/features/ac3-ec3.js new file mode 100644 index 0000000..cd86cdb --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/ac3-ec3.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"C K L G M N O","2":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC"},G:{"2":"E eC SD 4C TD UD VD WD","132":"XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D","132":"A"},K:{"2":"A B C H SC 3C","132":"TC"},L:{"2":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:6,C:"AC-3 (Dolby Digital) and EC-3 (Dolby Digital Plus) codecs",D:false}; diff --git a/server/api/node_modules/caniuse-lite/data/features/accelerometer.js b/server/api/node_modules/caniuse-lite/data/features/accelerometer.js new file mode 100644 index 0000000..4461ab4 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/accelerometer.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B","194":"8B ZC 9B aC AC BC CC DC EC"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B ND OD PD QD SC 3C RD TC"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"2":"9D AE"}},B:4,C:"Accelerometer",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/addeventlistener.js b/server/api/node_modules/caniuse-lite/data/features/addeventlistener.js new file mode 100644 index 0000000..aa1baff --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/addeventlistener.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"F A B","130":"J D E 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","257":"6C YC I eB J 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC"},G:{"1":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"1":"pD"},I:{"1":"YC I KB qD rD sD tD 4C uD vD"},J:{"1":"D A"},K:{"1":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"EventTarget.addEventListener()",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/alternate-stylesheet.js b/server/api/node_modules/caniuse-lite/data/features/alternate-stylesheet.js new file mode 100644 index 0000000..bb60606 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/alternate-stylesheet.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"E F A B","2":"J D 5C"},B:{"2":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"F B C ND OD PD QD SC 3C RD TC","16":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"16":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"16":"D A"},K:{"2":"H","16":"A B C SC 3C TC"},L:{"16":"KB"},M:{"16":"RC"},N:{"16":"A B"},O:{"16":"UC"},P:{"16":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"16":"8D"},S:{"1":"9D AE"}},B:1,C:"Alternate stylesheet",D:false}; diff --git a/server/api/node_modules/caniuse-lite/data/features/ambient-light.js b/server/api/node_modules/caniuse-lite/data/features/ambient-light.js new file mode 100644 index 0000000..1c5a1f4 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/ambient-light.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"2":"C K","132":"L G M N O","322":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"2":"6C YC I eB J D E F A B C K L G M N O fB AB BB 9C AD","132":"CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC","194":"0 1 2 3 4 5 6 7 8 9 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C"},D:{"2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B","322":"0 1 2 3 4 5 6 7 8 9 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC ND OD PD QD SC 3C RD TC","322":"0 1 2 3 4 5 6 7 8 9 LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C H SC 3C TC"},L:{"322":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"132":"9D AE"}},B:4,C:"Ambient Light Sensor",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/apng.js b/server/api/node_modules/caniuse-lite/data/features/apng.js new file mode 100644 index 0000000..0acbc1a --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/apng.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD","2":"6C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B"},E:{"1":"E F A B C K L G FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D BD eC CD DD ED"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC","2":"F G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB"},G:{"1":"E WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C TD UD VD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I wD xD"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:4,C:"Animated PNG (APNG)",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/array-find-index.js b/server/api/node_modules/caniuse-lite/data/features/array-find-index.js new file mode 100644 index 0000000..794a0ee --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/array-find-index.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB"},E:{"1":"E F A B C K L G ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D BD eC CD DD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB ND OD PD QD SC 3C RD TC"},G:{"1":"E WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C TD UD VD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D","16":"A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:6,C:"Array.prototype.findIndex",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/array-find.js b/server/api/node_modules/caniuse-lite/data/features/array-find.js new file mode 100644 index 0000000..f7f8bc3 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/array-find.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","16":"C K L"},C:{"1":"0 1 2 3 4 5 6 7 8 9 FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB"},E:{"1":"E F A B C K L G ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D BD eC CD DD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB ND OD PD QD SC 3C RD TC"},G:{"1":"E WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C TD UD VD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D","16":"A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:6,C:"Array.prototype.find",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/array-flat.js b/server/api/node_modules/caniuse-lite/data/features/array-flat.js new file mode 100644 index 0000000..a59cceb --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/array-flat.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC"},E:{"1":"C K L G TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B BD eC CD DD ED FD fC SC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B ND OD PD QD SC 3C RD TC"},G:{"1":"dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I wD xD yD zD 0D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","2":"9D"}},B:6,C:"flat & flatMap array methods",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/array-includes.js b/server/api/node_modules/caniuse-lite/data/features/array-includes.js new file mode 100644 index 0000000..794e719 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/array-includes.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K"},C:{"1":"0 1 2 3 4 5 6 7 8 9 tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB"},E:{"1":"F A B C K L G FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E BD eC CD DD ED"},F:{"1":"0 1 2 3 4 5 6 7 8 9 kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB ND OD PD QD SC 3C RD TC"},G:{"1":"XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:6,C:"Array.prototype.includes",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/arrow-functions.js b/server/api/node_modules/caniuse-lite/data/features/arrow-functions.js new file mode 100644 index 0000000..b52d074 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/arrow-functions.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB"},E:{"1":"A B C K L G fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F BD eC CD DD ED FD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB ND OD PD QD SC 3C RD TC"},G:{"1":"ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:6,C:"Arrow functions",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/asmjs.js b/server/api/node_modules/caniuse-lite/data/features/asmjs.js new file mode 100644 index 0000000..0a277db --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/asmjs.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"K L G M N O","132":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","322":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 9 CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB 9C AD"},D:{"2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB","132":"0 1 2 3 4 5 6 7 8 9 IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"2":"F B C ND OD PD QD SC 3C RD TC","132":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"2":"YC I qD rD sD tD 4C uD vD","132":"KB"},J:{"2":"D A"},K:{"2":"A B C SC 3C TC","132":"H"},L:{"132":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"132":"UC"},P:{"2":"I","132":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"132":"7D"},R:{"132":"8D"},S:{"1":"9D AE"}},B:6,C:"asm.js",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/async-clipboard.js b/server/api/node_modules/caniuse-lite/data/features/async-clipboard.js new file mode 100644 index 0000000..3d29052 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/async-clipboard.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"7 8 9 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC 9C AD","132":"0 1 2 3 4 5 6 BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},D:{"1":"0 1 2 3 4 5 6 7 8 9 EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC"},E:{"1":"L G GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C K BD eC CD DD ED FD fC SC TC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B ND OD PD QD SC 3C RD TC"},G:{"1":"jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD"},H:{"2":"pD"},I:{"2":"YC I qD rD sD tD 4C uD vD","260":"KB"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"FB GB HB IB JB","2":"I wD xD yD zD","260":"AB BB CB DB EB 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"2":"9D","132":"AE"}},B:5,C:"Asynchronous Clipboard API",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/async-functions.js b/server/api/node_modules/caniuse-lite/data/features/async-functions.js new file mode 100644 index 0000000..145e1b9 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/async-functions.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K","194":"L"},C:{"1":"0 1 2 3 4 5 6 7 8 9 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B"},E:{"1":"B C K L G SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A BD eC CD DD ED FD","258":"fC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB ND OD PD QD SC 3C RD TC"},G:{"1":"bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD","258":"aD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I wD"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","2":"9D"}},B:6,C:"Async functions",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/atob-btoa.js b/server/api/node_modules/caniuse-lite/data/features/atob-btoa.js new file mode 100644 index 0000000..0c67c68 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/atob-btoa.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J D E F 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z QD SC 3C RD TC","2":"F ND OD","16":"PD"},G:{"1":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"1":"pD"},I:{"1":"YC I KB qD rD sD tD 4C uD vD"},J:{"1":"D A"},K:{"1":"B C H SC 3C TC","16":"A"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"Base64 encoding and decoding",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/audio-api.js b/server/api/node_modules/caniuse-lite/data/features/audio-api.js new file mode 100644 index 0000000..82f3bfe --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/audio-api.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K","33":"L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB"},E:{"1":"G HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB BD eC CD","33":"J D E F A B C K L DD ED FD fC SC TC GD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ND OD PD QD SC 3C RD TC","33":"G M N O fB AB BB"},G:{"1":"kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C TD","33":"E UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:2,C:"Web Audio API",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/audio.js b/server/api/node_modules/caniuse-lite/data/features/audio.js new file mode 100644 index 0000000..b834f32 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/audio.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"F A B","2":"J D E 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC","132":"I eB J D E F A B C K L G M N O fB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z PD QD SC 3C RD TC","2":"F","4":"ND OD"},G:{"260":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"YC I KB sD tD 4C uD vD","2":"qD rD"},J:{"1":"D A"},K:{"1":"B C H SC 3C TC","2":"A"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"Audio element",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/audiotracks.js b/server/api/node_modules/caniuse-lite/data/features/audiotracks.js new file mode 100644 index 0000000..13ed1f4 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/audiotracks.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J D E F 5C"},B:{"1":"C K L G M N O","322":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB 9C AD","194":"0 1 2 3 4 5 6 7 8 9 jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C"},D:{"2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB","322":"0 1 2 3 4 5 6 7 8 9 vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"D E F A B C K L G DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J BD eC CD"},F:{"2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB ND OD PD QD SC 3C RD TC","322":"0 1 2 3 4 5 6 7 8 9 iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"1":"E VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C TD UD"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C SC 3C TC","322":"H"},L:{"322":"KB"},M:{"2":"RC"},N:{"1":"A B"},O:{"322":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"322":"7D"},R:{"322":"8D"},S:{"194":"9D AE"}},B:1,C:"Audio Tracks",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/autofocus.js b/server/api/node_modules/caniuse-lite/data/features/autofocus.js new file mode 100644 index 0000000..56d934a --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/autofocus.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J D E F 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I"},E:{"1":"eB J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I BD eC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC","2":"F"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"YC I KB tD 4C uD vD","2":"qD rD sD"},J:{"1":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","2":"9D"}},B:1,C:"Autofocus attribute",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/auxclick.js b/server/api/node_modules/caniuse-lite/data/features/auxclick.js new file mode 100644 index 0000000..fbc0e0c --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/auxclick.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 9C AD","129":"0 1 2 3 4 5 6 7 8 9 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B"},E:{"1":"tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB ND OD PD QD SC 3C RD TC"},G:{"1":"tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I"},Q:{"1":"7D"},R:{"1":"8D"},S:{"2":"9D AE"}},B:5,C:"Auxclick",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/av1.js b/server/api/node_modules/caniuse-lite/data/features/av1.js new file mode 100644 index 0000000..a04ba78 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/av1.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"3 4 5 6 7 8 9 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"0 1 2 C K L G M N y z","194":"O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x"},C:{"1":"0 1 2 3 4 5 6 7 8 9 FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 9C AD","66":"5B 6B 7B 8B ZC 9B aC AC BC CC","260":"DC","516":"EC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC","66":"FC GC HC"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD","1028":"WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B ND OD PD QD SC 3C RD TC"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD","1028":"WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB 2D 3D 4D 5D VC WC XC 6D","2":"I wD xD yD zD 0D fC 1D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"2":"9D AE"}},B:6,C:"AV1 video format",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/avif.js b/server/api/node_modules/caniuse-lite/data/features/avif.js new file mode 100644 index 0000000..5daa718 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/avif.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"3 4 5 6 7 8 9 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"0 1 2 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v","4162":"w x y z"},C:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC 9C AD","194":"PC QC P H Q bC R S T U V W X Y Z a","257":"b c d e f g h i j k l m n o p q r s","2049":"t u"},D:{"1":"0 1 2 3 4 5 6 7 8 9 T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S"},E:{"1":"lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC","1796":"iC jC kC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC ND OD PD QD SC 3C RD TC"},G:{"1":"lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD","1281":"VC iC jC kC"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB 4D 5D VC WC XC 6D","2":"I wD xD yD zD 0D fC 1D 2D 3D"},Q:{"2":"7D"},R:{"1":"8D"},S:{"2":"9D AE"}},B:6,C:"AVIF image format",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/background-attachment.js b/server/api/node_modules/caniuse-lite/data/features/background-attachment.js new file mode 100644 index 0000000..f304e0d --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/background-attachment.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"F A B","132":"J D E 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","132":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"eB J D E F A B C CD DD ED FD fC SC TC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","132":"I K BD eC GD","2050":"L G HD ID gC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z PD QD SC 3C RD TC","132":"F ND OD"},G:{"2":"eC SD 4C","4100":"hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","4868":"E TD UD VD WD XD YD ZD aD bD cD dD eD","6148":"fD gD hD iD jD kD lD gC"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD uD vD","132":"tD 4C"},J:{"260":"D A"},K:{"1":"B C H SC 3C TC","132":"A"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"2":"I","1028":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:4,C:"CSS background-attachment",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/background-clip-text.js b/server/api/node_modules/caniuse-lite/data/features/background-clip-text.js new file mode 100644 index 0000000..d4eb83b --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/background-clip-text.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"G M N O","33":"C K L","129":"2 3 4 5 6 7 8 9 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","161":"0 1 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},C:{"1":"0 1 2 3 4 5 6 7 8 9 zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB 9C AD"},D:{"129":"2 3 4 5 6 7 8 9 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","161":"0 1 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},E:{"2":"BD","129":"UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","388":"eB J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC","420":"I eC"},F:{"2":"F B C ND OD PD QD SC 3C RD TC","129":"0 1 2 3 4 5 6 7 8 9 o p q r s t u v w x y z","161":"G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n"},G:{"129":"UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","388":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC"},H:{"2":"pD"},I:{"16":"YC qD rD sD","129":"KB","161":"I tD 4C uD vD"},J:{"161":"D A"},K:{"16":"A B C SC 3C TC","129":"H"},L:{"129":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"161":"UC"},P:{"1":"FB GB HB IB JB","161":"I AB BB CB DB EB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"161":"7D"},R:{"161":"8D"},S:{"1":"9D AE"}},B:7,C:"Background-clip: text",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/background-img-opts.js b/server/api/node_modules/caniuse-lite/data/features/background-img-opts.js new file mode 100644 index 0000000..d866b58 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/background-img-opts.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"F A B","2":"J D E 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC 9C","36":"AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","516":"I eB J D E F A B C K L"},E:{"1":"D E F A B C K L G ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","772":"I eB J BD eC CD DD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z PD QD SC 3C RD TC","2":"F ND","36":"OD"},G:{"1":"E VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","4":"eC SD 4C UD","516":"TD"},H:{"132":"pD"},I:{"1":"KB uD vD","36":"qD","516":"YC I tD 4C","548":"rD sD"},J:{"1":"D A"},K:{"1":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:4,C:"CSS3 Background-image options",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/background-position-x-y.js b/server/api/node_modules/caniuse-lite/data/features/background-position-x-y.js new file mode 100644 index 0000000..129d2b7 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/background-position-x-y.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ND OD PD QD SC 3C RD TC"},G:{"1":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"YC I KB qD rD sD tD 4C uD vD"},J:{"1":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","2":"9D"}},B:7,C:"background-position-x & background-position-y",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/background-repeat-round-space.js b/server/api/node_modules/caniuse-lite/data/features/background-repeat-round-space.js new file mode 100644 index 0000000..2cef388 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/background-repeat-round-space.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J D E 5C","132":"F"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB"},E:{"1":"D E F A B C K L G ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J BD eC CD DD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z PD QD SC 3C RD TC","2":"F G M N O ND OD"},G:{"1":"E VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C TD UD"},H:{"1":"pD"},I:{"1":"KB uD vD","2":"YC I qD rD sD tD 4C"},J:{"1":"A","2":"D"},K:{"1":"B C H SC 3C TC","2":"A"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","2":"9D"}},B:4,C:"CSS background-repeat round and space",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/background-sync.js b/server/api/node_modules/caniuse-lite/data/features/background-sync.js new file mode 100644 index 0000000..8d31e37 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/background-sync.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC 9C AD","16":"dC 7C 8C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB ND OD PD QD SC 3C RD TC"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I"},Q:{"1":"7D"},R:{"1":"8D"},S:{"2":"9D AE"}},B:7,C:"Background Sync API",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/battery-status.js b/server/api/node_modules/caniuse-lite/data/features/battery-status.js new file mode 100644 index 0000000..c66cd9a --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/battery-status.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"tB uB vB wB xB yB zB 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD","132":"M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB","164":"A B C K L G"},D:{"1":"0 1 2 3 4 5 6 7 8 9 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB","66":"nB"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB ND OD PD QD SC 3C RD TC"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D","2":"AE"}},B:4,C:"Battery Status API",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/beacon.js b/server/api/node_modules/caniuse-lite/data/features/beacon.js new file mode 100644 index 0000000..6c3b1f9 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/beacon.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K"},C:{"1":"0 1 2 3 4 5 6 7 8 9 hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB"},E:{"1":"C K L G SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B BD eC CD DD ED FD fC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB ND OD PD QD SC 3C RD TC"},G:{"1":"cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:4,C:"Beacon API",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/beforeafterprint.js b/server/api/node_modules/caniuse-lite/data/features/beforeafterprint.js new file mode 100644 index 0000000..9f37d89 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/beforeafterprint.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"J D E F A B","16":"5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC"},E:{"1":"K L G GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C BD eC CD DD ED FD fC SC TC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB ND OD PD QD SC 3C RD TC"},G:{"1":"fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"16":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"16":"A B"},O:{"1":"UC"},P:{"2":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","16":"I"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"Printing Events",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/bigint.js b/server/api/node_modules/caniuse-lite/data/features/bigint.js new file mode 100644 index 0000000..b447686 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/bigint.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC 9C AD","194":"DC EC FC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC"},E:{"1":"L G HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C K BD eC CD DD ED FD fC SC TC GD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B ND OD PD QD SC 3C RD TC"},G:{"1":"jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I wD xD yD zD"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","2":"9D"}},B:6,C:"BigInt",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/blobbuilder.js b/server/api/node_modules/caniuse-lite/data/features/blobbuilder.js new file mode 100644 index 0000000..2b540b0 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/blobbuilder.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J D E F 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB 9C AD","36":"J D E F A B C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D","36":"E F A B C K L G M N O fB"},E:{"1":"J D E F A B C K L G DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB BD eC CD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z TC","2":"F B C ND OD PD QD SC 3C RD"},G:{"1":"E UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C TD"},H:{"2":"pD"},I:{"1":"KB","2":"qD rD sD","36":"YC I tD 4C uD vD"},J:{"1":"A","2":"D"},K:{"1":"H TC","2":"A B C SC 3C"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:5,C:"Blob constructing",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/bloburls.js b/server/api/node_modules/caniuse-lite/data/features/bloburls.js new file mode 100644 index 0000000..ae384d8 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/bloburls.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F 5C","129":"A B"},B:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","129":"C K L"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D","33":"E F A B C K L G M N O fB AB BB CB"},E:{"1":"D E F A B C K L G DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB BD eC CD","33":"J"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ND OD PD QD SC 3C RD TC"},G:{"1":"E VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C TD","33":"UD"},H:{"2":"pD"},I:{"1":"KB uD vD","2":"YC qD rD sD","33":"I tD 4C"},J:{"1":"A","2":"D"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"B","2":"A"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:5,C:"Blob URLs",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/border-image.js b/server/api/node_modules/caniuse-lite/data/features/border-image.js new file mode 100644 index 0000000..705db37 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/border-image.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","2":"J D E F A 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","129":"C K"},C:{"1":"0 1 2 3 4 5 6 7 8 9 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC","260":"G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB","804":"I eB J D E F A B C K L 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","260":"1B 2B 3B 4B 5B","388":"gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B","1412":"G M N O fB AB BB CB DB EB FB GB HB IB JB","1956":"I eB J D E F A B C K L"},E:{"1":"hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","129":"A B C K L G FD fC SC TC GD HD ID gC","1412":"J D E F DD ED","1956":"I eB BD eC CD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F ND OD","260":"oB pB qB rB sB","388":"G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB","1796":"PD QD","1828":"B C SC 3C RD TC"},G:{"1":"hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","129":"YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC","1412":"E UD VD WD XD","1956":"eC SD 4C TD"},H:{"1828":"pD"},I:{"1":"KB","388":"uD vD","1956":"YC I qD rD sD tD 4C"},J:{"1412":"A","1924":"D"},K:{"1":"H","2":"A","1828":"B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"B","2":"A"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","260":"wD xD","388":"I"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","260":"9D"}},B:4,C:"CSS3 Border images",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/border-radius.js b/server/api/node_modules/caniuse-lite/data/features/border-radius.js new file mode 100644 index 0000000..c892754 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/border-radius.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"F A B","2":"J D E 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","257":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB","289":"YC 9C AD","292":"6C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","33":"I"},E:{"1":"eB D E F A B C K L G ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","33":"I BD eC","129":"J CD DD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z PD QD SC 3C RD TC","2":"F ND OD"},G:{"1":"E SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","33":"eC"},H:{"2":"pD"},I:{"1":"YC I KB rD sD tD 4C uD vD","33":"qD"},J:{"1":"D A"},K:{"1":"B C H SC 3C TC","2":"A"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","257":"9D"}},B:4,C:"CSS3 Border-radius (rounded corners)",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/broadcastchannel.js b/server/api/node_modules/caniuse-lite/data/features/broadcastchannel.js new file mode 100644 index 0000000..9dcb8d7 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/broadcastchannel.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B"},E:{"1":"hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB ND OD PD QD SC 3C RD TC"},G:{"1":"hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I wD xD"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"BroadcastChannel",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/brotli.js b/server/api/node_modules/caniuse-lite/data/features/brotli.js new file mode 100644 index 0000000..e7d795b --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/brotli.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L"},C:{"1":"0 1 2 3 4 5 6 7 8 9 uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB","194":"zB","257":"0B"},E:{"1":"K L G GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A BD eC CD DD ED FD fC","513":"B C SC TC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB ND OD PD QD SC 3C RD TC","194":"mB nB"},G:{"1":"bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:6,C:"Brotli Accept-Encoding/Content-Encoding",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/calc.js b/server/api/node_modules/caniuse-lite/data/features/calc.js new file mode 100644 index 0000000..ac39e56 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/calc.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E 5C","260":"F","516":"A B"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC 9C AD","33":"I eB J D E F A B C K L G"},D:{"1":"0 1 2 3 4 5 6 7 8 9 GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O","33":"fB AB BB CB DB EB FB"},E:{"1":"D E F A B C K L G DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB BD eC CD","33":"J"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ND OD PD QD SC 3C RD TC"},G:{"1":"E VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C TD","33":"UD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C","132":"uD vD"},J:{"1":"A","2":"D"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:4,C:"calc() as CSS unit value",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/canvas-blending.js b/server/api/node_modules/caniuse-lite/data/features/canvas-blending.js new file mode 100644 index 0000000..fdf3763 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/canvas-blending.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB"},E:{"1":"D E F A B C K L G DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J BD eC CD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M ND OD PD QD SC 3C RD TC"},G:{"1":"E VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C TD UD"},H:{"2":"pD"},I:{"1":"KB uD vD","2":"YC I qD rD sD tD 4C"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:4,C:"Canvas blend modes",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/canvas-text.js b/server/api/node_modules/caniuse-lite/data/features/canvas-text.js new file mode 100644 index 0000000..0d6fef8 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/canvas-text.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"F A B","2":"5C","8":"J D E"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD","8":"6C YC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"I eB J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","8":"BD eC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z PD QD SC 3C RD TC","8":"F ND OD"},G:{"1":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"YC I KB qD rD sD tD 4C uD vD"},J:{"1":"D A"},K:{"1":"B C H SC 3C TC","8":"A"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"Text API for Canvas",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/canvas.js b/server/api/node_modules/caniuse-lite/data/features/canvas.js new file mode 100644 index 0000000..66d4225 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/canvas.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"F A B","2":"5C","8":"J D E"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C AD","132":"6C YC 9C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"I eB J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","132":"BD eC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC"},G:{"1":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"260":"pD"},I:{"1":"YC I KB tD 4C uD vD","132":"qD rD sD"},J:{"1":"D A"},K:{"1":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"Canvas (basic support)",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/ch-unit.js b/server/api/node_modules/caniuse-lite/data/features/ch-unit.js new file mode 100644 index 0000000..5b26944 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/ch-unit.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E 5C","132":"F A B"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB"},E:{"1":"D E F A B C K L G ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J BD eC CD DD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ND OD PD QD SC 3C RD TC"},G:{"1":"E VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C TD UD"},H:{"2":"pD"},I:{"1":"KB uD vD","2":"YC I qD rD sD tD 4C"},J:{"1":"A","2":"D"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:4,C:"ch (character) unit",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/chacha20-poly1305.js b/server/api/node_modules/caniuse-lite/data/features/chacha20-poly1305.js new file mode 100644 index 0000000..963db61 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/chacha20-poly1305.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB","129":"jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB"},E:{"1":"C K L G SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B BD eC CD DD ED FD fC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB ND OD PD QD SC 3C RD TC"},G:{"1":"bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD","16":"vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:6,C:"ChaCha20-Poly1305 cipher suites for TLS",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/channel-messaging.js b/server/api/node_modules/caniuse-lite/data/features/channel-messaging.js new file mode 100644 index 0000000..9f1f6a0 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/channel-messaging.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J D E F 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB 9C AD","194":"GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"eB J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I BD eC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z QD SC 3C RD TC","2":"F ND OD","16":"PD"},G:{"1":"E TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C"},H:{"2":"pD"},I:{"1":"KB uD vD","2":"YC I qD rD sD tD 4C"},J:{"1":"D A"},K:{"1":"B C H SC 3C TC","2":"A"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"Channel messaging",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/childnode-remove.js b/server/api/node_modules/caniuse-lite/data/features/childnode-remove.js new file mode 100644 index 0000000..7013bb1 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/childnode-remove.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","16":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 9 DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB"},E:{"1":"D E F A B C K L G DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB BD eC CD","16":"J"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ND OD PD QD SC 3C RD TC"},G:{"1":"E VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C TD UD"},H:{"2":"pD"},I:{"1":"KB uD vD","2":"YC I qD rD sD tD 4C"},J:{"1":"A","2":"D"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"ChildNode.remove()",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/classlist.js b/server/api/node_modules/caniuse-lite/data/features/classlist.js new file mode 100644 index 0000000..de080e6 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/classlist.js @@ -0,0 +1 @@ +module.exports={A:{A:{"8":"J D E F 5C","1924":"A B"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","8":"6C YC 9C","516":"EB FB","772":"I eB J D E F A B C K L G M N O fB AB BB CB DB AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","8":"I eB J D","516":"EB FB GB HB","772":"DB","900":"E F A B C K L G M N O fB AB BB CB"},E:{"1":"D E F A B C K L G ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","8":"I eB BD eC","900":"J CD DD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","8":"F B ND OD PD QD SC","900":"C 3C RD TC"},G:{"1":"E VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","8":"eC SD 4C","900":"TD UD"},H:{"900":"pD"},I:{"1":"KB uD vD","8":"qD rD sD","900":"YC I tD 4C"},J:{"1":"A","900":"D"},K:{"1":"H","8":"A B","900":"C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"900":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"classList (DOMTokenList)",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/client-hints-dpr-width-viewport.js b/server/api/node_modules/caniuse-lite/data/features/client-hints-dpr-width-viewport.js new file mode 100644 index 0000000..73c6dee --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/client-hints-dpr-width-viewport.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB ND OD PD QD SC 3C RD TC"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I"},Q:{"1":"7D"},R:{"1":"8D"},S:{"2":"9D AE"}},B:6,C:"Client Hints: DPR, Width, Viewport-Width",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/clipboard.js b/server/api/node_modules/caniuse-lite/data/features/clipboard.js new file mode 100644 index 0000000..f877c34 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/clipboard.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2436":"J D E F A B 5C"},B:{"260":"N O","2436":"C K L G M","8196":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"2":"6C YC I eB J D E F A B C K L G M N O fB AB BB 9C AD","772":"CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB","4100":"0 1 2 3 4 5 6 7 8 9 rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C"},D:{"2":"I eB J D E F A B C","2564":"K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB","8196":"0 1 2 3 4 5 6 7 8 9 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","10244":"tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B"},E:{"1":"C K L G TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","16":"BD eC","2308":"A B fC SC","2820":"I eB J D E F CD DD ED FD"},F:{"2":"F B ND OD PD QD SC 3C RD","16":"C","516":"TC","2564":"G M N O fB AB BB CB DB EB FB GB HB IB JB","8196":"0 1 2 3 4 5 6 7 8 9 vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","10244":"gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB"},G:{"1":"dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C","2820":"E TD UD VD WD XD YD ZD aD bD cD"},H:{"2":"pD"},I:{"2":"YC I qD rD sD tD 4C","260":"KB","2308":"uD vD"},J:{"2":"D","2308":"A"},K:{"2":"A B C SC 3C","16":"TC","8196":"H"},L:{"8196":"KB"},M:{"1028":"RC"},N:{"2":"A B"},O:{"8196":"UC"},P:{"2052":"wD xD","2308":"I","8196":"AB BB CB DB EB FB GB HB IB JB yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"8196":"7D"},R:{"8196":"8D"},S:{"4100":"9D AE"}},B:5,C:"Synchronous Clipboard API",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/colr-v1.js b/server/api/node_modules/caniuse-lite/data/features/colr-v1.js new file mode 100644 index 0000000..64849fb --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/colr-v1.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O P H Q R S T U V W X Y Z a b c d e f"},C:{"1":"0 1 2 3 4 5 6 7 8 9 p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f 9C AD","258":"g h i j k l m","578":"n o"},D:{"1":"0 1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X","194":"Y Z a b c d e f"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T ND OD PD QD SC 3C RD TC"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"16":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"16":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB XC 6D","2":"I wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:6,C:"COLR/CPAL(v1) Font Formats",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/colr.js b/server/api/node_modules/caniuse-lite/data/features/colr.js new file mode 100644 index 0000000..5eb270f --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/colr.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E 5C","257":"F A B"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","513":"P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r"},C:{"1":"0 1 2 3 4 5 6 7 8 9 iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC","513":"JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r"},E:{"1":"L G HD ID gC hC UC JD VC iC jC kC lC mC KD oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A BD eC CD DD ED FD fC","129":"B C K SC TC GD","1026":"WC nC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B ND OD PD QD SC 3C RD TC","513":"8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d"},G:{"1":"bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD","1026":"WC nC"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"16":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"16":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I wD xD yD zD 0D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:6,C:"COLR/CPAL(v0) Font Formats",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/comparedocumentposition.js b/server/api/node_modules/caniuse-lite/data/features/comparedocumentposition.js new file mode 100644 index 0000000..17c1404 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/comparedocumentposition.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"F A B","2":"J D E 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","16":"6C YC 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","16":"I eB J D E F A B C K L","132":"G M N O fB AB BB CB DB EB FB GB HB IB JB"},E:{"1":"A B C K L G fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","16":"I eB J BD eC","132":"D E F DD ED FD","260":"CD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z RD TC","16":"F B ND OD PD QD SC 3C","132":"G M"},G:{"1":"ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","16":"eC","132":"E SD 4C TD UD VD WD XD YD"},H:{"1":"pD"},I:{"1":"KB uD vD","16":"qD rD","132":"YC I sD tD 4C"},J:{"132":"D A"},K:{"1":"C H TC","16":"A B SC 3C"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"Node.compareDocumentPosition()",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/console-basic.js b/server/api/node_modules/caniuse-lite/data/features/console-basic.js new file mode 100644 index 0000000..b3b3f73 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/console-basic.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J D 5C","132":"E F"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z SC 3C RD TC","2":"F ND OD PD QD"},G:{"1":"eC SD 4C TD","513":"E UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"4097":"pD"},I:{"1025":"YC I KB qD rD sD tD 4C uD vD"},J:{"258":"D A"},K:{"2":"A","258":"B C SC 3C TC","1025":"H"},L:{"1025":"KB"},M:{"2049":"RC"},N:{"258":"A B"},O:{"258":"UC"},P:{"1025":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1025":"8D"},S:{"1":"9D AE"}},B:1,C:"Basic console logging functions",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/console-time.js b/server/api/node_modules/caniuse-lite/data/features/console-time.js new file mode 100644 index 0000000..2c5d2e5 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/console-time.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","2":"J D E F A 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"I eB J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"BD eC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z SC 3C RD TC","2":"F ND OD PD QD","16":"B"},G:{"1":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"1":"pD"},I:{"1":"YC I KB qD rD sD tD 4C uD vD"},J:{"1":"D A"},K:{"1":"H","16":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"B","2":"A"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"console.time and console.timeEnd",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/const.js b/server/api/node_modules/caniuse-lite/data/features/const.js new file mode 100644 index 0000000..7ee04e7 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/const.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A 5C","2052":"B"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","132":"6C YC I eB J D E F A B C 9C AD","260":"K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","260":"I eB J D E F A B C K L G M N O fB AB","772":"BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB","1028":"rB sB tB uB vB wB xB yB"},E:{"1":"B C K L G SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","260":"I eB A BD eC fC","772":"J D E F CD DD ED FD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F ND","132":"B OD PD QD SC 3C","644":"C RD TC","772":"G M N O fB AB BB CB DB EB FB GB HB","1028":"IB JB gB hB iB jB kB lB"},G:{"1":"bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","260":"eC SD 4C ZD aD","772":"E TD UD VD WD XD YD"},H:{"644":"pD"},I:{"1":"KB","16":"qD rD","260":"sD","772":"YC I tD 4C uD vD"},J:{"772":"D A"},K:{"1":"H","132":"A B SC 3C","644":"C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"B","2":"A"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","1028":"I"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:6,C:"const",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/constraint-validation.js b/server/api/node_modules/caniuse-lite/data/features/constraint-validation.js new file mode 100644 index 0000000..d24e9ab --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/constraint-validation.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F 5C","900":"A B"},B:{"1":"0 1 2 3 4 5 6 7 8 9 N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","388":"L G M","900":"C K"},C:{"1":"0 1 2 3 4 5 6 7 8 9 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC 9C AD","260":"zB 0B","388":"JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB","900":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","16":"I eB J D E F A B C K L","388":"FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB","900":"G M N O fB AB BB CB DB EB"},E:{"1":"A B C K L G fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","16":"I eB BD eC","388":"E F ED FD","900":"J D CD DD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","16":"F B ND OD PD QD SC 3C","388":"G M N O fB AB BB CB DB EB FB GB","900":"C RD TC"},G:{"1":"ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","16":"eC SD 4C","388":"E VD WD XD YD","900":"TD UD"},H:{"2":"pD"},I:{"1":"KB","16":"YC qD rD sD","388":"uD vD","900":"I tD 4C"},J:{"16":"D","388":"A"},K:{"1":"H","16":"A B SC 3C","900":"C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"900":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","388":"9D"}},B:1,C:"Constraint Validation API",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/contenteditable.js b/server/api/node_modules/caniuse-lite/data/features/contenteditable.js new file mode 100644 index 0000000..a04734a --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/contenteditable.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD","2":"6C","4":"YC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC"},G:{"1":"E TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C"},H:{"2":"pD"},I:{"1":"YC I KB tD 4C uD vD","2":"qD rD sD"},J:{"1":"D A"},K:{"1":"H TC","2":"A B C SC 3C"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"contenteditable attribute (basic support)",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/contentsecuritypolicy.js b/server/api/node_modules/caniuse-lite/data/features/contentsecuritypolicy.js new file mode 100644 index 0000000..532adfa --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/contentsecuritypolicy.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F 5C","132":"A B"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC 9C AD","129":"I eB J D E F A B C K L G M N O fB AB BB CB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K","257":"L G M N O fB AB BB CB DB EB"},E:{"1":"D E F A B C K L G ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB BD eC","257":"J DD","260":"CD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ND OD PD QD SC 3C RD TC"},G:{"1":"E VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C","257":"UD","260":"TD"},H:{"2":"pD"},I:{"1":"KB uD vD","2":"YC I qD rD sD tD 4C"},J:{"2":"D","257":"A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"132":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:4,C:"Content Security Policy 1.0",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/contentsecuritypolicy2.js b/server/api/node_modules/caniuse-lite/data/features/contentsecuritypolicy2.js new file mode 100644 index 0000000..47037f6 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/contentsecuritypolicy2.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L","4100":"G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB 9C AD","132":"hB iB jB kB","260":"lB","516":"mB nB oB pB qB rB sB tB uB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB","1028":"mB nB oB","2052":"pB"},E:{"1":"A B C K L G fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F BD eC CD DD ED FD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB ND OD PD QD SC 3C RD TC","1028":"DB EB FB","2052":"GB"},G:{"1":"ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:2,C:"Content Security Policy Level 2",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/cookie-store-api.js b/server/api/node_modules/caniuse-lite/data/features/cookie-store-api.js new file mode 100644 index 0000000..f0a31ca --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/cookie-store-api.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O","194":"P H Q R S T U"},C:{"1":"XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB 9C AD","322":"PB QB RB SB TB UB VB WB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC","194":"CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U"},E:{"1":"vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B ND OD PD QD SC 3C RD TC","194":"1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC"},G:{"1":"vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB 4D 5D VC WC XC 6D","2":"I wD xD yD zD 0D fC 1D 2D 3D"},Q:{"2":"7D"},R:{"1":"8D"},S:{"2":"9D AE"}},B:7,C:"Cookie Store API",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/cors.js b/server/api/node_modules/caniuse-lite/data/features/cors.js new file mode 100644 index 0000000..6fb3ad6 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/cors.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","2":"J D 5C","132":"A","260":"E F"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD","2":"6C YC","1025":"aC AC BC CC DC EC FC GC HC IC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","132":"I eB J D E F A B C"},E:{"2":"BD eC","513":"J D E F A B C K L G DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","644":"I eB CD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z TC","2":"F B ND OD PD QD SC 3C RD"},G:{"513":"E UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","644":"eC SD 4C TD"},H:{"2":"pD"},I:{"1":"KB uD vD","132":"YC I qD rD sD tD 4C"},J:{"1":"A","132":"D"},K:{"1":"C H TC","2":"A B SC 3C"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"B","132":"A"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"Cross-Origin Resource Sharing",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/createimagebitmap.js b/server/api/node_modules/caniuse-lite/data/features/createimagebitmap.js new file mode 100644 index 0000000..5c5c14d --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/createimagebitmap.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB 9C AD","1028":"b c d e f","3076":"sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a","8193":"0 1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB","132":"0B 1B","260":"2B 3B","516":"4B 5B 6B 7B 8B"},E:{"1":"WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C K L BD eC CD DD ED FD fC SC TC GD HD","4100":"G ID gC hC UC JD VC iC jC kC lC mC KD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB ND OD PD QD SC 3C RD TC","132":"nB oB","260":"pB qB","516":"rB sB tB uB vB"},G:{"1":"WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD","4100":"lD gC hC UC mD VC iC jC kC lC mC nD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"8193":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","16":"I wD"},Q:{"1":"7D"},R:{"1":"8D"},S:{"3076":"9D AE"}},B:1,C:"createImageBitmap",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/credential-management.js b/server/api/node_modules/caniuse-lite/data/features/credential-management.js new file mode 100644 index 0000000..4dbc1c4 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/credential-management.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB","66":"yB zB 0B","129":"1B 2B 3B 4B 5B 6B"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB ND OD PD QD SC 3C RD TC"},G:{"1":"jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I wD xD"},Q:{"1":"7D"},R:{"1":"8D"},S:{"2":"9D AE"}},B:5,C:"Credential Management API",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/cross-document-view-transitions.js b/server/api/node_modules/caniuse-lite/data/features/cross-document-view-transitions.js new file mode 100644 index 0000000..b6337e3 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/cross-document-view-transitions.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"8 9 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"0 1 2 3 4 5 6 7 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB 9C AD","194":"aB","260":"bB cB dB KB cC RC dC 7C 8C"},D:{"1":"8 9 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"0 1 2 3 4 5 6 7 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t ND OD PD QD SC 3C RD TC"},G:{"1":"tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"260":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:5,C:"View Transitions (cross-document)",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/cryptography.js b/server/api/node_modules/caniuse-lite/data/features/cryptography.js new file mode 100644 index 0000000..7a84f2a --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/cryptography.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"5C","8":"J D E F A","164":"B"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","513":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","8":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB 9C AD","66":"iB jB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","8":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB"},E:{"1":"B C K L G SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","8":"I eB J D BD eC CD DD","289":"E F A ED FD fC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","8":"F B C G M N O fB AB BB CB DB ND OD PD QD SC 3C RD TC"},G:{"1":"bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","8":"eC SD 4C TD UD VD","289":"E WD XD YD ZD aD"},H:{"2":"pD"},I:{"1":"KB","8":"YC I qD rD sD tD 4C uD vD"},J:{"8":"D A"},K:{"1":"H","8":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"8":"A","164":"B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:2,C:"Web Cryptography",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-all.js b/server/api/node_modules/caniuse-lite/data/features/css-all.js new file mode 100644 index 0000000..e7c2ce6 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-all.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB"},E:{"1":"A B C K L G FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F BD eC CD DD ED"},F:{"1":"0 1 2 3 4 5 6 7 8 9 EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB ND OD PD QD SC 3C RD TC"},G:{"1":"YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD"},H:{"2":"pD"},I:{"1":"KB vD","2":"YC I qD rD sD tD 4C uD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:2,C:"CSS all property",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-anchor-positioning.js b/server/api/node_modules/caniuse-lite/data/features/css-anchor-positioning.js new file mode 100644 index 0000000..d00639c --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-anchor-positioning.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"7 8 9 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y","194":"0 1 2 3 4 5 6 z"},C:{"1":"KB cC RC dC 7C 8C","2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB 9C AD","322":"cB dB"},D:{"1":"7 8 9 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y","194":"0 1 2 3 4 5 6 z"},E:{"1":"xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k ND OD PD QD SC 3C RD TC","194":"l m n o p q r s"},G:{"1":"xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"HB IB JB","2":"I AB BB CB DB EB FB GB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:5,C:"CSS Anchor Positioning",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-animation.js b/server/api/node_modules/caniuse-lite/data/features/css-animation.js new file mode 100644 index 0000000..5a4b443 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-animation.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J D E F 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I 9C AD","33":"eB J D E F A B C K L G"},D:{"1":"0 1 2 3 4 5 6 7 8 9 tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","33":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB"},E:{"1":"F A B C K L G FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"BD eC","33":"J D E CD DD ED","292":"I eB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z TC","2":"F B ND OD PD QD SC 3C RD","33":"C G M N O fB AB BB CB DB EB FB GB HB IB JB"},G:{"1":"XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","33":"E UD VD WD","164":"eC SD 4C TD"},H:{"2":"pD"},I:{"1":"KB","33":"I tD 4C uD vD","164":"YC qD rD sD"},J:{"33":"D A"},K:{"1":"H TC","2":"A B C SC 3C"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:5,C:"CSS Animation",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-any-link.js b/server/api/node_modules/caniuse-lite/data/features/css-any-link.js new file mode 100644 index 0000000..31212c1 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-any-link.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","16":"6C","33":"YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","16":"I eB J D E F A B C K L","33":"G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC"},E:{"1":"F A B C K L G FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","16":"I eB J BD eC CD","33":"D E DD ED"},F:{"1":"0 1 2 3 4 5 6 7 8 9 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ND OD PD QD SC 3C RD TC","33":"G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B"},G:{"1":"XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","16":"eC SD 4C TD","33":"E UD VD WD"},H:{"2":"pD"},I:{"1":"KB","16":"YC I qD rD sD tD 4C","33":"uD vD"},J:{"16":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","16":"I","33":"wD xD yD zD"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","33":"9D"}},B:5,C:"CSS :any-link selector",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-appearance.js b/server/api/node_modules/caniuse-lite/data/features/css-appearance.js new file mode 100644 index 0000000..894f061 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-appearance.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","33":"R","164":"P H Q","388":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","164":"lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P","676":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","33":"R","164":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q"},E:{"1":"hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","164":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ND OD PD QD SC 3C RD TC","33":"IC JC KC","164":"G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC"},G:{"1":"hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","164":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC"},H:{"2":"pD"},I:{"1":"KB","164":"YC I qD rD sD tD 4C uD vD"},J:{"164":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A","388":"B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB 4D 5D VC WC XC 6D","164":"I wD xD yD zD 0D fC 1D 2D 3D"},Q:{"164":"7D"},R:{"1":"8D"},S:{"1":"AE","164":"9D"}},B:5,C:"CSS Appearance",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-at-counter-style.js b/server/api/node_modules/caniuse-lite/data/features/css-at-counter-style.js new file mode 100644 index 0000000..e32b408 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-at-counter-style.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"2":"C K L G M N O P H Q R S T U V W X Y","132":"0 1 2 3 4 5 6 7 8 9 Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB 9C AD","132":"0 1 2 3 4 5 6 7 8 9 jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C"},D:{"2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y","132":"0 1 2 3 4 5 6 7 8 9 Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD","4":"WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC ND OD PD QD SC 3C RD TC","132":"0 1 2 3 4 5 6 7 8 9 PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD","4":"WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"2":"YC I qD rD sD tD 4C uD vD","132":"KB"},J:{"2":"D A"},K:{"2":"A B C SC 3C TC","132":"H"},L:{"132":"KB"},M:{"132":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"2":"I wD xD yD zD 0D fC 1D 2D 3D 4D 5D","132":"AB BB CB DB EB FB GB HB IB JB VC WC XC 6D"},Q:{"2":"7D"},R:{"132":"8D"},S:{"132":"9D AE"}},B:4,C:"CSS Counter Styles",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-autofill.js b/server/api/node_modules/caniuse-lite/data/features/css-autofill.js new file mode 100644 index 0000000..eaefb9d --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-autofill.js @@ -0,0 +1 @@ +module.exports={A:{D:{"1":"0 1 2 3 4 5 6 7 8 9 s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","33":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r"},L:{"1":"KB"},B:{"1":"0 1 2 3 4 5 6 7 8 9 s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O","33":"P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},M:{"2":"RC"},A:{"2":"J D E F A B 5C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ND OD PD QD SC 3C RD TC","33":"G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d"},K:{"1":"H","2":"A B C SC 3C TC"},E:{"1":"G ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"MD","33":"I eB J D E F A B C K L BD eC CD DD ED FD fC SC TC GD HD"},G:{"1":"lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","33":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD"},P:{"1":"BB CB DB EB FB GB HB IB JB","33":"I AB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},I:{"1":"KB","2":"YC I qD rD sD tD 4C","33":"uD vD"}},B:6,C:":autofill CSS pseudo-class",D:undefined}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-backdrop-filter.js b/server/api/node_modules/caniuse-lite/data/features/css-backdrop-filter.js new file mode 100644 index 0000000..6ebab36 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-backdrop-filter.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M","257":"N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC 9C AD","578":"IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k"},D:{"1":"0 1 2 3 4 5 6 7 8 9 OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB","194":"xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC"},E:{"1":"XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E BD eC CD DD ED","33":"F A B C K L G FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB ND OD PD QD SC 3C RD TC","194":"kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC"},G:{"1":"XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD","33":"XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB 2D 3D 4D 5D VC WC XC 6D","2":"I","194":"wD xD yD zD 0D fC 1D"},Q:{"2":"7D"},R:{"1":"8D"},S:{"2":"9D AE"}},B:7,C:"CSS Backdrop Filter",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-background-offsets.js b/server/api/node_modules/caniuse-lite/data/features/css-background-offsets.js new file mode 100644 index 0000000..6b1bc11 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-background-offsets.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"F A B","2":"J D E 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB"},E:{"1":"D E F A B C K L G ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J BD eC CD DD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z PD QD SC 3C RD TC","2":"F ND OD"},G:{"1":"E VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C TD UD"},H:{"1":"pD"},I:{"1":"KB uD vD","2":"YC I qD rD sD tD 4C"},J:{"1":"A","2":"D"},K:{"1":"B C H SC 3C TC","2":"A"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:4,C:"CSS background-position edge offsets",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-backgroundblendmode.js b/server/api/node_modules/caniuse-lite/data/features/css-backgroundblendmode.js new file mode 100644 index 0000000..d76e14e --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-backgroundblendmode.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 lB mB nB oB pB qB rB sB tB uB vB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB","260":"wB"},E:{"1":"B C K L G fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D BD eC CD DD","132":"E F A ED FD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 CB DB EB FB GB HB IB JB gB hB iB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB ND OD PD QD SC 3C RD TC","260":"jB"},G:{"1":"aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C TD UD VD","132":"E WD XD YD ZD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:4,C:"CSS background-blend-mode",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-boxdecorationbreak.js b/server/api/node_modules/caniuse-lite/data/features/css-boxdecorationbreak.js new file mode 100644 index 0000000..3a79ee4 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-boxdecorationbreak.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O","164":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB 9C AD"},D:{"1":"NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB","164":"0 1 2 3 4 5 6 7 8 9 CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB"},E:{"2":"I eB J BD eC CD","164":"D E F A B C K L G DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 y z","2":"F ND OD PD QD","129":"B C SC 3C RD TC","164":"G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x"},G:{"2":"eC SD 4C TD UD","164":"E VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"132":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C","164":"uD vD"},J:{"2":"D","164":"A"},K:{"2":"A","129":"B C SC 3C TC","164":"H"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"164":"UC"},P:{"164":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"164":"7D"},R:{"164":"8D"},S:{"1":"9D AE"}},B:4,C:"CSS box-decoration-break",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-boxshadow.js b/server/api/node_modules/caniuse-lite/data/features/css-boxshadow.js new file mode 100644 index 0000000..7dd9858 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-boxshadow.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"F A B","2":"J D E 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC","33":"9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","33":"I eB J D E F"},E:{"1":"J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","33":"eB","164":"I BD eC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z PD QD SC 3C RD TC","2":"F ND OD"},G:{"1":"E TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","33":"SD 4C","164":"eC"},H:{"2":"pD"},I:{"1":"I KB tD 4C uD vD","164":"YC qD rD sD"},J:{"1":"A","33":"D"},K:{"1":"B C H SC 3C TC","2":"A"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:4,C:"CSS3 Box-shadow",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-canvas.js b/server/api/node_modules/caniuse-lite/data/features/css-canvas.js new file mode 100644 index 0000000..ec25740 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-canvas.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"2":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"2":"0 1 2 3 4 5 6 7 8 9 yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","33":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB"},E:{"2":"BD eC","33":"I eB J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC","33":"G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB"},G:{"33":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"2":"KB","33":"YC I qD rD sD tD 4C uD vD"},J:{"33":"D A"},K:{"2":"A B C H SC 3C TC"},L:{"2":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","33":"I"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:7,C:"CSS Canvas Drawings",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-caret-color.js b/server/api/node_modules/caniuse-lite/data/features/css-caret-color.js new file mode 100644 index 0000000..2097469 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-caret-color.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B"},E:{"1":"C K L G SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B BD eC CD DD ED FD fC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB ND OD PD QD SC 3C RD TC"},G:{"1":"cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I wD xD"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","2":"9D"}},B:2,C:"CSS caret-color",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-cascade-layers.js b/server/api/node_modules/caniuse-lite/data/features/css-cascade-layers.js new file mode 100644 index 0000000..ede5274 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-cascade-layers.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O P H Q R S T U V W X Y Z a b c d","322":"e f g"},C:{"1":"0 1 2 3 4 5 6 7 8 9 f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b 9C AD","194":"c d e"},D:{"1":"0 1 2 3 4 5 6 7 8 9 h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d","322":"e f g"},E:{"1":"hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T ND OD PD QD SC 3C RD TC"},G:{"1":"hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB XC 6D","2":"I wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:4,C:"CSS Cascade Layers",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-cascade-scope.js b/server/api/node_modules/caniuse-lite/data/features/css-cascade-scope.js new file mode 100644 index 0000000..860293b --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-cascade-scope.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l","194":"m n o p q r s t u v w x y z"},C:{"1":"dB KB cC RC dC 7C 8C","2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l","194":"m n o p q r s t u v w x y z"},E:{"1":"qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X ND OD PD QD SC 3C RD TC","194":"Y Z a b c d e f g h i j k l m n"},G:{"1":"qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"FB GB HB IB JB","2":"I AB BB CB DB EB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:5,C:"Scoped Styles: the @scope rule",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-case-insensitive.js b/server/api/node_modules/caniuse-lite/data/features/css-case-insensitive.js new file mode 100644 index 0000000..5125f66 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-case-insensitive.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB"},E:{"1":"F A B C K L G FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E BD eC CD DD ED"},F:{"1":"0 1 2 3 4 5 6 7 8 9 mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB ND OD PD QD SC 3C RD TC"},G:{"1":"XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:5,C:"Case-insensitive CSS attribute selectors",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-clip-path.js b/server/api/node_modules/caniuse-lite/data/features/css-clip-path.js new file mode 100644 index 0000000..1535804 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-clip-path.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"2":"C K L G M N","260":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","3138":"O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC","132":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB 9C AD","644":"xB yB zB 0B 1B 2B 3B"},D:{"2":"I eB J D E F A B C K L G M N O fB AB BB CB DB","260":"0 1 2 3 4 5 6 7 8 9 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","292":"EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B"},E:{"2":"I eB J BD eC CD DD","260":"L G GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","292":"D E F A B C K ED FD fC SC TC"},F:{"2":"F B C ND OD PD QD SC 3C RD TC","260":"0 1 2 3 4 5 6 7 8 9 sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","292":"G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB"},G:{"2":"eC SD 4C TD UD","260":"fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","292":"E VD WD XD YD ZD aD bD cD dD eD"},H:{"2":"pD"},I:{"2":"YC I qD rD sD tD 4C","260":"KB","292":"uD vD"},J:{"2":"D A"},K:{"2":"A B C SC 3C TC","260":"H"},L:{"260":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"260":"UC"},P:{"260":"AB BB CB DB EB FB GB HB IB JB xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","292":"I wD"},Q:{"260":"7D"},R:{"260":"8D"},S:{"1":"AE","644":"9D"}},B:4,C:"CSS clip-path property (for HTML)",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-color-adjust.js b/server/api/node_modules/caniuse-lite/data/features/css-color-adjust.js new file mode 100644 index 0000000..bbd9193 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-color-adjust.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"2":"C K L G M N O","33":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB 9C AD"},D:{"16":"I eB J D E F A B C K L G M N O","33":"0 1 2 3 4 5 6 7 8 9 fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB BD eC CD","33":"J D E F A B C K L G DD ED FD fC SC TC GD HD ID gC"},F:{"2":"F B C ND OD PD QD SC 3C RD TC","33":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"1":"hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","16":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC"},H:{"2":"pD"},I:{"16":"YC I qD rD sD tD 4C uD vD","33":"KB"},J:{"16":"D A"},K:{"2":"A B C SC 3C TC","33":"H"},L:{"16":"KB"},M:{"1":"RC"},N:{"16":"A B"},O:{"16":"UC"},P:{"16":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"33":"7D"},R:{"16":"8D"},S:{"1":"9D AE"}},B:4,C:"CSS print-color-adjust",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-color-function.js b/server/api/node_modules/caniuse-lite/data/features/css-color-function.js new file mode 100644 index 0000000..e498966 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-color-function.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p","322":"q r s"},C:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s 9C AD","578":"t u"},D:{"1":"0 1 2 3 4 5 6 7 8 9 t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p","322":"q r s"},E:{"1":"G ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A BD eC CD DD ED FD","132":"B C K L fC SC TC GD HD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c ND OD PD QD SC 3C RD TC","322":"d e f"},G:{"1":"lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD","132":"aD bD cD dD eD fD gD hD iD jD kD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"CB DB EB FB GB HB IB JB","2":"I AB BB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:4,C:"CSS color() function",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-conic-gradients.js b/server/api/node_modules/caniuse-lite/data/features/css-conic-gradients.js new file mode 100644 index 0000000..4d211a2 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-conic-gradients.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC 9C AD","578":"NC OC PC QC P H Q bC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B","257":"HC IC","450":"ZC 9B aC AC BC CC DC EC FC GC"},E:{"1":"K L G TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C BD eC CD DD ED FD fC SC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB ND OD PD QD SC 3C RD TC","257":"6B 7B","450":"wB xB yB zB 0B 1B 2B 3B 4B 5B"},G:{"1":"eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I wD xD yD zD 0D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","2":"9D"}},B:5,C:"CSS Conical Gradients",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-container-queries-style.js b/server/api/node_modules/caniuse-lite/data/features/css-container-queries-style.js new file mode 100644 index 0000000..a218478 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-container-queries-style.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"2":"C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o","194":"p q r s","260":"0 1 2 3 4 5 6 7 8 9 t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o","194":"p q r s","260":"0 1 2 3 4 5 6 7 8 9 t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD","260":"sC tC uC vC wC xC yC zC 0C 1C 2C MD","772":"XC"},F:{"2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a ND OD PD QD SC 3C RD TC","194":"b c d e f","260":"0 1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u v w x y z"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD","260":"sC tC uC vC wC xC yC zC 0C 1C 2C","772":"XC"},H:{"2":"pD"},I:{"2":"YC I qD rD sD tD 4C uD vD","260":"KB"},J:{"2":"D A"},K:{"2":"A B C SC 3C TC","260":"H"},L:{"260":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I AB BB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","260":"CB DB EB FB GB HB IB JB"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:5,C:"CSS Container Style Queries",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-container-queries.js b/server/api/node_modules/caniuse-lite/data/features/css-container-queries.js new file mode 100644 index 0000000..14873cb --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-container-queries.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m","516":"n"},C:{"1":"0 1 2 3 4 5 6 7 8 9 s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z","194":"b c d e f g h i j k l m","450":"a","516":"n"},E:{"1":"VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC ND OD PD QD SC 3C RD TC","194":"P H Q bC R S T U V W X Y","516":"Z a b"},G:{"1":"VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB","2":"I wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:5,C:"CSS Container Queries (Size)",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-container-query-units.js b/server/api/node_modules/caniuse-lite/data/features/css-container-query-units.js new file mode 100644 index 0000000..7e1d66d --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-container-query-units.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m"},C:{"1":"0 1 2 3 4 5 6 7 8 9 s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a","194":"j k l m","450":"b c d e f g h i"},E:{"1":"VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC ND OD PD QD SC 3C RD TC","194":"P H Q bC R S T U V W X Y"},G:{"1":"VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB","2":"I wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:5,C:"CSS Container Query Units",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-containment.js b/server/api/node_modules/caniuse-lite/data/features/css-containment.js new file mode 100644 index 0000000..c22ffe9 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-containment.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB 9C AD","194":"rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B","66":"1B"},E:{"1":"hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB ND OD PD QD SC 3C RD TC","66":"oB pB"},G:{"1":"hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I wD"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","194":"9D"}},B:2,C:"CSS Containment",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-content-visibility.js b/server/api/node_modules/caniuse-lite/data/features/css-content-visibility.js new file mode 100644 index 0000000..c1225c3 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-content-visibility.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O P H Q R S"},C:{"1":"7 8 9 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q 9C AD","194":"0 1 2 3 4 5 6 r s t u v w x y z"},D:{"1":"0 1 2 3 4 5 6 7 8 9 T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S"},E:{"1":"XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC ND OD PD QD SC 3C RD TC"},G:{"1":"XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB 4D 5D VC WC XC 6D","2":"I wD xD yD zD 0D fC 1D 2D 3D"},Q:{"2":"7D"},R:{"1":"8D"},S:{"2":"9D AE"}},B:5,C:"CSS content-visibility",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-counters.js b/server/api/node_modules/caniuse-lite/data/features/css-counters.js new file mode 100644 index 0000000..eb3dffe --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-counters.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"E F A B","2":"J D 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC"},G:{"1":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"1":"pD"},I:{"1":"YC I KB qD rD sD tD 4C uD vD"},J:{"1":"D A"},K:{"1":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:2,C:"CSS Counters",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-crisp-edges.js b/server/api/node_modules/caniuse-lite/data/features/css-crisp-edges.js new file mode 100644 index 0000000..94256c9 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-crisp-edges.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J 5C","2340":"D E F A B"},B:{"2":"C K L G M N O","1025":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC 9C","513":"DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a","545":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC AD"},D:{"2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB","1025":"0 1 2 3 4 5 6 7 8 9 rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"A B C K L G fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB BD eC CD","164":"J","4644":"D E F DD ED FD"},F:{"2":"F B G M N O fB AB BB CB DB EB FB GB HB ND OD PD QD SC 3C","545":"C RD TC","1025":"0 1 2 3 4 5 6 7 8 9 IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"1":"ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C","4260":"TD UD","4644":"E VD WD XD YD"},H:{"2":"pD"},I:{"2":"YC I qD rD sD tD 4C uD vD","1025":"KB"},J:{"2":"D","4260":"A"},K:{"2":"A B SC 3C","545":"C TC","1025":"H"},L:{"1025":"KB"},M:{"1":"RC"},N:{"2340":"A B"},O:{"1025":"UC"},P:{"1025":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1025":"7D"},R:{"1025":"8D"},S:{"1":"AE","4097":"9D"}},B:4,C:"Crisp edges/pixelated images",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-cross-fade.js b/server/api/node_modules/caniuse-lite/data/features/css-cross-fade.js new file mode 100644 index 0000000..e26e170 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-cross-fade.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"2":"C K L G M N O","33":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"2":"I eB J D E F A B C K L G M","33":"0 1 2 3 4 5 6 7 8 9 N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"A B C K L G fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB BD eC","33":"J D E F CD DD ED FD"},F:{"2":"F B C ND OD PD QD SC 3C RD TC","33":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"1":"ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C","33":"E TD UD VD WD XD YD"},H:{"2":"pD"},I:{"2":"YC I qD rD sD tD 4C","33":"KB uD vD"},J:{"2":"D A"},K:{"2":"A B C SC 3C TC","33":"H"},L:{"33":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"33":"UC"},P:{"33":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"33":"7D"},R:{"33":"8D"},S:{"2":"9D AE"}},B:4,C:"CSS Cross-Fade Function",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-default-pseudo.js b/server/api/node_modules/caniuse-lite/data/features/css-default-pseudo.js new file mode 100644 index 0000000..20d919d --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-default-pseudo.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","16":"6C YC 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","16":"I eB J D E F A B C K L","132":"G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B"},E:{"1":"B C K L G fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","16":"I eB BD eC","132":"J D E F A CD DD ED FD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","16":"F B ND OD PD QD SC 3C","132":"G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB","260":"C RD TC"},G:{"1":"aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","16":"eC SD 4C TD UD","132":"E VD WD XD YD ZD"},H:{"260":"pD"},I:{"1":"KB","16":"YC qD rD sD","132":"I tD 4C uD vD"},J:{"16":"D","132":"A"},K:{"1":"H","16":"A B C SC 3C","260":"TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","132":"I"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:5,C:":default CSS pseudo-class",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-descendant-gtgt.js b/server/api/node_modules/caniuse-lite/data/features/css-descendant-gtgt.js new file mode 100644 index 0000000..ea2030c --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-descendant-gtgt.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"2":"0 1 2 3 4 5 6 7 8 9 C K L G M N O H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","16":"P"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"B","2":"I eB J D E F A C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C H SC 3C TC"},L:{"2":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:7,C:"Explicit descendant combinator >>",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-deviceadaptation.js b/server/api/node_modules/caniuse-lite/data/features/css-deviceadaptation.js new file mode 100644 index 0000000..9c54b9e --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-deviceadaptation.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F 5C","164":"A B"},B:{"66":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","164":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB","66":"0 1 2 3 4 5 6 7 8 9 JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB ND OD PD QD SC 3C RD TC","66":"0 1 2 3 4 5 6 7 8 9 qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"292":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A H","292":"B C SC 3C TC"},L:{"2":"KB"},M:{"2":"RC"},N:{"164":"A B"},O:{"2":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"66":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:5,C:"CSS Device Adaptation",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-dir-pseudo.js b/server/api/node_modules/caniuse-lite/data/features/css-dir-pseudo.js new file mode 100644 index 0000000..39240e6 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-dir-pseudo.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"2 3 4 5 6 7 8 9 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m","194":"0 1 n o p q r s t u v w x y z"},C:{"1":"0 1 2 3 4 5 6 7 8 9 zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M 9C AD","33":"N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB"},D:{"1":"2 3 4 5 6 7 8 9 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y","194":"0 1 Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y ND OD PD QD SC 3C RD TC","194":"Z a b c d e f g h i j k l m n"},G:{"1":"lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"FB GB HB IB JB","2":"I AB BB CB DB EB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"1":"AE","33":"9D"}},B:5,C:":dir() CSS pseudo-class",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-display-contents.js b/server/api/node_modules/caniuse-lite/data/features/css-display-contents.js new file mode 100644 index 0000000..93d2d57 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-display-contents.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"2":"C K L G M N O","132":"P H Q R S T U V W","260":"0 1 2 3 4 5 6 7 8 9 X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB 9C AD","132":"nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC","260":"0 1 2 3 4 5 6 7 8 9 AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C"},D:{"2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B","132":"DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W","194":"8B ZC 9B aC AC BC CC","260":"0 1 2 3 4 5 6 7 8 9 X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"2":"I eB J D E F A B BD eC CD DD ED FD fC","132":"C K L G SC TC GD HD ID gC hC UC JD","260":"WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","772":"VC iC jC kC lC mC KD"},F:{"2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B ND OD PD QD SC 3C RD TC","132":"2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC","260":"0 1 2 3 4 5 6 7 8 9 OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"1":"WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD","132":"cD dD eD fD gD hD","260":"iD jD kD lD gC hC UC mD","516":"iC jC kC lC mC nD","772":"VC"},H:{"2":"pD"},I:{"2":"YC I qD rD sD tD 4C uD vD","260":"KB"},J:{"2":"D A"},K:{"2":"A B C SC 3C TC","260":"H"},L:{"260":"KB"},M:{"260":"RC"},N:{"2":"A B"},O:{"132":"UC"},P:{"2":"I wD xD yD zD","132":"0D fC 1D 2D 3D 4D","260":"AB BB CB DB EB FB GB HB IB JB 5D VC WC XC 6D"},Q:{"132":"7D"},R:{"260":"8D"},S:{"132":"9D","260":"AE"}},B:4,C:"CSS display: contents",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-element-function.js b/server/api/node_modules/caniuse-lite/data/features/css-element-function.js new file mode 100644 index 0000000..187de5a --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-element-function.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"2":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"33":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","164":"6C YC 9C AD"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C H SC 3C TC"},L:{"2":"KB"},M:{"33":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"33":"9D AE"}},B:5,C:"CSS element() function",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-env-function.js b/server/api/node_modules/caniuse-lite/data/features/css-env-function.js new file mode 100644 index 0000000..48b6186 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-env-function.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC"},E:{"1":"C K L G SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A BD eC CD DD ED FD fC","132":"B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B ND OD PD QD SC 3C RD TC"},G:{"1":"cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD","132":"bD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I wD xD yD zD 0D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","2":"9D"}},B:7,C:"CSS Environment Variables env()",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-exclusions.js b/server/api/node_modules/caniuse-lite/data/features/css-exclusions.js new file mode 100644 index 0000000..f5971cd --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-exclusions.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F 5C","33":"A B"},B:{"2":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","33":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C H SC 3C TC"},L:{"2":"KB"},M:{"2":"RC"},N:{"33":"A B"},O:{"2":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:5,C:"CSS Exclusions Level 1",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-featurequeries.js b/server/api/node_modules/caniuse-lite/data/features/css-featurequeries.js new file mode 100644 index 0000000..8d0f0af --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-featurequeries.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB"},E:{"1":"F A B C K L G FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E BD eC CD DD ED"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z TC","2":"F B C ND OD PD QD SC 3C RD"},G:{"1":"XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD"},H:{"1":"pD"},I:{"1":"KB uD vD","2":"YC I qD rD sD tD 4C"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:4,C:"CSS Feature Queries",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-file-selector-button.js b/server/api/node_modules/caniuse-lite/data/features/css-file-selector-button.js new file mode 100644 index 0000000..de8054b --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-file-selector-button.js @@ -0,0 +1 @@ +module.exports={A:{D:{"1":"0 1 2 3 4 5 6 7 8 9 X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","33":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W"},L:{"1":"KB"},B:{"1":"0 1 2 3 4 5 6 7 8 9 X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","33":"C K L G M N O P H Q R S T U V W"},C:{"1":"0 1 2 3 4 5 6 7 8 9 bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q 9C AD"},M:{"1":"RC"},A:{"2":"J D E F 5C","33":"A B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ND OD PD QD SC 3C RD TC","33":"G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},K:{"1":"H","2":"A B C SC 3C TC"},E:{"1":"G HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"MD","33":"I eB J D E F A B C K L BD eC CD DD ED FD fC SC TC GD"},G:{"1":"kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","33":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD"},P:{"1":"AB BB CB DB EB FB GB HB IB JB 5D VC WC XC 6D","33":"I wD xD yD zD 0D fC 1D 2D 3D 4D"},I:{"1":"KB","2":"YC I qD rD sD tD 4C","33":"uD vD"}},B:6,C:"::file-selector-button CSS pseudo-element",D:undefined}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-filter-function.js b/server/api/node_modules/caniuse-lite/data/features/css-filter-function.js new file mode 100644 index 0000000..babc717 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-filter-function.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"2":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"A B C K L G FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E BD eC CD DD ED","33":"F"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC"},G:{"1":"ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD","33":"XD YD"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C H SC 3C TC"},L:{"2":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:5,C:"CSS filter() function",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-filters.js b/server/api/node_modules/caniuse-lite/data/features/css-filters.js new file mode 100644 index 0000000..14569df --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-filters.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","1028":"K L G M N O","1346":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 9 lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC 9C","196":"kB","516":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N","33":"O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B"},E:{"1":"A B C K L G FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB BD eC CD","33":"J D E F DD ED"},F:{"1":"0 1 2 3 4 5 6 7 8 9 qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ND OD PD QD SC 3C RD TC","33":"G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB"},G:{"1":"YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C TD","33":"E UD VD WD XD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C","33":"uD vD"},J:{"2":"D","33":"A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","33":"I wD xD"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:5,C:"CSS Filter Effects",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-first-letter.js b/server/api/node_modules/caniuse-lite/data/features/css-first-letter.js new file mode 100644 index 0000000..cfbdbd8 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-first-letter.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"F A B","16":"5C","516":"E","1540":"J D"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD","132":"YC","260":"6C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","16":"eB J D E","132":"I"},E:{"1":"J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","16":"eB BD","132":"I eC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z RD TC","16":"F ND","260":"B OD PD QD SC 3C"},G:{"1":"E TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","16":"eC SD 4C"},H:{"1":"pD"},I:{"1":"YC I KB tD 4C uD vD","16":"qD rD","132":"sD"},J:{"1":"D A"},K:{"1":"C H TC","260":"A B SC 3C"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:2,C:"::first-letter CSS pseudo-element selector",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-first-line.js b/server/api/node_modules/caniuse-lite/data/features/css-first-line.js new file mode 100644 index 0000000..d621c2c --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-first-line.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"F A B","132":"J D E 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC"},G:{"1":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"1":"pD"},I:{"1":"YC I KB qD rD sD tD 4C uD vD"},J:{"1":"D A"},K:{"1":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:2,C:"CSS first-line pseudo-element",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-fixed.js b/server/api/node_modules/caniuse-lite/data/features/css-fixed.js new file mode 100644 index 0000000..aea5174 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-fixed.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"D E F A B","2":"5C","8":"J"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"I eB J D E F A B C K L G BD eC CD DD ED fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","1025":"FD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC"},G:{"1":"E WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C","132":"TD UD VD"},H:{"2":"pD"},I:{"1":"YC KB uD vD","260":"qD rD sD","513":"I tD 4C"},J:{"1":"D A"},K:{"1":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:2,C:"CSS position:fixed",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-focus-visible.js b/server/api/node_modules/caniuse-lite/data/features/css-focus-visible.js new file mode 100644 index 0000000..076b8b4 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-focus-visible.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O","328":"P H Q R S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC 9C AD","161":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S"},D:{"1":"0 1 2 3 4 5 6 7 8 9 U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC","328":"FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T"},E:{"1":"hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C K L BD eC CD DD ED FD fC SC TC GD HD","578":"G ID gC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC ND OD PD QD SC 3C RD TC","328":"EC FC GC HC IC JC"},G:{"1":"hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD","578":"lD gC"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB 4D 5D VC WC XC 6D","2":"I wD xD yD zD 0D fC 1D 2D 3D"},Q:{"2":"7D"},R:{"1":"8D"},S:{"161":"9D AE"}},B:5,C:":focus-visible CSS pseudo-class",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-focus-within.js b/server/api/node_modules/caniuse-lite/data/features/css-focus-within.js new file mode 100644 index 0000000..fb4fdb6 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-focus-within.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B","194":"ZC"},E:{"1":"B C K L G fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A BD eC CD DD ED FD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB ND OD PD QD SC 3C RD TC","194":"wB"},G:{"1":"aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I wD xD yD"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","2":"9D"}},B:7,C:":focus-within CSS pseudo-class",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-font-palette.js b/server/api/node_modules/caniuse-lite/data/features/css-font-palette.js new file mode 100644 index 0000000..e61b20b --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-font-palette.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m"},C:{"1":"0 1 2 3 4 5 6 7 8 9 p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i"},E:{"1":"hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U ND OD PD QD SC 3C RD TC"},G:{"1":"hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB 6D","2":"I wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:5,C:"CSS font-palette",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-font-rendering-controls.js b/server/api/node_modules/caniuse-lite/data/features/css-font-rendering-controls.js new file mode 100644 index 0000000..3982578 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-font-rendering-controls.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB 9C AD","194":"wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB","66":"zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC"},E:{"1":"C K L G SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B BD eC CD DD ED FD fC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB ND OD PD QD SC 3C RD TC","66":"mB nB oB pB qB rB sB tB uB vB wB"},G:{"1":"cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I","66":"wD xD yD"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","194":"9D"}},B:5,C:"CSS font-display",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-font-stretch.js b/server/api/node_modules/caniuse-lite/data/features/css-font-stretch.js new file mode 100644 index 0000000..6fc6fe5 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-font-stretch.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"F A B","2":"J D E 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB"},E:{"1":"B C K L G SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A BD eC CD DD ED FD fC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB ND OD PD QD SC 3C RD TC"},G:{"1":"aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:5,C:"CSS font-stretch",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-gencontent.js b/server/api/node_modules/caniuse-lite/data/features/css-gencontent.js new file mode 100644 index 0000000..cc64459 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-gencontent.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"F A B","2":"J D 5C","132":"E"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC"},G:{"1":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"1":"pD"},I:{"1":"YC I KB qD rD sD tD 4C uD vD"},J:{"1":"D A"},K:{"1":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:2,C:"CSS Generated content for pseudo-elements",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-gradients.js b/server/api/node_modules/caniuse-lite/data/features/css-gradients.js new file mode 100644 index 0000000..21bc58c --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-gradients.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J D E F 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC 9C","260":"M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB","292":"I eB J D E F A B C K L G AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","33":"A B C K L G M N O fB AB BB CB DB EB FB","548":"I eB J D E F"},E:{"1":"hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"BD eC","260":"D E F A B C K L G DD ED FD fC SC TC GD HD ID gC","292":"J CD","804":"I eB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z TC","2":"F B ND OD PD QD","33":"C RD","164":"SC 3C"},G:{"1":"hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","260":"E VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC","292":"TD UD","804":"eC SD 4C"},H:{"2":"pD"},I:{"1":"KB uD vD","33":"I tD 4C","548":"YC qD rD sD"},J:{"1":"A","548":"D"},K:{"1":"H TC","2":"A B","33":"C","164":"SC 3C"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:4,C:"CSS Gradients",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-grid-animation.js b/server/api/node_modules/caniuse-lite/data/features/css-grid-animation.js new file mode 100644 index 0000000..6d9002c --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-grid-animation.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o"},C:{"1":"0 1 2 3 4 5 6 7 8 9 EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o"},E:{"1":"VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a ND OD PD QD SC 3C RD TC"},G:{"1":"VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"BB CB DB EB FB GB HB IB JB","2":"I AB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"1":"AE","2":"9D"}},B:4,C:"CSS Grid animation",D:false}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-grid-lanes.js b/server/api/node_modules/caniuse-lite/data/features/css-grid-lanes.js new file mode 100644 index 0000000..a3fabf9 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-grid-lanes.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"2":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB","200":"XB YB ZB aB bB cB dB"},C:{"2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC 9C AD","200":"0 1 2 3 4 5 6 7 8 9 PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB","200":"XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"1C 2C MD","2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC","200":"lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C"},F:{"2":"0 1 2 3 4 5 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC","200":"6"},G:{"1":"1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC","200":"lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C H SC 3C TC"},L:{"200":"KB"},M:{"200":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:5,C:"CSS Grid Lanes",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-grid.js b/server/api/node_modules/caniuse-lite/data/features/css-grid.js new file mode 100644 index 0000000..4fbf3bb --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-grid.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E 5C","8":"F","292":"A B"},B:{"1":"0 1 2 3 4 5 6 7 8 9 M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","292":"C K L G"},C:{"1":"0 1 2 3 4 5 6 7 8 9 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O 9C AD","8":"fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB","584":"qB rB sB tB uB vB wB xB yB zB 0B 1B","1025":"2B 3B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB","8":"FB GB HB IB","200":"JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B","1025":"7B"},E:{"1":"B C K L G fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB BD eC CD","8":"J D E F A DD ED FD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB ND OD PD QD SC 3C RD TC","200":"IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB"},G:{"1":"aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C TD","8":"E UD VD WD XD YD ZD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD","8":"4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"292":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"wD","8":"I"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:4,C:"CSS Grid Layout (level 1)",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-hanging-punctuation.js b/server/api/node_modules/caniuse-lite/data/features/css-hanging-punctuation.js new file mode 100644 index 0000000..a4c56b6 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-hanging-punctuation.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"2":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"2":"I eB J D E F BD eC CD DD ED FD","132":"A B C K L G fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC"},G:{"2":"E eC SD 4C TD UD VD WD XD YD","132":"ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C H SC 3C TC"},L:{"2":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:4,C:"CSS hanging-punctuation",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-has.js b/server/api/node_modules/caniuse-lite/data/features/css-has.js new file mode 100644 index 0000000..f923998 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-has.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m"},C:{"1":"3 4 5 6 7 8 9 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k 9C AD","322":"0 1 2 l m n o p q r s t u v w x y z"},D:{"1":"0 1 2 3 4 5 6 7 8 9 n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i","194":"j k l m"},E:{"1":"hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y ND OD PD QD SC 3C RD TC"},G:{"1":"hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB","2":"I wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:5,C:":has() CSS relational pseudo-class",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-hyphens.js b/server/api/node_modules/caniuse-lite/data/features/css-hyphens.js new file mode 100644 index 0000000..413fd62 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-hyphens.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F 5C","33":"A B"},B:{"1":"0 1 2 3 4 5 6 7 8 9 n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","33":"C K L G M N O","132":"P H Q R S T U V","260":"W X Y Z a b c d e f g h i j k l m"},C:{"1":"0 1 2 3 4 5 6 7 8 9 tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB 9C AD","33":"J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B","132":"5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V"},E:{"1":"WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB BD eC","33":"J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB ND OD PD QD SC 3C RD TC","132":"sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y"},G:{"1":"WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD","33":"E 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I","132":"wD"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:4,C:"CSS Hyphenation",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-if.js b/server/api/node_modules/caniuse-lite/data/features/css-if.js new file mode 100644 index 0000000..6254d4a --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-if.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"UB VB WB XB YB ZB aB bB cB dB","2":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"1":"UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"3 4 5 6 7 8 9","2":"0 1 2 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:5,C:"CSS if() function",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-image-orientation.js b/server/api/node_modules/caniuse-lite/data/features/css-image-orientation.js new file mode 100644 index 0000000..097044b --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-image-orientation.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O P H","257":"Q R S T U V W"},C:{"1":"0 1 2 3 4 5 6 7 8 9 GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H","257":"Q R S T U V W"},E:{"1":"L G GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C K BD eC CD DD ED FD fC SC TC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC ND OD PD QD SC 3C RD TC","257":"GC HC IC JC KC LC MC NC OC"},G:{"1":"iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","132":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB 5D VC WC XC 6D","2":"I wD xD yD zD 0D fC 1D 2D","257":"3D 4D"},Q:{"2":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:4,C:"CSS3 image-orientation",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-image-set.js b/server/api/node_modules/caniuse-lite/data/features/css-image-set.js new file mode 100644 index 0000000..067068b --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-image-set.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O","164":"P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2049":"v"},C:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T 9C AD","66":"U V","2305":"X Y Z a b c d e f g h i j k l m n o p q r s t u","2820":"W"},D:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB","164":"BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2049":"v"},E:{"1":"WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB BD eC CD","132":"A B C K fC SC TC GD","164":"J D E F DD ED FD","1540":"L G HD ID gC hC UC JD VC iC jC kC lC mC KD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z","2":"F B C ND OD PD QD SC 3C RD TC","164":"G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g","2049":"h"},G:{"1":"WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C TD","132":"ZD aD bD cD dD eD fD gD hD iD","164":"E UD VD WD XD YD","1540":"jD kD lD gC hC UC mD VC iC jC kC lC mC nD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C","164":"uD vD"},J:{"2":"D","164":"A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"164":"UC"},P:{"1":"DB EB FB GB HB IB JB","164":"I AB BB CB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"164":"7D"},R:{"164":"8D"},S:{"2":"9D AE"}},B:5,C:"CSS image-set",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-in-out-of-range.js b/server/api/node_modules/caniuse-lite/data/features/css-in-out-of-range.js new file mode 100644 index 0000000..d0e5d4f --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-in-out-of-range.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C","260":"K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB 9C AD","516":"JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I","16":"eB J D E F A B C K L","260":"2B","772":"G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B"},E:{"1":"B C K L G fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I BD eC","16":"eB","772":"J D E F A CD DD ED FD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","16":"F ND","260":"B C pB OD PD QD SC 3C RD TC","772":"G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB"},G:{"1":"aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C","772":"E TD UD VD WD XD YD ZD"},H:{"132":"pD"},I:{"1":"KB","2":"YC qD rD sD","260":"I tD 4C uD vD"},J:{"2":"D","260":"A"},K:{"1":"H","260":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","260":"I"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","516":"9D"}},B:5,C:":in-range and :out-of-range CSS pseudo-classes",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-indeterminate-pseudo.js b/server/api/node_modules/caniuse-lite/data/features/css-indeterminate-pseudo.js new file mode 100644 index 0000000..5beea56 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-indeterminate-pseudo.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E 5C","132":"A B","388":"F"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","132":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","16":"6C YC 9C AD","132":"J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B","388":"I eB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","16":"I eB J D E F A B C K L","132":"G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB"},E:{"1":"B C K L G fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","16":"I eB J BD eC","132":"D E F A DD ED FD","388":"CD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","16":"F B ND OD PD QD SC 3C","132":"G M N O fB AB BB CB DB EB FB","516":"C RD TC"},G:{"1":"aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","16":"eC SD 4C TD UD","132":"E VD WD XD YD ZD"},H:{"516":"pD"},I:{"1":"KB","16":"YC qD rD sD vD","132":"uD","388":"I tD 4C"},J:{"16":"D","132":"A"},K:{"1":"H","16":"A B C SC 3C","516":"TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"132":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","132":"9D"}},B:5,C:":indeterminate CSS pseudo-class",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-initial-letter.js b/server/api/node_modules/caniuse-lite/data/features/css-initial-letter.js new file mode 100644 index 0000000..b08fa7c --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-initial-letter.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"2":"C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r","260":"0 1 2 3 4 5 6 7 8 9 s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r","260":"0 1 2 3 4 5 6 7 8 9 s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"2":"I eB J D E BD eC CD DD ED","260":"F","292":"vC wC xC yC zC 0C 1C 2C MD","420":"A B C K L G FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC"},F:{"2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f ND OD PD QD SC 3C RD TC","260":"0 1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u v w x y z"},G:{"2":"E eC SD 4C TD UD VD WD","292":"vC wC xC yC zC 0C 1C 2C","420":"XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC"},H:{"2":"pD"},I:{"2":"YC I qD rD sD tD 4C uD vD","260":"KB"},J:{"2":"D A"},K:{"2":"A B C SC 3C TC","260":"H"},L:{"260":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I AB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","260":"BB CB DB EB FB GB HB IB JB"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:5,C:"CSS Initial Letter",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-initial-value.js b/server/api/node_modules/caniuse-lite/data/features/css-initial-value.js new file mode 100644 index 0000000..dfafcef --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-initial-value.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","33":"I eB J D E F A B C K L G M N O 9C AD","164":"6C YC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"I eB J D E F A B C K L G eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","16":"BD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ND OD PD QD SC 3C RD TC"},G:{"1":"E SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","16":"eC"},H:{"2":"pD"},I:{"1":"YC I KB sD tD 4C uD vD","16":"qD rD"},J:{"1":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:4,C:"CSS initial value",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-lch-lab.js b/server/api/node_modules/caniuse-lite/data/features/css-lch-lab.js new file mode 100644 index 0000000..04e175b --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-lch-lab.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r","322":"s"},C:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s 9C AD","194":"t u"},D:{"1":"0 1 2 3 4 5 6 7 8 9 t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r","322":"s"},E:{"1":"G ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C K L BD eC CD DD ED FD fC SC TC GD HD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f ND OD PD QD SC 3C RD TC"},G:{"1":"lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"CB DB EB FB GB HB IB JB","2":"I AB BB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:4,C:"LCH and Lab color values",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-letter-spacing.js b/server/api/node_modules/caniuse-lite/data/features/css-letter-spacing.js new file mode 100644 index 0000000..95e31b7 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-letter-spacing.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"F A B","16":"5C","132":"J D E"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","132":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB"},E:{"1":"D E F A B C K L G DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","16":"BD","132":"I eB J eC CD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","16":"F ND","132":"B C G M OD PD QD SC 3C RD TC"},G:{"1":"E SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","16":"eC"},H:{"2":"pD"},I:{"1":"KB uD vD","16":"qD rD","132":"YC I sD tD 4C"},J:{"132":"D A"},K:{"1":"H","132":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:2,C:"letter-spacing CSS property",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-line-clamp.js b/server/api/node_modules/caniuse-lite/data/features/css-line-clamp.js new file mode 100644 index 0000000..e1742f6 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-line-clamp.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"2":"C K L G M","33":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","129":"N O"},C:{"2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC 9C AD","33":"0 1 2 3 4 5 6 7 8 9 GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C"},D:{"16":"I eB J D E F A B C K","33":"0 1 2 3 4 5 6 7 8 9 L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"2":"I BD eC","33":"eB J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"2":"F B C ND OD PD QD SC 3C RD TC","33":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"2":"eC SD 4C","33":"E TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"16":"qD rD","33":"YC I KB sD tD 4C uD vD"},J:{"33":"D A"},K:{"2":"A B C SC 3C TC","33":"H"},L:{"33":"KB"},M:{"33":"RC"},N:{"2":"A B"},O:{"33":"UC"},P:{"33":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"33":"7D"},R:{"33":"8D"},S:{"2":"9D","33":"AE"}},B:5,C:"CSS line-clamp",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-logical-props.js b/server/api/node_modules/caniuse-lite/data/features/css-logical-props.js new file mode 100644 index 0000000..041e156 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-logical-props.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O","1028":"V W","1540":"P H Q R S T U"},C:{"1":"0 1 2 3 4 5 6 7 8 9 EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C","164":"YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB 9C AD","1540":"rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","292":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC","1028":"V W","1540":"HC IC JC KC LC MC NC OC PC QC P H Q R S T U"},E:{"1":"G ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","292":"I eB J D E F A B C BD eC CD DD ED FD fC SC","1540":"K L TC GD","3076":"HD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ND OD PD QD SC 3C RD TC","292":"G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B","1028":"MC NC","1540":"6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC"},G:{"1":"lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","292":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD","1540":"eD fD gD hD iD jD","3076":"kD"},H:{"2":"pD"},I:{"1":"KB","292":"YC I qD rD sD tD 4C uD vD"},J:{"292":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB 5D VC WC XC 6D","292":"I wD xD yD zD 0D","1540":"fC 1D 2D 3D 4D"},Q:{"1540":"7D"},R:{"1":"8D"},S:{"1":"AE","1540":"9D"}},B:5,C:"CSS Logical Properties",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-marker-pseudo.js b/server/api/node_modules/caniuse-lite/data/features/css-marker-pseudo.js new file mode 100644 index 0000000..b1f08f5 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-marker-pseudo.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O P H Q R S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T"},E:{"2":"I eB J D E F A B BD eC CD DD ED FD fC","132":"C K L G SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC ND OD PD QD SC 3C RD TC"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD","132":"cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB 4D 5D VC WC XC 6D","2":"I wD xD yD zD 0D fC 1D 2D 3D"},Q:{"2":"7D"},R:{"1":"8D"},S:{"1":"AE","2":"9D"}},B:5,C:"CSS ::marker pseudo-element",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-masks.js b/server/api/node_modules/caniuse-lite/data/features/css-masks.js new file mode 100644 index 0000000..5250cb5 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-masks.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"2 3 4 5 6 7 8 9 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M","164":"0 1 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","3138":"N","12292":"O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC","260":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 9C AD"},D:{"1":"2 3 4 5 6 7 8 9 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","164":"0 1 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"BD eC","164":"I eB J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 o p q r s t u v w x y z","2":"F B C ND OD PD QD SC 3C RD TC","164":"G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n"},G:{"1":"hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","164":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC"},H:{"2":"pD"},I:{"1":"KB","164":"uD vD","676":"YC I qD rD sD tD 4C"},J:{"164":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"164":"UC"},P:{"1":"FB GB HB IB JB","164":"I AB BB CB DB EB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"164":"7D"},R:{"164":"8D"},S:{"1":"AE","260":"9D"}},B:4,C:"CSS Masks",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-matches-pseudo.js b/server/api/node_modules/caniuse-lite/data/features/css-matches-pseudo.js new file mode 100644 index 0000000..89ef584 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-matches-pseudo.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O","1220":"P H Q R S T U V"},C:{"1":"0 1 2 3 4 5 6 7 8 9 QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC 9C AD","548":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","16":"I eB J D E F A B C K L","164":"G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC","196":"DC EC FC","1220":"GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V"},E:{"1":"L G HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I BD eC","16":"eB","164":"J D E CD DD ED","260":"F A B C K FD fC SC TC GD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ND OD PD QD SC 3C RD TC","164":"G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B","196":"2B 3B 4B","1220":"5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},G:{"1":"jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","16":"eC SD 4C TD UD","164":"E VD WD","260":"XD YD ZD aD bD cD dD eD fD gD hD iD"},H:{"2":"pD"},I:{"1":"KB","16":"YC qD rD sD","164":"I tD 4C uD vD"},J:{"16":"D","164":"A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB 5D VC WC XC 6D","164":"I wD xD yD zD 0D fC 1D 2D 3D 4D"},Q:{"1220":"7D"},R:{"1":"8D"},S:{"1":"AE","548":"9D"}},B:5,C:":is() CSS pseudo-class",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-math-functions.js b/server/api/node_modules/caniuse-lite/data/features/css-math-functions.js new file mode 100644 index 0000000..4e51c21 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-math-functions.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC"},E:{"1":"L G GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B BD eC CD DD ED FD fC","132":"C K SC TC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC ND OD PD QD SC 3C RD TC"},G:{"1":"iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD","132":"cD dD eD fD gD hD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB 2D 3D 4D 5D VC WC XC 6D","2":"I wD xD yD zD 0D fC 1D"},Q:{"2":"7D"},R:{"1":"8D"},S:{"1":"AE","2":"9D"}},B:5,C:"CSS math functions min(), max() and clamp()",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-media-interaction.js b/server/api/node_modules/caniuse-lite/data/features/css-media-interaction.js new file mode 100644 index 0000000..e64fe4c --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-media-interaction.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB"},E:{"1":"F A B C K L G FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E BD eC CD DD ED"},F:{"1":"0 1 2 3 4 5 6 7 8 9 IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB ND OD PD QD SC 3C RD TC"},G:{"1":"XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","2":"9D"}},B:4,C:"Media Queries: interaction media features",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-media-range-syntax.js b/server/api/node_modules/caniuse-lite/data/features/css-media-range-syntax.js new file mode 100644 index 0000000..d0c5954 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-media-range-syntax.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l"},C:{"1":"0 1 2 3 4 5 6 7 8 9 BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l"},E:{"1":"lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y ND OD PD QD SC 3C RD TC"},G:{"1":"lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB","2":"I wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"1":"AE","2":"9D"}},B:4,C:"Media Queries: Range Syntax",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-media-resolution.js b/server/api/node_modules/caniuse-lite/data/features/css-media-resolution.js new file mode 100644 index 0000000..7d27c70 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-media-resolution.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E 5C","132":"F A B"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","1028":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC","260":"I eB J D E F A B C K L G 9C AD","1028":"M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","548":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB","1028":"JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC"},E:{"1":"VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"BD eC","548":"I eB J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z TC","2":"F","548":"B C ND OD PD QD SC 3C RD","1028":"G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B"},G:{"1":"VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","16":"eC","548":"E SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD"},H:{"132":"pD"},I:{"1":"KB","16":"qD rD","548":"YC I sD tD 4C","1028":"uD vD"},J:{"548":"D A"},K:{"1":"H TC","548":"A B C SC 3C"},L:{"1":"KB"},M:{"1":"RC"},N:{"132":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB fC 1D 2D 3D 4D 5D VC WC XC 6D","1028":"I wD xD yD zD 0D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:4,C:"Media Queries: resolution feature",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-media-scripting.js b/server/api/node_modules/caniuse-lite/data/features/css-media-scripting.js new file mode 100644 index 0000000..0ea5f35 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-media-scripting.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"2":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C H SC 3C TC"},L:{"2":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:5,C:"Media Queries: scripting media feature",D:false}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-mediaqueries.js b/server/api/node_modules/caniuse-lite/data/features/css-mediaqueries.js new file mode 100644 index 0000000..8f0807e --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-mediaqueries.js @@ -0,0 +1 @@ +module.exports={A:{A:{"8":"J D E 5C","129":"F A B"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD","2":"6C YC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","129":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB"},E:{"1":"D E F A B C K L G DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","129":"I eB J CD","388":"BD eC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC","2":"F"},G:{"1":"E VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","129":"eC SD 4C TD UD"},H:{"1":"pD"},I:{"1":"KB uD vD","129":"YC I qD rD sD tD 4C"},J:{"1":"D A"},K:{"1":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"129":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:2,C:"CSS3 Media Queries",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-mixblendmode.js b/server/api/node_modules/caniuse-lite/data/features/css-mixblendmode.js new file mode 100644 index 0000000..f342dbb --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-mixblendmode.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB","194":"JB gB hB iB jB kB lB mB nB oB pB qB"},E:{"2":"I eB J D BD eC CD DD","260":"E F A B C K L G ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB ND OD PD QD SC 3C RD TC"},G:{"2":"eC SD 4C TD UD VD","260":"E WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:4,C:"Blending of HTML/SVG elements",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-module-scripts.js b/server/api/node_modules/caniuse-lite/data/features/css-module-scripts.js new file mode 100644 index 0000000..928a71a --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-module-scripts.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"5 6 7 8 9 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O P H Q R S T U V W X Y Z a","132":"0 1 2 3 4 b c d e f g h i j k l m n o p q r s t u v w x y z"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"1":"5 6 7 8 9 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a","132":"0 1 2 3 4 b c d e f g h i j k l m n o p q r s t u v w x y z"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"16":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C H SC 3C TC"},L:{"194":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:1,C:"CSS Module Scripts",D:false}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-motion-paths.js b/server/api/node_modules/caniuse-lite/data/features/css-motion-paths.js new file mode 100644 index 0000000..cf546a5 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-motion-paths.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB","194":"tB uB vB"},E:{"1":"VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB ND OD PD QD SC 3C RD TC","194":"gB hB iB"},G:{"1":"VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","2":"9D"}},B:5,C:"CSS Motion Path",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-namespaces.js b/server/api/node_modules/caniuse-lite/data/features/css-namespaces.js new file mode 100644 index 0000000..f974eaa --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-namespaces.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"F A B","2":"J D E 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"I eB J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","16":"BD eC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC"},G:{"1":"E 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","16":"eC SD"},H:{"1":"pD"},I:{"1":"YC I KB qD rD sD tD 4C uD vD"},J:{"1":"D A"},K:{"1":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:2,C:"CSS namespaces",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-nesting.js b/server/api/node_modules/caniuse-lite/data/features/css-nesting.js new file mode 100644 index 0000000..d618640 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-nesting.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"2 3 4 5 6 7 8 9 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q","194":"r s t","516":"0 1 u v w x y z"},C:{"1":"0 1 2 3 4 5 6 7 8 9 z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w 9C AD","322":"x y"},D:{"1":"2 3 4 5 6 7 8 9 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q","194":"r s t","516":"0 1 u v w x y z"},E:{"1":"oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC","516":"mC KD WC nC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c ND OD PD QD SC 3C RD TC","194":"d e f","516":"g h i j k l m n"},G:{"1":"oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC","516":"mC nD WC nC"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"FB GB HB IB JB","2":"I AB BB CB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","516":"DB EB"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:5,C:"CSS Nesting",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-not-sel-list.js b/server/api/node_modules/caniuse-lite/data/features/css-not-sel-list.js new file mode 100644 index 0000000..ba3dba3 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-not-sel-list.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O H Q R S T U V","16":"P"},C:{"1":"0 1 2 3 4 5 6 7 8 9 S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V"},E:{"1":"F A B C K L G FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E BD eC CD DD ED"},F:{"1":"0 1 2 3 4 5 6 7 8 9 NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC ND OD PD QD SC 3C RD TC"},G:{"1":"XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB 5D VC WC XC 6D","2":"I wD xD yD zD 0D fC 1D 2D 3D 4D"},Q:{"2":"7D"},R:{"1":"8D"},S:{"1":"AE","2":"9D"}},B:5,C:"selector list argument of :not()",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-nth-child-of.js b/server/api/node_modules/caniuse-lite/data/features/css-nth-child-of.js new file mode 100644 index 0000000..c29489e --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-nth-child-of.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s"},C:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s"},E:{"1":"F A B C K L G FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E BD eC CD DD ED"},F:{"1":"0 1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f ND OD PD QD SC 3C RD TC"},G:{"1":"XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"CB DB EB FB GB HB IB JB","2":"I AB BB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:5,C:"selector list argument of :nth-child and :nth-last-child CSS pseudo-classes",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-opacity.js b/server/api/node_modules/caniuse-lite/data/features/css-opacity.js new file mode 100644 index 0000000..21bdbb9 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-opacity.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"F A B","4":"J D E 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC"},G:{"1":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"1":"pD"},I:{"1":"YC I KB qD rD sD tD 4C uD vD"},J:{"1":"D A"},K:{"1":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:2,C:"CSS3 Opacity",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-optional-pseudo.js b/server/api/node_modules/caniuse-lite/data/features/css-optional-pseudo.js new file mode 100644 index 0000000..1dece77 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-optional-pseudo.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J D E F 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","16":"I eB J D E F A B C K L"},E:{"1":"eB J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I BD eC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","16":"F ND","132":"B C OD PD QD SC 3C RD TC"},G:{"1":"E TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C"},H:{"132":"pD"},I:{"1":"YC I KB sD tD 4C uD vD","16":"qD rD"},J:{"1":"D A"},K:{"1":"H","132":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:5,C:":optional CSS pseudo-class",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-overflow-anchor.js b/server/api/node_modules/caniuse-lite/data/features/css-overflow-anchor.js new file mode 100644 index 0000000..cc62550 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-overflow-anchor.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B"},E:{"1":"MD","2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB ND OD PD QD SC 3C RD TC"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","2":"9D"}},B:5,C:"CSS overflow-anchor (Scroll Anchoring)",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-overflow-overlay.js b/server/api/node_modules/caniuse-lite/data/features/css-overflow-overlay.js new file mode 100644 index 0000000..fbd301d --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-overflow-overlay.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v","2":"C K L G M N O","130":"0 1 2 3 4 5 6 7 8 9 w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"1":"G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v","16":"I eB J D E F A B C K L","130":"0 1 2 3 4 5 6 7 8 9 w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"I eB J D E F A B CD DD ED FD fC SC","16":"BD eC","130":"C K L G TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h","2":"F B C ND OD PD QD SC 3C RD TC","130":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z"},G:{"1":"E SD 4C TD UD VD WD XD YD ZD aD bD cD","16":"eC","130":"dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"YC I qD rD sD tD 4C uD vD","130":"KB"},J:{"16":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"130":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"2":"9D AE"}},B:7,C:"CSS overflow: overlay",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-overflow.js b/server/api/node_modules/caniuse-lite/data/features/css-overflow.js new file mode 100644 index 0000000..f1509e3 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-overflow.js @@ -0,0 +1 @@ +module.exports={A:{A:{"388":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","260":"P H Q R S T U V W X","388":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","260":"aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H","388":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","260":"GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X","388":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC"},E:{"1":"VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","260":"L G GD HD ID gC hC UC JD","388":"I eB J D E F A B C K BD eC CD DD ED FD fC SC TC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","260":"5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC","388":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B ND OD PD QD SC 3C RD TC"},G:{"1":"VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","260":"iD jD kD lD gC hC UC mD","388":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD"},H:{"388":"pD"},I:{"1":"KB","388":"YC I qD rD sD tD 4C uD vD"},J:{"388":"D A"},K:{"1":"H","388":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"388":"A B"},O:{"388":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB 5D VC WC XC 6D","388":"I wD xD yD zD 0D fC 1D 2D 3D 4D"},Q:{"388":"7D"},R:{"1":"8D"},S:{"1":"AE","388":"9D"}},B:5,C:"CSS overflow property",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-overscroll-behavior.js b/server/api/node_modules/caniuse-lite/data/features/css-overscroll-behavior.js new file mode 100644 index 0000000..bbcb984 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-overscroll-behavior.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F 5C","132":"A B"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","132":"C K L G M N","516":"O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC","260":"BC CC"},E:{"1":"VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C K L BD eC CD DD ED FD fC SC TC GD","1090":"G HD ID gC hC UC JD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB ND OD PD QD SC 3C RD TC","260":"0B 1B"},G:{"1":"VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD","1090":"kD lD gC hC UC mD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"132":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I wD xD yD"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","2":"9D"}},B:5,C:"CSS overscroll-behavior",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-page-break.js b/server/api/node_modules/caniuse-lite/data/features/css-page-break.js new file mode 100644 index 0000000..3afe141 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-page-break.js @@ -0,0 +1 @@ +module.exports={A:{A:{"388":"A B","900":"J D E F 5C"},B:{"388":"C K L G M N O","641":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","900":"P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p"},C:{"772":"0 1 2 3 4 5 6 7 8 9 DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","900":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC 9C AD"},D:{"641":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","900":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p"},E:{"772":"A","900":"I eB J D E F B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"16":"F ND","129":"B C OD PD QD SC 3C RD TC","641":"0 1 2 3 4 5 6 7 8 9 c d e f g h i j k l m n o p q r s t u v w x y z","900":"G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b"},G:{"900":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"129":"pD"},I:{"641":"KB","900":"YC I qD rD sD tD 4C uD vD"},J:{"900":"D A"},K:{"129":"A B C SC 3C TC","641":"H"},L:{"900":"KB"},M:{"772":"RC"},N:{"388":"A B"},O:{"900":"UC"},P:{"641":"BB CB DB EB FB GB HB IB JB","900":"I AB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"900":"7D"},R:{"900":"8D"},S:{"772":"AE","900":"9D"}},B:2,C:"CSS page-break properties",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-paged-media.js b/server/api/node_modules/caniuse-lite/data/features/css-paged-media.js new file mode 100644 index 0000000..e642571 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-paged-media.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D 5C","132":"E F A B"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","132":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O 9C AD","132":"fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","16":"I eB J D E F A B C K L"},E:{"1":"tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","132":"F B C ND OD PD QD SC 3C RD TC"},G:{"1":"tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC"},H:{"16":"pD"},I:{"16":"YC I KB qD rD sD tD 4C uD vD"},J:{"16":"D A"},K:{"1":"H","16":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"258":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"132":"9D AE"}},B:5,C:"CSS Paged Media (@page)",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-paint-api.js b/server/api/node_modules/caniuse-lite/data/features/css-paint-api.js new file mode 100644 index 0000000..d6753b3 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-paint-api.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC"},E:{"2":"I eB J D E F A B C BD eC CD DD ED FD fC SC","194":"K L G TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B ND OD PD QD SC 3C RD TC"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I wD xD yD zD"},Q:{"1":"7D"},R:{"1":"8D"},S:{"2":"9D AE"}},B:4,C:"CSS Painting API",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-placeholder-shown.js b/server/api/node_modules/caniuse-lite/data/features/css-placeholder-shown.js new file mode 100644 index 0000000..c9af83f --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-placeholder-shown.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F 5C","292":"A B"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC 9C AD","164":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB"},E:{"1":"F A B C K L G FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E BD eC CD DD ED"},F:{"1":"0 1 2 3 4 5 6 7 8 9 kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB ND OD PD QD SC 3C RD TC"},G:{"1":"XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","164":"9D"}},B:5,C:":placeholder-shown CSS pseudo-class",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-placeholder.js b/server/api/node_modules/caniuse-lite/data/features/css-placeholder.js new file mode 100644 index 0000000..6bf7999 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-placeholder.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","36":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","33":"fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B","130":"6C YC I eB J D E F A B C K L G M N O 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","36":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B"},E:{"1":"B C K L G fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I BD eC","36":"eB J D E F A CD DD ED FD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ND OD PD QD SC 3C RD TC","36":"G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB"},G:{"1":"aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD","36":"E 4C TD UD VD WD XD YD ZD"},H:{"2":"pD"},I:{"1":"KB","36":"YC I qD rD sD tD 4C uD vD"},J:{"36":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"36":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","36":"I wD xD"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","33":"9D"}},B:5,C:"::placeholder CSS pseudo-element",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-print-color-adjust.js b/server/api/node_modules/caniuse-lite/data/features/css-print-color-adjust.js new file mode 100644 index 0000000..1521a3c --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-print-color-adjust.js @@ -0,0 +1 @@ +module.exports={A:{D:{"1":"TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M","33":"0 1 2 3 4 5 6 7 8 9 N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB"},L:{"1":"KB"},B:{"1":"TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O","33":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB 9C AD","33":"yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e"},M:{"1":"RC"},A:{"2":"J D E F A B 5C"},F:{"1":"3 4 5 6 7 8 9","2":"F B C ND OD PD QD SC 3C RD TC","33":"0 1 2 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},K:{"2":"A B C SC 3C TC","33":"H"},E:{"1":"hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"I eB BD eC CD MD","33":"J D E F A B C K L G DD ED FD fC SC TC GD HD ID gC"},G:{"1":"hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C TD","33":"E UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC"},P:{"1":"JB","33":"I AB BB CB DB EB FB GB HB IB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},I:{"1":"KB","2":"YC I qD rD sD tD 4C","33":"uD vD"}},B:6,C:"print-color-adjust property",D:undefined}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-read-only-write.js b/server/api/node_modules/caniuse-lite/data/features/css-read-only-write.js new file mode 100644 index 0000000..e810da7 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-read-only-write.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 9 QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","16":"6C","33":"YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","16":"I eB J D E F A B C K L","132":"G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB"},E:{"1":"F A B C K L G FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","16":"BD eC","132":"I eB J D E CD DD ED"},F:{"1":"0 1 2 3 4 5 6 7 8 9 DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","16":"F B ND OD PD QD SC","132":"C G M N O fB AB BB CB 3C RD TC"},G:{"1":"XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","16":"eC SD","132":"E 4C TD UD VD WD"},H:{"2":"pD"},I:{"1":"KB","16":"qD rD","132":"YC I sD tD 4C uD vD"},J:{"1":"A","132":"D"},K:{"1":"H","2":"A B SC","132":"C 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","33":"9D"}},B:1,C:"CSS :read-only and :read-write selectors",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-rebeccapurple.js b/server/api/node_modules/caniuse-lite/data/features/css-rebeccapurple.js new file mode 100644 index 0000000..3b5a47b --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-rebeccapurple.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A 5C","132":"B"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB"},E:{"1":"D E F A B C K L G ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J BD eC CD","16":"DD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB ND OD PD QD SC 3C RD TC"},G:{"1":"E WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C TD UD VD"},H:{"2":"pD"},I:{"1":"KB uD vD","2":"YC I qD rD sD tD 4C"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:4,C:"Rebeccapurple color",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-reflections.js b/server/api/node_modules/caniuse-lite/data/features/css-reflections.js new file mode 100644 index 0000000..e024e06 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-reflections.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"2":"C K L G M N O","33":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"33":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"2":"BD eC","33":"I eB J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"2":"F B C ND OD PD QD SC 3C RD TC","33":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"33":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"33":"YC I KB qD rD sD tD 4C uD vD"},J:{"33":"D A"},K:{"2":"A B C SC 3C TC","33":"H"},L:{"33":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"33":"UC"},P:{"33":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"33":"7D"},R:{"33":"8D"},S:{"2":"9D AE"}},B:7,C:"CSS Reflections",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-regions.js b/server/api/node_modules/caniuse-lite/data/features/css-regions.js new file mode 100644 index 0000000..fef72a7 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-regions.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F 5C","420":"A B"},B:{"2":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","420":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","36":"G M N O","66":"fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB"},E:{"2":"I eB J C K L G BD eC CD SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","33":"D E F A B DD ED FD fC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC"},G:{"2":"eC SD 4C TD UD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","33":"E VD WD XD YD ZD aD bD"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C H SC 3C TC"},L:{"2":"KB"},M:{"2":"RC"},N:{"420":"A B"},O:{"2":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:5,C:"CSS Regions",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-relative-colors.js b/server/api/node_modules/caniuse-lite/data/features/css-relative-colors.js new file mode 100644 index 0000000..8220062 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-relative-colors.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","194":"0","260":"1 2 3 4 5 6 7 8 9 LB MB NB"},C:{"1":"QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z 9C AD","260":"LB MB NB OB PB"},D:{"1":"OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","194":"0","260":"1 2 3 4 5 6 7 8 9 LB MB NB"},E:{"1":"XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC","260":"lC mC KD WC nC oC pC qC rC LD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l ND OD PD QD SC 3C RD TC","194":"m n","260":"o p q r s t u v w x y"},G:{"1":"XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC","260":"lC mC nD WC nC oC pC qC rC oD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C SC 3C TC","260":"H"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I AB BB CB DB EB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","260":"FB GB HB IB JB"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:5,C:"CSS Relative color syntax",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-repeating-gradients.js b/server/api/node_modules/caniuse-lite/data/features/css-repeating-gradients.js new file mode 100644 index 0000000..df90bd6 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-repeating-gradients.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J D E F 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC 9C","33":"I eB J D E F A B C K L G AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F","33":"A B C K L G M N O fB AB BB CB DB EB FB"},E:{"1":"D E F A B C K L G DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB BD eC","33":"J CD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z TC","2":"F B ND OD PD QD","33":"C RD","36":"SC 3C"},G:{"1":"E VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C","33":"TD UD"},H:{"2":"pD"},I:{"1":"KB uD vD","2":"YC qD rD sD","33":"I tD 4C"},J:{"1":"A","2":"D"},K:{"1":"H TC","2":"A B","33":"C","36":"SC 3C"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:4,C:"CSS Repeating Gradients",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-resize.js b/server/api/node_modules/caniuse-lite/data/features/css-resize.js new file mode 100644 index 0000000..92139d2 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-resize.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC 9C AD","33":"I"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"I eB J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"BD eC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ND OD PD QD SC 3C RD","132":"TC"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","2":"9D"}},B:2,C:"CSS resize property",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-revert-value.js b/server/api/node_modules/caniuse-lite/data/features/css-revert-value.js new file mode 100644 index 0000000..bd64f77 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-revert-value.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O P H Q R"},C:{"1":"0 1 2 3 4 5 6 7 8 9 FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R"},E:{"1":"A B C K L G FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F BD eC CD DD ED"},F:{"1":"0 1 2 3 4 5 6 7 8 9 LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC ND OD PD QD SC 3C RD TC"},G:{"1":"YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB 4D 5D VC WC XC 6D","2":"I wD xD yD zD 0D fC 1D 2D 3D"},Q:{"2":"7D"},R:{"1":"8D"},S:{"1":"AE","2":"9D"}},B:4,C:"CSS revert value",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-rrggbbaa.js b/server/api/node_modules/caniuse-lite/data/features/css-rrggbbaa.js new file mode 100644 index 0000000..dc3aa53 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-rrggbbaa.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B","194":"2B 3B 4B 5B 6B 7B 8B ZC 9B aC"},E:{"1":"A B C K L G fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F BD eC CD DD ED FD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB ND OD PD QD SC 3C RD TC","194":"pB qB rB sB tB uB vB wB xB yB zB 0B 1B"},G:{"1":"ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I","194":"wD xD yD"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","2":"9D"}},B:4,C:"#rrggbbaa hex color notation",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-scroll-behavior.js b/server/api/node_modules/caniuse-lite/data/features/css-scroll-behavior.js new file mode 100644 index 0000000..30e4101 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-scroll-behavior.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"2":"C K L G M N O","129":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB 9C AD"},D:{"2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB","129":"0 1 2 3 4 5 6 7 8 9 aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","450":"rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B"},E:{"1":"hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C K BD eC CD DD ED FD fC SC TC GD","578":"L G HD ID gC"},F:{"2":"F B C G M N O fB AB BB CB DB EB FB GB HB ND OD PD QD SC 3C RD TC","129":"0 1 2 3 4 5 6 7 8 9 yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","450":"IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB"},G:{"1":"hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD","578":"kD lD gC"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"129":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I wD xD yD"},Q:{"129":"7D"},R:{"1":"8D"},S:{"1":"AE","2":"9D"}},B:5,C:"CSS Scroll-behavior",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-scrollbar.js b/server/api/node_modules/caniuse-lite/data/features/css-scrollbar.js new file mode 100644 index 0000000..d181ce1 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-scrollbar.js @@ -0,0 +1 @@ +module.exports={A:{A:{"132":"J D E F A B 5C"},B:{"1":"3 4 5 6 7 8 9 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O","292":"0 1 2 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},C:{"1":"0 1 2 3 4 5 6 7 8 9 CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC 9C AD","3138":"BC"},D:{"1":"3 4 5 6 7 8 9 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","292":"0 1 2 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"zC 0C 1C 2C MD","16":"I eB BD eC","292":"J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 p q r s t u v w x y z","2":"F B C ND OD PD QD SC 3C RD TC","292":"G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o"},G:{"1":"zC 0C 1C 2C","2":"jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC","16":"eC SD 4C TD UD","292":"VD","804":"E WD XD YD ZD aD bD cD dD eD fD gD hD iD"},H:{"2":"pD"},I:{"16":"qD rD","292":"YC I KB sD tD 4C uD vD"},J:{"292":"D A"},K:{"2":"A B C SC 3C TC","292":"H"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"292":"UC"},P:{"1":"FB GB HB IB JB","292":"I AB BB CB DB EB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"292":"7D"},R:{"292":"8D"},S:{"2":"9D AE"}},B:4,C:"CSS scrollbar styling",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-sel2.js b/server/api/node_modules/caniuse-lite/data/features/css-sel2.js new file mode 100644 index 0000000..6774394 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-sel2.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"D E F A B","2":"5C","8":"J"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC"},G:{"1":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"1":"pD"},I:{"1":"YC I KB qD rD sD tD 4C uD vD"},J:{"1":"D A"},K:{"1":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:2,C:"CSS 2.1 selectors",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-sel3.js b/server/api/node_modules/caniuse-lite/data/features/css-sel3.js new file mode 100644 index 0000000..fcda314 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-sel3.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"F A B","2":"5C","8":"J","132":"D E"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD","2":"6C YC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"I eB J D E F A B C K L G eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"BD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC","2":"F"},G:{"1":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"1":"pD"},I:{"1":"YC I KB qD rD sD tD 4C uD vD"},J:{"1":"D A"},K:{"1":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:2,C:"CSS3 selectors",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-selection.js b/server/api/node_modules/caniuse-lite/data/features/css-selection.js new file mode 100644 index 0000000..952a8df --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-selection.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"F A B","2":"J D E 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","33":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC","2":"F"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"KB uD vD","2":"YC I qD rD sD tD 4C"},J:{"1":"A","2":"D"},K:{"1":"C H 3C TC","16":"A B SC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","33":"9D"}},B:5,C:"::selection CSS pseudo-element",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-shapes.js b/server/api/node_modules/caniuse-lite/data/features/css-shapes.js new file mode 100644 index 0000000..b88820d --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-shapes.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 9C AD","322":"1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB","194":"kB lB mB"},E:{"1":"B C K L G fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D BD eC CD DD","33":"E F A ED FD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB ND OD PD QD SC 3C RD TC"},G:{"1":"aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C TD UD VD","33":"E WD XD YD ZD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","2":"9D"}},B:4,C:"CSS Shapes Level 1",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-snappoints.js b/server/api/node_modules/caniuse-lite/data/features/css-snappoints.js new file mode 100644 index 0000000..55f309a --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-snappoints.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F 5C","6308":"A","6436":"B"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","6436":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB 9C AD","2052":"pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC","8258":"EC FC GC"},E:{"1":"B C K L G SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E BD eC CD DD ED","3108":"F A FD fC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B ND OD PD QD SC 3C RD TC","8258":"4B 5B 6B 7B 8B 9B AC BC"},G:{"1":"bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD","3108":"XD YD ZD aD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I wD xD yD zD 0D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","2052":"9D"}},B:4,C:"CSS Scroll Snap",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-sticky.js b/server/api/node_modules/caniuse-lite/data/features/css-sticky.js new file mode 100644 index 0000000..53c373b --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-sticky.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G","1028":"P H Q R S T U V W X Y","4100":"M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB 9C AD","194":"GB HB IB JB gB hB","516":"iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B","322":"DB EB FB GB HB IB JB gB hB iB jB kB lB mB 2B 3B 4B 5B","1028":"6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y"},E:{"1":"K L G GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J BD eC CD","33":"E F A B C ED FD fC SC TC","2084":"D DD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB ND OD PD QD SC 3C RD TC","322":"pB qB rB","1028":"sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC"},G:{"1":"fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C TD","33":"E WD XD YD ZD aD bD cD dD eD","2084":"UD VD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I wD"},Q:{"1028":"7D"},R:{"1":"8D"},S:{"1":"AE","516":"9D"}},B:5,C:"CSS position:sticky",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-subgrid.js b/server/api/node_modules/caniuse-lite/data/features/css-subgrid.js new file mode 100644 index 0000000..fefe916 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-subgrid.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v","194":"w x y"},C:{"1":"0 1 2 3 4 5 6 7 8 9 JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v","194":"w x y"},E:{"1":"VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h ND OD PD QD SC 3C RD TC","194":"i j k"},G:{"1":"VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"EB FB GB HB IB JB","2":"I AB BB CB DB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"1":"AE","2":"9D"}},B:4,C:"CSS Subgrid",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-supports-api.js b/server/api/node_modules/caniuse-lite/data/features/css-supports-api.js new file mode 100644 index 0000000..830a678 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-supports-api.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","260":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB 9C AD","66":"AB BB","260":"CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB","260":"IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B"},E:{"1":"F A B C K L G FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E BD eC CD DD ED"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ND OD PD QD SC 3C RD","132":"TC"},G:{"1":"XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD"},H:{"132":"pD"},I:{"1":"KB uD vD","2":"YC I qD rD sD tD 4C"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C","132":"TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:4,C:"CSS.supports() API",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-table.js b/server/api/node_modules/caniuse-lite/data/features/css-table.js new file mode 100644 index 0000000..074d8ce --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-table.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"E F A B","2":"J D 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD","132":"6C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC"},G:{"1":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"1":"pD"},I:{"1":"YC I KB qD rD sD tD 4C uD vD"},J:{"1":"D A"},K:{"1":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:2,C:"CSS Table display",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-text-align-last.js b/server/api/node_modules/caniuse-lite/data/features/css-text-align-last.js new file mode 100644 index 0000000..810052a --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-text-align-last.js @@ -0,0 +1 @@ +module.exports={A:{A:{"132":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","4":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B 9C AD","33":"C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB","322":"lB mB nB oB pB qB rB sB tB uB vB wB"},E:{"1":"VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB ND OD PD QD SC 3C RD TC","578":"CB DB EB FB GB HB IB JB gB hB iB jB"},G:{"1":"VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"132":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","33":"9D"}},B:4,C:"CSS3 text-align-last",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-text-box-trim.js b/server/api/node_modules/caniuse-lite/data/features/css-text-box-trim.js new file mode 100644 index 0000000..e76e9ff --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-text-box-trim.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","322":"LB MB NB OB"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"1":"QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","322":"LB MB NB OB PB"},E:{"1":"tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC","194":"lC mC KD WC nC oC pC qC rC LD XC sC"},F:{"1":"7 8 9","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y ND OD PD QD SC 3C RD TC","322":"0 1 2 3 4 5 6 z"},G:{"1":"tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC","194":"lC mC nD WC nC oC pC qC rC oD XC sC"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:5,C:"CSS Text Box",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-text-indent.js b/server/api/node_modules/caniuse-lite/data/features/css-text-indent.js new file mode 100644 index 0000000..98034f1 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-text-indent.js @@ -0,0 +1 @@ +module.exports={A:{A:{"132":"J D E F A B 5C"},B:{"1":"dB","132":"C K L G M N O","388":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB"},C:{"1":"3 4 5 6 7 8 9 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","132":"0 1 2 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z 9C AD"},D:{"1":"dB KB cC RC dC","132":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB","388":"0 1 2 3 4 5 6 7 8 9 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB"},E:{"1":"VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","132":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD"},F:{"132":"F B C G M N O fB AB BB CB DB EB ND OD PD QD SC 3C RD TC","388":"0 1 2 3 4 5 6 7 8 9 FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"1":"VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","132":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD"},H:{"132":"pD"},I:{"1":"KB","132":"YC I qD rD sD tD 4C uD vD"},J:{"132":"D A"},K:{"132":"A B C SC 3C TC","388":"H"},L:{"1":"KB"},M:{"1":"RC"},N:{"132":"A B"},O:{"388":"UC"},P:{"132":"I","388":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"388":"7D"},R:{"388":"8D"},S:{"132":"9D AE"}},B:4,C:"CSS text-indent",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-text-justify.js b/server/api/node_modules/caniuse-lite/data/features/css-text-justify.js new file mode 100644 index 0000000..1a675e6 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-text-justify.js @@ -0,0 +1 @@ +module.exports={A:{A:{"16":"J D 5C","132":"E F A B"},B:{"1":"cB dB","132":"C K L G M N O","322":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB"},C:{"2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 9C AD","1025":"0 1 2 3 4 5 6 7 8 9 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","1602":"4B"},D:{"1":"cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB","322":"0 1 2 3 4 5 6 7 8 9 tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB ND OD PD QD SC 3C RD TC","322":"0 1 2 3 4 5 6 7 8 9 gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C SC 3C TC","322":"H"},L:{"1":"KB"},M:{"1025":"RC"},N:{"132":"A B"},O:{"322":"UC"},P:{"2":"I","322":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"322":"7D"},R:{"322":"8D"},S:{"2":"9D","1025":"AE"}},B:4,C:"CSS text-justify",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-text-orientation.js b/server/api/node_modules/caniuse-lite/data/features/css-text-orientation.js new file mode 100644 index 0000000..39799ed --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-text-orientation.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB 9C AD","194":"oB pB qB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB"},E:{"1":"L G HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F BD eC CD DD ED FD","16":"A","33":"B C K fC SC TC GD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB ND OD PD QD SC 3C RD TC"},G:{"1":"ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:2,C:"CSS text-orientation",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-text-spacing.js b/server/api/node_modules/caniuse-lite/data/features/css-text-spacing.js new file mode 100644 index 0000000..a49c982 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-text-spacing.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D 5C","161":"E F A B"},B:{"2":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","161":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C H SC 3C TC"},L:{"2":"KB"},M:{"2":"RC"},N:{"16":"A B"},O:{"2":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:5,C:"CSS Text 4 text-spacing",D:false}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-text-wrap-balance.js b/server/api/node_modules/caniuse-lite/data/features/css-text-wrap-balance.js new file mode 100644 index 0000000..3ca4faf --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-text-wrap-balance.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v","132":"0 1 2 3 4 5 6 7 8 9 w x y z LB MB"},C:{"1":"3 4 5 6 7 8 9 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"0 1 2 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z 9C AD"},D:{"1":"NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v","132":"0 1 2 3 4 5 6 7 8 9 w x y z LB MB"},E:{"1":"rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g ND OD PD QD SC 3C RD TC","132":"h i j k l m n o p q r s t u v w x"},G:{"1":"rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C SC 3C TC","132":"H"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I AB BB CB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","132":"DB EB FB GB HB IB JB"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:5,C:"CSS text-wrap: balance",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-textshadow.js b/server/api/node_modules/caniuse-lite/data/features/css-textshadow.js new file mode 100644 index 0000000..749fd3d --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-textshadow.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F 5C","129":"A B"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","129":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD","2":"6C YC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"I eB J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","260":"BD eC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC","2":"F"},G:{"1":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"4":"pD"},I:{"1":"YC I KB qD rD sD tD 4C uD vD"},J:{"1":"A","4":"D"},K:{"1":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"129":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:4,C:"CSS3 Text-shadow",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-touch-action.js b/server/api/node_modules/caniuse-lite/data/features/css-touch-action.js new file mode 100644 index 0000000..29b1b3f --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-touch-action.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","2":"J D E F 5C","289":"A"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB 9C AD","194":"JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B","1025":"2B 3B 4B 5B 6B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB"},E:{"2050":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB ND OD PD QD SC 3C RD TC"},G:{"1":"fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD","516":"YD ZD aD bD cD dD eD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"B","289":"A"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","194":"9D"}},B:2,C:"CSS touch-action property",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-transitions.js b/server/api/node_modules/caniuse-lite/data/features/css-transitions.js new file mode 100644 index 0000000..03f692a --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-transitions.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J D E F 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC 9C AD","33":"eB J D E F A B C K L G","164":"I"},D:{"1":"0 1 2 3 4 5 6 7 8 9 GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","33":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB"},E:{"1":"D E F A B C K L G DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","33":"J CD","164":"I eB BD eC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z TC","2":"F ND OD","33":"C","164":"B PD QD SC 3C RD"},G:{"1":"E VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","33":"UD","164":"eC SD 4C TD"},H:{"2":"pD"},I:{"1":"KB uD vD","33":"YC I qD rD sD tD 4C"},J:{"1":"A","33":"D"},K:{"1":"H TC","33":"C","164":"A B SC 3C"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:5,C:"CSS3 Transitions",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-unicode-bidi.js b/server/api/node_modules/caniuse-lite/data/features/css-unicode-bidi.js new file mode 100644 index 0000000..20f3a9d --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-unicode-bidi.js @@ -0,0 +1 @@ +module.exports={A:{A:{"132":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","132":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","33":"N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB","132":"6C YC I eB J D E F 9C AD","292":"A B C K L G M"},D:{"1":"0 1 2 3 4 5 6 7 8 9 yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","132":"I eB J D E F A B C K L G M","548":"N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB"},E:{"132":"I eB J D E BD eC CD DD ED","548":"F A B C K L G FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"132":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC"},G:{"132":"E eC SD 4C TD UD VD WD","548":"XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"16":"pD"},I:{"1":"KB","16":"YC I qD rD sD tD 4C uD vD"},J:{"16":"D A"},K:{"1":"H","16":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"132":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","16":"I"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","33":"9D"}},B:4,C:"CSS unicode-bidi property",D:false}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-unset-value.js b/server/api/node_modules/caniuse-lite/data/features/css-unset-value.js new file mode 100644 index 0000000..a556bd4 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-unset-value.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 9 HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB"},E:{"1":"A B C K L G FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F BD eC CD DD ED"},F:{"1":"0 1 2 3 4 5 6 7 8 9 IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB ND OD PD QD SC 3C RD TC"},G:{"1":"YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:2,C:"CSS unset value",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-variables.js b/server/api/node_modules/caniuse-lite/data/features/css-variables.js new file mode 100644 index 0000000..9d2e5e9 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-variables.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L","260":"G"},C:{"1":"0 1 2 3 4 5 6 7 8 9 hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB","194":"yB"},E:{"1":"A B C K L G fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F BD eC CD DD ED","260":"FD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB ND OD PD QD SC 3C RD TC","194":"lB"},G:{"1":"ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD","260":"YD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:4,C:"CSS Variables (Custom Properties)",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-when-else.js b/server/api/node_modules/caniuse-lite/data/features/css-when-else.js new file mode 100644 index 0000000..00091b4 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-when-else.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"2":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C H SC 3C TC"},L:{"2":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:5,C:"CSS @when / @else conditional rules",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-widows-orphans.js b/server/api/node_modules/caniuse-lite/data/features/css-widows-orphans.js new file mode 100644 index 0000000..b0adab9 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-widows-orphans.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J D 5C","129":"E F"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB"},E:{"1":"D E F A B C K L G ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J BD eC CD DD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z TC","129":"F B ND OD PD QD SC 3C RD"},G:{"1":"E VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C TD UD"},H:{"1":"pD"},I:{"1":"KB uD vD","2":"YC I qD rD sD tD 4C"},J:{"2":"D A"},K:{"1":"H TC","2":"A B C SC 3C"},L:{"1":"KB"},M:{"2":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"2":"9D AE"}},B:2,C:"CSS widows & orphans",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-width-stretch.js b/server/api/node_modules/caniuse-lite/data/features/css-width-stretch.js new file mode 100644 index 0000000..1610848 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-width-stretch.js @@ -0,0 +1 @@ +module.exports={A:{D:{"1":"VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB","33":"0 1 2 3 4 5 6 7 8 9 CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB"},L:{"1":"KB"},B:{"1":"VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O","33":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB 9C AD","33":"dB KB cC RC dC 7C 8C"},M:{"33":"RC"},A:{"2":"J D E F A B 5C"},F:{"1":"4 5 6 7 8 9","2":"F B C ND OD PD QD SC 3C RD TC","33":"0 1 2 3 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},K:{"2":"A B C SC 3C TC","33":"H"},E:{"2":"I eB J BD eC CD DD MD","33":"D E F A B C K L G ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},G:{"2":"eC SD 4C TD UD","33":"E VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},P:{"2":"I","33":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},I:{"1":"KB","2":"YC I qD rD sD tD 4C","33":"uD vD"}},B:6,C:"width: stretch property",D:undefined}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-writing-mode.js b/server/api/node_modules/caniuse-lite/data/features/css-writing-mode.js new file mode 100644 index 0000000..ca4928b --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-writing-mode.js @@ -0,0 +1 @@ +module.exports={A:{A:{"132":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB 9C AD","322":"mB nB oB pB qB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J","16":"D","33":"E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB"},E:{"1":"B C K L G SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I BD eC","16":"eB","33":"J D E F A CD DD ED FD fC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ND OD PD QD SC 3C RD TC","33":"G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB"},G:{"1":"bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","16":"eC SD 4C","33":"E TD UD VD WD XD YD ZD aD"},H:{"2":"pD"},I:{"1":"KB","2":"qD rD sD","33":"YC I tD 4C uD vD"},J:{"33":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"36":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","33":"I"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:2,C:"CSS writing-mode property",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css-zoom.js b/server/api/node_modules/caniuse-lite/data/features/css-zoom.js new file mode 100644 index 0000000..97811cc --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css-zoom.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"J D 5C","129":"E F A B"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"8 9 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"0 1 2 3 4 5 6 7 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"I eB J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"BD eC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ND OD PD QD SC 3C RD TC"},G:{"1":"E SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC"},H:{"2":"pD"},I:{"1":"YC I KB qD rD sD tD 4C uD vD"},J:{"1":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"129":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"2":"9D AE"}},B:5,C:"CSS zoom",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css3-attr.js b/server/api/node_modules/caniuse-lite/data/features/css3-attr.js new file mode 100644 index 0000000..60dcf01 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css3-attr.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"1":"QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y ND OD PD QD SC 3C RD TC"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"JB","2":"I AB BB CB DB EB FB GB HB IB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:7,C:"CSS3 attr() function for all properties",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css3-boxsizing.js b/server/api/node_modules/caniuse-lite/data/features/css3-boxsizing.js new file mode 100644 index 0000000..38756a6 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css3-boxsizing.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"E F A B","8":"J D 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","33":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","33":"I eB J D E F"},E:{"1":"J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","33":"I eB BD eC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC","2":"F"},G:{"1":"E TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","33":"eC SD 4C"},H:{"1":"pD"},I:{"1":"I KB tD 4C uD vD","33":"YC qD rD sD"},J:{"1":"A","33":"D"},K:{"1":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:5,C:"CSS3 Box-sizing",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css3-colors.js b/server/api/node_modules/caniuse-lite/data/features/css3-colors.js new file mode 100644 index 0000000..d737216 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css3-colors.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"F A B","2":"J D E 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD","4":"6C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z OD PD QD SC 3C RD TC","2":"F","4":"ND"},G:{"1":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"1":"pD"},I:{"1":"YC I KB qD rD sD tD 4C uD vD"},J:{"1":"D A"},K:{"1":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:2,C:"CSS3 Colors",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css3-cursors-grab.js b/server/api/node_modules/caniuse-lite/data/features/css3-cursors-grab.js new file mode 100644 index 0000000..7732f5a --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css3-cursors-grab.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L"},C:{"1":"0 1 2 3 4 5 6 7 8 9 HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","33":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","33":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC"},E:{"1":"B C K L G SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","33":"I eB J D E F A BD eC CD DD ED FD fC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z RD TC","2":"F B ND OD PD QD SC 3C","33":"G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"33":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"2":"9D AE"}},B:2,C:"CSS grab & grabbing cursors",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css3-cursors-newer.js b/server/api/node_modules/caniuse-lite/data/features/css3-cursors-newer.js new file mode 100644 index 0000000..8678bf1 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css3-cursors-newer.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","33":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","33":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB"},E:{"1":"F A B C K L G FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","33":"I eB J D E BD eC CD DD ED"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z RD TC","2":"F B ND OD PD QD SC 3C","33":"G M N O fB AB BB CB DB"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"33":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"2":"9D AE"}},B:2,C:"CSS3 Cursors: zoom-in & zoom-out",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css3-cursors.js b/server/api/node_modules/caniuse-lite/data/features/css3-cursors.js new file mode 100644 index 0000000..332a30b --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css3-cursors.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"F A B","132":"J D E 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","260":"C K"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","4":"6C YC 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","4":"I"},E:{"1":"eB J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","4":"I BD eC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","260":"F B C ND OD PD QD SC 3C RD TC"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D","16":"A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"2":"9D AE"}},B:2,C:"CSS3 Cursors (original values)",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/css3-tabsize.js b/server/api/node_modules/caniuse-lite/data/features/css3-tabsize.js new file mode 100644 index 0000000..96807a7 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/css3-tabsize.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC 9C AD","33":"3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y","164":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB","132":"BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB"},E:{"1":"L G GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J BD eC CD","132":"D E F A B C K DD ED FD fC SC TC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F ND OD PD","132":"G M N O fB AB BB CB DB EB FB GB HB IB","164":"B C QD SC 3C RD TC"},G:{"1":"iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C TD UD","132":"E VD WD XD YD ZD aD bD cD dD eD fD gD hD"},H:{"164":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C","132":"uD vD"},J:{"132":"D A"},K:{"1":"H","2":"A","164":"B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"164":"9D AE"}},B:4,C:"CSS3 tab-size",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/currentcolor.js b/server/api/node_modules/caniuse-lite/data/features/currentcolor.js new file mode 100644 index 0000000..0b21464 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/currentcolor.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"F A B","2":"J D E 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"I eB J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"BD eC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC","2":"F"},G:{"1":"E SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","16":"eC"},H:{"1":"pD"},I:{"1":"YC I KB qD rD sD tD 4C uD vD"},J:{"1":"D A"},K:{"1":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:2,C:"CSS currentColor value",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/custom-elements.js b/server/api/node_modules/caniuse-lite/data/features/custom-elements.js new file mode 100644 index 0000000..ebdd9ea --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/custom-elements.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F 5C","8":"A B"},B:{"1":"P","2":"0 1 2 3 4 5 6 7 8 9 H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","8":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD","66":"DB EB FB GB HB IB JB","72":"gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B"},D:{"1":"jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P","2":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","66":"HB IB JB gB hB iB"},E:{"2":"I eB BD eC CD","8":"J D E F A B C K L G DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC","2":"0 1 2 3 4 5 6 7 8 9 F B C FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC","66":"G M N O fB"},G:{"2":"eC SD 4C TD UD","8":"E VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"vD","2":"YC I KB qD rD sD tD 4C uD"},J:{"2":"D A"},K:{"2":"A B C H SC 3C TC"},L:{"2":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I wD xD yD zD 0D fC 1D 2D","2":"AB BB CB DB EB FB GB HB IB JB 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"2":"8D"},S:{"2":"AE","72":"9D"}},B:7,C:"Custom Elements (deprecated V0 spec)",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/custom-elementsv1.js b/server/api/node_modules/caniuse-lite/data/features/custom-elementsv1.js new file mode 100644 index 0000000..8f8b24e --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/custom-elementsv1.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F 5C","8":"A B"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","8":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB 9C AD","8":"gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB","456":"0B 1B 2B 3B 4B 5B 6B 7B 8B","712":"ZC 9B aC AC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B","8":"2B 3B","132":"4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC"},E:{"2":"I eB J D BD eC CD DD ED","8":"E F A FD","132":"B C K L G fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB ND OD PD QD SC 3C RD TC","132":"rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD","132":"aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I","132":"wD"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","8":"9D"}},B:1,C:"Custom Elements (V1)",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/customevent.js b/server/api/node_modules/caniuse-lite/data/features/customevent.js new file mode 100644 index 0000000..3dbb16a --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/customevent.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E 5C","132":"F A B"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB 9C AD","132":"J D E F A"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I","16":"eB J D E K L","388":"F A B C"},E:{"1":"D E F A B C K L G DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I BD eC","16":"eB J","388":"CD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z RD TC","2":"F ND OD PD QD","132":"B SC 3C"},G:{"1":"E UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"SD","16":"eC 4C","388":"TD"},H:{"1":"pD"},I:{"1":"KB uD vD","2":"qD rD sD","388":"YC I tD 4C"},J:{"1":"A","388":"D"},K:{"1":"C H TC","2":"A","132":"B SC 3C"},L:{"1":"KB"},M:{"1":"RC"},N:{"132":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"CustomEvent",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/customizable-select.js b/server/api/node_modules/caniuse-lite/data/features/customizable-select.js new file mode 100644 index 0000000..e751a80 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/customizable-select.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O P H Q R S T U V W X Y Z a b c d e","194":"0 1 2 3 4 5 6 7 8 9 f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"1":"SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e","194":"0 1 2 3 4 5 6 7 8 9 f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB"},E:{"1":"MD","2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},F:{"1":"2 3 4 5 6 7 8 9","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC ND OD PD QD SC 3C RD TC","194":"0 1 R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C SC 3C TC","194":"H"},L:{"1":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:1,C:"Customizable Select element",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/datalist.js b/server/api/node_modules/caniuse-lite/data/features/datalist.js new file mode 100644 index 0000000..014eb18 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/datalist.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"5C","8":"J D E F","260":"A B"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","260":"C K L G","1284":"M N O"},C:{"8":"6C YC 9C AD","516":"k l m n o p q r","4612":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j","8196":"0 1 2 3 4 5 6 7 8 9 s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","8":"I eB J D E F A B C K L G M N O fB","132":"AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC"},E:{"1":"K L G TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","8":"I eB J D E F A B C BD eC CD DD ED FD fC SC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC","132":"G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC"},G:{"8":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD","18436":"eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"KB vD","8":"YC I qD rD sD tD 4C uD"},J:{"1":"A","8":"D"},K:{"1":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"2":"RC"},N:{"8":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"2":"9D AE"}},B:1,C:"Datalist element",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/dataset.js b/server/api/node_modules/caniuse-lite/data/features/dataset.js new file mode 100644 index 0000000..34e6bbe --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/dataset.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","4":"J D E F A 5C"},B:{"1":"C K L G M","129":"0 1 2 3 4 5 6 7 8 9 N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B","4":"6C YC I eB 9C AD","129":"0 1 2 3 4 5 6 7 8 9 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C"},D:{"1":"vB wB xB yB zB 0B 1B 2B 3B 4B","4":"I eB J","129":"0 1 2 3 4 5 6 7 8 9 D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"4":"I eB BD eC","129":"J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"C iB jB kB lB mB nB oB pB qB rB SC 3C RD TC","4":"F B ND OD PD QD","129":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"4":"eC SD 4C","129":"E TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"4":"pD"},I:{"4":"qD rD sD","129":"YC I KB tD 4C uD vD"},J:{"129":"D A"},K:{"1":"C SC 3C TC","4":"A B","129":"H"},L:{"129":"KB"},M:{"129":"RC"},N:{"1":"B","4":"A"},O:{"129":"UC"},P:{"129":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"129":"7D"},R:{"129":"8D"},S:{"1":"9D","129":"AE"}},B:1,C:"dataset & data-* attributes",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/datauri.js b/server/api/node_modules/caniuse-lite/data/features/datauri.js new file mode 100644 index 0000000..c241c10 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/datauri.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D 5C","132":"E","260":"F A B"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","260":"C K G M N O","772":"L"},C:{"1":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC"},G:{"1":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"1":"pD"},I:{"1":"YC I KB qD rD sD tD 4C uD vD"},J:{"1":"D A"},K:{"1":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"260":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:6,C:"Data URIs",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/date-tolocaledatestring.js b/server/api/node_modules/caniuse-lite/data/features/date-tolocaledatestring.js new file mode 100644 index 0000000..0736b87 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/date-tolocaledatestring.js @@ -0,0 +1 @@ +module.exports={A:{A:{"16":"5C","132":"J D E F A B"},B:{"1":"0 1 2 3 4 5 6 7 8 9 O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","132":"C K L G M N"},C:{"1":"0 1 2 3 4 5 6 7 8 9 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","132":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB 9C AD","260":"2B 3B 4B 5B","772":"JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","132":"I eB J D E F A B C K L G M N O fB AB BB CB DB","260":"oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC","772":"EB FB GB HB IB JB gB hB iB jB kB lB mB nB"},E:{"1":"C K L G TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","16":"I eB BD eC","132":"J D E F A CD DD ED FD","260":"B fC SC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","16":"F B C ND OD PD QD SC 3C RD","132":"TC","260":"FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B","772":"G M N O fB AB BB CB DB EB"},G:{"1":"aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","16":"eC SD 4C TD","132":"E UD VD WD XD YD ZD"},H:{"132":"pD"},I:{"1":"KB","16":"YC qD rD sD","132":"I tD 4C","772":"uD vD"},J:{"132":"D A"},K:{"1":"H","16":"A B C SC 3C","132":"TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"132":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","260":"I wD xD yD zD"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","132":"9D"}},B:6,C:"Date.prototype.toLocaleDateString",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/declarative-shadow-dom.js b/server/api/node_modules/caniuse-lite/data/features/declarative-shadow-dom.js new file mode 100644 index 0000000..22be384 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/declarative-shadow-dom.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O P H Q R S T U V W X Y","132":"Z a b c d e f g h i j k l m n o p q r s"},C:{"1":"5 6 7 8 9 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"0 1 2 3 4 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S","66":"T U V W X","132":"Y Z a b c d e f g h i j k l m n o p q r s"},E:{"1":"lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC ND OD PD QD SC 3C RD TC","132":"PC QC P H Q bC R S T U V W X Y Z a b c d e"},G:{"1":"lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"CB DB EB FB GB HB IB JB","2":"I wD xD yD zD 0D fC 1D 2D 3D 4D","16":"5D","132":"AB BB VC WC XC 6D"},Q:{"2":"7D"},R:{"1":"8D"},S:{"2":"9D AE"}},B:1,C:"Declarative Shadow DOM",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/decorators.js b/server/api/node_modules/caniuse-lite/data/features/decorators.js new file mode 100644 index 0000000..4bdde19 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/decorators.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"2":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C H SC 3C TC"},L:{"2":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:7,C:"Decorators",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/details.js b/server/api/node_modules/caniuse-lite/data/features/details.js new file mode 100644 index 0000000..75da13c --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/details.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"F A B 5C","8":"J D E"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C","8":"YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB 9C AD","194":"xB yB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","8":"I eB J D E F A B","257":"fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB","769":"C K L G M N O"},E:{"1":"C K L G TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","8":"I eB BD eC CD","257":"J D E F A DD ED FD","1025":"B fC SC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"C SC 3C RD TC","8":"F B ND OD PD QD"},G:{"1":"E UD VD WD XD YD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","8":"eC SD 4C TD","1025":"ZD aD bD"},H:{"8":"pD"},I:{"1":"I KB tD 4C uD vD","8":"YC qD rD sD"},J:{"1":"A","8":"D"},K:{"1":"H","8":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"Details & Summary elements",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/deviceorientation.js b/server/api/node_modules/caniuse-lite/data/features/deviceorientation.js new file mode 100644 index 0000000..e036cf2 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/deviceorientation.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","2":"J D E F A 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC 9C","8":"I eB AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 F A hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J","4":"D E B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB"},E:{"1":"WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ND OD PD QD SC 3C RD TC","4":"G M N"},G:{"1":"WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD","4":"E 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD"},H:{"2":"pD"},I:{"1":"KB vD","2":"qD rD sD","4":"YC I tD 4C uD"},J:{"1":"A","2":"D"},K:{"1":"C H TC","2":"A B SC 3C"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"B","2":"A"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:4,C:"DeviceOrientation & DeviceMotion events",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/devicepixelratio.js b/server/api/node_modules/caniuse-lite/data/features/devicepixelratio.js new file mode 100644 index 0000000..3df3fc1 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/devicepixelratio.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","2":"J D E F A 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"132":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z RD TC","2":"F B ND OD PD QD SC 3C"},G:{"132":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"1":"pD"},I:{"1":"YC I KB qD rD sD tD 4C uD vD"},J:{"1":"D A"},K:{"1":"C H TC","2":"A B SC 3C"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"B","2":"A"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:5,C:"Window.devicePixelRatio",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/dialog.js b/server/api/node_modules/caniuse-lite/data/features/dialog.js new file mode 100644 index 0000000..7b4d9d4 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/dialog.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 9C AD","194":"3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P","1218":"H Q bC R S T U V W X Y Z a b c d e f"},D:{"1":"0 1 2 3 4 5 6 7 8 9 nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB","322":"iB jB kB lB mB"},E:{"1":"hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O ND OD PD QD SC 3C RD TC","578":"fB AB BB CB DB"},G:{"1":"hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"2":"9D AE"}},B:1,C:"Dialog element",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/dispatchevent.js b/server/api/node_modules/caniuse-lite/data/features/dispatchevent.js new file mode 100644 index 0000000..9f4450e --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/dispatchevent.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","16":"5C","129":"F A","130":"J D E"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"I eB J D E F A B C K L G eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","16":"BD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC","16":"F"},G:{"1":"E SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","16":"eC"},H:{"1":"pD"},I:{"1":"YC I KB sD tD 4C uD vD","16":"qD rD"},J:{"1":"D A"},K:{"1":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"B","129":"A"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"EventTarget.dispatchEvent",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/dnssec.js b/server/api/node_modules/caniuse-lite/data/features/dnssec.js new file mode 100644 index 0000000..d6a2016 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/dnssec.js @@ -0,0 +1 @@ +module.exports={A:{A:{"132":"J D E F A B 5C"},B:{"132":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"132":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"132":"0 1 2 3 4 5 6 7 8 9 I eB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","388":"J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB"},E:{"132":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"132":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC"},G:{"132":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"132":"pD"},I:{"132":"YC I KB qD rD sD tD 4C uD vD"},J:{"132":"D A"},K:{"132":"A B C H SC 3C TC"},L:{"132":"KB"},M:{"132":"RC"},N:{"132":"A B"},O:{"132":"UC"},P:{"132":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"132":"7D"},R:{"132":"8D"},S:{"132":"9D AE"}},B:6,C:"DNSSEC and DANE",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/do-not-track.js b/server/api/node_modules/caniuse-lite/data/features/do-not-track.js new file mode 100644 index 0000000..70aaf03 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/do-not-track.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E 5C","164":"F A","260":"B"},B:{"1":"0 1 2 3 4 5 6 7 8 9 N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","260":"C K L G M"},C:{"1":"0 1 2 3 4 5 6 7 8 9 iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E 9C AD","516":"F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB"},E:{"1":"J A B C CD FD fC SC","2":"I eB K L G BD eC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","1028":"D E F DD ED"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z TC","2":"F B ND OD PD QD SC 3C RD"},G:{"1":"XD YD ZD aD bD cD dD","2":"eC SD 4C TD UD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","1028":"E VD WD"},H:{"1":"pD"},I:{"1":"KB uD vD","2":"YC I qD rD sD tD 4C"},J:{"16":"D","1028":"A"},K:{"1":"H TC","16":"A B C SC 3C"},L:{"1":"KB"},M:{"1":"RC"},N:{"164":"A","260":"B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:7,C:"Do Not Track API",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/document-currentscript.js b/server/api/node_modules/caniuse-lite/data/features/document-currentscript.js new file mode 100644 index 0000000..639b77e --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/document-currentscript.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB"},E:{"1":"E F A B C K L G FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D BD eC CD DD ED"},F:{"1":"0 1 2 3 4 5 6 7 8 9 M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G ND OD PD QD SC 3C RD TC"},G:{"1":"E WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C TD UD VD"},H:{"2":"pD"},I:{"1":"KB uD vD","2":"YC I qD rD sD tD 4C"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"document.currentScript",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/document-evaluate-xpath.js b/server/api/node_modules/caniuse-lite/data/features/document-evaluate-xpath.js new file mode 100644 index 0000000..824211e --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/document-evaluate-xpath.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD","16":"6C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC","16":"F"},G:{"1":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"1":"pD"},I:{"1":"YC I KB qD rD sD tD 4C uD vD"},J:{"1":"D A"},K:{"1":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:7,C:"document.evaluate & XPath",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/document-execcommand.js b/server/api/node_modules/caniuse-lite/data/features/document-execcommand.js new file mode 100644 index 0000000..cae6e86 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/document-execcommand.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"J D E F A B C K L G DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","16":"I eB BD eC CD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z OD PD QD SC 3C RD TC","16":"F ND"},G:{"1":"E VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD","16":"4C TD UD"},H:{"2":"pD"},I:{"1":"KB tD 4C uD vD","2":"YC I qD rD sD"},J:{"1":"A","2":"D"},K:{"1":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"B","2":"A"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:7,C:"Document.execCommand()",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/document-policy.js b/server/api/node_modules/caniuse-lite/data/features/document-policy.js new file mode 100644 index 0000000..b81860e --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/document-policy.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"2":"C K L G M N O P H Q R S","132":"0 1 2 3 4 5 6 7 8 9 T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S","132":"0 1 2 3 4 5 6 7 8 9 T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC ND OD PD QD SC 3C RD TC","132":"0 1 2 3 4 5 6 7 8 9 JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"2":"YC I qD rD sD tD 4C uD vD","132":"KB"},J:{"2":"D A"},K:{"2":"A B C SC 3C TC","132":"H"},L:{"132":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"132":"8D"},S:{"2":"9D AE"}},B:7,C:"Document Policy",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/document-scrollingelement.js b/server/api/node_modules/caniuse-lite/data/features/document-scrollingelement.js new file mode 100644 index 0000000..fb09ded --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/document-scrollingelement.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","16":"C K"},C:{"1":"0 1 2 3 4 5 6 7 8 9 yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB"},E:{"1":"F A B C K L G FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E BD eC CD DD ED"},F:{"1":"0 1 2 3 4 5 6 7 8 9 hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB ND OD PD QD SC 3C RD TC"},G:{"1":"XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:5,C:"document.scrollingElement",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/documenthead.js b/server/api/node_modules/caniuse-lite/data/features/documenthead.js new file mode 100644 index 0000000..a408ccb --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/documenthead.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"F A B","2":"J D E 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I BD eC","16":"eB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z SC 3C RD TC","2":"F ND OD PD QD"},G:{"1":"E SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","16":"eC"},H:{"1":"pD"},I:{"1":"YC I KB sD tD 4C uD vD","16":"qD rD"},J:{"1":"D A"},K:{"1":"B C H SC 3C TC","2":"A"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"document.head",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/dom-manip-convenience.js b/server/api/node_modules/caniuse-lite/data/features/dom-manip-convenience.js new file mode 100644 index 0000000..5b3abf4 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/dom-manip-convenience.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M"},C:{"1":"0 1 2 3 4 5 6 7 8 9 zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B","194":"2B 3B"},E:{"1":"A B C K L G fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F BD eC CD DD ED FD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB ND OD PD QD SC 3C RD TC","194":"qB"},G:{"1":"ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I wD"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","2":"9D"}},B:1,C:"DOM manipulation convenience methods",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/dom-range.js b/server/api/node_modules/caniuse-lite/data/features/dom-range.js new file mode 100644 index 0000000..cd48f49 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/dom-range.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"F A B","2":"5C","8":"J D E"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC"},G:{"1":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"1":"pD"},I:{"1":"YC I KB qD rD sD tD 4C uD vD"},J:{"1":"D A"},K:{"1":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"Document Object Model Range",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/domcontentloaded.js b/server/api/node_modules/caniuse-lite/data/features/domcontentloaded.js new file mode 100644 index 0000000..8b3da4d --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/domcontentloaded.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"F A B","2":"J D E 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC"},G:{"1":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"1":"pD"},I:{"1":"YC I KB qD rD sD tD 4C uD vD"},J:{"1":"D A"},K:{"1":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"DOMContentLoaded",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/dommatrix.js b/server/api/node_modules/caniuse-lite/data/features/dommatrix.js new file mode 100644 index 0000000..4c4cf91 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/dommatrix.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F 5C","132":"A B"},B:{"132":"C K L G M N O","1028":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB 9C AD","1028":"0 1 2 3 4 5 6 7 8 9 HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2564":"jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB","3076":"zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC"},D:{"16":"I eB J D","132":"F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B","388":"E","1028":"0 1 2 3 4 5 6 7 8 9 aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"16":"I BD eC","132":"eB J D E F A CD DD ED FD fC","1028":"B C K L G SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"2":"F B C ND OD PD QD SC 3C RD TC","132":"G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB","1028":"0 1 2 3 4 5 6 7 8 9 yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"16":"eC SD 4C","132":"E TD UD VD WD XD YD ZD aD","1028":"bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"132":"I tD 4C uD vD","292":"YC qD rD sD","1028":"KB"},J:{"16":"D","132":"A"},K:{"2":"A B C SC 3C TC","1028":"H"},L:{"1028":"KB"},M:{"1028":"RC"},N:{"132":"A B"},O:{"1028":"UC"},P:{"132":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1028":"7D"},R:{"1028":"8D"},S:{"1028":"AE","2564":"9D"}},B:4,C:"DOMMatrix",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/download.js b/server/api/node_modules/caniuse-lite/data/features/download.js new file mode 100644 index 0000000..9489146 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/download.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K"},E:{"1":"B C K L G fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A BD eC CD DD ED FD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ND OD PD QD SC 3C RD TC"},G:{"1":"fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD"},H:{"2":"pD"},I:{"1":"KB uD vD","2":"YC I qD rD sD tD 4C"},J:{"1":"A","2":"D"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"Download attribute",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/dragndrop.js b/server/api/node_modules/caniuse-lite/data/features/dragndrop.js new file mode 100644 index 0000000..6556f83 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/dragndrop.js @@ -0,0 +1 @@ +module.exports={A:{A:{"644":"J D E F 5C","772":"A B"},B:{"1":"0 1 2 3 4 5 6 7 8 9 O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","260":"C K L G M N"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD","8":"6C YC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z TC","8":"F B ND OD PD QD SC 3C RD"},G:{"1":"lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD"},H:{"2":"pD"},I:{"2":"YC I qD rD sD tD 4C uD vD","1025":"KB"},J:{"2":"D A"},K:{"1":"TC","8":"A B C SC 3C","1025":"H"},L:{"1025":"KB"},M:{"2":"RC"},N:{"1":"A B"},O:{"1025":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:1,C:"Drag and Drop",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/element-closest.js b/server/api/node_modules/caniuse-lite/data/features/element-closest.js new file mode 100644 index 0000000..8710978 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/element-closest.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L"},C:{"1":"0 1 2 3 4 5 6 7 8 9 lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB"},E:{"1":"F A B C K L G FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E BD eC CD DD ED"},F:{"1":"0 1 2 3 4 5 6 7 8 9 IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB ND OD PD QD SC 3C RD TC"},G:{"1":"XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"Element.closest()",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/element-from-point.js b/server/api/node_modules/caniuse-lite/data/features/element-from-point.js new file mode 100644 index 0000000..afb0c75 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/element-from-point.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"J D E F A B","16":"5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD","16":"6C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","16":"I eB J D E F A B C K L"},E:{"1":"eB J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","16":"I BD eC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z SC 3C RD TC","16":"F ND OD PD QD"},G:{"1":"E SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","16":"eC"},H:{"1":"pD"},I:{"1":"YC I KB sD tD 4C uD vD","16":"qD rD"},J:{"1":"D A"},K:{"1":"C H TC","16":"A B SC 3C"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:5,C:"document.elementFromPoint()",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/element-scroll-methods.js b/server/api/node_modules/caniuse-lite/data/features/element-scroll-methods.js new file mode 100644 index 0000000..18bee2b --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/element-scroll-methods.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B"},E:{"1":"L G HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F BD eC CD DD ED FD","132":"A B C K fC SC TC GD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB ND OD PD QD SC 3C RD TC"},G:{"1":"kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD","132":"ZD aD bD cD dD eD fD gD hD iD jD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I wD xD yD"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:5,C:"Scroll methods on elements (scroll, scrollTo, scrollBy)",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/eme.js b/server/api/node_modules/caniuse-lite/data/features/eme.js new file mode 100644 index 0000000..0f167b4 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/eme.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A 5C","164":"B"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB","132":"lB mB nB oB pB qB rB"},E:{"1":"C K L G TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J BD eC CD DD","164":"D E F A B ED FD fC SC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB ND OD PD QD SC 3C RD TC","132":"CB DB EB FB GB HB IB"},G:{"1":"cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:2,C:"Encrypted Media Extensions",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/eot.js b/server/api/node_modules/caniuse-lite/data/features/eot.js new file mode 100644 index 0000000..8502277 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/eot.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"J D E F A B","2":"5C"},B:{"2":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C H SC 3C TC"},L:{"2":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:7,C:"EOT - Embedded OpenType fonts",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/es5.js b/server/api/node_modules/caniuse-lite/data/features/es5.js new file mode 100644 index 0000000..a48dac5 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/es5.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J D 5C","260":"F","1026":"E"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","4":"6C YC 9C AD","132":"I eB J D E F A B C K L G M N O fB AB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","4":"I eB J D E F A B C K L G M N O","132":"fB AB BB CB"},E:{"1":"J D E F A B C K L G DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","4":"I eB BD eC CD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","4":"F B C ND OD PD QD SC 3C RD","132":"TC"},G:{"1":"E UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","4":"eC SD 4C TD"},H:{"132":"pD"},I:{"1":"KB uD vD","4":"YC qD rD sD","132":"tD 4C","900":"I"},J:{"1":"A","4":"D"},K:{"1":"H","4":"A B C SC 3C","132":"TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:6,C:"ECMAScript 5",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/es6-class.js b/server/api/node_modules/caniuse-lite/data/features/es6-class.js new file mode 100644 index 0000000..7b38939 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/es6-class.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 9 vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB","132":"sB tB uB vB wB xB yB"},E:{"1":"F A B C K L G FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E BD eC CD DD ED"},F:{"1":"0 1 2 3 4 5 6 7 8 9 mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB ND OD PD QD SC 3C RD TC","132":"JB gB hB iB jB kB lB"},G:{"1":"XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:6,C:"ES6 classes",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/es6-generators.js b/server/api/node_modules/caniuse-lite/data/features/es6-generators.js new file mode 100644 index 0000000..65dae5b --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/es6-generators.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 9 GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB"},E:{"1":"A B C K L G fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F BD eC CD DD ED FD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB ND OD PD QD SC 3C RD TC"},G:{"1":"ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:6,C:"ES6 Generators",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/es6-module-dynamic-import.js b/server/api/node_modules/caniuse-lite/data/features/es6-module-dynamic-import.js new file mode 100644 index 0000000..798ca74 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/es6-module-dynamic-import.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC 9C AD","194":"EC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC"},E:{"1":"C K L G SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B BD eC CD DD ED FD fC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB ND OD PD QD SC 3C RD TC"},G:{"1":"bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I wD xD yD"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","2":"9D"}},B:6,C:"JavaScript modules: dynamic import()",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/es6-module.js b/server/api/node_modules/caniuse-lite/data/features/es6-module.js new file mode 100644 index 0000000..375e17e --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/es6-module.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L","2049":"M N O","2242":"G"},C:{"1":"0 1 2 3 4 5 6 7 8 9 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 9C AD","322":"4B 5B 6B 7B 8B ZC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC","194":"9B"},E:{"1":"B C K L G SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A BD eC CD DD ED FD","1540":"fC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB ND OD PD QD SC 3C RD TC","194":"xB"},G:{"1":"bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD","1540":"aD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I wD xD yD"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","2":"9D"}},B:1,C:"JavaScript modules via script tag",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/es6-number.js b/server/api/node_modules/caniuse-lite/data/features/es6-number.js new file mode 100644 index 0000000..1239e71 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/es6-number.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G 9C AD","132":"M N O fB AB BB CB DB EB","260":"FB GB HB IB JB gB","516":"hB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O","1028":"fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB"},E:{"1":"F A B C K L G FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E BD eC CD DD ED"},F:{"1":"0 1 2 3 4 5 6 7 8 9 BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ND OD PD QD SC 3C RD TC","1028":"G M N O fB AB"},G:{"1":"XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD","1028":"tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:6,C:"ES6 Number",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/es6-string-includes.js b/server/api/node_modules/caniuse-lite/data/features/es6-string-includes.js new file mode 100644 index 0000000..112329c --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/es6-string-includes.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB"},E:{"1":"F A B C K L G FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E BD eC CD DD ED"},F:{"1":"0 1 2 3 4 5 6 7 8 9 IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB ND OD PD QD SC 3C RD TC"},G:{"1":"XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:6,C:"String.prototype.includes",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/es6.js b/server/api/node_modules/caniuse-lite/data/features/es6.js new file mode 100644 index 0000000..8825005 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/es6.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A 5C","388":"B"},B:{"257":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","260":"C K L","769":"G M N O"},C:{"2":"6C YC I eB 9C AD","4":"J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B","257":"0 1 2 3 4 5 6 7 8 9 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C"},D:{"2":"I eB J D E F A B C K L G M N O fB AB","4":"BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B","257":"0 1 2 3 4 5 6 7 8 9 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"A B C K L G fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D BD eC CD DD","4":"E F ED FD"},F:{"2":"F B C ND OD PD QD SC 3C RD TC","4":"G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB","257":"0 1 2 3 4 5 6 7 8 9 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"1":"ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C TD UD","4":"E VD WD XD YD"},H:{"2":"pD"},I:{"2":"YC I qD rD sD tD 4C","4":"uD vD","257":"KB"},J:{"2":"D","4":"A"},K:{"2":"A B C SC 3C TC","257":"H"},L:{"257":"KB"},M:{"257":"RC"},N:{"2":"A","388":"B"},O:{"257":"UC"},P:{"4":"I","257":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"257":"7D"},R:{"257":"8D"},S:{"4":"9D","257":"AE"}},B:6,C:"ECMAScript 2015 (ES6)",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/eventsource.js b/server/api/node_modules/caniuse-lite/data/features/eventsource.js new file mode 100644 index 0000000..207e2b1 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/eventsource.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB"},E:{"1":"eB J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I BD eC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z SC 3C RD TC","4":"F ND OD PD QD"},G:{"1":"E SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC"},H:{"2":"pD"},I:{"1":"KB uD vD","2":"YC I qD rD sD tD 4C"},J:{"1":"D A"},K:{"1":"C H SC 3C TC","4":"A B"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"Server-sent events",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/extended-system-fonts.js b/server/api/node_modules/caniuse-lite/data/features/extended-system-fonts.js new file mode 100644 index 0000000..5a320cc --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/extended-system-fonts.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"2":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"L G GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C K BD eC CD DD ED FD fC SC TC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC"},G:{"1":"iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C H SC 3C TC"},L:{"2":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:5,C:"ui-serif, ui-sans-serif, ui-monospace and ui-rounded values for font-family",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/feature-policy.js b/server/api/node_modules/caniuse-lite/data/features/feature-policy.js new file mode 100644 index 0000000..0ba30ff --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/feature-policy.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"P H Q R S T U V","2":"C K L G M N O","1025":"0 1 2 3 4 5 6 7 8 9 W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC 9C AD","260":"0 1 2 3 4 5 6 7 8 9 MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C"},D:{"1":"MC NC OC PC QC P H Q R S T U V","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC","132":"9B aC AC BC CC DC EC FC GC HC IC JC KC LC","1025":"0 1 2 3 4 5 6 7 8 9 W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"2":"I eB J D E F A B BD eC CD DD ED FD fC","772":"C K L G SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB ND OD PD QD SC 3C RD TC","132":"xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B","1025":"0 1 2 3 4 5 6 7 8 9 NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD","772":"cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C SC 3C TC","1025":"H"},L:{"1025":"KB"},M:{"260":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB 1D 2D 3D 4D 5D VC WC XC 6D","2":"I wD xD yD","132":"zD 0D fC"},Q:{"132":"7D"},R:{"1025":"8D"},S:{"2":"9D","260":"AE"}},B:7,C:"Feature Policy",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/fetch.js b/server/api/node_modules/caniuse-lite/data/features/fetch.js new file mode 100644 index 0000000..a00e1c5 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/fetch.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K"},C:{"1":"0 1 2 3 4 5 6 7 8 9 qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB 9C AD","1025":"pB","1218":"kB lB mB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB","260":"qB","772":"rB"},E:{"1":"B C K L G fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A BD eC CD DD ED FD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB ND OD PD QD SC 3C RD TC","260":"HB","772":"IB"},G:{"1":"aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"Fetch",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/fieldset-disabled.js b/server/api/node_modules/caniuse-lite/data/features/fieldset-disabled.js new file mode 100644 index 0000000..2003a67 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/fieldset-disabled.js @@ -0,0 +1 @@ +module.exports={A:{A:{"16":"5C","132":"E F","388":"J D A B"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G","16":"M N O fB"},E:{"1":"J D E F A B C K L G DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB BD eC CD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z OD PD QD SC 3C RD TC","16":"F ND"},G:{"1":"E UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C TD"},H:{"388":"pD"},I:{"1":"KB uD vD","2":"YC I qD rD sD tD 4C"},J:{"1":"A","2":"D"},K:{"1":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A","260":"B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"disabled attribute of the fieldset element",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/fileapi.js b/server/api/node_modules/caniuse-lite/data/features/fileapi.js new file mode 100644 index 0000000..6d674eb --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/fileapi.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F 5C","260":"A B"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","260":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC 9C","260":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB","260":"K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB","388":"J D E F A B C"},E:{"1":"A B C K L G fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB BD eC","260":"J D E F DD ED FD","388":"CD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B ND OD PD QD","260":"C G M N O fB AB BB CB DB EB SC 3C RD TC"},G:{"1":"ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C TD","260":"E UD VD WD XD YD"},H:{"2":"pD"},I:{"1":"KB vD","2":"qD rD sD","260":"uD","388":"YC I tD 4C"},J:{"260":"A","388":"D"},K:{"1":"H","2":"A B","260":"C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A","260":"B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:5,C:"File API",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/filereader.js b/server/api/node_modules/caniuse-lite/data/features/filereader.js new file mode 100644 index 0000000..9e1b1e8 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/filereader.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F 5C","132":"A B"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C AD","2":"6C YC 9C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB"},E:{"1":"J D E F A B C K L G DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB BD eC CD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z SC 3C RD TC","2":"F B ND OD PD QD"},G:{"1":"E UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C TD"},H:{"2":"pD"},I:{"1":"YC I KB tD 4C uD vD","2":"qD rD sD"},J:{"1":"A","2":"D"},K:{"1":"C H SC 3C TC","2":"A B"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:5,C:"FileReader API",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/filereadersync.js b/server/api/node_modules/caniuse-lite/data/features/filereadersync.js new file mode 100644 index 0000000..5223ba4 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/filereadersync.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J D E F 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","16":"I eB J D E F A B C K L"},E:{"1":"J D E F A B C K L G DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB BD eC CD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z RD TC","2":"F ND OD","16":"B PD QD SC 3C"},G:{"1":"E UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C TD"},H:{"2":"pD"},I:{"1":"KB uD vD","2":"YC I qD rD sD tD 4C"},J:{"1":"A","2":"D"},K:{"1":"C H 3C TC","2":"A","16":"B SC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:5,C:"FileReaderSync",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/filesystem.js b/server/api/node_modules/caniuse-lite/data/features/filesystem.js new file mode 100644 index 0000000..a9a7266 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/filesystem.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"2":"C K L G M N O","33":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"2":"I eB J D","33":"0 1 2 3 4 5 6 7 8 9 K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","36":"E F A B C"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"2":"F B C ND OD PD QD SC 3C RD TC","33":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D","33":"A"},K:{"2":"A B C SC 3C TC","33":"H"},L:{"33":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"33":"UC"},P:{"2":"I","33":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"33":"8D"},S:{"2":"9D AE"}},B:7,C:"Filesystem & FileWriter API",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/flac.js b/server/api/node_modules/caniuse-lite/data/features/flac.js new file mode 100644 index 0000000..6e8c1eb --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/flac.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G"},C:{"1":"0 1 2 3 4 5 6 7 8 9 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB","16":"uB vB wB","388":"xB yB zB 0B 1B 2B 3B 4B 5B"},E:{"1":"K L G GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A BD eC CD DD ED FD fC","516":"B C SC TC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB ND OD PD QD SC 3C RD TC"},G:{"1":"bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD"},H:{"2":"pD"},I:{"1":"KB","2":"qD rD sD","16":"YC I tD 4C uD vD"},J:{"1":"A","2":"D"},K:{"1":"H TC","16":"A B C SC 3C"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","129":"I"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","2":"9D"}},B:6,C:"FLAC audio format",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/flexbox-gap.js b/server/api/node_modules/caniuse-lite/data/features/flexbox-gap.js new file mode 100644 index 0000000..c35a097 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/flexbox-gap.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O P H Q R"},C:{"1":"0 1 2 3 4 5 6 7 8 9 BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R"},E:{"1":"G HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C K L BD eC CD DD ED FD fC SC TC GD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC ND OD PD QD SC 3C RD TC"},G:{"1":"kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB 4D 5D VC WC XC 6D","2":"I wD xD yD zD 0D fC 1D 2D 3D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","2":"9D"}},B:5,C:"gap property for Flexbox",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/flexbox.js b/server/api/node_modules/caniuse-lite/data/features/flexbox.js new file mode 100644 index 0000000..b438382 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/flexbox.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F 5C","1028":"B","1316":"A"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","164":"6C YC I eB J D E F A B C K L G M N O fB AB BB 9C AD","516":"CB DB EB FB GB HB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","33":"BB CB DB EB FB GB HB IB","164":"I eB J D E F A B C K L G M N O fB AB"},E:{"1":"F A B C K L G FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","33":"D E DD ED","164":"I eB J BD eC CD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z TC","2":"F B C ND OD PD QD SC 3C RD","33":"G M"},G:{"1":"XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","33":"E VD WD","164":"eC SD 4C TD UD"},H:{"1":"pD"},I:{"1":"KB uD vD","164":"YC I qD rD sD tD 4C"},J:{"1":"A","164":"D"},K:{"1":"H TC","2":"A B C SC 3C"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"B","292":"A"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:4,C:"CSS Flexible Box Layout Module",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/flow-root.js b/server/api/node_modules/caniuse-lite/data/features/flow-root.js new file mode 100644 index 0000000..89a3bd2 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/flow-root.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B"},E:{"1":"K L G GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C BD eC CD DD ED FD fC SC TC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB ND OD PD QD SC 3C RD TC"},G:{"1":"fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I wD xD"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","2":"9D"}},B:4,C:"display: flow-root",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/focusin-focusout-events.js b/server/api/node_modules/caniuse-lite/data/features/focusin-focusout-events.js new file mode 100644 index 0000000..2a3395c --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/focusin-focusout-events.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"J D E F A B","2":"5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","16":"I eB J D E F A B C K L"},E:{"1":"J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","16":"I eB BD eC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z RD TC","2":"F ND OD PD QD","16":"B SC 3C"},G:{"1":"E TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C"},H:{"2":"pD"},I:{"1":"I KB tD 4C uD vD","2":"qD rD sD","16":"YC"},J:{"1":"D A"},K:{"1":"C H TC","2":"A","16":"B SC 3C"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","2":"9D"}},B:5,C:"focusin & focusout events",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/font-family-system-ui.js b/server/api/node_modules/caniuse-lite/data/features/font-family-system-ui.js new file mode 100644 index 0000000..db91dfd --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/font-family-system-ui.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB 9C AD","132":"tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z"},D:{"1":"0 1 2 3 4 5 6 7 8 9 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B","260":"3B 4B 5B"},E:{"1":"B C K L G SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E BD eC CD DD ED","16":"F","132":"A FD fC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB ND OD PD QD SC 3C RD TC"},G:{"1":"bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD","132":"XD YD ZD aD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I wD"},Q:{"1":"7D"},R:{"1":"8D"},S:{"132":"9D AE"}},B:5,C:"system-ui value for font-family",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/font-feature.js b/server/api/node_modules/caniuse-lite/data/features/font-feature.js new file mode 100644 index 0000000..3662d5e --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/font-feature.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J D E F 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC 9C AD","33":"G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB","164":"I eB J D E F A B C K L"},D:{"1":"0 1 2 3 4 5 6 7 8 9 yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G","33":"BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB","292":"M N O fB AB"},E:{"1":"A B C K L G FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"D E F BD eC DD ED","4":"I eB J CD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ND OD PD QD SC 3C RD TC","33":"G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB"},G:{"1":"YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E VD WD XD","4":"eC SD 4C TD UD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C","33":"uD vD"},J:{"2":"D","33":"A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","33":"I"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:2,C:"CSS font-feature-settings",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/font-kerning.js b/server/api/node_modules/caniuse-lite/data/features/font-kerning.js new file mode 100644 index 0000000..bf4ffd7 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/font-kerning.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB 9C AD","194":"EB FB GB HB IB JB gB hB iB jB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB","33":"JB gB hB iB"},E:{"1":"A B C K L G FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J BD eC CD DD","33":"D E F ED"},F:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G ND OD PD QD SC 3C RD TC","33":"M N O fB"},G:{"1":"dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C TD UD VD","33":"E WD XD YD ZD aD bD cD"},H:{"2":"pD"},I:{"1":"KB vD","2":"YC I qD rD sD tD 4C","33":"uD"},J:{"2":"D","33":"A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:4,C:"CSS3 font-kerning",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/font-loading.js b/server/api/node_modules/caniuse-lite/data/features/font-loading.js new file mode 100644 index 0000000..53c5a54 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/font-loading.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB 9C AD","194":"lB mB nB oB pB qB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB"},E:{"1":"A B C K L G fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F BD eC CD DD ED FD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB ND OD PD QD SC 3C RD TC"},G:{"1":"ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:5,C:"CSS Font Loading",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/font-size-adjust.js b/server/api/node_modules/caniuse-lite/data/features/font-size-adjust.js new file mode 100644 index 0000000..75e3bf1 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/font-size-adjust.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"9 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O","194":"0 1 2 3 4 5 6 7 8 z","962":"P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y"},C:{"1":"0 1 2 3 4 5 6 7 8 9 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C","516":"a b c d e f g h i j k l m n o p q r s t u v w x y z","772":"YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z 9C AD"},D:{"1":"9 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB","194":"2 3 4 5 6 7 8","962":"0 1 tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC","772":"lC mC KD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB ND OD PD QD SC 3C RD TC","194":"k l m n o p q r s t u","962":"gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j"},G:{"1":"WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC","772":"lC mC nD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"194":"7D"},R:{"2":"8D"},S:{"2":"9D","516":"AE"}},B:2,C:"CSS font-size-adjust",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/font-smooth.js b/server/api/node_modules/caniuse-lite/data/features/font-smooth.js new file mode 100644 index 0000000..f57d446 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/font-smooth.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"2":"C K L G M N O","676":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB 9C AD","804":"0 1 2 3 4 5 6 7 8 9 FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","1828":"LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C"},D:{"2":"I","676":"0 1 2 3 4 5 6 7 8 9 eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"2":"BD eC","676":"I eB J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"2":"F B C ND OD PD QD SC 3C RD TC","676":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C H SC 3C TC"},L:{"2":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"804":"9D AE"}},B:7,C:"CSS font-smooth",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/font-unicode-range.js b/server/api/node_modules/caniuse-lite/data/features/font-unicode-range.js new file mode 100644 index 0000000..bbc797d --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/font-unicode-range.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E 5C","4":"F A B"},B:{"1":"0 1 2 3 4 5 6 7 8 9 N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","4":"C K L G M"},C:{"1":"0 1 2 3 4 5 6 7 8 9 uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB 9C AD","194":"mB nB oB pB qB rB sB tB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","4":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB"},E:{"1":"A B C K L G fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","4":"I eB J D E F BD eC CD DD ED FD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ND OD PD QD SC 3C RD TC","4":"G M N O fB AB BB CB"},G:{"1":"ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","4":"E eC SD 4C TD UD VD WD XD YD"},H:{"2":"pD"},I:{"1":"KB","4":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D","4":"A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"4":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","4":"I"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:4,C:"Font unicode-range subsetting",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/font-variant-alternates.js b/server/api/node_modules/caniuse-lite/data/features/font-variant-alternates.js new file mode 100644 index 0000000..4603b21 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/font-variant-alternates.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F 5C","130":"A B"},B:{"1":"0 1 2 3 4 5 6 7 8 9 t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","130":"C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s"},C:{"1":"0 1 2 3 4 5 6 7 8 9 kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC 9C AD","130":"I eB J D E F A B C K L G M N O fB AB BB CB DB","322":"EB FB GB HB IB JB gB hB iB jB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G","130":"M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s"},E:{"1":"A B C K L G FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"D E F BD eC DD ED","130":"I eB J CD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u v w x y z","2":"F B C ND OD PD QD SC 3C RD TC","130":"G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f"},G:{"1":"YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC VD WD XD","130":"SD 4C TD UD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C","130":"uD vD"},J:{"2":"D","130":"A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"130":"UC"},P:{"1":"CB DB EB FB GB HB IB JB","130":"I AB BB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"130":"7D"},R:{"130":"8D"},S:{"1":"9D AE"}},B:5,C:"CSS font-variant-alternates",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/font-variant-numeric.js b/server/api/node_modules/caniuse-lite/data/features/font-variant-numeric.js new file mode 100644 index 0000000..2b461c0 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/font-variant-numeric.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B"},E:{"1":"A B C K L G FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F BD eC CD DD ED"},F:{"1":"0 1 2 3 4 5 6 7 8 9 pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB ND OD PD QD SC 3C RD TC"},G:{"1":"YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D","16":"A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I wD"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:2,C:"CSS font-variant-numeric",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/fontface.js b/server/api/node_modules/caniuse-lite/data/features/fontface.js new file mode 100644 index 0000000..685ddc6 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/fontface.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"F A B","132":"J D E 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD","2":"6C YC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z OD PD QD SC 3C RD TC","2":"F ND"},G:{"1":"E 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","260":"eC SD"},H:{"2":"pD"},I:{"1":"I KB tD 4C uD vD","2":"qD","4":"YC rD sD"},J:{"1":"A","4":"D"},K:{"1":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:2,C:"@font-face Web fonts",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/form-attribute.js b/server/api/node_modules/caniuse-lite/data/features/form-attribute.js new file mode 100644 index 0000000..4b6a4fd --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/form-attribute.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F"},E:{"1":"J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I BD eC","16":"eB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC","2":"F"},G:{"1":"E TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C"},H:{"1":"pD"},I:{"1":"YC I KB tD 4C uD vD","2":"qD rD sD"},J:{"1":"D A"},K:{"1":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"Form attribute",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/form-submit-attributes.js b/server/api/node_modules/caniuse-lite/data/features/form-submit-attributes.js new file mode 100644 index 0000000..a43b517 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/form-submit-attributes.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J D E F 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","16":"I eB J D E F A B C K L"},E:{"1":"J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB BD eC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z QD SC 3C RD TC","2":"F ND","16":"OD PD"},G:{"1":"E TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C"},H:{"1":"pD"},I:{"1":"I KB tD 4C uD vD","2":"qD rD sD","16":"YC"},J:{"1":"A","2":"D"},K:{"1":"B C H SC 3C TC","16":"A"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"Attributes for form submission",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/form-validation.js b/server/api/node_modules/caniuse-lite/data/features/form-validation.js new file mode 100644 index 0000000..d166e7c --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/form-validation.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J D E F 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F"},E:{"1":"B C K L G fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I BD eC","132":"eB J D E F A CD DD ED FD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z OD PD QD SC 3C RD TC","2":"F ND"},G:{"1":"aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC","132":"E SD 4C TD UD VD WD XD YD ZD"},H:{"516":"pD"},I:{"1":"KB vD","2":"YC qD rD sD","132":"I tD 4C uD"},J:{"1":"A","132":"D"},K:{"1":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"132":"RC"},N:{"260":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","132":"9D"}},B:1,C:"Form validation",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/forms.js b/server/api/node_modules/caniuse-lite/data/features/forms.js new file mode 100644 index 0000000..63c313e --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/forms.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"5C","4":"A B","8":"J D E F"},B:{"1":"0 1 2 3 4 5 6 7 8 9 M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","4":"C K L G"},C:{"4":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","8":"6C YC 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","4":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B"},E:{"4":"I eB J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","8":"BD eC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC","4":"G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B"},G:{"2":"eC","4":"E SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C","4":"uD vD"},J:{"2":"D","4":"A"},K:{"1":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"4":"RC"},N:{"4":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","4":"I wD xD yD"},Q:{"1":"7D"},R:{"1":"8D"},S:{"4":"9D AE"}},B:1,C:"HTML5 form features",D:false}; diff --git a/server/api/node_modules/caniuse-lite/data/features/fullscreen.js b/server/api/node_modules/caniuse-lite/data/features/fullscreen.js new file mode 100644 index 0000000..5682172 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/fullscreen.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A 5C","548":"B"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","516":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F 9C AD","676":"A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB","1700":"xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L","676":"G M N O fB","804":"AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC"},E:{"1":"lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB BD eC","548":"hC UC JD VC iC jC kC","676":"CD","804":"J D E F A B C K L G DD ED FD fC SC TC GD HD ID gC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z TC","2":"F B C ND OD PD QD SC 3C RD","804":"G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD","2052":"dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D","292":"A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A","548":"B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB fC 1D 2D 3D 4D 5D VC WC XC 6D","804":"I wD xD yD zD 0D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"Fullscreen API",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/gamepad.js b/server/api/node_modules/caniuse-lite/data/features/gamepad.js new file mode 100644 index 0000000..a4ea9a0 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/gamepad.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB","33":"BB CB DB EB"},E:{"1":"B C K L G fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A BD eC CD DD ED FD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB ND OD PD QD SC 3C RD TC"},G:{"1":"aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","2":"9D"}},B:5,C:"Gamepad API",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/geolocation.js b/server/api/node_modules/caniuse-lite/data/features/geolocation.js new file mode 100644 index 0000000..aae1754 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/geolocation.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"F A B","2":"5C","8":"J D E"},B:{"1":"C K L G M N O","129":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 9C AD","8":"6C YC","129":"0 1 2 3 4 5 6 7 8 9 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C"},D:{"1":"eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB","4":"I","129":"0 1 2 3 4 5 6 7 8 9 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"eB J D E F B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","8":"I BD eC","129":"A"},F:{"1":"B C M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB QD SC 3C RD TC","2":"F G ND","8":"OD PD","129":"0 1 2 3 4 5 6 7 8 9 pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"1":"E eC SD 4C TD UD VD WD XD YD","129":"ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"YC I qD rD sD tD 4C uD vD","129":"KB"},J:{"1":"D A"},K:{"1":"B C SC 3C TC","8":"A","129":"H"},L:{"129":"KB"},M:{"129":"RC"},N:{"1":"A B"},O:{"129":"UC"},P:{"1":"I","129":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"129":"7D"},R:{"129":"8D"},S:{"1":"9D","129":"AE"}},B:2,C:"Geolocation",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/getboundingclientrect.js b/server/api/node_modules/caniuse-lite/data/features/getboundingclientrect.js new file mode 100644 index 0000000..5dc2931 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/getboundingclientrect.js @@ -0,0 +1 @@ +module.exports={A:{A:{"644":"J D 5C","2049":"F A B","2692":"E"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2049":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C","260":"I eB J D E F A B","1156":"YC","1284":"9C","1796":"AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"I eB J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","16":"BD eC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z QD SC 3C RD TC","16":"F ND","132":"OD PD"},G:{"1":"E SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","16":"eC"},H:{"1":"pD"},I:{"1":"YC I KB sD tD 4C uD vD","16":"qD rD"},J:{"1":"D A"},K:{"1":"B C H SC 3C TC","132":"A"},L:{"1":"KB"},M:{"1":"RC"},N:{"2049":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:5,C:"Element.getBoundingClientRect()",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/getcomputedstyle.js b/server/api/node_modules/caniuse-lite/data/features/getcomputedstyle.js new file mode 100644 index 0000000..3009677 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/getcomputedstyle.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"F A B","2":"J D E 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C","132":"YC 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","260":"I eB J D E F A"},E:{"1":"eB J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","260":"I BD eC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z QD SC 3C RD TC","260":"F ND OD PD"},G:{"1":"E TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","260":"eC SD 4C"},H:{"260":"pD"},I:{"1":"I KB tD 4C uD vD","260":"YC qD rD sD"},J:{"1":"A","260":"D"},K:{"1":"B C H SC 3C TC","260":"A"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:2,C:"getComputedStyle",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/getelementsbyclassname.js b/server/api/node_modules/caniuse-lite/data/features/getelementsbyclassname.js new file mode 100644 index 0000000..f6267cc --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/getelementsbyclassname.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"F A B","2":"5C","8":"J D E"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD","8":"6C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC","2":"F"},G:{"1":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"1":"pD"},I:{"1":"YC I KB qD rD sD tD 4C uD vD"},J:{"1":"D A"},K:{"1":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"getElementsByClassName",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/getrandomvalues.js b/server/api/node_modules/caniuse-lite/data/features/getrandomvalues.js new file mode 100644 index 0000000..02cd825 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/getrandomvalues.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A 5C","33":"B"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A"},E:{"1":"D E F A B C K L G DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J BD eC CD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ND OD PD QD SC 3C RD TC"},G:{"1":"E VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C TD UD"},H:{"2":"pD"},I:{"1":"KB uD vD","2":"YC I qD rD sD tD 4C"},J:{"1":"A","2":"D"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A","33":"B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:2,C:"crypto.getRandomValues()",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/gyroscope.js b/server/api/node_modules/caniuse-lite/data/features/gyroscope.js new file mode 100644 index 0000000..ce8f2be --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/gyroscope.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B","194":"8B ZC 9B aC AC BC CC DC EC"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B ND OD PD QD SC 3C RD TC"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"2":"9D AE"}},B:4,C:"Gyroscope",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/hardwareconcurrency.js b/server/api/node_modules/caniuse-lite/data/features/hardwareconcurrency.js new file mode 100644 index 0000000..6a53f49 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/hardwareconcurrency.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L"},C:{"1":"0 1 2 3 4 5 6 7 8 9 yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB"},E:{"2":"I eB J D B C K L G BD eC CD DD ED SC TC GD HD ID gC","129":"fC","194":"E F A FD","257":"hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB ND OD PD QD SC 3C RD TC"},G:{"2":"eC SD 4C TD UD VD bD cD dD eD fD gD hD iD jD kD lD gC","129":"aD","194":"E WD XD YD ZD","257":"hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"navigator.hardwareConcurrency",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/hashchange.js b/server/api/node_modules/caniuse-lite/data/features/hashchange.js new file mode 100644 index 0000000..ccac76f --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/hashchange.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"E F A B","8":"J D 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C AD","8":"6C YC 9C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","8":"I"},E:{"1":"eB J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","8":"I BD eC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z QD SC 3C RD TC","8":"F ND OD PD"},G:{"1":"E SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC"},H:{"2":"pD"},I:{"1":"YC I KB rD sD tD 4C uD vD","2":"qD"},J:{"1":"D A"},K:{"1":"B C H SC 3C TC","8":"A"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"Hashchange event",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/heif.js b/server/api/node_modules/caniuse-lite/data/features/heif.js new file mode 100644 index 0000000..6586031 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/heif.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"2":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A BD eC CD DD ED FD fC","130":"B C K L G SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC"},G:{"1":"WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD nD","130":"bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C H SC 3C TC"},L:{"2":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:6,C:"HEIF/HEIC image format",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/hevc.js b/server/api/node_modules/caniuse-lite/data/features/hevc.js new file mode 100644 index 0000000..f63c597 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/hevc.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A 5C","132":"B"},B:{"132":"C K L G M N O","1028":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"2":"0 1 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z 9C AD","4098":"2","8258":"3 4 5 6 7 8 9 LB MB NB OB PB QB RB SB TB","16388":"UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C"},D:{"2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o","2052":"0 1 2 3 4 5 6 7 8 9 p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"K L G GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A BD eC CD DD ED FD fC","516":"B C SC TC"},F:{"2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b ND OD PD QD SC 3C RD TC","2052":"0 1 2 3 4 5 6 7 8 9 c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"1":"bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD"},H:{"2":"pD"},I:{"2":"YC I qD rD sD tD 4C uD vD","2052":"KB"},J:{"2":"D A"},K:{"2":"A B C SC 3C TC","258":"H"},L:{"2052":"KB"},M:{"16388":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"BB CB DB EB FB GB HB IB JB","2":"I","258":"AB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"1":"8D"},S:{"2":"9D AE"}},B:6,C:"HEVC/H.265 video format",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/hidden.js b/server/api/node_modules/caniuse-lite/data/features/hidden.js new file mode 100644 index 0000000..f327999 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/hidden.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","2":"J D E F A 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB"},E:{"1":"J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB BD eC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z SC 3C RD TC","2":"F B ND OD PD QD"},G:{"1":"E TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C"},H:{"1":"pD"},I:{"1":"I KB tD 4C uD vD","2":"YC qD rD sD"},J:{"1":"A","2":"D"},K:{"1":"C H SC 3C TC","2":"A B"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"B","2":"A"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"hidden attribute",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/high-resolution-time.js b/server/api/node_modules/caniuse-lite/data/features/high-resolution-time.js new file mode 100644 index 0000000..68ca76a --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/high-resolution-time.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J D E F 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B","2":"6C YC I eB J D E F A B C K L 9C AD","129":"5B 6B 7B","769":"8B ZC","1281":"0 1 2 3 4 5 6 7 8 9 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB","33":"AB BB CB DB"},E:{"1":"E F A B C K L G FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D BD eC CD DD ED"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ND OD PD QD SC 3C RD TC"},G:{"1":"E XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C TD UD VD WD"},H:{"2":"pD"},I:{"1":"KB uD vD","2":"YC I qD rD sD tD 4C"},J:{"1":"A","2":"D"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:2,C:"High Resolution Time API",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/history.js b/server/api/node_modules/caniuse-lite/data/features/history.js new file mode 100644 index 0000000..2ef387d --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/history.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J D E F 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I"},E:{"1":"J D E F A B C K L G DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I BD eC","4":"eB CD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z 3C RD TC","2":"F B ND OD PD QD SC"},G:{"1":"E TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD","4":"4C"},H:{"2":"pD"},I:{"1":"KB rD sD 4C uD vD","2":"YC I qD tD"},J:{"1":"D A"},K:{"1":"C H SC 3C TC","2":"A B"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"Session history management",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/html-media-capture.js b/server/api/node_modules/caniuse-lite/data/features/html-media-capture.js new file mode 100644 index 0000000..e8389b2 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/html-media-capture.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"2":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC"},G:{"2":"eC SD 4C TD","129":"E UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"YC I KB tD 4C uD vD","2":"qD","257":"rD sD"},J:{"1":"A","16":"D"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"516":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"16":"7D"},R:{"1":"8D"},S:{"2":"9D AE"}},B:2,C:"HTML Media Capture",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/html5semantic.js b/server/api/node_modules/caniuse-lite/data/features/html5semantic.js new file mode 100644 index 0000000..e8df2ff --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/html5semantic.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"5C","8":"J D E","260":"F A B"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C","132":"YC 9C AD","260":"I eB J D E F A B C K L G M N O fB AB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","132":"I eB","260":"J D E F A B C K L G M N O fB AB BB CB DB EB FB"},E:{"1":"D E F A B C K L G DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","132":"I BD eC","260":"eB J CD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","132":"F B ND OD PD QD","260":"C SC 3C RD TC"},G:{"1":"E VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","132":"eC","260":"SD 4C TD UD"},H:{"132":"pD"},I:{"1":"KB uD vD","132":"qD","260":"YC I rD sD tD 4C"},J:{"260":"D A"},K:{"1":"H","132":"A","260":"B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"260":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"HTML5 semantic elements",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/http-live-streaming.js b/server/api/node_modules/caniuse-lite/data/features/http-live-streaming.js new file mode 100644 index 0000000..2bef401 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/http-live-streaming.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"C K L G M N O","2":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"1":"ZB aB bB cB dB KB cC RC dC","2":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB"},E:{"1":"J D E F A B C K L G DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB BD eC CD"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC"},G:{"1":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"YC I KB tD 4C uD vD","2":"qD rD sD"},J:{"1":"A","2":"D"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"2":"9D AE"}},B:7,C:"HTTP Live Streaming (HLS)",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/http2.js b/server/api/node_modules/caniuse-lite/data/features/http2.js new file mode 100644 index 0000000..a371150 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/http2.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A 5C","132":"B"},B:{"1":"C K L G M N O","513":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB 9C AD","513":"0 1 2 3 4 5 6 7 8 9 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C"},D:{"1":"rB sB tB uB vB wB xB yB zB 0B","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB","513":"0 1 2 3 4 5 6 7 8 9 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"B C K L G SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E BD eC CD DD ED","260":"F A FD fC"},F:{"1":"IB JB gB hB iB jB kB lB mB nB","2":"F B C G M N O fB AB BB CB DB EB FB GB HB ND OD PD QD SC 3C RD TC","513":"0 1 2 3 4 5 6 7 8 9 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"1":"XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD"},H:{"2":"pD"},I:{"2":"YC I qD rD sD tD 4C uD vD","513":"KB"},J:{"2":"D A"},K:{"2":"A B C SC 3C TC","513":"H"},L:{"513":"KB"},M:{"513":"RC"},N:{"2":"A B"},O:{"513":"UC"},P:{"1":"I","513":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"513":"7D"},R:{"513":"8D"},S:{"1":"9D","513":"AE"}},B:6,C:"HTTP/2 protocol",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/http3.js b/server/api/node_modules/caniuse-lite/data/features/http3.js new file mode 100644 index 0000000..78d7cb9 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/http3.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O","322":"P H Q R S","578":"T U"},C:{"1":"0 1 2 3 4 5 6 7 8 9 W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC 9C AD","194":"KC LC MC NC OC PC QC P H Q bC R S T U V"},D:{"1":"0 1 2 3 4 5 6 7 8 9 V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC","322":"P H Q R S","578":"T U"},E:{"1":"XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C K BD eC CD DD ED FD fC SC TC GD","2049":"lC mC KD WC nC oC pC qC rC LD","2113":"VC iC jC kC","3140":"L G HD ID gC hC UC JD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC ND OD PD QD SC 3C RD TC","578":"LC"},G:{"1":"XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD","2049":"lC mC nD WC nC oC pC qC rC oD","2113":"VC iC jC kC","2116":"jD kD lD gC hC UC mD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"yD","2":"I AB BB CB DB EB FB GB HB wD xD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","4098":"IB JB"},Q:{"2":"7D"},R:{"1":"8D"},S:{"2":"9D AE"}},B:6,C:"HTTP/3 protocol",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/iframe-sandbox.js b/server/api/node_modules/caniuse-lite/data/features/iframe-sandbox.js new file mode 100644 index 0000000..148d245 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/iframe-sandbox.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J D E F 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M 9C AD","4":"N O fB AB BB CB DB EB FB GB HB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I"},E:{"1":"eB J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I BD eC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ND OD PD QD SC 3C RD TC"},G:{"1":"E SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC"},H:{"2":"pD"},I:{"1":"YC I KB rD sD tD 4C uD vD","2":"qD"},J:{"1":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"sandbox attribute for iframes",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/iframe-seamless.js b/server/api/node_modules/caniuse-lite/data/features/iframe-seamless.js new file mode 100644 index 0000000..22677a4 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/iframe-seamless.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"2":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","66":"AB BB CB DB EB FB GB"},E:{"2":"I eB J E F A B C K L G BD eC CD DD FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","130":"D ED"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC"},G:{"2":"E eC SD 4C TD UD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","130":"VD"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C H SC 3C TC"},L:{"2":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:7,C:"seamless attribute for iframes",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/iframe-srcdoc.js b/server/api/node_modules/caniuse-lite/data/features/iframe-srcdoc.js new file mode 100644 index 0000000..4a1b8d1 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/iframe-srcdoc.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"5C","8":"J D E F A B"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","8":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C","8":"YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K","8":"L G M N O fB"},E:{"1":"J D E F A B C K L G DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"BD eC","8":"I eB CD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B ND OD PD QD","8":"C SC 3C RD TC"},G:{"1":"E UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC","8":"SD 4C TD"},H:{"2":"pD"},I:{"1":"KB uD vD","8":"YC I qD rD sD tD 4C"},J:{"1":"A","8":"D"},K:{"1":"H","2":"A B","8":"C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"8":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"srcdoc attribute for iframes",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/imagecapture.js b/server/api/node_modules/caniuse-lite/data/features/imagecapture.js new file mode 100644 index 0000000..6b81917 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/imagecapture.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB 9C AD","194":"0 1 2 3 4 5 6 7 8 9 lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B","322":"3B 4B 5B 6B 7B 8B"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C","516":"MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB ND OD PD QD SC 3C RD TC","322":"qB rB sB tB uB vB"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I"},Q:{"1":"7D"},R:{"1":"8D"},S:{"194":"9D AE"}},B:5,C:"ImageCapture API",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/ime.js b/server/api/node_modules/caniuse-lite/data/features/ime.js new file mode 100644 index 0000000..6b631a1 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/ime.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A 5C","161":"B"},B:{"2":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","161":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C H SC 3C TC"},L:{"2":"KB"},M:{"2":"RC"},N:{"2":"A","161":"B"},O:{"2":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:7,C:"Input Method Editor API",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/img-naturalwidth-naturalheight.js b/server/api/node_modules/caniuse-lite/data/features/img-naturalwidth-naturalheight.js new file mode 100644 index 0000000..d0f2409 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/img-naturalwidth-naturalheight.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"F A B","2":"J D E 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC"},G:{"1":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"1":"pD"},I:{"1":"YC I KB qD rD sD tD 4C uD vD"},J:{"1":"D A"},K:{"1":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"naturalWidth & naturalHeight image properties",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/import-maps.js b/server/api/node_modules/caniuse-lite/data/features/import-maps.js new file mode 100644 index 0000000..bf595e3 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/import-maps.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O","194":"P H Q R S T U V W"},C:{"1":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j 9C AD","322":"k l m n o p"},D:{"1":"0 1 2 3 4 5 6 7 8 9 X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC","194":"MC NC OC PC QC P H Q R S T U V W"},E:{"1":"lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B ND OD PD QD SC 3C RD TC","194":"AC BC CC DC EC FC GC HC IC JC KC LC MC NC"},G:{"1":"lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB 5D VC WC XC 6D","2":"I wD xD yD zD 0D fC 1D 2D 3D 4D"},Q:{"2":"7D"},R:{"1":"8D"},S:{"2":"9D AE"}},B:7,C:"Import maps",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/imports.js b/server/api/node_modules/caniuse-lite/data/features/imports.js new file mode 100644 index 0000000..a6e5521 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/imports.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F 5C","8":"A B"},B:{"1":"P","2":"0 1 2 3 4 5 6 7 8 9 H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","8":"C K L G M N O"},C:{"2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB 9C AD","8":"0 1 2 3 4 5 6 7 8 9 gB hB 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","72":"iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B"},D:{"1":"mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P","2":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","66":"gB hB iB jB kB","72":"lB"},E:{"2":"I eB BD eC CD","8":"J D E F A B C K L G DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC","2":"0 1 2 3 4 5 6 7 8 9 F B C G M FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC","66":"N O fB AB BB","72":"CB"},G:{"2":"eC SD 4C TD UD","8":"E VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C H SC 3C TC"},L:{"2":"KB"},M:{"8":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I wD xD yD zD 0D fC 1D 2D","2":"AB BB CB DB EB FB GB HB IB JB 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"2":"8D"},S:{"1":"9D","8":"AE"}},B:5,C:"HTML Imports",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/indeterminate-checkbox.js b/server/api/node_modules/caniuse-lite/data/features/indeterminate-checkbox.js new file mode 100644 index 0000000..80a1a6e --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/indeterminate-checkbox.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"J D E F A B","16":"5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C AD","2":"6C YC","16":"9C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB"},E:{"1":"J D E F A B C K L G DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB BD eC CD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z RD TC","2":"F B ND OD PD QD SC 3C"},G:{"1":"eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD"},H:{"2":"pD"},I:{"1":"KB uD vD","2":"YC I qD rD sD tD 4C"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"indeterminate checkbox",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/indexeddb.js b/server/api/node_modules/caniuse-lite/data/features/indexeddb.js new file mode 100644 index 0000000..8f7247d --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/indexeddb.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F 5C","132":"A B"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","132":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC 9C AD","33":"A B C K L G","36":"I eB J D E F"},D:{"1":"0 1 2 3 4 5 6 7 8 9 EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"A","8":"I eB J D E F","33":"DB","36":"B C K L G M N O fB AB BB CB"},E:{"1":"A B C K L G fC SC TC GD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","8":"I eB J D BD eC CD DD","260":"E F ED FD","516":"HD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F ND OD","8":"B C PD QD SC 3C RD TC"},G:{"1":"ZD aD bD cD dD eD fD gD hD iD jD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","8":"eC SD 4C TD UD VD","260":"E WD XD YD","516":"kD"},H:{"2":"pD"},I:{"1":"KB uD vD","8":"YC I qD rD sD tD 4C"},J:{"1":"A","8":"D"},K:{"1":"H","2":"A","8":"B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"132":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:2,C:"IndexedDB",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/indexeddb2.js b/server/api/node_modules/caniuse-lite/data/features/indexeddb2.js new file mode 100644 index 0000000..c4b817c --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/indexeddb2.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB 9C AD","132":"uB vB wB","260":"xB yB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB","132":"yB zB 0B 1B","260":"2B 3B 4B 5B 6B 7B"},E:{"1":"B C K L G fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A BD eC CD DD ED FD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB ND OD PD QD SC 3C RD TC","132":"lB mB nB oB","260":"pB qB rB sB tB uB"},G:{"1":"aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD","16":"ZD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I","260":"wD xD"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","260":"9D"}},B:2,C:"IndexedDB 2.0",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/inline-block.js b/server/api/node_modules/caniuse-lite/data/features/inline-block.js new file mode 100644 index 0000000..3cb4700 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/inline-block.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"E F A B","4":"5C","132":"J D"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD","36":"6C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC"},G:{"1":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"1":"pD"},I:{"1":"YC I KB qD rD sD tD 4C uD vD"},J:{"1":"D A"},K:{"1":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:2,C:"CSS inline-block",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/innertext.js b/server/api/node_modules/caniuse-lite/data/features/innertext.js new file mode 100644 index 0000000..b513720 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/innertext.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"J D E F A B","16":"5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"I eB J D E F A B C K L G eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","16":"BD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC","16":"F"},G:{"1":"E SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","16":"eC"},H:{"1":"pD"},I:{"1":"YC I KB sD tD 4C uD vD","16":"qD rD"},J:{"1":"D A"},K:{"1":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"HTMLElement.innerText",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/input-autocomplete-onoff.js b/server/api/node_modules/caniuse-lite/data/features/input-autocomplete-onoff.js new file mode 100644 index 0000000..80baed8 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/input-autocomplete-onoff.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"J D E F A 5C","132":"B"},B:{"132":"C K L G M N O","260":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB 9C AD","516":"0 1 2 3 4 5 6 7 8 9 gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C"},D:{"1":"N O fB AB BB CB DB EB FB GB","2":"I eB J D E F A B C K L G M","132":"HB IB JB gB hB iB jB kB lB mB nB oB pB qB","260":"0 1 2 3 4 5 6 7 8 9 rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"J CD DD","2":"I eB BD eC","2052":"D E F A B C K L G ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC"},G:{"2":"eC SD 4C","1025":"E TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"1025":"pD"},I:{"1":"YC I KB qD rD sD tD 4C uD vD"},J:{"1":"D A"},K:{"1":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2052":"A B"},O:{"1025":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"260":"7D"},R:{"1":"8D"},S:{"516":"9D AE"}},B:1,C:"autocomplete attribute: on & off values",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/input-color.js b/server/api/node_modules/caniuse-lite/data/features/input-color.js new file mode 100644 index 0000000..3bb8ecb --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/input-color.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K"},C:{"1":"0 1 2 3 4 5 6 7 8 9 JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB"},E:{"1":"K L G TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C BD eC CD DD ED FD fC SC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z SC 3C RD TC","2":"F G M ND OD PD QD"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD","129":"eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"KB uD vD","2":"YC I qD rD sD tD 4C"},J:{"1":"D A"},K:{"1":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","2":"9D"}},B:1,C:"Color input type",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/input-datetime.js b/server/api/node_modules/caniuse-lite/data/features/input-datetime.js new file mode 100644 index 0000000..3b0b999 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/input-datetime.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","132":"C"},C:{"2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 9C AD","1090":"3B 4B 5B 6B","2052":"7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a","4100":"0 1 2 3 4 5 6 7 8 9 b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB","2052":"AB BB CB DB EB"},E:{"2":"I eB J D E F A B C K L BD eC CD DD ED FD fC SC TC GD","4100":"G HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC"},G:{"2":"eC SD 4C","260":"E TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC","8193":"tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"KB uD vD","2":"YC qD rD sD","514":"I tD 4C"},J:{"1":"A","2":"D"},K:{"1":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"4100":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"2052":"9D AE"}},B:1,C:"Date and time input types",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/input-email-tel-url.js b/server/api/node_modules/caniuse-lite/data/features/input-email-tel-url.js new file mode 100644 index 0000000..59d1b70 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/input-email-tel-url.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J D E F 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I"},E:{"1":"eB J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I BD eC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC","2":"F"},G:{"1":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"YC I KB tD 4C uD vD","132":"qD rD sD"},J:{"1":"A","132":"D"},K:{"1":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"Email, telephone & URL input types",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/input-event.js b/server/api/node_modules/caniuse-lite/data/features/input-event.js new file mode 100644 index 0000000..17808a4 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/input-event.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E 5C","2561":"A B","2692":"F"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2561":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","16":"6C","1537":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB AD","1796":"YC 9C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","16":"I eB J D E F A B C K L","1025":"lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC","1537":"G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB"},E:{"1":"L G GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","16":"I eB J BD eC","1025":"D E F A B C DD ED FD fC SC","1537":"CD","4097":"K TC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z TC","16":"F B C ND OD PD QD SC 3C","260":"RD","1025":"CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B","1537":"G M N O fB AB BB"},G:{"1":"gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","16":"eC SD 4C","1025":"E WD XD YD ZD aD bD cD dD","1537":"TD UD VD","4097":"eD fD"},H:{"2":"pD"},I:{"16":"qD rD","1025":"KB vD","1537":"YC I sD tD 4C uD"},J:{"1025":"A","1537":"D"},K:{"1":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2561":"A B"},O:{"1":"UC"},P:{"1025":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","1537":"9D"}},B:1,C:"input event",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/input-file-accept.js b/server/api/node_modules/caniuse-lite/data/features/input-file-accept.js new file mode 100644 index 0000000..df4a94b --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/input-file-accept.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J D E F 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC 9C AD","132":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I","16":"eB J D E BB CB DB EB FB","132":"F A B C K L G M N O fB AB"},E:{"1":"C K L G SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB BD eC CD","132":"J D E F A B DD ED FD fC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ND OD PD QD SC 3C RD TC"},G:{"2":"UD VD","132":"E WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","514":"eC SD 4C TD"},H:{"2":"pD"},I:{"2":"qD rD sD","260":"YC I tD 4C","514":"KB uD vD"},J:{"132":"A","260":"D"},K:{"2":"A B C SC 3C TC","514":"H"},L:{"260":"KB"},M:{"2":"RC"},N:{"514":"A","1028":"B"},O:{"2":"UC"},P:{"260":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"260":"7D"},R:{"260":"8D"},S:{"1":"9D AE"}},B:1,C:"accept attribute for file input",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/input-file-directory.js b/server/api/node_modules/caniuse-lite/data/features/input-file-directory.js new file mode 100644 index 0000000..d9b675f --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/input-file-directory.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K"},C:{"1":"0 1 2 3 4 5 6 7 8 9 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB"},E:{"1":"C K L G SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B BD eC CD DD ED FD fC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M ND OD PD QD SC 3C RD TC"},G:{"1":"vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:7,C:"Directory selection from file input",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/input-file-multiple.js b/server/api/node_modules/caniuse-lite/data/features/input-file-multiple.js new file mode 100644 index 0000000..605b0f7 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/input-file-multiple.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J D E F 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C AD","2":"6C YC 9C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I"},E:{"1":"I eB J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"BD eC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z QD SC 3C RD TC","2":"F ND OD PD"},G:{"1":"E UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C TD"},H:{"130":"pD"},I:{"130":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","130":"A B C SC 3C TC"},L:{"132":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"130":"UC"},P:{"130":"I","132":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"132":"7D"},R:{"132":"8D"},S:{"1":"AE","2":"9D"}},B:1,C:"Multiple file selection",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/input-inputmode.js b/server/api/node_modules/caniuse-lite/data/features/input-inputmode.js new file mode 100644 index 0000000..8518d76 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/input-inputmode.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M 9C AD","4":"N O fB AB","194":"BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c"},D:{"1":"0 1 2 3 4 5 6 7 8 9 EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B","66":"6B 7B 8B ZC 9B aC AC BC CC DC"},E:{"1":"K L G TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C BD eC CD DD ED FD fC SC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB ND OD PD QD SC 3C RD TC","66":"tB uB vB wB xB yB zB 0B 1B 2B"},G:{"1":"eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I wD xD yD zD"},Q:{"1":"7D"},R:{"1":"8D"},S:{"194":"9D AE"}},B:1,C:"inputmode attribute",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/input-minlength.js b/server/api/node_modules/caniuse-lite/data/features/input-minlength.js new file mode 100644 index 0000000..ada3064 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/input-minlength.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M"},C:{"1":"0 1 2 3 4 5 6 7 8 9 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB"},E:{"1":"B C K L G fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A BD eC CD DD ED FD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB ND OD PD QD SC 3C RD TC"},G:{"1":"aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","2":"9D"}},B:1,C:"Minimum length attribute for input fields",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/input-number.js b/server/api/node_modules/caniuse-lite/data/features/input-number.js new file mode 100644 index 0000000..b7a781b --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/input-number.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F 5C","129":"A B"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","129":"C K","1025":"L G M N O"},C:{"2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB 9C AD","513":"0 1 2 3 4 5 6 7 8 9 JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB"},E:{"1":"eB J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I BD eC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC"},G:{"388":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"2":"YC qD rD sD","388":"I KB tD 4C uD vD"},J:{"2":"D","388":"A"},K:{"1":"A B C SC 3C TC","388":"H"},L:{"388":"KB"},M:{"641":"RC"},N:{"388":"A B"},O:{"388":"UC"},P:{"388":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"388":"7D"},R:{"388":"8D"},S:{"513":"9D AE"}},B:1,C:"Number input type",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/input-pattern.js b/server/api/node_modules/caniuse-lite/data/features/input-pattern.js new file mode 100644 index 0000000..122cbc4 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/input-pattern.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J D E F 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F"},E:{"1":"B C K L G fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I BD eC","16":"eB","388":"J D E F A CD DD ED FD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC","2":"F"},G:{"1":"aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","16":"eC SD 4C","388":"E TD UD VD WD XD YD ZD"},H:{"2":"pD"},I:{"1":"KB vD","2":"YC I qD rD sD tD 4C uD"},J:{"1":"A","2":"D"},K:{"1":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"132":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"Pattern attribute for input fields",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/input-placeholder.js b/server/api/node_modules/caniuse-lite/data/features/input-placeholder.js new file mode 100644 index 0000000..4d519fb --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/input-placeholder.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J D E F 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"eB J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","132":"I BD eC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z 3C RD TC","2":"F ND OD PD QD","132":"B SC"},G:{"1":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"1":"pD"},I:{"1":"YC KB qD rD sD 4C uD vD","4":"I tD"},J:{"1":"D A"},K:{"1":"B C H SC 3C TC","2":"A"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"input placeholder attribute",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/input-range.js b/server/api/node_modules/caniuse-lite/data/features/input-range.js new file mode 100644 index 0000000..2c85fbb --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/input-range.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J D E F 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC"},G:{"1":"E TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C"},H:{"2":"pD"},I:{"1":"KB 4C uD vD","4":"YC I qD rD sD tD"},J:{"1":"D A"},K:{"1":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"Range input type",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/input-search.js b/server/api/node_modules/caniuse-lite/data/features/input-search.js new file mode 100644 index 0000000..1bcdc8e --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/input-search.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F 5C","129":"A B"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","129":"C K L G M N O"},C:{"2":"6C YC 9C AD","129":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","16":"I eB J D E F A B C K L BB CB DB EB FB","129":"G M N O fB AB"},E:{"1":"J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","16":"I eB BD eC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z RD TC","2":"F ND OD PD QD","16":"B SC 3C"},G:{"1":"E TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","16":"eC SD 4C"},H:{"129":"pD"},I:{"1":"KB uD vD","16":"qD rD","129":"YC I sD tD 4C"},J:{"1":"D","129":"A"},K:{"1":"C H","2":"A","16":"B SC 3C","129":"TC"},L:{"1":"KB"},M:{"129":"RC"},N:{"129":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"129":"9D AE"}},B:1,C:"Search input type",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/input-selection.js b/server/api/node_modules/caniuse-lite/data/features/input-selection.js new file mode 100644 index 0000000..870d073 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/input-selection.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"F A B","2":"J D E 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"I eB J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","16":"BD eC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z QD SC 3C RD TC","16":"F ND OD PD"},G:{"1":"E SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","16":"eC"},H:{"2":"pD"},I:{"1":"YC I KB qD rD sD tD 4C uD vD"},J:{"1":"D A"},K:{"1":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"Selection controls for input & textarea",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/insert-adjacent.js b/server/api/node_modules/caniuse-lite/data/features/insert-adjacent.js new file mode 100644 index 0000000..c5670e0 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/insert-adjacent.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"J D E F A B","16":"5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC","16":"F"},G:{"1":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"1":"pD"},I:{"1":"YC I KB sD tD 4C uD vD","16":"qD rD"},J:{"1":"D A"},K:{"1":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"Element.insertAdjacentElement() & Element.insertAdjacentText()",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/insertadjacenthtml.js b/server/api/node_modules/caniuse-lite/data/features/insertadjacenthtml.js new file mode 100644 index 0000000..d24a78a --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/insertadjacenthtml.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","16":"5C","132":"J D E F"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"I eB J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"BD eC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z OD PD QD SC 3C RD TC","16":"F ND"},G:{"1":"E SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","16":"eC"},H:{"1":"pD"},I:{"1":"YC I KB sD tD 4C uD vD","16":"qD rD"},J:{"1":"D A"},K:{"1":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:4,C:"Element.insertAdjacentHTML()",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/internationalization.js b/server/api/node_modules/caniuse-lite/data/features/internationalization.js new file mode 100644 index 0000000..d6d5ab3 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/internationalization.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","2":"J D E F A 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB"},E:{"1":"A B C K L G fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F BD eC CD DD ED FD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ND OD PD QD SC 3C RD TC"},G:{"1":"ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD"},H:{"2":"pD"},I:{"1":"KB uD vD","2":"YC I qD rD sD tD 4C"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"B","2":"A"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","2":"9D"}},B:6,C:"Internationalization API",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/intersectionobserver-v2.js b/server/api/node_modules/caniuse-lite/data/features/intersectionobserver-v2.js new file mode 100644 index 0000000..4456b77 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/intersectionobserver-v2.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B ND OD PD QD SC 3C RD TC"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB 1D 2D 3D 4D 5D VC WC XC 6D","2":"I wD xD yD zD 0D fC"},Q:{"1":"7D"},R:{"1":"8D"},S:{"2":"9D AE"}},B:7,C:"IntersectionObserver V2",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/intersectionobserver.js b/server/api/node_modules/caniuse-lite/data/features/intersectionobserver.js new file mode 100644 index 0000000..aec6627 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/intersectionobserver.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"M N O","2":"C K L","260":"G","513":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 9C AD","194":"2B 3B 4B"},D:{"1":"8B ZC 9B aC AC BC CC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B","260":"1B 2B 3B 4B 5B 6B 7B","513":"0 1 2 3 4 5 6 7 8 9 DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"K L G TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C BD eC CD DD ED FD fC SC"},F:{"1":"vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB ND OD PD QD SC 3C RD TC","260":"oB pB qB rB sB tB uB","513":"0 1 2 3 4 5 6 7 8 9 CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"1":"eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD"},H:{"2":"pD"},I:{"2":"YC I qD rD sD tD 4C uD vD","513":"KB"},J:{"2":"D A"},K:{"2":"A B C SC 3C TC","513":"H"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I","260":"wD xD"},Q:{"513":"7D"},R:{"1":"8D"},S:{"1":"AE","2":"9D"}},B:5,C:"IntersectionObserver",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/intl-pluralrules.js b/server/api/node_modules/caniuse-lite/data/features/intl-pluralrules.js new file mode 100644 index 0000000..8ed3071 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/intl-pluralrules.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N","130":"O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC"},E:{"1":"K L G GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C BD eC CD DD ED FD fC SC TC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB ND OD PD QD SC 3C RD TC"},G:{"1":"fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I wD xD yD"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","2":"9D"}},B:6,C:"Intl.PluralRules API",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/intrinsic-width.js b/server/api/node_modules/caniuse-lite/data/features/intrinsic-width.js new file mode 100644 index 0000000..30d0d64 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/intrinsic-width.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"2":"C K L G M N O","1025":"0 1 2 3 4 5 6 7 8 9 c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","1537":"P H Q R S T U V W X Y Z a b"},C:{"2":"6C","932":"YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC 9C AD","2308":"0 1 2 3 4 5 6 7 8 9 EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C"},D:{"2":"I eB J D E F A B C K L G M N O fB AB BB","545":"CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB","1025":"0 1 2 3 4 5 6 7 8 9 c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","1537":"wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b"},E:{"1":"VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J BD eC CD","516":"B C K L G SC TC GD HD ID gC hC UC JD","548":"F A FD fC","676":"D E DD ED"},F:{"2":"F B C ND OD PD QD SC 3C RD TC","513":"kB","545":"G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB","1025":"0 1 2 3 4 5 6 7 8 9 d e f g h i j k l m n o p q r s t u v w x y z","1537":"jB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c"},G:{"1":"VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C TD UD","516":"jD kD lD gC hC UC mD","548":"XD YD ZD aD bD cD dD eD fD gD hD iD","676":"E VD WD"},H:{"2":"pD"},I:{"2":"YC I qD rD sD tD 4C","545":"uD vD","1025":"KB"},J:{"2":"D","545":"A"},K:{"2":"A B C SC 3C TC","1025":"H"},L:{"1025":"KB"},M:{"2308":"RC"},N:{"2":"A B"},O:{"1537":"UC"},P:{"545":"I","1025":"AB BB CB DB EB FB GB HB IB JB WC XC 6D","1537":"wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC"},Q:{"1537":"7D"},R:{"1537":"8D"},S:{"932":"9D","2308":"AE"}},B:5,C:"Intrinsic & Extrinsic Sizing",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/jpeg2000.js b/server/api/node_modules/caniuse-lite/data/features/jpeg2000.js new file mode 100644 index 0000000..567634e --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/jpeg2000.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"2":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"J D E F A B C K L G DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD","2":"I BD eC XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","129":"eB CD"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC"},G:{"1":"E TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD","2":"eC SD 4C XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C H SC 3C TC"},L:{"2":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:6,C:"JPEG 2000 image format",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/jpegxl.js b/server/api/node_modules/caniuse-lite/data/features/jpegxl.js new file mode 100644 index 0000000..469f11f --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/jpegxl.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"2":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","578":"Z a b c d e f g h i j k l m n o p q r"},C:{"2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X 9C AD","2370":"0 1 2 3 4 5 6 7 8 9 Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB","194":"Z a b c d e f g h i j k l m n o p q r","6210":"cB dB KB cC RC dC"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD","3076":"WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC","194":"PC QC P H Q bC R S T U V W X Y Z a b c d"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD","3076":"WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C H SC 3C TC"},L:{"6210":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:6,C:"JPEG XL image format",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/jpegxr.js b/server/api/node_modules/caniuse-lite/data/features/jpegxr.js new file mode 100644 index 0000000..f657827 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/jpegxr.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"F A B","2":"J D E 5C"},B:{"1":"C K L G M N O","2":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C H SC 3C TC"},L:{"2":"KB"},M:{"2":"RC"},N:{"1":"A B"},O:{"2":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:6,C:"JPEG XR image format",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/js-regexp-lookbehind.js b/server/api/node_modules/caniuse-lite/data/features/js-regexp-lookbehind.js new file mode 100644 index 0000000..56e98fe --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/js-regexp-lookbehind.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC"},E:{"1":"lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB ND OD PD QD SC 3C RD TC"},G:{"1":"lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I wD xD yD"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","2":"9D"}},B:6,C:"Lookbehind in JS regular expressions",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/json.js b/server/api/node_modules/caniuse-lite/data/features/json.js new file mode 100644 index 0000000..c47abcb --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/json.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"F A B","2":"J D 5C","129":"E"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD","2":"6C YC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"I eB J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"BD eC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z PD QD SC 3C RD TC","2":"F ND OD"},G:{"1":"E SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC"},H:{"1":"pD"},I:{"1":"YC I KB qD rD sD tD 4C uD vD"},J:{"1":"D A"},K:{"1":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:6,C:"JSON parsing",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/justify-content-space-evenly.js b/server/api/node_modules/caniuse-lite/data/features/justify-content-space-evenly.js new file mode 100644 index 0000000..666d08b --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/justify-content-space-evenly.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G","132":"M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B","132":"7B 8B ZC"},E:{"1":"B C K L G SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A BD eC CD DD ED FD","132":"fC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB ND OD PD QD SC 3C RD TC","132":"uB vB wB"},G:{"1":"bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD","132":"aD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I wD xD","132":"yD"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","132":"9D"}},B:5,C:"CSS justify-content: space-evenly",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/kerning-pairs-ligatures.js b/server/api/node_modules/caniuse-lite/data/features/kerning-pairs-ligatures.js new file mode 100644 index 0000000..473a371 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/kerning-pairs-ligatures.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N"},C:{"1":"0 1 2 3 4 5 6 7 8 9 YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD","2":"6C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"eB J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I BD eC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ND OD PD QD SC 3C RD TC"},G:{"1":"E 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","16":"eC SD"},H:{"2":"pD"},I:{"1":"KB uD vD","2":"qD rD sD","132":"YC I tD 4C"},J:{"1":"A","2":"D"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:7,C:"High-quality kerning pairs & ligatures",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/keyboardevent-charcode.js b/server/api/node_modules/caniuse-lite/data/features/keyboardevent-charcode.js new file mode 100644 index 0000000..0e1a012 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/keyboardevent-charcode.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"F A B","2":"J D E 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD","16":"6C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"I eB J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","16":"BD eC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z TC","2":"F B ND OD PD QD SC 3C RD","16":"C"},G:{"1":"E TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","16":"eC SD 4C"},H:{"2":"pD"},I:{"1":"YC I KB sD tD 4C uD vD","16":"qD rD"},J:{"1":"D A"},K:{"1":"H TC","2":"A B SC 3C","16":"C"},L:{"1":"KB"},M:{"130":"RC"},N:{"130":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:7,C:"KeyboardEvent.charCode",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/keyboardevent-code.js b/server/api/node_modules/caniuse-lite/data/features/keyboardevent-code.js new file mode 100644 index 0000000..61d3a1c --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/keyboardevent-code.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB","194":"sB tB uB vB wB xB"},E:{"1":"B C K L G fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A BD eC CD DD ED FD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB ND OD PD QD SC 3C RD TC","194":"JB gB hB iB jB kB"},G:{"1":"aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C H SC 3C TC"},L:{"194":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I","194":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"194":"8D"},S:{"1":"9D AE"}},B:5,C:"KeyboardEvent.code",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/keyboardevent-getmodifierstate.js b/server/api/node_modules/caniuse-lite/data/features/keyboardevent-getmodifierstate.js new file mode 100644 index 0000000..782358d --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/keyboardevent-getmodifierstate.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"F A B","2":"J D E 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB"},E:{"1":"B C K L G fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A BD eC CD DD ED FD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z TC","2":"F B G M ND OD PD QD SC 3C RD","16":"C"},G:{"1":"aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD"},H:{"2":"pD"},I:{"1":"KB uD vD","2":"YC I qD rD sD tD 4C"},J:{"2":"D A"},K:{"1":"H TC","2":"A B SC 3C","16":"C"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:5,C:"KeyboardEvent.getModifierState()",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/keyboardevent-key.js b/server/api/node_modules/caniuse-lite/data/features/keyboardevent-key.js new file mode 100644 index 0000000..f18887d --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/keyboardevent-key.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E 5C","260":"F A B"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","260":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB 9C AD","132":"DB EB FB GB HB IB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B"},E:{"1":"B C K L G fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A BD eC CD DD ED FD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z TC","2":"F B G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB ND OD PD QD SC 3C RD","16":"C"},G:{"1":"aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD"},H:{"1":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H TC","2":"A B SC 3C","16":"C"},L:{"1":"KB"},M:{"1":"RC"},N:{"260":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:5,C:"KeyboardEvent.key",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/keyboardevent-location.js b/server/api/node_modules/caniuse-lite/data/features/keyboardevent-location.js new file mode 100644 index 0000000..9c3e6aa --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/keyboardevent-location.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"F A B","2":"J D E 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","132":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB"},E:{"1":"D E F A B C K L G DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","16":"J BD eC","132":"I eB CD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z TC","2":"F B ND OD PD QD SC 3C RD","16":"C","132":"G M"},G:{"1":"E WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","16":"eC SD 4C","132":"TD UD VD"},H:{"2":"pD"},I:{"1":"KB uD vD","16":"qD rD","132":"YC I sD tD 4C"},J:{"132":"D A"},K:{"1":"H TC","2":"A B SC 3C","16":"C"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:5,C:"KeyboardEvent.location",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/keyboardevent-which.js b/server/api/node_modules/caniuse-lite/data/features/keyboardevent-which.js new file mode 100644 index 0000000..62c48d5 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/keyboardevent-which.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"F A B","2":"J D E 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I BD eC","16":"eB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z OD PD QD SC 3C RD TC","16":"F ND"},G:{"1":"E TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","16":"eC SD 4C"},H:{"2":"pD"},I:{"1":"YC I KB sD tD 4C","16":"qD rD","132":"uD vD"},J:{"1":"D A"},K:{"1":"A B C H SC 3C TC"},L:{"132":"KB"},M:{"132":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"2":"I","132":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"132":"8D"},S:{"1":"9D AE"}},B:7,C:"KeyboardEvent.which",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/lazyload.js b/server/api/node_modules/caniuse-lite/data/features/lazyload.js new file mode 100644 index 0000000..c6a455c --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/lazyload.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","2":"J D E F A 5C"},B:{"1":"C K L G M N O","2":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C H SC 3C TC"},L:{"2":"KB"},M:{"2":"RC"},N:{"1":"B","2":"A"},O:{"2":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:7,C:"Resource Hints: Lazyload",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/let.js b/server/api/node_modules/caniuse-lite/data/features/let.js new file mode 100644 index 0000000..2351edf --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/let.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A 5C","2052":"B"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","194":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O","322":"fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB","516":"rB sB tB uB vB wB xB yB"},E:{"1":"B C K L G SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F BD eC CD DD ED FD","1028":"A fC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ND OD PD QD SC 3C RD TC","322":"G M N O fB AB BB CB DB EB FB GB HB","516":"IB JB gB hB iB jB kB lB"},G:{"1":"bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD","1028":"ZD aD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"B","2":"A"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","516":"I"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:6,C:"let",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/link-icon-png.js b/server/api/node_modules/caniuse-lite/data/features/link-icon-png.js new file mode 100644 index 0000000..926945d --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/link-icon-png.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","2":"J D E F A 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC"},G:{"1":"dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","130":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD"},H:{"130":"pD"},I:{"1":"YC I KB qD rD sD tD 4C uD vD"},J:{"1":"D","130":"A"},K:{"1":"H","130":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"130":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"PNG favicons",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/link-icon-svg.js b/server/api/node_modules/caniuse-lite/data/features/link-icon-svg.js new file mode 100644 index 0000000..8d4cece --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/link-icon-svg.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"2":"C K L G M N O P","1537":"0 1 2 3 4 5 6 7 8 9 H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"2":"6C YC 9C AD","260":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB","513":"0 1 2 3 4 5 6 7 8 9 rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C"},D:{"2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P","1537":"0 1 2 3 4 5 6 7 8 9 H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC"},F:{"1":"uB vB wB xB yB zB 0B 1B 2B 3B","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB 4B 5B 6B 7B 8B 9B AC BC CC DC EC ND OD PD QD SC 3C RD TC","1537":"0 1 2 3 4 5 6 7 8 9 FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"1":"xC yC zC 0C 1C 2C","2":"dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC","130":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD"},H:{"130":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D","130":"A"},K:{"130":"A B C SC 3C TC","1537":"H"},L:{"1537":"KB"},M:{"1":"RC"},N:{"130":"A B"},O:{"2":"UC"},P:{"2":"I wD xD yD zD 0D fC 1D 2D","1537":"AB BB CB DB EB FB GB HB IB JB 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"1537":"8D"},S:{"513":"9D AE"}},B:1,C:"SVG favicons",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/link-rel-dns-prefetch.js b/server/api/node_modules/caniuse-lite/data/features/link-rel-dns-prefetch.js new file mode 100644 index 0000000..f9ba922 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/link-rel-dns-prefetch.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J D E 5C","132":"F"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"9 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC","260":"0 1 2 3 4 5 6 7 8 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"eB J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I BD eC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ND OD PD QD SC 3C RD TC"},G:{"1":"xC yC zC 0C 1C 2C","16":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC"},H:{"2":"pD"},I:{"16":"YC I KB qD rD sD tD 4C uD vD"},J:{"16":"D A"},K:{"1":"H","16":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"B","2":"A"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","16":"I"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:5,C:"Resource Hints: dns-prefetch",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/link-rel-modulepreload.js b/server/api/node_modules/caniuse-lite/data/features/link-rel-modulepreload.js new file mode 100644 index 0000000..4ff63af --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/link-rel-modulepreload.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC"},E:{"1":"WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B ND OD PD QD SC 3C RD TC"},G:{"1":"WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I wD xD yD zD"},Q:{"1":"7D"},R:{"1":"8D"},S:{"2":"9D AE"}},B:1,C:"Resource Hints: modulepreload",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/link-rel-preconnect.js b/server/api/node_modules/caniuse-lite/data/features/link-rel-preconnect.js new file mode 100644 index 0000000..ac7ed1f --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/link-rel-preconnect.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L","260":"G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB 9C AD","129":"pB","514":"JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w"},D:{"1":"0 1 2 3 4 5 6 7 8 9 wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB"},E:{"1":"C K L G SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B BD eC CD DD ED FD fC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB ND OD PD QD SC 3C RD TC"},G:{"1":"cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:5,C:"Resource Hints: preconnect",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/link-rel-prefetch.js b/server/api/node_modules/caniuse-lite/data/features/link-rel-prefetch.js new file mode 100644 index 0000000..f6ca603 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/link-rel-prefetch.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","2":"J D E F A 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D"},E:{"2":"I eB J D E F A B C K BD eC CD DD ED FD fC SC TC","194":"L G GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ND OD PD QD SC 3C RD TC"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD","194":"iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"I KB uD vD","2":"YC qD rD sD tD 4C"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"B","2":"A"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:5,C:"Resource Hints: prefetch",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/link-rel-preload.js b/server/api/node_modules/caniuse-lite/data/features/link-rel-preload.js new file mode 100644 index 0000000..0a323c5 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/link-rel-preload.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M","1028":"N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 9C AD","132":"6B","578":"7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S"},D:{"1":"0 1 2 3 4 5 6 7 8 9 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB"},E:{"1":"C K L G SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A BD eC CD DD ED FD fC","322":"B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB ND OD PD QD SC 3C RD TC"},G:{"1":"cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD","322":"bD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I"},Q:{"1":"7D"},R:{"1":"8D"},S:{"2":"9D AE"}},B:4,C:"Resource Hints: preload",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/link-rel-prerender.js b/server/api/node_modules/caniuse-lite/data/features/link-rel-prerender.js new file mode 100644 index 0000000..c48fdb1 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/link-rel-prerender.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","2":"J D E F A 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ND OD PD QD SC 3C RD TC"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"2":"RC"},N:{"1":"B","2":"A"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"2":"9D AE"}},B:5,C:"Resource Hints: prerender",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/loading-lazy-attr.js b/server/api/node_modules/caniuse-lite/data/features/loading-lazy-attr.js new file mode 100644 index 0000000..1bc1063 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/loading-lazy-attr.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"3 4 5 6 7 8 9 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC 9C AD","132":"0 1 2 NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},D:{"1":"0 1 2 3 4 5 6 7 8 9 PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC","66":"NC OC"},E:{"1":"lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C K BD eC CD DD ED FD fC SC TC","322":"L G GD HD ID gC","580":"hC UC JD VC iC jC kC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B ND OD PD QD SC 3C RD TC","66":"AC BC"},G:{"1":"lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD","322":"iD jD kD lD gC","580":"hC UC mD VC iC jC kC"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB 2D 3D 4D 5D VC WC XC 6D","2":"I wD xD yD zD 0D fC 1D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"2":"9D","132":"AE"}},B:1,C:"Lazy loading via attribute for images & iframes",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/loading-lazy-media.js b/server/api/node_modules/caniuse-lite/data/features/loading-lazy-media.js new file mode 100644 index 0000000..c27265a --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/loading-lazy-media.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"2":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"1":"cC RC dC","2":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","194":"KB"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C H SC 3C TC"},L:{"2":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:1,C:"Lazy loading via attribute for video & audio",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/localecompare.js b/server/api/node_modules/caniuse-lite/data/features/localecompare.js new file mode 100644 index 0000000..56bcd5b --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/localecompare.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","16":"5C","132":"J D E F A"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","132":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","132":"I eB J D E F A B C K L G M N O fB AB BB CB DB"},E:{"1":"A B C K L G fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","132":"I eB J D E F BD eC CD DD ED FD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","16":"F B C ND OD PD QD SC 3C RD","132":"TC"},G:{"1":"ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","132":"E eC SD 4C TD UD VD WD XD YD"},H:{"132":"pD"},I:{"1":"KB uD vD","132":"YC I qD rD sD tD 4C"},J:{"132":"D A"},K:{"1":"H","16":"A B C SC 3C","132":"TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"B","132":"A"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","132":"I"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","4":"9D"}},B:6,C:"localeCompare()",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/magnetometer.js b/server/api/node_modules/caniuse-lite/data/features/magnetometer.js new file mode 100644 index 0000000..2049c12 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/magnetometer.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"2":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B","194":"0 1 2 3 4 5 6 7 8 9 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB ND OD PD QD SC 3C RD TC","194":"0 1 2 3 4 5 6 7 8 9 uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C H SC 3C TC"},L:{"194":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:4,C:"Magnetometer",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/matchesselector.js b/server/api/node_modules/caniuse-lite/data/features/matchesselector.js new file mode 100644 index 0000000..a22d956 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/matchesselector.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E 5C","36":"F A B"},B:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","36":"C K L"},C:{"1":"0 1 2 3 4 5 6 7 8 9 kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC 9C","36":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","36":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB"},E:{"1":"E F A B C K L G ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I BD eC","36":"eB J D CD DD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B ND OD PD QD SC","36":"C G M N O fB AB 3C RD TC"},G:{"1":"E WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC","36":"SD 4C TD UD VD"},H:{"2":"pD"},I:{"1":"KB","2":"qD","36":"YC I rD sD tD 4C uD vD"},J:{"36":"D A"},K:{"1":"H","2":"A B","36":"C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"36":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","36":"I"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"matches() DOM method",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/matchmedia.js b/server/api/node_modules/caniuse-lite/data/features/matchmedia.js new file mode 100644 index 0000000..eb04f7f --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/matchmedia.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J D E F 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E"},E:{"1":"J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB BD eC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z TC","2":"F B C ND OD PD QD SC 3C RD"},G:{"1":"E TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C"},H:{"1":"pD"},I:{"1":"YC I KB tD 4C uD vD","2":"qD rD sD"},J:{"1":"A","2":"D"},K:{"1":"H TC","2":"A B C SC 3C"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:5,C:"matchMedia",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/mathml.js b/server/api/node_modules/caniuse-lite/data/features/mathml.js new file mode 100644 index 0000000..75ff25a --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/mathml.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"F A B 5C","8":"J D E"},B:{"2":"C K L G M N O","8":"P H Q R S T U V W X Y Z a b c d e","584":"f g h i j k l m n o p q","1025":"0 1 2 3 4 5 6 7 8 9 r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","129":"6C YC 9C AD"},D:{"1":"EB","8":"I eB J D E F A B C K L G M N O fB AB BB CB DB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e","584":"f g h i j k l m n o p q","1025":"0 1 2 3 4 5 6 7 8 9 r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"A B C K L G fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","260":"I eB J D E F BD eC CD DD ED FD"},F:{"2":"F","8":"G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC","584":"R S T U V W X Y Z a b c","1025":"0 1 2 3 4 5 6 7 8 9 d e f g h i j k l m n o p q r s t u v w x y z","2052":"B C ND OD PD QD SC 3C RD TC"},G:{"1":"E TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","8":"eC SD 4C"},H:{"8":"pD"},I:{"8":"YC I qD rD sD tD 4C uD vD","1025":"KB"},J:{"1":"A","8":"D"},K:{"8":"A B C SC 3C TC","1025":"H"},L:{"1025":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"8":"UC"},P:{"1":"BB CB DB EB FB GB HB IB JB","8":"I AB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"8":"7D"},R:{"8":"8D"},S:{"1":"9D AE"}},B:2,C:"MathML",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/maxlength.js b/server/api/node_modules/caniuse-lite/data/features/maxlength.js new file mode 100644 index 0000000..16eb764 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/maxlength.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","16":"5C","900":"J D E F"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","1025":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","900":"6C YC 9C AD","1025":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","16":"eB BD","900":"I eC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","16":"F","132":"B C ND OD PD QD SC 3C RD TC"},G:{"1":"SD 4C TD UD VD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","16":"eC","2052":"E WD"},H:{"132":"pD"},I:{"1":"YC I sD tD 4C uD vD","16":"qD rD","4097":"KB"},J:{"1":"D A"},K:{"132":"A B C SC 3C TC","4097":"H"},L:{"4097":"KB"},M:{"4097":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"4097":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1025":"9D AE"}},B:1,C:"maxlength attribute for input and textarea elements",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/mdn-css-backdrop-pseudo-element.js b/server/api/node_modules/caniuse-lite/data/features/mdn-css-backdrop-pseudo-element.js new file mode 100644 index 0000000..9ffc45d --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/mdn-css-backdrop-pseudo-element.js @@ -0,0 +1 @@ +module.exports={A:{D:{"1":"0 1 2 3 4 5 6 7 8 9 nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB","33":"iB jB kB lB mB"},L:{"1":"KB"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","33":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB 9C AD"},M:{"1":"RC"},A:{"2":"J D E F A 5C","33":"B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O ND OD PD QD SC 3C RD TC","33":"fB AB BB CB DB"},K:{"1":"H","2":"A B C SC 3C TC"},E:{"1":"hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC MD"},G:{"1":"hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},I:{"1":"KB","2":"YC I qD rD sD tD 4C","33":"uD vD"}},B:6,C:"CSS ::backdrop pseudo-element",D:undefined}; diff --git a/server/api/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-isolate-override.js b/server/api/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-isolate-override.js new file mode 100644 index 0000000..3bf3b0c --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-isolate-override.js @@ -0,0 +1 @@ +module.exports={A:{D:{"1":"0 1 2 3 4 5 6 7 8 9 yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB"},L:{"1":"KB"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M 9C AD","33":"N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB"},M:{"1":"RC"},A:{"2":"J D E F A B 5C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB ND OD PD QD SC 3C RD TC"},K:{"1":"H","2":"A B C SC 3C TC"},E:{"1":"B C K L G SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"I eB J BD eC CD DD MD","33":"D E F A ED FD fC"},G:{"1":"bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C TD UD","33":"E VD WD XD YD ZD aD"},P:{"1":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"}},B:6,C:"isolate-override from unicode-bidi",D:undefined}; diff --git a/server/api/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-isolate.js b/server/api/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-isolate.js new file mode 100644 index 0000000..4d5b5d2 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-isolate.js @@ -0,0 +1 @@ +module.exports={A:{D:{"1":"0 1 2 3 4 5 6 7 8 9 yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G","33":"M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB"},L:{"1":"KB"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F 9C AD","33":"A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB"},M:{"1":"RC"},A:{"2":"J D E F A B 5C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ND OD PD QD SC 3C RD TC","33":"G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB"},K:{"1":"H","2":"A B C SC 3C TC"},E:{"1":"B C K L G SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"I eB BD eC CD MD","33":"J D E F A DD ED FD fC"},G:{"1":"bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C TD","33":"E UD VD WD XD YD ZD aD"},P:{"1":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"}},B:6,C:"isolate from unicode-bidi",D:undefined}; diff --git a/server/api/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-plaintext.js b/server/api/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-plaintext.js new file mode 100644 index 0000000..d23b9c7 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-plaintext.js @@ -0,0 +1 @@ +module.exports={A:{D:{"1":"0 1 2 3 4 5 6 7 8 9 yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB"},L:{"1":"KB"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F 9C AD","33":"A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB"},M:{"1":"RC"},A:{"2":"J D E F A B 5C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB ND OD PD QD SC 3C RD TC"},K:{"1":"H","2":"A B C SC 3C TC"},E:{"1":"B C K L G SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"I eB BD eC CD MD","33":"J D E F A DD ED FD fC"},G:{"1":"bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C TD","33":"E UD VD WD XD YD ZD aD"},P:{"1":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"}},B:6,C:"plaintext from unicode-bidi",D:undefined}; diff --git a/server/api/node_modules/caniuse-lite/data/features/mdn-text-decoration-color.js b/server/api/node_modules/caniuse-lite/data/features/mdn-text-decoration-color.js new file mode 100644 index 0000000..dcebef1 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/mdn-text-decoration-color.js @@ -0,0 +1 @@ +module.exports={A:{D:{"1":"0 1 2 3 4 5 6 7 8 9 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B"},L:{"1":"KB"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB 9C AD","33":"J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB"},M:{"1":"RC"},A:{"2":"J D E F A B 5C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB ND OD PD QD SC 3C RD TC"},K:{"1":"H","2":"A B C SC 3C TC"},E:{"1":"K L G TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"I eB J D BD eC CD DD ED MD","33":"E F A B C FD fC SC"},G:{"1":"eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C TD UD VD","33":"E WD XD YD ZD aD bD cD dD"},P:{"1":"AB BB CB DB EB FB GB HB IB JB yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I wD xD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"}},B:6,C:"text-decoration-color property",D:undefined}; diff --git a/server/api/node_modules/caniuse-lite/data/features/mdn-text-decoration-line.js b/server/api/node_modules/caniuse-lite/data/features/mdn-text-decoration-line.js new file mode 100644 index 0000000..544429e --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/mdn-text-decoration-line.js @@ -0,0 +1 @@ +module.exports={A:{D:{"1":"0 1 2 3 4 5 6 7 8 9 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B"},L:{"1":"KB"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB 9C AD","33":"J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB"},M:{"1":"RC"},A:{"2":"J D E F A B 5C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB ND OD PD QD SC 3C RD TC"},K:{"1":"H","2":"A B C SC 3C TC"},E:{"1":"K L G TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"I eB J D BD eC CD DD ED MD","33":"E F A B C FD fC SC"},G:{"1":"eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C TD UD VD","33":"E WD XD YD ZD aD bD cD dD"},P:{"1":"AB BB CB DB EB FB GB HB IB JB yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I wD xD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"}},B:6,C:"text-decoration-line property",D:undefined}; diff --git a/server/api/node_modules/caniuse-lite/data/features/mdn-text-decoration-shorthand.js b/server/api/node_modules/caniuse-lite/data/features/mdn-text-decoration-shorthand.js new file mode 100644 index 0000000..91a331b --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/mdn-text-decoration-shorthand.js @@ -0,0 +1 @@ +module.exports={A:{D:{"1":"0 1 2 3 4 5 6 7 8 9 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B"},L:{"1":"KB"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB 9C AD"},M:{"1":"RC"},A:{"2":"J D E F A B 5C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB ND OD PD QD SC 3C RD TC"},K:{"1":"H","2":"A B C SC 3C TC"},E:{"1":"zC 0C 1C 2C","2":"I eB J D BD eC CD DD ED MD","33":"E F A B C K L G FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC"},G:{"1":"zC 0C 1C 2C","2":"eC SD 4C TD UD VD","33":"E WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I wD xD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"}},B:6,C:"text-decoration shorthand property",D:undefined}; diff --git a/server/api/node_modules/caniuse-lite/data/features/mdn-text-decoration-style.js b/server/api/node_modules/caniuse-lite/data/features/mdn-text-decoration-style.js new file mode 100644 index 0000000..05781c5 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/mdn-text-decoration-style.js @@ -0,0 +1 @@ +module.exports={A:{D:{"1":"0 1 2 3 4 5 6 7 8 9 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B"},L:{"1":"KB"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB 9C AD","33":"J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB"},M:{"1":"RC"},A:{"2":"J D E F A B 5C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB ND OD PD QD SC 3C RD TC"},K:{"1":"H","2":"A B C SC 3C TC"},E:{"1":"K L G TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"I eB J D BD eC CD DD ED MD","33":"E F A B C FD fC SC"},G:{"1":"eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C TD UD VD","33":"E WD XD YD ZD aD bD cD dD"},P:{"1":"AB BB CB DB EB FB GB HB IB JB yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I wD xD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"}},B:6,C:"text-decoration-style property",D:undefined}; diff --git a/server/api/node_modules/caniuse-lite/data/features/media-fragments.js b/server/api/node_modules/caniuse-lite/data/features/media-fragments.js new file mode 100644 index 0000000..3ae0566 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/media-fragments.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"2":"C K L G M N O","132":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB 9C AD","132":"0 1 2 3 4 5 6 7 8 9 kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C"},D:{"2":"I eB J D E F A B C K L G M N","132":"0 1 2 3 4 5 6 7 8 9 O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"2":"I eB BD eC CD","132":"J D E F A B C K L G DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"2":"F B C ND OD PD QD SC 3C RD TC","132":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"2":"eC SD 4C TD UD VD","132":"E WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"2":"YC I qD rD sD tD 4C","132":"KB uD vD"},J:{"2":"D A"},K:{"2":"A B C SC 3C TC","132":"H"},L:{"132":"KB"},M:{"132":"RC"},N:{"132":"A B"},O:{"132":"UC"},P:{"2":"I wD","132":"AB BB CB DB EB FB GB HB IB JB xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"132":"7D"},R:{"132":"8D"},S:{"132":"9D AE"}},B:2,C:"Media Fragments",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/mediacapture-fromelement.js b/server/api/node_modules/caniuse-lite/data/features/mediacapture-fromelement.js new file mode 100644 index 0000000..4c32b89 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/mediacapture-fromelement.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB 9C AD","260":"0 1 2 3 4 5 6 7 8 9 tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B","324":"1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC"},E:{"2":"I eB J D E F A BD eC CD DD ED FD fC","132":"B C K L G SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB ND OD PD QD SC 3C RD TC","324":"mB nB oB pB qB rB sB tB uB vB wB xB"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"260":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I","132":"wD xD yD"},Q:{"1":"7D"},R:{"1":"8D"},S:{"260":"9D AE"}},B:5,C:"Media Capture from DOM Elements API",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/mediarecorder.js b/server/api/node_modules/caniuse-lite/data/features/mediarecorder.js new file mode 100644 index 0000000..cdabbcd --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/mediarecorder.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB","194":"xB yB"},E:{"1":"G HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C BD eC CD DD ED FD fC SC","322":"K L TC GD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB ND OD PD QD SC 3C RD TC","194":"kB lB"},G:{"1":"kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD","578":"dD eD fD gD hD iD jD"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:5,C:"MediaRecorder API",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/mediasource.js b/server/api/node_modules/caniuse-lite/data/features/mediasource.js new file mode 100644 index 0000000..03e3669 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/mediasource.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A 5C","132":"B"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB 9C AD","66":"FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M","33":"DB EB FB GB HB IB JB gB","66":"N O fB AB BB CB"},E:{"1":"E F A B C K L G FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D BD eC CD DD ED"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ND OD PD QD SC 3C RD TC"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD","260":"fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"KB vD","2":"YC I qD rD sD tD 4C uD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"B","2":"A"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I wD xD yD zD"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:2,C:"Media Source Extensions",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/menu.js b/server/api/node_modules/caniuse-lite/data/features/menu.js new file mode 100644 index 0000000..952dbff --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/menu.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"2":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"2":"6C YC I eB J D 9C AD","132":"E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S","450":"0 1 2 3 4 5 6 7 8 9 T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","66":"rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC","66":"lB mB nB oB pB qB rB sB tB uB vB wB"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C H SC 3C TC"},L:{"2":"KB"},M:{"450":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:7,C:"Context menu item (menuitem element)",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/meta-theme-color.js b/server/api/node_modules/caniuse-lite/data/features/meta-theme-color.js new file mode 100644 index 0000000..094dc52 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/meta-theme-color.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"2":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB","132":"0 1 2 3 4 5 6 7 8 9 LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","258":"pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC"},E:{"1":"G ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC","2":"I eB J D E F A B C K L BD eC CD DD ED FD fC SC TC GD HD","2052":"xC yC zC 0C 1C 2C MD"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC"},G:{"1":"lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD","1026":"xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C H SC 3C TC"},L:{"516":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I","16":"wD"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:1,C:"theme-color Meta Tag",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/meter.js b/server/api/node_modules/caniuse-lite/data/features/meter.js new file mode 100644 index 0000000..38ed619 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/meter.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 9 M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D"},E:{"1":"J D E F A B C K L G DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB BD eC CD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z SC 3C RD TC","2":"F ND OD PD QD"},G:{"1":"aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD"},H:{"1":"pD"},I:{"1":"KB uD vD","2":"YC I qD rD sD tD 4C"},J:{"1":"D A"},K:{"1":"B C H SC 3C TC","2":"A"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"meter element",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/midi.js b/server/api/node_modules/caniuse-lite/data/features/midi.js new file mode 100644 index 0000000..0fecf44 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/midi.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB ND OD PD QD SC 3C RD TC"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"2":"9D AE"}},B:5,C:"Web MIDI API",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/minmaxwh.js b/server/api/node_modules/caniuse-lite/data/features/minmaxwh.js new file mode 100644 index 0000000..c6bdf13 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/minmaxwh.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"F A B","8":"J 5C","129":"D","257":"E"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC"},G:{"1":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"1":"pD"},I:{"1":"YC I KB qD rD sD tD 4C uD vD"},J:{"1":"D A"},K:{"1":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:2,C:"CSS min/max-width/height",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/mp3.js b/server/api/node_modules/caniuse-lite/data/features/mp3.js new file mode 100644 index 0000000..c1ad943 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/mp3.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"F A B","2":"J D E 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC","132":"I eB J D E F A B C K L G M N O fB AB BB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"I eB J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"BD eC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ND OD PD QD SC 3C RD TC"},G:{"1":"E SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC"},H:{"2":"pD"},I:{"1":"YC I KB sD tD 4C uD vD","2":"qD rD"},J:{"1":"D A"},K:{"1":"B C H SC 3C TC","2":"A"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:6,C:"MP3 audio format",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/mpeg-dash.js b/server/api/node_modules/caniuse-lite/data/features/mpeg-dash.js new file mode 100644 index 0000000..439ffa1 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/mpeg-dash.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"C K L G M N O","2":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD","386":"BB CB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C H SC 3C TC"},L:{"2":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:6,C:"Dynamic Adaptive Streaming over HTTP (MPEG-DASH)",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/mpeg4.js b/server/api/node_modules/caniuse-lite/data/features/mpeg4.js new file mode 100644 index 0000000..fa7fffb --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/mpeg4.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"F A B","2":"J D E 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB 9C AD","4":"BB CB DB EB FB GB HB IB JB gB hB iB jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"I eB J D E F A B C K L G eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"BD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB ND OD PD QD SC 3C RD TC"},G:{"1":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"KB uD vD","4":"YC I qD rD tD 4C","132":"sD"},J:{"1":"D A"},K:{"1":"B C H SC 3C TC","2":"A"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:6,C:"MPEG-4/H.264 video format",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/multibackgrounds.js b/server/api/node_modules/caniuse-lite/data/features/multibackgrounds.js new file mode 100644 index 0000000..9b9a94a --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/multibackgrounds.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"F A B","2":"J D E 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C AD","2":"6C YC 9C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z PD QD SC 3C RD TC","2":"F ND OD"},G:{"1":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"1":"pD"},I:{"1":"YC I KB qD rD sD tD 4C uD vD"},J:{"1":"D A"},K:{"1":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:4,C:"CSS3 Multiple backgrounds",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/multicolumn.js b/server/api/node_modules/caniuse-lite/data/features/multicolumn.js new file mode 100644 index 0000000..050a1e4 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/multicolumn.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J D E F 5C"},B:{"1":"C K L G M N O","516":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"132":"2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC","164":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 9C AD","516":"DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z","1028":"0 1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C"},D:{"420":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB","516":"0 1 2 3 4 5 6 7 8 9 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"A B C K L G fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","132":"F FD","164":"D E ED","420":"I eB J BD eC CD DD"},F:{"1":"C SC 3C RD TC","2":"F B ND OD PD QD","420":"G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB","516":"0 1 2 3 4 5 6 7 8 9 nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"1":"ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","132":"XD YD","164":"E VD WD","420":"eC SD 4C TD UD"},H:{"1":"pD"},I:{"420":"YC I qD rD sD tD 4C uD vD","516":"KB"},J:{"420":"D A"},K:{"1":"C SC 3C TC","2":"A B","516":"H"},L:{"516":"KB"},M:{"1028":"RC"},N:{"1":"A B"},O:{"516":"UC"},P:{"420":"I","516":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"516":"7D"},R:{"516":"8D"},S:{"164":"9D AE"}},B:4,C:"CSS3 Multiple column layout",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/mutation-events.js b/server/api/node_modules/caniuse-lite/data/features/mutation-events.js new file mode 100644 index 0000000..efb44b9 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/mutation-events.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E 5C","260":"F A B"},B:{"2":"UB VB WB XB YB ZB aB bB cB dB","66":"9 LB MB NB OB PB QB RB SB TB","132":"0 1 2 3 4 5 6 7 8 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","260":"C K L G M N O"},C:{"2":"6C YC I eB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD","260":"0 1 2 3 4 5 6 7 8 9 J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB"},D:{"2":"SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","16":"I eB J D E F A B C K L","66":"9 LB MB NB OB PB QB RB","132":"0 1 2 3 4 5 6 7 8 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},E:{"2":"xC yC zC 0C 1C 2C MD","16":"BD eC","132":"I eB J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC"},F:{"1":"C RD TC","2":"F ND OD PD QD","16":"B SC 3C","66":"0 1 2 3 4 5 6 7 8 9 v w x y z","132":"G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},G:{"2":"xC yC zC 0C 1C 2C","16":"eC SD","132":"E 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC"},H:{"2":"pD"},I:{"2":"KB","16":"qD rD","132":"YC I sD tD 4C uD vD"},J:{"132":"D A"},K:{"1":"C TC","2":"A","16":"B SC 3C","132":"H"},L:{"2":"KB"},M:{"2":"RC"},N:{"260":"A B"},O:{"132":"UC"},P:{"132":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"132":"7D"},R:{"132":"8D"},S:{"260":"9D AE"}},B:7,C:"Mutation events",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/mutationobserver.js b/server/api/node_modules/caniuse-lite/data/features/mutationobserver.js new file mode 100644 index 0000000..167fa9e --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/mutationobserver.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","2":"J D E 5C","8":"F A"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N","33":"O fB AB BB CB DB EB FB GB"},E:{"1":"D E F A B C K L G DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB BD eC CD","33":"J"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ND OD PD QD SC 3C RD TC"},G:{"1":"E VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C TD","33":"UD"},H:{"2":"pD"},I:{"1":"KB uD vD","2":"YC qD rD sD","8":"I tD 4C"},J:{"1":"A","2":"D"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"B","8":"A"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"Mutation Observer",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/namevalue-storage.js b/server/api/node_modules/caniuse-lite/data/features/namevalue-storage.js new file mode 100644 index 0000000..db8cacb --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/namevalue-storage.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"E F A B","2":"5C","8":"J D"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD","4":"6C YC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"I eB J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"BD eC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z PD QD SC 3C RD TC","2":"F ND OD"},G:{"1":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"YC I KB qD rD sD tD 4C uD vD"},J:{"1":"D A"},K:{"1":"B C H SC 3C TC","2":"A"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"Web Storage - name/value pairs",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/native-filesystem-api.js b/server/api/node_modules/caniuse-lite/data/features/native-filesystem-api.js new file mode 100644 index 0000000..e0a8baf --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/native-filesystem-api.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O","194":"P H Q R S T","260":"U V W X Y Z a b c d e f g h i j k l m"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC","194":"MC NC OC PC QC P H Q R S T","260":"U V W X Y Z a b c d e f g h i j k l m"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B ND OD PD QD SC 3C RD TC","194":"AC BC CC DC EC FC GC HC IC JC","260":"KC LC MC NC OC PC QC P H Q bC R S T U V W X Y"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C H SC 3C TC"},L:{"2":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:7,C:"File System Access API",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/nav-timing.js b/server/api/node_modules/caniuse-lite/data/features/nav-timing.js new file mode 100644 index 0000000..494829c --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/nav-timing.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"F A B","2":"J D E 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB","33":"J D E F A B C"},E:{"1":"E F A B C K L G FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D BD eC CD DD ED"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ND OD PD QD SC 3C RD TC"},G:{"1":"E XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C TD UD VD WD"},H:{"2":"pD"},I:{"1":"I KB tD 4C uD vD","2":"YC qD rD sD"},J:{"1":"A","2":"D"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:2,C:"Navigation Timing API",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/netinfo.js b/server/api/node_modules/caniuse-lite/data/features/netinfo.js new file mode 100644 index 0000000..f7d1cb0 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/netinfo.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"2":"C K L G M N O","1028":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B","1028":"0 1 2 3 4 5 6 7 8 9 aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB ND OD PD QD SC 3C RD TC","1028":"0 1 2 3 4 5 6 7 8 9 yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"KB","2":"qD uD vD","132":"YC I rD sD tD 4C"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","132":"I","516":"wD xD yD"},Q:{"1":"7D"},R:{"1":"8D"},S:{"2":"AE","260":"9D"}},B:7,C:"Network Information API",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/notifications.js b/server/api/node_modules/caniuse-lite/data/features/notifications.js new file mode 100644 index 0000000..780226b --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/notifications.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K"},C:{"1":"0 1 2 3 4 5 6 7 8 9 CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I","36":"eB J D E F A B C K L G M N O fB AB BB"},E:{"1":"J D E F A B C K L G DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB BD eC CD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB ND OD PD QD SC 3C RD TC"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC","516":"lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"2":"YC I qD rD sD tD 4C","36":"KB uD vD"},J:{"1":"A","2":"D"},K:{"2":"A B C SC 3C TC","36":"H"},L:{"257":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"36":"I","130":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"130":"8D"},S:{"1":"9D AE"}},B:1,C:"Web Notifications",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/object-entries.js b/server/api/node_modules/caniuse-lite/data/features/object-entries.js new file mode 100644 index 0000000..28bb5f8 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/object-entries.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K"},C:{"1":"0 1 2 3 4 5 6 7 8 9 xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B"},E:{"1":"B C K L G fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A BD eC CD DD ED FD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB ND OD PD QD SC 3C RD TC"},G:{"1":"aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D","16":"A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I wD"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:6,C:"Object.entries",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/object-fit.js b/server/api/node_modules/caniuse-lite/data/features/object-fit.js new file mode 100644 index 0000000..1eeb071 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/object-fit.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G","260":"M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB"},E:{"1":"A B C K L G fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D BD eC CD DD","132":"E F ED FD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F G M N O ND OD PD","33":"B C QD SC 3C RD TC"},G:{"1":"ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C TD UD VD","132":"E WD XD YD"},H:{"33":"pD"},I:{"1":"KB vD","2":"YC I qD rD sD tD 4C uD"},J:{"2":"D A"},K:{"1":"H","2":"A","33":"B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:4,C:"CSS3 object-fit/object-position",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/object-observe.js b/server/api/node_modules/caniuse-lite/data/features/object-observe.js new file mode 100644 index 0000000..b202d2f --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/object-observe.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"2":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"1":"mB nB oB pB qB rB sB tB uB vB wB xB yB zB","2":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"DB EB FB GB HB IB JB gB hB iB jB kB lB mB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C H SC 3C TC"},L:{"2":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"I","2":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:7,C:"Object.observe data binding",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/object-values.js b/server/api/node_modules/caniuse-lite/data/features/object-values.js new file mode 100644 index 0000000..a8110d4 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/object-values.js @@ -0,0 +1 @@ +module.exports={A:{A:{"8":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K"},C:{"1":"0 1 2 3 4 5 6 7 8 9 xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","8":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","8":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B"},E:{"1":"B C K L G fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","8":"I eB J D E F A BD eC CD DD ED FD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","8":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB ND OD PD QD SC 3C RD TC"},G:{"1":"aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","8":"E eC SD 4C TD UD VD WD XD YD ZD"},H:{"8":"pD"},I:{"1":"KB","8":"YC I qD rD sD tD 4C uD vD"},J:{"8":"D A"},K:{"1":"H","8":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"8":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","8":"I wD"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:6,C:"Object.values method",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/objectrtc.js b/server/api/node_modules/caniuse-lite/data/features/objectrtc.js new file mode 100644 index 0000000..ddb45c3 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/objectrtc.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"K L G M N O","2":"0 1 2 3 4 5 6 7 8 9 C P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C H SC 3C TC"},L:{"2":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:6,C:"Object RTC (ORTC) API for WebRTC",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/offline-apps.js b/server/api/node_modules/caniuse-lite/data/features/offline-apps.js new file mode 100644 index 0000000..0658f9e --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/offline-apps.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"F 5C","8":"J D E"},B:{"1":"C K L G M N O P H Q R S","2":"0 1 2 3 4 5 6 7 8 9 T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R 9C AD","2":"0 1 2 3 4 5 6 7 8 9 S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","4":"YC","8":"6C"},D:{"1":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S","2":"0 1 2 3 4 5 6 7 8 9 T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"I eB J D E F A B C K L CD DD ED FD fC SC TC GD HD","2":"G ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","8":"BD eC"},F:{"1":"B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC QD SC 3C RD TC","2":"0 1 2 3 4 5 6 7 8 9 F LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND","8":"OD PD"},G:{"1":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD","2":"lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"YC I qD rD sD tD 4C uD vD","2":"KB"},J:{"1":"D A"},K:{"1":"B C SC 3C TC","2":"A H"},L:{"2":"KB"},M:{"2":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"2":"8D"},S:{"1":"9D","2":"AE"}},B:7,C:"Offline web applications",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/offscreencanvas.js b/server/api/node_modules/caniuse-lite/data/features/offscreencanvas.js new file mode 100644 index 0000000..e5e6f99 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/offscreencanvas.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB 9C AD","194":"uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m"},D:{"1":"0 1 2 3 4 5 6 7 8 9 HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B","322":"8B ZC 9B aC AC BC CC DC EC FC GC"},E:{"1":"WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC","516":"jC kC lC mC KD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB ND OD PD QD SC 3C RD TC","322":"vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC"},G:{"1":"WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC","516":"jC kC lC mC nD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I wD xD yD zD 0D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"194":"9D AE"}},B:1,C:"OffscreenCanvas",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/ogg-vorbis.js b/server/api/node_modules/caniuse-lite/data/features/ogg-vorbis.js new file mode 100644 index 0000000..3837535 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/ogg-vorbis.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD","2":"6C YC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C K L BD eC CD DD ED FD fC SC TC GD","260":"WC nC oC pC qC rC LD XC sC tC uC","388":"G HD ID gC hC UC JD VC iC jC kC lC mC KD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z PD QD SC 3C RD TC","2":"F ND OD"},G:{"1":"vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC","260":"qC rC oD XC sC tC uC"},H:{"2":"pD"},I:{"1":"YC I KB sD tD 4C uD vD","16":"qD rD"},J:{"1":"A","2":"D"},K:{"1":"B C H SC 3C TC","2":"A"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:6,C:"Ogg Vorbis audio format",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/ogv.js b/server/api/node_modules/caniuse-lite/data/features/ogv.js new file mode 100644 index 0000000..441b0f6 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/ogv.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E 5C","8":"F A B"},B:{"1":"0 1 2 3 N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","8":"C K L G M","194":"4 5 6 7 8 9 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB 9C AD","2":"6C YC NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C"},D:{"1":"0 1 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","194":"2 3 4 5 6 7 8 9 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n PD QD SC 3C RD TC","2":"F ND OD","194":"0 1 2 3 4 5 6 7 8 9 o p q r s t u v w x y z"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C H SC 3C TC"},L:{"2":"KB"},M:{"1":"RC"},N:{"8":"A B"},O:{"1":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"2":"8D"},S:{"1":"9D AE"}},B:6,C:"Ogg/Theora video format",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/ol-reversed.js b/server/api/node_modules/caniuse-lite/data/features/ol-reversed.js new file mode 100644 index 0000000..be8e0e8 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/ol-reversed.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G","16":"M N O fB"},E:{"1":"D E F A B C K L G DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB BD eC CD","16":"J"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z TC","2":"F B ND OD PD QD SC 3C RD","16":"C"},G:{"1":"E UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C TD"},H:{"1":"pD"},I:{"1":"KB uD vD","2":"YC I qD rD sD tD 4C"},J:{"1":"A","2":"D"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"Reversed attribute of ordered lists",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/once-event-listener.js b/server/api/node_modules/caniuse-lite/data/features/once-event-listener.js new file mode 100644 index 0000000..b108f34 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/once-event-listener.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G"},C:{"1":"0 1 2 3 4 5 6 7 8 9 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B"},E:{"1":"A B C K L G fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F BD eC CD DD ED FD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB ND OD PD QD SC 3C RD TC"},G:{"1":"ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I wD"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","2":"9D"}},B:1,C:"\"once\" event listener option",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/online-status.js b/server/api/node_modules/caniuse-lite/data/features/online-status.js new file mode 100644 index 0000000..9e1b555 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/online-status.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"F A B","2":"J D 5C","260":"E"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD","2":"6C YC","516":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K"},E:{"1":"eB J E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I BD eC","1025":"D"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ND OD PD QD SC 3C RD","4":"TC"},G:{"1":"E 4C TD UD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","16":"eC SD","1025":"VD"},H:{"2":"pD"},I:{"1":"YC I KB sD tD 4C uD vD","16":"qD rD"},J:{"1":"A","132":"D"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"Online/offline status",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/opus.js b/server/api/node_modules/caniuse-lite/data/features/opus.js new file mode 100644 index 0000000..fdf42e0 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/opus.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K"},C:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB"},E:{"2":"I eB J D E F A BD eC CD DD ED FD fC","132":"B C K L G SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC","260":"qC","516":"rC LD XC sC tC uC","1028":"vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB ND OD PD QD SC 3C RD TC"},G:{"1":"vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD","132":"bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC","260":"qC","516":"rC oD XC sC tC uC"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:6,C:"Opus audio format",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/orientation-sensor.js b/server/api/node_modules/caniuse-lite/data/features/orientation-sensor.js new file mode 100644 index 0000000..d854c04 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/orientation-sensor.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B","194":"8B ZC 9B aC AC BC CC DC EC"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B ND OD PD QD SC 3C RD TC"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"2":"9D AE"}},B:4,C:"Orientation Sensor",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/outline.js b/server/api/node_modules/caniuse-lite/data/features/outline.js new file mode 100644 index 0000000..5e90107 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/outline.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D 5C","260":"E","388":"F A B"},B:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","388":"C K L"},C:{"1":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z RD","129":"TC","260":"F B ND OD PD QD SC 3C"},G:{"1":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"YC I KB qD rD sD tD 4C uD vD"},J:{"1":"D A"},K:{"1":"C H TC","260":"A B SC 3C"},L:{"1":"KB"},M:{"1":"RC"},N:{"388":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:4,C:"CSS outline properties",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/pad-start-end.js b/server/api/node_modules/caniuse-lite/data/features/pad-start-end.js new file mode 100644 index 0000000..d67f99d --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/pad-start-end.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L"},C:{"1":"0 1 2 3 4 5 6 7 8 9 yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B"},E:{"1":"A B C K L G fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F BD eC CD DD ED FD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB ND OD PD QD SC 3C RD TC"},G:{"1":"ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I wD xD"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:6,C:"String.prototype.padStart(), String.prototype.padEnd()",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/page-transition-events.js b/server/api/node_modules/caniuse-lite/data/features/page-transition-events.js new file mode 100644 index 0000000..9ca2796 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/page-transition-events.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","2":"J D E F A 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"eB J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I BD eC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ND OD PD QD SC 3C RD TC"},G:{"1":"E TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","16":"eC SD 4C"},H:{"2":"pD"},I:{"1":"YC I KB sD tD 4C uD vD","16":"qD rD"},J:{"1":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"B","2":"A"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"PageTransitionEvent",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/pagevisibility.js b/server/api/node_modules/caniuse-lite/data/features/pagevisibility.js new file mode 100644 index 0000000..6d2dd09 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/pagevisibility.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J D E F 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F 9C AD","33":"A B C K L G M N"},D:{"1":"0 1 2 3 4 5 6 7 8 9 jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K","33":"L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB"},E:{"1":"D E F A B C K L G DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J BD eC CD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z TC","2":"F B C ND OD PD QD SC 3C RD","33":"G M N O fB"},G:{"1":"E VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C TD UD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C","33":"uD vD"},J:{"1":"A","2":"D"},K:{"1":"H TC","2":"A B C SC 3C"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","33":"I"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:2,C:"Page Visibility",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/passive-event-listener.js b/server/api/node_modules/caniuse-lite/data/features/passive-event-listener.js new file mode 100644 index 0000000..f7e53cb --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/passive-event-listener.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G"},C:{"1":"0 1 2 3 4 5 6 7 8 9 zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B"},E:{"1":"A B C K L G fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F BD eC CD DD ED FD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB ND OD PD QD SC 3C RD TC"},G:{"1":"ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","2":"9D"}},B:1,C:"Passive event listeners",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/passkeys.js b/server/api/node_modules/caniuse-lite/data/features/passkeys.js new file mode 100644 index 0000000..f54c5d7 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/passkeys.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p"},C:{"1":"4 5 6 7 8 9 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"0 1 2 3 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p"},E:{"1":"iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e ND OD PD QD SC 3C RD TC"},G:{"1":"VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"BB CB DB EB FB GB HB IB JB","2":"I wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","16":"AB"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:6,C:"Passkeys",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/passwordrules.js b/server/api/node_modules/caniuse-lite/data/features/passwordrules.js new file mode 100644 index 0000000..8cc4b72 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/passwordrules.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"2":"C K L G M N O","16":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC 9C AD","16":"dC 7C 8C"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB","16":"cC RC dC"},E:{"1":"C K TC","2":"I eB J D E F A B BD eC CD DD ED FD fC SC","16":"L G GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B ND OD PD QD SC 3C RD TC","16":"0 1 2 3 4 5 6 7 8 9 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"16":"pD"},I:{"2":"YC I qD rD sD tD 4C uD vD","16":"KB"},J:{"2":"D","16":"A"},K:{"2":"A B C SC 3C TC","16":"H"},L:{"16":"KB"},M:{"16":"RC"},N:{"2":"A","16":"B"},O:{"16":"UC"},P:{"2":"I wD xD","16":"AB BB CB DB EB FB GB HB IB JB yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"16":"7D"},R:{"16":"8D"},S:{"2":"9D AE"}},B:1,C:"Password Rules",D:false}; diff --git a/server/api/node_modules/caniuse-lite/data/features/path2d.js b/server/api/node_modules/caniuse-lite/data/features/path2d.js new file mode 100644 index 0000000..43583f2 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/path2d.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K","132":"L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB 9C AD","132":"hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB","132":"mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC"},E:{"1":"A B C K L G FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D BD eC CD DD","132":"E F ED"},F:{"1":"0 1 2 3 4 5 6 7 8 9 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB ND OD PD QD SC 3C RD TC","132":"DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B"},G:{"1":"XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C TD UD VD","16":"E","132":"WD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"1":"A","2":"D"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB fC 1D 2D 3D 4D 5D VC WC XC 6D","132":"I wD xD yD zD 0D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"Path2D",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/payment-request.js b/server/api/node_modules/caniuse-lite/data/features/payment-request.js new file mode 100644 index 0000000..fa7d6d2 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/payment-request.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K","322":"L","8196":"G M N O"},C:{"2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 9C AD","4162":"5B 6B 7B 8B ZC 9B aC AC BC CC DC","16452":"0 1 2 3 4 5 6 7 8 9 EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B","194":"3B 4B 5B 6B 7B 8B","1090":"ZC 9B","8196":"aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC"},E:{"1":"K L G TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F BD eC CD DD ED FD","514":"A B fC","8196":"C SC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB ND OD PD QD SC 3C RD TC","194":"qB rB sB tB uB vB wB xB","8196":"yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC"},G:{"1":"eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD","514":"ZD aD bD","8196":"cD dD"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"2049":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB 2D 3D 4D 5D VC WC XC 6D","2":"I","8196":"wD xD yD zD 0D fC 1D"},Q:{"8196":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:2,C:"Payment Request API",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/pdf-viewer.js b/server/api/node_modules/caniuse-lite/data/features/pdf-viewer.js new file mode 100644 index 0000000..93767f6 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/pdf-viewer.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A 5C","132":"B"},B:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","16":"C K L"},C:{"1":"0 1 2 3 4 5 6 7 8 9 fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","16":"I eB J D E F A B C K L"},E:{"1":"I eB J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","16":"BD eC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z TC","2":"F B ND OD PD QD SC 3C RD"},G:{"1":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"16":"D A"},K:{"2":"A B C H SC 3C TC"},L:{"2":"KB"},M:{"2":"RC"},N:{"16":"A B"},O:{"2":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:6,C:"Built-in PDF viewer",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/permissions-api.js b/server/api/node_modules/caniuse-lite/data/features/permissions-api.js new file mode 100644 index 0000000..73af947 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/permissions-api.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB"},E:{"1":"VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB ND OD PD QD SC 3C RD TC"},G:{"1":"VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:5,C:"Permissions API",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/permissions-policy.js b/server/api/node_modules/caniuse-lite/data/features/permissions-policy.js new file mode 100644 index 0000000..81ff638 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/permissions-policy.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"2":"C K L G M N O","258":"P H Q R S T","322":"U V","388":"0 1 2 3 4 5 6 7 8 9 W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC 9C AD","258":"0 1 2 3 4 5 6 7 8 9 MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C"},D:{"2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC","258":"9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T","322":"U V","388":"0 1 2 3 4 5 6 7 8 9 W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"2":"I eB J D E F A B BD eC CD DD ED FD fC","258":"C K L G SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB ND OD PD QD SC 3C RD TC","258":"xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","322":"KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c","388":"0 1 2 3 4 5 6 7 8 9 d e f g h i j k l m n o p q r s t u v w x y z"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD","258":"cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"2":"YC I qD rD sD tD 4C uD vD","258":"KB"},J:{"2":"D A"},K:{"2":"A B C SC 3C TC","388":"H"},L:{"388":"KB"},M:{"258":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I wD xD yD","258":"AB BB CB DB EB FB GB HB IB JB zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"258":"7D"},R:{"388":"8D"},S:{"2":"9D","258":"AE"}},B:5,C:"Permissions Policy",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/picture-in-picture.js b/server/api/node_modules/caniuse-lite/data/features/picture-in-picture.js new file mode 100644 index 0000000..0282892 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/picture-in-picture.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC 9C AD","132":"0 1 2 3 4 5 6 7 8 9 KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","1090":"FC","1412":"JC","1668":"GC HC IC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC","2114":"HC"},E:{"1":"L G GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F BD eC CD DD ED FD","4100":"A B C K fC SC TC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB ND OD PD QD SC 3C RD TC","8196":"nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},G:{"1":"jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD","4100":"XD YD ZD aD bD cD dD eD fD gD hD iD"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"16388":"KB"},M:{"16388":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:5,C:"Picture-in-Picture",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/picture.js b/server/api/node_modules/caniuse-lite/data/features/picture.js new file mode 100644 index 0000000..6bb5f87 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/picture.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 9 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB 9C AD","578":"kB lB mB nB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB","194":"nB"},E:{"1":"A B C K L G FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F BD eC CD DD ED"},F:{"1":"0 1 2 3 4 5 6 7 8 9 FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB ND OD PD QD SC 3C RD TC","322":"EB"},G:{"1":"YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"Picture element",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/ping.js b/server/api/node_modules/caniuse-lite/data/features/ping.js new file mode 100644 index 0000000..c3a8097 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/ping.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M"},C:{"2":"6C","194":"0 1 2 3 4 5 6 7 8 9 YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","16":"I eB J D E F A B C K L"},E:{"1":"J D E F A B C K L G DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB BD eC CD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ND OD PD QD SC 3C RD TC"},G:{"1":"E TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C"},H:{"2":"pD"},I:{"1":"KB uD vD","2":"YC I qD rD sD tD 4C"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"194":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"194":"9D AE"}},B:1,C:"Ping attribute",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/png-alpha.js b/server/api/node_modules/caniuse-lite/data/features/png-alpha.js new file mode 100644 index 0000000..4ded321 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/png-alpha.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"D E F A B","2":"5C","8":"J"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC"},G:{"1":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"1":"pD"},I:{"1":"YC I KB qD rD sD tD 4C uD vD"},J:{"1":"D A"},K:{"1":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:2,C:"PNG alpha transparency",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/pointer-events.js b/server/api/node_modules/caniuse-lite/data/features/pointer-events.js new file mode 100644 index 0000000..942da13 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/pointer-events.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","2":"J D E F A 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C AD","2":"6C YC 9C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"I eB J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"BD eC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ND OD PD QD SC 3C RD TC"},G:{"1":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"YC I KB qD rD sD tD 4C uD vD"},J:{"1":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"B","2":"A"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:7,C:"CSS pointer-events (for HTML)",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/pointer.js b/server/api/node_modules/caniuse-lite/data/features/pointer.js new file mode 100644 index 0000000..95b1630 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/pointer.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","2":"J D E F 5C","164":"A"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB 9C AD","8":"J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB","328":"rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB","8":"CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B","584":"2B 3B 4B"},E:{"1":"K L G GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J BD eC CD","8":"D E F A B C DD ED FD fC SC","1096":"TC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ND OD PD QD SC 3C RD TC","8":"G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB","584":"pB qB rB"},G:{"1":"gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","8":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD","6148":"fD"},H:{"2":"pD"},I:{"1":"KB","8":"YC I qD rD sD tD 4C uD vD"},J:{"8":"D A"},K:{"1":"H","2":"A","8":"B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"B","36":"A"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"wD","8":"I"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","328":"9D"}},B:2,C:"Pointer events",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/pointerlock.js b/server/api/node_modules/caniuse-lite/data/features/pointerlock.js new file mode 100644 index 0000000..4e9ef07 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/pointerlock.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 9 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K 9C AD","33":"L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G","33":"CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB","66":"M N O fB AB BB"},E:{"1":"B C K L G fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A BD eC CD DD ED FD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ND OD PD QD SC 3C RD TC","33":"G M N O fB AB BB CB DB"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C SC 3C TC","16":"H"},L:{"2":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"16":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"16":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:2,C:"Pointer Lock API",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/portals.js b/server/api/node_modules/caniuse-lite/data/features/portals.js new file mode 100644 index 0000000..0c12c06 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/portals.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"2":"C K L G M N O P H Q R S","322":"0 1 2 3 4 5 6 7 8 9 Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","450":"T U V W X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC","194":"NC OC PC QC P H Q R S","322":"0 1 2 3 4 5 6 7 8 9 U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","450":"T"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B ND OD PD QD SC 3C RD TC","194":"AC BC CC DC EC FC GC HC IC JC KC","322":"0 1 2 3 4 5 6 7 8 9 LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C H SC 3C TC"},L:{"450":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:7,C:"Portals",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/prefers-color-scheme.js b/server/api/node_modules/caniuse-lite/data/features/prefers-color-scheme.js new file mode 100644 index 0000000..b4a9e08 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/prefers-color-scheme.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC"},E:{"1":"K L G TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C BD eC CD DD ED FD fC SC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B ND OD PD QD SC 3C RD TC"},G:{"1":"fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB 2D 3D 4D 5D VC WC XC 6D","2":"I wD xD yD zD 0D fC 1D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","2":"9D"}},B:5,C:"prefers-color-scheme media query",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/prefers-reduced-motion.js b/server/api/node_modules/caniuse-lite/data/features/prefers-reduced-motion.js new file mode 100644 index 0000000..6b35165 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/prefers-reduced-motion.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC"},E:{"1":"B C K L G fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A BD eC CD DD ED FD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC ND OD PD QD SC 3C RD TC"},G:{"1":"aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB 1D 2D 3D 4D 5D VC WC XC 6D","2":"I wD xD yD zD 0D fC"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","2":"9D"}},B:5,C:"prefers-reduced-motion media query",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/progress.js b/server/api/node_modules/caniuse-lite/data/features/progress.js new file mode 100644 index 0000000..d044478 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/progress.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J D E F 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D"},E:{"1":"J D E F A B C K L G DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB BD eC CD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z SC 3C RD TC","2":"F ND OD PD QD"},G:{"1":"E WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C TD UD","132":"VD"},H:{"1":"pD"},I:{"1":"KB uD vD","2":"YC I qD rD sD tD 4C"},J:{"1":"D A"},K:{"1":"B C H SC 3C TC","2":"A"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"progress element",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/promise-finally.js b/server/api/node_modules/caniuse-lite/data/features/promise-finally.js new file mode 100644 index 0000000..2fd987b --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/promise-finally.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N"},C:{"1":"0 1 2 3 4 5 6 7 8 9 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC"},E:{"1":"C K L G SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B BD eC CD DD ED FD fC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB ND OD PD QD SC 3C RD TC"},G:{"1":"cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I wD xD yD"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","2":"9D"}},B:6,C:"Promise.prototype.finally",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/promises.js b/server/api/node_modules/caniuse-lite/data/features/promises.js new file mode 100644 index 0000000..f9dbcef --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/promises.js @@ -0,0 +1 @@ +module.exports={A:{A:{"8":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","4":"HB IB","8":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","4":"iB","8":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB"},E:{"1":"E F A B C K L G ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","8":"I eB J D BD eC CD DD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","4":"fB","8":"F B C G M N O ND OD PD QD SC 3C RD TC"},G:{"1":"E WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","8":"eC SD 4C TD UD VD"},H:{"8":"pD"},I:{"1":"KB vD","8":"YC I qD rD sD tD 4C uD"},J:{"8":"D A"},K:{"1":"H","8":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"8":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:6,C:"Promises",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/proximity.js b/server/api/node_modules/caniuse-lite/data/features/proximity.js new file mode 100644 index 0000000..9fd3c5f --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/proximity.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"2":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L 9C AD"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C H SC 3C TC"},L:{"2":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"1":"9D AE"}},B:4,C:"Proximity API",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/proxy.js b/server/api/node_modules/caniuse-lite/data/features/proxy.js new file mode 100644 index 0000000..59dd282 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/proxy.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O oB pB qB rB sB tB uB vB wB xB yB","66":"fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB"},E:{"1":"A B C K L G fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F BD eC CD DD ED FD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C FB GB HB IB JB gB hB iB jB kB lB ND OD PD QD SC 3C RD TC","66":"G M N O fB AB BB CB DB EB"},G:{"1":"ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:6,C:"Proxy object",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/publickeypinning.js b/server/api/node_modules/caniuse-lite/data/features/publickeypinning.js new file mode 100644 index 0000000..90d72b3 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/publickeypinning.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"2":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC","2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"1":"oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC","2":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC","4":"DB","16":"AB BB CB EB"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C H SC 3C TC"},L:{"2":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"I wD xD yD zD 0D fC","2":"AB BB CB DB EB FB GB HB IB JB 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"1":"9D","2":"AE"}},B:6,C:"HTTP Public Key Pinning",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/push-api.js b/server/api/node_modules/caniuse-lite/data/features/push-api.js new file mode 100644 index 0000000..d60cf85 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/push-api.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"N O","2":"C K L G M","257":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB 9C AD","257":"0 1 2 3 4 5 6 7 8 9 uB wB xB yB zB 0B 1B 3B 4B 5B 6B 7B 8B ZC aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","1281":"vB 2B 9B"},D:{"2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB","257":"0 1 2 3 4 5 6 7 8 9 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","388":"uB vB wB xB yB zB"},E:{"2":"I eB J BD eC CD DD","514":"D E F A B C K L G ED FD fC SC TC GD HD ID gC hC UC JD VC","4609":"XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","6660":"iC jC kC lC mC KD WC nC oC pC qC rC LD"},F:{"2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB ND OD PD QD SC 3C RD TC","16":"nB oB pB qB rB","257":"0 1 2 3 4 5 6 7 8 9 sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC","8196":"lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"2":"8D"},S:{"257":"9D AE"}},B:5,C:"Push API",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/queryselector.js b/server/api/node_modules/caniuse-lite/data/features/queryselector.js new file mode 100644 index 0000000..7650867 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/queryselector.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"F A B","2":"5C","8":"J D","132":"E"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD","8":"6C YC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z OD PD QD SC 3C RD TC","8":"F ND"},G:{"1":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"1":"pD"},I:{"1":"YC I KB qD rD sD tD 4C uD vD"},J:{"1":"D A"},K:{"1":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"querySelector/querySelectorAll",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/readonly-attr.js b/server/api/node_modules/caniuse-lite/data/features/readonly-attr.js new file mode 100644 index 0000000..2355267 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/readonly-attr.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"J D E F A B","16":"5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","16":"6C YC 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","16":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB"},E:{"1":"J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","16":"I eB BD eC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","16":"F ND","132":"B C OD PD QD SC 3C RD TC"},G:{"1":"E VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","16":"eC SD 4C TD UD"},H:{"1":"pD"},I:{"1":"YC I KB sD tD 4C uD vD","16":"qD rD"},J:{"1":"D A"},K:{"1":"H","132":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"257":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"readonly attribute of input and textarea elements",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/referrer-policy.js b/server/api/node_modules/caniuse-lite/data/features/referrer-policy.js new file mode 100644 index 0000000..17f9397 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/referrer-policy.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A 5C","132":"B"},B:{"1":"0 1 2 3 4 5 6 7 8 9 T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","132":"C K L G M N O","513":"P H Q R S"},C:{"1":"V W X Y Z","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB 9C AD","513":"mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U","2049":"0 1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB","260":"BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B","513":"aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S"},E:{"2":"I eB J D BD eC CD DD","132":"E F A B ED FD fC","513":"C SC TC","1025":"G ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","1537":"K L GD HD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ND OD PD QD SC 3C RD TC","513":"G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},G:{"2":"eC SD 4C TD UD VD","132":"E WD XD YD ZD aD bD cD","513":"dD eD fD gD","1025":"lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","1537":"hD iD jD kD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"2049":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB 4D 5D VC WC XC 6D","2":"I","513":"wD xD yD zD 0D fC 1D 2D 3D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"513":"9D AE"}},B:4,C:"Referrer Policy",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/registerprotocolhandler.js b/server/api/node_modules/caniuse-lite/data/features/registerprotocolhandler.js new file mode 100644 index 0000000..3ad505c --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/registerprotocolhandler.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"2":"C K L G M N O","129":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD","2":"6C"},D:{"2":"I eB J D E F A B C","129":"0 1 2 3 4 5 6 7 8 9 K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"2":"F B ND OD PD QD SC 3C","129":"0 1 2 3 4 5 6 7 8 9 C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z RD TC"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D","129":"A"},K:{"2":"A B C H SC 3C TC"},L:{"2":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:1,C:"Custom protocol handling",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/rel-noopener.js b/server/api/node_modules/caniuse-lite/data/features/rel-noopener.js new file mode 100644 index 0000000..58fa30d --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/rel-noopener.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB"},E:{"1":"B C K L G fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A BD eC CD DD ED FD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB ND OD PD QD SC 3C RD TC"},G:{"1":"aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","2":"9D"}},B:1,C:"rel=noopener",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/rel-noreferrer.js b/server/api/node_modules/caniuse-lite/data/features/rel-noreferrer.js new file mode 100644 index 0000000..609160c --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/rel-noreferrer.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A 5C","132":"B"},B:{"1":"0 1 2 3 4 5 6 7 8 9 K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","16":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 9 jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","16":"I eB J D E F A B C K L G"},E:{"1":"eB J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I BD eC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ND OD PD QD SC 3C RD TC"},G:{"1":"E SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC"},H:{"2":"pD"},I:{"1":"YC I KB sD tD 4C uD vD","16":"qD rD"},J:{"1":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"Link type \"noreferrer\"",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/rellist.js b/server/api/node_modules/caniuse-lite/data/features/rellist.js new file mode 100644 index 0000000..1eb7e34 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/rellist.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M","132":"N"},C:{"1":"0 1 2 3 4 5 6 7 8 9 gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB","132":"0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC"},E:{"1":"F A B C K L G FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E BD eC CD DD ED"},F:{"1":"0 1 2 3 4 5 6 7 8 9 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB ND OD PD QD SC 3C RD TC","132":"nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B"},G:{"1":"XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I","132":"wD xD yD zD"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"relList (DOMTokenList)",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/rem.js b/server/api/node_modules/caniuse-lite/data/features/rem.js new file mode 100644 index 0000000..2006bf6 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/rem.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","2":"J D E 5C","132":"F A"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C AD","2":"6C YC 9C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"eB J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I BD eC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z RD TC","2":"F B ND OD PD QD SC 3C"},G:{"1":"E SD 4C UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC","260":"TD"},H:{"1":"pD"},I:{"1":"YC I KB qD rD sD tD 4C uD vD"},J:{"1":"D A"},K:{"1":"C H TC","2":"A B SC 3C"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:4,C:"rem (root em) units",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/requestanimationframe.js b/server/api/node_modules/caniuse-lite/data/features/requestanimationframe.js new file mode 100644 index 0000000..4cbb6e7 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/requestanimationframe.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J D E F 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC 9C AD","33":"B C K L G M N O fB AB BB CB","164":"I eB J D E F A"},D:{"1":"0 1 2 3 4 5 6 7 8 9 EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F","33":"CB DB","164":"O fB AB BB","420":"A B C K L G M N"},E:{"1":"D E F A B C K L G DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB BD eC CD","33":"J"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ND OD PD QD SC 3C RD TC"},G:{"1":"E VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C TD","33":"UD"},H:{"2":"pD"},I:{"1":"KB uD vD","2":"YC I qD rD sD tD 4C"},J:{"1":"A","2":"D"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"requestAnimationFrame",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/requestidlecallback.js b/server/api/node_modules/caniuse-lite/data/features/requestidlecallback.js new file mode 100644 index 0000000..1f8e775 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/requestidlecallback.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 9C AD","194":"3B 4B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB"},E:{"1":"MD","2":"I eB J D E F A B C K BD eC CD DD ED FD fC SC TC","322":"L G GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB ND OD PD QD SC 3C RD TC"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD","322":"iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","2":"9D"}},B:5,C:"requestIdleCallback",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/resizeobserver.js b/server/api/node_modules/caniuse-lite/data/features/resizeobserver.js new file mode 100644 index 0000000..fe22fb5 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/resizeobserver.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B","194":"4B 5B 6B 7B 8B ZC 9B aC AC BC"},E:{"1":"L G GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C BD eC CD DD ED FD fC SC TC","66":"K"},F:{"1":"0 1 2 3 4 5 6 7 8 9 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB ND OD PD QD SC 3C RD TC","194":"rB sB tB uB vB wB xB yB zB 0B 1B"},G:{"1":"iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I wD xD yD zD"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","2":"9D"}},B:5,C:"Resize Observer",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/resource-timing.js b/server/api/node_modules/caniuse-lite/data/features/resource-timing.js new file mode 100644 index 0000000..82e6542 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/resource-timing.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J D E F 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB 9C AD","194":"hB iB jB kB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB"},E:{"1":"C K L G SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A BD eC CD DD ED FD fC","260":"B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ND OD PD QD SC 3C RD TC"},G:{"1":"bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD"},H:{"2":"pD"},I:{"1":"KB uD vD","2":"YC I qD rD sD tD 4C"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:4,C:"Resource Timing (basic support)",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/rest-parameters.js b/server/api/node_modules/caniuse-lite/data/features/rest-parameters.js new file mode 100644 index 0000000..3344810 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/rest-parameters.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB","194":"uB vB wB"},E:{"1":"A B C K L G fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F BD eC CD DD ED FD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB ND OD PD QD SC 3C RD TC","194":"hB iB jB"},G:{"1":"ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:6,C:"Rest parameters",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/rtcpeerconnection.js b/server/api/node_modules/caniuse-lite/data/features/rtcpeerconnection.js new file mode 100644 index 0000000..b53124e --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/rtcpeerconnection.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L","260":"G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB 9C AD","33":"CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB","33":"DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B"},E:{"1":"B C K L G SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A BD eC CD DD ED FD fC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N ND OD PD QD SC 3C RD TC","33":"O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB"},G:{"1":"bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D","130":"A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","33":"I wD"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:5,C:"WebRTC Peer-to-peer connections",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/ruby.js b/server/api/node_modules/caniuse-lite/data/features/ruby.js new file mode 100644 index 0000000..a1387fe --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/ruby.js @@ -0,0 +1 @@ +module.exports={A:{A:{"4":"J D E 5C","132":"F A B"},B:{"4":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","8":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB 9C AD"},D:{"4":"0 1 2 3 4 5 6 7 8 9 eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","8":"I"},E:{"4":"eB J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","8":"I BD eC"},F:{"4":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","8":"F B C ND OD PD QD SC 3C RD TC"},G:{"4":"E TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","8":"eC SD 4C"},H:{"8":"pD"},I:{"4":"YC I KB tD 4C uD vD","8":"qD rD sD"},J:{"4":"A","8":"D"},K:{"4":"H","8":"A B C SC 3C TC"},L:{"4":"KB"},M:{"1":"RC"},N:{"132":"A B"},O:{"4":"UC"},P:{"4":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"4":"7D"},R:{"4":"8D"},S:{"1":"9D AE"}},B:1,C:"Ruby annotation",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/run-in.js b/server/api/node_modules/caniuse-lite/data/features/run-in.js new file mode 100644 index 0000000..7d3734d --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/run-in.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"E F A B","2":"J D 5C"},B:{"2":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"1":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB","2":"0 1 2 3 4 5 6 7 8 9 iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"eB J CD","2":"D E F A B C K L G ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","16":"DD","129":"I BD eC"},F:{"1":"F B C G M N O ND OD PD QD SC 3C RD TC","2":"0 1 2 3 4 5 6 7 8 9 fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"1":"SD 4C TD UD VD","2":"E WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","129":"eC"},H:{"1":"pD"},I:{"1":"YC I qD rD sD tD 4C uD","2":"KB vD"},J:{"1":"D A"},K:{"1":"A B C SC 3C TC","2":"H"},L:{"2":"KB"},M:{"2":"RC"},N:{"1":"A B"},O:{"2":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:4,C:"display: run-in",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/same-site-cookie-attribute.js b/server/api/node_modules/caniuse-lite/data/features/same-site-cookie-attribute.js new file mode 100644 index 0000000..1c86e15 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/same-site-cookie-attribute.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A 5C","388":"B"},B:{"1":"O P H Q R S T","2":"C K L G","129":"M N","513":"0 1 2 3 4 5 6 7 8 9 U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9C AD"},D:{"1":"1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B","513":"0 1 2 3 4 5 6 7 8 9 H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"G ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B BD eC CD DD ED FD fC SC","2052":"L HD","3076":"C K TC GD"},F:{"1":"pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB ND OD PD QD SC 3C RD TC","513":"0 1 2 3 4 5 6 7 8 9 JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"1":"fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD","2052":"dD eD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C SC 3C TC","513":"H"},L:{"513":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I"},Q:{"16":"7D"},R:{"513":"8D"},S:{"1":"AE","2":"9D"}},B:6,C:"'SameSite' cookie attribute",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/screen-orientation.js b/server/api/node_modules/caniuse-lite/data/features/screen-orientation.js new file mode 100644 index 0000000..be05690 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/screen-orientation.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A 5C","164":"B"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","36":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N 9C AD","36":"O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB"},E:{"1":"lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB ND OD PD QD SC 3C RD TC"},G:{"1":"lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A","36":"B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","16":"I"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:5,C:"Screen Orientation",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/script-async.js b/server/api/node_modules/caniuse-lite/data/features/script-async.js new file mode 100644 index 0000000..6370157 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/script-async.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J D E F 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C AD","2":"6C YC 9C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D"},E:{"1":"J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I BD eC","132":"eB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ND OD PD QD SC 3C RD TC"},G:{"1":"E TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C"},H:{"2":"pD"},I:{"1":"YC I KB tD 4C uD vD","2":"qD rD sD"},J:{"1":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"async attribute for external scripts",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/script-defer.js b/server/api/node_modules/caniuse-lite/data/features/script-defer.js new file mode 100644 index 0000000..4aea855 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/script-defer.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","132":"J D E F 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC","257":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D"},E:{"1":"eB J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I BD eC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ND OD PD QD SC 3C RD TC"},G:{"1":"E TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C"},H:{"2":"pD"},I:{"1":"YC I KB tD 4C uD vD","2":"qD rD sD"},J:{"1":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"defer attribute for external scripts",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/scrollintoview.js b/server/api/node_modules/caniuse-lite/data/features/scrollintoview.js new file mode 100644 index 0000000..b74cc8d --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/scrollintoview.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D 5C","132":"E F A B"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","132":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","132":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","132":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B"},E:{"1":"VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB BD eC","132":"J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F ND OD PD QD","16":"B SC 3C","132":"C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB RD TC"},G:{"1":"VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","16":"eC SD 4C","132":"E TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD"},H:{"2":"pD"},I:{"1":"KB","16":"qD rD","132":"YC I sD tD 4C uD vD"},J:{"132":"D A"},K:{"1":"H","132":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"132":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","132":"I wD xD yD"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:5,C:"scrollIntoView",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/scrollintoviewifneeded.js b/server/api/node_modules/caniuse-lite/data/features/scrollintoviewifneeded.js new file mode 100644 index 0000000..b0edc24 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/scrollintoviewifneeded.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","16":"I eB J D E F A B C K L"},E:{"1":"J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","16":"I eB BD eC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ND OD PD QD SC 3C RD TC"},G:{"1":"E TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","16":"eC SD 4C"},H:{"2":"pD"},I:{"1":"YC I KB sD tD 4C uD vD","16":"qD rD"},J:{"1":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"2":"9D AE"}},B:7,C:"Element.scrollIntoViewIfNeeded()",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/sdch.js b/server/api/node_modules/caniuse-lite/data/features/sdch.js new file mode 100644 index 0000000..00dddc5 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/sdch.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"2":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"1":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B","2":"0 1 2 3 4 5 6 7 8 9 ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","2":"0 1 2 3 4 5 6 7 8 9 F B C LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C H SC 3C TC"},L:{"2":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:6,C:"SDCH Accept-Encoding/Content-Encoding",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/selection-api.js b/server/api/node_modules/caniuse-lite/data/features/selection-api.js new file mode 100644 index 0000000..d7c600e --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/selection-api.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"F A B","16":"5C","260":"J D E"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","132":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB 9C AD","2180":"tB uB vB wB xB yB zB 0B 1B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","16":"I eB J D E F A B C K L"},E:{"1":"J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","16":"I eB BD eC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","132":"F B C ND OD PD QD SC 3C RD TC"},G:{"16":"4C","132":"eC SD","516":"E TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"KB uD vD","16":"YC I qD rD sD tD","1025":"4C"},J:{"1":"A","16":"D"},K:{"1":"H","16":"A B C SC 3C","132":"TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"B","16":"A"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","2180":"9D"}},B:5,C:"Selection API",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/server-timing.js b/server/api/node_modules/caniuse-lite/data/features/server-timing.js new file mode 100644 index 0000000..d5ca1a1 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/server-timing.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC","196":"9B aC AC BC","324":"CC"},E:{"1":"lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C BD eC CD DD ED FD fC SC","516":"K L G TC GD HD ID gC hC UC JD VC iC jC kC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B ND OD PD QD SC 3C RD TC"},G:{"1":"lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","2":"9D"}},B:5,C:"Server Timing",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/serviceworkers.js b/server/api/node_modules/caniuse-lite/data/features/serviceworkers.js new file mode 100644 index 0000000..f1052ff --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/serviceworkers.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L","322":"G M"},C:{"1":"VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB 9C AD","194":"jB kB lB mB nB oB pB qB rB sB tB","1025":"0 1 2 3 4 5 6 7 8 9 uB wB xB yB zB 0B 1B 3B 4B 5B 6B 7B 8B ZC aC AC BC CC DC EC FC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB","1537":"vB 2B 9B GC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB","4":"qB rB sB tB uB"},E:{"1":"C K L G SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B BD eC CD DD ED FD fC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB ND OD PD QD SC 3C RD TC","4":"HB IB JB gB hB"},G:{"1":"cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD"},H:{"2":"pD"},I:{"2":"YC I qD rD sD tD 4C uD vD","4":"KB"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","2":"9D"}},B:4,C:"Service Workers",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/setimmediate.js b/server/api/node_modules/caniuse-lite/data/features/setimmediate.js new file mode 100644 index 0000000..18925d9 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/setimmediate.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J D E F 5C"},B:{"1":"C K L G M N O","2":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C H SC 3C TC"},L:{"2":"KB"},M:{"2":"RC"},N:{"1":"A B"},O:{"2":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:7,C:"Efficient Script Yielding: setImmediate()",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/shadowdom.js b/server/api/node_modules/caniuse-lite/data/features/shadowdom.js new file mode 100644 index 0000000..4f17be4 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/shadowdom.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"P","2":"0 1 2 3 4 5 6 7 8 9 C K L G M N O H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD","66":"JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B"},D:{"1":"lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P","2":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","33":"FB GB HB IB JB gB hB iB jB kB"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC","2":"0 1 2 3 4 5 6 7 8 9 F B C FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC","33":"G M N O fB AB BB"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C","33":"uD vD"},J:{"2":"D A"},K:{"2":"A B C H SC 3C TC"},L:{"2":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"wD xD yD zD 0D fC 1D 2D","2":"AB BB CB DB EB FB GB HB IB JB 3D 4D 5D VC WC XC 6D","33":"I"},Q:{"1":"7D"},R:{"2":"8D"},S:{"1":"9D","2":"AE"}},B:7,C:"Shadow DOM (deprecated V0 spec)",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/shadowdomv1.js b/server/api/node_modules/caniuse-lite/data/features/shadowdomv1.js new file mode 100644 index 0000000..8ed7063 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/shadowdomv1.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 9C AD","322":"8B","578":"ZC 9B aC AC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B"},E:{"1":"A B C K L G fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F BD eC CD DD ED FD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB ND OD PD QD SC 3C RD TC"},G:{"1":"bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD","132":"ZD aD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I","4":"wD"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","2":"9D"}},B:5,C:"Shadow DOM (V1)",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/sharedarraybuffer.js b/server/api/node_modules/caniuse-lite/data/features/sharedarraybuffer.js new file mode 100644 index 0000000..92211ab --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/sharedarraybuffer.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"P H Q R S T U V W X Y","2":"C K L G","194":"M N O","513":"0 1 2 3 4 5 6 7 8 9 Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 9C AD","194":"7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC","450":"MC NC OC PC QC","513":"0 1 2 3 4 5 6 7 8 9 P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C"},D:{"1":"GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC","194":"9B aC AC BC CC DC EC FC","513":"0 1 2 3 4 5 6 7 8 9 Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"2":"I eB J D E F A BD eC CD DD ED FD","194":"B C K L G fC SC TC GD HD ID","513":"gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"CC DC EC FC GC HC IC JC KC LC MC NC OC PC","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB ND OD PD QD SC 3C RD TC","194":"xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC","513":"0 1 2 3 4 5 6 7 8 9 QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD","194":"aD bD cD dD eD fD gD hD iD jD kD lD","513":"gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C SC 3C TC","513":"H"},L:{"513":"KB"},M:{"513":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"2":"I wD xD yD zD 0D fC 1D 2D 3D 4D","513":"AB BB CB DB EB FB GB HB IB JB 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"513":"8D"},S:{"2":"9D","513":"AE"}},B:6,C:"Shared Array Buffer",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/sharedworkers.js b/server/api/node_modules/caniuse-lite/data/features/sharedworkers.js new file mode 100644 index 0000000..2e4b9cd --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/sharedworkers.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"eB J CD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I D E F A B C K L G BD eC DD ED FD fC SC TC GD HD ID gC hC UC JD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z QD SC 3C RD TC","2":"F ND OD PD"},G:{"1":"TD UD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"1":"D A"},K:{"1":"B C SC 3C TC","2":"H","16":"A"},L:{"2":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"I","2":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"1":"9D AE"}},B:1,C:"Shared Web Workers",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/sni.js b/server/api/node_modules/caniuse-lite/data/features/sni.js new file mode 100644 index 0000000..592770b --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/sni.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"F A B","2":"J 5C","132":"D E"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB"},E:{"1":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC"},G:{"1":"E SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC"},H:{"1":"pD"},I:{"1":"YC I KB tD 4C uD vD","2":"qD rD sD"},J:{"1":"A","2":"D"},K:{"1":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:6,C:"Server Name Indication",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/spdy.js b/server/api/node_modules/caniuse-lite/data/features/spdy.js new file mode 100644 index 0000000..6ee7fba --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/spdy.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","2":"J D E F A 5C"},B:{"2":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B","2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"1":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B","2":"0 1 2 3 4 5 6 7 8 9 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"E F A B C FD fC SC","2":"I eB J D BD eC CD DD ED","129":"K L G TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB sB uB TC","2":"0 1 2 3 4 5 6 7 8 9 F B C qB rB tB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD"},G:{"1":"E WD XD YD ZD aD bD cD dD","2":"eC SD 4C TD UD VD","257":"eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"YC I tD 4C uD vD","2":"KB qD rD sD"},J:{"2":"D A"},K:{"1":"TC","2":"A B C H SC 3C"},L:{"2":"KB"},M:{"2":"RC"},N:{"1":"B","2":"A"},O:{"2":"UC"},P:{"1":"I","2":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"1":"9D","2":"AE"}},B:7,C:"SPDY protocol",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/speech-recognition.js b/server/api/node_modules/caniuse-lite/data/features/speech-recognition.js new file mode 100644 index 0000000..aad1ebb --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/speech-recognition.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"2":"C K L G M N O","514":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"2":"6C YC I eB J D E F A B C K L G M N O fB AB BB 9C AD","322":"0 1 2 3 4 5 6 7 8 9 CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C"},D:{"2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB","164":"0 1 2 3 4 5 6 7 8 9 FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"2":"I eB J D E F A B C K L BD eC CD DD ED FD fC SC TC GD","1060":"G HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"2":"F B C G M N O fB AB BB CB DB EB FB GB ND OD PD QD SC 3C RD TC","514":"0 1 2 3 4 5 6 7 8 9 HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD","1060":"kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C SC 3C TC","164":"H"},L:{"164":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"164":"UC"},P:{"164":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"164":"7D"},R:{"164":"8D"},S:{"322":"9D AE"}},B:7,C:"Speech Recognition API",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/speech-synthesis.js b/server/api/node_modules/caniuse-lite/data/features/speech-synthesis.js new file mode 100644 index 0000000..98c2d0b --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/speech-synthesis.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"L G M N O","2":"C K","257":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB 9C AD","194":"hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB"},D:{"1":"jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB","257":"0 1 2 3 4 5 6 7 8 9 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"D E F A B C K L G ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J BD eC CD DD"},F:{"1":"HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC","2":"F B C G M N O fB AB BB CB DB EB FB GB ND OD PD QD SC 3C RD TC","257":"0 1 2 3 4 5 6 7 8 9 CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"1":"E VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C TD UD"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I"},Q:{"1":"7D"},R:{"2":"8D"},S:{"1":"9D AE"}},B:7,C:"Speech Synthesis API",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/spellcheck-attribute.js b/server/api/node_modules/caniuse-lite/data/features/spellcheck-attribute.js new file mode 100644 index 0000000..270de3f --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/spellcheck-attribute.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J D E F 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E"},E:{"1":"J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB BD eC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z PD QD SC 3C RD TC","2":"F ND OD"},G:{"4":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"4":"pD"},I:{"4":"YC I KB qD rD sD tD 4C uD vD"},J:{"1":"A","4":"D"},K:{"4":"A B C H SC 3C TC"},L:{"4":"KB"},M:{"4":"RC"},N:{"4":"A B"},O:{"4":"UC"},P:{"4":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"4":"8D"},S:{"2":"9D AE"}},B:1,C:"Spellcheck attribute",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/sql-storage.js b/server/api/node_modules/caniuse-lite/data/features/sql-storage.js new file mode 100644 index 0000000..4ff6c18 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/sql-storage.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"P H Q R S T U V W X Y Z a b c d e f g h i","2":"6 7 8 9 C K L G M N O LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","129":"j k l m n o p q r","385":"0 1 2 3 4 5 s t u v w x y z"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"1":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i","2":"6 7 8 9 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","129":"j k l m n o p q r","385":"0 s t u v w x y z","897":"1 2 3 4 5"},E:{"1":"I eB J D E F A B C BD eC CD DD ED FD fC SC TC","2":"K L G GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y PD QD SC 3C RD TC","2":"0 1 2 3 4 5 6 7 8 9 F s t u v w x y z ND OD","257":"Z a b c d e f g h i j k l m n o p q r"},G:{"1":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD","2":"fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"YC I qD rD sD tD 4C uD vD","2":"KB"},J:{"1":"D A"},K:{"1":"B C SC 3C TC","2":"A","257":"H"},L:{"2":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"2":"9D AE"}},B:7,C:"Web SQL Database",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/srcset.js b/server/api/node_modules/caniuse-lite/data/features/srcset.js new file mode 100644 index 0000000..405c414 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/srcset.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","260":"C","514":"K L G"},C:{"1":"0 1 2 3 4 5 6 7 8 9 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB 9C AD","194":"iB jB kB lB mB nB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB","260":"kB lB mB nB"},E:{"2":"I eB J D BD eC CD DD","260":"E ED","1028":"F A FD fC","2052":"1C 2C MD","3076":"B C K L G SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB ND OD PD QD SC 3C RD TC","260":"BB CB DB EB"},G:{"1":"1C 2C","2":"eC SD 4C TD UD VD","260":"E WD","1028":"XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"Srcset and sizes attributes",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/stream.js b/server/api/node_modules/caniuse-lite/data/features/stream.js new file mode 100644 index 0000000..7aaa061 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/stream.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M 9C AD","129":"mB nB oB pB qB rB","420":"N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB","420":"BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B"},E:{"1":"B C K L G SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A BD eC CD DD ED FD fC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B G M N ND OD PD QD SC 3C RD","420":"C O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB TC"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD","513":"iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","1537":"bD cD dD eD fD gD hD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D","420":"A"},K:{"1":"H","2":"A B SC 3C","420":"C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","420":"I wD"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","2":"9D"}},B:4,C:"getUserMedia/Stream API",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/streams.js b/server/api/node_modules/caniuse-lite/data/features/streams.js new file mode 100644 index 0000000..2a0367a --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/streams.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A 5C","130":"B"},B:{"1":"0 1 2 3 4 5 6 7 8 9 X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","16":"C K","260":"L G","1028":"P H Q R S T U V W","5124":"M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 9C AD","5124":"i j","7172":"DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h","7746":"7B 8B ZC 9B aC AC BC CC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B","260":"2B 3B 4B 5B 6B 7B 8B","1028":"ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W"},E:{"2":"I eB J D E F BD eC CD DD ED FD","1028":"G HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","3076":"A B C K L fC SC TC GD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB ND OD PD QD SC 3C RD TC","260":"pB qB rB sB tB uB vB","1028":"wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC"},G:{"2":"E eC SD 4C TD UD VD WD XD YD","16":"ZD","1028":"aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB 5D VC WC XC 6D","2":"I wD xD","1028":"yD zD 0D fC 1D 2D 3D 4D"},Q:{"1028":"7D"},R:{"1":"8D"},S:{"2":"9D AE"}},B:1,C:"Streams",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/stricttransportsecurity.js b/server/api/node_modules/caniuse-lite/data/features/stricttransportsecurity.js new file mode 100644 index 0000000..d52e245 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/stricttransportsecurity.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A 5C","129":"B"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"D E F A B C K L G ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J BD eC CD DD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z TC","2":"F B ND OD PD QD SC 3C RD"},G:{"1":"E VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C TD UD"},H:{"2":"pD"},I:{"1":"KB uD vD","2":"YC I qD rD sD tD 4C"},J:{"1":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:6,C:"Strict Transport Security",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/style-scoped.js b/server/api/node_modules/caniuse-lite/data/features/style-scoped.js new file mode 100644 index 0000000..21f31ff --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/style-scoped.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"2":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B","2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD","322":"5B 6B 7B 8B ZC 9B"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","194":"AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C H SC 3C TC"},L:{"2":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"1":"9D","2":"AE"}},B:7,C:"Scoped attribute",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/subresource-bundling.js b/server/api/node_modules/caniuse-lite/data/features/subresource-bundling.js new file mode 100644 index 0000000..1a5b796 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/subresource-bundling.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X ND OD PD QD SC 3C RD TC"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:7,C:"Subresource Loading with Web Bundles",D:false}; diff --git a/server/api/node_modules/caniuse-lite/data/features/subresource-integrity.js b/server/api/node_modules/caniuse-lite/data/features/subresource-integrity.js new file mode 100644 index 0000000..8b51d2e --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/subresource-integrity.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M"},C:{"1":"0 1 2 3 4 5 6 7 8 9 tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB"},E:{"1":"B C K L G SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A BD eC CD DD ED FD fC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB ND OD PD QD SC 3C RD TC"},G:{"1":"cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD","194":"bD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:2,C:"Subresource Integrity",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/svg-css.js b/server/api/node_modules/caniuse-lite/data/features/svg-css.js new file mode 100644 index 0000000..6fbbca4 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/svg-css.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"F A B","2":"J D E 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","516":"C K L G"},C:{"1":"0 1 2 3 4 5 6 7 8 9 EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC 9C AD","260":"I eB J D E F A B C K L G M N O fB AB BB CB DB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","4":"I"},E:{"1":"eB J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"BD","132":"I eC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC","2":"F"},G:{"1":"E 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","132":"eC SD"},H:{"260":"pD"},I:{"1":"YC I KB tD 4C uD vD","2":"qD rD sD"},J:{"1":"D A"},K:{"1":"H","260":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:4,C:"SVG in CSS backgrounds",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/svg-filters.js b/server/api/node_modules/caniuse-lite/data/features/svg-filters.js new file mode 100644 index 0000000..427c925 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/svg-filters.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J D E F 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD","2":"6C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I","4":"eB J D"},E:{"1":"J D E F A B C K L G DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB BD eC CD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC"},G:{"1":"E UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C TD"},H:{"1":"pD"},I:{"1":"KB uD vD","2":"YC I qD rD sD tD 4C"},J:{"1":"A","2":"D"},K:{"1":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:2,C:"SVG filters",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/svg-fonts.js b/server/api/node_modules/caniuse-lite/data/features/svg-fonts.js new file mode 100644 index 0000000..0270f57 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/svg-fonts.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"F A B 5C","8":"J D E"},B:{"2":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"1":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB","2":"0 1 2 3 4 5 6 7 8 9 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","130":"oB pB qB rB sB tB uB vB wB xB yB zB 0B"},E:{"1":"I eB J D E F A B C K L G eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"BD"},F:{"1":"F B C G M N O fB AB BB CB DB EB ND OD PD QD SC 3C RD TC","2":"0 1 2 3 4 5 6 7 8 9 nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","130":"FB GB HB IB JB gB hB iB jB kB lB mB"},G:{"1":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"258":"pD"},I:{"1":"YC I tD 4C uD vD","2":"KB qD rD sD"},J:{"1":"D A"},K:{"1":"A B C SC 3C TC","2":"H"},L:{"130":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"I","130":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"130":"8D"},S:{"2":"9D AE"}},B:2,C:"SVG fonts",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/svg-fragment.js b/server/api/node_modules/caniuse-lite/data/features/svg-fragment.js new file mode 100644 index 0000000..42a4db5 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/svg-fragment.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E 5C","260":"F A B"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB","132":"mB nB oB pB qB rB sB tB uB vB wB xB yB zB"},E:{"1":"C K L G SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D F A B BD eC CD DD FD fC","132":"E ED"},F:{"1":"0 1 2 3 4 5 6 7 8 9 nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z TC","2":"G M N O fB AB BB CB","4":"B C OD PD QD SC 3C RD","16":"F ND","132":"DB EB FB GB HB IB JB gB hB iB jB kB lB mB"},G:{"1":"cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C TD UD VD XD YD ZD aD bD","132":"E WD"},H:{"1":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D","132":"A"},K:{"1":"H TC","4":"A B C SC 3C"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","132":"I"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:4,C:"SVG fragment identifiers",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/svg-html.js b/server/api/node_modules/caniuse-lite/data/features/svg-html.js new file mode 100644 index 0000000..555c80f --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/svg-html.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E 5C","388":"F A B"},B:{"4":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","260":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD","2":"6C","4":"YC"},D:{"4":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"2":"BD eC","4":"I eB J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"4":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC"},G:{"4":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"2":"YC I qD rD sD tD 4C","4":"KB uD vD"},J:{"1":"A","2":"D"},K:{"4":"A B C H SC 3C TC"},L:{"4":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"4":"UC"},P:{"4":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"4":"7D"},R:{"4":"8D"},S:{"1":"9D AE"}},B:2,C:"SVG effects for HTML",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/svg-html5.js b/server/api/node_modules/caniuse-lite/data/features/svg-html5.js new file mode 100644 index 0000000..a648e26 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/svg-html5.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"5C","8":"J D E","129":"F A B"},B:{"1":"0 1 2 3 4 5 6 7 8 9 N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","129":"C K L G M"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","8":"6C YC 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","8":"I eB J"},E:{"1":"F A B C K L G FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","8":"I eB BD eC","129":"J D E CD DD ED"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z RD TC","2":"B QD SC 3C","8":"F ND OD PD"},G:{"1":"XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","8":"eC SD 4C","129":"E TD UD VD WD"},H:{"1":"pD"},I:{"1":"KB uD vD","2":"qD rD sD","129":"YC I tD 4C"},J:{"1":"A","129":"D"},K:{"1":"C H TC","8":"A B SC 3C"},L:{"1":"KB"},M:{"1":"RC"},N:{"129":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"Inline SVG in HTML5",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/svg-img.js b/server/api/node_modules/caniuse-lite/data/features/svg-img.js new file mode 100644 index 0000000..d48b4f6 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/svg-img.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"F A B","2":"J D E 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","132":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB"},E:{"1":"F A B C K L G FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"BD","4":"eC","132":"I eB J D E CD DD ED"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC"},G:{"1":"XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","132":"E eC SD 4C TD UD VD WD"},H:{"1":"pD"},I:{"1":"KB uD vD","2":"qD rD sD","132":"YC I tD 4C"},J:{"1":"D A"},K:{"1":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"SVG in HTML img element",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/svg-smil.js b/server/api/node_modules/caniuse-lite/data/features/svg-smil.js new file mode 100644 index 0000000..7d7848f --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/svg-smil.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"5C","8":"J D E F A B"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","8":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","8":"6C YC 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","4":"I"},E:{"1":"J D E F A B C K L G DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","8":"BD eC","132":"I eB CD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC"},G:{"1":"E UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","132":"eC SD 4C TD"},H:{"2":"pD"},I:{"1":"YC I KB tD 4C uD vD","2":"qD rD sD"},J:{"1":"D A"},K:{"1":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"8":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:2,C:"SVG SMIL animation",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/svg.js b/server/api/node_modules/caniuse-lite/data/features/svg.js new file mode 100644 index 0000000..3dbd58d --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/svg.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"5C","8":"J D E","772":"F A B"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","513":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD","4":"6C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"I eB J D E F A B C K L G eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","4":"BD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC"},G:{"1":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"1":"pD"},I:{"1":"KB uD vD","2":"qD rD sD","132":"YC I tD 4C"},J:{"1":"D A"},K:{"1":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"257":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:4,C:"SVG (basic support)",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/sxg.js b/server/api/node_modules/caniuse-lite/data/features/sxg.js new file mode 100644 index 0000000..d36ab2c --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/sxg.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC","132":"JC KC"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC ND OD PD QD SC 3C RD TC"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB 1D 2D 3D 4D 5D VC WC XC 6D","2":"I wD xD yD zD 0D fC"},Q:{"1":"7D"},R:{"1":"8D"},S:{"2":"9D AE"}},B:6,C:"Signed HTTP Exchanges (SXG)",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/tabindex-attr.js b/server/api/node_modules/caniuse-lite/data/features/tabindex-attr.js new file mode 100644 index 0000000..c240163 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/tabindex-attr.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"D E F A B","16":"J 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"16":"6C YC 9C AD","129":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","16":"I eB J D E F A B C K L"},E:{"16":"I eB BD eC","257":"J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC","16":"F"},G:{"769":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"16":"pD"},I:{"16":"YC I KB qD rD sD tD 4C uD vD"},J:{"16":"D A"},K:{"1":"H","16":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"16":"A B"},O:{"1":"UC"},P:{"16":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"129":"9D AE"}},B:1,C:"tabindex global attribute",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/template-literals.js b/server/api/node_modules/caniuse-lite/data/features/template-literals.js new file mode 100644 index 0000000..050d56e --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/template-literals.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","16":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 9 kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB"},E:{"1":"A B K L G FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F BD eC CD DD ED","129":"C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB ND OD PD QD SC 3C RD TC"},G:{"1":"XD YD ZD aD bD cD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD","129":"dD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:6,C:"ES6 Template Literals (Template Strings)",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/template.js b/server/api/node_modules/caniuse-lite/data/features/template.js new file mode 100644 index 0000000..4604bc8 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/template.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C","388":"K L"},C:{"1":"0 1 2 3 4 5 6 7 8 9 CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB","132":"GB HB IB JB gB hB iB jB kB"},E:{"1":"F A B C K L G FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D BD eC CD","388":"E ED","514":"DD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ND OD PD QD SC 3C RD TC","132":"G M N O fB AB BB"},G:{"1":"XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C TD UD VD","388":"E WD"},H:{"2":"pD"},I:{"1":"KB uD vD","2":"YC I qD rD sD tD 4C"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"HTML templates",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/temporal.js b/server/api/node_modules/caniuse-lite/data/features/temporal.js new file mode 100644 index 0000000..1a9a2f7 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/temporal.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"bB cB dB","2":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB"},C:{"1":"WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB 9C AD","194":"SB TB UB VB"},D:{"1":"bB cB dB KB cC RC dC","2":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C","322":"MD"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:6,C:"Temporal",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/testfeat.js b/server/api/node_modules/caniuse-lite/data/features/testfeat.js new file mode 100644 index 0000000..e98ff30 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/testfeat.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E A B 5C","16":"F"},B:{"2":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD","16":"I eB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","16":"B C"},E:{"2":"I J BD eC CD","16":"eB D E F A B C K L G DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD 3C RD TC","16":"SC"},G:{"2":"eC SD 4C TD UD","16":"E VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"2":"YC I KB qD rD tD 4C uD vD","16":"sD"},J:{"2":"A","16":"D"},K:{"2":"A B C H SC 3C TC"},L:{"2":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:7,C:"Test feature - updated",D:false}; diff --git a/server/api/node_modules/caniuse-lite/data/features/text-decoration.js b/server/api/node_modules/caniuse-lite/data/features/text-decoration.js new file mode 100644 index 0000000..46cc980 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/text-decoration.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"2":"C K L G M N O","2052":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"2":"6C YC I eB 9C AD","1028":"0 1 2 3 4 5 6 7 8 9 mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","1060":"J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB"},D:{"2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB","226":"GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B","2052":"0 1 2 3 4 5 6 7 8 9 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"2":"I eB J D BD eC CD DD","772":"K L G TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","804":"E F A B C FD fC SC","1316":"ED"},F:{"2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB ND OD PD QD SC 3C RD TC","226":"lB mB nB oB pB qB rB sB tB","2052":"0 1 2 3 4 5 6 7 8 9 uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"2":"eC SD 4C TD UD VD","292":"E WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C SC 3C TC","2052":"H"},L:{"2052":"KB"},M:{"1028":"RC"},N:{"2":"A B"},O:{"2052":"UC"},P:{"2":"I wD xD","2052":"AB BB CB DB EB FB GB HB IB JB yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2052":"7D"},R:{"2052":"8D"},S:{"1028":"9D AE"}},B:4,C:"text-decoration styling",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/text-emphasis.js b/server/api/node_modules/caniuse-lite/data/features/text-emphasis.js new file mode 100644 index 0000000..3ad5cee --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/text-emphasis.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O","164":"P H Q R S T U V W X Y Z a b c d e f g"},C:{"1":"0 1 2 3 4 5 6 7 8 9 wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB 9C AD","322":"vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB","164":"FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g"},E:{"1":"E F A B C K L G ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J BD eC CD","164":"D DD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ND OD PD QD SC 3C RD TC","164":"G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T"},G:{"1":"E VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C TD UD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C","164":"uD vD"},J:{"2":"D","164":"A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB XC 6D","164":"I wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC"},Q:{"164":"7D"},R:{"164":"8D"},S:{"1":"9D AE"}},B:4,C:"text-emphasis styling",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/text-overflow.js b/server/api/node_modules/caniuse-lite/data/features/text-overflow.js new file mode 100644 index 0000000..9cd8763 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/text-overflow.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"J D E F A B","2":"5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","8":"6C YC I eB J 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z SC 3C RD TC","33":"F ND OD PD QD"},G:{"1":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"1":"pD"},I:{"1":"YC I KB qD rD sD tD 4C uD vD"},J:{"1":"D A"},K:{"1":"H TC","33":"A B C SC 3C"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:2,C:"CSS3 Text-overflow",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/text-size-adjust.js b/server/api/node_modules/caniuse-lite/data/features/text-size-adjust.js new file mode 100644 index 0000000..20c0f46 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/text-size-adjust.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","33":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B","258":"GB"},E:{"2":"I eB J D E F A B C K L G BD eC DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","258":"CD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 tB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB uB ND OD PD QD SC 3C RD TC"},G:{"2":"eC SD 4C","33":"E TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"33":"RC"},N:{"161":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I"},Q:{"1":"7D"},R:{"1":"8D"},S:{"2":"9D AE"}},B:7,C:"CSS text-size-adjust",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/text-stroke.js b/server/api/node_modules/caniuse-lite/data/features/text-stroke.js new file mode 100644 index 0000000..59d356d --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/text-stroke.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"2":"C K L","33":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","161":"G M N O"},C:{"2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB 9C AD","161":"0 1 2 3 4 5 6 7 8 9 zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","450":"yB"},D:{"33":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"33":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"2":"F B C ND OD PD QD SC 3C RD TC","33":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"33":"E SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","36":"eC"},H:{"2":"pD"},I:{"2":"YC","33":"I KB qD rD sD tD 4C uD vD"},J:{"33":"D A"},K:{"2":"A B C SC 3C TC","33":"H"},L:{"33":"KB"},M:{"161":"RC"},N:{"2":"A B"},O:{"33":"UC"},P:{"33":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"33":"7D"},R:{"33":"8D"},S:{"161":"9D AE"}},B:7,C:"CSS text-stroke and text-fill",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/textcontent.js b/server/api/node_modules/caniuse-lite/data/features/textcontent.js new file mode 100644 index 0000000..7bbb798 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/textcontent.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"F A B","2":"J D E 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"I eB J D E F A B C K L G eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","16":"BD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC","16":"F"},G:{"1":"E SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","16":"eC"},H:{"1":"pD"},I:{"1":"YC I KB sD tD 4C uD vD","16":"qD rD"},J:{"1":"D A"},K:{"1":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"Node.textContent",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/textencoder.js b/server/api/node_modules/caniuse-lite/data/features/textencoder.js new file mode 100644 index 0000000..0decc08 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/textencoder.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O 9C AD","132":"fB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB"},E:{"1":"B C K L G fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A BD eC CD DD ED FD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB ND OD PD QD SC 3C RD TC"},G:{"1":"aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"TextEncoder & TextDecoder",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/tls1-1.js b/server/api/node_modules/caniuse-lite/data/features/tls1-1.js new file mode 100644 index 0000000..b4ccaeb --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/tls1-1.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","2":"J D 5C","66":"E F A"},B:{"1":"C K L G M N O P H Q R S","2":"0 1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","1540":"T U V W X Y Z a b c d e f"},C:{"1":"EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC","2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD","66":"DB","129":"GC HC IC JC KC LC MC NC OC PC","388":"QC P H Q bC R S T U V W X Y Z a b c d e"},D:{"1":"CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S","2":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","1540":"T U V W X Y Z a b c d e f"},E:{"1":"D E F A B C K ED FD fC SC TC","2":"I eB J BD eC CD DD","513":"L GD","1028":"G HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC TC","2":"0 1 2 3 4 5 6 7 8 9 F B C S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD","1540":"LC MC NC OC PC QC P H Q bC R"},G:{"1":"E TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD","2":"eC SD 4C","1028":"jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"16":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"1":"A","2":"D"},K:{"1":"TC","2":"A B C H SC 3C"},L:{"2":"KB"},M:{"2":"RC"},N:{"1":"B","66":"A"},O:{"2":"UC"},P:{"1":"I wD xD yD zD 0D","2":"AB BB CB DB EB FB GB HB IB JB fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"16":"7D"},R:{"16":"8D"},S:{"1":"9D AE"}},B:7,C:"TLS 1.1",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/tls1-2.js b/server/api/node_modules/caniuse-lite/data/features/tls1-2.js new file mode 100644 index 0000000..22ecf91 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/tls1-2.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","2":"J D 5C","66":"E F A"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB 9C AD","66":"EB FB GB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB"},E:{"1":"D E F A B C K L G ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J BD eC CD DD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F G ND","66":"B C OD PD QD SC 3C RD TC"},G:{"1":"E TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C"},H:{"1":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"1":"A","2":"D"},K:{"1":"H TC","2":"A B C SC 3C"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"B","66":"A"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:6,C:"TLS 1.2",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/tls1-3.js b/server/api/node_modules/caniuse-lite/data/features/tls1-3.js new file mode 100644 index 0000000..fee929f --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/tls1-3.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 9C AD","132":"9B aC AC","450":"1B 2B 3B 4B 5B 6B 7B 8B ZC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B","706":"4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC"},E:{"1":"L G HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C BD eC CD DD ED FD fC SC","1028":"K TC GD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B ND OD PD QD SC 3C RD TC","706":"4B 5B 6B"},G:{"1":"eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I wD xD yD zD 0D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","2":"9D"}},B:6,C:"TLS 1.3",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/touch.js b/server/api/node_modules/caniuse-lite/data/features/touch.js new file mode 100644 index 0000000..bea187b --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/touch.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F 5C","8":"A B"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","578":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 O fB AB BB CB DB EB 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC 9C AD","4":"I eB J D E F A B C K L G M N","194":"FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ND OD PD QD SC 3C RD TC"},G:{"1":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"YC I KB qD rD sD tD 4C uD vD"},J:{"1":"D A"},K:{"1":"B C H SC 3C TC","2":"A"},L:{"1":"KB"},M:{"1":"RC"},N:{"8":"A","260":"B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","2":"9D"}},B:2,C:"Touch events",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/transforms2d.js b/server/api/node_modules/caniuse-lite/data/features/transforms2d.js new file mode 100644 index 0000000..12cf77b --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/transforms2d.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"5C","8":"J D E","129":"A B","161":"F"},B:{"1":"0 1 2 3 4 5 6 7 8 9 N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","129":"C K L G M"},C:{"1":"0 1 2 3 4 5 6 7 8 9 M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC","33":"I eB J D E F A B C K L G 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","33":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB"},E:{"1":"F A B C K L G FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","33":"I eB J D E BD eC CD DD ED"},F:{"1":"0 1 2 3 4 5 6 7 8 9 DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z TC","2":"F ND OD","33":"B C G M N O fB AB BB CB PD QD SC 3C RD"},G:{"1":"XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","33":"E eC SD 4C TD UD VD WD"},H:{"2":"pD"},I:{"1":"KB","33":"YC I qD rD sD tD 4C uD vD"},J:{"33":"D A"},K:{"1":"B C H SC 3C TC","2":"A"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:4,C:"CSS3 2D Transforms",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/transforms3d.js b/server/api/node_modules/caniuse-lite/data/features/transforms3d.js new file mode 100644 index 0000000..9a32571 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/transforms3d.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F 5C","132":"A B"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F 9C AD","33":"A B C K L G"},D:{"1":"0 1 2 3 4 5 6 7 8 9 mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B","33":"C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB"},E:{"1":"hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"BD eC","33":"I eB J D E CD DD ED","257":"F A B C K L G FD fC SC TC GD HD ID gC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ND OD PD QD SC 3C RD TC","33":"G M N O fB AB BB CB"},G:{"1":"hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","33":"E eC SD 4C TD UD VD WD","257":"XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC"},H:{"2":"pD"},I:{"1":"KB","2":"qD rD sD","33":"YC I tD 4C uD vD"},J:{"33":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"132":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:5,C:"CSS3 3D Transforms",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/trusted-types.js b/server/api/node_modules/caniuse-lite/data/features/trusted-types.js new file mode 100644 index 0000000..a3abd5e --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/trusted-types.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O P H Q"},C:{"1":"cC RC dC 7C 8C","2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB 9C AD","66":"cB dB KB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q"},E:{"1":"xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC ND OD PD QD SC 3C RD TC"},G:{"1":"xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB 3D 4D 5D VC WC XC 6D","2":"I wD xD yD zD 0D fC 1D 2D"},Q:{"2":"7D"},R:{"1":"8D"},S:{"2":"9D AE"}},B:7,C:"Trusted Types for DOM manipulation",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/ttf.js b/server/api/node_modules/caniuse-lite/data/features/ttf.js new file mode 100644 index 0000000..4acf29d --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/ttf.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E 5C","132":"F A B"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD","2":"6C YC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z OD PD QD SC 3C RD TC","2":"F ND"},G:{"1":"E 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD"},H:{"2":"pD"},I:{"1":"YC I KB rD sD tD 4C uD vD","2":"qD"},J:{"1":"D A"},K:{"1":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"132":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:6,C:"TTF/OTF - TrueType and OpenType font support",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/typedarrays.js b/server/api/node_modules/caniuse-lite/data/features/typedarrays.js new file mode 100644 index 0000000..c25e096 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/typedarrays.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","2":"J D E F 5C","132":"A"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J"},E:{"1":"J D E F A B C K L G DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB BD eC","260":"CD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z RD TC","2":"F B ND OD PD QD SC 3C"},G:{"1":"E TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD","260":"4C"},H:{"1":"pD"},I:{"1":"I KB tD 4C uD vD","2":"YC qD rD sD"},J:{"1":"A","2":"D"},K:{"1":"C H TC","2":"A B SC 3C"},L:{"1":"KB"},M:{"1":"RC"},N:{"132":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:6,C:"Typed Arrays",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/u2f.js b/server/api/node_modules/caniuse-lite/data/features/u2f.js new file mode 100644 index 0000000..ec04bb2 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/u2f.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"2":"0 1 2 3 4 5 6 7 8 9 C K L G M N O o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","513":"P H Q R S T U V W X Y Z a b c d e f g h i j k l m n"},C:{"1":"FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t","2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD","322":"xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC u v"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","130":"oB pB qB","513":"rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f","578":"g h i j k l m n"},E:{"1":"K L G GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C BD eC CD DD ED FD fC SC TC"},F:{"2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB rB ND OD PD QD SC 3C RD TC","513":"0 1 2 3 4 5 6 7 8 9 qB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"1":"hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C H SC 3C TC"},L:{"2":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"1":"AE","322":"9D"}},B:7,C:"FIDO U2F API",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/unhandledrejection.js b/server/api/node_modules/caniuse-lite/data/features/unhandledrejection.js new file mode 100644 index 0000000..4fd2ecc --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/unhandledrejection.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB"},E:{"1":"B C K L G SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A BD eC CD DD ED FD fC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB ND OD PD QD SC 3C RD TC"},G:{"1":"cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD","16":"bD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","2":"9D"}},B:1,C:"unhandledrejection/rejectionhandled events",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/upgradeinsecurerequests.js b/server/api/node_modules/caniuse-lite/data/features/upgradeinsecurerequests.js new file mode 100644 index 0000000..d34e989 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/upgradeinsecurerequests.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M"},C:{"1":"0 1 2 3 4 5 6 7 8 9 sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB"},E:{"1":"B C K L G fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A BD eC CD DD ED FD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB ND OD PD QD SC 3C RD TC"},G:{"1":"aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:4,C:"Upgrade Insecure Requests",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/url-scroll-to-text-fragment.js b/server/api/node_modules/caniuse-lite/data/features/url-scroll-to-text-fragment.js new file mode 100644 index 0000000..3a64ba6 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/url-scroll-to-text-fragment.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O","66":"P H Q"},C:{"1":"OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC","66":"MC NC OC PC QC P H"},E:{"1":"iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC ND OD PD QD SC 3C RD TC","66":"EC FC"},G:{"1":"iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB 3D 4D 5D VC WC XC 6D","2":"I wD xD yD zD 0D fC 1D 2D"},Q:{"2":"7D"},R:{"1":"8D"},S:{"2":"9D AE"}},B:7,C:"URL Scroll-To-Text Fragment",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/url.js b/server/api/node_modules/caniuse-lite/data/features/url.js new file mode 100644 index 0000000..78ee84d --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/url.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB","130":"DB EB FB GB HB IB JB gB hB"},E:{"1":"E F A B C K L G ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J BD eC CD DD","130":"D"},F:{"1":"0 1 2 3 4 5 6 7 8 9 fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ND OD PD QD SC 3C RD TC","130":"G M N O"},G:{"1":"E WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C TD UD","130":"VD"},H:{"2":"pD"},I:{"1":"KB vD","2":"YC I qD rD sD tD 4C","130":"uD"},J:{"2":"D","130":"A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"URL API",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/urlsearchparams.js b/server/api/node_modules/caniuse-lite/data/features/urlsearchparams.js new file mode 100644 index 0000000..192dced --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/urlsearchparams.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M"},C:{"1":"0 1 2 3 4 5 6 7 8 9 uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB 9C AD","132":"JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB"},E:{"1":"B C K L G fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A BD eC CD DD ED FD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB ND OD PD QD SC 3C RD TC"},G:{"1":"aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"URLSearchParams",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/use-strict.js b/server/api/node_modules/caniuse-lite/data/features/use-strict.js new file mode 100644 index 0000000..39c6edd --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/use-strict.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J D E F 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C"},E:{"1":"J D E F A B C K L G DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I BD eC","132":"eB CD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z RD TC","2":"F B ND OD PD QD SC 3C"},G:{"1":"E TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C"},H:{"1":"pD"},I:{"1":"YC I KB tD 4C uD vD","2":"qD rD sD"},J:{"1":"D A"},K:{"1":"C H 3C TC","2":"A B SC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:6,C:"ECMAScript 5 Strict Mode",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/user-select-none.js b/server/api/node_modules/caniuse-lite/data/features/user-select-none.js new file mode 100644 index 0000000..14fb084 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/user-select-none.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F 5C","33":"A B"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","33":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","33":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","33":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B"},E:{"33":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ND OD PD QD SC 3C RD TC","33":"G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB"},G:{"33":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"KB","33":"YC I qD rD sD tD 4C uD vD"},J:{"33":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"33":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","33":"I wD"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","33":"9D"}},B:5,C:"CSS user-select: none",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/user-timing.js b/server/api/node_modules/caniuse-lite/data/features/user-timing.js new file mode 100644 index 0000000..6fad625 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/user-timing.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J D E F 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB"},E:{"1":"B C K L G SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A BD eC CD DD ED FD fC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ND OD PD QD SC 3C RD TC"},G:{"1":"bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD"},H:{"2":"pD"},I:{"1":"KB uD vD","2":"YC I qD rD sD tD 4C"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:2,C:"User Timing API",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/variable-fonts.js b/server/api/node_modules/caniuse-lite/data/features/variable-fonts.js new file mode 100644 index 0000000..e014455 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/variable-fonts.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M"},C:{"2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 9C AD","4609":"AC BC CC DC EC FC GC HC IC","4674":"aC","5698":"9B","7490":"3B 4B 5B 6B 7B","7746":"8B ZC","8705":"0 1 2 3 4 5 6 7 8 9 JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B","4097":"EC","4290":"ZC 9B aC","6148":"AC BC CC DC"},E:{"1":"G ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A BD eC CD DD ED FD fC","4609":"B C SC TC","8193":"K L GD HD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB ND OD PD QD SC 3C RD TC","4097":"3B","6148":"zB 0B 1B 2B"},G:{"1":"fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD","4097":"bD cD dD eD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"4097":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"2":"I wD xD yD","4097":"AB BB CB DB EB FB GB HB IB JB zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","2":"9D"}},B:5,C:"Variable fonts",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/vector-effect.js b/server/api/node_modules/caniuse-lite/data/features/vector-effect.js new file mode 100644 index 0000000..c2f121d --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/vector-effect.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","16":"I eB J D E F A B C K L"},E:{"1":"J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB BD eC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z RD TC","2":"F B ND OD PD QD SC 3C"},G:{"1":"E TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","16":"eC SD 4C"},H:{"1":"pD"},I:{"1":"KB uD vD","16":"YC I qD rD sD tD 4C"},J:{"16":"D A"},K:{"1":"C H TC","2":"A B SC 3C"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:4,C:"SVG vector-effect: non-scaling-stroke",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/vibration.js b/server/api/node_modules/caniuse-lite/data/features/vibration.js new file mode 100644 index 0000000..b836bda --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/vibration.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB","2":"6C YC I eB J D E F A MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD","33":"B C K L G"},D:{"1":"0 1 2 3 4 5 6 7 8 9 gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M ND OD PD QD SC 3C RD TC"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"KB uD vD","2":"YC I qD rD sD tD 4C"},J:{"1":"A","2":"D"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:2,C:"Vibration API",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/video.js b/server/api/node_modules/caniuse-lite/data/features/video.js new file mode 100644 index 0000000..4392cdd --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/video.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"F A B","2":"J D E 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC","260":"I eB J D E F A B C K L G M N O fB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"I eB J D E F A BD eC CD DD ED FD fC","513":"B C K L G SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z PD QD SC 3C RD TC","2":"F ND OD"},G:{"1025":"E eC SD 4C TD UD VD WD XD YD ZD aD","1537":"bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"YC I KB sD tD 4C uD vD","132":"qD rD"},J:{"1":"D A"},K:{"1":"B C H SC 3C TC","2":"A"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"Video element",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/videotracks.js b/server/api/node_modules/caniuse-lite/data/features/videotracks.js new file mode 100644 index 0000000..0debc55 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/videotracks.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"C K L G M N O","322":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB 9C AD","194":"0 1 2 3 4 5 6 7 8 9 jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C"},D:{"2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB","322":"0 1 2 3 4 5 6 7 8 9 vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"D E F A B C K L G DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J BD eC CD"},F:{"2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB ND OD PD QD SC 3C RD TC","322":"0 1 2 3 4 5 6 7 8 9 iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"1":"E VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C TD UD"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C SC 3C TC","322":"H"},L:{"322":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"322":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"322":"7D"},R:{"322":"8D"},S:{"194":"9D AE"}},B:1,C:"Video Tracks",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/view-transitions.js b/server/api/node_modules/caniuse-lite/data/features/view-transitions.js new file mode 100644 index 0000000..a6b6450 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/view-transitions.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s"},C:{"1":"bB cB dB KB cC RC dC 7C 8C","2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB 9C AD","194":"aB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s"},E:{"1":"XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e ND OD PD QD SC 3C RD TC"},G:{"1":"XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"DB EB FB GB HB IB JB","2":"I AB BB CB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:5,C:"View Transitions API (single-document)",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/viewport-unit-variants.js b/server/api/node_modules/caniuse-lite/data/features/viewport-unit-variants.js new file mode 100644 index 0000000..9f4044a --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/viewport-unit-variants.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m","194":"n o p"},C:{"1":"0 1 2 3 4 5 6 7 8 9 j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h","194":"i j k l m n o p"},E:{"1":"hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y ND OD PD QD SC 3C RD TC","194":"Z a b"},G:{"1":"hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"BB CB DB EB FB GB HB IB JB","2":"I AB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:5,C:"Small, Large, and Dynamic viewport units",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/viewport-units.js b/server/api/node_modules/caniuse-lite/data/features/viewport-units.js new file mode 100644 index 0000000..47e1469 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/viewport-units.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E 5C","132":"F","260":"A B"},B:{"1":"0 1 2 3 4 5 6 7 8 9 M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","260":"C K L G"},C:{"1":"0 1 2 3 4 5 6 7 8 9 fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB","260":"AB BB CB DB EB FB"},E:{"1":"D E F A B C K L G DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB BD eC CD","260":"J"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ND OD PD QD SC 3C RD TC"},G:{"1":"E WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C TD","516":"VD","772":"UD"},H:{"2":"pD"},I:{"1":"KB uD vD","2":"YC I qD rD sD tD 4C"},J:{"1":"A","2":"D"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"260":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:4,C:"Viewport units: vw, vh, vmin, vmax",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/wai-aria.js b/server/api/node_modules/caniuse-lite/data/features/wai-aria.js new file mode 100644 index 0000000..1b01464 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/wai-aria.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D 5C","4":"E F A B"},B:{"4":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"4":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"4":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"2":"BD eC","4":"I eB J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"2":"F","4":"0 1 2 3 4 5 6 7 8 9 B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC"},G:{"4":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"4":"pD"},I:{"2":"YC I qD rD sD tD 4C","4":"KB uD vD"},J:{"2":"D A"},K:{"4":"A B C H SC 3C TC"},L:{"4":"KB"},M:{"4":"RC"},N:{"4":"A B"},O:{"4":"UC"},P:{"4":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"4":"7D"},R:{"4":"8D"},S:{"4":"9D AE"}},B:2,C:"WAI-ARIA Accessibility features",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/wake-lock.js b/server/api/node_modules/caniuse-lite/data/features/wake-lock.js new file mode 100644 index 0000000..c60a115 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/wake-lock.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O","194":"P H Q R S T U V W X"},C:{"1":"8 9 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"0 1 2 3 4 5 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z 9C AD","322":"6 7"},D:{"1":"0 1 2 3 4 5 6 7 8 9 T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC","194":"JC KC LC MC NC OC PC QC P H Q R S"},E:{"1":"lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B ND OD PD QD SC 3C RD TC","194":"8B 9B AC BC CC DC EC FC GC HC IC JC KC"},G:{"1":"lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB 4D 5D VC WC XC 6D","2":"I wD xD yD zD 0D fC 1D 2D 3D"},Q:{"2":"7D"},R:{"1":"8D"},S:{"2":"9D AE"}},B:4,C:"Screen Wake Lock API",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/wasm-bigint.js b/server/api/node_modules/caniuse-lite/data/features/wasm-bigint.js new file mode 100644 index 0000000..e6f96b2 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/wasm-bigint.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O P H Q R S"},C:{"1":"0 1 2 3 4 5 6 7 8 9 QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S"},E:{"1":"G HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C K L BD eC CD DD ED FD fC SC TC GD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC ND OD PD QD SC 3C RD TC"},G:{"1":"kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB 4D 5D VC WC XC 6D","2":"I wD xD yD zD 0D fC 1D 2D 3D"},Q:{"16":"7D"},R:{"16":"8D"},S:{"2":"9D","16":"AE"}},B:5,C:"WebAssembly BigInt to i64 conversion in JS API",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/wasm-bulk-memory.js b/server/api/node_modules/caniuse-lite/data/features/wasm-bulk-memory.js new file mode 100644 index 0000000..bd8891a --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/wasm-bulk-memory.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC"},E:{"1":"G ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C K L BD eC CD DD ED FD fC SC TC GD HD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B ND OD PD QD SC 3C RD TC"},G:{"1":"lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB 1D 2D 3D 4D 5D VC WC XC 6D","2":"I wD xD yD zD 0D fC"},Q:{"16":"7D"},R:{"16":"8D"},S:{"2":"9D","16":"AE"}},B:5,C:"WebAssembly Bulk Memory Operations",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/wasm-extended-const.js b/server/api/node_modules/caniuse-lite/data/features/wasm-extended-const.js new file mode 100644 index 0000000..78d4a6d --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/wasm-extended-const.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v"},C:{"1":"0 1 2 3 4 5 6 7 8 9 u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v"},E:{"1":"qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h ND OD PD QD SC 3C RD TC"},G:{"1":"qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"DB EB FB GB HB IB JB","2":"I AB BB CB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"16":"7D"},R:{"16":"8D"},S:{"2":"9D","16":"AE"}},B:5,C:"WebAssembly Extended Constant Expressions",D:false}; diff --git a/server/api/node_modules/caniuse-lite/data/features/wasm-gc.js b/server/api/node_modules/caniuse-lite/data/features/wasm-gc.js new file mode 100644 index 0000000..a2acc00 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/wasm-gc.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"1 2 3 4 5 6 7 8 9 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"0 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},C:{"1":"2 3 4 5 6 7 8 9 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"0 1 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z 9C AD"},D:{"1":"1 2 3 4 5 6 7 8 9 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"0 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m ND OD PD QD SC 3C RD TC"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"16":"7D"},R:{"16":"8D"},S:{"2":"9D","16":"AE"}},B:5,C:"WebAssembly Garbage Collection",D:false}; diff --git a/server/api/node_modules/caniuse-lite/data/features/wasm-multi-memory.js b/server/api/node_modules/caniuse-lite/data/features/wasm-multi-memory.js new file mode 100644 index 0000000..bc259bd --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/wasm-multi-memory.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"2 3 4 5 6 7 8 9 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"0 1 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},C:{"1":"7 8 9 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"0 1 2 3 4 5 6 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z 9C AD"},D:{"1":"1 2 3 4 5 6 7 8 9 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"0 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n ND OD PD QD SC 3C RD TC"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"16":"7D"},R:{"16":"8D"},S:{"2":"9D","16":"AE"}},B:5,C:"WebAssembly Multi-Memory",D:false}; diff --git a/server/api/node_modules/caniuse-lite/data/features/wasm-multi-value.js b/server/api/node_modules/caniuse-lite/data/features/wasm-multi-value.js new file mode 100644 index 0000000..9f3d957 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/wasm-multi-value.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O P H Q R S"},C:{"1":"0 1 2 3 4 5 6 7 8 9 QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S"},E:{"1":"L G GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C K BD eC CD DD ED FD fC SC TC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC ND OD PD QD SC 3C RD TC"},G:{"1":"gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB 4D 5D VC WC XC 6D","2":"I wD xD yD zD 0D fC 1D 2D 3D"},Q:{"16":"7D"},R:{"16":"8D"},S:{"2":"9D","16":"AE"}},B:5,C:"WebAssembly Multi-Value",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/wasm-mutable-globals.js b/server/api/node_modules/caniuse-lite/data/features/wasm-mutable-globals.js new file mode 100644 index 0000000..284cf3b --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/wasm-mutable-globals.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC"},E:{"1":"C K L G TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B BD eC CD DD ED FD fC SC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ND OD PD QD SC 3C RD TC"},G:{"1":"dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB 1D 2D 3D 4D 5D VC WC XC 6D","2":"I wD xD yD zD 0D fC"},Q:{"16":"7D"},R:{"16":"8D"},S:{"2":"9D","16":"AE"}},B:5,C:"WebAssembly Import/Export of Mutable Globals",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/wasm-nontrapping-fptoint.js b/server/api/node_modules/caniuse-lite/data/features/wasm-nontrapping-fptoint.js new file mode 100644 index 0000000..52626d9 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/wasm-nontrapping-fptoint.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC"},E:{"1":"G ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C K L BD eC CD DD ED FD fC SC TC GD HD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B ND OD PD QD SC 3C RD TC"},G:{"1":"lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB 1D 2D 3D 4D 5D VC WC XC 6D","2":"I wD xD yD zD 0D fC"},Q:{"16":"7D"},R:{"16":"8D"},S:{"2":"9D","16":"AE"}},B:5,C:"WebAssembly Non-trapping float-to-int Conversion",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/wasm-reference-types.js b/server/api/node_modules/caniuse-lite/data/features/wasm-reference-types.js new file mode 100644 index 0000000..e9faa83 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/wasm-reference-types.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O P H Q R S T U V W X Y Z a b c d"},C:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d"},E:{"1":"G ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C K L BD eC CD DD ED FD fC SC TC GD HD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q ND OD PD QD SC 3C RD TC"},G:{"1":"lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB WC XC 6D","2":"I wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC"},Q:{"16":"7D"},R:{"16":"8D"},S:{"2":"9D","16":"AE"}},B:5,C:"WebAssembly Reference Types",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/wasm-relaxed-simd.js b/server/api/node_modules/caniuse-lite/data/features/wasm-relaxed-simd.js new file mode 100644 index 0000000..050d365 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/wasm-relaxed-simd.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v"},C:{"2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f 9C AD","194":"0 1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h ND OD PD QD SC 3C RD TC"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"DB EB FB GB HB IB JB","2":"I AB BB CB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"16":"7D"},R:{"16":"8D"},S:{"2":"9D","16":"AE"}},B:5,C:"WebAssembly Relaxed SIMD",D:false}; diff --git a/server/api/node_modules/caniuse-lite/data/features/wasm-signext.js b/server/api/node_modules/caniuse-lite/data/features/wasm-signext.js new file mode 100644 index 0000000..86920c3 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/wasm-signext.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC"},E:{"1":"G HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C K L BD eC CD DD ED FD fC SC TC GD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B ND OD PD QD SC 3C RD TC"},G:{"1":"kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB 1D 2D 3D 4D 5D VC WC XC 6D","2":"I wD xD yD zD 0D fC"},Q:{"16":"7D"},R:{"16":"8D"},S:{"2":"9D","16":"AE"}},B:5,C:"WebAssembly Sign Extension Operators",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/wasm-simd.js b/server/api/node_modules/caniuse-lite/data/features/wasm-simd.js new file mode 100644 index 0000000..ac42225 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/wasm-simd.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O P H Q R S T U V W X Y"},C:{"1":"0 1 2 3 4 5 6 7 8 9 X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y"},E:{"1":"lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC ND OD PD QD SC 3C RD TC"},G:{"1":"lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB VC WC XC 6D","2":"I wD xD yD zD 0D fC 1D 2D 3D 4D 5D"},Q:{"16":"7D"},R:{"16":"8D"},S:{"2":"9D","16":"AE"}},B:5,C:"WebAssembly SIMD",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/wasm-tail-calls.js b/server/api/node_modules/caniuse-lite/data/features/wasm-tail-calls.js new file mode 100644 index 0000000..62bb1c3 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/wasm-tail-calls.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t"},C:{"1":"3 4 5 6 7 8 9 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"0 1 2 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f ND OD PD QD SC 3C RD TC"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"DB EB FB GB HB IB JB","2":"I AB BB CB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"16":"7D"},R:{"16":"8D"},S:{"2":"9D","16":"AE"}},B:5,C:"WebAssembly Tail Calls",D:false}; diff --git a/server/api/node_modules/caniuse-lite/data/features/wasm-threads.js b/server/api/node_modules/caniuse-lite/data/features/wasm-threads.js new file mode 100644 index 0000000..d278750 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/wasm-threads.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC"},E:{"1":"G HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C K L BD eC CD DD ED FD fC SC TC GD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B ND OD PD QD SC 3C RD TC"},G:{"1":"kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB 1D 2D 3D 4D 5D VC WC XC 6D","2":"I wD xD yD zD 0D fC"},Q:{"16":"7D"},R:{"16":"8D"},S:{"2":"9D","16":"AE"}},B:5,C:"WebAssembly Threads and Atomics",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/wasm.js b/server/api/node_modules/caniuse-lite/data/features/wasm.js new file mode 100644 index 0000000..c1c0799 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/wasm.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L","578":"G"},C:{"1":"0 1 2 3 4 5 6 7 8 9 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB 9C AD","194":"xB yB zB 0B 1B","1025":"2B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B","322":"1B 2B 3B 4B 5B 6B"},E:{"1":"B C K L G SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A BD eC CD DD ED FD fC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB ND OD PD QD SC 3C RD TC","322":"oB pB qB rB sB tB"},G:{"1":"bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I wD xD"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","194":"9D"}},B:6,C:"WebAssembly",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/wav.js b/server/api/node_modules/caniuse-lite/data/features/wav.js new file mode 100644 index 0000000..4874384 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/wav.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD","2":"6C YC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D"},E:{"1":"I eB J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"BD eC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z PD QD SC 3C RD TC","2":"F ND OD"},G:{"1":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"YC I KB sD tD 4C uD vD","16":"qD rD"},J:{"1":"D A"},K:{"1":"B C H SC 3C TC","16":"A"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:6,C:"Wav audio format",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/wbr-element.js b/server/api/node_modules/caniuse-lite/data/features/wbr-element.js new file mode 100644 index 0000000..65450f5 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/wbr-element.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"J D 5C","2":"E F A B"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"I eB J D E F A B C K L G eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","16":"BD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC","16":"F"},G:{"1":"E TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","16":"eC SD 4C"},H:{"1":"pD"},I:{"1":"YC I KB sD tD 4C uD vD","16":"qD rD"},J:{"1":"D A"},K:{"1":"B C H SC 3C TC","2":"A"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"wbr (word break opportunity) element",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/web-animation.js b/server/api/node_modules/caniuse-lite/data/features/web-animation.js new file mode 100644 index 0000000..3a18c99 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/web-animation.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O","260":"P H Q R"},C:{"1":"0 1 2 3 4 5 6 7 8 9 Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB 9C AD","260":"ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC","516":"xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B","580":"jB kB lB mB nB oB pB qB rB sB tB uB vB wB","2049":"NC OC PC QC P H"},D:{"1":"0 1 2 3 4 5 6 7 8 9 S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB","132":"mB nB oB","260":"pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R"},E:{"1":"G ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A BD eC CD DD ED FD fC","1090":"B C K SC TC","2049":"L GD HD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB ND OD PD QD SC 3C RD TC","132":"DB EB FB","260":"GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD","1090":"bD cD dD eD fD gD hD","2049":"iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB 4D 5D VC WC XC 6D","260":"I wD xD yD zD 0D fC 1D 2D 3D"},Q:{"260":"7D"},R:{"1":"8D"},S:{"1":"AE","516":"9D"}},B:5,C:"Web Animations API",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/web-app-manifest.js b/server/api/node_modules/caniuse-lite/data/features/web-app-manifest.js new file mode 100644 index 0000000..e6d7217 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/web-app-manifest.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M","130":"N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD","578":"OC PC QC P H Q bC R S T"},D:{"1":"0 1 2 3 4 5 6 7 8 9 pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD","4":"WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD","4":"lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","260":"cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"2":"9D AE"}},B:5,C:"Add to home screen (A2HS)",D:false}; diff --git a/server/api/node_modules/caniuse-lite/data/features/web-bluetooth.js b/server/api/node_modules/caniuse-lite/data/features/web-bluetooth.js new file mode 100644 index 0000000..43a3870 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/web-bluetooth.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"2":"C K L G M N O","1025":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB","194":"vB wB xB yB zB 0B 1B 2B","706":"3B 4B 5B","1025":"0 1 2 3 4 5 6 7 8 9 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB ND OD PD QD SC 3C RD TC","450":"mB nB oB pB","706":"qB rB sB","1025":"0 1 2 3 4 5 6 7 8 9 tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"2":"YC I qD rD sD tD 4C uD vD","1025":"KB"},J:{"2":"D A"},K:{"2":"A B C SC 3C TC","1025":"H"},L:{"1025":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"1025":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I wD"},Q:{"2":"7D"},R:{"1025":"8D"},S:{"2":"9D AE"}},B:7,C:"Web Bluetooth",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/web-serial.js b/server/api/node_modules/caniuse-lite/data/features/web-serial.js new file mode 100644 index 0000000..3301d37 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/web-serial.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O","66":"P H Q R S T U V W"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC","66":"QC P H Q R S T U V W"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC ND OD PD QD SC 3C RD TC","66":"DC EC FC GC HC IC JC KC LC MC NC"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C H SC 3C TC"},L:{"129":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:7,C:"Web Serial API",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/web-share.js b/server/api/node_modules/caniuse-lite/data/features/web-share.js new file mode 100644 index 0000000..c50243a --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/web-share.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O P H","516":"Q R S T U V W X Y Z a b c"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"1":"LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W","130":"O fB AB BB CB DB EB","1028":"0 1 2 3 4 5 6 7 8 9 X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"L G HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C BD eC CD DD ED FD fC SC","2049":"K TC GD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v ND OD PD QD SC 3C RD TC"},G:{"1":"jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD","2049":"eD fD gD hD iD"},H:{"2":"pD"},I:{"2":"YC I qD rD sD tD 4C uD","258":"KB vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I","258":"wD xD yD"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:4,C:"Web Share API",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/webauthn.js b/server/api/node_modules/caniuse-lite/data/features/webauthn.js new file mode 100644 index 0000000..4bf0acf --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/webauthn.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C","226":"K L G M N"},C:{"2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9C AD","4100":"0 1 2 3 4 5 6 7 8 9 w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","5124":"9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v"},D:{"1":"0 1 2 3 4 5 6 7 8 9 FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC"},E:{"1":"K L G GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C BD eC CD DD ED FD fC SC","322":"TC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B ND OD PD QD SC 3C RD TC"},G:{"1":"kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD","578":"gD","2052":"jD","3076":"hD iD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"8196":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB WC XC 6D","2":"I wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","2":"9D"}},B:2,C:"Web Authentication API",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/webcodecs.js b/server/api/node_modules/caniuse-lite/data/features/webcodecs.js new file mode 100644 index 0000000..23ec5ae --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/webcodecs.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O P H Q R S T U V W X Y Z a b"},C:{"1":"NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b"},E:{"1":"xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC","132":"lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P ND OD PD QD SC 3C RD TC"},G:{"1":"xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC","132":"lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB WC XC 6D","2":"I wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC"},Q:{"2":"7D"},R:{"1":"8D"},S:{"2":"9D AE"}},B:5,C:"WebCodecs API",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/webgl.js b/server/api/node_modules/caniuse-lite/data/features/webgl.js new file mode 100644 index 0000000..0c2edd5 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/webgl.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"5C","8":"J D E F A","129":"B"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","129":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC 9C AD","129":"I eB J D E F A B C K L G M N O fB AB BB CB DB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D","129":"E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB"},E:{"1":"E F A B C K L G FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB BD eC","129":"J D CD DD ED"},F:{"1":"0 1 2 3 4 5 6 7 8 9 fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B ND OD PD QD SC 3C RD","129":"C G M N O TC"},G:{"1":"E WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C TD UD VD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"1":"A","2":"D"},K:{"1":"C H TC","2":"A B SC 3C"},L:{"1":"KB"},M:{"1":"RC"},N:{"8":"A","129":"B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","129":"9D"}},B:6,C:"WebGL - 3D Canvas graphics",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/webgl2.js b/server/api/node_modules/caniuse-lite/data/features/webgl2.js new file mode 100644 index 0000000..09583a9 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/webgl2.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB 9C AD","194":"sB tB uB","450":"FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB","2242":"vB wB xB yB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB","578":"tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B"},E:{"1":"G ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A BD eC CD DD ED FD","1090":"B C K L fC SC TC GD HD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB ND OD PD QD SC 3C RD TC"},G:{"1":"lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD","1090":"dD eD fD gD hD iD jD kD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I wD xD"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","2242":"9D"}},B:6,C:"WebGL 2.0",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/webgpu.js b/server/api/node_modules/caniuse-lite/data/features/webgpu.js new file mode 100644 index 0000000..fa3851b --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/webgpu.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O P","578":"H Q R S T U V W X Y Z a b","1602":"c d e f g h i j k l m n o p q r s t u"},C:{"2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC 9C AD","194":"0 1 2 3 4 5 6 7 8 9 BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB","4292":"YB ZB aB bB","16580":"cB dB KB cC RC dC 7C 8C"},D:{"2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P","578":"H Q R S T U V W X Y Z a b","1602":"c d e f g h i j k l m n o p q r s t u","2049":"0 1 2 3 4 5 6 7 8 9 v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"2":"I eB J D E F A B G BD eC CD DD ED FD fC ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC","322":"C K L SC TC GD HD qC rC LD XC sC tC uC vC wC","8452":"xC yC zC 0C 1C 2C MD"},F:{"2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC ND OD PD QD SC 3C RD TC","578":"LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g","2049":"0 1 2 3 4 5 6 7 8 9 h i j k l m n o p q r s t u v w x y z"},G:{"1":"xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC","322":"qC rC oD XC sC tC uC vC wC"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C SC 3C TC","2049":"H"},L:{"1":"KB"},M:{"194":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"EB FB GB HB IB JB","2":"I AB BB CB DB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D","194":"AE"}},B:5,C:"WebGPU",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/webhid.js b/server/api/node_modules/caniuse-lite/data/features/webhid.js new file mode 100644 index 0000000..0c9f1d3 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/webhid.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O","66":"P H Q R S T U V W"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC","66":"QC P H Q R S T U V W"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC ND OD PD QD SC 3C RD TC","66":"EC FC GC HC IC JC KC LC MC NC"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C H SC 3C TC"},L:{"2":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:7,C:"WebHID API",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/webkit-user-drag.js b/server/api/node_modules/caniuse-lite/data/features/webkit-user-drag.js new file mode 100644 index 0000000..ee667e7 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/webkit-user-drag.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"2":"C K L G M N O","132":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"16":"I eB J D E F A B C K L G","132":"0 1 2 3 4 5 6 7 8 9 M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"2":"F B C ND OD PD QD SC 3C RD TC","132":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C SC 3C TC","132":"H"},L:{"2":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:7,C:"CSS -webkit-user-drag property",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/webm.js b/server/api/node_modules/caniuse-lite/data/features/webm.js new file mode 100644 index 0000000..3d2bad6 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/webm.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E 5C","520":"F A B"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","8":"C K","388":"L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC 9C AD","132":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB","132":"J D E F A B C K L G M N O fB AB BB CB DB EB"},E:{"2":"BD","8":"I eB eC CD","520":"J D E F A B C DD ED FD fC SC","16385":"VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","17412":"K TC GD","23556":"L","24580":"G HD ID gC hC UC JD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F ND OD PD","132":"B C G QD SC 3C RD TC"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD","16385":"qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","17412":"eD fD gD hD iD","19460":"jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC"},H:{"2":"pD"},I:{"1":"KB","2":"qD rD","132":"YC I sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"8":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","132":"I"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:6,C:"WebM video format",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/webnfc.js b/server/api/node_modules/caniuse-lite/data/features/webnfc.js new file mode 100644 index 0000000..7965189 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/webnfc.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"2":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","450":"H Q R S T U V W"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","450":"H Q R S T U V W"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC","450":"FC GC HC IC JC KC LC MC NC"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C H SC 3C TC"},L:{"257":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"1":"8D"},S:{"2":"9D AE"}},B:7,C:"Web NFC",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/webp.js b/server/api/node_modules/caniuse-lite/data/features/webp.js new file mode 100644 index 0000000..b108c19 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/webp.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N"},C:{"1":"0 1 2 3 4 5 6 7 8 9 DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC 9C AD","8":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB","8":"J D E","132":"F A B C K L G M N O fB AB BB CB","260":"DB EB FB GB HB IB JB gB hB"},E:{"1":"VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F A B C K BD eC CD DD ED FD fC SC TC GD","516":"L G HD ID gC hC UC JD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F ND OD PD","8":"B QD","132":"SC 3C RD","260":"C G M N O TC"},G:{"1":"jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD"},H:{"1":"pD"},I:{"1":"KB 4C uD vD","2":"YC qD rD sD","132":"I tD"},J:{"2":"D A"},K:{"1":"C H SC 3C TC","2":"A","132":"B"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","8":"9D"}},B:6,C:"WebP image format",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/websockets.js b/server/api/node_modules/caniuse-lite/data/features/websockets.js new file mode 100644 index 0000000..25891df --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/websockets.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J D E F 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC 9C AD","132":"I eB","292":"J D E F A"},D:{"1":"0 1 2 3 4 5 6 7 8 9 M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","132":"I eB J D E F A B C K L","260":"G"},E:{"1":"D E F A B C K L G ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I BD eC","132":"eB CD","260":"J DD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z TC","2":"F ND OD PD QD","132":"B C SC 3C RD"},G:{"1":"E UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD","132":"4C TD"},H:{"2":"pD"},I:{"1":"KB uD vD","2":"YC I qD rD sD tD 4C"},J:{"1":"A","129":"D"},K:{"1":"H TC","2":"A","132":"B C SC 3C"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"Web Sockets",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/webtransport.js b/server/api/node_modules/caniuse-lite/data/features/webtransport.js new file mode 100644 index 0000000..cecf4b0 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/webtransport.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O P H Q R S T U V W X Y Z a b c d e f"},C:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y d e","66":"Z a b c"},E:{"1":"1C 2C MD","2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC ND OD PD QD SC 3C RD TC"},G:{"1":"1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB XC 6D","2":"I wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC"},Q:{"2":"7D"},R:{"1":"8D"},S:{"2":"9D AE"}},B:5,C:"WebTransport",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/webusb.js b/server/api/node_modules/caniuse-lite/data/features/webusb.js new file mode 100644 index 0000000..df5a38c --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/webusb.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B","66":"4B 5B 6B 7B 8B ZC 9B"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB ND OD PD QD SC 3C RD TC","66":"rB sB tB uB vB wB xB"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","2":"I wD xD yD"},Q:{"2":"7D"},R:{"1":"8D"},S:{"2":"9D AE"}},B:7,C:"WebUSB",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/webvr.js b/server/api/node_modules/caniuse-lite/data/features/webvr.js new file mode 100644 index 0000000..c0b113e --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/webvr.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"2":"0 1 2 3 4 5 6 7 8 9 C K L H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","66":"P","257":"G M N O"},C:{"2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 9C AD","129":"0 1 2 3 4 5 6 7 8 9 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","194":"4B"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","66":"7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC","66":"uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C H SC 3C TC"},L:{"2":"KB"},M:{"2":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"513":"I","516":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:7,C:"WebVR API",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/webvtt.js b/server/api/node_modules/caniuse-lite/data/features/webvtt.js new file mode 100644 index 0000000..f2908e2 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/webvtt.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J D E F 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB 9C AD","66":"EB FB GB HB IB JB gB","129":"hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B","257":"0 1 2 3 4 5 6 7 8 9 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB"},E:{"1":"J D E F A B C K L G DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB BD eC CD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ND OD PD QD SC 3C RD TC"},G:{"1":"E VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C TD UD"},H:{"2":"pD"},I:{"1":"KB uD vD","2":"YC I qD rD sD tD 4C"},J:{"1":"A","2":"D"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"B","2":"A"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"129":"9D AE"}},B:4,C:"WebVTT - Web Video Text Tracks",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/webworkers.js b/server/api/node_modules/caniuse-lite/data/features/webworkers.js new file mode 100644 index 0000000..ef651c2 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/webworkers.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"5C","8":"J D E F"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD","8":"6C YC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"I eB J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","8":"BD eC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z QD SC 3C RD TC","2":"F ND","8":"OD PD"},G:{"1":"E TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C"},H:{"2":"pD"},I:{"1":"KB qD uD vD","2":"YC I rD sD tD 4C"},J:{"1":"D A"},K:{"1":"B C H SC 3C TC","8":"A"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"Web Workers",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/webxr.js b/server/api/node_modules/caniuse-lite/data/features/webxr.js new file mode 100644 index 0000000..5f4852b --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/webxr.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"2":"C K L G M N O","132":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC 9C AD","322":"0 1 2 3 4 5 6 7 8 9 PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C"},D:{"2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC","66":"DC EC FC GC HC IC JC KC LC MC NC OC PC QC","132":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"2":"I eB J D E F A B C BD eC CD DD ED FD fC SC TC","578":"K L G GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B ND OD PD QD SC 3C RD TC","66":"2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC","132":"0 1 2 3 4 5 6 7 8 9 EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"},G:{"2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"2":"pD"},I:{"2":"YC I KB qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C SC 3C TC","132":"H"},L:{"132":"KB"},M:{"322":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I wD xD yD zD 0D fC 1D","132":"AB BB CB DB EB FB GB HB IB JB 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D","322":"AE"}},B:4,C:"WebXR Device API",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/will-change.js b/server/api/node_modules/caniuse-lite/data/features/will-change.js new file mode 100644 index 0000000..d8942c1 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/will-change.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB 9C AD","194":"JB gB hB iB jB kB lB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB"},E:{"1":"A B C K L G FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F BD eC CD DD ED"},F:{"1":"0 1 2 3 4 5 6 7 8 9 EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB ND OD PD QD SC 3C RD TC"},G:{"1":"YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:4,C:"CSS will-change property",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/woff.js b/server/api/node_modules/caniuse-lite/data/features/woff.js new file mode 100644 index 0000000..eb70003 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/woff.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"F A B","2":"J D E 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C AD","2":"6C YC 9C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I"},E:{"1":"J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB BD eC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z SC 3C RD TC","2":"F B ND OD PD QD"},G:{"1":"E TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C"},H:{"2":"pD"},I:{"1":"KB uD vD","2":"YC qD rD sD tD 4C","130":"I"},J:{"1":"D A"},K:{"1":"B C H SC 3C TC","2":"A"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:2,C:"WOFF - Web Open Font Format",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/woff2.js b/server/api/node_modules/caniuse-lite/data/features/woff2.js new file mode 100644 index 0000000..9dcef2f --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/woff2.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K"},C:{"1":"0 1 2 3 4 5 6 7 8 9 pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB"},E:{"1":"C K L G TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I eB J D E F BD eC CD DD ED FD","132":"A B fC SC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C G M N O fB AB BB CB ND OD PD QD SC 3C RD TC"},G:{"1":"ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:2,C:"WOFF 2.0 - Web Open Font Format",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/word-break.js b/server/api/node_modules/caniuse-lite/data/features/word-break.js new file mode 100644 index 0000000..5a503f8 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/word-break.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC I eB J D E F A B C K L 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","4":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB"},E:{"1":"F A B C K L G FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","4":"I eB J D E BD eC CD DD ED"},F:{"1":"0 1 2 3 4 5 6 7 8 9 hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B C ND OD PD QD SC 3C RD TC","4":"G M N O fB AB BB CB DB EB FB GB HB IB JB gB"},G:{"1":"XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","4":"E eC SD 4C TD UD VD WD"},H:{"2":"pD"},I:{"1":"KB","4":"YC I qD rD sD tD 4C uD vD"},J:{"4":"D A"},K:{"1":"H","2":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:4,C:"CSS3 word-break",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/wordwrap.js b/server/api/node_modules/caniuse-lite/data/features/wordwrap.js new file mode 100644 index 0000000..7293073 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/wordwrap.js @@ -0,0 +1 @@ +module.exports={A:{A:{"4":"J D E F A B 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","4":"C K L G M N"},C:{"1":"0 1 2 3 4 5 6 7 8 9 zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC","4":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","4":"I eB J D E F A B C K L G M N O fB AB BB CB"},E:{"1":"D E F A B C K L G DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","4":"I eB J BD eC CD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z TC","2":"F ND OD","4":"B C PD QD SC 3C RD"},G:{"1":"E VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","4":"eC SD 4C TD UD"},H:{"4":"pD"},I:{"1":"KB uD vD","4":"YC I qD rD sD tD 4C"},J:{"1":"A","4":"D"},K:{"1":"H","4":"A B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"4":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"AE","4":"9D"}},B:4,C:"CSS3 Overflow-wrap",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/x-doc-messaging.js b/server/api/node_modules/caniuse-lite/data/features/x-doc-messaging.js new file mode 100644 index 0000000..7dfb5aa --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/x-doc-messaging.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D 5C","132":"E F","260":"A B"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD","2":"6C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"I eB J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"BD eC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC","2":"F"},G:{"1":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"1":"pD"},I:{"1":"YC I KB qD rD sD tD 4C uD vD"},J:{"1":"D A"},K:{"1":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"4":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"Cross-document messaging",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/x-frame-options.js b/server/api/node_modules/caniuse-lite/data/features/x-frame-options.js new file mode 100644 index 0000000..e93b3c3 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/x-frame-options.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"E F A B","2":"J D 5C"},B:{"1":"C K L G M N O","4":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC","4":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","16":"6C YC 9C AD"},D:{"4":"0 1 2 3 4 5 6 7 8 9 GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","16":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB"},E:{"4":"J D E F A B C K L G CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","16":"I eB BD eC"},F:{"4":"0 1 2 3 4 5 6 7 8 9 C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z RD TC","16":"F B ND OD PD QD SC 3C"},G:{"4":"E VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","16":"eC SD 4C TD UD"},H:{"2":"pD"},I:{"4":"I KB tD 4C uD vD","16":"YC qD rD sD"},J:{"4":"D A"},K:{"4":"H TC","16":"A B C SC 3C"},L:{"4":"KB"},M:{"4":"RC"},N:{"1":"A B"},O:{"4":"UC"},P:{"4":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"4":"7D"},R:{"4":"8D"},S:{"1":"9D","4":"AE"}},B:6,C:"X-Frame-Options HTTP header",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/xhr2.js b/server/api/node_modules/caniuse-lite/data/features/xhr2.js new file mode 100644 index 0000000..1de07d1 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/xhr2.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F 5C","1156":"A B"},B:{"1":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","1028":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"6C YC","1028":"C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB","1284":"A B","1412":"J D E F","1924":"I eB 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","16":"I eB J","1028":"hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB","1156":"JB gB","1412":"D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB"},E:{"1":"C K L G SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","2":"I BD eC","1028":"E F A B ED FD fC","1156":"D DD","1412":"eB J CD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","2":"F B ND OD PD QD SC 3C RD","132":"G M N","1028":"C O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB TC"},G:{"1":"bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","2":"eC SD 4C","1028":"E WD XD YD ZD aD","1156":"VD","1412":"TD UD"},H:{"2":"pD"},I:{"1":"KB","2":"qD rD sD","1028":"vD","1412":"uD","1924":"YC I tD 4C"},J:{"1156":"A","1412":"D"},K:{"1":"H","2":"A B SC 3C","1028":"C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1156":"A B"},O:{"1":"UC"},P:{"1":"AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D","1028":"I"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"XMLHttpRequest advanced features",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/xhtml.js b/server/api/node_modules/caniuse-lite/data/features/xhtml.js new file mode 100644 index 0000000..df172d3 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/xhtml.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"F A B","2":"J D E 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"1":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC"},G:{"1":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"1":"pD"},I:{"1":"YC I KB qD rD sD tD 4C uD vD"},J:{"1":"D A"},K:{"1":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:1,C:"XHTML served as application/xhtml+xml",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/xhtmlsmil.js b/server/api/node_modules/caniuse-lite/data/features/xhtmlsmil.js new file mode 100644 index 0000000..ad0b04d --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/xhtmlsmil.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"F A B 5C","4":"J D E"},B:{"2":"C K L G M N O","8":"0 1 2 3 4 5 6 7 8 9 P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"8":"0 1 2 3 4 5 6 7 8 9 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C 9C AD"},D:{"8":"0 1 2 3 4 5 6 7 8 9 I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC"},E:{"8":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD"},F:{"8":"0 1 2 3 4 5 6 7 8 9 F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ND OD PD QD SC 3C RD TC"},G:{"8":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C"},H:{"8":"pD"},I:{"8":"YC I KB qD rD sD tD 4C uD vD"},J:{"8":"D A"},K:{"8":"A B C H SC 3C TC"},L:{"8":"KB"},M:{"8":"RC"},N:{"2":"A B"},O:{"8":"UC"},P:{"8":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"8":"7D"},R:{"8":"8D"},S:{"8":"9D AE"}},B:7,C:"XHTML+SMIL animation",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/xml-serializer.js b/server/api/node_modules/caniuse-lite/data/features/xml-serializer.js new file mode 100644 index 0000000..35cfdc6 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/xml-serializer.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","260":"J D E F 5C"},B:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},C:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","132":"B","260":"6C YC I eB J D 9C AD","516":"E F A"},D:{"1":"0 1 2 3 4 5 6 7 8 9 hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","132":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB"},E:{"1":"E F A B C K L G ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC xC yC zC 0C 1C 2C MD","132":"I eB J D BD eC CD DD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","16":"F ND","132":"B C G M N OD PD QD SC 3C RD TC"},G:{"1":"E WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC xC yC zC 0C 1C 2C","132":"eC SD 4C TD UD VD"},H:{"132":"pD"},I:{"1":"KB uD vD","132":"YC I qD rD sD tD 4C"},J:{"132":"D A"},K:{"1":"H","16":"A","132":"B C SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"1":"7D"},R:{"1":"8D"},S:{"1":"9D AE"}},B:4,C:"DOM Parsing and Serialization",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/features/zstd.js b/server/api/node_modules/caniuse-lite/data/features/zstd.js new file mode 100644 index 0000000..d732432 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/features/zstd.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B 5C"},B:{"1":"5 6 7 8 9 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2":"C K L G M N O P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","194":"0 1 2 3 4"},C:{"1":"8 9 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC 7C 8C","2":"0 1 2 3 4 5 6 7 6C YC I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z 9C AD"},D:{"1":"5 6 7 8 9 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB KB cC RC dC","2":"I eB J D E F A B C K L G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B ZC 9B aC AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z","194":"0 1 2 3 4"},E:{"2":"I eB J D E F A B C K L G BD eC CD DD ED FD fC SC TC GD HD ID gC hC UC JD VC iC jC kC lC mC KD WC nC oC pC qC rC LD XC sC tC uC vC wC","260":"xC yC zC","516":"0C 1C 2C MD"},F:{"1":"0 1 2 3 4 5 6 7 8 9 r s t u v w x y z","2":"F B C G M N O fB AB BB CB DB EB FB GB HB IB JB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC P H Q bC R S T U V W X Y Z a b c d e f g h i j k l m n o p q ND OD PD QD SC 3C RD TC"},G:{"1":"0C 1C 2C","2":"E eC SD 4C TD UD VD WD XD YD ZD aD bD cD dD eD fD gD hD iD jD kD lD gC hC UC mD VC iC jC kC lC mC nD WC nC oC pC qC rC oD XC sC tC uC vC wC","260":"xC yC zC"},H:{"2":"pD"},I:{"1":"KB","2":"YC I qD rD sD tD 4C uD vD"},J:{"2":"D A"},K:{"2":"A B C H SC 3C TC"},L:{"1":"KB"},M:{"1":"RC"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I AB BB CB DB EB FB GB HB IB JB wD xD yD zD 0D fC 1D 2D 3D 4D 5D VC WC XC 6D"},Q:{"2":"7D"},R:{"2":"8D"},S:{"2":"9D AE"}},B:6,C:"zstd (Zstandard) content-encoding",D:true}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/AD.js b/server/api/node_modules/caniuse-lite/data/regions/AD.js new file mode 100644 index 0000000..d60769b --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/AD.js @@ -0,0 +1 @@ +module.exports={C:{"52":0.00478,"114":0.13392,"115":0.04305,"132":0.00957,"133":0.00478,"134":0.00957,"135":0.01435,"136":0.00478,"139":0.02392,"140":0.08131,"143":0.00478,"145":0.00957,"146":0.01435,"147":0.06218,"148":2.03756,"149":0.37307,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 137 138 141 142 144 150 151 152 3.5 3.6"},D:{"75":0.00478,"87":0.00957,"91":0.00478,"97":0.00478,"98":0.00478,"103":0.0287,"105":0.00957,"109":0.07653,"111":0.00957,"112":0.00478,"114":0.08131,"116":0.20089,"118":0.00478,"120":0.00478,"121":0.0287,"122":0.03348,"123":0.02392,"124":0.0287,"126":0.0287,"128":0.05261,"129":0.07175,"130":0.01435,"131":0.09088,"132":0.00478,"133":0.00478,"134":0.00478,"135":0.00957,"136":0.00957,"137":0.00957,"138":0.28698,"139":0.05261,"140":0.0574,"141":0.02392,"142":0.0574,"143":0.33003,"144":0.73658,"145":9.00161,"146":6.47618,"147":0.00957,"148":0.00478,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 76 77 78 79 80 81 83 84 85 86 88 89 90 92 93 94 95 96 99 100 101 102 104 106 107 108 110 113 115 117 119 125 127 149 150"},F:{"89":0.01435,"95":0.00957,"96":0.04783,"101":0.00478,"104":0.01435,"114":0.00478,"120":0.00478,"125":0.00478,"126":0.00957,"127":0.59788,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 90 91 92 93 94 97 98 99 100 102 103 105 106 107 108 109 110 111 112 113 115 116 117 118 119 121 122 123 124 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.01435,"109":0.00478,"114":0.01435,"119":0.00957,"131":0.03348,"133":0.00478,"135":0.02392,"136":0.00478,"139":0.0287,"141":0.00478,"142":0.02392,"143":0.02392,"144":0.09088,"145":1.84146,"146":1.55448,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 120 121 122 123 124 125 126 127 128 129 130 132 134 137 138 140"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 11.1 26.5 TP","10.1":0.00478,"12.1":0.00478,"13.1":0.00478,"14.1":0.03348,"15.1":0.02392,"15.2-15.3":0.05261,"15.4":0.01435,"15.5":0.0287,"15.6":0.33003,"16.0":0.00478,"16.1":0.03348,"16.2":0.03348,"16.3":0.10523,"16.4":0.01913,"16.5":0.04783,"16.6":0.68397,"17.0":0.00478,"17.1":0.99965,"17.2":0.06218,"17.3":0.07175,"17.4":0.11001,"17.5":0.24872,"17.6":1.36316,"18.0":0.03348,"18.1":0.06218,"18.2":0.0574,"18.3":0.33959,"18.4":0.05261,"18.5-18.7":0.26307,"26.0":0.15784,"26.1":0.29176,"26.2":1.29141,"26.3":7.29408,"26.4":0.39699},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00354,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00708,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.01769,"11.0-11.2":0.44581,"11.3-11.4":0.01061,"12.0-12.1":0,"12.2-12.5":0.13799,"13.0-13.1":0,"13.2":0.05307,"13.3":0.00708,"13.4-13.7":0.01769,"14.0-14.4":0.03184,"14.5-14.8":0.03184,"15.0-15.1":0.046,"15.2-15.3":0.02831,"15.4":0.03538,"15.5":0.03892,"15.6-15.8":0.62626,"16.0":0.06369,"16.1":0.12384,"16.2":0.07076,"16.3":0.12737,"16.4":0.02831,"16.5":0.05307,"16.6-16.7":0.87039,"17.0":0.03892,"17.1":0.06369,"17.2":0.05661,"17.3":0.07784,"17.4":0.12737,"17.5":0.2406,"17.6-17.7":0.61918,"18.0":0.13445,"18.1":0.27598,"18.2":0.14506,"18.3":0.4635,"18.4":0.2229,"18.5-18.7":7.09049,"26.0":0.44227,"26.1":0.67225,"26.2":3.95567,"26.3":17.18489,"26.4":0.64395,"26.5":0},P:{"27":0.01043,"28":0.01043,"29":1.05383,_:"4 20 21 22 23 24 25 26 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.03127,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.11477,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.00957,_:"6 7 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.55822},Q:{_:"14.9"},O:{_:"0"},H:{all:0},L:{"0":17.33696}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/AE.js b/server/api/node_modules/caniuse-lite/data/regions/AE.js new file mode 100644 index 0000000..f7038b3 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/AE.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.00293,"115":0.00879,"127":0.00293,"132":0.00586,"136":0.00293,"140":0.00586,"145":0.00293,"146":0.00293,"147":0.02929,"148":0.29583,"149":0.04686,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 128 129 130 131 133 134 135 137 138 139 141 142 143 144 150 151 152 3.5 3.6"},D:{"39":0.00293,"40":0.00293,"41":0.00293,"42":0.00293,"43":0.00293,"44":0.00293,"45":0.00293,"46":0.00293,"47":0.00293,"48":0.00293,"49":0.00293,"50":0.00293,"51":0.00293,"52":0.00293,"53":0.00293,"54":0.00293,"55":0.00293,"56":0.00293,"57":0.00293,"58":0.00293,"59":0.00293,"60":0.00293,"68":0.00293,"69":0.00293,"73":0.00293,"75":0.00586,"76":0.00879,"83":0.00293,"87":0.00293,"91":0.00293,"93":0.01172,"98":0.00293,"101":0.00293,"103":0.12009,"104":0.04394,"105":0.04394,"106":0.04394,"107":0.04394,"108":0.04394,"109":0.17574,"110":0.04979,"111":0.04394,"112":0.1113,"114":0.01172,"116":0.12009,"117":0.04101,"118":0.00293,"119":0.00586,"120":0.04686,"121":0.00293,"122":0.01757,"123":0.00586,"124":0.04686,"125":0.00586,"126":0.0205,"127":0.00586,"128":0.01757,"129":0.00586,"130":0.01172,"131":0.10837,"132":0.01465,"133":0.09959,"134":0.01465,"135":0.35148,"136":0.01465,"137":0.02929,"138":0.14352,"139":0.15231,"140":0.05565,"141":0.0205,"142":0.06444,"143":0.14352,"144":0.43642,"145":5.89022,"146":4.77134,"147":0.0205,"148":0.00293,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 61 62 63 64 65 66 67 70 71 72 74 77 78 79 80 81 84 85 86 88 89 90 92 94 95 96 97 99 100 102 113 115 149 150"},F:{"45":0.00293,"46":0.00293,"93":0.00293,"94":0.00586,"95":0.07908,"96":0.12595,"113":0.00293,"114":0.00293,"126":0.01757,"127":0.24897,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 115 116 117 118 119 120 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00293,"92":0.00293,"109":0.00586,"114":0.00293,"128":0.00293,"131":0.00293,"132":0.00293,"133":0.01757,"134":0.00293,"135":0.00293,"136":0.00586,"137":0.00293,"138":0.00293,"139":0.00586,"140":0.00586,"141":0.00293,"142":0.00586,"143":0.0205,"144":0.04979,"145":0.96071,"146":0.91971,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 122 123 124 125 126 127 129 130"},E:{"13":0.00293,"14":0.00293,_:"4 5 6 7 8 9 10 11 12 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.5 26.5 TP","5.1":0.00293,"13.1":0.00586,"14.1":0.00586,"15.4":0.00293,"15.6":0.04101,"16.0":0.00293,"16.1":0.00586,"16.2":0.00293,"16.3":0.00586,"16.4":0.00293,"16.5":0.00879,"16.6":0.04979,"17.0":0.00586,"17.1":0.03808,"17.2":0.00293,"17.3":0.00586,"17.4":0.01172,"17.5":0.01757,"17.6":0.06151,"18.0":0.00879,"18.1":0.02636,"18.2":0.00586,"18.3":0.01757,"18.4":0.00879,"18.5-18.7":0.04101,"26.0":0.03808,"26.1":0.04101,"26.2":0.17281,"26.3":0.74397,"26.4":0.05565},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0011,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.0022,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00551,"11.0-11.2":0.13881,"11.3-11.4":0.0033,"12.0-12.1":0,"12.2-12.5":0.04296,"13.0-13.1":0,"13.2":0.01652,"13.3":0.0022,"13.4-13.7":0.00551,"14.0-14.4":0.00991,"14.5-14.8":0.00991,"15.0-15.1":0.01432,"15.2-15.3":0.00881,"15.4":0.01102,"15.5":0.01212,"15.6-15.8":0.19499,"16.0":0.01983,"16.1":0.03856,"16.2":0.02203,"16.3":0.03966,"16.4":0.00881,"16.5":0.01652,"16.6-16.7":0.27101,"17.0":0.01212,"17.1":0.01983,"17.2":0.01763,"17.3":0.02424,"17.4":0.03966,"17.5":0.07491,"17.6-17.7":0.19279,"18.0":0.04186,"18.1":0.08593,"18.2":0.04517,"18.3":0.14432,"18.4":0.0694,"18.5-18.7":2.20773,"26.0":0.13771,"26.1":0.20932,"26.2":1.23166,"26.3":5.35077,"26.4":0.2005,"26.5":0},P:{"22":0.01022,"25":0.01022,"26":0.03066,"27":0.02044,"28":0.05109,"29":1.46128,_:"4 20 21 23 24 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.03532,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":1.03237,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.01172,_:"6 7 8 9 10 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.09899},Q:{_:"14.9"},O:{"0":2.43242},H:{all:0},L:{"0":64.64504}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/AF.js b/server/api/node_modules/caniuse-lite/data/regions/AF.js new file mode 100644 index 0000000..5038b35 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/AF.js @@ -0,0 +1 @@ +module.exports={C:{"47":0.0014,"48":0.00702,"57":0.00281,"58":0.00281,"94":0.0014,"99":0.01684,"112":0.0014,"115":0.06314,"117":0.0014,"127":0.00281,"128":0.00421,"134":0.0014,"135":0.0014,"136":0.0014,"140":0.00982,"142":0.0014,"144":0.0014,"145":0.0014,"146":0.00421,"147":0.01122,"148":0.2343,"149":0.03648,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 49 50 51 52 53 54 55 56 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 95 96 97 98 100 101 102 103 104 105 106 107 108 109 110 111 113 114 116 118 119 120 121 122 123 124 125 126 129 130 131 132 133 137 138 139 141 143 150 151 152 3.5 3.6"},D:{"49":0.00561,"50":0.00702,"52":0.00281,"54":0.00281,"55":0.0014,"56":0.00281,"57":0.0014,"58":0.0014,"61":0.0014,"62":0.00702,"63":0.0014,"64":0.00281,"65":0.0014,"67":0.0014,"68":0.0014,"69":0.0014,"70":0.01122,"71":0.00561,"72":0.00281,"73":0.00281,"77":0.00281,"78":0.02245,"79":0.03928,"80":0.0014,"81":0.01263,"83":0.0014,"86":0.01403,"87":0.00561,"89":0.0014,"90":0.0014,"93":0.00281,"95":0.00281,"96":0.00421,"97":0.00281,"99":0.0014,"101":0.0014,"103":0.00842,"104":0.0014,"105":0.0014,"106":0.00561,"107":0.00281,"108":0.00702,"109":0.49807,"110":0.0014,"111":0.00281,"112":0.0014,"113":0.0014,"114":0.00281,"115":0.00421,"116":0.00982,"117":0.00561,"119":0.01263,"120":0.00982,"121":0.00281,"122":0.00421,"123":0.00281,"124":0.0014,"125":0.0014,"126":0.01122,"127":0.00281,"128":0.0014,"129":0.00842,"130":0.00982,"131":0.02385,"132":0.00982,"133":0.00281,"134":0.00561,"135":0.00702,"136":0.00702,"137":0.00561,"138":0.07997,"139":0.01403,"140":0.00561,"141":0.01964,"142":0.02666,"143":0.07296,"144":0.09961,"145":2.30513,"146":1.7748,"147":0.00281,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 51 53 59 60 66 74 75 76 84 85 88 91 92 94 98 100 102 118 148 149 150"},F:{"36":0.0014,"79":0.0014,"91":0.0014,"95":0.02245,"96":0.00561,"118":0.0014,"122":0.0014,"124":0.0014,"126":0.00842,"127":0.10242,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 85 86 87 88 89 90 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 119 120 121 123 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.0014,"16":0.01403,"17":0.0014,"18":0.02245,"84":0.00281,"88":0.0014,"89":0.0014,"90":0.00842,"92":0.04911,"100":0.00561,"109":0.01964,"114":0.00281,"122":0.00702,"125":0.0014,"130":0.0014,"131":0.0014,"132":0.0014,"134":0.0014,"135":0.00281,"136":0.0014,"138":0.00281,"139":0.0014,"140":0.00982,"141":0.0014,"142":0.00421,"143":0.01263,"144":0.02806,"145":0.63837,"146":0.42792,_:"12 13 15 79 80 81 83 85 86 87 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 123 124 126 127 128 129 133 137"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.2-15.3 15.4 17.0 26.5 TP","5.1":0.00561,"15.1":0.0014,"15.5":0.00281,"15.6":0.02666,"16.0":0.0014,"16.1":0.00842,"16.2":0.0014,"16.3":0.01263,"16.4":0.08137,"16.5":0.00842,"16.6":0.06314,"17.1":0.08839,"17.2":0.00842,"17.3":0.00561,"17.4":0.01403,"17.5":0.03367,"17.6":0.16976,"18.0":0.00982,"18.1":0.00561,"18.2":0.00561,"18.3":0.03788,"18.4":0.01263,"18.5-18.7":0.03227,"26.0":0.06173,"26.1":0.02385,"26.2":0.12767,"26.3":0.80392,"26.4":0.04069},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00095,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.0019,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00476,"11.0-11.2":0.11993,"11.3-11.4":0.00286,"12.0-12.1":0,"12.2-12.5":0.03712,"13.0-13.1":0,"13.2":0.01428,"13.3":0.0019,"13.4-13.7":0.00476,"14.0-14.4":0.00857,"14.5-14.8":0.00857,"15.0-15.1":0.01237,"15.2-15.3":0.00761,"15.4":0.00952,"15.5":0.01047,"15.6-15.8":0.16847,"16.0":0.01713,"16.1":0.03331,"16.2":0.01904,"16.3":0.03426,"16.4":0.00761,"16.5":0.01428,"16.6-16.7":0.23414,"17.0":0.01047,"17.1":0.01713,"17.2":0.01523,"17.3":0.02094,"17.4":0.03426,"17.5":0.06472,"17.6-17.7":0.16656,"18.0":0.03617,"18.1":0.07424,"18.2":0.03902,"18.3":0.12469,"18.4":0.05996,"18.5-18.7":1.9074,"26.0":0.11897,"26.1":0.18084,"26.2":1.06411,"26.3":4.62289,"26.4":0.17323,"26.5":0},P:{"21":0.01021,"22":0.01021,"23":0.02041,"24":0.02041,"25":0.03062,"26":0.10207,"27":0.11227,"28":0.12248,"29":0.9186,_:"4 20 8.2 10.1 12.0 13.0 14.0 15.0 17.0 18.0","5.0-5.4":0.03062,"6.2-6.4":0.01021,"7.2-7.4":0.10207,"9.2":0.05103,"11.1-11.2":0.02041,"16.0":0.01021,"19.0":0.01021},I:{"0":0.06872,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00003},K:{"0":0.60186,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.06019},Q:{_:"14.9"},O:{"0":0.58466},H:{all:0},L:{"0":78.18802}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/AG.js b/server/api/node_modules/caniuse-lite/data/regions/AG.js new file mode 100644 index 0000000..05b4203 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/AG.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.00774,"97":0.00774,"115":0.01162,"136":0.03485,"140":0.00774,"147":0.04646,"148":0.56144,"149":0.04259,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 137 138 139 141 142 143 144 145 146 150 151 152 3.5 3.6"},D:{"49":0.00774,"56":0.00774,"95":0.00387,"103":0.06195,"106":0.00774,"107":0.00387,"108":0.01162,"109":1.13062,"111":0.00387,"116":0.14326,"117":0.04646,"120":0.00387,"121":0.02323,"122":0.02323,"124":0.03485,"125":0.00387,"126":0.02323,"127":0.00774,"128":0.03872,"129":0.12003,"130":0.00387,"131":0.15875,"132":0.18198,"134":0.00387,"135":0.00387,"136":0.04259,"137":0.03872,"138":0.09293,"139":0.78214,"140":0.01162,"141":0.00774,"142":0.12778,"143":0.29814,"144":0.63114,"145":10.05946,"146":5.50986,"148":0.00387,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 104 105 110 112 113 114 115 118 119 123 133 147 149 150"},F:{"127":0.18973,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00774,"92":0.01162,"109":0.01936,"124":0.00387,"126":0.0271,"142":0.01936,"143":0.00774,"144":0.10842,"145":3.47318,"146":3.19827,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 122 123 125 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 14.1 15.1 15.2-15.3 15.4 15.5 16.0 16.2 17.0 17.2 26.5 TP","13.1":0.00774,"15.6":0.06582,"16.1":0.09293,"16.3":0.00774,"16.4":0.00774,"16.5":0.00387,"16.6":0.17424,"17.1":0.09293,"17.3":0.01936,"17.4":0.01936,"17.5":0.02323,"17.6":0.40269,"18.0":0.01162,"18.1":0.01936,"18.2":0.00774,"18.3":0.13165,"18.4":0.01549,"18.5-18.7":0.05808,"26.0":0.02323,"26.1":0.05421,"26.2":0.85571,"26.3":1.53718,"26.4":0.04646},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00264,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00527,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.01319,"11.0-11.2":0.33232,"11.3-11.4":0.00791,"12.0-12.1":0,"12.2-12.5":0.10286,"13.0-13.1":0,"13.2":0.03956,"13.3":0.00527,"13.4-13.7":0.01319,"14.0-14.4":0.02374,"14.5-14.8":0.02374,"15.0-15.1":0.03429,"15.2-15.3":0.0211,"15.4":0.02637,"15.5":0.02901,"15.6-15.8":0.46684,"16.0":0.04747,"16.1":0.09231,"16.2":0.05275,"16.3":0.09495,"16.4":0.0211,"16.5":0.03956,"16.6-16.7":0.64882,"17.0":0.02901,"17.1":0.04747,"17.2":0.0422,"17.3":0.05802,"17.4":0.09495,"17.5":0.17935,"17.6-17.7":0.46156,"18.0":0.10022,"18.1":0.20572,"18.2":0.10814,"18.3":0.34551,"18.4":0.16616,"18.5-18.7":5.28553,"26.0":0.32969,"26.1":0.50112,"26.2":2.94872,"26.3":12.81029,"26.4":0.48002,"26.5":0},P:{"20":0.01044,"24":0.05222,"25":0.02089,"26":0.01044,"27":0.04177,"28":0.05222,"29":3.48813,_:"4 21 22 23 5.0-5.4 6.2-6.4 8.2 9.2 10.1 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.01044,"11.1-11.2":0.02089},I:{"0":0.06122,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00003},K:{"0":0.02451,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.14707},Q:{_:"14.9"},O:{"0":0.01226},H:{all:0},L:{"0":37.32597}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/AI.js b/server/api/node_modules/caniuse-lite/data/regions/AI.js new file mode 100644 index 0000000..e8c6449 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/AI.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.01453,"146":0.04842,"147":0.00484,"148":0.24694,"149":0.0581,"150":0.00484,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 151 152 3.5 3.6"},D:{"87":0.01453,"105":0.01937,"106":0.00484,"107":0.01453,"108":0.01937,"109":0.17431,"111":0.01453,"112":0.01937,"116":0.04842,"120":0.01453,"123":0.01453,"124":0.02905,"125":0.00484,"129":0.00484,"130":0.00484,"131":0.02905,"133":0.00484,"138":0.01937,"139":0.79409,"140":0.04358,"141":0.04842,"142":1.27345,"143":0.86188,"144":0.94419,"145":15.6445,"146":4.70158,"147":0.0581,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 110 113 114 115 117 118 119 121 122 126 127 128 132 134 135 136 137 148 149 150"},F:{"95":0.00484,"127":0.3341,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"109":0.01453,"118":0.00484,"141":0.00484,"143":0.02905,"144":0.20821,"145":3.98981,"146":2.79383,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 142"},E:{"5":0.00484,"15":0.01453,_:"4 6 7 8 9 10 11 12 13 14 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.4 15.5 16.0 16.5 17.3 18.0 18.1 18.2 26.5 TP","15.1":0.00484,"15.2-15.3":0.01453,"15.6":0.11621,"16.1":0.16463,"16.2":0.00484,"16.3":0.00484,"16.4":0.07747,"16.6":0.76504,"17.0":0.02905,"17.1":0.56167,"17.2":0.00484,"17.4":0.01453,"17.5":0.07747,"17.6":1.49618,"18.3":0.02905,"18.4":0.01937,"18.5-18.7":0.27599,"26.0":0.11621,"26.1":0.11621,"26.2":0.45999,"26.3":3.97528,"26.4":0.01453},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00353,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00707,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.01766,"11.0-11.2":0.44512,"11.3-11.4":0.0106,"12.0-12.1":0,"12.2-12.5":0.13778,"13.0-13.1":0,"13.2":0.05299,"13.3":0.00707,"13.4-13.7":0.01766,"14.0-14.4":0.03179,"14.5-14.8":0.03179,"15.0-15.1":0.04593,"15.2-15.3":0.02826,"15.4":0.03533,"15.5":0.03886,"15.6-15.8":0.62529,"16.0":0.06359,"16.1":0.12364,"16.2":0.07065,"16.3":0.12718,"16.4":0.02826,"16.5":0.05299,"16.6-16.7":0.86905,"17.0":0.03886,"17.1":0.06359,"17.2":0.05652,"17.3":0.07772,"17.4":0.12718,"17.5":0.24022,"17.6-17.7":0.61822,"18.0":0.13424,"18.1":0.27555,"18.2":0.14484,"18.3":0.46279,"18.4":0.22256,"18.5-18.7":7.07956,"26.0":0.44159,"26.1":0.67122,"26.2":3.94957,"26.3":17.15839,"26.4":0.64295,"26.5":0},P:{"25":0.42977,"27":0.01074,"28":0.04298,"29":2.47118,_:"4 20 21 22 23 24 26 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","5.0-5.4":0.01074,"7.2-7.4":0.01074},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0.01032,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.98518},Q:{_:"14.9"},O:{_:"0"},H:{all:0},L:{"0":17.30873}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/AL.js b/server/api/node_modules/caniuse-lite/data/regions/AL.js new file mode 100644 index 0000000..2dddddd --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/AL.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.01417,"69":0.00567,"115":0.08216,"123":0.0085,"125":0.0085,"128":0.00283,"140":0.02266,"142":0.00283,"143":0.00283,"144":0.00283,"145":0.00283,"146":0.0085,"147":0.04533,"148":0.91789,"149":0.16998,"150":0.01133,"151":0.00283,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 124 126 127 129 130 131 132 133 134 135 136 137 138 139 141 152 3.5 3.6"},D:{"27":0.00567,"32":0.00567,"49":0.00283,"52":0.00283,"58":0.0085,"65":0.00283,"68":0.00283,"69":0.00283,"73":0.00567,"75":0.0255,"79":0.00283,"83":0.00567,"86":0.00283,"87":0.00283,"90":0.00283,"91":0.00283,"93":0.00283,"94":0.00283,"98":0.00567,"99":0.00283,"103":0.23797,"104":0.23514,"105":0.23797,"106":0.24081,"107":0.23797,"108":0.23231,"109":0.8159,"110":0.23797,"111":0.23514,"112":0.52977,"113":0.00283,"114":0.00283,"116":0.51277,"117":0.22947,"118":0.00283,"119":0.017,"120":0.25214,"121":0.00567,"122":0.01417,"123":0.00567,"124":0.27197,"125":0.0085,"126":0.05383,"127":0.00567,"128":0.017,"129":0.02833,"130":0.02266,"131":0.55527,"132":0.02266,"133":0.49011,"134":0.0085,"135":0.017,"136":0.01133,"137":0.01983,"138":0.06516,"139":0.10199,"140":0.07649,"141":0.0255,"142":0.15015,"143":0.14448,"144":0.57793,"145":5.37987,"146":4.59796,"147":0.017,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 28 29 30 31 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 53 54 55 56 57 59 60 61 62 63 64 66 67 70 71 72 74 76 77 78 80 81 84 85 88 89 92 95 96 97 100 101 102 115 148 149 150"},F:{"46":0.00283,"63":0.00567,"67":0.00567,"92":0.00283,"95":0.01133,"96":0.02266,"102":0.00283,"109":0.00567,"124":0.0085,"125":0.00283,"126":0.00567,"127":0.21248,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 64 65 66 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 93 94 97 98 99 100 101 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 122 123 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.01133,"92":0.00283,"109":0.0085,"113":0.00567,"114":0.00283,"120":0.00283,"124":0.0085,"133":0.00567,"142":0.00567,"143":0.0085,"144":0.03683,"145":0.60343,"146":0.50144,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 115 116 117 118 119 121 122 123 125 126 127 128 129 130 131 132 134 135 136 137 138 139 140 141"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 16.0 26.5 TP","13.1":0.00283,"14.1":0.00283,"15.4":0.00283,"15.5":0.00283,"15.6":0.06799,"16.1":0.0085,"16.2":0.00567,"16.3":0.0085,"16.4":0.00567,"16.5":0.00283,"16.6":0.14165,"17.0":0.00283,"17.1":0.07083,"17.2":0.0085,"17.3":0.0085,"17.4":0.0255,"17.5":0.01983,"17.6":0.18415,"18.0":0.00567,"18.1":0.017,"18.2":0.0085,"18.3":0.11049,"18.4":0.01983,"18.5-18.7":0.08499,"26.0":0.0255,"26.1":0.07366,"26.2":0.24081,"26.3":1.35701,"26.4":0.07083},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00373,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00745,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.01863,"11.0-11.2":0.46952,"11.3-11.4":0.01118,"12.0-12.1":0,"12.2-12.5":0.14533,"13.0-13.1":0,"13.2":0.05589,"13.3":0.00745,"13.4-13.7":0.01863,"14.0-14.4":0.03354,"14.5-14.8":0.03354,"15.0-15.1":0.04844,"15.2-15.3":0.02981,"15.4":0.03726,"15.5":0.04099,"15.6-15.8":0.65956,"16.0":0.06707,"16.1":0.13042,"16.2":0.07453,"16.3":0.13415,"16.4":0.02981,"16.5":0.05589,"16.6-16.7":0.91667,"17.0":0.04099,"17.1":0.06707,"17.2":0.05962,"17.3":0.08198,"17.4":0.13415,"17.5":0.25339,"17.6-17.7":0.65211,"18.0":0.1416,"18.1":0.29065,"18.2":0.15278,"18.3":0.48815,"18.4":0.23476,"18.5-18.7":7.46755,"26.0":0.46579,"26.1":0.708,"26.2":4.16603,"26.3":18.09874,"26.4":0.67819,"26.5":0},P:{"23":0.02036,"24":0.0509,"25":0.04072,"26":0.04072,"27":0.03054,"28":0.11199,"29":2.62661,_:"4 20 21 22 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0","7.2-7.4":0.01018,"19.0":0.01018},I:{"0":0.10739,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00005},K:{"0":0.19348,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{"2.5":0.03583,_:"3.0-3.1"},R:{_:"0"},M:{"0":0.27231},Q:{_:"14.9"},O:{"0":0.00717},H:{all:0},L:{"0":34.87048}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/AM.js b/server/api/node_modules/caniuse-lite/data/regions/AM.js new file mode 100644 index 0000000..f9bc658 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/AM.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.01632,"52":0.00544,"69":0.00544,"101":0.0272,"115":0.3264,"123":0.00544,"125":0.01088,"127":0.02176,"128":0.00544,"136":0.00544,"140":0.0272,"143":0.00544,"144":0.00544,"145":0.00544,"146":0.01632,"147":0.07072,"148":0.97376,"149":0.13056,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 124 126 129 130 131 132 133 134 135 137 138 139 141 142 150 151 152 3.5 3.6"},D:{"27":0.00544,"32":0.00544,"49":0.03808,"51":0.04896,"58":0.00544,"68":0.00544,"69":0.00544,"72":0.01088,"73":0.00544,"75":0.01088,"88":0.01632,"89":0.00544,"91":0.00544,"96":0.02176,"97":0.01088,"98":0.01088,"101":0.01632,"102":0.01088,"103":0.272,"104":0.25568,"105":0.23392,"106":0.25568,"107":0.2448,"108":0.26112,"109":2.69824,"110":0.26112,"111":0.23936,"112":0.58208,"114":0.00544,"116":0.51136,"117":0.23936,"118":0.00544,"119":0.01632,"120":0.27744,"121":0.01632,"122":0.01088,"123":0.03808,"124":0.25568,"125":0.01088,"126":0.272,"127":0.00544,"128":0.32096,"129":0.01632,"130":0.02176,"131":0.67456,"132":0.03808,"133":0.50048,"134":0.04352,"135":0.0272,"136":0.0272,"137":0.01632,"138":0.36448,"139":0.22848,"140":0.03264,"141":0.01632,"142":0.09248,"143":0.42976,"144":0.66368,"145":13.83936,"146":11.35872,"147":0.03808,"148":0.00544,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 28 29 30 31 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 52 53 54 55 56 57 59 60 61 62 63 64 65 66 67 70 71 74 76 77 78 79 80 81 83 84 85 86 87 90 92 93 94 95 99 100 113 115 149 150"},F:{"46":0.00544,"63":0.00544,"67":0.00544,"79":0.04896,"82":0.33184,"87":0.00544,"90":0.03264,"93":0.00544,"95":0.05984,"96":0.03808,"109":0.00544,"125":0.01632,"126":0.00544,"127":0.77248,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 64 65 66 68 69 70 71 72 73 74 75 76 77 78 80 81 83 84 85 86 88 89 91 92 94 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.01088,"92":0.01088,"109":0.01088,"113":0.00544,"122":0.00544,"124":0.00544,"126":0.00544,"133":0.01088,"135":0.00544,"138":0.00544,"140":0.00544,"142":0.00544,"143":0.00544,"144":0.0544,"145":1.07168,"146":1.43616,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 114 115 116 117 118 119 120 121 123 125 127 128 129 130 131 132 134 136 137 139 141"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 15.1 15.2-15.3 15.4 15.5 26.5 TP","14.1":0.00544,"15.6":0.01088,"16.0":0.00544,"16.1":0.02176,"16.2":0.00544,"16.3":0.01088,"16.4":0.00544,"16.5":0.00544,"16.6":0.0544,"17.0":0.00544,"17.1":0.0544,"17.2":0.01088,"17.3":0.02176,"17.4":0.03808,"17.5":0.01088,"17.6":0.12512,"18.0":0.00544,"18.1":0.01088,"18.2":0.00544,"18.3":0.01632,"18.4":0.00544,"18.5-18.7":0.28288,"26.0":0.03264,"26.1":0.03264,"26.2":0.17952,"26.3":0.94656,"26.4":0.07616},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00127,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00255,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00637,"11.0-11.2":0.16065,"11.3-11.4":0.00382,"12.0-12.1":0,"12.2-12.5":0.04972,"13.0-13.1":0,"13.2":0.01912,"13.3":0.00255,"13.4-13.7":0.00637,"14.0-14.4":0.01147,"14.5-14.8":0.01147,"15.0-15.1":0.01657,"15.2-15.3":0.0102,"15.4":0.01275,"15.5":0.01402,"15.6-15.8":0.22567,"16.0":0.02295,"16.1":0.04462,"16.2":0.0255,"16.3":0.0459,"16.4":0.0102,"16.5":0.01912,"16.6-16.7":0.31364,"17.0":0.01402,"17.1":0.02295,"17.2":0.0204,"17.3":0.02805,"17.4":0.0459,"17.5":0.0867,"17.6-17.7":0.22312,"18.0":0.04845,"18.1":0.09945,"18.2":0.05227,"18.3":0.16702,"18.4":0.08032,"18.5-18.7":2.55505,"26.0":0.15937,"26.1":0.24225,"26.2":1.42542,"26.3":6.19256,"26.4":0.23205,"26.5":0},P:{"20":0.0102,"21":0.03059,"22":0.0102,"23":0.03059,"24":0.0204,"25":0.03059,"26":0.03059,"27":0.03059,"28":0.11218,"29":1.856,_:"4 5.0-5.4 6.2-6.4 8.2 9.2 10.1 12.0 13.0 14.0 15.0 16.0 17.0 18.0","7.2-7.4":0.05099,"11.1-11.2":0.0102,"19.0":0.0102},I:{"0":0.03645,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.81168,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{"2.5":0.01368,_:"3.0-3.1"},R:{_:"0"},M:{"0":0.12312},Q:{"14.9":0.00456},O:{"0":0.31464},H:{all:0},L:{"0":34.79856}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/AO.js b/server/api/node_modules/caniuse-lite/data/regions/AO.js new file mode 100644 index 0000000..c295dfb --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/AO.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.03085,"54":0.00514,"72":0.00514,"78":0.01028,"115":0.06685,"127":0.00514,"129":0.00514,"133":0.00514,"139":0.00514,"140":0.02057,"143":0.00514,"144":0.00514,"146":0.01028,"147":0.0617,"148":1.11581,"149":0.21596,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 128 130 131 132 134 135 136 137 138 141 142 145 150 151 152 3.5 3.6"},D:{"39":0.06685,"40":0.06685,"41":0.07199,"42":0.06685,"43":0.07199,"44":0.06685,"45":0.06685,"46":0.07199,"47":0.0617,"48":0.0617,"49":0.07713,"50":0.07199,"51":0.06685,"52":0.06685,"53":0.06685,"54":0.06685,"55":0.07199,"56":0.07199,"57":0.07199,"58":0.07199,"59":0.07199,"60":0.06685,"65":0.00514,"66":0.02057,"67":0.00514,"68":0.00514,"69":0.02057,"70":0.00514,"71":0.00514,"72":0.01028,"73":0.03599,"74":0.00514,"75":0.00514,"76":0.00514,"77":0.01028,"79":0.02057,"81":0.01543,"83":0.01028,"84":0.05656,"85":0.00514,"86":0.11312,"87":0.04628,"90":0.01028,"92":0.01543,"93":0.00514,"94":0.00514,"95":0.01028,"97":0.00514,"98":0.03599,"99":0.00514,"101":0.01028,"103":0.49363,"104":0.46278,"105":0.45764,"106":0.46278,"107":0.45764,"108":0.47306,"109":1.11067,"110":0.44221,"111":0.4525,"112":1.0901,"113":0.00514,"114":0.02057,"115":0.00514,"116":1.03354,"117":0.44735,"118":0.00514,"119":0.11827,"120":0.56048,"121":0.01028,"122":0.03599,"123":0.01028,"124":0.44221,"125":0.00514,"126":0.01543,"127":0.02571,"128":0.10284,"129":0.00514,"130":0.00514,"131":0.97184,"132":0.02057,"133":0.92556,"134":0.02571,"135":0.01543,"136":0.03599,"137":0.13369,"138":0.15426,"139":0.21082,"140":0.01543,"141":0.02057,"142":0.06685,"143":0.16969,"144":0.65818,"145":6.88,"146":5.77447,"147":0.08741,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 61 62 63 64 78 80 88 89 91 96 100 102 148 149 150"},F:{"37":0.00514,"42":0.00514,"46":0.01028,"49":0.00514,"55":0.00514,"79":0.01543,"95":0.09256,"96":0.04114,"97":0.01028,"114":0.01028,"115":0.00514,"119":0.00514,"120":0.00514,"122":0.00514,"125":0.00514,"126":0.04114,"127":0.53477,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 38 39 40 41 43 44 45 47 48 50 51 52 53 54 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 116 117 118 121 123 124 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.01543,"15":0.01028,"16":0.00514,"17":0.01028,"18":0.09256,"84":0.01543,"89":0.01543,"90":0.02057,"92":0.12855,"100":0.01028,"109":0.03085,"114":0.00514,"117":0.00514,"119":0.00514,"122":0.01028,"124":0.00514,"125":0.02571,"126":0.00514,"127":0.00514,"129":0.01028,"131":0.01028,"132":0.00514,"133":0.00514,"134":0.00514,"135":0.01028,"136":0.01543,"137":0.01543,"138":0.00514,"139":0.01028,"140":0.02571,"141":0.01543,"142":0.02571,"143":0.08741,"144":0.1594,"145":2.45273,"146":2.30876,_:"12 13 79 80 81 83 85 86 87 88 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 115 116 118 120 121 123 128 130"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 15.1 15.2-15.3 15.4 16.0 17.0 17.2 17.3 18.4 26.5 TP","5.1":0.02057,"10.1":0.00514,"11.1":0.00514,"12.1":0.01543,"13.1":0.02571,"14.1":0.02571,"15.5":0.00514,"15.6":0.12341,"16.1":0.02571,"16.2":0.01543,"16.3":0.00514,"16.4":0.01028,"16.5":0.00514,"16.6":0.08741,"17.1":0.06685,"17.4":0.00514,"17.5":0.01543,"17.6":0.15426,"18.0":0.00514,"18.1":0.00514,"18.2":0.00514,"18.3":0.02571,"18.5-18.7":0.01543,"26.0":0.03085,"26.1":0.03085,"26.2":0.10284,"26.3":0.55019,"26.4":0.07713},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00084,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00167,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00419,"11.0-11.2":0.10547,"11.3-11.4":0.00251,"12.0-12.1":0,"12.2-12.5":0.03264,"13.0-13.1":0,"13.2":0.01256,"13.3":0.00167,"13.4-13.7":0.00419,"14.0-14.4":0.00753,"14.5-14.8":0.00753,"15.0-15.1":0.01088,"15.2-15.3":0.0067,"15.4":0.00837,"15.5":0.00921,"15.6-15.8":0.14815,"16.0":0.01507,"16.1":0.0293,"16.2":0.01674,"16.3":0.03013,"16.4":0.0067,"16.5":0.01256,"16.6-16.7":0.20591,"17.0":0.00921,"17.1":0.01507,"17.2":0.01339,"17.3":0.01841,"17.4":0.03013,"17.5":0.05692,"17.6-17.7":0.14648,"18.0":0.03181,"18.1":0.06529,"18.2":0.03432,"18.3":0.10965,"18.4":0.05273,"18.5-18.7":1.67741,"26.0":0.10463,"26.1":0.15904,"26.2":0.9358,"26.3":4.06547,"26.4":0.15234,"26.5":0},P:{"23":0.01048,"24":0.02096,"25":0.01048,"26":0.04191,"27":0.02096,"28":0.03143,"29":0.86968,_:"4 20 21 22 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.05239,"14.0":0.01048},I:{"0":0.11163,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00006},K:{"0":1.00532,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{"2.5":0.00486,_:"3.0-3.1"},R:{_:"0"},M:{"0":0.11173},Q:{"14.9":0.00972},O:{"0":0.29634},H:{all:0.01},L:{"0":50.49861}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/AR.js b/server/api/node_modules/caniuse-lite/data/regions/AR.js new file mode 100644 index 0000000..d78a3a6 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/AR.js @@ -0,0 +1 @@ +module.exports={C:{"4":0.00512,"5":0.01535,"52":0.00512,"59":0.01535,"66":0.00512,"81":0.00512,"88":0.00512,"91":0.01535,"103":0.00512,"115":0.2251,"125":0.00512,"127":0.00512,"128":0.00512,"131":0.00512,"136":0.01535,"137":0.00512,"138":0.00512,"139":0.00512,"140":0.03581,"142":0.00512,"143":0.01535,"144":0.01535,"145":0.01023,"146":0.01023,"147":0.05116,"148":1.0539,"149":0.21487,_:"2 3 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 60 61 62 63 64 65 67 68 69 70 71 72 73 74 75 76 77 78 79 80 82 83 84 85 86 87 89 90 92 93 94 95 96 97 98 99 100 101 102 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 126 129 130 132 133 134 135 141 150 151 152 3.5 3.6"},D:{"49":0.01023,"55":0.00512,"65":0.00512,"66":0.01023,"75":0.00512,"79":0.00512,"85":0.00512,"87":0.01023,"91":0.00512,"95":0.00512,"97":0.00512,"98":0.00512,"102":0.00512,"103":0.26603,"104":0.25068,"105":0.25068,"106":0.25068,"107":0.25068,"108":0.25068,"109":2.22034,"110":0.25068,"111":0.32231,"112":0.82368,"114":0.00512,"115":0.00512,"116":0.52695,"117":0.24045,"118":0.00512,"119":0.06139,"120":0.2558,"121":0.01535,"122":0.04604,"123":0.01023,"124":0.26603,"125":0.02046,"126":0.01535,"127":0.04093,"128":0.03581,"129":0.02046,"130":0.0307,"131":0.56788,"132":0.0307,"133":0.52695,"134":0.02558,"135":0.04604,"136":0.06139,"137":0.02046,"138":0.10744,"139":0.13302,"140":0.04093,"141":0.06139,"142":0.09209,"143":0.20976,"144":0.63438,"145":14.8671,"146":11.47007,"147":0.02558,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 56 57 58 59 60 61 62 63 64 67 68 69 70 71 72 73 74 76 77 78 80 81 83 84 86 88 89 90 92 93 94 96 99 100 101 113 148 149 150"},F:{"36":0.00512,"46":0.00512,"89":0.00512,"95":0.0307,"96":0.00512,"119":0.00512,"126":0.0972,"127":0.58322,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 120 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"17":0.00512,"18":0.00512,"92":0.01023,"109":0.02558,"122":0.00512,"131":0.00512,"133":0.00512,"134":0.00512,"135":0.00512,"136":0.00512,"137":0.00512,"138":0.00512,"139":0.00512,"140":0.00512,"141":0.01023,"142":0.02046,"143":0.06139,"144":0.06139,"145":1.75479,"146":1.64224,_:"12 13 14 15 16 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 123 124 125 126 127 128 129 130 132"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 12.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.5 17.0 17.2 18.0 18.2 26.5 TP","11.1":0.01023,"13.1":0.00512,"14.1":0.00512,"15.6":0.02558,"16.3":0.00512,"16.4":0.00512,"16.6":0.03581,"17.1":0.02558,"17.3":0.00512,"17.4":0.00512,"17.5":0.00512,"17.6":0.04093,"18.1":0.00512,"18.3":0.01023,"18.4":0.00512,"18.5-18.7":0.02558,"26.0":0.00512,"26.1":0.01023,"26.2":0.05628,"26.3":0.29161,"26.4":0.01023},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00055,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.0011,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00276,"11.0-11.2":0.06954,"11.3-11.4":0.00166,"12.0-12.1":0,"12.2-12.5":0.02152,"13.0-13.1":0,"13.2":0.00828,"13.3":0.0011,"13.4-13.7":0.00276,"14.0-14.4":0.00497,"14.5-14.8":0.00497,"15.0-15.1":0.00717,"15.2-15.3":0.00442,"15.4":0.00552,"15.5":0.00607,"15.6-15.8":0.09768,"16.0":0.00993,"16.1":0.01932,"16.2":0.01104,"16.3":0.01987,"16.4":0.00442,"16.5":0.00828,"16.6-16.7":0.13577,"17.0":0.00607,"17.1":0.00993,"17.2":0.00883,"17.3":0.01214,"17.4":0.01987,"17.5":0.03753,"17.6-17.7":0.09658,"18.0":0.02097,"18.1":0.04305,"18.2":0.02263,"18.3":0.0723,"18.4":0.03477,"18.5-18.7":1.10599,"26.0":0.06899,"26.1":0.10486,"26.2":0.61702,"26.3":2.68054,"26.4":0.10044,"26.5":0},P:{"21":0.01009,"22":0.01009,"23":0.01009,"24":0.02018,"25":0.02018,"26":0.06053,"27":0.03026,"28":0.05044,"29":1.84602,_:"4 20 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 19.0","7.2-7.4":0.0807,"17.0":0.01009,"18.0":0.01009},I:{"0":0.06831,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00003},K:{"0":0.08303,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.10745},Q:{_:"14.9"},O:{"0":0.00977},H:{all:0},L:{"0":47.17845}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/AS.js b/server/api/node_modules/caniuse-lite/data/regions/AS.js new file mode 100644 index 0000000..3d88cbb --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/AS.js @@ -0,0 +1 @@ +module.exports={C:{"68":0.00376,"148":0.03004,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 149 150 151 152 3.5 3.6"},D:{"87":0.00376,"92":0.00376,"93":0.00376,"103":0.00751,"109":0.00751,"116":0.00751,"126":0.00376,"128":0.00376,"134":0.00376,"138":0.00751,"139":0.01127,"140":0.01502,"141":0.00751,"142":0.00376,"143":0.08637,"144":0.41305,"145":0.60456,"146":0.17273,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 88 89 90 91 94 95 96 97 98 99 100 101 102 104 105 106 107 108 110 111 112 113 114 115 117 118 119 120 121 122 123 124 125 127 129 130 131 132 133 135 136 137 147 148 149 150"},F:{"127":0.00376,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"143":0.00376,"144":0.02629,"145":0.13518,"146":0.14269,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 14.1 15.1 16.0 26.5 TP","13.1":0.00376,"15.2-15.3":0.00376,"15.4":0.01878,"15.5":0.12767,"15.6":0.76227,"16.1":0.26661,"16.2":0.09763,"16.3":0.18024,"16.4":0.01878,"16.5":0.0338,"16.6":1.63343,"17.0":0.0338,"17.1":2.65854,"17.2":0.00751,"17.3":0.10514,"17.4":0.25159,"17.5":0.39052,"17.6":1.51327,"18.0":0.15396,"18.1":0.27787,"18.2":0.08637,"18.3":0.41305,"18.4":0.08261,"18.5-18.7":0.56325,"26.0":0.28163,"26.1":0.184,"26.2":3.25559,"26.3":16.77734,"26.4":0.50693},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00608,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.01217,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.03041,"11.0-11.2":0.76641,"11.3-11.4":0.01825,"12.0-12.1":0,"12.2-12.5":0.23722,"13.0-13.1":0,"13.2":0.09124,"13.3":0.01217,"13.4-13.7":0.03041,"14.0-14.4":0.05474,"14.5-14.8":0.05474,"15.0-15.1":0.07907,"15.2-15.3":0.04866,"15.4":0.06083,"15.5":0.06691,"15.6-15.8":1.07663,"16.0":0.10949,"16.1":0.21289,"16.2":0.12165,"16.3":0.21897,"16.4":0.04866,"16.5":0.09124,"16.6-16.7":1.49633,"17.0":0.06691,"17.1":0.10949,"17.2":0.09732,"17.3":0.13382,"17.4":0.21897,"17.5":0.41362,"17.6-17.7":1.06446,"18.0":0.23114,"18.1":0.47445,"18.2":0.24939,"18.3":0.79682,"18.4":0.38321,"18.5-18.7":12.18959,"26.0":0.76033,"26.1":1.1557,"26.2":6.80038,"26.3":29.54333,"26.4":1.10704,"26.5":0},P:{"29":0.08208,_:"4 20 21 22 23 24 25 26 27 28 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 18.0 19.0","17.0":0.06156},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0.00625,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.00625},Q:{_:"14.9"},O:{"0":0.01249},H:{all:0},L:{"0":1.84312}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/AT.js b/server/api/node_modules/caniuse-lite/data/regions/AT.js new file mode 100644 index 0000000..abe2e38 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/AT.js @@ -0,0 +1 @@ +module.exports={C:{"48":0.00533,"52":0.04267,"57":0.00533,"60":0.02134,"68":0.02667,"78":0.03734,"91":0.00533,"102":0.00533,"112":0.00533,"113":0.00533,"115":0.48006,"121":0.00533,"127":0.00533,"128":0.04801,"129":0.01067,"133":0.00533,"134":0.01067,"135":0.01067,"136":0.016,"137":0.01067,"138":0.04801,"139":0.01067,"140":1.06147,"141":0.016,"142":0.01067,"143":0.01067,"144":0.016,"145":0.03734,"146":0.03734,"147":0.24003,"148":4.5499,"149":0.94945,"150":0.00533,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 53 54 55 56 58 59 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 92 93 94 95 96 97 98 99 100 101 103 104 105 106 107 108 109 110 111 114 116 117 118 119 120 122 123 124 125 126 130 131 132 151 152 3.5 3.6"},D:{"39":0.00533,"40":0.00533,"41":0.00533,"42":0.00533,"43":0.00533,"44":0.00533,"45":0.00533,"46":0.00533,"47":0.00533,"48":0.00533,"49":0.01067,"50":0.00533,"51":0.00533,"52":0.00533,"53":0.00533,"54":0.00533,"55":0.00533,"56":0.00533,"57":0.00533,"58":0.00533,"59":0.00533,"60":0.00533,"69":0.00533,"80":0.016,"81":0.02134,"87":0.00533,"92":0.00533,"94":0.00533,"95":0.00533,"96":0.00533,"102":0.00533,"103":0.032,"104":0.02134,"105":0.016,"106":0.016,"107":0.016,"108":0.02667,"109":0.33604,"110":0.02134,"111":0.016,"112":0.05334,"114":0.016,"115":0.02134,"116":0.08001,"117":0.016,"118":0.01067,"119":0.00533,"120":0.03734,"121":0.00533,"122":0.032,"123":0.01067,"124":0.02667,"125":0.00533,"126":0.01067,"127":0.01067,"128":0.02667,"129":0.01067,"130":0.016,"131":0.10135,"132":0.016,"133":0.07468,"134":0.02134,"135":0.02134,"136":0.04801,"137":0.02134,"138":0.15469,"139":0.03734,"140":0.04801,"141":0.04801,"142":0.08001,"143":0.2347,"144":0.60274,"145":9.91057,"146":7.7663,"147":0.02667,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 61 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 78 79 83 84 85 86 88 89 90 91 93 97 98 99 100 101 113 148 149 150"},F:{"46":0.00533,"85":0.01067,"91":0.016,"95":0.11201,"96":0.08534,"114":0.00533,"122":0.00533,"125":0.00533,"126":0.02134,"127":1.45618,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 86 87 88 89 90 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 120 121 123 124 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.00533,"109":0.05867,"115":0.01067,"122":0.00533,"123":0.00533,"128":0.00533,"129":0.00533,"131":0.01067,"132":0.00533,"133":0.00533,"134":0.00533,"135":0.02134,"136":0.01067,"137":0.01067,"138":0.01067,"139":0.01067,"140":0.02134,"141":0.02134,"142":0.03734,"143":0.06934,"144":0.26137,"145":4.67258,"146":5.35534,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 116 117 118 119 120 121 124 125 126 127 130"},E:{"14":0.01067,"15":0.00533,_:"4 5 6 7 8 9 10 11 12 13 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 15.1 26.5 TP","12.1":0.00533,"13.1":0.02667,"14.1":0.02134,"15.2-15.3":0.00533,"15.4":0.00533,"15.5":0.00533,"15.6":0.17069,"16.0":0.02667,"16.1":0.01067,"16.2":0.00533,"16.3":0.016,"16.4":0.016,"16.5":0.01067,"16.6":0.27203,"17.0":0.00533,"17.1":0.16535,"17.2":0.02134,"17.3":0.02134,"17.4":0.02667,"17.5":0.06401,"17.6":0.22936,"18.0":0.01067,"18.1":0.02134,"18.2":0.01067,"18.3":0.06934,"18.4":0.02667,"18.5-18.7":0.12802,"26.0":0.08001,"26.1":0.08001,"26.2":0.44806,"26.3":2.35229,"26.4":0.09068},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00183,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00365,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00913,"11.0-11.2":0.23005,"11.3-11.4":0.00548,"12.0-12.1":0,"12.2-12.5":0.07121,"13.0-13.1":0,"13.2":0.02739,"13.3":0.00365,"13.4-13.7":0.00913,"14.0-14.4":0.01643,"14.5-14.8":0.01643,"15.0-15.1":0.02374,"15.2-15.3":0.01461,"15.4":0.01826,"15.5":0.02008,"15.6-15.8":0.32317,"16.0":0.03286,"16.1":0.0639,"16.2":0.03652,"16.3":0.06573,"16.4":0.01461,"16.5":0.02739,"16.6-16.7":0.44915,"17.0":0.02008,"17.1":0.03286,"17.2":0.02921,"17.3":0.04017,"17.4":0.06573,"17.5":0.12415,"17.6-17.7":0.31952,"18.0":0.06938,"18.1":0.14241,"18.2":0.07486,"18.3":0.23918,"18.4":0.11503,"18.5-18.7":3.65891,"26.0":0.22823,"26.1":0.3469,"26.2":2.04125,"26.3":8.86794,"26.4":0.3323,"26.5":0},P:{"4":0.0419,"21":0.01048,"22":0.02095,"23":0.02095,"24":0.01048,"25":0.01048,"26":0.06285,"27":0.03143,"28":0.09428,"29":3.97026,_:"20 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.02331,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.37328,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.00533,_:"6 7 8 9 10 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":1.12451},Q:{_:"14.9"},O:{"0":0.08399},H:{all:0},L:{"0":25.41085}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/AU.js b/server/api/node_modules/caniuse-lite/data/regions/AU.js new file mode 100644 index 0000000..a414185 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/AU.js @@ -0,0 +1 @@ +module.exports={C:{"52":0.00517,"56":0.00517,"78":0.01551,"115":0.1034,"125":0.00517,"128":0.00517,"133":0.00517,"134":0.00517,"136":0.00517,"137":0.00517,"140":0.06721,"141":0.00517,"142":0.00517,"143":0.01551,"144":0.00517,"145":0.01551,"146":0.02585,"147":0.12408,"148":1.69059,"149":0.34639,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 126 127 129 130 131 132 135 138 139 150 151 152 3.5 3.6"},D:{"39":0.01034,"40":0.01034,"41":0.01034,"42":0.01034,"43":0.01034,"44":0.01034,"45":0.01034,"46":0.01034,"47":0.01034,"48":0.01034,"49":0.01551,"50":0.01034,"51":0.01034,"52":0.01034,"53":0.01034,"54":0.01034,"55":0.01034,"56":0.01034,"57":0.01034,"58":0.01034,"59":0.01034,"60":0.01034,"65":0.00517,"80":0.00517,"85":0.03102,"86":0.00517,"87":0.02068,"99":0.01034,"103":0.03619,"104":0.00517,"108":0.00517,"109":0.29469,"110":0.00517,"111":0.00517,"113":0.00517,"114":0.01551,"115":0.00517,"116":0.12408,"118":0.00517,"119":0.01034,"120":0.01034,"121":0.01551,"122":0.04653,"123":0.02068,"124":0.02068,"125":0.01034,"126":0.04136,"127":0.02585,"128":0.09823,"129":0.01034,"130":0.01034,"131":0.04136,"132":0.03102,"133":0.02585,"134":0.06204,"135":0.04136,"136":0.04136,"137":0.03619,"138":0.24299,"139":0.09306,"140":0.07238,"141":0.07238,"142":0.23782,"143":0.40843,"144":1.17359,"145":13.62295,"146":9.85919,"147":0.02585,"148":0.00517,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 61 62 63 64 66 67 68 69 70 71 72 73 74 75 76 77 78 79 81 83 84 88 89 90 91 92 93 94 95 96 97 98 100 101 102 105 106 107 112 117 149 150"},F:{"46":0.00517,"95":0.01551,"96":0.01551,"102":0.00517,"125":0.00517,"126":0.01551,"127":0.66176,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00517,"85":0.00517,"105":0.00517,"109":0.03619,"117":0.00517,"120":0.00517,"122":0.00517,"124":0.00517,"126":0.00517,"127":0.00517,"130":0.00517,"131":0.00517,"132":0.00517,"133":0.00517,"134":0.00517,"135":0.01551,"136":0.00517,"137":0.00517,"138":0.01551,"139":0.01034,"140":0.01034,"141":0.01551,"142":0.04653,"143":0.08789,"144":0.19129,"145":4.19804,"146":4.11532,_:"12 13 14 15 16 17 79 80 81 83 84 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 106 107 108 110 111 112 113 114 115 116 118 119 121 123 125 128 129"},E:{"13":0.00517,"14":0.01551,"15":0.00517,_:"4 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 11.1 26.5 TP","10.1":0.00517,"12.1":0.02585,"13.1":0.04653,"14.1":0.06204,"15.1":0.00517,"15.2-15.3":0.00517,"15.4":0.01034,"15.5":0.02585,"15.6":0.25333,"16.0":0.01034,"16.1":0.04136,"16.2":0.01551,"16.3":0.04136,"16.4":0.02068,"16.5":0.02068,"16.6":0.35673,"17.0":0.01034,"17.1":0.35673,"17.2":0.01551,"17.3":0.03619,"17.4":0.0517,"17.5":0.07755,"17.6":0.29986,"18.0":0.01551,"18.1":0.04653,"18.2":0.02585,"18.3":0.08272,"18.4":0.0517,"18.5-18.7":0.13959,"26.0":0.06721,"26.1":0.11891,"26.2":0.63074,"26.3":3.14853,"26.4":0.1034},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00251,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00502,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.01254,"11.0-11.2":0.31604,"11.3-11.4":0.00752,"12.0-12.1":0,"12.2-12.5":0.09782,"13.0-13.1":0,"13.2":0.03762,"13.3":0.00502,"13.4-13.7":0.01254,"14.0-14.4":0.02257,"14.5-14.8":0.02257,"15.0-15.1":0.03261,"15.2-15.3":0.02007,"15.4":0.02508,"15.5":0.02759,"15.6-15.8":0.44395,"16.0":0.04515,"16.1":0.08779,"16.2":0.05016,"16.3":0.0903,"16.4":0.02007,"16.5":0.03762,"16.6-16.7":0.61702,"17.0":0.02759,"17.1":0.04515,"17.2":0.04013,"17.3":0.05518,"17.4":0.0903,"17.5":0.17056,"17.6-17.7":0.43894,"18.0":0.09531,"18.1":0.19564,"18.2":0.10284,"18.3":0.32858,"18.4":0.15802,"18.5-18.7":5.02647,"26.0":0.31353,"26.1":0.47656,"26.2":2.80419,"26.3":12.18242,"26.4":0.4565,"26.5":0},P:{"21":0.02149,"22":0.01075,"23":0.01075,"24":0.01075,"25":0.02149,"26":0.03224,"27":0.03224,"28":0.08597,"29":3.20253,_:"4 20 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0","19.0":0.01075},I:{"0":0.02413,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.1449,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.54579},Q:{"14.9":0.00483},O:{"0":0.03381},H:{all:0},L:{"0":21.72246}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/AW.js b/server/api/node_modules/caniuse-lite/data/regions/AW.js new file mode 100644 index 0000000..cccce30 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/AW.js @@ -0,0 +1 @@ +module.exports={C:{"78":0.00653,"115":0.02285,"121":0.01306,"134":0.01632,"137":0.00326,"140":0.00326,"145":0.00979,"146":0.00326,"147":0.1632,"148":0.3623,"149":0.04896,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 122 123 124 125 126 127 128 129 130 131 132 133 135 136 138 139 141 142 143 144 150 151 152 3.5 3.6"},D:{"76":0.00326,"91":0.00326,"103":0.02285,"104":0.00326,"109":0.1175,"111":0.00326,"115":0.00326,"116":0.04243,"121":0.00326,"122":0.02938,"123":0.01958,"125":0.00326,"126":0.02611,"128":0.03264,"129":0.00653,"130":0.00326,"131":0.00653,"132":0.00326,"133":0.00326,"134":0.00653,"135":0.01306,"136":0.00979,"137":0.03917,"138":0.06528,"139":0.21542,"140":0.01306,"141":0.00979,"142":0.06854,"143":0.21869,"144":0.82906,"145":6.79891,"146":4.99718,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 77 78 79 80 81 83 84 85 86 87 88 89 90 92 93 94 95 96 97 98 99 100 101 102 105 106 107 108 110 112 113 114 117 118 119 120 124 127 147 148 149 150"},F:{"95":0.00326,"96":0.00979,"124":0.00653,"126":0.00326,"127":0.09792,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.00326,"109":0.00653,"114":0.00653,"134":0.00653,"138":0.00326,"139":0.00653,"141":0.02285,"142":0.00979,"143":0.01632,"144":0.10771,"145":3.16282,"146":2.88538,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 135 136 137 140"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 15.1 15.2-15.3 15.4 15.5 16.0 17.0 26.5 TP","12.1":0.02938,"13.1":0.00326,"14.1":0.01632,"15.6":0.02938,"16.1":0.00653,"16.2":0.00653,"16.3":0.01632,"16.4":0.00326,"16.5":0.00653,"16.6":0.09139,"17.1":0.09792,"17.2":0.00653,"17.3":0.00326,"17.4":0.02938,"17.5":0.06528,"17.6":0.13382,"18.0":0.00979,"18.1":0.01958,"18.2":0.01632,"18.3":0.02938,"18.4":0.02611,"18.5-18.7":0.05222,"26.0":0.02285,"26.1":0.04896,"26.2":0.34272,"26.3":1.17178,"26.4":0.04896},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00316,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00631,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.01578,"11.0-11.2":0.39763,"11.3-11.4":0.00947,"12.0-12.1":0,"12.2-12.5":0.12308,"13.0-13.1":0,"13.2":0.04734,"13.3":0.00631,"13.4-13.7":0.01578,"14.0-14.4":0.0284,"14.5-14.8":0.0284,"15.0-15.1":0.04103,"15.2-15.3":0.02525,"15.4":0.03156,"15.5":0.03471,"15.6-15.8":0.55858,"16.0":0.0568,"16.1":0.11045,"16.2":0.06312,"16.3":0.11361,"16.4":0.02525,"16.5":0.04734,"16.6-16.7":0.77633,"17.0":0.03471,"17.1":0.0568,"17.2":0.05049,"17.3":0.06943,"17.4":0.11361,"17.5":0.2146,"17.6-17.7":0.55227,"18.0":0.11992,"18.1":0.24615,"18.2":0.12939,"18.3":0.41341,"18.4":0.19882,"18.5-18.7":6.32426,"26.0":0.39448,"26.1":0.59961,"26.2":3.5282,"26.3":15.3278,"26.4":0.57436,"26.5":0},P:{"23":0.06122,"24":0.0102,"25":0.02041,"26":0.04081,"27":0.04081,"28":0.13264,"29":5.54035,_:"4 20 21 22 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.03061},I:{"0":0.02692,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.08757,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.15493},Q:{_:"14.9"},O:{"0":0.01347},H:{all:0},L:{"0":38.2449}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/AX.js b/server/api/node_modules/caniuse-lite/data/regions/AX.js new file mode 100644 index 0000000..1913e0d --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/AX.js @@ -0,0 +1 @@ +module.exports={C:{"109":0.00638,"115":0.40832,"136":0.01914,"138":0.00638,"140":0.01914,"141":0.00638,"145":0.08294,"147":0.14674,"148":2.31594,"149":0.21054,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 137 139 142 143 144 146 150 151 152 3.5 3.6"},D:{"76":4.28736,"87":0.00638,"103":0.23606,"106":0.00638,"109":0.45298,"116":0.0638,"122":0.00638,"126":0.01276,"127":0.01276,"128":0.04466,"129":0.00638,"130":0.00638,"131":0.02552,"132":0.00638,"133":0.03828,"134":0.00638,"135":0.01276,"137":0.00638,"138":0.01276,"139":0.12122,"142":0.04466,"143":0.15312,"144":0.59972,"145":18.73806,"146":10.57804,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 77 78 79 80 81 83 84 85 86 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 104 105 107 108 110 111 112 113 114 115 117 118 119 120 121 123 124 125 136 140 141 147 148 149 150"},F:{"95":0.00638,"96":0.00638,"123":0.07656,"127":1.03994,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 124 125 126 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"99":0.05104,"129":0.01276,"134":0.00638,"135":0.04466,"138":0.0319,"140":0.00638,"142":0.00638,"143":0.33176,"144":0.21692,"145":6.04186,"146":4.17252,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 130 131 132 133 136 137 139 141"},E:{"14":0.01914,_:"4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 15.1 15.2-15.3 16.0 16.2 17.0 17.2 17.3 18.1 18.2 18.4 26.5 TP","14.1":0.03828,"15.4":0.00638,"15.5":0.00638,"15.6":0.29348,"16.1":0.00638,"16.3":0.02552,"16.4":0.01914,"16.5":0.0319,"16.6":0.0638,"17.1":0.65076,"17.4":0.00638,"17.5":0.01914,"17.6":0.68904,"18.0":0.01276,"18.3":0.01276,"18.5-18.7":0.00638,"26.0":0.01914,"26.1":0.01914,"26.2":0.16588,"26.3":1.74812,"26.4":0.10208},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00074,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00148,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00369,"11.0-11.2":0.09309,"11.3-11.4":0.00222,"12.0-12.1":0,"12.2-12.5":0.02881,"13.0-13.1":0,"13.2":0.01108,"13.3":0.00148,"13.4-13.7":0.00369,"14.0-14.4":0.00665,"14.5-14.8":0.00665,"15.0-15.1":0.0096,"15.2-15.3":0.00591,"15.4":0.00739,"15.5":0.00813,"15.6-15.8":0.13078,"16.0":0.0133,"16.1":0.02586,"16.2":0.01478,"16.3":0.0266,"16.4":0.00591,"16.5":0.01108,"16.6-16.7":0.18176,"17.0":0.00813,"17.1":0.0133,"17.2":0.01182,"17.3":0.01625,"17.4":0.0266,"17.5":0.05024,"17.6-17.7":0.1293,"18.0":0.02808,"18.1":0.05763,"18.2":0.03029,"18.3":0.09679,"18.4":0.04655,"18.5-18.7":1.48064,"26.0":0.09236,"26.1":0.14038,"26.2":0.82603,"26.3":3.58856,"26.4":0.13447,"26.5":0},P:{"22":0.01074,"25":0.01074,"26":0.04296,"28":0.03222,"29":4.38141,_:"4 20 21 23 24 27 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 18.0 19.0","17.0":0.01074},I:{"0":0.0217,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.181,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":2.68966},Q:{_:"14.9"},O:{_:"0"},H:{all:0},L:{"0":26.50868}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/AZ.js b/server/api/node_modules/caniuse-lite/data/regions/AZ.js new file mode 100644 index 0000000..77a66ce --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/AZ.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.03923,"68":0.00392,"69":0.00785,"78":0.00392,"115":0.05885,"123":0.00392,"125":0.00785,"140":0.01569,"146":0.00392,"147":0.01962,"148":0.34522,"149":0.05885,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 124 126 127 128 129 130 131 132 133 134 135 136 137 138 139 141 142 143 144 145 150 151 152 3.5 3.6"},D:{"27":0.00392,"32":0.00785,"49":0.01177,"52":0.00785,"53":0.00392,"56":0.00392,"58":0.00785,"65":0.00392,"66":0.00392,"68":0.00392,"69":0.00785,"70":0.00392,"71":0.00392,"73":0.00392,"75":0.00785,"79":0.00392,"80":0.00392,"83":0.00785,"86":0.00392,"87":0.00785,"89":0.00392,"90":0.00392,"91":0.00392,"98":0.00785,"100":0.00392,"101":0.01569,"102":0.00392,"103":0.45899,"104":0.44722,"105":0.45115,"106":0.45899,"107":0.45115,"108":0.45115,"109":2.12234,"110":0.44722,"111":0.45507,"112":1.0239,"113":0.00392,"114":0.00785,"115":0.00392,"116":0.92583,"117":0.43938,"118":0.00392,"119":0.01962,"120":0.45115,"121":0.00392,"122":0.03531,"123":0.00785,"124":0.46684,"125":0.01962,"126":0.03138,"127":0.01177,"128":0.00785,"129":0.01177,"130":0.03923,"131":0.94544,"132":0.01569,"133":0.92191,"134":0.03923,"135":0.02354,"136":0.02354,"137":0.01962,"138":0.08631,"139":0.102,"140":0.01177,"141":0.01962,"142":0.05492,"143":0.09023,"144":0.42761,"145":7.77146,"146":5.43336,"147":0.00785,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 28 29 30 31 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 54 55 57 59 60 61 62 63 64 67 72 74 76 77 78 81 84 85 88 92 93 94 95 96 97 99 148 149 150"},F:{"46":0.00785,"56":0.00392,"63":0.00785,"67":0.00392,"79":0.02746,"84":0.00392,"85":0.09415,"86":0.00392,"94":0.00392,"95":0.14515,"96":0.06277,"97":0.00785,"109":0.00785,"114":0.00392,"126":0.01569,"127":0.50607,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 57 58 60 62 64 65 66 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 87 88 89 90 91 92 93 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.01177,"92":0.00785,"109":0.00785,"113":0.00785,"114":0.00392,"120":0.00392,"124":0.00392,"131":0.00392,"133":0.00785,"134":0.00392,"135":0.00392,"136":0.00392,"137":0.00392,"138":0.00392,"140":0.00392,"141":0.01569,"142":0.00785,"143":0.01569,"144":0.01962,"145":0.82775,"146":0.65122,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 115 116 117 118 119 121 122 123 125 126 127 128 129 130 132 139"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.5 16.0 16.1 16.2 16.4 17.2 26.5 TP","5.1":0.00392,"13.1":0.00392,"14.1":0.00392,"15.4":0.00392,"15.6":0.02354,"16.3":0.00392,"16.5":0.00785,"16.6":0.01177,"17.0":0.00392,"17.1":0.01962,"17.3":0.00392,"17.4":0.01962,"17.5":0.00785,"17.6":0.02354,"18.0":0.00392,"18.1":0.01177,"18.2":0.00785,"18.3":0.01177,"18.4":0.00392,"18.5-18.7":0.02354,"26.0":0.01569,"26.1":0.01569,"26.2":0.05885,"26.3":0.31776,"26.4":0.01569},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00098,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00195,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00488,"11.0-11.2":0.12307,"11.3-11.4":0.00293,"12.0-12.1":0,"12.2-12.5":0.03809,"13.0-13.1":0,"13.2":0.01465,"13.3":0.00195,"13.4-13.7":0.00488,"14.0-14.4":0.00879,"14.5-14.8":0.00879,"15.0-15.1":0.0127,"15.2-15.3":0.00781,"15.4":0.00977,"15.5":0.01074,"15.6-15.8":0.17288,"16.0":0.01758,"16.1":0.03419,"16.2":0.01953,"16.3":0.03516,"16.4":0.00781,"16.5":0.01465,"16.6-16.7":0.24028,"17.0":0.01074,"17.1":0.01758,"17.2":0.01563,"17.3":0.02149,"17.4":0.03516,"17.5":0.06642,"17.6-17.7":0.17093,"18.0":0.03712,"18.1":0.07619,"18.2":0.04005,"18.3":0.12795,"18.4":0.06153,"18.5-18.7":1.95738,"26.0":0.12209,"26.1":0.18558,"26.2":1.09199,"26.3":4.744,"26.4":0.17777,"26.5":0},P:{"4":0.06111,"21":0.01018,"22":0.01018,"23":0.01018,"25":0.02037,"26":0.06111,"27":0.03055,"28":0.18333,"29":2.49527,_:"20 24 8.2 9.2 10.1 11.1-11.2 12.0 14.0 15.0 16.0 18.0","5.0-5.4":0.01018,"6.2-6.4":0.01018,"7.2-7.4":0.06111,"13.0":0.01018,"17.0":0.02037,"19.0":0.01018},I:{"0":0.01215,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":1.36147,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.05885,"11":0.01177,_:"6 7 9 10 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.20665},Q:{_:"14.9"},O:{"0":0.28567},H:{all:0},L:{"0":53.30694}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/BA.js b/server/api/node_modules/caniuse-lite/data/regions/BA.js new file mode 100644 index 0000000..c0df8b8 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/BA.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.00464,"52":0.02786,"77":0.00464,"99":0.00464,"115":0.274,"125":0.00929,"127":0.00464,"129":0.00464,"136":0.00464,"138":0.03251,"140":0.02786,"142":0.00464,"143":0.00929,"145":0.00464,"146":0.00929,"147":0.0743,"148":1.67648,"149":0.31579,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 126 128 130 131 132 133 134 135 137 139 141 144 150 151 152 3.5 3.6"},D:{"49":0.00464,"53":0.02322,"64":0.01858,"66":0.00464,"68":0.00464,"71":0.00929,"75":0.00464,"76":0.00464,"78":0.01393,"79":0.03715,"80":0.00464,"83":0.00464,"84":0.00929,"85":0.00464,"86":0.00929,"87":0.02322,"88":0.00464,"89":0.00464,"91":0.00929,"93":0.00464,"94":0.01393,"100":0.00464,"101":0.00464,"103":0.12539,"104":0.10681,"105":0.10681,"106":0.14396,"107":0.11146,"108":0.10681,"109":2.09444,"110":0.11146,"111":0.10681,"112":0.29257,"114":0.01393,"116":0.2322,"117":0.10217,"119":0.02322,"120":0.13932,"121":0.00464,"122":0.04644,"123":0.00929,"124":0.12074,"125":0.01393,"126":0.05108,"127":0.00929,"128":0.14396,"129":0.01858,"130":0.0418,"131":0.27864,"132":0.05573,"133":0.24613,"134":0.06502,"135":0.06037,"136":0.02322,"137":0.01858,"138":0.20898,"139":0.35294,"140":0.05108,"141":0.10681,"142":0.10217,"143":0.16718,"144":0.5805,"145":12.22301,"146":10.76015,"147":0.00929,"148":0.00464,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 54 55 56 57 58 59 60 61 62 63 65 67 69 70 72 73 74 77 81 90 92 95 96 97 98 99 102 113 115 118 149 150"},F:{"28":0.0418,"40":0.01393,"46":0.1161,"94":0.00464,"95":0.0743,"96":0.0418,"109":0.00464,"117":0.00464,"118":0.00464,"119":0.00464,"120":0.00464,"126":0.01393,"127":0.60372,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.01858,"92":0.00464,"109":0.00464,"113":0.00464,"122":0.00929,"129":0.00464,"133":0.00929,"134":0.00464,"135":0.00464,"136":0.00464,"137":0.00464,"138":0.00464,"139":0.00464,"140":0.00464,"141":0.00464,"142":0.00464,"143":0.02322,"144":0.05573,"145":1.27246,"146":1.24459,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 114 115 116 117 118 119 120 121 123 124 125 126 127 128 130 131 132"},E:{"14":0.00464,_:"4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 15.1 15.2-15.3 16.0 16.1 16.2 16.4 17.0 17.2 18.0 26.5 TP","11.1":0.00929,"12.1":0.00464,"13.1":0.00464,"14.1":0.01393,"15.4":0.00464,"15.5":0.00464,"15.6":0.08359,"16.3":0.00929,"16.5":0.00464,"16.6":0.10217,"17.1":0.03251,"17.3":0.00464,"17.4":0.01393,"17.5":0.03251,"17.6":0.1161,"18.1":0.00464,"18.2":0.00464,"18.3":0.01393,"18.4":0.00464,"18.5-18.7":0.01393,"26.0":0.02322,"26.1":0.00929,"26.2":0.08359,"26.3":0.30186,"26.4":0.01393},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00099,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00199,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00497,"11.0-11.2":0.12519,"11.3-11.4":0.00298,"12.0-12.1":0,"12.2-12.5":0.03875,"13.0-13.1":0,"13.2":0.0149,"13.3":0.00199,"13.4-13.7":0.00497,"14.0-14.4":0.00894,"14.5-14.8":0.00894,"15.0-15.1":0.01292,"15.2-15.3":0.00795,"15.4":0.00994,"15.5":0.01093,"15.6-15.8":0.17586,"16.0":0.01788,"16.1":0.03477,"16.2":0.01987,"16.3":0.03577,"16.4":0.00795,"16.5":0.0149,"16.6-16.7":0.24441,"17.0":0.01093,"17.1":0.01788,"17.2":0.0159,"17.3":0.02186,"17.4":0.03577,"17.5":0.06756,"17.6-17.7":0.17387,"18.0":0.03775,"18.1":0.0775,"18.2":0.04074,"18.3":0.13015,"18.4":0.06259,"18.5-18.7":1.99105,"26.0":0.12419,"26.1":0.18877,"26.2":1.11078,"26.3":4.82561,"26.4":0.18082,"26.5":0},P:{"4":0.37235,"22":0.42407,"23":0.04137,"24":0.02069,"25":0.08274,"26":0.03103,"27":0.05172,"28":0.06206,"29":3.15463,_:"20 21 5.0-5.4 6.2-6.4 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0","7.2-7.4":0.0724,"8.2":0.03103,"19.0":0.01034},I:{"0":0.72241,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00036},K:{"0":0.2196,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.10712},Q:{_:"14.9"},O:{"0":0.01071},H:{all:0},L:{"0":45.22162}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/BB.js b/server/api/node_modules/caniuse-lite/data/regions/BB.js new file mode 100644 index 0000000..d3349a2 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/BB.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.0773,"115":0.01546,"139":0.00515,"140":0.02577,"146":0.00515,"147":0.03092,"148":0.78841,"149":0.17005,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 141 142 143 144 145 150 151 152 3.5 3.6"},D:{"50":0.00515,"55":0.00515,"56":0.01031,"58":0.00515,"67":0.00515,"69":0.01031,"76":0.02061,"79":0.00515,"80":0.09275,"86":0.00515,"87":0.00515,"89":0.00515,"91":0.00515,"95":0.00515,"99":0.00515,"103":0.01546,"106":0.00515,"109":0.22673,"113":0.00515,"116":0.01031,"119":0.02577,"121":0.00515,"122":0.04122,"124":0.00515,"125":0.02061,"126":0.01546,"127":0.00515,"128":0.00515,"129":0.01031,"130":0.02577,"131":0.1752,"132":0.00515,"134":0.00515,"135":0.01031,"136":0.00515,"137":0.03092,"138":0.04122,"139":1.58712,"140":0.03092,"141":0.01031,"142":0.11852,"143":0.21127,"144":0.92239,"145":15.27865,"146":10.01228,"147":0.01546,"148":0.01031,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 51 52 53 54 57 59 60 61 62 63 64 65 66 68 70 71 72 73 74 75 77 78 81 83 84 85 88 90 92 93 94 96 97 98 100 101 102 104 105 107 108 110 111 112 114 115 117 118 120 123 133 149 150"},F:{"67":0.00515,"95":0.03607,"96":0.01546,"126":0.00515,"127":0.43285,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.00515,"18":0.00515,"119":0.00515,"133":0.00515,"137":0.00515,"140":0.00515,"141":0.00515,"142":0.05153,"143":0.03607,"144":0.0773,"145":3.99358,"146":4.14301,_:"12 13 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 120 121 122 123 124 125 126 127 128 129 130 131 132 134 135 136 138 139"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 11.1 12.1 15.1 15.2-15.3 15.4 16.0 16.2 17.0 18.0 26.5 TP","10.1":0.00515,"13.1":0.00515,"14.1":0.00515,"15.5":0.00515,"15.6":0.09275,"16.1":0.11852,"16.3":0.05668,"16.4":0.01546,"16.5":0.01031,"16.6":0.13913,"17.1":0.17005,"17.2":0.01031,"17.3":0.00515,"17.4":0.00515,"17.5":0.01546,"17.6":0.23189,"18.1":0.01031,"18.2":0.04122,"18.3":0.06184,"18.4":0.01546,"18.5-18.7":0.09791,"26.0":0.22673,"26.1":0.13398,"26.2":0.2525,"26.3":2.29824,"26.4":0.03607},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00165,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.0033,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00825,"11.0-11.2":0.20789,"11.3-11.4":0.00495,"12.0-12.1":0,"12.2-12.5":0.06435,"13.0-13.1":0,"13.2":0.02475,"13.3":0.0033,"13.4-13.7":0.00825,"14.0-14.4":0.01485,"14.5-14.8":0.01485,"15.0-15.1":0.02145,"15.2-15.3":0.0132,"15.4":0.0165,"15.5":0.01815,"15.6-15.8":0.29204,"16.0":0.0297,"16.1":0.05775,"16.2":0.033,"16.3":0.0594,"16.4":0.0132,"16.5":0.02475,"16.6-16.7":0.40588,"17.0":0.01815,"17.1":0.0297,"17.2":0.0264,"17.3":0.0363,"17.4":0.0594,"17.5":0.11219,"17.6-17.7":0.28874,"18.0":0.0627,"18.1":0.12869,"18.2":0.06765,"18.3":0.21614,"18.4":0.10394,"18.5-18.7":3.30644,"26.0":0.20624,"26.1":0.31348,"26.2":1.84461,"26.3":8.01366,"26.4":0.30029,"26.5":0},P:{"4":0.01093,"21":0.01093,"22":0.0765,"25":0.01093,"26":0.02186,"27":0.02186,"28":0.06558,"29":3.56293,_:"20 23 24 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 14.0 15.0 16.0 18.0 19.0","7.2-7.4":0.03279,"13.0":0.03279,"17.0":0.09836},I:{"0":0.03874,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.2375,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":1.7013},Q:{_:"14.9"},O:{"0":0.00969},H:{all:0},L:{"0":32.26381}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/BD.js b/server/api/node_modules/caniuse-lite/data/regions/BD.js new file mode 100644 index 0000000..fd08500 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/BD.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.04422,"52":0.00442,"72":0.00442,"115":0.6633,"122":0.00442,"123":0.00884,"127":0.00442,"128":0.00442,"133":0.00442,"134":0.00442,"135":0.00442,"136":0.00442,"138":0.00442,"139":0.01327,"140":0.08402,"142":0.00442,"143":0.00442,"144":0.00884,"145":0.00442,"146":0.02653,"147":0.08402,"148":2.89199,"149":0.34049,"150":0.00884,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 124 125 126 129 130 131 132 137 141 151 152 3.5 3.6"},D:{"56":0.00442,"66":0.00442,"68":0.00442,"69":0.00884,"70":0.00442,"72":0.00442,"73":0.01327,"74":0.00442,"75":0.01327,"76":0.00442,"81":0.00442,"83":0.00442,"86":0.00442,"90":0.00442,"91":0.00442,"93":0.00442,"98":0.00442,"102":0.00442,"103":0.46431,"104":0.4422,"105":0.43336,"106":0.43778,"107":0.43336,"108":0.43778,"109":1.66709,"110":0.42893,"111":0.43336,"112":1.18952,"113":0.00442,"114":0.00884,"116":0.86671,"117":0.43336,"119":0.01327,"120":0.43336,"121":0.00884,"122":0.02211,"123":0.00884,"124":0.44662,"125":0.01769,"126":0.01327,"127":0.00884,"128":0.01327,"129":0.01327,"130":0.01769,"131":0.92862,"132":0.02211,"133":0.89324,"134":0.02653,"135":0.02653,"136":0.03538,"137":0.01327,"138":0.11497,"139":0.42893,"140":0.03538,"141":0.02653,"142":0.07075,"143":0.0796,"144":0.85787,"145":12.53195,"146":5.3064,"147":0.0398,"148":0.00442,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 57 58 59 60 61 62 63 64 65 67 71 77 78 79 80 84 85 87 88 89 92 94 95 96 97 99 100 101 115 118 149 150"},F:{"56":0.00442,"90":0.00442,"95":0.0398,"96":0.04422,"97":0.00442,"114":0.00442,"122":0.00442,"126":0.00442,"127":0.17688,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 91 92 93 94 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 120 121 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00442,"92":0.00884,"109":0.00442,"114":0.01327,"131":0.00884,"132":0.00884,"133":0.00442,"134":0.00442,"135":0.00884,"136":0.00442,"137":0.00442,"138":0.00442,"139":0.00442,"141":0.00884,"142":0.00442,"143":0.01327,"144":0.01769,"145":0.69868,"146":0.43778,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 140"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.3 16.4 17.0 17.2 18.4 26.5 TP","13.1":0.00442,"14.1":0.00442,"15.6":0.00442,"16.5":0.00442,"16.6":0.01327,"17.1":0.00442,"17.3":0.00442,"17.4":0.00884,"17.5":0.00442,"17.6":0.01327,"18.0":0.00442,"18.1":0.00442,"18.2":0.00442,"18.3":0.00442,"18.5-18.7":0.00884,"26.0":0.00442,"26.1":0.00442,"26.2":0.02211,"26.3":0.16804,"26.4":0.00884},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00022,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00045,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00112,"11.0-11.2":0.02811,"11.3-11.4":0.00067,"12.0-12.1":0,"12.2-12.5":0.0087,"13.0-13.1":0,"13.2":0.00335,"13.3":0.00045,"13.4-13.7":0.00112,"14.0-14.4":0.00201,"14.5-14.8":0.00201,"15.0-15.1":0.0029,"15.2-15.3":0.00178,"15.4":0.00223,"15.5":0.00245,"15.6-15.8":0.03949,"16.0":0.00402,"16.1":0.00781,"16.2":0.00446,"16.3":0.00803,"16.4":0.00178,"16.5":0.00335,"16.6-16.7":0.05489,"17.0":0.00245,"17.1":0.00402,"17.2":0.00357,"17.3":0.00491,"17.4":0.00803,"17.5":0.01517,"17.6-17.7":0.03905,"18.0":0.00848,"18.1":0.0174,"18.2":0.00915,"18.3":0.02923,"18.4":0.01406,"18.5-18.7":0.44713,"26.0":0.02789,"26.1":0.04239,"26.2":0.24945,"26.3":1.08369,"26.4":0.04061,"26.5":0},P:{"23":0.01039,"25":0.01039,"26":0.02078,"27":0.02078,"28":0.02078,"29":0.40523,_:"4 20 21 22 24 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 18.0 19.0","7.2-7.4":0.03117,"17.0":0.01039},I:{"0":0.02229,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":1.23832,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.03095,"11":0.03095,_:"6 7 9 10 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{"2.5":0.00558,_:"3.0-3.1"},R:{_:"0"},M:{"0":0.11714},Q:{_:"14.9"},O:{"0":1.37777},H:{all:0},L:{"0":57.00347}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/BE.js b/server/api/node_modules/caniuse-lite/data/regions/BE.js new file mode 100644 index 0000000..1386e5e --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/BE.js @@ -0,0 +1 @@ +module.exports={C:{"48":0.00503,"52":0.00503,"74":0.00503,"78":0.01006,"102":0.0151,"115":0.16102,"123":0.01006,"125":0.00503,"127":0.00503,"128":0.00503,"133":0.00503,"134":0.00503,"135":0.00503,"136":0.01006,"138":0.00503,"139":0.00503,"140":0.14593,"141":0.00503,"142":0.01006,"143":0.01006,"144":0.0151,"145":0.0151,"146":0.0151,"147":0.13083,"148":2.21911,"149":0.43275,"150":0.00503,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 124 126 129 130 131 132 137 151 152 3.5 3.6"},D:{"39":0.00503,"40":0.00503,"41":0.00503,"42":0.00503,"43":0.00503,"44":0.00503,"45":0.00503,"46":0.00503,"47":0.00503,"48":0.00503,"49":0.02013,"50":0.00503,"51":0.00503,"52":0.00503,"53":0.00503,"54":0.00503,"55":0.00503,"56":0.00503,"57":0.00503,"58":0.00503,"59":0.00503,"60":0.00503,"74":0.00503,"87":0.00503,"88":0.00503,"92":0.00503,"93":0.00503,"100":0.00503,"101":0.00503,"103":0.03522,"104":0.00503,"105":0.00503,"106":0.00503,"107":0.00503,"108":0.00503,"109":0.3623,"110":0.00503,"111":0.00503,"112":0.01006,"114":0.00503,"116":0.09058,"117":0.19625,"119":0.01006,"120":0.01006,"121":0.01006,"122":0.05032,"123":0.0151,"124":0.0151,"125":0.11574,"126":0.04529,"127":0.00503,"128":0.08554,"129":0.01006,"130":0.08554,"131":0.05535,"132":0.02516,"133":0.04529,"134":0.02013,"135":0.03019,"136":0.03522,"137":0.04529,"138":0.15096,"139":0.08051,"140":0.05535,"141":0.09058,"142":0.09561,"143":0.26166,"144":0.74474,"145":11.66418,"146":9.14818,"147":0.02013,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 61 62 63 64 65 66 67 68 69 70 71 72 73 75 76 77 78 79 80 81 83 84 85 86 89 90 91 94 95 96 97 98 99 102 113 115 118 148 149 150"},F:{"95":0.02516,"96":0.03019,"114":0.00503,"124":0.00503,"125":0.00503,"126":0.0151,"127":0.67932,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 120 121 122 123 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.00503,"108":0.00503,"109":0.05032,"122":0.00503,"124":0.00503,"125":0.03522,"126":0.00503,"128":0.00503,"131":0.00503,"133":0.00503,"134":0.00503,"135":0.00503,"136":0.01006,"137":0.00503,"138":0.0151,"139":0.00503,"140":0.01006,"141":0.01006,"142":0.03019,"143":0.05535,"144":0.21134,"145":4.1665,"146":4.20675,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 110 111 112 113 114 115 116 117 118 119 120 121 123 127 129 130 132"},E:{"14":0.00503,_:"4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 26.5 TP","11.1":0.00503,"12.1":0.01006,"13.1":0.02013,"14.1":0.04026,"15.1":0.00503,"15.2-15.3":0.00503,"15.4":0.01006,"15.5":0.00503,"15.6":0.2516,"16.0":0.0151,"16.1":0.02013,"16.2":0.02013,"16.3":0.03019,"16.4":0.01006,"16.5":0.02516,"16.6":0.32205,"17.0":0.00503,"17.1":0.31198,"17.2":0.02013,"17.3":0.03019,"17.4":0.04026,"17.5":0.07548,"17.6":0.38746,"18.0":0.04026,"18.1":0.04529,"18.2":0.02516,"18.3":0.06542,"18.4":0.07548,"18.5-18.7":0.16606,"26.0":0.05032,"26.1":0.08554,"26.2":0.60384,"26.3":3.19532,"26.4":0.12077},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00203,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00406,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.01016,"11.0-11.2":0.25601,"11.3-11.4":0.0061,"12.0-12.1":0,"12.2-12.5":0.07924,"13.0-13.1":0,"13.2":0.03048,"13.3":0.00406,"13.4-13.7":0.01016,"14.0-14.4":0.01829,"14.5-14.8":0.01829,"15.0-15.1":0.02641,"15.2-15.3":0.01625,"15.4":0.02032,"15.5":0.02235,"15.6-15.8":0.35963,"16.0":0.03657,"16.1":0.07111,"16.2":0.04064,"16.3":0.07315,"16.4":0.01625,"16.5":0.03048,"16.6-16.7":0.49983,"17.0":0.02235,"17.1":0.03657,"17.2":0.03251,"17.3":0.0447,"17.4":0.07315,"17.5":0.13816,"17.6-17.7":0.35557,"18.0":0.07721,"18.1":0.15848,"18.2":0.0833,"18.3":0.26617,"18.4":0.128,"18.5-18.7":4.07178,"26.0":0.25398,"26.1":0.38605,"26.2":2.27158,"26.3":9.86857,"26.4":0.36979,"26.5":0},P:{"4":0.01063,"21":0.01063,"22":0.01063,"23":0.01063,"24":0.01063,"25":0.01063,"26":0.04252,"27":0.01063,"28":0.08505,"29":3.37003,_:"20 5.0-5.4 6.2-6.4 7.2-7.4 8.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","9.2":0.01063},I:{"0":0.0695,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00003},K:{"0":0.19379,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.43727},Q:{_:"14.9"},O:{"0":0.02981},H:{all:0},L:{"0":28.84835}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/BF.js b/server/api/node_modules/caniuse-lite/data/regions/BF.js new file mode 100644 index 0000000..7243f81 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/BF.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.00638,"62":0.00319,"72":0.00319,"110":0.00319,"111":0.00319,"115":0.19465,"117":0.00319,"123":0.00319,"126":0.00319,"127":0.02234,"138":0.09892,"140":0.02553,"141":0.00319,"142":0.00319,"143":0.00319,"144":0.00319,"145":0.02553,"146":0.01276,"147":0.18189,"148":1.21577,"149":0.18508,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 63 64 65 66 67 68 69 70 71 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 112 113 114 116 118 119 120 121 122 124 125 128 129 130 131 132 133 134 135 136 137 139 150 151 152 3.5 3.6"},D:{"49":0.00319,"64":0.00638,"65":0.01596,"66":0.00957,"68":0.00957,"69":0.00957,"72":0.01596,"73":0.00319,"74":0.00319,"75":0.01276,"79":0.00319,"81":0.00638,"83":0.01276,"86":0.07978,"87":0.01276,"90":0.00957,"92":0.00319,"93":0.01276,"95":0.00638,"98":0.02872,"101":0.00957,"103":0.00957,"109":0.97645,"113":0.00319,"114":0.02872,"115":0.00957,"116":0.01276,"119":0.02872,"120":0.00957,"122":0.02234,"123":0.00319,"124":0.01276,"125":0.01276,"126":0.01596,"127":0.00638,"128":0.05425,"129":0.01596,"130":0.00319,"131":0.01596,"132":0.00319,"133":0.00319,"134":0.01276,"135":0.0351,"136":0.02234,"137":0.00957,"138":0.14998,"139":0.15955,"140":0.01276,"141":0.05106,"142":0.02872,"143":0.09573,"144":0.24252,"145":3.81005,"146":3.02507,"147":0.00957,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 67 70 71 76 77 78 80 84 85 88 89 91 94 96 97 99 100 102 104 105 106 107 108 110 111 112 117 118 121 148 149 150"},F:{"63":0.00319,"67":0.00319,"79":0.00319,"91":0.00638,"95":0.0351,"96":0.0702,"112":0.00319,"114":0.00319,"119":0.00319,"123":0.00319,"125":0.00319,"126":0.0351,"127":0.54566,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 64 65 66 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 85 86 87 88 89 90 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 113 115 116 117 118 120 121 122 124 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"17":0.00638,"18":0.00638,"84":0.00319,"85":0.00319,"89":0.00319,"90":0.00638,"92":0.03829,"100":0.00638,"109":0.01276,"113":0.00319,"122":0.00319,"132":0.02234,"136":0.00319,"137":0.00319,"138":0.00638,"140":0.00319,"141":0.00319,"142":0.04787,"143":0.01276,"144":0.06382,"145":1.46467,"146":1.23811,_:"12 13 14 15 16 79 80 81 83 86 87 88 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 114 115 116 117 118 119 120 121 123 124 125 126 127 128 129 130 131 133 134 135 139"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.3 16.4 16.5 17.0 17.2 17.3 17.5 18.0 18.1 18.2 26.5 TP","5.1":0.00319,"13.1":0.00319,"14.1":0.00957,"15.6":0.01276,"16.6":0.01596,"17.1":0.00319,"17.4":0.00319,"17.6":0.02234,"18.3":0.00319,"18.4":0.00638,"18.5-18.7":0.00638,"26.0":0.00319,"26.1":0.01596,"26.2":0.02553,"26.3":0.11807,"26.4":0.00957},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00034,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00068,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00171,"11.0-11.2":0.04307,"11.3-11.4":0.00103,"12.0-12.1":0,"12.2-12.5":0.01333,"13.0-13.1":0,"13.2":0.00513,"13.3":0.00068,"13.4-13.7":0.00171,"14.0-14.4":0.00308,"14.5-14.8":0.00308,"15.0-15.1":0.00444,"15.2-15.3":0.00273,"15.4":0.00342,"15.5":0.00376,"15.6-15.8":0.0605,"16.0":0.00615,"16.1":0.01196,"16.2":0.00684,"16.3":0.01231,"16.4":0.00273,"16.5":0.00513,"16.6-16.7":0.08409,"17.0":0.00376,"17.1":0.00615,"17.2":0.00547,"17.3":0.00752,"17.4":0.01231,"17.5":0.02324,"17.6-17.7":0.05982,"18.0":0.01299,"18.1":0.02666,"18.2":0.01401,"18.3":0.04478,"18.4":0.02153,"18.5-18.7":0.68499,"26.0":0.04273,"26.1":0.06494,"26.2":0.38215,"26.3":1.66018,"26.4":0.06221,"26.5":0},P:{"4":0.01048,"26":0.02095,"27":0.06285,"28":0.05238,"29":0.46092,_:"20 21 22 23 24 25 5.0-5.4 6.2-6.4 7.2-7.4 8.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","9.2":0.07333},I:{"0":0.08844,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00004},K:{"0":2.00185,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.06128},Q:{"14.9":0.00681},O:{"0":0.20427},H:{all:0},L:{"0":76.95135}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/BG.js b/server/api/node_modules/caniuse-lite/data/regions/BG.js new file mode 100644 index 0000000..b7e706d --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/BG.js @@ -0,0 +1 @@ +module.exports={C:{"52":0.03197,"70":0.004,"84":0.05594,"88":0.004,"89":0.01199,"91":0.004,"100":0.004,"101":0.004,"102":0.004,"104":0.004,"108":0.01199,"113":0.004,"115":0.44356,"126":0.004,"127":0.00799,"128":0.00799,"132":0.004,"134":0.01199,"135":0.00799,"136":0.01199,"137":0.01199,"138":0.004,"139":0.004,"140":0.19181,"141":0.00799,"142":0.01998,"143":0.01199,"144":0.00799,"145":0.01598,"146":0.02398,"147":0.17582,"148":2.14186,"149":0.43956,"150":0.004,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 71 72 73 74 75 76 77 78 79 80 81 82 83 85 86 87 90 92 93 94 95 96 97 98 99 103 105 106 107 109 110 111 112 114 116 117 118 119 120 121 122 123 124 125 129 130 131 133 151 152 3.5 3.6"},D:{"39":0.004,"40":0.004,"41":0.004,"42":0.004,"43":0.004,"44":0.004,"45":0.004,"46":0.004,"47":0.004,"48":0.004,"49":0.01199,"50":0.004,"51":0.004,"52":0.004,"53":0.004,"54":0.004,"55":0.004,"56":0.004,"57":0.004,"58":0.004,"59":0.004,"60":0.004,"73":0.004,"79":0.004,"83":0.004,"86":0.004,"87":0.004,"91":0.004,"93":0.004,"95":0.004,"98":0.004,"99":0.004,"100":0.004,"101":0.004,"103":0.02398,"104":0.01598,"105":0.01598,"106":0.01998,"107":0.01598,"108":0.02797,"109":1.35464,"110":0.01598,"111":0.01998,"112":0.03596,"114":0.00799,"115":0.00799,"116":0.10789,"117":0.01598,"119":0.00799,"120":0.02398,"121":0.03197,"122":0.02797,"123":0.00799,"124":0.03197,"125":0.00799,"126":0.01598,"127":0.004,"128":0.01598,"129":0.00799,"130":0.01199,"131":0.07992,"132":0.01998,"133":0.03996,"134":0.01598,"135":0.03197,"136":0.01998,"137":0.02398,"138":0.10789,"139":0.11988,"140":0.03197,"141":0.02398,"142":0.05994,"143":0.17582,"144":0.44755,"145":10.00998,"146":9.07891,"147":0.01998,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 61 62 63 64 65 66 67 68 69 70 71 72 74 75 76 77 78 80 81 84 85 88 89 90 92 94 96 97 102 113 118 148 149 150"},F:{"46":0.004,"85":0.004,"90":0.004,"94":0.01199,"95":0.05994,"96":0.03596,"123":0.004,"124":0.004,"126":0.01998,"127":0.51149,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 86 87 88 89 91 92 93 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"109":0.04795,"129":0.004,"130":0.01199,"131":0.004,"132":0.004,"133":0.004,"134":0.004,"135":0.004,"136":0.01199,"138":0.00799,"139":0.00799,"140":0.004,"141":0.004,"142":0.00799,"143":0.02398,"144":0.06394,"145":1.84615,"146":2.34166,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 137"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 17.0 26.5 TP","14.1":0.004,"15.1":0.004,"15.6":0.02398,"16.3":0.004,"16.4":0.004,"16.5":0.00799,"16.6":0.03197,"17.1":0.03596,"17.2":0.004,"17.3":0.004,"17.4":0.004,"17.5":0.00799,"17.6":0.02797,"18.0":0.004,"18.1":0.004,"18.2":0.004,"18.3":0.00799,"18.4":0.004,"18.5-18.7":0.01998,"26.0":0.00799,"26.1":0.01199,"26.2":0.06394,"26.3":0.3037,"26.4":0.01598},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00111,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00222,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00554,"11.0-11.2":0.13965,"11.3-11.4":0.00333,"12.0-12.1":0,"12.2-12.5":0.04323,"13.0-13.1":0,"13.2":0.01663,"13.3":0.00222,"13.4-13.7":0.00554,"14.0-14.4":0.00998,"14.5-14.8":0.00998,"15.0-15.1":0.01441,"15.2-15.3":0.00887,"15.4":0.01108,"15.5":0.01219,"15.6-15.8":0.19618,"16.0":0.01995,"16.1":0.03879,"16.2":0.02217,"16.3":0.0399,"16.4":0.00887,"16.5":0.01663,"16.6-16.7":0.27265,"17.0":0.01219,"17.1":0.01995,"17.2":0.01773,"17.3":0.02438,"17.4":0.0399,"17.5":0.07537,"17.6-17.7":0.19396,"18.0":0.04212,"18.1":0.08645,"18.2":0.04544,"18.3":0.14519,"18.4":0.06983,"18.5-18.7":2.22111,"26.0":0.13854,"26.1":0.21058,"26.2":1.23912,"26.3":5.3832,"26.4":0.20172,"26.5":0},P:{"21":0.01018,"22":0.02036,"23":0.02036,"24":0.03054,"25":0.03054,"26":0.03054,"27":0.08143,"28":0.11197,"29":3.19627,_:"4 20 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0","19.0":0.01018},I:{"0":0.14996,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00008},K:{"0":0.26418,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.27618},Q:{_:"14.9"},O:{"0":0.01801},H:{all:0},L:{"0":51.31654}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/BH.js b/server/api/node_modules/caniuse-lite/data/regions/BH.js new file mode 100644 index 0000000..6cd4ae7 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/BH.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.00633,"115":0.02217,"134":0.00633,"140":0.01584,"146":0.00317,"147":0.03167,"148":0.44021,"149":0.10451,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 135 136 137 138 139 141 142 143 144 145 150 151 152 3.5 3.6"},D:{"41":0.00317,"49":0.00317,"50":0.00317,"51":0.00317,"52":0.01267,"55":0.00317,"56":0.00317,"57":0.00317,"60":0.00317,"65":0.00317,"68":0.00633,"69":0.00317,"70":0.00317,"79":0.019,"81":0.00317,"83":0.00317,"87":0.00317,"89":0.00317,"91":0.00317,"93":0.06651,"95":0.01267,"98":0.00317,"102":0.00317,"103":0.21219,"104":0.14885,"105":0.14885,"106":0.15518,"107":0.15202,"108":0.14568,"109":0.37687,"110":0.14885,"111":0.14252,"112":0.38321,"114":0.05384,"116":0.3167,"117":0.14252,"118":0.00633,"119":0.06967,"120":0.14568,"121":0.00317,"122":0.03484,"123":0.00633,"124":0.14568,"125":0.00633,"126":0.57639,"127":0.02217,"128":0.01584,"129":0.00633,"130":0.01584,"131":0.36737,"132":0.07284,"133":0.31037,"134":0.02217,"135":0.01584,"136":0.0095,"137":0.0285,"138":0.10134,"139":0.11085,"140":0.09184,"141":0.06017,"142":0.05384,"143":0.11718,"144":0.41804,"145":6.08697,"146":5.42507,"147":0.00317,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 42 43 44 45 46 47 48 53 54 58 59 61 62 63 64 66 67 71 72 73 74 75 76 77 78 80 84 85 86 88 90 92 94 96 97 99 100 101 113 115 148 149 150"},F:{"94":0.00633,"95":0.08868,"96":0.08234,"120":0.00317,"126":0.0095,"127":0.2882,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00317,"92":0.00317,"109":0.00633,"124":0.00317,"129":0.00317,"131":0.00633,"133":0.00317,"134":0.00317,"135":0.00317,"136":0.01267,"140":0.00633,"141":0.00317,"142":0.01267,"143":0.0095,"144":0.06017,"145":1.34914,"146":1.11795,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 122 123 125 126 127 128 130 132 137 138 139"},E:{"13":0.00633,_:"4 5 6 7 8 9 10 11 12 14 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 15.2-15.3 15.4 16.0 16.2 17.0 17.2 26.5 TP","5.1":0.00633,"15.5":0.00317,"15.6":0.019,"16.1":0.00317,"16.3":0.01584,"16.4":0.019,"16.5":0.0095,"16.6":0.05067,"17.1":0.02534,"17.3":0.00317,"17.4":0.0095,"17.5":0.02217,"17.6":0.08551,"18.0":0.01267,"18.1":0.00633,"18.2":0.0095,"18.3":0.10134,"18.4":0.01267,"18.5-18.7":0.05701,"26.0":0.038,"26.1":0.10134,"26.2":0.12668,"26.3":0.62073,"26.4":0.02217},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00289,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00578,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.01444,"11.0-11.2":0.36396,"11.3-11.4":0.00867,"12.0-12.1":0,"12.2-12.5":0.11265,"13.0-13.1":0,"13.2":0.04333,"13.3":0.00578,"13.4-13.7":0.01444,"14.0-14.4":0.026,"14.5-14.8":0.026,"15.0-15.1":0.03755,"15.2-15.3":0.02311,"15.4":0.02889,"15.5":0.03177,"15.6-15.8":0.51128,"16.0":0.05199,"16.1":0.1011,"16.2":0.05777,"16.3":0.10399,"16.4":0.02311,"16.5":0.04333,"16.6-16.7":0.71059,"17.0":0.03177,"17.1":0.05199,"17.2":0.04622,"17.3":0.06355,"17.4":0.10399,"17.5":0.19642,"17.6-17.7":0.5055,"18.0":0.10977,"18.1":0.22531,"18.2":0.11843,"18.3":0.3784,"18.4":0.18198,"18.5-18.7":5.78869,"26.0":0.36107,"26.1":0.54883,"26.2":3.22942,"26.3":14.02978,"26.4":0.52572,"26.5":0},P:{"4":0.01014,"22":0.01014,"24":0.05069,"25":0.06082,"26":0.13178,"27":0.10137,"28":0.21288,"29":2.85868,_:"20 21 23 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.0273,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.77202,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.20496},Q:{_:"14.9"},O:{"0":1.48938},H:{all:0},L:{"0":41.69941}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/BI.js b/server/api/node_modules/caniuse-lite/data/regions/BI.js new file mode 100644 index 0000000..ff8d375 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/BI.js @@ -0,0 +1 @@ +module.exports={C:{"48":0.02957,"64":0.01267,"69":0.00422,"88":0.01267,"89":0.00422,"96":0.00845,"115":0.05914,"127":0.0169,"129":0.00422,"134":0.00845,"136":0.00845,"139":0.0169,"140":0.06758,"142":0.02534,"143":0.00422,"145":0.01267,"146":0.02112,"147":0.16896,"148":1.33478,"149":0.28723,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 65 66 67 68 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 90 91 92 93 94 95 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 128 130 131 132 133 135 137 138 141 144 150 151 152 3.5 3.6"},D:{"55":0.00422,"58":0.00845,"63":0.00422,"64":0.00422,"65":0.00422,"66":0.0169,"67":0.04646,"69":0.00422,"70":0.00845,"71":0.00422,"73":0.00845,"74":0.0169,"79":0.00422,"80":0.0887,"81":0.0169,"83":0.00422,"84":0.00422,"85":0.00845,"86":0.0169,"87":0.0169,"88":0.02534,"93":0.0169,"94":0.01267,"97":0.00422,"98":0.00845,"99":0.01267,"103":0.06758,"105":0.03379,"106":0.0169,"108":0.00422,"109":1.74029,"111":0.00422,"112":0.00845,"113":0.0169,"114":0.00422,"115":0.00422,"116":0.08026,"120":0.00422,"121":0.00845,"122":0.0169,"123":0.05069,"125":0.04646,"126":0.02112,"127":0.0169,"128":0.05069,"129":0.01267,"130":0.00422,"131":0.02957,"132":0.00422,"133":0.04224,"134":0.01267,"135":0.03802,"136":0.0169,"137":0.08026,"138":0.16474,"139":0.15206,"140":0.04646,"141":0.02957,"142":0.05069,"143":0.19853,"144":0.32525,"145":7.23571,"146":6.36134,"147":0.00422,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 56 57 59 60 61 62 68 72 75 76 77 78 89 90 91 92 95 96 100 101 102 104 107 110 117 118 119 124 148 149 150"},F:{"40":0.00422,"50":0.05069,"53":0.00422,"62":0.0169,"86":0.01267,"95":0.02112,"96":0.06758,"116":0.0169,"118":0.00422,"124":0.01267,"125":0.0169,"126":0.04224,"127":0.87437,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 41 42 43 44 45 46 47 48 49 51 52 54 55 56 57 58 60 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 117 119 120 121 122 123 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.01267,"16":0.00422,"17":0.02534,"18":0.09293,"89":0.0169,"90":0.00845,"92":0.12672,"100":0.00845,"109":0.02534,"114":0.01267,"116":0.00422,"122":0.00845,"130":0.00845,"131":0.00422,"133":0.00422,"135":0.00422,"136":0.0169,"138":0.0169,"139":0.00422,"140":0.0169,"141":0.02112,"142":0.0169,"143":0.02112,"144":0.16474,"145":1.99795,"146":1.17427,_:"12 13 15 79 80 81 83 84 85 86 87 88 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 115 117 118 119 120 121 123 124 125 126 127 128 129 132 134 137"},E:{"11":0.00845,"14":0.09715,_:"4 5 6 7 8 9 10 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 15.1 15.2-15.3 15.4 16.0 16.1 16.2 16.3 16.4 16.5 17.0 17.2 17.3 17.4 18.0 18.2 18.3 18.4 26.0 26.5 TP","11.1":0.00422,"12.1":0.00845,"13.1":0.05069,"14.1":0.02534,"15.5":0.00422,"15.6":0.0169,"16.6":0.09715,"17.1":0.00422,"17.5":0.03379,"17.6":0.02534,"18.1":0.00422,"18.5-18.7":0.00422,"26.1":0.04224,"26.2":0.00422,"26.3":0.09293,"26.4":0.02534},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00035,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00071,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00177,"11.0-11.2":0.04454,"11.3-11.4":0.00106,"12.0-12.1":0,"12.2-12.5":0.01379,"13.0-13.1":0,"13.2":0.0053,"13.3":0.00071,"13.4-13.7":0.00177,"14.0-14.4":0.00318,"14.5-14.8":0.00318,"15.0-15.1":0.0046,"15.2-15.3":0.00283,"15.4":0.00353,"15.5":0.00389,"15.6-15.8":0.06257,"16.0":0.00636,"16.1":0.01237,"16.2":0.00707,"16.3":0.01273,"16.4":0.00283,"16.5":0.0053,"16.6-16.7":0.08696,"17.0":0.00389,"17.1":0.00636,"17.2":0.00566,"17.3":0.00778,"17.4":0.01273,"17.5":0.02404,"17.6-17.7":0.06186,"18.0":0.01343,"18.1":0.02757,"18.2":0.01449,"18.3":0.04631,"18.4":0.02227,"18.5-18.7":0.7084,"26.0":0.04419,"26.1":0.06716,"26.2":0.3952,"26.3":1.71691,"26.4":0.06434,"26.5":0},P:{"22":0.01031,"23":0.01031,"24":0.07216,"25":0.01031,"26":0.01031,"27":0.11339,"28":0.13401,"29":0.91746,_:"4 20 21 5.0-5.4 8.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 18.0","6.2-6.4":0.01031,"7.2-7.4":0.07216,"9.2":0.01031,"16.0":0.09278,"17.0":0.01031,"19.0":0.01031},I:{"0":0.01731,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":2.56454,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{"2.5":0.01155,_:"3.0-3.1"},R:{_:"0"},M:{"0":0.05776},Q:{"14.9":0.04621},O:{"0":0.50251},H:{all:0},L:{"0":64.7216}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/BJ.js b/server/api/node_modules/caniuse-lite/data/regions/BJ.js new file mode 100644 index 0000000..3feb534 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/BJ.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.00397,"47":0.00794,"50":0.00397,"65":0.00397,"68":0.00397,"69":0.00397,"71":0.00397,"72":0.00397,"103":0.00794,"106":0.01191,"115":0.08734,"127":0.01191,"128":0.00794,"131":0.00397,"135":0.00397,"136":0.00397,"140":0.04764,"143":0.01191,"144":0.00794,"146":0.01985,"147":0.13498,"148":1.39347,"149":0.4367,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 49 51 52 53 54 55 56 57 58 59 60 61 62 63 64 66 67 70 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 104 105 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 129 130 132 133 134 137 138 139 141 142 145 150 151 152 3.5 3.6"},D:{"49":0.01588,"50":0.00397,"62":0.00794,"66":0.00397,"67":0.00397,"69":0.00397,"70":0.04764,"71":0.00794,"72":0.01588,"73":0.01985,"74":0.04367,"75":0.00794,"76":0.00397,"77":0.01191,"78":0.01985,"79":0.01191,"80":0.00397,"81":0.01191,"83":0.1191,"84":0.00397,"85":0.00794,"86":0.02779,"87":0.00794,"89":0.00397,"90":0.00397,"92":0.00397,"93":0.00397,"94":0.00397,"96":0.00397,"99":0.00397,"101":0.00794,"102":0.00397,"103":0.05955,"105":0.00397,"108":0.00397,"109":0.80591,"111":0.00397,"113":0.00397,"114":0.00397,"116":0.04764,"119":0.01588,"120":0.04367,"121":0.00397,"122":0.03176,"123":0.00397,"124":0.00794,"126":0.03176,"128":0.16277,"129":0.00397,"130":0.01588,"131":0.04367,"132":0.00794,"133":0.00794,"134":0.04764,"135":0.03176,"136":0.01588,"137":0.01191,"138":0.17071,"139":0.1588,"140":0.02779,"141":0.06749,"142":0.10322,"143":0.13895,"144":0.61535,"145":7.32465,"146":6.02646,"147":0.01191,"148":0.00397,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 51 52 53 54 55 56 57 58 59 60 61 63 64 65 68 88 91 95 97 98 100 104 106 107 110 112 115 117 118 125 127 149 150"},F:{"40":0.00397,"56":0.00397,"63":0.00397,"79":0.00397,"86":0.00397,"90":0.00397,"92":0.00397,"93":0.00794,"95":0.18262,"96":0.12307,"114":0.00397,"119":0.00794,"120":0.00397,"121":0.00397,"123":0.00397,"124":0.00397,"126":0.05161,"127":0.53595,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 57 58 60 62 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 85 87 88 89 91 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 122 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.00397,"17":0.01191,"18":0.02779,"84":0.00794,"85":0.00397,"89":0.00397,"90":0.01588,"92":0.05955,"100":0.00794,"107":0.01985,"110":0.00397,"114":0.00397,"122":0.00794,"133":0.00397,"135":0.00397,"137":0.00397,"140":0.01191,"141":0.00397,"142":0.01191,"143":0.04367,"144":0.39303,"145":1.72695,"146":1.5483,_:"12 13 15 16 79 80 81 83 86 87 88 91 93 94 95 96 97 98 99 101 102 103 104 105 106 108 109 111 112 113 115 116 117 118 119 120 121 123 124 125 126 127 128 129 130 131 132 134 136 138 139"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 12.1 14.1 15.4 15.5 16.0 16.4 16.5 17.4 18.2 26.5 TP","5.1":0.00794,"11.1":0.01985,"13.1":0.10322,"15.1":0.01191,"15.2-15.3":0.00397,"15.6":0.0397,"16.1":0.00397,"16.2":0.00397,"16.3":0.02382,"16.6":0.09131,"17.0":0.00794,"17.1":0.05558,"17.2":0.00397,"17.3":0.00397,"17.5":0.00794,"17.6":0.17865,"18.0":0.00794,"18.1":0.00794,"18.3":0.00794,"18.4":0.00397,"18.5-18.7":0.03573,"26.0":0.03176,"26.1":0.00397,"26.2":0.06749,"26.3":0.27393,"26.4":0.01191},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00091,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00181,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00453,"11.0-11.2":0.11425,"11.3-11.4":0.00272,"12.0-12.1":0,"12.2-12.5":0.03536,"13.0-13.1":0,"13.2":0.0136,"13.3":0.00181,"13.4-13.7":0.00453,"14.0-14.4":0.00816,"14.5-14.8":0.00816,"15.0-15.1":0.01179,"15.2-15.3":0.00725,"15.4":0.00907,"15.5":0.00997,"15.6-15.8":0.1605,"16.0":0.01632,"16.1":0.03174,"16.2":0.01814,"16.3":0.03264,"16.4":0.00725,"16.5":0.0136,"16.6-16.7":0.22306,"17.0":0.00997,"17.1":0.01632,"17.2":0.01451,"17.3":0.01995,"17.4":0.03264,"17.5":0.06166,"17.6-17.7":0.15868,"18.0":0.03446,"18.1":0.07073,"18.2":0.03718,"18.3":0.11879,"18.4":0.05713,"18.5-18.7":1.81715,"26.0":0.11335,"26.1":0.17228,"26.2":1.01376,"26.3":4.40414,"26.4":0.16503,"26.5":0},P:{"21":0.01038,"23":0.05192,"27":0.01038,"28":0.11422,"29":0.42571,_:"4 20 22 24 25 26 5.0-5.4 6.2-6.4 8.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.3115,"9.2":0.01038},I:{"0":0.02409,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":3.53108,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.12661},Q:{"14.9":0.00603},O:{"0":0.52452},H:{all:0.02},L:{"0":59.17165}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/BM.js b/server/api/node_modules/caniuse-lite/data/regions/BM.js new file mode 100644 index 0000000..117f9e3 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/BM.js @@ -0,0 +1 @@ +module.exports={C:{"148":0.01727,"149":0.00288,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 150 151 152 3.5 3.6"},D:{"109":0.01727,"116":0.00288,"139":0.00863,"140":0.00288,"141":0.00288,"142":0.00288,"143":0.00576,"144":0.01727,"145":0.17268,"146":0.11512,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 147 148 149 150"},F:{_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"109":0.02302,"144":0.00288,"145":0.08346,"146":0.07771,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 26.5 TP","14.1":0.0259,"15.1":0.01439,"15.2-15.3":0.00288,"15.4":0.00863,"15.5":0.05756,"15.6":0.5497,"16.0":0.01151,"16.1":0.06619,"16.2":0.08058,"16.3":0.18419,"16.4":0.04029,"16.5":0.11512,"16.6":1.31237,"17.0":0.00576,"17.1":1.33539,"17.2":0.04317,"17.3":0.07483,"17.4":0.13239,"17.5":0.20146,"17.6":0.75979,"18.0":0.03454,"18.1":0.25039,"18.2":0.06332,"18.3":0.38565,"18.4":0.12375,"18.5-18.7":0.43458,"26.0":0.11512,"26.1":0.17844,"26.2":2.08655,"26.3":15.56998,"26.4":0.35399},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0071,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.01419,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.03548,"11.0-11.2":0.89409,"11.3-11.4":0.02129,"12.0-12.1":0,"12.2-12.5":0.27674,"13.0-13.1":0,"13.2":0.10644,"13.3":0.01419,"13.4-13.7":0.03548,"14.0-14.4":0.06386,"14.5-14.8":0.06386,"15.0-15.1":0.09225,"15.2-15.3":0.05677,"15.4":0.07096,"15.5":0.07806,"15.6-15.8":1.25598,"16.0":0.12773,"16.1":0.24836,"16.2":0.14192,"16.3":0.25545,"16.4":0.05677,"16.5":0.10644,"16.6-16.7":1.7456,"17.0":0.07806,"17.1":0.12773,"17.2":0.11353,"17.3":0.15611,"17.4":0.25545,"17.5":0.48252,"17.6-17.7":1.24179,"18.0":0.26965,"18.1":0.55348,"18.2":0.29093,"18.3":0.92957,"18.4":0.44704,"18.5-18.7":14.22025,"26.0":0.88699,"26.1":1.34823,"26.2":7.93325,"26.3":34.46494,"26.4":1.29146,"26.5":0},P:{"29":0.03562,_:"4 20 21 22 23 24 25 26 27 28 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.00712},Q:{_:"14.9"},O:{_:"0"},H:{all:0},L:{"0":0.27398}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/BN.js b/server/api/node_modules/caniuse-lite/data/regions/BN.js new file mode 100644 index 0000000..6e00a80 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/BN.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.00893,"69":0.00447,"115":0.20539,"136":0.00893,"138":0.00447,"140":0.00447,"143":0.00447,"144":0.00893,"146":0.00893,"147":0.08037,"148":0.88854,"149":0.2813,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 137 139 141 142 145 150 151 152 3.5 3.6"},D:{"62":0.00447,"65":0.00447,"66":0.00447,"68":0.00447,"69":0.00447,"70":0.03126,"72":0.00447,"74":0.02233,"79":0.01786,"81":0.02679,"83":0.00893,"87":0.01786,"91":0.01786,"98":0.00893,"101":0.02233,"103":0.11163,"104":0.07591,"105":0.07591,"106":0.0893,"107":0.08484,"108":0.0893,"109":0.893,"110":0.10716,"111":0.0893,"112":0.12949,"113":0.00447,"114":0.02233,"115":0.00447,"116":0.19646,"117":0.0893,"119":0.08037,"120":0.0893,"122":0.03572,"123":0.01786,"124":0.09823,"125":0.00893,"126":0.00893,"127":0.00893,"128":0.02233,"129":0.00893,"130":0.00893,"131":0.41078,"132":0.03126,"133":0.19646,"134":0.00893,"135":0.00893,"136":0.0134,"137":0.06698,"138":0.11163,"139":0.08037,"140":0.0134,"141":0.00893,"142":0.10716,"143":0.20093,"144":0.38399,"145":11.29199,"146":8.61745,"147":0.02233,"148":0.00893,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 63 64 67 71 73 75 76 77 78 80 84 85 86 88 89 90 92 93 94 95 96 97 99 100 102 118 121 149 150"},F:{"63":0.00447,"92":0.00447,"94":0.00893,"95":0.11163,"96":0.15181,"126":0.0134,"127":1.02249,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 93 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"15":0.00447,"92":0.00447,"109":0.0134,"135":0.00447,"139":0.00447,"140":0.00447,"141":0.00447,"142":0.00447,"143":0.03572,"144":0.05358,"145":1.67884,"146":3.50949,_:"12 13 14 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 136 137 138"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 10.1 11.1 12.1 13.1 15.2-15.3 16.0 17.0 26.5 TP","9.1":0.00447,"14.1":0.08484,"15.1":0.00447,"15.4":0.00447,"15.5":0.00893,"15.6":0.17414,"16.1":0.00893,"16.2":0.1027,"16.3":0.00893,"16.4":0.00447,"16.5":0.00893,"16.6":0.11609,"17.1":0.04019,"17.2":0.00893,"17.3":0.03126,"17.4":0.0134,"17.5":0.03126,"17.6":0.40185,"18.0":0.01786,"18.1":0.06698,"18.2":0.00893,"18.3":0.06698,"18.4":0.03126,"18.5-18.7":0.09823,"26.0":0.05358,"26.1":0.04019,"26.2":0.52687,"26.3":1.4288,"26.4":0.04912},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00146,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00292,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00729,"11.0-11.2":0.1838,"11.3-11.4":0.00438,"12.0-12.1":0,"12.2-12.5":0.05689,"13.0-13.1":0,"13.2":0.02188,"13.3":0.00292,"13.4-13.7":0.00729,"14.0-14.4":0.01313,"14.5-14.8":0.01313,"15.0-15.1":0.01896,"15.2-15.3":0.01167,"15.4":0.01459,"15.5":0.01605,"15.6-15.8":0.2582,"16.0":0.02626,"16.1":0.05106,"16.2":0.02918,"16.3":0.05252,"16.4":0.01167,"16.5":0.02188,"16.6-16.7":0.35886,"17.0":0.01605,"17.1":0.02626,"17.2":0.02334,"17.3":0.03209,"17.4":0.05252,"17.5":0.0992,"17.6-17.7":0.25528,"18.0":0.05543,"18.1":0.11378,"18.2":0.05981,"18.3":0.1911,"18.4":0.0919,"18.5-18.7":2.92336,"26.0":0.18235,"26.1":0.27716,"26.2":1.6309,"26.3":7.08521,"26.4":0.26549,"26.5":0},P:{"4":0.03153,"21":0.01051,"25":0.03153,"27":0.01051,"28":0.03153,"29":2.05982,_:"20 22 23 24 26 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 16.0 17.0 18.0 19.0","15.0":0.01051},I:{"0":0.00553,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":2.29768,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.17709},Q:{_:"14.9"},O:{"0":1.21748},H:{all:0.01},L:{"0":40.8314}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/BO.js b/server/api/node_modules/caniuse-lite/data/regions/BO.js new file mode 100644 index 0000000..de08193 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/BO.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.04644,"52":0.00581,"61":0.04064,"100":0.01161,"113":0.07547,"115":0.21479,"120":0.00581,"125":0.00581,"127":0.00581,"136":0.01161,"137":0.00581,"138":0.00581,"140":0.02903,"142":0.00581,"143":0.00581,"144":0.00581,"145":0.00581,"146":0.00581,"147":0.05805,"148":1.53252,"149":0.27864,"150":0.01742,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 109 110 111 112 114 116 117 118 119 121 122 123 124 126 128 129 130 131 132 133 134 135 139 141 151 152 3.5 3.6"},D:{"49":0.00581,"56":0.00581,"60":0.00581,"62":0.00581,"68":0.00581,"69":0.00581,"70":0.00581,"71":0.00581,"72":0.00581,"73":0.00581,"79":0.01161,"83":0.00581,"85":0.01161,"87":0.02903,"88":0.00581,"90":0.00581,"91":0.00581,"92":0.01161,"93":0.00581,"94":0.00581,"97":0.03483,"101":0.00581,"103":0.59211,"104":0.59211,"105":0.58631,"106":0.59792,"107":0.58631,"108":0.59792,"109":1.98531,"110":0.5805,"111":0.60953,"112":1.37579,"113":0.00581,"114":0.04064,"116":1.18422,"117":0.5805,"118":0.00581,"119":0.02903,"120":0.60953,"121":0.01161,"122":0.03483,"123":0.01161,"124":0.60372,"125":0.01161,"126":0.01742,"127":0.01742,"128":0.04644,"129":0.03483,"130":0.01742,"131":1.2771,"132":0.03483,"133":1.23066,"134":0.03483,"135":0.20318,"136":0.02322,"137":0.2322,"138":0.10449,"139":0.2322,"140":0.04644,"141":0.05805,"142":0.08708,"143":0.20898,"144":0.78948,"145":11.29653,"146":10.12973,"147":0.01742,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 57 58 59 61 63 64 65 66 67 74 75 76 77 78 80 81 84 86 89 95 96 98 99 100 102 115 148 149 150"},F:{"56":0.00581,"95":0.05225,"96":0.02322,"125":0.05805,"126":0.01161,"127":1.20164,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.00581,"18":0.00581,"92":0.02903,"100":0.00581,"109":0.03483,"122":0.01161,"133":0.00581,"134":0.00581,"135":0.00581,"137":0.00581,"138":0.01161,"139":0.00581,"140":0.01161,"141":0.00581,"142":0.01742,"143":0.06386,"144":0.06386,"145":1.75311,"146":1.98531,_:"12 13 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 123 124 125 126 127 128 129 130 131 132 136"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 14.1 15.1 15.2-15.3 15.4 15.5 16.0 16.2 16.3 16.4 16.5 17.0 17.2 17.5 18.0 18.1 18.2 18.4 26.5 TP","5.1":0.02322,"13.1":0.00581,"15.6":0.02903,"16.1":0.00581,"16.6":0.05225,"17.1":0.00581,"17.3":0.00581,"17.4":0.01161,"17.6":0.07547,"18.3":0.00581,"18.5-18.7":0.01742,"26.0":0.04644,"26.1":0.01161,"26.2":0.13352,"26.3":0.31928,"26.4":0.02903},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00036,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00071,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00179,"11.0-11.2":0.04503,"11.3-11.4":0.00107,"12.0-12.1":0,"12.2-12.5":0.01394,"13.0-13.1":0,"13.2":0.00536,"13.3":0.00071,"13.4-13.7":0.00179,"14.0-14.4":0.00322,"14.5-14.8":0.00322,"15.0-15.1":0.00465,"15.2-15.3":0.00286,"15.4":0.00357,"15.5":0.00393,"15.6-15.8":0.06326,"16.0":0.00643,"16.1":0.01251,"16.2":0.00715,"16.3":0.01287,"16.4":0.00286,"16.5":0.00536,"16.6-16.7":0.08792,"17.0":0.00393,"17.1":0.00643,"17.2":0.00572,"17.3":0.00786,"17.4":0.01287,"17.5":0.0243,"17.6-17.7":0.06255,"18.0":0.01358,"18.1":0.02788,"18.2":0.01465,"18.3":0.04682,"18.4":0.02252,"18.5-18.7":0.71626,"26.0":0.04468,"26.1":0.06791,"26.2":0.39959,"26.3":1.73596,"26.4":0.06505,"26.5":0},P:{"4":0.01036,"21":0.01036,"22":0.01036,"23":0.01036,"24":0.02072,"25":0.04145,"26":0.06217,"27":0.02072,"28":0.06217,"29":1.23314,_:"20 5.0-5.4 6.2-6.4 8.2 9.2 10.1 12.0 13.0 14.0 15.0 16.0 18.0 19.0","7.2-7.4":0.06217,"11.1-11.2":0.01036,"17.0":0.01036},I:{"0":0.05029,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00003},K:{"0":0.46145,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.18458},Q:{_:"14.9"},O:{"0":0.15941},H:{all:0},L:{"0":43.56609}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/BR.js b/server/api/node_modules/caniuse-lite/data/regions/BR.js new file mode 100644 index 0000000..ff85d76 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/BR.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.03575,"59":0.00596,"115":0.08939,"121":0.00596,"127":0.00596,"128":0.02384,"133":0.00596,"134":0.00596,"135":0.00596,"136":0.01192,"137":0.00596,"138":0.00596,"139":0.00596,"140":0.10726,"141":0.00596,"142":0.00596,"143":0.01192,"144":0.01192,"145":0.00596,"146":0.01788,"147":0.07747,"148":1.25139,"149":0.24432,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 122 123 124 125 126 129 130 131 132 150 151 152 3.5 3.6"},D:{"39":0.00596,"40":0.00596,"41":0.00596,"42":0.00596,"43":0.00596,"44":0.00596,"45":0.00596,"46":0.00596,"47":0.00596,"48":0.00596,"49":0.00596,"50":0.00596,"51":0.01788,"52":0.00596,"53":0.00596,"54":0.00596,"55":0.01788,"56":0.00596,"57":0.00596,"58":0.00596,"59":0.00596,"60":0.00596,"65":0.00596,"69":0.00596,"75":0.01192,"79":0.01192,"86":0.00596,"87":0.01192,"96":0.00596,"102":0.00596,"103":0.26816,"104":0.24432,"105":0.24432,"106":0.24432,"107":0.24432,"108":0.24432,"109":1.04283,"110":0.23836,"111":0.24432,"112":0.53631,"113":0.00596,"114":0.00596,"116":0.51843,"117":0.23836,"119":0.0298,"120":0.25624,"121":0.01788,"122":0.04767,"123":0.01192,"124":0.2622,"125":0.0298,"126":0.0298,"127":0.02384,"128":0.07747,"129":0.02384,"130":0.04171,"131":0.60186,"132":0.04171,"133":0.53035,"134":0.05363,"135":0.05959,"136":0.05363,"137":0.06555,"138":0.15493,"139":0.14302,"140":0.07151,"141":0.07747,"142":0.16089,"143":0.25028,"144":0.94748,"145":17.84125,"146":15.14182,"147":0.04171,"148":0.00596,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 61 62 63 64 66 67 68 70 71 72 73 74 76 77 78 80 81 83 84 85 88 89 90 91 92 93 94 95 97 98 99 100 101 115 118 149 150"},F:{"95":0.0298,"96":0.0298,"114":0.00596,"119":0.00596,"124":0.00596,"125":0.00596,"126":0.01788,"127":1.58509,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 120 121 122 123 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00596,"92":0.01788,"109":0.03575,"114":0.00596,"131":0.01192,"132":0.00596,"133":0.00596,"134":0.00596,"135":0.00596,"136":0.00596,"137":0.00596,"138":0.01192,"139":0.00596,"140":0.00596,"141":0.01788,"142":0.01788,"143":0.08939,"144":0.1013,"145":3.28937,"146":3.34896,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 10.1 12.1 13.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.3 16.4 16.5 17.0 18.0 26.5 TP","5.1":0.01192,"9.1":0.00596,"11.1":0.00596,"14.1":0.00596,"15.6":0.02384,"16.6":0.0298,"17.1":0.01192,"17.2":0.00596,"17.3":0.00596,"17.4":0.00596,"17.5":0.00596,"17.6":0.04767,"18.1":0.00596,"18.2":0.00596,"18.3":0.01192,"18.4":0.00596,"18.5-18.7":0.02384,"26.0":0.01192,"26.1":0.01192,"26.2":0.08343,"26.3":0.38734,"26.4":0.0298},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0006,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00121,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00302,"11.0-11.2":0.07612,"11.3-11.4":0.00181,"12.0-12.1":0,"12.2-12.5":0.02356,"13.0-13.1":0,"13.2":0.00906,"13.3":0.00121,"13.4-13.7":0.00302,"14.0-14.4":0.00544,"14.5-14.8":0.00544,"15.0-15.1":0.00785,"15.2-15.3":0.00483,"15.4":0.00604,"15.5":0.00665,"15.6-15.8":0.10693,"16.0":0.01087,"16.1":0.02114,"16.2":0.01208,"16.3":0.02175,"16.4":0.00483,"16.5":0.00906,"16.6-16.7":0.14862,"17.0":0.00665,"17.1":0.01087,"17.2":0.00967,"17.3":0.01329,"17.4":0.02175,"17.5":0.04108,"17.6-17.7":0.10572,"18.0":0.02296,"18.1":0.04712,"18.2":0.02477,"18.3":0.07914,"18.4":0.03806,"18.5-18.7":1.21068,"26.0":0.07552,"26.1":0.11478,"26.2":0.67542,"26.3":2.93426,"26.4":0.10995,"26.5":0},P:{"4":0.01043,"25":0.01043,"26":0.02085,"27":0.01043,"28":0.02085,"29":1.06358,_:"20 21 22 23 24 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.03128},I:{"0":0.05652,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00003},K:{"0":0.19397,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.04171,_:"6 7 8 9 10 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.12527},Q:{_:"14.9"},O:{"0":0.02425},H:{all:0},L:{"0":36.62238}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/BS.js b/server/api/node_modules/caniuse-lite/data/regions/BS.js new file mode 100644 index 0000000..af31374 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/BS.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.00287,"95":0.01437,"115":0.06608,"140":0.00575,"146":0.00287,"147":0.01149,"148":0.16376,"149":0.02298,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 141 142 143 144 145 150 151 152 3.5 3.6"},D:{"75":0.00287,"87":0.00287,"93":0.00287,"103":0.02298,"109":0.07183,"114":0.00287,"116":0.02586,"122":0.00287,"123":0.00287,"124":0.00287,"126":0.00862,"127":0.00287,"128":0.01437,"130":0.00287,"131":0.01149,"132":0.00287,"133":0.00287,"134":0.00575,"135":0.01149,"136":0.00287,"138":0.02586,"139":0.09194,"140":0.00575,"141":0.00575,"142":0.01437,"143":0.0431,"144":0.12641,"145":1.62612,"146":1.07738,"147":0.00287,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 76 77 78 79 80 81 83 84 85 86 88 89 90 91 92 94 95 96 97 98 99 100 101 102 104 105 106 107 108 110 111 112 113 115 117 118 119 120 121 125 129 137 148 149 150"},F:{"96":0.00287,"126":0.00575,"127":0.02873,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"109":0.00287,"133":0.00575,"135":0.00287,"142":0.00287,"143":0.01437,"144":0.02873,"145":0.8619,"146":0.67516,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 134 136 137 138 139 140 141"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 26.5 TP","12.1":0.00287,"13.1":0.00287,"14.1":0.01724,"15.1":0.00575,"15.2-15.3":0.00575,"15.4":0.02586,"15.5":0.04022,"15.6":0.35051,"16.0":0.00287,"16.1":0.1063,"16.2":0.0431,"16.3":0.09194,"16.4":0.11205,"16.5":0.05171,"16.6":1.04003,"17.0":0.01149,"17.1":1.15207,"17.2":0.02873,"17.3":0.04597,"17.4":0.09768,"17.5":0.19536,"17.6":0.50852,"18.0":0.02298,"18.1":0.12929,"18.2":0.06608,"18.3":0.22122,"18.4":0.19249,"18.5-18.7":0.34189,"26.0":0.10343,"26.1":0.14078,"26.2":1.64336,"26.3":12.49755,"26.4":0.30741},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00668,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.01335,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.03338,"11.0-11.2":0.84125,"11.3-11.4":0.02003,"12.0-12.1":0,"12.2-12.5":0.26039,"13.0-13.1":0,"13.2":0.10015,"13.3":0.01335,"13.4-13.7":0.03338,"14.0-14.4":0.06009,"14.5-14.8":0.06009,"15.0-15.1":0.0868,"15.2-15.3":0.05341,"15.4":0.06677,"15.5":0.07344,"15.6-15.8":1.18175,"16.0":0.12018,"16.1":0.23368,"16.2":0.13353,"16.3":0.24036,"16.4":0.05341,"16.5":0.10015,"16.6-16.7":1.64244,"17.0":0.07344,"17.1":0.12018,"17.2":0.10683,"17.3":0.14688,"17.4":0.24036,"17.5":0.45401,"17.6-17.7":1.1684,"18.0":0.25371,"18.1":0.52077,"18.2":0.27374,"18.3":0.87463,"18.4":0.42062,"18.5-18.7":13.37985,"26.0":0.83457,"26.1":1.26855,"26.2":7.46441,"26.3":32.42812,"26.4":1.21514,"26.5":0},P:{"26":0.0207,"27":0.0207,"28":0.0207,"29":0.69337,_:"4 20 21 22 23 24 25 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.00712,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0.02138,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.02138},Q:{_:"14.9"},O:{"0":0.00713},H:{all:0},L:{"0":4.81845}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/BT.js b/server/api/node_modules/caniuse-lite/data/regions/BT.js new file mode 100644 index 0000000..f4e0aa6 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/BT.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.00385,"56":0.0077,"78":0.00385,"81":0.00385,"111":0.00385,"112":0.00385,"115":0.0154,"125":0.0154,"127":0.00385,"131":0.03851,"135":0.00385,"140":0.04621,"143":0.00385,"147":0.0077,"148":0.21181,"149":0.03851,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 113 114 116 117 118 119 120 121 122 123 124 126 128 129 130 132 133 134 136 137 138 139 141 142 144 145 146 150 151 152 3.5 3.6"},D:{"50":0.0154,"67":0.00385,"72":0.00385,"74":0.00385,"78":0.00385,"81":0.00385,"86":0.00385,"88":0.03081,"89":0.00385,"95":0.00385,"97":0.00385,"98":0.11938,"99":0.05006,"100":0.00385,"103":0.03081,"106":0.00385,"108":0.0077,"109":0.49293,"112":0.00385,"114":0.01155,"116":0.02696,"120":0.0154,"122":0.00385,"123":0.00385,"124":0.02696,"125":0.00385,"126":0.08472,"127":0.01155,"128":0.01155,"129":0.01155,"130":0.04621,"131":0.09628,"132":0.00385,"133":0.01155,"134":0.0077,"135":0.00385,"136":0.0154,"137":0.0077,"138":0.06547,"139":0.06547,"140":0.0154,"141":0.0154,"142":0.09628,"143":0.13479,"144":0.78175,"145":8.37593,"146":7.84449,"147":0.01155,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 68 69 70 71 73 75 76 77 79 80 83 84 85 87 90 91 92 93 94 96 101 102 104 105 107 110 111 113 115 117 118 119 121 148 149 150"},F:{"83":0.01155,"94":0.0154,"95":0.02696,"96":0.0154,"102":0.0077,"122":0.00385,"125":0.00385,"126":0.00385,"127":0.25032,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 84 85 86 87 88 89 90 91 92 93 97 98 99 100 101 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 123 124 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"16":0.00385,"18":0.01155,"84":0.00385,"85":0.00385,"92":0.01155,"95":0.0077,"97":0.00385,"98":0.01155,"99":0.0077,"109":0.00385,"110":0.00385,"111":0.00385,"112":0.0077,"113":0.0077,"114":0.01926,"116":0.00385,"117":0.0077,"118":0.01155,"122":0.01155,"123":0.00385,"124":0.00385,"125":0.0077,"126":0.00385,"127":0.01926,"128":0.05391,"129":0.01926,"130":0.05391,"131":0.0077,"133":0.00385,"134":0.00385,"135":0.00385,"136":0.03851,"137":0.0077,"138":0.0077,"139":0.02311,"140":0.03851,"141":0.03081,"142":0.05777,"143":0.01926,"144":0.01155,"145":1.37096,"146":1.51729,_:"12 13 14 15 17 79 80 81 83 86 87 88 89 90 91 93 94 96 100 101 102 103 104 105 106 107 108 115 119 120 121 132"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 13.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.5 17.0 17.2 18.1 26.5 TP","12.1":0.0077,"14.1":0.0077,"15.6":0.06547,"16.3":0.0077,"16.4":0.00385,"16.6":0.01155,"17.1":0.0077,"17.3":0.0077,"17.4":0.00385,"17.5":0.01155,"17.6":0.05006,"18.0":0.00385,"18.2":0.00385,"18.3":0.0077,"18.4":0.16944,"18.5-18.7":0.04621,"26.0":0.03466,"26.1":0.04621,"26.2":0.11168,"26.3":0.79331,"26.4":0.0077},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00067,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00134,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00334,"11.0-11.2":0.08428,"11.3-11.4":0.00201,"12.0-12.1":0,"12.2-12.5":0.02609,"13.0-13.1":0,"13.2":0.01003,"13.3":0.00134,"13.4-13.7":0.00334,"14.0-14.4":0.00602,"14.5-14.8":0.00602,"15.0-15.1":0.0087,"15.2-15.3":0.00535,"15.4":0.00669,"15.5":0.00736,"15.6-15.8":0.1184,"16.0":0.01204,"16.1":0.02341,"16.2":0.01338,"16.3":0.02408,"16.4":0.00535,"16.5":0.01003,"16.6-16.7":0.16455,"17.0":0.00736,"17.1":0.01204,"17.2":0.0107,"17.3":0.01472,"17.4":0.02408,"17.5":0.04549,"17.6-17.7":0.11706,"18.0":0.02542,"18.1":0.05217,"18.2":0.02742,"18.3":0.08763,"18.4":0.04214,"18.5-18.7":1.34048,"26.0":0.08361,"26.1":0.12709,"26.2":0.74783,"26.3":3.24886,"26.4":0.12174,"26.5":0},P:{"4":0.01017,"24":0.01017,"25":0.01017,"26":0.02033,"27":0.01017,"28":0.0305,"29":1.16909,_:"20 21 22 23 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","5.0-5.4":0.0305},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":2.14565,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.39347},Q:{_:"14.9"},O:{"0":0.4611},H:{all:0},L:{"0":63.78299}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/BW.js b/server/api/node_modules/caniuse-lite/data/regions/BW.js new file mode 100644 index 0000000..664b53d --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/BW.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.02334,"47":0.00467,"49":0.014,"103":0.00467,"112":0.00467,"115":0.05602,"125":0.00467,"127":0.00467,"140":0.04668,"142":0.00467,"143":0.014,"145":0.00467,"146":0.014,"147":0.07936,"148":0.95694,"149":0.17738,"150":0.00467,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 104 105 106 107 108 109 110 111 113 114 116 117 118 119 120 121 122 123 124 126 128 129 130 131 132 133 134 135 136 137 138 139 141 144 151 152 3.5 3.6"},D:{"49":0.00467,"55":0.00934,"56":0.00467,"61":0.00467,"63":0.00467,"66":0.00467,"68":0.00467,"69":0.00467,"71":0.00467,"72":0.00467,"73":0.00467,"74":0.00934,"75":0.02801,"78":0.00467,"79":0.00467,"83":0.00467,"86":0.00934,"87":0.00467,"89":0.00467,"90":0.00467,"91":0.00467,"93":0.00467,"95":0.00467,"98":0.05602,"102":0.00467,"103":0.29875,"104":0.26608,"105":0.21006,"106":0.27074,"107":0.21473,"108":0.2334,"109":0.72354,"110":0.22406,"111":0.2194,"112":0.48547,"114":0.00467,"116":0.54149,"117":0.20539,"119":0.01867,"120":0.2334,"121":0.00934,"122":0.02801,"123":0.00467,"124":0.22406,"125":0.00467,"126":0.00467,"127":0.02334,"128":0.02334,"130":0.01867,"131":0.4528,"132":0.014,"133":0.49948,"134":0.02334,"135":0.02801,"136":0.00934,"137":0.04201,"138":0.08869,"139":0.19606,"140":0.01867,"141":0.11203,"142":0.06068,"143":0.19606,"144":0.4528,"145":9.52272,"146":7.03001,"147":0.00934,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 57 58 59 60 62 64 65 67 70 76 77 80 81 84 85 88 92 94 96 97 99 100 101 113 115 118 129 148 149 150"},F:{"36":0.00467,"95":0.02334,"96":0.01867,"124":0.00467,"126":0.02801,"127":0.3361,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.01867,"16":0.00467,"18":0.014,"90":0.00934,"92":0.04668,"100":0.014,"109":0.03268,"111":0.00467,"112":0.00467,"114":0.014,"122":0.014,"131":0.00467,"134":0.00467,"136":0.00467,"137":0.01867,"138":0.014,"139":0.00467,"140":0.00934,"141":0.03734,"142":0.03734,"143":0.06535,"144":0.14938,"145":2.7868,"146":2.77279,_:"12 13 15 17 79 80 81 83 84 85 86 87 88 89 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 113 115 116 117 118 119 120 121 123 124 125 126 127 128 129 130 132 133 135"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.3 16.5 17.0 18.1 26.5 TP","13.1":0.00467,"14.1":0.00467,"15.6":0.02334,"16.4":0.00467,"16.6":0.09336,"17.1":0.01867,"17.2":0.02801,"17.3":0.00467,"17.4":0.00467,"17.5":0.04201,"17.6":0.09336,"18.0":0.00467,"18.2":0.00467,"18.3":0.02801,"18.4":0.00467,"18.5-18.7":0.00934,"26.0":0.00934,"26.1":0.014,"26.2":0.12604,"26.3":0.63018,"26.4":0.07002},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00059,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00118,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00294,"11.0-11.2":0.07417,"11.3-11.4":0.00177,"12.0-12.1":0,"12.2-12.5":0.02296,"13.0-13.1":0,"13.2":0.00883,"13.3":0.00118,"13.4-13.7":0.00294,"14.0-14.4":0.0053,"14.5-14.8":0.0053,"15.0-15.1":0.00765,"15.2-15.3":0.00471,"15.4":0.00589,"15.5":0.00648,"15.6-15.8":0.10419,"16.0":0.0106,"16.1":0.0206,"16.2":0.01177,"16.3":0.02119,"16.4":0.00471,"16.5":0.00883,"16.6-16.7":0.14481,"17.0":0.00648,"17.1":0.0106,"17.2":0.00942,"17.3":0.01295,"17.4":0.02119,"17.5":0.04003,"17.6-17.7":0.10301,"18.0":0.02237,"18.1":0.04591,"18.2":0.02413,"18.3":0.07711,"18.4":0.03709,"18.5-18.7":1.17966,"26.0":0.07358,"26.1":0.11184,"26.2":0.65811,"26.3":2.85909,"26.4":0.10713,"26.5":0},P:{"22":0.02084,"23":0.01042,"24":0.02084,"25":0.03125,"26":0.04167,"27":0.04167,"28":0.15627,"29":1.64603,_:"4 20 21 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.06251},I:{"0":0.01598,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.71449,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{"2.5":0.01066,_:"3.0-3.1"},R:{_:"0"},M:{"0":0.1173},Q:{"14.9":0.00533},O:{"0":0.5332},H:{all:0},L:{"0":56.83888}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/BY.js b/server/api/node_modules/caniuse-lite/data/regions/BY.js new file mode 100644 index 0000000..b834eff --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/BY.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.01176,"52":0.06469,"78":0.00588,"96":0.01176,"105":0.04117,"115":0.44108,"125":0.00588,"128":0.00588,"135":0.00588,"136":0.01764,"137":0.00588,"139":0.02941,"140":0.17055,"141":0.00588,"143":0.00588,"145":0.00588,"146":0.01176,"147":0.07645,"148":1.31146,"149":0.29405,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 97 98 99 100 101 102 103 104 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 126 127 129 130 131 132 133 134 138 142 144 150 151 152 3.5 3.6"},D:{"49":0.03529,"69":0.00588,"70":0.00588,"77":0.00588,"79":0.00588,"86":0.00588,"87":0.00588,"88":0.03529,"92":0.00588,"98":0.01176,"99":0.00588,"100":0.01176,"101":0.00588,"102":0.00588,"103":0.14703,"104":0.1235,"105":0.11762,"106":0.17055,"107":0.11174,"108":0.1235,"109":3.27572,"110":0.11762,"111":0.15879,"112":0.27641,"113":0.00588,"114":0.02352,"116":0.27641,"117":0.11174,"118":0.00588,"119":0.04705,"120":0.1235,"121":0.01176,"122":0.03529,"123":0.01764,"124":0.17643,"125":0.02941,"126":0.02352,"127":0.02352,"128":0.02941,"129":0.03529,"130":0.02352,"131":0.33522,"132":0.01176,"133":0.25876,"134":0.18819,"135":0.02941,"136":0.04705,"137":0.04117,"138":0.15879,"139":0.54105,"140":0.13526,"141":0.08822,"142":0.20584,"143":0.13526,"144":0.6822,"145":10.89749,"146":9.40372,"147":0.02941,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 71 72 73 74 75 76 78 80 81 83 84 85 89 90 91 93 94 95 96 97 115 148 149 150"},F:{"36":0.00588,"43":0.00588,"69":0.00588,"72":0.00588,"73":0.02352,"77":0.08233,"79":0.14114,"82":0.00588,"84":0.00588,"85":0.03529,"86":0.04117,"93":0.00588,"94":0.00588,"95":0.99389,"96":0.07057,"112":0.00588,"114":0.00588,"119":0.01176,"120":0.00588,"122":0.01176,"124":0.00588,"125":0.04117,"126":0.07057,"127":2.29947,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 70 71 74 75 76 78 80 81 83 87 88 89 90 91 92 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 113 115 116 117 118 121 123 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00588,"92":0.00588,"102":0.00588,"109":0.02352,"123":0.00588,"131":0.00588,"132":0.00588,"134":0.00588,"135":0.00588,"136":0.00588,"138":0.00588,"140":0.00588,"141":0.00588,"142":0.01764,"143":0.04117,"144":0.03529,"145":1.82311,"146":1.88192,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 122 124 125 126 127 128 129 130 133 137 139"},E:{"13":0.05293,_:"4 5 6 7 8 9 10 11 12 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 16.0 17.0 26.5 TP","13.1":0.01176,"14.1":0.00588,"15.4":0.01176,"15.5":0.00588,"15.6":0.07645,"16.1":0.05881,"16.2":0.01764,"16.3":0.04705,"16.4":0.00588,"16.5":0.00588,"16.6":0.14114,"17.1":0.35286,"17.2":0.03529,"17.3":0.02352,"17.4":0.02941,"17.5":0.04117,"17.6":0.09998,"18.0":0.05293,"18.1":0.03529,"18.2":0.02941,"18.3":0.04705,"18.4":0.01176,"18.5-18.7":0.13526,"26.0":0.03529,"26.1":0.05881,"26.2":0.3705,"26.3":2.18185,"26.4":0.1235},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00142,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00283,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00708,"11.0-11.2":0.17833,"11.3-11.4":0.00425,"12.0-12.1":0,"12.2-12.5":0.0552,"13.0-13.1":0,"13.2":0.02123,"13.3":0.00283,"13.4-13.7":0.00708,"14.0-14.4":0.01274,"14.5-14.8":0.01274,"15.0-15.1":0.0184,"15.2-15.3":0.01132,"15.4":0.01415,"15.5":0.01557,"15.6-15.8":0.25051,"16.0":0.02548,"16.1":0.04954,"16.2":0.02831,"16.3":0.05095,"16.4":0.01132,"16.5":0.02123,"16.6-16.7":0.34816,"17.0":0.01557,"17.1":0.02548,"17.2":0.02264,"17.3":0.03114,"17.4":0.05095,"17.5":0.09624,"17.6-17.7":0.24768,"18.0":0.05378,"18.1":0.11039,"18.2":0.05803,"18.3":0.1854,"18.4":0.08916,"18.5-18.7":2.83624,"26.0":0.17691,"26.1":0.2689,"26.2":1.58229,"26.3":6.87406,"26.4":0.25758,"26.5":0},P:{"4":0.01042,"26":0.01042,"27":0.01042,"28":0.04169,"29":0.79204,_:"20 21 22 23 24 25 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.04527,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.95149,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.04117,_:"6 7 8 9 10 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.12357},Q:{"14.9":0.02471},O:{"0":0.07414},H:{all:0},L:{"0":26.8147}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/BZ.js b/server/api/node_modules/caniuse-lite/data/regions/BZ.js new file mode 100644 index 0000000..52c90b6 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/BZ.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.01647,"69":0.00412,"78":0.00824,"113":0.00412,"115":0.07001,"128":0.00824,"134":0.00412,"138":0.00412,"140":0.32944,"141":0.00412,"144":0.02059,"145":0.00412,"146":0.00412,"147":0.0453,"148":0.84831,"149":0.15237,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 114 116 117 118 119 120 121 122 123 124 125 126 127 129 130 131 132 133 135 136 137 139 142 143 150 151 152 3.5 3.6"},D:{"65":0.01647,"75":0.00412,"88":0.05765,"91":0.00824,"92":0.00412,"93":0.03294,"103":0.09471,"105":0.00412,"109":0.07824,"113":0.00412,"114":0.00824,"116":0.09471,"118":0.00412,"119":0.02059,"122":0.00412,"123":0.00412,"125":0.00412,"126":0.00824,"128":0.01647,"129":0.00824,"130":0.00824,"131":0.02059,"132":0.00412,"134":0.00824,"136":0.04118,"137":0.01235,"138":0.08648,"139":0.65476,"140":0.02059,"141":0.01235,"142":0.06177,"143":0.60946,"144":0.69594,"145":8.51602,"146":5.87639,"147":0.04118,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 66 67 68 69 70 71 72 73 74 76 77 78 79 80 81 83 84 85 86 87 89 90 94 95 96 97 98 99 100 101 102 104 106 107 108 110 111 112 115 117 120 121 124 127 133 135 148 149 150"},F:{"95":0.00824,"96":0.00412,"126":0.01235,"127":0.19355,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.00412,"102":0.00412,"114":0.00412,"122":0.00412,"131":0.01235,"136":0.00412,"141":0.00412,"142":0.00824,"143":0.02059,"144":0.04942,"145":1.82427,"146":1.90252,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 120 121 123 124 125 126 127 128 129 130 132 133 134 135 137 138 139 140"},E:{"15":0.01647,_:"4 5 6 7 8 9 10 11 12 13 14 3.1 3.2 5.1 6.1 7.1 9.1 11.1 14.1 15.2-15.3 15.5 26.5 TP","10.1":0.00412,"12.1":0.00412,"13.1":0.00412,"15.1":0.00412,"15.4":0.0453,"15.6":0.22649,"16.0":0.00412,"16.1":0.00824,"16.2":0.00412,"16.3":0.14825,"16.4":0.57652,"16.5":0.01235,"16.6":0.20178,"17.0":0.02059,"17.1":0.78242,"17.2":0.07824,"17.3":0.10707,"17.4":0.0453,"17.5":0.03294,"17.6":0.50651,"18.0":0.00824,"18.1":0.04118,"18.2":0.02883,"18.3":0.12354,"18.4":0.00824,"18.5-18.7":0.2512,"26.0":0.09883,"26.1":0.07001,"26.2":0.78242,"26.3":5.81873,"26.4":0.14825},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00393,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00786,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.01964,"11.0-11.2":0.495,"11.3-11.4":0.01179,"12.0-12.1":0,"12.2-12.5":0.15321,"13.0-13.1":0,"13.2":0.05893,"13.3":0.00786,"13.4-13.7":0.01964,"14.0-14.4":0.03536,"14.5-14.8":0.03536,"15.0-15.1":0.05107,"15.2-15.3":0.03143,"15.4":0.03929,"15.5":0.04321,"15.6-15.8":0.69536,"16.0":0.07071,"16.1":0.1375,"16.2":0.07857,"16.3":0.14143,"16.4":0.03143,"16.5":0.05893,"16.6-16.7":0.96643,"17.0":0.04321,"17.1":0.07071,"17.2":0.06286,"17.3":0.08643,"17.4":0.14143,"17.5":0.26714,"17.6-17.7":0.6875,"18.0":0.14929,"18.1":0.30643,"18.2":0.16107,"18.3":0.51465,"18.4":0.2475,"18.5-18.7":7.87289,"26.0":0.49107,"26.1":0.74643,"26.2":4.39216,"26.3":19.08115,"26.4":0.715,"26.5":0},P:{"24":0.01067,"27":0.01067,"28":0.04267,"29":1.9947,_:"4 20 21 22 23 25 26 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.05877,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00003},K:{"0":0.18234,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.22352},Q:{_:"14.9"},O:{"0":0.02353},H:{all:0},L:{"0":21.53352}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/CA.js b/server/api/node_modules/caniuse-lite/data/regions/CA.js new file mode 100644 index 0000000..81d4cc1 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/CA.js @@ -0,0 +1 @@ +module.exports={C:{"38":0.00521,"43":0.00521,"44":0.01562,"45":0.00521,"52":0.02083,"78":0.01562,"113":0.00521,"115":0.18749,"121":0.00521,"123":0.01042,"127":0.00521,"128":0.00521,"134":0.00521,"135":0.01042,"136":0.01042,"137":0.00521,"138":0.00521,"139":0.00521,"140":0.10937,"141":0.00521,"142":0.02604,"143":0.00521,"144":0.00521,"145":0.02083,"146":0.02604,"147":0.14062,"148":1.95821,"149":0.3906,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 114 116 117 118 119 120 122 124 125 126 129 130 131 132 133 150 151 152 3.5 3.6"},D:{"39":0.00521,"40":0.00521,"41":0.00521,"42":0.00521,"43":0.00521,"44":0.00521,"45":0.01042,"46":0.00521,"47":0.01042,"48":0.04166,"49":0.04687,"50":0.00521,"51":0.01042,"52":0.01042,"53":0.01042,"54":0.00521,"55":0.01042,"56":0.01042,"57":0.01042,"58":0.01042,"59":0.01042,"60":0.01042,"75":0.00521,"76":0.00521,"79":0.00521,"80":0.00521,"84":0.00521,"85":0.00521,"87":0.02083,"91":0.00521,"93":0.02083,"94":0.00521,"97":0.00521,"99":0.02083,"103":0.11458,"104":0.00521,"105":0.00521,"106":0.00521,"107":0.00521,"108":0.00521,"109":0.46351,"110":0.01042,"111":0.01042,"112":0.00521,"114":0.02083,"116":0.16666,"117":0.01042,"118":0.00521,"119":0.01042,"120":0.03646,"121":0.00521,"122":0.03125,"123":0.01042,"124":0.01562,"125":0.01042,"126":0.09895,"127":0.01042,"128":0.10416,"129":0.01042,"130":0.02083,"131":0.05729,"132":0.02083,"133":0.03125,"134":0.02083,"135":0.03125,"136":0.03646,"137":0.04687,"138":0.24478,"139":0.15103,"140":0.11978,"141":0.07812,"142":0.16145,"143":0.48955,"144":1.35408,"145":12.21797,"146":8.94734,"147":0.02604,"148":0.00521,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 61 62 63 64 65 66 67 68 69 70 71 72 73 74 77 78 81 83 86 88 89 90 92 95 96 98 100 101 102 113 115 149 150"},F:{"89":0.00521,"95":0.02604,"96":0.02604,"124":0.00521,"125":0.00521,"126":0.01562,"127":0.41143,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"85":0.00521,"109":0.05208,"112":0.00521,"120":0.00521,"128":0.00521,"129":0.00521,"130":0.00521,"131":0.01042,"132":0.00521,"133":0.00521,"134":0.00521,"135":0.01562,"136":0.00521,"137":0.00521,"138":0.01042,"139":0.01562,"140":0.01042,"141":0.01042,"142":0.02083,"143":0.10937,"144":0.16145,"145":4.02058,"146":3.91642,_:"12 13 14 15 16 17 18 79 80 81 83 84 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 113 114 115 116 117 118 119 121 122 123 124 125 126 127"},E:{"9":0.00521,"14":0.01562,_:"4 5 6 7 8 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 26.5 TP","10.1":0.00521,"11.1":0.00521,"12.1":0.00521,"13.1":0.05208,"14.1":0.04687,"15.1":0.00521,"15.2-15.3":0.00521,"15.4":0.01042,"15.5":0.01562,"15.6":0.29686,"16.0":0.00521,"16.1":0.03125,"16.2":0.01562,"16.3":0.04687,"16.4":0.02083,"16.5":0.02604,"16.6":0.43226,"17.0":0.01042,"17.1":0.40622,"17.2":0.02604,"17.3":0.03125,"17.4":0.04687,"17.5":0.07812,"17.6":0.41664,"18.0":0.02083,"18.1":0.0677,"18.2":0.02604,"18.3":0.11458,"18.4":0.03646,"18.5-18.7":0.13541,"26.0":0.0625,"26.1":0.08854,"26.2":0.65621,"26.3":4.26014,"26.4":0.1302},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0027,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00541,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.01352,"11.0-11.2":0.3406,"11.3-11.4":0.00811,"12.0-12.1":0,"12.2-12.5":0.10542,"13.0-13.1":0,"13.2":0.04055,"13.3":0.00541,"13.4-13.7":0.01352,"14.0-14.4":0.02433,"14.5-14.8":0.02433,"15.0-15.1":0.03514,"15.2-15.3":0.02163,"15.4":0.02703,"15.5":0.02973,"15.6-15.8":0.47846,"16.0":0.04866,"16.1":0.09461,"16.2":0.05406,"16.3":0.09731,"16.4":0.02163,"16.5":0.04055,"16.6-16.7":0.66498,"17.0":0.02973,"17.1":0.04866,"17.2":0.04325,"17.3":0.05947,"17.4":0.09731,"17.5":0.18382,"17.6-17.7":0.47305,"18.0":0.10272,"18.1":0.21085,"18.2":0.11083,"18.3":0.35411,"18.4":0.1703,"18.5-18.7":5.41715,"26.0":0.3379,"26.1":0.5136,"26.2":3.02214,"26.3":13.12928,"26.4":0.49198,"26.5":0},P:{"4":0.01091,"21":0.02181,"22":0.01091,"24":0.01091,"25":0.01091,"26":0.03272,"27":0.01091,"28":0.07634,"29":2.46459,_:"20 23 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.02394,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.15334,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.02083,_:"6 7 8 9 10 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.51754},Q:{"14.9":0.00479},O:{"0":0.04313},H:{all:0},L:{"0":20.57281}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/CD.js b/server/api/node_modules/caniuse-lite/data/regions/CD.js new file mode 100644 index 0000000..0ac0a91 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/CD.js @@ -0,0 +1 @@ +module.exports={C:{"47":0.00338,"48":0.00338,"115":0.0372,"116":0.00338,"123":0.00338,"127":0.01353,"128":0.00338,"131":0.01691,"137":0.00338,"140":0.02029,"141":0.00338,"143":0.00338,"144":0.00338,"145":0.00338,"146":0.00676,"147":0.0744,"148":0.61214,"149":0.08117,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 117 118 119 120 121 122 124 125 126 129 130 132 133 134 135 136 138 139 142 150 151 152 3.5 3.6"},D:{"49":0.00676,"56":0.00338,"68":0.00338,"69":0.00676,"70":0.01015,"71":0.00338,"73":0.00676,"77":0.00338,"79":0.01015,"80":0.00338,"81":0.01353,"83":0.00338,"86":0.01353,"87":0.01015,"90":0.00338,"93":0.01015,"94":0.00338,"95":0.00338,"97":0.00338,"98":0.01015,"101":0.00338,"103":0.00676,"105":0.00338,"106":0.03382,"107":0.00338,"109":0.1319,"110":0.00338,"111":0.00676,"112":0.00676,"114":0.01015,"115":0.00338,"116":0.01353,"117":0.00338,"119":0.02029,"120":0.00676,"121":0.00338,"122":0.02029,"123":0.00676,"124":0.00338,"125":0.00676,"126":0.01015,"127":0.01015,"128":0.04735,"129":0.00676,"130":0.00676,"131":0.02029,"132":0.00676,"133":0.01691,"134":0.01691,"135":0.02367,"136":0.02367,"137":0.03044,"138":0.14204,"139":0.07102,"140":0.02029,"141":0.04735,"142":0.03044,"143":0.09808,"144":0.22659,"145":3.43611,"146":2.99307,"147":0.01691,"148":0.01353,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 57 58 59 60 61 62 63 64 65 66 67 72 74 75 76 78 84 85 88 89 91 92 96 99 100 102 104 108 113 118 149 150"},F:{"36":0.00338,"42":0.00676,"46":0.00338,"55":0.00338,"60":0.00338,"79":0.01353,"89":0.01015,"90":0.00338,"92":0.03382,"93":0.05749,"94":0.02706,"95":0.11161,"96":0.06764,"113":0.00338,"120":0.00676,"122":0.00338,"123":0.00338,"124":0.00338,"125":0.01015,"126":0.10822,"127":0.69669,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 43 44 45 47 48 49 50 51 52 53 54 56 57 58 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 85 86 87 88 91 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 114 115 116 117 118 119 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.00676,"15":0.00338,"16":0.00676,"17":0.01691,"18":0.08455,"84":0.00676,"89":0.00338,"90":0.02029,"92":0.06088,"100":0.01691,"109":0.01353,"118":0.00338,"122":0.00676,"129":0.00338,"131":0.00676,"132":0.02029,"134":0.00338,"135":0.03044,"136":0.00338,"137":0.00338,"138":0.00676,"139":0.00676,"140":0.01691,"141":0.00676,"142":0.01691,"143":0.05749,"144":0.1319,"145":1.13973,"146":1.29869,_:"12 13 79 80 81 83 85 86 87 88 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 119 120 121 123 124 125 126 127 128 130 133"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 12.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.3 16.4 17.0 17.2 17.3 17.4 18.0 26.5 TP","5.1":0.01015,"11.1":0.01015,"13.1":0.01691,"14.1":0.00338,"15.1":0.00338,"15.6":0.0744,"16.5":0.01015,"16.6":0.0372,"17.1":0.00676,"17.5":0.00676,"17.6":0.02706,"18.1":0.00676,"18.2":0.00338,"18.3":0.00338,"18.4":0.01015,"18.5-18.7":0.02029,"26.0":0.01691,"26.1":0.00338,"26.2":0.07102,"26.3":0.25027,"26.4":0.01015},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00082,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00164,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00411,"11.0-11.2":0.10348,"11.3-11.4":0.00246,"12.0-12.1":0,"12.2-12.5":0.03203,"13.0-13.1":0,"13.2":0.01232,"13.3":0.00164,"13.4-13.7":0.00411,"14.0-14.4":0.00739,"14.5-14.8":0.00739,"15.0-15.1":0.01068,"15.2-15.3":0.00657,"15.4":0.00821,"15.5":0.00903,"15.6-15.8":0.14537,"16.0":0.01478,"16.1":0.02875,"16.2":0.01643,"16.3":0.02957,"16.4":0.00657,"16.5":0.01232,"16.6-16.7":0.20204,"17.0":0.00903,"17.1":0.01478,"17.2":0.01314,"17.3":0.01807,"17.4":0.02957,"17.5":0.05585,"17.6-17.7":0.14373,"18.0":0.03121,"18.1":0.06406,"18.2":0.03367,"18.3":0.10759,"18.4":0.05174,"18.5-18.7":1.64587,"26.0":0.10266,"26.1":0.15605,"26.2":0.91821,"26.3":3.98902,"26.4":0.14948,"26.5":0},P:{"21":0.01018,"23":0.01018,"24":0.02036,"25":0.02036,"26":0.03054,"27":0.08145,"28":0.13236,"29":0.79416,_:"4 20 22 5.0-5.4 6.2-6.4 10.1 12.0 13.0 14.0 17.0 18.0 19.0","7.2-7.4":0.03054,"8.2":0.01018,"9.2":0.02036,"11.1-11.2":0.01018,"15.0":0.01018,"16.0":0.01018},I:{"0":0.04628,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":7.60703,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.17869},Q:{"14.9":0.01324},O:{"0":0.45002},H:{all:0.05},L:{"0":66.90556}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/CF.js b/server/api/node_modules/caniuse-lite/data/regions/CF.js new file mode 100644 index 0000000..7d6c68a --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/CF.js @@ -0,0 +1 @@ +module.exports={C:{"50":0.00362,"55":0.02172,"61":0.02172,"71":0.00362,"77":0.05792,"80":0.00724,"115":0.0362,"127":0.03258,"135":0.00362,"136":0.00362,"140":0.00724,"141":0.01086,"146":0.0724,"147":0.06154,"148":0.6878,"149":0.05068,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 51 52 53 54 56 57 58 59 60 62 63 64 65 66 67 68 69 70 72 73 74 75 76 78 79 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 128 129 130 131 132 133 134 137 138 139 142 143 144 145 150 151 152 3.5 3.6"},D:{"49":0.01086,"52":0.02534,"67":0.02534,"70":0.01086,"71":0.05068,"74":0.00724,"86":0.0543,"95":0.02172,"101":0.0362,"102":0.0181,"103":0.00362,"107":0.01086,"109":0.2172,"111":0.01086,"114":0.00724,"120":0.04344,"123":0.00724,"127":0.03982,"128":0.01086,"129":0.02534,"131":0.0362,"134":0.0181,"135":0.05792,"136":0.01448,"137":0.00362,"138":0.03258,"139":0.15204,"140":0.03258,"141":0.03982,"142":0.0362,"143":0.29322,"144":0.49956,"145":7.37756,"146":2.88876,"147":0.04344,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 68 69 72 73 75 76 77 78 79 80 81 83 84 85 87 88 89 90 91 92 93 94 96 97 98 99 100 104 105 106 108 110 112 113 115 116 117 118 119 121 122 124 125 126 130 132 133 148 149 150"},F:{"45":0.03982,"79":0.00724,"82":0.00724,"95":0.0181,"96":0.11222,"111":0.00362,"125":0.05068,"126":0.03258,"127":0.30046,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 112 113 114 115 116 117 118 119 120 121 122 123 124 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.01086,"17":0.01448,"18":0.1448,"84":0.00362,"89":0.02172,"90":0.02172,"92":0.1086,"114":0.06878,"122":0.0181,"131":0.02172,"140":0.01448,"141":0.0181,"142":0.00362,"143":0.05068,"144":0.1448,"145":1.13668,"146":0.85794,_:"12 13 15 16 79 80 81 83 85 86 87 88 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 120 121 123 124 125 126 127 128 129 130 132 133 134 135 136 137 138 139"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.4 16.5 17.0 17.2 17.3 17.4 17.5 18.0 18.1 18.2 18.3 18.4 26.0 26.1 26.2 26.5 TP","11.1":0.01086,"12.1":0.02534,"13.1":0.05792,"14.1":0.00724,"15.6":0.13756,"16.3":0.00362,"16.6":0.11222,"17.1":0.06154,"17.6":0.01086,"18.5-18.7":0.02172,"26.3":0.03982,"26.4":0.00362},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00043,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00087,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00216,"11.0-11.2":0.0545,"11.3-11.4":0.0013,"12.0-12.1":0,"12.2-12.5":0.01687,"13.0-13.1":0,"13.2":0.00649,"13.3":0.00087,"13.4-13.7":0.00216,"14.0-14.4":0.00389,"14.5-14.8":0.00389,"15.0-15.1":0.00562,"15.2-15.3":0.00346,"15.4":0.00433,"15.5":0.00476,"15.6-15.8":0.07656,"16.0":0.00779,"16.1":0.01514,"16.2":0.00865,"16.3":0.01557,"16.4":0.00346,"16.5":0.00649,"16.6-16.7":0.10641,"17.0":0.00476,"17.1":0.00779,"17.2":0.00692,"17.3":0.00952,"17.4":0.01557,"17.5":0.02941,"17.6-17.7":0.0757,"18.0":0.01644,"18.1":0.03374,"18.2":0.01774,"18.3":0.05667,"18.4":0.02725,"18.5-18.7":0.86686,"26.0":0.05407,"26.1":0.08219,"26.2":0.48361,"26.3":2.10096,"26.4":0.07873,"26.5":0},P:{"25":0.01013,"27":0.13164,"28":0.14176,"29":0.76958,_:"4 20 21 22 23 24 26 5.0-5.4 6.2-6.4 8.2 9.2 10.1 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.01013,"11.1-11.2":0.0405},I:{"0":0.05099,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00003},K:{"0":2.53494,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":1.00166},Q:{"14.9":0.00638},O:{"0":0.54868},H:{all:0.1},L:{"0":69.68586}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/CG.js b/server/api/node_modules/caniuse-lite/data/regions/CG.js new file mode 100644 index 0000000..b4845b7 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/CG.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.04312,"50":0.00539,"56":0.00539,"69":0.00539,"115":0.09702,"123":0.01078,"125":0.00539,"127":0.00539,"128":0.00539,"139":0.00539,"140":0.02156,"146":0.00539,"147":0.04312,"148":0.76538,"149":0.15092,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 51 52 53 54 55 57 58 59 60 61 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 124 126 129 130 131 132 133 134 135 136 137 138 141 142 143 144 145 150 151 152 3.5 3.6"},D:{"27":0.00539,"32":0.00539,"49":0.02156,"50":0.00539,"54":0.00539,"56":0.00539,"57":0.00539,"58":0.00539,"64":0.00539,"65":0.00539,"66":0.01617,"68":0.00539,"69":0.03234,"70":0.00539,"72":0.06468,"73":0.04851,"74":0.01617,"75":0.02156,"76":0.02156,"79":0.01617,"81":0.11319,"83":0.24255,"86":0.01078,"87":0.02156,"89":0.00539,"90":0.00539,"94":0.00539,"95":0.02695,"96":0.00539,"98":0.17248,"101":0.02156,"102":0.00539,"103":0.78694,"104":0.71148,"105":0.74921,"106":0.74382,"107":0.73304,"108":0.74382,"109":1.12651,"110":0.71148,"111":0.74921,"112":1.80026,"113":0.00539,"114":0.04312,"115":0.00539,"116":1.54693,"117":0.74921,"118":0.00539,"119":0.10241,"120":0.79233,"122":0.01617,"123":0.00539,"124":0.74382,"125":0.00539,"126":0.01617,"127":0.01078,"128":0.04851,"129":0.00539,"130":0.02156,"131":1.49303,"132":0.02695,"133":1.51998,"134":0.06468,"135":0.01078,"136":0.01078,"137":0.03234,"138":0.53361,"139":0.12397,"140":0.01078,"141":0.00539,"142":0.11858,"143":0.11858,"144":0.44737,"145":5.77269,"146":7.29267,"147":0.00539,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 28 29 30 31 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 51 52 53 55 59 60 61 62 63 67 71 77 78 80 84 85 88 91 92 93 97 99 100 121 148 149 150"},F:{"56":0.00539,"63":0.00539,"64":0.00539,"67":0.00539,"79":0.01617,"90":0.00539,"94":0.00539,"95":0.05929,"96":0.02695,"109":0.00539,"110":0.00539,"114":0.00539,"116":0.00539,"124":0.00539,"125":0.00539,"126":0.0539,"127":0.73304,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 57 58 60 62 65 66 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 85 86 87 88 89 91 92 93 97 98 99 100 101 102 103 104 105 106 107 108 111 112 113 115 117 118 119 120 121 122 123 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"17":0.03234,"18":0.01617,"90":0.00539,"92":0.06468,"100":0.00539,"109":0.00539,"113":0.00539,"122":0.00539,"124":0.00539,"133":0.00539,"134":0.02156,"135":0.00539,"136":0.01078,"138":0.00539,"139":0.00539,"140":0.01078,"141":0.02156,"142":0.01617,"143":0.02156,"144":0.17787,"145":1.77331,"146":1.80565,_:"12 13 14 15 16 79 80 81 83 84 85 86 87 88 89 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 114 115 116 117 118 119 120 121 123 125 126 127 128 129 130 131 132 137"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 12.1 15.1 15.2-15.3 15.4 15.5 16.0 16.2 16.4 16.5 17.0 17.2 17.3 17.5 18.0 18.2 18.4 26.0 26.5 TP","10.1":0.01078,"11.1":0.00539,"13.1":0.03773,"14.1":0.00539,"15.6":0.03773,"16.1":0.00539,"16.3":0.01617,"16.6":0.02156,"17.1":0.00539,"17.4":0.00539,"17.6":0.07546,"18.1":0.00539,"18.3":0.00539,"18.5-18.7":0.00539,"26.1":0.00539,"26.2":0.03234,"26.3":0.22099,"26.4":0.02695},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00063,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00126,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00315,"11.0-11.2":0.07946,"11.3-11.4":0.00189,"12.0-12.1":0,"12.2-12.5":0.0246,"13.0-13.1":0,"13.2":0.00946,"13.3":0.00126,"13.4-13.7":0.00315,"14.0-14.4":0.00568,"14.5-14.8":0.00568,"15.0-15.1":0.0082,"15.2-15.3":0.00505,"15.4":0.00631,"15.5":0.00694,"15.6-15.8":0.11162,"16.0":0.01135,"16.1":0.02207,"16.2":0.01261,"16.3":0.0227,"16.4":0.00505,"16.5":0.00946,"16.6-16.7":0.15514,"17.0":0.00694,"17.1":0.01135,"17.2":0.01009,"17.3":0.01387,"17.4":0.0227,"17.5":0.04288,"17.6-17.7":0.11036,"18.0":0.02396,"18.1":0.04919,"18.2":0.02586,"18.3":0.08261,"18.4":0.03973,"18.5-18.7":1.26382,"26.0":0.07883,"26.1":0.11982,"26.2":0.70506,"26.3":3.06306,"26.4":0.11478,"26.5":0},P:{"4":0.01042,"24":0.01042,"26":0.01042,"27":0.02084,"28":0.02084,"29":0.42716,_:"20 21 22 23 25 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","5.0-5.4":0.01042,"7.2-7.4":0.01042},I:{"0":0.02764,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":1.0142,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{"2.5":0.01844,_:"3.0-3.1"},R:{_:"0"},M:{"0":0.10142},Q:{"14.9":0.00461},O:{"0":0.26738},H:{all:0},L:{"0":51.57103}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/CH.js b/server/api/node_modules/caniuse-lite/data/regions/CH.js new file mode 100644 index 0000000..5cbe2ee --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/CH.js @@ -0,0 +1 @@ +module.exports={C:{"48":0.01568,"52":0.02614,"60":0.00523,"78":0.03137,"84":0.00523,"101":0.00523,"102":0.00523,"113":0.00523,"115":0.3921,"121":0.00523,"122":0.00523,"123":0.01568,"127":0.00523,"128":0.02091,"129":0.00523,"132":0.00523,"133":0.01046,"134":0.00523,"136":0.01568,"137":0.00523,"138":0.00523,"139":0.00523,"140":0.5594,"141":0.01568,"142":0.00523,"143":0.02091,"144":0.02614,"145":0.04182,"146":0.04705,"147":0.23003,"148":4.07261,"149":0.81557,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 53 54 55 56 57 58 59 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 103 104 105 106 107 108 109 110 111 112 114 116 117 118 119 120 124 125 126 130 131 135 150 151 152 3.5 3.6"},D:{"39":0.01046,"40":0.01046,"41":0.01046,"42":0.01046,"43":0.01046,"44":0.01046,"45":0.01046,"46":0.01046,"47":0.01046,"48":0.01046,"49":0.02091,"50":0.01046,"51":0.01046,"52":0.01046,"53":0.01046,"54":0.01046,"55":0.01046,"56":0.01046,"57":0.01046,"58":0.01046,"59":0.01046,"60":0.01046,"80":0.02091,"87":0.00523,"92":0.00523,"98":0.01046,"99":0.00523,"103":0.04182,"107":0.01046,"108":0.00523,"109":0.23526,"110":0.00523,"111":0.01046,"114":0.01046,"116":0.08888,"118":0.00523,"119":0.00523,"120":0.0366,"121":0.01568,"122":0.04705,"123":0.00523,"124":0.01046,"125":0.01568,"126":0.01568,"127":0.01046,"128":0.07842,"129":0.01046,"130":0.01568,"131":0.03137,"132":0.02091,"133":0.05228,"134":0.03137,"135":0.02614,"136":0.02614,"137":0.0366,"138":0.1673,"139":0.06796,"140":0.04705,"141":0.07319,"142":0.12547,"143":0.35028,"144":0.58031,"145":9.60906,"146":7.38716,"147":0.01568,"148":0.00523,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 81 83 84 85 86 88 89 90 91 93 94 95 96 97 100 101 102 104 105 106 112 113 115 117 149 150"},F:{"87":0.00523,"95":0.06274,"96":0.06796,"102":0.00523,"113":0.00523,"114":0.00523,"122":0.00523,"125":0.00523,"126":0.01568,"127":0.79466,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 88 89 90 91 92 93 94 97 98 99 100 101 103 104 105 106 107 108 109 110 111 112 115 116 117 118 119 120 121 123 124 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.00523,"102":0.00523,"109":0.05751,"120":0.00523,"122":0.00523,"125":0.00523,"130":0.01568,"131":0.00523,"132":0.00523,"133":0.00523,"134":0.01046,"135":0.00523,"136":0.01046,"137":0.00523,"138":0.01046,"139":0.01568,"140":0.01568,"141":0.02614,"142":0.06796,"143":0.12024,"144":0.2614,"145":5.2646,"146":5.28551,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 121 123 124 126 127 128 129"},E:{"14":0.00523,_:"4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 15.1 15.2-15.3 26.5 TP","10.1":0.00523,"11.1":0.01046,"12.1":0.01046,"13.1":0.05228,"14.1":0.03137,"15.4":0.00523,"15.5":0.00523,"15.6":0.24572,"16.0":0.03137,"16.1":0.06274,"16.2":0.01046,"16.3":0.02614,"16.4":0.01046,"16.5":0.02091,"16.6":0.36596,"17.0":0.01046,"17.1":0.19866,"17.2":0.02091,"17.3":0.0366,"17.4":0.04182,"17.5":0.08365,"17.6":0.45484,"18.0":0.0366,"18.1":0.05228,"18.2":0.04182,"18.3":0.12547,"18.4":0.05751,"18.5-18.7":0.14638,"26.0":0.1673,"26.1":0.10979,"26.2":0.64304,"26.3":3.83735,"26.4":0.1673},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0023,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00459,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.01148,"11.0-11.2":0.28921,"11.3-11.4":0.00689,"12.0-12.1":0,"12.2-12.5":0.08952,"13.0-13.1":0,"13.2":0.03443,"13.3":0.00459,"13.4-13.7":0.01148,"14.0-14.4":0.02066,"14.5-14.8":0.02066,"15.0-15.1":0.02984,"15.2-15.3":0.01836,"15.4":0.02295,"15.5":0.02525,"15.6-15.8":0.40627,"16.0":0.04132,"16.1":0.08034,"16.2":0.04591,"16.3":0.08263,"16.4":0.01836,"16.5":0.03443,"16.6-16.7":0.56465,"17.0":0.02525,"17.1":0.04132,"17.2":0.03673,"17.3":0.0505,"17.4":0.08263,"17.5":0.15608,"17.6-17.7":0.40168,"18.0":0.08722,"18.1":0.17904,"18.2":0.09411,"18.3":0.30069,"18.4":0.14461,"18.5-18.7":4.59984,"26.0":0.28692,"26.1":0.43611,"26.2":2.56618,"26.3":11.14841,"26.4":0.41775,"26.5":0},P:{"21":0.01044,"23":0.01044,"24":0.01044,"25":0.01044,"26":0.02087,"27":0.02087,"28":0.09394,"29":3.67395,_:"4 20 22 6.2-6.4 7.2-7.4 8.2 10.1 11.1-11.2 12.0 13.0 15.0 16.0 18.0 19.0","5.0-5.4":0.01044,"9.2":0.01044,"14.0":0.01044,"17.0":0.01044},I:{"0":0.01907,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.28626,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.92557},Q:{"14.9":0.00477},O:{"0":0.10496},H:{all:0},L:{"0":21.57311}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/CI.js b/server/api/node_modules/caniuse-lite/data/regions/CI.js new file mode 100644 index 0000000..ab047a2 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/CI.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.01955,"68":0.00391,"94":0.00391,"98":0.00391,"106":0.00391,"114":0.00391,"115":0.06647,"120":0.00391,"123":0.00391,"125":0.00391,"126":0.00391,"127":0.01564,"129":0.00391,"133":0.00391,"140":0.02346,"141":0.00391,"142":0.01564,"143":0.01564,"144":0.00782,"145":0.01173,"146":0.01173,"147":0.10166,"148":1.27466,"149":0.23069,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 95 96 97 99 100 101 102 103 104 105 107 108 109 110 111 112 113 116 117 118 119 121 122 124 128 130 131 132 134 135 136 137 138 139 150 151 152 3.5 3.6"},D:{"27":0.00391,"49":0.00391,"50":0.00391,"56":0.00391,"58":0.00391,"59":0.00391,"64":0.00391,"65":0.00782,"66":0.00391,"67":0.00391,"68":0.00391,"69":0.00782,"70":0.00782,"72":0.00391,"73":0.01173,"74":0.00391,"75":0.01173,"79":0.01173,"81":0.03128,"83":0.01564,"85":0.00782,"86":0.00391,"87":0.01564,"89":0.00391,"90":0.00391,"91":0.00782,"93":0.00782,"95":0.00782,"98":0.01173,"102":0.00391,"103":0.20723,"104":0.17986,"105":0.18377,"106":0.18768,"107":0.18377,"108":0.18768,"109":1.07525,"110":0.18768,"111":0.18377,"112":0.52003,"113":0.00782,"114":0.00782,"115":0.01564,"116":0.43401,"117":0.18768,"119":0.08602,"120":0.1955,"121":0.00391,"122":0.01173,"123":0.00391,"124":0.20332,"125":0.00782,"126":0.02346,"127":0.01564,"128":0.07038,"129":0.00391,"130":0.01173,"131":0.43401,"132":0.01173,"133":0.38318,"134":0.01173,"135":0.01564,"136":0.01955,"137":0.01955,"138":0.25415,"139":0.09775,"140":0.01955,"141":0.01564,"142":0.05865,"143":0.10557,"144":0.30107,"145":6.47887,"146":4.79757,"147":0.06256,"148":0.00391,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 51 52 53 54 55 57 60 61 62 63 71 76 77 78 80 84 88 92 94 96 97 99 100 101 118 149 150"},F:{"50":0.01955,"63":0.00391,"95":0.04692,"96":0.02346,"102":0.00391,"109":0.00391,"114":0.00391,"122":0.00391,"124":0.00391,"125":0.00391,"126":0.0391,"127":0.41837,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 51 52 53 54 55 56 57 58 60 62 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 123 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.00391,"17":0.00391,"18":0.01173,"85":0.00391,"90":0.00782,"92":0.03519,"100":0.00391,"109":0.00782,"113":0.00391,"114":0.00391,"122":0.01173,"123":0.00391,"124":0.00391,"126":0.01564,"131":0.00391,"133":0.00391,"134":0.00391,"135":0.00391,"138":0.00391,"139":0.00782,"140":0.04301,"141":0.00782,"142":0.00782,"143":0.04301,"144":0.05474,"145":1.57573,"146":1.16127,_:"12 13 15 16 79 80 81 83 84 86 87 88 89 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 115 116 117 118 119 120 121 125 127 128 129 130 132 136 137"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 12.1 15.1 15.2-15.3 15.4 16.0 16.2 16.3 16.4 17.3 26.5 TP","5.1":0.00391,"11.1":0.00391,"13.1":0.00782,"14.1":0.00782,"15.5":0.00391,"15.6":0.03128,"16.1":0.00391,"16.5":0.00391,"16.6":0.08211,"17.0":0.00391,"17.1":0.00782,"17.2":0.00391,"17.4":0.00391,"17.5":0.01173,"17.6":0.07038,"18.0":0.00391,"18.1":0.00782,"18.2":0.00391,"18.3":0.00391,"18.4":0.00391,"18.5-18.7":0.01173,"26.0":0.01955,"26.1":0.01564,"26.2":0.09384,"26.3":0.37536,"26.4":0.03128},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0011,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00219,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00548,"11.0-11.2":0.13812,"11.3-11.4":0.00329,"12.0-12.1":0,"12.2-12.5":0.04275,"13.0-13.1":0,"13.2":0.01644,"13.3":0.00219,"13.4-13.7":0.00548,"14.0-14.4":0.00987,"14.5-14.8":0.00987,"15.0-15.1":0.01425,"15.2-15.3":0.00877,"15.4":0.01096,"15.5":0.01206,"15.6-15.8":0.19403,"16.0":0.01973,"16.1":0.03837,"16.2":0.02192,"16.3":0.03946,"16.4":0.00877,"16.5":0.01644,"16.6-16.7":0.26967,"17.0":0.01206,"17.1":0.01973,"17.2":0.01754,"17.3":0.02412,"17.4":0.03946,"17.5":0.07454,"17.6-17.7":0.19184,"18.0":0.04166,"18.1":0.0855,"18.2":0.04494,"18.3":0.1436,"18.4":0.06906,"18.5-18.7":2.19678,"26.0":0.13703,"26.1":0.20828,"26.2":1.22555,"26.3":5.32424,"26.4":0.19951,"26.5":0},P:{"23":0.01032,"24":0.01032,"25":0.02064,"26":0.02064,"27":0.10318,"28":0.15477,"29":0.89765,_:"4 20 21 22 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.03095},I:{"0":0.07301,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00004},K:{"0":0.50547,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.12789},Q:{"14.9":0.03654},O:{"0":0.26187},H:{all:0},L:{"0":61.47018}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/CK.js b/server/api/node_modules/caniuse-lite/data/regions/CK.js new file mode 100644 index 0000000..b54635e --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/CK.js @@ -0,0 +1 @@ +module.exports={C:{"115":0.06689,"147":0.03822,"148":0.75492,"149":0.14812,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 150 151 152 3.5 3.6"},D:{"79":0.00956,"87":0.06211,"109":0.00478,"111":0.00478,"116":0.04778,"122":0.05256,"126":0.01911,"128":0.01911,"131":0.00956,"134":0.00956,"138":0.10512,"139":0.02867,"140":0.00478,"142":0.03345,"143":0.32968,"144":0.5638,"145":15.27527,"146":13.02005,"147":0.00478,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 83 84 85 86 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 112 113 114 115 117 118 119 120 121 123 124 125 127 129 130 132 133 135 136 137 141 148 149 150"},F:{"96":0.01433,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"136":0.00956,"143":0.01433,"144":0.07645,"145":2.69957,"146":2.88591,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 137 138 139 140 141 142"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 15.1 15.2-15.3 15.4 16.0 16.1 16.4 17.0 17.2 18.0 18.1 18.4 26.5 TP","14.1":0.02389,"15.5":0.04778,"15.6":0.07645,"16.2":0.01911,"16.3":0.00478,"16.5":0.01911,"16.6":0.1529,"17.1":0.19112,"17.3":0.02389,"17.4":0.06689,"17.5":0.01433,"17.6":0.05256,"18.2":0.02389,"18.3":0.01911,"18.5-18.7":0.11467,"26.0":0.08123,"26.1":0.00478,"26.2":0.10512,"26.3":0.91738,"26.4":0.02867},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00238,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00477,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.01192,"11.0-11.2":0.30043,"11.3-11.4":0.00715,"12.0-12.1":0,"12.2-12.5":0.09299,"13.0-13.1":0,"13.2":0.03577,"13.3":0.00477,"13.4-13.7":0.01192,"14.0-14.4":0.02146,"14.5-14.8":0.02146,"15.0-15.1":0.031,"15.2-15.3":0.01907,"15.4":0.02384,"15.5":0.02623,"15.6-15.8":0.42203,"16.0":0.04292,"16.1":0.08345,"16.2":0.04769,"16.3":0.08584,"16.4":0.01907,"16.5":0.03577,"16.6-16.7":0.58655,"17.0":0.02623,"17.1":0.04292,"17.2":0.03815,"17.3":0.05246,"17.4":0.08584,"17.5":0.16214,"17.6-17.7":0.41726,"18.0":0.09061,"18.1":0.18598,"18.2":0.09776,"18.3":0.31235,"18.4":0.15022,"18.5-18.7":4.77827,"26.0":0.29805,"26.1":0.45303,"26.2":2.66572,"26.3":11.58086,"26.4":0.43395,"26.5":0},P:{"4":0.01017,"22":0.02034,"24":0.01017,"26":0.08137,"27":0.0712,"28":0.31532,"29":3.00061,_:"20 21 23 25 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.01565,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.01567,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.18277},Q:{_:"14.9"},O:{_:"0"},H:{all:0},L:{"0":33.50839}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/CL.js b/server/api/node_modules/caniuse-lite/data/regions/CL.js new file mode 100644 index 0000000..682b1a2 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/CL.js @@ -0,0 +1 @@ +module.exports={C:{"4":0.02697,"5":0.02697,"95":0.00539,"115":0.06473,"136":0.00539,"139":0.00539,"140":0.29667,"142":0.00539,"143":0.00539,"145":0.00539,"146":0.01079,"147":0.04855,"148":0.86843,"149":0.178,_:"2 3 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 137 138 141 144 150 151 152 3.5 3.6"},D:{"39":0.01079,"40":0.01079,"41":0.01079,"42":0.01079,"43":0.01079,"44":0.01079,"45":0.01079,"46":0.01079,"47":0.01079,"48":0.01079,"49":0.01079,"50":0.01079,"51":0.01079,"52":0.01079,"53":0.01079,"54":0.01079,"55":0.01079,"56":0.01079,"57":0.01079,"58":0.01079,"59":0.01079,"60":0.01079,"63":0.00539,"69":0.00539,"74":0.00539,"75":0.01079,"79":0.02158,"87":0.01618,"91":0.00539,"97":0.00539,"98":0.00539,"103":0.29667,"104":0.2697,"105":0.26431,"106":0.2697,"107":0.26431,"108":0.2697,"109":0.87922,"110":0.26431,"111":0.29667,"112":0.7174,"114":0.01079,"115":0.00539,"116":0.59873,"117":0.26431,"119":0.02158,"120":0.27509,"121":0.01079,"122":0.04855,"123":0.01079,"124":0.28588,"125":0.01079,"126":0.02158,"127":0.01618,"128":0.11867,"129":0.01618,"130":0.01618,"131":0.6257,"132":0.04855,"133":0.57176,"134":0.02697,"135":0.03776,"136":0.02158,"137":0.03776,"138":0.16721,"139":0.11867,"140":0.03776,"141":0.05394,"142":0.08091,"143":0.2697,"144":0.60952,"145":12.78917,"146":10.36187,"147":0.03236,"148":0.00539,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 61 62 64 65 66 67 68 70 71 72 73 76 77 78 80 81 83 84 85 86 88 89 90 92 93 94 95 96 99 100 101 102 113 118 149 150"},F:{"95":0.02697,"96":0.02158,"119":0.00539,"125":0.00539,"126":0.01618,"127":1.72608,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 120 121 122 123 124 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00539,"92":0.01618,"109":0.01618,"113":0.00539,"122":0.00539,"131":0.00539,"132":0.00539,"133":0.00539,"134":0.00539,"135":0.00539,"136":0.00539,"137":0.00539,"138":0.01618,"139":0.00539,"140":0.01079,"141":0.00539,"142":0.01618,"143":0.11327,"144":0.0917,"145":2.33021,"146":2.35178,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 114 115 116 117 118 119 120 121 123 124 125 126 127 128 129 130"},E:{"14":0.00539,_:"4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 10.1 12.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 17.0 17.2 26.5 TP","9.1":0.00539,"11.1":0.00539,"13.1":0.01618,"14.1":0.01079,"15.6":0.03776,"16.3":0.01079,"16.4":0.08091,"16.5":0.00539,"16.6":0.04315,"17.1":0.02158,"17.3":0.01079,"17.4":0.01079,"17.5":0.01618,"17.6":0.08091,"18.0":0.00539,"18.1":0.01079,"18.2":0.00539,"18.3":0.01618,"18.4":0.01079,"18.5-18.7":0.03236,"26.0":0.01618,"26.1":0.02697,"26.2":0.10788,"26.3":0.51243,"26.4":0.04315},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0008,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.0016,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00401,"11.0-11.2":0.10104,"11.3-11.4":0.00241,"12.0-12.1":0,"12.2-12.5":0.03127,"13.0-13.1":0,"13.2":0.01203,"13.3":0.0016,"13.4-13.7":0.00401,"14.0-14.4":0.00722,"14.5-14.8":0.00722,"15.0-15.1":0.01042,"15.2-15.3":0.00642,"15.4":0.00802,"15.5":0.00882,"15.6-15.8":0.14194,"16.0":0.01443,"16.1":0.02807,"16.2":0.01604,"16.3":0.02887,"16.4":0.00642,"16.5":0.01203,"16.6-16.7":0.19727,"17.0":0.00882,"17.1":0.01443,"17.2":0.01283,"17.3":0.01764,"17.4":0.02887,"17.5":0.05453,"17.6-17.7":0.14033,"18.0":0.03047,"18.1":0.06255,"18.2":0.03288,"18.3":0.10505,"18.4":0.05052,"18.5-18.7":1.60702,"26.0":0.10024,"26.1":0.15236,"26.2":0.89653,"26.3":3.89485,"26.4":0.14595,"26.5":0},P:{"4":0.02066,"21":0.01033,"22":0.01033,"23":0.01033,"24":0.01033,"25":0.02066,"26":0.03099,"27":0.03099,"28":0.05165,"29":1.19824,_:"20 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.01033},I:{"0":0.03681,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.16582,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.16121},Q:{_:"14.9"},O:{"0":0.01382},H:{all:0},L:{"0":41.52414}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/CM.js b/server/api/node_modules/caniuse-lite/data/regions/CM.js new file mode 100644 index 0000000..944256b --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/CM.js @@ -0,0 +1 @@ +module.exports={C:{"4":0.00359,"47":0.00359,"50":0.00719,"51":0.00719,"52":0.01078,"54":0.00359,"58":0.00359,"60":0.00719,"64":0.00359,"72":0.01078,"85":0.00359,"104":0.00359,"109":0.00719,"112":0.01078,"114":0.00719,"115":0.18324,"127":0.02874,"128":0.01078,"129":0.00359,"131":0.00359,"133":0.00359,"134":0.00359,"136":0.01078,"137":0.00359,"138":0.00359,"139":0.00719,"140":0.08983,"141":0.00359,"142":0.01437,"143":0.02515,"144":0.02156,"145":0.01078,"146":0.03593,"147":0.19402,"148":1.50906,"149":0.21917,"150":0.00359,_:"2 3 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 49 53 55 56 57 59 61 62 63 65 66 67 68 69 70 71 73 74 75 76 77 78 79 80 81 82 83 84 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 105 106 107 108 110 111 113 116 117 118 119 120 121 122 123 124 125 126 130 132 135 151 152 3.5 3.6"},D:{"38":0.00719,"56":0.0503,"57":0.00719,"58":0.00719,"60":0.00359,"62":0.00359,"63":0.00359,"64":0.00359,"67":0.01078,"69":0.00719,"70":0.01078,"71":0.00719,"72":0.00719,"73":0.00359,"74":0.01078,"75":0.01437,"76":0.00359,"77":0.00719,"78":0.00359,"79":0.00719,"80":0.00719,"81":0.01078,"85":0.00359,"86":0.01797,"87":0.00719,"88":0.01797,"89":0.00719,"90":0.00359,"91":0.00359,"92":0.00719,"93":0.01078,"94":0.00359,"95":0.00359,"96":0.00359,"101":0.00359,"102":0.00359,"103":0.01437,"104":0.00359,"105":0.00359,"106":0.01078,"108":0.00359,"109":0.53176,"110":0.00359,"111":0.01437,"112":0.00359,"113":0.00359,"114":0.01797,"116":0.0503,"118":0.00359,"119":0.0539,"120":0.03234,"121":0.00719,"122":0.03234,"123":0.01797,"124":0.01437,"125":0.00719,"126":0.02156,"127":0.01437,"128":0.03234,"129":0.00359,"130":0.02874,"131":0.04312,"132":0.01078,"133":0.01437,"134":0.02874,"135":0.01437,"136":0.05749,"137":0.02515,"138":0.14372,"139":0.12935,"140":0.05749,"141":0.06108,"142":0.07545,"143":0.16169,"144":0.6144,"145":6.04702,"146":4.43017,"147":0.01437,"148":0.00359,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 59 61 65 66 68 83 84 97 98 99 100 107 115 117 149 150"},F:{"44":0.00359,"46":0.00359,"48":0.00359,"79":0.00719,"88":0.00359,"93":0.01437,"94":0.01437,"95":0.11857,"96":0.01797,"109":0.00359,"112":0.00719,"120":0.00359,"122":0.00719,"124":0.00719,"125":0.02156,"126":0.06827,"127":0.62878,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 45 47 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 85 86 87 89 90 91 92 97 98 99 100 101 102 103 104 105 106 107 108 110 111 113 114 115 116 117 118 119 121 123 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.01437,"15":0.01437,"16":0.00359,"17":0.02156,"18":0.05749,"84":0.00719,"89":0.01797,"90":0.01437,"92":0.08623,"100":0.03234,"109":0.01078,"114":0.00359,"115":0.00719,"120":0.01078,"122":0.01797,"126":0.00719,"128":0.00359,"131":0.01078,"132":0.00359,"133":0.00359,"135":0.00719,"136":0.00359,"137":0.00719,"138":0.01437,"139":0.02515,"140":0.01797,"141":0.01078,"142":0.02874,"143":0.0539,"144":0.24792,"145":1.65278,"146":1.27552,_:"12 13 79 80 81 83 85 86 87 88 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 116 117 118 119 121 123 124 125 127 129 130 134"},E:{"10":0.00719,"14":0.01078,_:"4 5 6 7 8 9 11 12 13 15 3.1 3.2 6.1 7.1 9.1 15.2-15.3 15.4 15.5 16.0 16.2 16.3 16.4 17.0 17.2 17.3 18.1 18.2 18.4 26.5 TP","5.1":0.00719,"10.1":0.00359,"11.1":0.00719,"12.1":0.00359,"13.1":0.01437,"14.1":0.00719,"15.1":0.00359,"15.6":0.04312,"16.1":0.00359,"16.5":0.00359,"16.6":0.02156,"17.1":0.01078,"17.4":0.00719,"17.5":0.00359,"17.6":0.04312,"18.0":0.00359,"18.3":0.01078,"18.5-18.7":0.01078,"26.0":0.00719,"26.1":0.00359,"26.2":0.01437,"26.3":0.09342,"26.4":0.00359},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00084,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00169,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00421,"11.0-11.2":0.10616,"11.3-11.4":0.00253,"12.0-12.1":0,"12.2-12.5":0.03286,"13.0-13.1":0,"13.2":0.01264,"13.3":0.00169,"13.4-13.7":0.00421,"14.0-14.4":0.00758,"14.5-14.8":0.00758,"15.0-15.1":0.01095,"15.2-15.3":0.00674,"15.4":0.00843,"15.5":0.00927,"15.6-15.8":0.14913,"16.0":0.01517,"16.1":0.02949,"16.2":0.01685,"16.3":0.03033,"16.4":0.00674,"16.5":0.01264,"16.6-16.7":0.20726,"17.0":0.00927,"17.1":0.01517,"17.2":0.01348,"17.3":0.01854,"17.4":0.03033,"17.5":0.05729,"17.6-17.7":0.14744,"18.0":0.03202,"18.1":0.06572,"18.2":0.03454,"18.3":0.11037,"18.4":0.05308,"18.5-18.7":1.68841,"26.0":0.10532,"26.1":0.16008,"26.2":0.94194,"26.3":4.09212,"26.4":0.15334,"26.5":0},P:{"24":0.01054,"25":0.05271,"26":0.01054,"27":0.05271,"28":0.17922,"29":0.45332,_:"4 20 21 22 23 5.0-5.4 6.2-6.4 8.2 10.1 12.0 13.0 14.0 16.0 17.0 18.0","7.2-7.4":0.31627,"9.2":0.05271,"11.1-11.2":0.01054,"15.0":0.01054,"19.0":0.01054},I:{"0":0.03201,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":3.16787,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.01293,"11":0.0194,_:"6 7 9 10 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{"2.5":0.03204,_:"3.0-3.1"},R:{_:"0"},M:{"0":0.22425},Q:{"14.9":0.01922},O:{"0":0.40364},H:{all:0.01},L:{"0":64.44903}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/CN.js b/server/api/node_modules/caniuse-lite/data/regions/CN.js new file mode 100644 index 0000000..2677bbf --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/CN.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.06126,"52":0.00438,"72":0.00438,"103":0.00438,"105":0.00438,"115":0.08314,"116":0.00438,"121":0.00438,"127":0.00438,"128":0.00438,"131":0.00438,"134":0.00438,"135":0.00438,"136":0.00438,"138":0.00438,"140":0.01313,"141":0.00438,"142":0.00438,"143":0.00438,"144":0.00438,"145":0.00438,"146":0.00875,"147":0.05251,"148":0.53387,"149":0.10502,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 104 106 107 108 109 110 111 112 113 114 117 118 119 120 122 123 124 125 126 129 130 132 133 137 139 150 151 152 3.5 3.6"},D:{"45":0.0175,"48":0.00438,"49":0.01313,"53":0.02188,"55":0.01313,"57":0.00875,"58":0.00438,"59":0.00875,"61":0.00875,"62":0.00438,"63":0.00875,"65":0.00438,"66":0.00438,"67":0.01313,"68":0.00438,"69":0.09627,"70":0.00438,"71":0.00438,"72":0.00438,"73":0.02626,"74":0.00438,"75":0.00875,"78":0.02626,"79":0.10502,"80":0.02626,"81":0.00438,"83":0.03063,"84":0.00438,"85":0.01313,"86":0.08752,"87":0.02188,"88":0.00438,"89":0.00875,"90":0.00875,"91":0.01313,"92":0.0175,"93":0.00438,"94":0.00875,"95":0.00875,"96":0.01313,"97":0.12253,"98":0.02626,"99":0.05251,"100":0.0175,"101":0.13128,"102":0.03063,"103":0.1094,"104":0.0919,"105":0.10502,"106":0.10065,"107":0.11815,"108":0.15754,"109":1.01961,"110":0.10065,"111":0.10065,"112":0.1269,"113":0.01313,"114":0.27569,"115":0.1269,"116":0.2013,"117":0.09627,"118":0.02188,"119":0.03501,"120":0.18817,"121":0.10065,"122":0.04814,"123":0.0919,"124":0.21442,"125":0.13566,"126":0.07439,"127":0.03501,"128":0.14441,"129":0.03063,"130":0.70891,"131":0.55138,"132":0.11815,"133":0.22318,"134":0.07877,"135":0.3457,"136":0.1269,"137":0.11815,"138":0.07002,"139":0.70016,"140":0.15316,"141":0.24506,"142":1.21215,"143":0.11378,"144":2.41118,"145":1.85542,"146":1.28217,"147":0.02626,"148":0.02626,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 46 47 50 51 52 54 56 60 64 76 77 149 150"},F:{"95":0.00438,"113":0.00438,"127":0.00875,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 114 115 116 117 118 119 120 121 122 123 124 125 126 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.0175,"81":0.00438,"84":0.00438,"89":0.00438,"90":0.00438,"92":0.10065,"94":0.00438,"95":0.00438,"99":0.00438,"100":0.0175,"102":0.00438,"103":0.00438,"104":0.00438,"106":0.03501,"107":0.0175,"108":0.00875,"109":0.11815,"110":0.00875,"111":0.01313,"112":0.0175,"113":0.05689,"114":0.04376,"115":0.0175,"116":0.02626,"117":0.02626,"118":0.03063,"119":0.02188,"120":0.27569,"121":0.02626,"122":0.07439,"123":0.04376,"124":0.03063,"125":0.02626,"126":0.06564,"127":0.08314,"128":0.04376,"129":0.04814,"130":0.04814,"131":0.12253,"132":0.05251,"133":0.08752,"134":0.07002,"135":0.0919,"136":0.08752,"137":0.09627,"138":0.17066,"139":0.1094,"140":0.14878,"141":0.14441,"142":0.17504,"143":0.25818,"144":0.75705,"145":4.94926,"146":5.03678,_:"12 13 14 15 16 17 79 80 83 85 86 87 88 91 93 96 97 98 101 105"},E:{"13":0.00875,"14":0.03501,"15":0.00875,_:"4 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 26.5 TP","12.1":0.00875,"13.1":0.04376,"14.1":0.04376,"15.1":0.00875,"15.2-15.3":0.00438,"15.4":0.02188,"15.5":0.0175,"15.6":0.13566,"16.0":0.00438,"16.1":0.0175,"16.2":0.0175,"16.3":0.03501,"16.4":0.01313,"16.5":0.0175,"16.6":0.14878,"17.0":0.00438,"17.1":0.06126,"17.2":0.00875,"17.3":0.00875,"17.4":0.02188,"17.5":0.03063,"17.6":0.07002,"18.0":0.01313,"18.1":0.0175,"18.2":0.01313,"18.3":0.03938,"18.4":0.0175,"18.5-18.7":0.06126,"26.0":0.0175,"26.1":0.02626,"26.2":0.14003,"26.3":0.49886,"26.4":0.0175},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00141,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00281,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00703,"11.0-11.2":0.17709,"11.3-11.4":0.00422,"12.0-12.1":0,"12.2-12.5":0.05481,"13.0-13.1":0,"13.2":0.02108,"13.3":0.00281,"13.4-13.7":0.00703,"14.0-14.4":0.01265,"14.5-14.8":0.01265,"15.0-15.1":0.01827,"15.2-15.3":0.01124,"15.4":0.01405,"15.5":0.01546,"15.6-15.8":0.24876,"16.0":0.0253,"16.1":0.04919,"16.2":0.02811,"16.3":0.0506,"16.4":0.01124,"16.5":0.02108,"16.6-16.7":0.34574,"17.0":0.01546,"17.1":0.0253,"17.2":0.02249,"17.3":0.03092,"17.4":0.0506,"17.5":0.09557,"17.6-17.7":0.24595,"18.0":0.05341,"18.1":0.10962,"18.2":0.05762,"18.3":0.18411,"18.4":0.08854,"18.5-18.7":2.8165,"26.0":0.17568,"26.1":0.26703,"26.2":1.57128,"26.3":6.82621,"26.4":0.25579,"26.5":0},P:{"4":0.01087,"21":0.01087,"27":0.01087,"28":0.02175,"29":0.25008,_:"20 22 23 24 25 26 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 14.0 15.0 16.0 17.0 18.0 19.0","5.0-5.4":0.01087,"13.0":0.01087},I:{"0":0.34276,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00017},K:{"0":0.04499,_:"10 11 12 11.1 11.5 12.1"},A:{"11":5.83758,_:"6 7 8 9 10 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.19122},Q:{"14.9":2.42394},O:{"0":5.19095},H:{all:0},L:{"0":34.67481}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/CO.js b/server/api/node_modules/caniuse-lite/data/regions/CO.js new file mode 100644 index 0000000..fc9b420 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/CO.js @@ -0,0 +1 @@ +module.exports={C:{"4":0.0276,"5":0.01104,"115":0.01932,"123":0.00276,"135":0.00552,"136":0.00828,"137":0.00828,"138":0.01104,"140":0.00828,"143":0.00276,"144":0.00276,"145":0.00552,"146":0.00276,"147":0.01656,"148":0.31464,"149":0.07452,_:"2 3 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 124 125 126 127 128 129 130 131 132 133 134 139 141 142 150 151 152 3.5 3.6"},D:{"63":0.00276,"69":0.00276,"70":0.00276,"72":0.00828,"73":0.00276,"75":0.00276,"79":0.01104,"83":0.00276,"86":0.01656,"87":0.00828,"88":0.00276,"89":0.00276,"91":0.00552,"92":0.00276,"97":0.00828,"102":0.00276,"103":0.12144,"104":0.11592,"105":0.11592,"106":0.11592,"107":0.11592,"108":0.11868,"109":0.36984,"110":0.1242,"111":0.12972,"112":0.31464,"113":0.00276,"114":0.00828,"115":0.00276,"116":0.2622,"117":0.11316,"119":0.03036,"120":0.1242,"121":0.00828,"122":0.03312,"123":0.01104,"124":0.12696,"125":0.01104,"126":0.01656,"127":0.00828,"128":0.04416,"129":0.01932,"130":0.0138,"131":0.276,"132":0.03036,"133":0.27048,"134":0.04692,"135":0.08004,"136":0.05796,"137":0.01656,"138":0.09384,"139":0.04968,"140":0.03312,"141":0.01932,"142":0.04968,"143":0.13524,"144":0.81696,"145":6.45288,"146":6.77304,"147":0.01656,"148":0.00276,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 64 65 66 67 68 71 74 76 77 78 80 81 84 85 90 93 94 95 96 98 99 100 101 118 149 150"},F:{"85":0.00552,"95":0.01656,"96":0.01932,"118":0.00828,"119":0.00276,"126":0.0276,"127":0.46644,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 120 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00276,"92":0.00552,"102":0.00276,"109":0.00828,"122":0.00276,"130":0.00276,"131":0.00276,"133":0.00276,"134":0.00276,"135":0.00276,"136":0.00276,"137":0.00276,"138":0.00276,"139":0.00276,"140":0.00276,"141":0.00276,"142":0.00828,"143":0.0552,"144":0.08004,"145":0.9936,"146":1.0902,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 123 124 125 126 127 128 129 132"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 17.0 17.2 26.5 TP","5.1":0.00552,"13.1":0.00828,"14.1":0.00276,"15.6":0.01656,"16.3":0.00276,"16.4":0.00276,"16.5":0.00276,"16.6":0.02484,"17.1":0.0138,"17.3":0.00276,"17.4":0.00276,"17.5":0.00552,"17.6":0.03036,"18.0":0.00276,"18.1":0.00552,"18.2":0.00276,"18.3":0.0138,"18.4":0.00828,"18.5-18.7":0.01656,"26.0":0.01104,"26.1":0.01104,"26.2":0.08004,"26.3":0.29808,"26.4":0.01656},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00106,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00211,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00529,"11.0-11.2":0.13319,"11.3-11.4":0.00317,"12.0-12.1":0,"12.2-12.5":0.04122,"13.0-13.1":0,"13.2":0.01586,"13.3":0.00211,"13.4-13.7":0.00529,"14.0-14.4":0.00951,"14.5-14.8":0.00951,"15.0-15.1":0.01374,"15.2-15.3":0.00846,"15.4":0.01057,"15.5":0.01163,"15.6-15.8":0.1871,"16.0":0.01903,"16.1":0.037,"16.2":0.02114,"16.3":0.03805,"16.4":0.00846,"16.5":0.01586,"16.6-16.7":0.26003,"17.0":0.01163,"17.1":0.01903,"17.2":0.01691,"17.3":0.02325,"17.4":0.03805,"17.5":0.07188,"17.6-17.7":0.18498,"18.0":0.04017,"18.1":0.08245,"18.2":0.04334,"18.3":0.13847,"18.4":0.06659,"18.5-18.7":2.11831,"26.0":0.13213,"26.1":0.20084,"26.2":1.18177,"26.3":5.13404,"26.4":0.19238,"26.5":0},P:{"21":0.01043,"22":0.01043,"23":0.02086,"24":0.01043,"25":0.01043,"26":0.04171,"27":0.03128,"28":0.05214,"29":1.17834,_:"4 20 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.03128},I:{"0":0.05063,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00003},K:{"0":0.10136,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.13032},Q:{_:"14.9"},O:{"0":0.00724},H:{all:0},L:{"0":64.66548}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/CR.js b/server/api/node_modules/caniuse-lite/data/regions/CR.js new file mode 100644 index 0000000..7b00819 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/CR.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.02677,"115":0.28912,"125":0.00535,"135":0.01071,"140":0.03212,"144":0.03212,"145":0.02142,"146":0.01071,"147":0.13385,"148":1.59549,"149":0.25699,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 126 127 128 129 130 131 132 133 134 136 137 138 139 141 142 143 150 151 152 3.5 3.6"},D:{"56":0.00535,"69":0.00535,"79":0.00535,"80":0.01071,"81":0.00535,"83":0.00535,"87":0.00535,"97":0.01606,"98":0.01071,"101":0.00535,"103":0.32124,"104":0.31589,"105":0.31053,"106":0.30518,"107":0.30518,"108":0.31589,"109":0.47115,"110":0.31589,"111":0.32124,"112":0.69602,"114":0.01606,"115":0.01071,"116":0.65319,"117":0.29982,"118":0.00535,"119":0.01606,"120":0.30518,"122":0.03748,"123":0.01071,"124":0.33195,"125":0.00535,"126":0.18739,"127":0.01071,"128":0.08031,"129":0.01071,"130":0.02142,"131":0.69067,"132":0.04819,"133":0.64248,"134":0.02142,"135":0.03212,"136":0.01071,"137":0.03748,"138":0.17133,"139":0.17133,"140":0.12314,"141":0.11243,"142":0.13385,"143":0.21951,"144":0.9423,"145":12.83889,"146":9.60508,"147":0.1392,"148":0.00535,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 57 58 59 60 61 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 78 84 85 86 88 89 90 91 92 93 94 95 96 99 100 102 113 121 149 150"},F:{"90":0.00535,"95":0.01606,"96":0.02677,"126":0.02142,"127":1.0012,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00535,"89":0.00535,"92":0.01071,"109":0.01071,"114":0.00535,"131":0.00535,"134":0.02677,"138":0.00535,"139":0.00535,"140":0.00535,"141":0.00535,"142":0.01606,"143":0.05354,"144":0.08566,"145":2.97147,"146":2.73589,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 132 133 135 136 137"},E:{"14":0.02142,_:"4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 15.5 16.0 16.2 16.4 26.5 TP","5.1":0.00535,"13.1":0.00535,"14.1":0.03212,"15.6":0.07496,"16.1":0.00535,"16.3":0.01071,"16.5":0.01071,"16.6":0.09102,"17.0":0.00535,"17.1":0.09637,"17.2":0.00535,"17.3":0.00535,"17.4":0.01071,"17.5":0.09637,"17.6":0.12314,"18.0":0.00535,"18.1":0.01071,"18.2":0.01071,"18.3":0.03212,"18.4":0.00535,"18.5-18.7":0.0696,"26.0":0.03212,"26.1":0.03212,"26.2":0.31589,"26.3":1.49377,"26.4":0.03748},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00142,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00284,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00709,"11.0-11.2":0.17876,"11.3-11.4":0.00426,"12.0-12.1":0,"12.2-12.5":0.05533,"13.0-13.1":0,"13.2":0.02128,"13.3":0.00284,"13.4-13.7":0.00709,"14.0-14.4":0.01277,"14.5-14.8":0.01277,"15.0-15.1":0.01844,"15.2-15.3":0.01135,"15.4":0.01419,"15.5":0.01561,"15.6-15.8":0.25112,"16.0":0.02554,"16.1":0.04966,"16.2":0.02837,"16.3":0.05107,"16.4":0.01135,"16.5":0.02128,"16.6-16.7":0.34901,"17.0":0.01561,"17.1":0.02554,"17.2":0.0227,"17.3":0.03121,"17.4":0.05107,"17.5":0.09647,"17.6-17.7":0.24828,"18.0":0.05391,"18.1":0.11066,"18.2":0.05817,"18.3":0.18585,"18.4":0.08938,"18.5-18.7":2.84313,"26.0":0.17734,"26.1":0.26956,"26.2":1.58614,"26.3":6.89077,"26.4":0.25821,"26.5":0},P:{"4":0.01034,"23":0.01034,"25":0.02068,"26":0.0517,"27":0.02068,"28":0.06203,"29":2.37799,_:"20 21 22 24 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.02068},I:{"0":0.05571,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00003},K:{"0":0.32529,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.43217},Q:{_:"14.9"},O:{"0":0.02788},H:{all:0},L:{"0":35.11526}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/CU.js b/server/api/node_modules/caniuse-lite/data/regions/CU.js new file mode 100644 index 0000000..cddb5ea --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/CU.js @@ -0,0 +1 @@ +module.exports={C:{"4":0.28274,"50":0.00932,"51":0.00311,"52":0.01864,"53":0.00311,"54":0.01554,"56":0.00621,"57":0.05593,"60":0.00621,"61":0.00621,"66":0.00311,"68":0.00932,"72":0.01864,"75":0.00311,"78":0.00621,"82":0.00621,"83":0.00311,"84":0.00311,"86":0.00311,"87":0.00311,"88":0.00932,"90":0.00311,"91":0.00311,"92":0.00621,"93":0.00311,"94":0.01554,"95":0.01554,"97":0.00621,"99":0.00311,"100":0.01243,"101":0.00311,"102":0.00932,"103":0.00621,"106":0.00311,"107":0.03418,"108":0.00621,"109":0.00311,"110":0.00621,"111":0.01864,"112":0.01243,"113":0.00621,"114":0.00311,"115":0.64936,"116":0.00932,"118":0.00311,"120":0.00311,"121":0.00311,"122":0.01554,"123":0.00311,"124":0.00621,"125":0.00311,"126":0.01554,"127":0.11185,"128":0.01243,"129":0.00621,"130":0.00311,"131":0.00932,"132":0.00621,"133":0.00621,"134":0.04039,"135":0.01243,"136":0.03107,"137":0.01864,"138":0.01243,"139":0.01243,"140":0.19885,"141":0.03728,"142":0.03418,"143":0.05593,"144":0.04971,"145":0.04971,"146":0.10875,"147":0.30138,"148":3.32449,"149":0.63072,"150":0.00932,_:"2 3 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 55 58 59 62 63 64 65 67 69 70 71 73 74 76 77 79 80 81 85 89 96 98 104 105 117 119 151 152 3.5 3.6"},D:{"49":0.00311,"51":0.00621,"52":0.00311,"54":0.00311,"55":0.00311,"57":0.01243,"59":0.00311,"60":0.00311,"61":0.02796,"63":0.00311,"68":0.00311,"69":0.00311,"70":0.00311,"71":0.01554,"72":0.00621,"73":0.00311,"74":0.00621,"75":0.00621,"76":0.00311,"77":0.00932,"79":0.01554,"80":0.00621,"81":0.01243,"86":0.03107,"87":0.01243,"88":0.03418,"89":0.00932,"90":0.02486,"91":0.00932,"93":0.00621,"94":0.00621,"95":0.00311,"96":0.00311,"97":0.00311,"99":0.00621,"100":0.00311,"101":0.00311,"102":0.02486,"103":0.00621,"105":0.00621,"106":0.00621,"107":0.00311,"108":0.00932,"109":0.36352,"110":0.00932,"111":0.01243,"112":0.01554,"113":0.00621,"114":0.00311,"116":0.04971,"117":0.00311,"118":0.07768,"119":0.00932,"120":0.087,"121":0.00932,"122":0.01554,"123":0.02175,"124":0.03728,"125":0.03418,"126":0.03107,"127":0.01554,"128":0.01864,"129":0.00621,"130":0.01554,"131":0.02486,"132":0.02486,"133":0.02175,"134":0.21438,"135":0.01864,"136":0.04971,"137":0.04661,"138":0.10253,"139":0.10253,"140":0.01243,"141":0.06214,"142":0.09632,"143":0.23303,"144":0.29517,"145":2.50735,"146":1.78963,"147":0.00621,"148":0.00311,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 53 56 58 62 64 65 66 67 78 83 84 85 92 98 104 115 149 150"},F:{"40":0.00311,"42":0.00311,"45":0.00311,"47":0.00311,"62":0.06835,"64":0.00311,"70":0.00311,"71":0.00311,"79":0.01864,"86":0.00311,"93":0.03107,"94":0.00621,"95":0.12117,"96":0.03728,"98":0.00311,"108":0.00621,"112":0.00311,"113":0.00311,"114":0.00311,"115":0.00311,"117":0.00311,"118":0.01243,"119":0.00311,"120":0.01243,"121":0.00311,"122":0.00621,"123":0.00311,"124":0.01554,"125":0.00932,"126":0.06525,"127":0.51887,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 41 43 44 46 48 49 50 51 52 53 54 55 56 57 58 60 63 65 66 67 68 69 72 73 74 75 76 77 78 80 81 82 83 84 85 87 88 89 90 91 92 97 99 100 101 102 103 104 105 106 107 109 110 111 116 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.01554,"15":0.01554,"16":0.01554,"17":0.01243,"18":0.06525,"84":0.01243,"89":0.00932,"90":0.02486,"92":0.25477,"95":0.00311,"96":0.00311,"100":0.05903,"101":0.00311,"107":0.00311,"109":0.01554,"112":0.00311,"113":0.00311,"115":0.00932,"118":0.00311,"119":0.00311,"120":0.00621,"121":0.00621,"122":0.07146,"124":0.00311,"128":0.01243,"129":0.00621,"130":0.00932,"131":0.02175,"132":0.00311,"133":0.00621,"134":0.01554,"135":0.00621,"136":0.00932,"137":0.01243,"138":0.02175,"139":0.01864,"140":0.04971,"141":0.04661,"142":0.02796,"143":0.12428,"144":0.19263,"145":1.40126,"146":1.06259,_:"12 13 79 80 81 83 85 86 87 88 91 93 94 97 98 99 102 103 104 105 106 108 110 111 114 116 117 123 125 126 127"},E:{"11":0.00311,_:"4 5 6 7 8 9 10 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 14.1 15.1 15.2-15.3 16.0 16.1 16.2 16.3 16.4 16.5 17.0 17.2 17.3 17.5 18.0 18.1 18.3 26.5 TP","5.1":0.00621,"11.1":0.01243,"12.1":0.00311,"13.1":0.00311,"15.4":0.00311,"15.5":0.00311,"15.6":0.00621,"16.6":0.00621,"17.1":0.00311,"17.4":0.00932,"17.6":0.00932,"18.2":0.00311,"18.4":0.00311,"18.5-18.7":0.00621,"26.0":0.00621,"26.1":0.00311,"26.2":0.00932,"26.3":0.15224,"26.4":0.02175},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00024,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00049,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00121,"11.0-11.2":0.03058,"11.3-11.4":0.00073,"12.0-12.1":0,"12.2-12.5":0.00946,"13.0-13.1":0,"13.2":0.00364,"13.3":0.00049,"13.4-13.7":0.00121,"14.0-14.4":0.00218,"14.5-14.8":0.00218,"15.0-15.1":0.00315,"15.2-15.3":0.00194,"15.4":0.00243,"15.5":0.00267,"15.6-15.8":0.04295,"16.0":0.00437,"16.1":0.00849,"16.2":0.00485,"16.3":0.00874,"16.4":0.00194,"16.5":0.00364,"16.6-16.7":0.0597,"17.0":0.00267,"17.1":0.00437,"17.2":0.00388,"17.3":0.00534,"17.4":0.00874,"17.5":0.0165,"17.6-17.7":0.04247,"18.0":0.00922,"18.1":0.01893,"18.2":0.00995,"18.3":0.03179,"18.4":0.01529,"18.5-18.7":0.48631,"26.0":0.03033,"26.1":0.04611,"26.2":0.2713,"26.3":1.17864,"26.4":0.04417,"26.5":0},P:{"20":0.01015,"21":0.02029,"22":0.04059,"23":0.02029,"24":0.1725,"25":0.08118,"26":0.06088,"27":0.21309,"28":0.42617,"29":1.06544,_:"4 5.0-5.4 8.2 10.1 12.0 18.0","6.2-6.4":0.01015,"7.2-7.4":0.07103,"9.2":0.02029,"11.1-11.2":0.02029,"13.0":0.02029,"14.0":0.01015,"15.0":0.02029,"16.0":0.03044,"17.0":0.01015,"19.0":0.02029},I:{"0":0.10332,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00005},K:{"0":0.9169,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.00621,_:"6 7 8 9 10 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.29644},Q:{_:"14.9"},O:{"0":0.03447},H:{all:0},L:{"0":74.27595}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/CV.js b/server/api/node_modules/caniuse-lite/data/regions/CV.js new file mode 100644 index 0000000..52cc123 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/CV.js @@ -0,0 +1 @@ +module.exports={C:{"69":0.00486,"91":0.00971,"115":0.01457,"123":0.00486,"136":0.08257,"140":0.00971,"143":0.00971,"147":0.27199,"148":0.85969,"149":0.05343,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 124 125 126 127 128 129 130 131 132 133 134 135 137 138 139 141 142 144 145 146 150 151 152 3.5 3.6"},D:{"49":0.00971,"56":0.00486,"58":0.00971,"65":0.00971,"66":0.00971,"68":0.02429,"70":0.00486,"72":0.00971,"73":0.034,"74":0.00486,"75":0.00486,"76":0.00486,"79":0.01457,"81":0.02429,"83":0.00971,"87":0.00486,"95":0.03886,"103":0.02429,"104":0.00971,"105":0.00486,"106":0.00971,"108":0.00971,"109":0.25742,"111":0.00486,"113":0.00971,"114":0.00486,"116":0.04857,"117":0.01457,"119":0.01943,"120":0.034,"121":0.00971,"122":0.02429,"124":0.00971,"125":0.00486,"126":0.00486,"127":0.00486,"128":0.32056,"130":0.00971,"131":0.06314,"132":0.01457,"133":0.01457,"134":0.01457,"135":0.00486,"136":0.02429,"138":0.14085,"139":0.28656,"140":0.07286,"141":0.03886,"142":0.08257,"143":1.17539,"144":0.6557,"145":9.51486,"146":7.33893,"147":0.04371,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 57 59 60 61 62 63 64 67 69 71 77 78 80 84 85 86 88 89 90 91 92 93 94 96 97 98 99 100 101 102 107 110 112 115 118 123 129 137 148 149 150"},F:{"64":0.00486,"95":0.00486,"96":0.00486,"122":0.00971,"126":0.01943,"127":0.42742,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00971,"92":0.00971,"109":0.00486,"112":0.00486,"113":0.00486,"122":0.00486,"124":0.01457,"125":0.00486,"131":0.034,"132":0.00486,"133":0.00486,"135":0.00486,"136":0.034,"139":0.14085,"140":0.00971,"141":0.00486,"142":0.01943,"143":0.02429,"144":0.19914,"145":3.59904,"146":2.77335,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 114 115 116 117 118 119 120 121 123 126 127 128 129 130 134 137 138"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.4 17.0 17.2 17.3 18.3 18.4 26.4 26.5 TP","13.1":0.136,"14.1":0.17,"15.6":0.068,"16.3":0.00486,"16.5":0.00971,"16.6":0.09714,"17.1":0.05828,"17.4":0.00971,"17.5":0.12628,"17.6":0.60713,"18.0":0.00971,"18.1":0.00971,"18.2":0.00486,"18.5-18.7":0.13114,"26.0":0.04857,"26.1":0.00971,"26.2":0.136,"26.3":1.59795},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00132,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00265,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00662,"11.0-11.2":0.1668,"11.3-11.4":0.00397,"12.0-12.1":0,"12.2-12.5":0.05163,"13.0-13.1":0,"13.2":0.01986,"13.3":0.00265,"13.4-13.7":0.00662,"14.0-14.4":0.01191,"14.5-14.8":0.01191,"15.0-15.1":0.01721,"15.2-15.3":0.01059,"15.4":0.01324,"15.5":0.01456,"15.6-15.8":0.23431,"16.0":0.02383,"16.1":0.04633,"16.2":0.02648,"16.3":0.04766,"16.4":0.01059,"16.5":0.01986,"16.6-16.7":0.32566,"17.0":0.01456,"17.1":0.02383,"17.2":0.02118,"17.3":0.02912,"17.4":0.04766,"17.5":0.09002,"17.6-17.7":0.23167,"18.0":0.0503,"18.1":0.10326,"18.2":0.05428,"18.3":0.17342,"18.4":0.0834,"18.5-18.7":2.65291,"26.0":0.16548,"26.1":0.25152,"26.2":1.48002,"26.3":6.42974,"26.4":0.24093,"26.5":0},P:{"4":0.06172,"22":0.01029,"24":0.02057,"25":0.01029,"26":0.01029,"27":0.11315,"28":0.06172,"29":2.33492,_:"20 21 23 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","5.0-5.4":0.05143,"7.2-7.4":0.09257},I:{"0":0.03083,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.42173,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.01457,_:"6 7 8 9 10 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.19029},Q:{"14.9":0.00514},O:{"0":0.11829},H:{all:0},L:{"0":47.82881}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/CX.js b/server/api/node_modules/caniuse-lite/data/regions/CX.js new file mode 100644 index 0000000..42af997 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/CX.js @@ -0,0 +1 @@ +module.exports={C:{_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 3.5 3.6"},D:{_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150"},F:{_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 15.2-15.3 15.4 15.5 15.6 16.0 16.1 16.2 16.3 16.4 16.5 16.6 17.0 17.1 17.2 17.3 17.4 17.5 17.6 18.0 18.1 18.2 18.3 18.4 18.5-18.7 26.0 26.1 26.2 26.3 26.4 26.5 TP"},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0,"11.0-11.2":0,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.5":0,"13.0-13.1":0,"13.2":0,"13.3":0,"13.4-13.7":0,"14.0-14.4":0,"14.5-14.8":0,"15.0-15.1":0,"15.2-15.3":0,"15.4":0,"15.5":0,"15.6-15.8":0,"16.0":0,"16.1":0,"16.2":0,"16.3":0,"16.4":0,"16.5":0,"16.6-16.7":0,"17.0":0,"17.1":0,"17.2":0,"17.3":0,"17.4":0,"17.5":0,"17.6-17.7":0,"18.0":0,"18.1":0,"18.2":0,"18.3":0,"18.4":0,"18.5-18.7":0,"26.0":0,"26.1":0,"26.2":0,"26.3":0,"26.4":0,"26.5":0},P:{_:"4 20 21 22 23 24 25 26 27 28 29 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{_:"0"},Q:{_:"14.9"},O:{_:"0"},H:{all:0},L:{_:"0"}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/CY.js b/server/api/node_modules/caniuse-lite/data/regions/CY.js new file mode 100644 index 0000000..da9e268 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/CY.js @@ -0,0 +1 @@ +module.exports={C:{"52":0.00483,"78":0.00483,"87":0.00966,"115":0.08214,"127":0.00483,"128":0.00483,"135":0.00483,"136":0.00483,"140":0.02899,"141":0.0145,"145":0.00966,"146":0.00483,"147":0.09181,"148":1.00022,"149":0.18362,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 129 130 131 132 133 134 137 138 139 142 143 144 150 151 152 3.5 3.6"},D:{"56":0.00483,"79":0.00966,"87":0.00483,"91":0.00483,"98":0.00966,"99":0.00483,"103":0.03866,"104":0.0145,"105":0.0145,"106":0.01933,"107":0.0145,"108":0.0145,"109":0.53635,"110":0.01933,"111":0.0145,"112":0.01933,"113":0.00483,"114":0.00483,"116":0.04832,"117":0.01933,"119":0.0145,"120":0.03382,"121":0.00966,"122":0.1063,"123":0.0145,"124":0.03382,"125":0.00483,"126":0.00483,"127":0.01933,"128":0.02416,"129":0.00483,"130":0.00483,"131":0.05315,"132":0.01933,"133":0.03866,"134":0.0145,"135":0.01933,"136":0.01933,"137":0.00966,"138":2.78806,"139":0.14013,"140":0.05798,"141":0.04349,"142":0.1063,"143":0.42522,"144":0.55568,"145":11.1281,"146":9.47072,"147":0.00966,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 83 84 85 86 88 89 90 92 93 94 95 96 97 100 101 102 115 118 148 149 150"},F:{"46":0.00483,"78":0.00483,"86":0.00483,"95":0.04832,"96":0.06765,"125":0.00483,"126":0.03866,"127":0.48803,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"109":0.00966,"113":0.00966,"120":0.00483,"133":0.00966,"137":0.00483,"138":0.00483,"139":0.00966,"140":0.0145,"142":0.0145,"143":0.01933,"144":0.05798,"145":3.39206,"146":3.02,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 114 115 116 117 118 119 121 122 123 124 125 126 127 128 129 130 131 132 134 135 136 141"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 15.5 16.0 17.0 26.5 TP","13.1":0.45904,"14.1":0.03866,"15.6":0.05315,"16.1":0.00966,"16.2":0.00483,"16.3":0.0145,"16.4":0.00483,"16.5":0.00966,"16.6":0.09664,"17.1":0.07731,"17.2":0.00966,"17.3":0.00483,"17.4":0.00966,"17.5":0.02416,"17.6":0.05798,"18.0":0.00483,"18.1":0.0145,"18.2":0.00483,"18.3":0.02416,"18.4":0.00483,"18.5-18.7":0.02899,"26.0":0.02899,"26.1":0.05798,"26.2":0.18845,"26.3":0.9809,"26.4":0.02899},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00138,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00276,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00691,"11.0-11.2":0.17419,"11.3-11.4":0.00415,"12.0-12.1":0,"12.2-12.5":0.05392,"13.0-13.1":0,"13.2":0.02074,"13.3":0.00276,"13.4-13.7":0.00691,"14.0-14.4":0.01244,"14.5-14.8":0.01244,"15.0-15.1":0.01797,"15.2-15.3":0.01106,"15.4":0.01382,"15.5":0.01521,"15.6-15.8":0.24469,"16.0":0.02488,"16.1":0.04839,"16.2":0.02765,"16.3":0.04977,"16.4":0.01106,"16.5":0.02074,"16.6-16.7":0.34008,"17.0":0.01521,"17.1":0.02488,"17.2":0.02212,"17.3":0.03041,"17.4":0.04977,"17.5":0.09401,"17.6-17.7":0.24193,"18.0":0.05253,"18.1":0.10783,"18.2":0.05668,"18.3":0.1811,"18.4":0.08709,"18.5-18.7":2.77041,"26.0":0.17281,"26.1":0.26266,"26.2":1.54557,"26.3":6.71451,"26.4":0.2516,"26.5":0},P:{"4":0.02064,"22":0.01032,"23":0.02064,"24":0.01032,"25":0.02064,"26":0.04128,"27":0.03096,"28":0.19609,"29":3.00322,_:"20 21 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.0516},I:{"0":0.04131,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.44445,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.0145,_:"6 7 8 9 10 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{"2.5":0.00517,_:"3.0-3.1"},R:{_:"0"},M:{"0":0.26357},Q:{"14.9":0.00517},O:{"0":0.19122},H:{all:0},L:{"0":41.64442}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/CZ.js b/server/api/node_modules/caniuse-lite/data/regions/CZ.js new file mode 100644 index 0000000..4723d44 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/CZ.js @@ -0,0 +1 @@ +module.exports={C:{"52":0.04057,"56":0.02318,"68":0.0058,"78":0.01159,"88":0.09853,"97":0.0058,"100":0.0058,"102":0.0058,"113":0.01159,"115":0.46368,"127":0.0058,"128":0.01159,"131":0.0058,"132":0.01159,"133":0.0058,"134":0.0058,"135":0.01159,"136":0.01739,"137":0.11592,"138":0.0058,"139":0.0058,"140":0.19706,"141":0.0058,"142":0.01739,"143":0.01739,"144":0.02318,"145":0.02318,"146":0.03478,"147":0.22025,"148":4.44553,"149":0.92156,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 57 58 59 60 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 89 90 91 92 93 94 95 96 98 99 101 103 104 105 106 107 108 109 110 111 112 114 116 117 118 119 120 121 122 123 124 125 126 129 130 150 151 152 3.5 3.6"},D:{"39":0.0058,"40":0.0058,"41":0.0058,"42":0.0058,"43":0.0058,"44":0.0058,"45":0.0058,"46":0.0058,"47":0.0058,"48":0.0058,"49":0.01159,"50":0.0058,"51":0.0058,"52":0.0058,"53":0.01159,"54":0.0058,"55":0.0058,"56":0.0058,"57":0.0058,"58":0.0058,"59":0.01159,"60":0.0058,"78":0.45788,"79":0.0058,"84":0.0058,"88":0.0058,"93":0.0058,"99":0.0058,"102":0.0058,"103":0.02898,"104":0.0058,"105":0.0058,"106":0.01159,"107":0.0058,"108":0.0058,"109":0.7187,"110":0.0058,"111":0.0058,"112":0.0058,"114":0.01159,"115":0.03478,"116":0.04057,"117":0.0058,"119":0.01159,"120":0.02318,"121":0.0058,"122":0.04057,"123":0.01159,"124":0.01739,"125":0.01159,"126":0.01159,"127":0.02898,"128":0.01739,"129":0.02318,"130":0.01739,"131":0.11592,"132":0.05216,"133":0.04057,"134":0.02318,"135":0.02898,"136":0.02318,"137":0.04637,"138":0.12172,"139":0.08694,"140":0.07535,"141":0.10433,"142":0.08694,"143":0.30139,"144":0.70711,"145":14.46682,"146":11.85862,"147":0.03478,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 80 81 83 85 86 87 89 90 91 92 94 95 96 97 98 100 101 113 118 148 149 150"},F:{"46":0.0058,"84":0.0058,"85":0.01159,"95":0.09274,"96":0.06376,"105":0.01739,"125":0.01739,"126":0.05216,"127":1.27512,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.01159,"107":0.0058,"108":0.01739,"109":0.05216,"111":0.0058,"122":0.0058,"123":0.0058,"128":0.0058,"129":0.0058,"130":0.0058,"131":0.02898,"132":0.0058,"133":0.0058,"134":0.0058,"135":0.0058,"136":0.0058,"137":0.0058,"138":0.01739,"139":0.01739,"140":0.0058,"141":0.02318,"142":0.05216,"143":0.11012,"144":0.22025,"145":3.97026,"146":4.13834,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 110 112 113 114 115 116 117 118 119 120 121 124 125 126 127"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 16.0 16.4 26.5 TP","13.1":0.0058,"14.1":0.01159,"15.5":0.0058,"15.6":0.06955,"16.1":0.0058,"16.2":0.0058,"16.3":0.0058,"16.5":0.01159,"16.6":0.12172,"17.0":0.01159,"17.1":0.05796,"17.2":0.01159,"17.3":0.01159,"17.4":0.01159,"17.5":0.02898,"17.6":0.09274,"18.0":0.01159,"18.1":0.01739,"18.2":0.0058,"18.3":0.01739,"18.4":0.07535,"18.5-18.7":0.05216,"26.0":0.02898,"26.1":0.04057,"26.2":0.22025,"26.3":1.13022,"26.4":0.06955},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00093,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00186,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00465,"11.0-11.2":0.1173,"11.3-11.4":0.00279,"12.0-12.1":0,"12.2-12.5":0.03631,"13.0-13.1":0,"13.2":0.01396,"13.3":0.00186,"13.4-13.7":0.00465,"14.0-14.4":0.00838,"14.5-14.8":0.00838,"15.0-15.1":0.0121,"15.2-15.3":0.00745,"15.4":0.00931,"15.5":0.01024,"15.6-15.8":0.16478,"16.0":0.01676,"16.1":0.03258,"16.2":0.01862,"16.3":0.03352,"16.4":0.00745,"16.5":0.01396,"16.6-16.7":0.22902,"17.0":0.01024,"17.1":0.01676,"17.2":0.0149,"17.3":0.02048,"17.4":0.03352,"17.5":0.06331,"17.6-17.7":0.16292,"18.0":0.03538,"18.1":0.07262,"18.2":0.03817,"18.3":0.12196,"18.4":0.05865,"18.5-18.7":1.8657,"26.0":0.11637,"26.1":0.17689,"26.2":1.04084,"26.3":4.5218,"26.4":0.16944,"26.5":0},P:{"4":0.01038,"21":0.01038,"22":0.01038,"23":0.01038,"24":0.01038,"25":0.01038,"26":0.02077,"27":0.02077,"28":0.05191,"29":2.36726,_:"20 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.07562,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00004},K:{"0":0.49619,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.43732},Q:{_:"14.9"},O:{"0":0.09672},H:{all:0},L:{"0":33.63219}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/DE.js b/server/api/node_modules/caniuse-lite/data/regions/DE.js new file mode 100644 index 0000000..daa2304 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/DE.js @@ -0,0 +1 @@ +module.exports={C:{"48":0.00546,"50":0.00546,"52":0.02728,"60":0.00546,"68":0.00546,"78":0.02728,"88":0.00546,"91":0.00546,"102":0.00546,"113":0.00546,"115":0.51832,"119":0.00546,"121":0.00546,"123":0.00546,"127":0.01091,"128":0.02728,"129":0.00546,"131":0.00546,"132":0.00546,"133":0.01091,"134":0.01637,"135":0.01091,"136":0.02728,"137":0.00546,"138":0.00546,"139":0.01637,"140":0.67109,"141":0.01091,"142":0.01637,"143":0.03274,"144":0.02728,"145":0.02182,"146":0.06002,"147":0.34918,"148":6.03434,"149":1.23306,"150":0.01091,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 51 53 54 55 56 57 58 59 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 89 90 92 93 94 95 96 97 98 99 100 101 103 104 105 106 107 108 109 110 111 112 114 116 117 118 120 122 124 125 126 130 151 152 3.5 3.6"},D:{"39":0.26189,"40":0.25643,"41":0.26189,"42":0.25643,"43":0.26189,"44":0.25643,"45":0.26189,"46":0.26189,"47":0.25643,"48":0.26189,"49":0.26734,"50":0.26189,"51":0.26189,"52":0.26189,"53":0.26189,"54":0.26189,"55":0.26189,"56":0.26189,"57":0.26189,"58":0.26189,"59":0.26189,"60":0.26189,"65":0.01091,"79":0.00546,"80":0.00546,"83":0.00546,"84":0.00546,"86":0.00546,"87":0.01091,"90":0.00546,"91":0.00546,"92":0.00546,"93":0.00546,"94":0.01637,"95":0.01091,"96":0.03274,"99":0.00546,"103":0.01637,"104":0.00546,"105":0.00546,"106":0.00546,"107":0.00546,"108":0.01091,"109":0.35464,"110":0.00546,"111":0.00546,"112":0.00546,"113":0.00546,"114":0.02728,"115":0.00546,"116":0.0491,"117":0.00546,"118":0.00546,"119":0.01637,"120":0.03274,"121":0.01091,"122":0.02728,"123":0.00546,"124":0.02728,"125":0.02182,"126":0.03274,"127":0.01637,"128":0.03274,"129":0.01091,"130":0.03819,"131":0.14186,"132":0.03819,"133":0.03819,"134":0.10912,"135":0.06002,"136":0.03274,"137":0.02728,"138":0.10912,"139":0.05456,"140":0.09275,"141":0.06547,"142":0.15277,"143":0.20733,"144":1.05846,"145":7.80754,"146":6.12163,"147":0.01637,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 61 62 63 64 66 67 68 69 70 71 72 73 74 75 76 77 78 81 85 88 89 97 98 100 101 102 148 149 150"},F:{"46":0.01091,"95":0.10912,"96":0.0873,"106":0.00546,"114":0.00546,"122":0.01091,"124":0.00546,"125":0.02182,"126":0.03819,"127":1.5004,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 107 108 109 110 111 112 113 115 116 117 118 119 120 121 123 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.00546,"108":0.00546,"109":0.12003,"120":0.00546,"122":0.00546,"123":0.00546,"124":0.00546,"126":0.00546,"128":0.01091,"129":0.00546,"130":0.00546,"131":0.01091,"132":0.00546,"133":0.00546,"134":0.01091,"135":0.01091,"136":0.01091,"137":0.01091,"138":0.01637,"139":0.01091,"140":0.03819,"141":0.02182,"142":0.03274,"143":0.11458,"144":0.16368,"145":3.98288,"146":4.03744,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 110 111 112 113 114 115 116 117 118 119 121 125 127"},E:{"13":0.01091,"14":0.00546,_:"4 5 6 7 8 9 10 11 12 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 15.1 26.5 TP","11.1":0.00546,"12.1":0.00546,"13.1":0.02728,"14.1":0.03274,"15.2-15.3":0.00546,"15.4":0.01091,"15.5":0.00546,"15.6":0.15277,"16.0":0.02182,"16.1":0.01637,"16.2":0.02728,"16.3":0.02182,"16.4":0.00546,"16.5":0.01091,"16.6":0.20187,"17.0":0.00546,"17.1":0.14186,"17.2":0.01637,"17.3":0.01091,"17.4":0.02182,"17.5":0.03819,"17.6":0.19096,"18.0":0.01091,"18.1":0.02728,"18.2":0.01091,"18.3":0.0491,"18.4":0.02182,"18.5-18.7":0.0873,"26.0":0.04365,"26.1":0.06002,"26.2":0.38738,"26.3":2.2315,"26.4":0.10366},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00139,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00278,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00694,"11.0-11.2":0.17497,"11.3-11.4":0.00417,"12.0-12.1":0,"12.2-12.5":0.05416,"13.0-13.1":0,"13.2":0.02083,"13.3":0.00278,"13.4-13.7":0.00694,"14.0-14.4":0.0125,"14.5-14.8":0.0125,"15.0-15.1":0.01805,"15.2-15.3":0.01111,"15.4":0.01389,"15.5":0.01528,"15.6-15.8":0.24579,"16.0":0.025,"16.1":0.0486,"16.2":0.02777,"16.3":0.04999,"16.4":0.01111,"16.5":0.02083,"16.6-16.7":0.34161,"17.0":0.01528,"17.1":0.025,"17.2":0.02222,"17.3":0.03055,"17.4":0.04999,"17.5":0.09443,"17.6-17.7":0.24301,"18.0":0.05277,"18.1":0.10831,"18.2":0.05693,"18.3":0.18191,"18.4":0.08748,"18.5-18.7":2.78285,"26.0":0.17358,"26.1":0.26384,"26.2":1.55251,"26.3":6.74466,"26.4":0.25273,"26.5":0},P:{"4":0.01062,"21":0.03187,"22":0.01062,"23":0.01062,"24":0.02124,"25":0.02124,"26":0.08497,"27":0.04249,"28":0.08497,"29":3.86631,_:"20 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 12.0 13.0 14.0 15.0 16.0 18.0 19.0","11.1-11.2":0.02124,"17.0":0.01062},I:{"0":0.01816,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.47712,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.01637,_:"6 7 8 9 10 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":1.20416},Q:{"14.9":0.00454},O:{"0":0.1136},H:{all:0},L:{"0":28.43341}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/DJ.js b/server/api/node_modules/caniuse-lite/data/regions/DJ.js new file mode 100644 index 0000000..dfeb35f --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/DJ.js @@ -0,0 +1 @@ +module.exports={C:{"103":0.01075,"115":0.00358,"121":0.00358,"140":0.00358,"146":0.01075,"147":0.01075,"148":0.98202,"149":0.11827,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 141 142 143 144 145 150 151 152 3.5 3.6"},D:{"70":0.01434,"79":0.00358,"89":0.34406,"98":0.05018,"99":0.01075,"103":0.00717,"106":0.01792,"109":0.10035,"112":0.01075,"113":0.00358,"114":0.00717,"117":0.01075,"119":0.00717,"121":0.01075,"122":0.00717,"123":0.00717,"127":0.0215,"128":0.04659,"130":0.02867,"131":0.00717,"132":0.00358,"133":0.01434,"134":0.0215,"135":0.01434,"136":0.00717,"137":0.01792,"138":0.11827,"139":0.08602,"140":0.09677,"141":0.01792,"142":0.01075,"143":0.2473,"144":0.44083,"145":6.71283,"146":7.00672,"147":0.01434,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 71 72 73 74 75 76 77 78 80 81 83 84 85 86 87 88 90 91 92 93 94 95 96 97 100 101 102 104 105 107 108 110 111 115 116 118 120 124 125 126 129 148 149 150"},F:{"87":0.01075,"95":0.01434,"96":0.00717,"116":0.00358,"126":0.00358,"127":0.1111,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 117 118 119 120 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"17":0.00358,"86":0.00717,"89":0.00717,"90":0.00358,"92":0.02509,"100":0.00358,"109":0.01792,"117":0.02867,"122":0.04301,"126":0.00717,"134":0.00358,"135":0.0215,"136":0.11469,"137":0.00358,"138":0.00358,"141":0.01434,"142":0.08602,"143":0.02867,"144":0.17203,"145":1.3655,"146":1.16122,_:"12 13 14 15 16 18 79 80 81 83 84 85 87 88 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 118 119 120 121 123 124 125 127 128 129 130 131 132 133 139 140"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.4 16.5 17.0 17.1 17.2 17.3 17.4 17.5 17.6 18.0 18.1 18.2 26.0 26.1 26.2 26.4 26.5 TP","5.1":0.00358,"15.6":0.03226,"16.3":0.00358,"16.6":0.01434,"18.3":0.00717,"18.4":0.00358,"18.5-18.7":0.00358,"26.3":0.25446},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00043,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00086,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00216,"11.0-11.2":0.05433,"11.3-11.4":0.00129,"12.0-12.1":0,"12.2-12.5":0.01682,"13.0-13.1":0,"13.2":0.00647,"13.3":0.00086,"13.4-13.7":0.00216,"14.0-14.4":0.00388,"14.5-14.8":0.00388,"15.0-15.1":0.00561,"15.2-15.3":0.00345,"15.4":0.00431,"15.5":0.00474,"15.6-15.8":0.07631,"16.0":0.00776,"16.1":0.01509,"16.2":0.00862,"16.3":0.01552,"16.4":0.00345,"16.5":0.00647,"16.6-16.7":0.10606,"17.0":0.00474,"17.1":0.00776,"17.2":0.0069,"17.3":0.00949,"17.4":0.01552,"17.5":0.02932,"17.6-17.7":0.07545,"18.0":0.01638,"18.1":0.03363,"18.2":0.01768,"18.3":0.05648,"18.4":0.02716,"18.5-18.7":0.86404,"26.0":0.05389,"26.1":0.08192,"26.2":0.48203,"26.3":2.09412,"26.4":0.07847,"26.5":0},P:{"4":0.01024,"23":0.72702,"24":0.0512,"25":0.01024,"26":0.0512,"27":0.1024,"28":0.27647,"29":2.70327,_:"20 21 22 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 17.0 19.0","7.2-7.4":0.08192,"16.0":0.01024,"18.0":0.02048},I:{"0":0.16667,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00008},K:{"0":1.61042,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.15398},Q:{_:"14.9"},O:{"0":0.71218},H:{all:0},L:{"0":67.94746}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/DK.js b/server/api/node_modules/caniuse-lite/data/regions/DK.js new file mode 100644 index 0000000..3470a65 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/DK.js @@ -0,0 +1 @@ +module.exports={C:{"52":0.00587,"59":0.00587,"78":0.00587,"109":0.01174,"115":0.12323,"128":0.00587,"140":0.21712,"142":0.00587,"146":0.01174,"147":0.09976,"148":1.77214,"149":0.34621,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 129 130 131 132 133 134 135 136 137 138 139 141 143 144 145 150 151 152 3.5 3.6"},D:{"49":0.01174,"65":0.00587,"66":0.01174,"87":0.00587,"103":0.02347,"107":0.00587,"109":0.22885,"112":0.00587,"114":0.00587,"116":0.1291,"119":0.00587,"120":0.00587,"121":0.00587,"122":0.04694,"123":0.00587,"124":0.01174,"125":0.00587,"126":0.05281,"127":0.00587,"128":0.07042,"129":0.0176,"130":0.00587,"131":0.03521,"132":0.03521,"133":0.0176,"134":0.02347,"135":0.02934,"136":0.02934,"137":0.05868,"138":0.26993,"139":0.1643,"140":0.07042,"141":0.11736,"142":0.31687,"143":0.5692,"144":2.01272,"145":17.53945,"146":12.72182,"147":0.0176,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 104 105 106 108 110 111 113 115 117 118 148 149 150"},F:{"95":0.02934,"96":0.03521,"102":0.01174,"125":0.00587,"126":0.02934,"127":0.83326,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.00587,"109":0.03521,"126":0.00587,"130":0.00587,"131":0.0176,"132":0.00587,"133":0.00587,"134":0.01174,"135":0.00587,"136":0.01174,"137":0.00587,"138":0.01174,"139":0.01174,"140":0.01174,"141":0.01174,"142":0.02347,"143":0.05281,"144":0.21125,"145":4.41274,"146":4.30711,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 127 128 129"},E:{"12":0.00587,"14":0.00587,_:"4 5 6 7 8 9 10 11 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 12.1 15.1 26.5 TP","11.1":0.00587,"13.1":0.02347,"14.1":0.04694,"15.2-15.3":0.00587,"15.4":0.01174,"15.5":0.01174,"15.6":0.14083,"16.0":0.01174,"16.1":0.04694,"16.2":0.00587,"16.3":0.03521,"16.4":0.0176,"16.5":0.04694,"16.6":0.31687,"17.0":0.00587,"17.1":0.17604,"17.2":0.03521,"17.3":0.02347,"17.4":0.06455,"17.5":0.12323,"17.6":0.26993,"18.0":0.02934,"18.1":0.04108,"18.2":0.00587,"18.3":0.09976,"18.4":0.05868,"18.5-18.7":0.13496,"26.0":0.03521,"26.1":0.07042,"26.2":0.53986,"26.3":2.97508,"26.4":0.11149},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0022,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00441,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.01102,"11.0-11.2":0.27776,"11.3-11.4":0.00661,"12.0-12.1":0,"12.2-12.5":0.08597,"13.0-13.1":0,"13.2":0.03307,"13.3":0.00441,"13.4-13.7":0.01102,"14.0-14.4":0.01984,"14.5-14.8":0.01984,"15.0-15.1":0.02866,"15.2-15.3":0.01764,"15.4":0.02204,"15.5":0.02425,"15.6-15.8":0.39018,"16.0":0.03968,"16.1":0.07715,"16.2":0.04409,"16.3":0.07936,"16.4":0.01764,"16.5":0.03307,"16.6-16.7":0.54229,"17.0":0.02425,"17.1":0.03968,"17.2":0.03527,"17.3":0.0485,"17.4":0.07936,"17.5":0.1499,"17.6-17.7":0.38577,"18.0":0.08377,"18.1":0.17194,"18.2":0.09038,"18.3":0.28878,"18.4":0.13888,"18.5-18.7":4.41766,"26.0":0.27555,"26.1":0.41884,"26.2":2.46454,"26.3":10.70688,"26.4":0.4012,"26.5":0},P:{"20":0.01073,"26":0.02146,"27":0.01073,"28":0.02146,"29":2.32806,_:"4 21 22 23 24 25 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.03303,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.15288,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.46692},Q:{"14.9":0.00413},O:{"0":0.02066},H:{all:0},L:{"0":18.48973}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/DM.js b/server/api/node_modules/caniuse-lite/data/regions/DM.js new file mode 100644 index 0000000..6e23a1e --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/DM.js @@ -0,0 +1 @@ +module.exports={C:{"115":0.00505,"140":0.0101,"147":0.01515,"148":0.47479,"149":0.08082,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 141 142 143 144 145 146 150 151 152 3.5 3.6"},D:{"49":0.00505,"75":0.0202,"76":0.20709,"77":0.05556,"79":0.10102,"80":0.53036,"87":0.0101,"91":0.00505,"93":0.01515,"101":0.51015,"103":0.09092,"109":0.19699,"110":0.0101,"112":0.02526,"116":0.02526,"117":0.00505,"119":0.06566,"120":0.00505,"121":0.15153,"122":0.01515,"124":0.01515,"125":0.00505,"126":0.07577,"128":0.00505,"129":0.00505,"130":0.0202,"131":0.04041,"133":0.00505,"134":0.00505,"135":0.03031,"136":0.00505,"137":0.04041,"138":0.18184,"139":1.0001,"142":0.0202,"143":0.52025,"144":1.26275,"145":10.77378,"146":6.95018,"147":0.02526,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 78 81 83 84 85 86 88 89 90 92 94 95 96 97 98 99 100 102 104 105 106 107 108 111 113 114 115 118 123 127 132 140 141 148 149 150"},F:{"95":0.00505,"126":0.00505,"127":0.63138,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"89":0.01515,"131":0.00505,"135":0.00505,"141":0.00505,"142":0.01515,"143":0.04041,"144":0.08587,"145":3.90947,"146":2.80331,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 132 133 134 136 137 138 139 140"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 15.1 15.2-15.3 15.4 15.5 16.0 16.2 16.3 16.4 17.2 17.3 18.0 18.4 18.5-18.7 26.5 TP","14.1":0.01515,"15.6":0.06061,"16.1":0.10102,"16.5":0.00505,"16.6":0.04041,"17.0":0.08082,"17.1":0.06566,"17.4":0.0101,"17.5":0.02526,"17.6":0.03536,"18.1":0.00505,"18.2":0.01515,"18.3":0.06061,"26.0":0.09092,"26.1":0.08587,"26.2":0.07071,"26.3":0.88898,"26.4":0.13133},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00105,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00209,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00524,"11.0-11.2":0.13195,"11.3-11.4":0.00314,"12.0-12.1":0,"12.2-12.5":0.04084,"13.0-13.1":0,"13.2":0.01571,"13.3":0.00209,"13.4-13.7":0.00524,"14.0-14.4":0.00942,"14.5-14.8":0.00942,"15.0-15.1":0.01361,"15.2-15.3":0.00838,"15.4":0.01047,"15.5":0.01152,"15.6-15.8":0.18536,"16.0":0.01885,"16.1":0.03665,"16.2":0.02094,"16.3":0.0377,"16.4":0.00838,"16.5":0.01571,"16.6-16.7":0.25761,"17.0":0.01152,"17.1":0.01885,"17.2":0.01676,"17.3":0.02304,"17.4":0.0377,"17.5":0.07121,"17.6-17.7":0.18326,"18.0":0.03979,"18.1":0.08168,"18.2":0.04294,"18.3":0.13718,"18.4":0.06597,"18.5-18.7":2.09861,"26.0":0.1309,"26.1":0.19897,"26.2":1.17078,"26.3":5.08629,"26.4":0.19059,"26.5":0},P:{"24":0.0107,"25":0.02139,"26":0.03209,"27":0.05348,"28":0.10697,"29":2.0966,_:"4 20 21 22 23 5.0-5.4 8.2 9.2 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","6.2-6.4":0.02139,"7.2-7.4":0.02139,"10.1":0.02139},I:{"0":0.01978,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.08413,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.17322},Q:{_:"14.9"},O:{"0":0.01485},H:{all:0},L:{"0":52.14779}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/DO.js b/server/api/node_modules/caniuse-lite/data/regions/DO.js new file mode 100644 index 0000000..2f538bd --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/DO.js @@ -0,0 +1 @@ +module.exports={C:{"4":0.01561,"5":0.03122,"52":0.01041,"78":0.0052,"115":0.03643,"134":0.0052,"140":0.02082,"145":0.0052,"146":0.01041,"147":0.06765,"148":0.87427,"149":0.15612,_:"2 3 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 135 136 137 138 139 141 142 143 144 150 151 152 3.5 3.6"},D:{"47":0.0052,"49":0.0052,"53":0.0052,"55":0.0052,"65":0.0052,"69":0.0052,"72":0.0052,"75":0.0052,"79":0.01041,"87":0.0052,"88":0.0052,"89":0.0052,"91":0.01041,"93":0.04684,"97":0.02082,"103":0.33826,"104":0.28622,"105":0.28622,"106":0.28622,"107":0.28622,"108":0.29142,"109":0.71295,"110":0.29142,"111":0.30183,"112":0.9055,"114":0.0052,"116":0.60366,"117":0.28622,"118":0.0052,"119":0.05724,"120":0.30183,"121":0.0052,"122":0.09888,"123":0.01041,"124":0.31224,"125":0.01561,"126":0.01561,"127":0.01561,"128":0.02602,"129":0.01041,"130":0.02602,"131":0.69213,"132":0.03122,"133":0.59326,"134":0.02602,"135":0.02082,"136":0.60887,"137":0.03122,"138":0.7754,"139":0.6453,"140":0.46316,"141":0.43714,"142":0.47877,"143":0.59326,"144":1.10845,"145":10.82432,"146":9.16945,"147":0.43193,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 50 51 52 54 56 57 58 59 60 61 62 63 64 66 67 68 70 71 73 74 76 77 78 80 81 83 84 85 86 90 92 94 95 96 98 99 100 101 102 113 115 148 149 150"},F:{"95":0.01561,"96":0.01561,"125":0.01041,"126":0.01041,"127":0.82223,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"17":0.0052,"18":0.01561,"92":0.02602,"100":0.0052,"109":0.02602,"114":0.0052,"122":0.0052,"131":0.01561,"132":0.01041,"133":0.01041,"134":0.0052,"135":0.01041,"136":0.01561,"137":0.0052,"138":0.01041,"139":0.0052,"140":0.01041,"141":0.01561,"142":0.04163,"143":0.1301,"144":0.09888,"145":2.57598,"146":2.77894,_:"12 13 14 15 16 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 123 124 125 126 127 128 129 130"},E:{"13":0.01041,"14":0.0052,_:"4 5 6 7 8 9 10 11 12 15 3.1 3.2 6.1 7.1 9.1 10.1 12.1 15.1 15.2-15.3 15.5 16.0 26.5 TP","5.1":0.01561,"11.1":0.0052,"13.1":0.0052,"14.1":0.01561,"15.4":0.0052,"15.6":0.04684,"16.1":0.0052,"16.2":0.0052,"16.3":0.02602,"16.4":0.0052,"16.5":0.0052,"16.6":0.08847,"17.0":0.0052,"17.1":0.05204,"17.2":0.01041,"17.3":0.0052,"17.4":0.02082,"17.5":0.01561,"17.6":0.11449,"18.0":0.02602,"18.1":0.03643,"18.2":0.01041,"18.3":0.01561,"18.4":0.01041,"18.5-18.7":0.04163,"26.0":0.05724,"26.1":0.05204,"26.2":0.20296,"26.3":0.97835,"26.4":0.05204},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00209,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00419,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.01047,"11.0-11.2":0.26384,"11.3-11.4":0.00628,"12.0-12.1":0,"12.2-12.5":0.08167,"13.0-13.1":0,"13.2":0.03141,"13.3":0.00419,"13.4-13.7":0.01047,"14.0-14.4":0.01885,"14.5-14.8":0.01885,"15.0-15.1":0.02722,"15.2-15.3":0.01675,"15.4":0.02094,"15.5":0.02303,"15.6-15.8":0.37063,"16.0":0.03769,"16.1":0.07329,"16.2":0.04188,"16.3":0.07538,"16.4":0.01675,"16.5":0.03141,"16.6-16.7":0.51512,"17.0":0.02303,"17.1":0.03769,"17.2":0.0335,"17.3":0.04607,"17.4":0.07538,"17.5":0.14239,"17.6-17.7":0.36645,"18.0":0.07957,"18.1":0.16333,"18.2":0.08585,"18.3":0.27431,"18.4":0.13192,"18.5-18.7":4.19633,"26.0":0.26175,"26.1":0.39786,"26.2":2.34107,"26.3":10.17044,"26.4":0.3811,"26.5":0},P:{"21":0.0216,"25":0.0216,"26":0.0432,"27":0.0648,"28":0.0432,"29":1.02592,_:"4 20 22 23 24 5.0-5.4 6.2-6.4 8.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.0108,"9.2":0.0108},I:{"0":0.03833,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.1918,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.02082,"11":0.02082,_:"6 7 9 10 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{"2.5":0.00959,_:"3.0-3.1"},R:{_:"0"},M:{"0":0.15344},Q:{_:"14.9"},O:{"0":0.03836},H:{all:0},L:{"0":31.28761}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/DZ.js b/server/api/node_modules/caniuse-lite/data/regions/DZ.js new file mode 100644 index 0000000..7fc7c22 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/DZ.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.01103,"47":0.00368,"52":0.02206,"56":0.00368,"68":0.00368,"72":0.00368,"94":0.00368,"115":0.5661,"123":0.00368,"127":0.00368,"128":0.00368,"132":0.00368,"136":0.00368,"137":0.00368,"138":0.03308,"140":0.04779,"142":0.00368,"143":0.00735,"144":0.00368,"145":0.00735,"146":0.0147,"147":0.06984,"148":0.93738,"149":0.20586,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 49 50 51 53 54 55 57 58 59 60 61 62 63 64 65 66 67 69 70 71 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 124 125 126 129 130 131 133 134 135 139 141 150 151 152 3.5 3.6"},D:{"49":0.01838,"50":0.00735,"51":0.00368,"52":0.00368,"55":0.00368,"56":0.02941,"57":0.00368,"58":0.00735,"59":0.00735,"60":0.00735,"61":0.00368,"62":0.00735,"63":0.00368,"64":0.00735,"65":0.00735,"66":0.01103,"67":0.00368,"68":0.01103,"69":0.00735,"70":0.0147,"71":0.0147,"72":0.0147,"73":0.00735,"74":0.0147,"75":0.01103,"76":0.00368,"77":0.00368,"78":0.00368,"79":0.02206,"80":0.00735,"81":0.01838,"83":0.06617,"84":0.00368,"85":0.00735,"86":0.01838,"87":0.02941,"88":0.00368,"89":0.00735,"90":0.00735,"91":0.0147,"92":0.00368,"93":0.00368,"94":0.00368,"95":0.03676,"96":0.00735,"97":0.01103,"98":0.01838,"99":0.00368,"100":0.00735,"101":0.00735,"102":0.00735,"103":0.19115,"104":0.18012,"105":0.17277,"106":0.20586,"107":0.18012,"108":0.18748,"109":3.41868,"110":0.20586,"111":0.17645,"112":0.41906,"113":0.01103,"114":0.00735,"115":0.00368,"116":0.37863,"117":0.20218,"118":0.00735,"119":0.12131,"120":0.18012,"121":0.00735,"122":0.02573,"123":0.01103,"124":0.19115,"125":0.01103,"126":0.01838,"127":0.00735,"128":0.0147,"129":0.0147,"130":0.01838,"131":0.40436,"132":0.02206,"133":0.3676,"134":0.05514,"135":0.01838,"136":0.02206,"137":0.04779,"138":0.14336,"139":0.13601,"140":0.02941,"141":0.02941,"142":0.08087,"143":0.15072,"144":0.30878,"145":6.172,"146":5.75662,"147":0.02206,"148":0.00368,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 53 54 149 150"},F:{"25":0.00368,"36":0.00368,"40":0.00368,"46":0.00368,"64":0.01838,"79":0.01103,"85":0.00368,"86":0.00368,"90":0.00368,"93":0.00368,"94":0.00368,"95":0.12498,"96":0.03308,"114":0.00368,"122":0.00368,"125":0.00368,"126":0.03676,"127":0.52567,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 26 27 28 29 30 31 32 33 34 35 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 87 88 89 91 92 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 120 121 123 124 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.00368,"16":0.00368,"17":0.00368,"18":0.01103,"89":0.00368,"92":0.02941,"100":0.00368,"102":0.00368,"109":0.04779,"114":0.00368,"122":0.00368,"131":0.00368,"133":0.00368,"134":0.00368,"135":0.00368,"136":0.00368,"137":0.00368,"138":0.00368,"139":0.00368,"140":0.00368,"141":0.00368,"142":0.01103,"143":0.08087,"144":0.03676,"145":0.80504,"146":0.8418,_:"12 13 15 79 80 81 83 84 85 86 87 88 90 91 93 94 95 96 97 98 99 101 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 123 124 125 126 127 128 129 130 132"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 15.1 16.0 16.2 16.4 17.0 26.5 TP","5.1":0.00368,"13.1":0.00735,"14.1":0.00368,"15.2-15.3":0.00368,"15.4":0.00735,"15.5":0.00368,"15.6":0.03308,"16.1":0.00368,"16.3":0.00368,"16.5":0.00368,"16.6":0.04779,"17.1":0.02573,"17.2":0.00368,"17.3":0.00368,"17.4":0.00735,"17.5":0.00368,"17.6":0.04044,"18.0":0.00368,"18.1":0.0147,"18.2":0.00368,"18.3":0.0147,"18.4":0.00368,"18.5-18.7":0.0147,"26.0":0.02206,"26.1":0.01838,"26.2":0.08087,"26.3":0.23894,"26.4":0.0147},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00066,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00131,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00328,"11.0-11.2":0.08255,"11.3-11.4":0.00197,"12.0-12.1":0,"12.2-12.5":0.02555,"13.0-13.1":0,"13.2":0.00983,"13.3":0.00131,"13.4-13.7":0.00328,"14.0-14.4":0.0059,"14.5-14.8":0.0059,"15.0-15.1":0.00852,"15.2-15.3":0.00524,"15.4":0.00655,"15.5":0.00721,"15.6-15.8":0.11596,"16.0":0.01179,"16.1":0.02293,"16.2":0.0131,"16.3":0.02359,"16.4":0.00524,"16.5":0.00983,"16.6-16.7":0.16117,"17.0":0.00721,"17.1":0.01179,"17.2":0.01048,"17.3":0.01441,"17.4":0.02359,"17.5":0.04455,"17.6-17.7":0.11465,"18.0":0.0249,"18.1":0.0511,"18.2":0.02686,"18.3":0.08583,"18.4":0.04128,"18.5-18.7":1.31295,"26.0":0.0819,"26.1":0.12448,"26.2":0.73248,"26.3":3.18214,"26.4":0.11924,"26.5":0},P:{"20":0.04186,"21":0.02093,"22":0.02093,"23":0.01047,"24":0.02093,"25":0.02093,"26":0.06279,"27":0.06279,"28":0.10466,"29":1.05704,_:"4 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 18.0 19.0","7.2-7.4":0.05233,"17.0":0.01047},I:{"0":0.04423,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.45533,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.01764,"11":0.04852,_:"6 7 9 10 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.13913},Q:{_:"14.9"},O:{"0":0.29723},H:{all:0},L:{"0":62.4511}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/EC.js b/server/api/node_modules/caniuse-lite/data/regions/EC.js new file mode 100644 index 0000000..fb3f905 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/EC.js @@ -0,0 +1 @@ +module.exports={C:{"4":0.02498,"5":0.06871,"69":0.00625,"89":0.00625,"115":0.29356,"123":0.00625,"125":0.00625,"127":0.00625,"131":0.00625,"133":0.00625,"135":0.01249,"136":0.01249,"137":0.00625,"139":0.01249,"140":0.02498,"141":0.01249,"142":0.00625,"143":0.01874,"144":0.01249,"145":0.01249,"146":0.04997,"147":0.08744,"148":1.67393,"149":0.28107,_:"2 3 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 124 126 128 129 130 132 134 138 150 151 152 3.5 3.6"},D:{"32":0.00625,"55":0.00625,"65":0.00625,"68":0.00625,"69":0.00625,"73":0.00625,"75":0.01249,"79":0.01874,"81":0.11867,"85":0.00625,"87":0.01874,"91":0.01874,"97":0.02498,"103":0.61211,"104":0.57463,"105":0.57463,"106":0.58712,"107":0.57463,"108":0.57463,"109":1.06807,"110":0.58088,"111":0.57463,"112":1.49904,"113":0.00625,"114":0.00625,"115":0.00625,"116":1.2492,"117":0.57463,"119":0.03123,"120":0.58088,"121":0.01249,"122":0.10618,"123":0.03123,"124":0.60586,"125":0.02498,"126":0.03123,"127":0.01249,"128":0.08744,"129":0.03123,"130":0.04997,"131":1.36163,"132":0.03748,"133":1.21797,"134":0.03748,"135":0.04997,"136":0.03748,"137":0.04372,"138":0.13741,"139":0.12492,"140":0.04372,"141":0.04997,"142":0.10618,"143":0.17489,"144":0.58712,"145":15.33393,"146":10.94299,"147":0.01874,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 56 57 58 59 60 61 62 63 64 66 67 70 71 72 74 76 77 78 80 83 84 86 88 89 90 92 93 94 95 96 98 99 100 101 102 118 148 149 150"},F:{"95":0.03748,"96":0.01874,"109":0.00625,"116":0.00625,"122":0.00625,"126":0.01249,"127":1.00561,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 117 118 119 120 121 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00625,"92":0.01249,"109":0.04997,"113":0.00625,"120":0.01249,"122":0.00625,"124":0.00625,"130":0.00625,"131":0.01249,"133":0.00625,"134":0.00625,"135":0.00625,"136":0.00625,"137":0.00625,"138":0.00625,"139":0.00625,"140":0.02498,"141":0.01249,"142":0.01874,"143":0.06871,"144":0.11867,"145":2.94811,"146":2.25481,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 114 115 116 117 118 119 121 123 125 126 127 128 129 132"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 16.1 16.2 16.3 16.4 16.5 17.0 26.5 TP","5.1":0.01249,"13.1":0.00625,"14.1":0.01249,"15.5":0.00625,"15.6":0.03748,"16.0":0.00625,"16.6":0.05621,"17.1":0.01874,"17.2":0.00625,"17.3":0.00625,"17.4":0.01249,"17.5":0.00625,"17.6":0.09369,"18.0":0.01249,"18.1":0.00625,"18.2":0.00625,"18.3":0.06246,"18.4":0.01249,"18.5-18.7":0.03748,"26.0":0.03123,"26.1":0.03123,"26.2":0.20612,"26.3":0.6246,"26.4":0.01874},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00079,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00159,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00397,"11.0-11.2":0.10004,"11.3-11.4":0.00238,"12.0-12.1":0,"12.2-12.5":0.03096,"13.0-13.1":0,"13.2":0.01191,"13.3":0.00159,"13.4-13.7":0.00397,"14.0-14.4":0.00715,"14.5-14.8":0.00715,"15.0-15.1":0.01032,"15.2-15.3":0.00635,"15.4":0.00794,"15.5":0.00873,"15.6-15.8":0.14053,"16.0":0.01429,"16.1":0.02779,"16.2":0.01588,"16.3":0.02858,"16.4":0.00635,"16.5":0.01191,"16.6-16.7":0.19532,"17.0":0.00873,"17.1":0.01429,"17.2":0.0127,"17.3":0.01747,"17.4":0.02858,"17.5":0.05399,"17.6-17.7":0.13894,"18.0":0.03017,"18.1":0.06193,"18.2":0.03255,"18.3":0.10401,"18.4":0.05002,"18.5-18.7":1.59112,"26.0":0.09925,"26.1":0.15085,"26.2":0.88766,"26.3":3.85632,"26.4":0.1445,"26.5":0},P:{"4":0.01059,"23":0.01059,"25":0.01059,"26":0.04237,"27":0.01059,"28":0.04237,"29":0.9004,_:"20 21 22 24 5.0-5.4 6.2-6.4 8.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.03178,"9.2":0.01059},I:{"0":0.0225,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.10136,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.10618,_:"6 7 8 9 10 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.21022},Q:{_:"14.9"},O:{"0":0.04129},H:{all:0},L:{"0":35.43306}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/EE.js b/server/api/node_modules/caniuse-lite/data/regions/EE.js new file mode 100644 index 0000000..6c238b5 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/EE.js @@ -0,0 +1 @@ +module.exports={C:{"52":0.00666,"78":0.00666,"92":0.00666,"109":0.00666,"115":3.45758,"121":0.00666,"123":0.00666,"127":0.00666,"128":0.01332,"129":0.00666,"134":0.00666,"136":0.02665,"137":0.00666,"139":0.01332,"140":0.14656,"141":0.00666,"142":0.00666,"143":0.03331,"144":0.00666,"145":0.01332,"146":0.01999,"147":0.22651,"148":3.61747,"149":0.5263,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 116 117 118 119 120 122 124 125 126 130 131 132 133 135 138 150 151 152 3.5 3.6"},D:{"49":0.00666,"58":0.00666,"81":0.00666,"87":0.01332,"103":0.01999,"104":0.01332,"105":0.01332,"106":0.0533,"107":0.01332,"108":0.01332,"109":1.61887,"110":0.01332,"111":0.01332,"112":0.01999,"113":0.00666,"114":0.00666,"116":0.07328,"117":0.03331,"118":0.00666,"119":0.01332,"120":0.04663,"121":0.00666,"122":0.01999,"123":0.00666,"124":0.03331,"125":0.00666,"126":0.05996,"127":0.00666,"128":0.03331,"129":0.00666,"130":0.05996,"131":0.14656,"132":0.02665,"133":0.11325,"134":0.03331,"135":0.03997,"136":0.02665,"137":0.09993,"138":0.12658,"139":0.22651,"140":0.15989,"141":0.08661,"142":0.31978,"143":0.46634,"144":0.97931,"145":16.26194,"146":12.96425,"147":0.01332,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 83 84 85 86 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 115 148 149 150"},F:{"83":0.01332,"95":0.11992,"96":0.07994,"100":0.00666,"114":0.00666,"119":0.01332,"125":0.00666,"126":0.03997,"127":4.51017,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 84 85 86 87 88 89 90 91 92 93 94 97 98 99 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 120 121 122 123 124 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"109":0.04663,"122":0.00666,"131":0.00666,"132":0.00666,"135":0.00666,"137":0.00666,"139":0.00666,"141":0.00666,"142":0.00666,"143":0.03331,"144":0.09327,"145":2.43829,"146":2.67146,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 123 124 125 126 127 128 129 130 133 134 136 138 140"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 16.0 16.2 26.5 TP","13.1":0.00666,"14.1":0.01332,"15.4":0.00666,"15.5":0.00666,"15.6":0.06662,"16.1":0.00666,"16.3":0.00666,"16.4":0.00666,"16.5":0.00666,"16.6":0.12658,"17.0":0.00666,"17.1":0.07994,"17.2":0.00666,"17.3":0.00666,"17.4":0.01999,"17.5":0.0533,"17.6":0.12658,"18.0":0.01332,"18.1":0.01332,"18.2":0.00666,"18.3":0.01999,"18.4":0.01999,"18.5-18.7":0.04663,"26.0":0.03331,"26.1":0.03997,"26.2":0.29313,"26.3":1.23913,"26.4":0.09993},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00112,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00224,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.0056,"11.0-11.2":0.14115,"11.3-11.4":0.00336,"12.0-12.1":0,"12.2-12.5":0.04369,"13.0-13.1":0,"13.2":0.0168,"13.3":0.00224,"13.4-13.7":0.0056,"14.0-14.4":0.01008,"14.5-14.8":0.01008,"15.0-15.1":0.01456,"15.2-15.3":0.00896,"15.4":0.0112,"15.5":0.01232,"15.6-15.8":0.19828,"16.0":0.02016,"16.1":0.03921,"16.2":0.0224,"16.3":0.04033,"16.4":0.00896,"16.5":0.0168,"16.6-16.7":0.27558,"17.0":0.01232,"17.1":0.02016,"17.2":0.01792,"17.3":0.02465,"17.4":0.04033,"17.5":0.07618,"17.6-17.7":0.19604,"18.0":0.04257,"18.1":0.08738,"18.2":0.04593,"18.3":0.14675,"18.4":0.07057,"18.5-18.7":2.24495,"26.0":0.14003,"26.1":0.21284,"26.2":1.25242,"26.3":5.44097,"26.4":0.20388,"26.5":0},P:{"4":0.01035,"21":0.01035,"23":0.01035,"24":0.01035,"26":0.0207,"27":0.0207,"28":0.03104,"29":1.95573,_:"20 22 25 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.03335,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.31043,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.4039},Q:{"14.9":0.00668},O:{"0":0.0267},H:{all:0},L:{"0":21.02213}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/EG.js b/server/api/node_modules/caniuse-lite/data/regions/EG.js new file mode 100644 index 0000000..1a055a4 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/EG.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.0074,"47":0.0037,"48":0.0037,"52":0.0148,"60":0.0037,"72":0.0037,"115":0.39209,"127":0.0037,"128":0.0037,"133":0.0037,"136":0.0074,"138":0.02219,"140":0.05179,"143":0.0074,"144":0.0037,"145":0.0037,"146":0.0074,"147":0.07028,"148":0.81748,"149":0.19605,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 49 50 51 53 54 55 56 57 58 59 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 129 130 131 132 134 135 137 139 141 142 150 151 152 3.5 3.6"},D:{"49":0.0111,"56":0.0037,"58":0.0037,"60":0.0037,"62":0.0037,"63":0.0037,"64":0.0037,"65":0.0037,"66":0.0037,"68":0.0037,"69":0.0074,"70":0.0037,"71":0.0111,"72":0.0074,"73":0.0111,"74":0.0074,"75":0.0037,"76":0.0074,"77":0.0037,"78":0.0037,"79":0.0148,"80":0.0074,"81":0.0111,"83":0.0037,"84":0.0037,"85":0.0074,"86":0.0148,"87":0.0185,"88":0.0037,"90":0.0037,"91":0.0074,"93":0.0037,"95":0.0037,"97":0.0037,"98":0.0037,"99":0.0037,"100":0.0037,"101":0.0037,"102":0.0037,"103":0.11467,"104":0.09987,"105":0.09987,"106":0.09987,"107":0.09987,"108":0.10357,"109":2.03815,"110":0.09617,"111":0.09987,"112":0.23674,"114":0.0185,"116":0.21454,"117":0.09617,"118":0.0037,"119":0.0074,"120":0.10727,"121":0.0185,"122":0.05179,"123":0.02589,"124":0.10727,"125":0.0111,"126":0.0111,"127":0.0074,"128":0.03699,"129":0.0074,"130":0.0185,"131":0.24044,"132":0.0148,"133":0.21824,"134":0.03329,"135":0.04439,"136":0.02959,"137":0.03699,"138":0.17015,"139":0.14796,"140":0.05179,"141":0.04439,"142":0.09987,"143":0.34031,"144":0.3662,"145":8.07862,"146":7.50527,"147":0.02219,"148":0.0074,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 57 59 61 67 89 92 94 96 113 115 149 150"},F:{"41":0.0037,"49":0.0037,"64":0.0037,"73":0.0037,"79":0.0074,"95":0.02589,"96":0.03699,"126":0.0111,"127":0.18865,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 60 62 63 65 66 67 68 69 70 71 72 74 75 76 77 78 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.0037,"18":0.0111,"90":0.0037,"92":0.02219,"100":0.0037,"109":0.02959,"114":0.0148,"122":0.02589,"127":0.0037,"131":0.0037,"132":0.0037,"133":0.0037,"134":0.0037,"135":0.0037,"136":0.0037,"137":0.0037,"138":0.0148,"139":0.0037,"140":0.0111,"141":0.0074,"142":0.02219,"143":0.05179,"144":0.07028,"145":1.39452,"146":1.45371,_:"12 13 15 16 17 79 80 81 83 84 85 86 87 88 89 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 123 124 125 126 128 129 130"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 14.1 15.1 15.2-15.3 15.4 16.1 16.2 16.3 16.4 17.2 17.3 26.5 TP","5.1":0.12947,"12.1":0.0037,"13.1":0.0037,"15.5":0.0037,"15.6":0.0148,"16.0":0.0111,"16.5":0.0037,"16.6":0.02219,"17.0":0.0037,"17.1":0.0074,"17.4":0.0037,"17.5":0.0037,"17.6":0.0148,"18.0":0.0037,"18.1":0.0037,"18.2":0.02219,"18.3":0.0074,"18.4":0.0037,"18.5-18.7":0.0185,"26.0":0.0148,"26.1":0.0111,"26.2":0.04439,"26.3":0.19975,"26.4":0.0148},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00081,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00163,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00407,"11.0-11.2":0.1025,"11.3-11.4":0.00244,"12.0-12.1":0,"12.2-12.5":0.03172,"13.0-13.1":0,"13.2":0.0122,"13.3":0.00163,"13.4-13.7":0.00407,"14.0-14.4":0.00732,"14.5-14.8":0.00732,"15.0-15.1":0.01057,"15.2-15.3":0.00651,"15.4":0.00813,"15.5":0.00895,"15.6-15.8":0.14398,"16.0":0.01464,"16.1":0.02847,"16.2":0.01627,"16.3":0.02928,"16.4":0.00651,"16.5":0.0122,"16.6-16.7":0.20011,"17.0":0.00895,"17.1":0.01464,"17.2":0.01302,"17.3":0.0179,"17.4":0.02928,"17.5":0.05532,"17.6-17.7":0.14236,"18.0":0.03091,"18.1":0.06345,"18.2":0.03335,"18.3":0.10656,"18.4":0.05125,"18.5-18.7":1.63017,"26.0":0.10168,"26.1":0.15456,"26.2":0.90945,"26.3":3.95097,"26.4":0.14805,"26.5":0},P:{"4":0.01069,"21":0.01069,"22":0.01069,"23":0.01069,"24":0.02138,"25":0.03207,"26":0.11758,"27":0.06414,"28":0.11758,"29":1.92406,_:"20 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 14.0 15.0 16.0 18.0 19.0","7.2-7.4":0.05345,"13.0":0.01069,"17.0":0.01069},I:{"0":0.08184,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00004},K:{"0":0.32765,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.0148,_:"6 7 8 9 10 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.22054},Q:{_:"14.9"},O:{"0":0.38436},H:{all:0},L:{"0":59.21802}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/ER.js b/server/api/node_modules/caniuse-lite/data/regions/ER.js new file mode 100644 index 0000000..d4e12ff --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/ER.js @@ -0,0 +1 @@ +module.exports={C:{"38":0.49129,"78":0.02377,"94":4.71478,"100":0.04754,"115":0.90334,"124":0.07132,"125":0.07132,"140":2.63869,"142":0.02377,"143":0.02377,"146":0.02377,"147":0.97465,"148":3.29638,"149":0.53883,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 95 96 97 98 99 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 126 127 128 129 130 131 132 133 134 135 136 137 138 139 141 144 145 150 151 152 3.5 3.6"},D:{"72":0.04754,"78":0.02377,"83":0.02377,"92":0.02377,"109":5.49133,"121":0.02377,"123":0.02377,"126":0.02377,"128":0.04754,"131":0.31696,"134":0.02377,"135":0.02377,"137":0.51506,"138":0.11886,"139":2.61492,"140":0.07132,"142":0.04754,"143":0.17433,"144":0.51506,"145":16.65625,"146":7.06028,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 79 80 81 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 122 124 125 127 129 130 132 133 136 141 147 148 149 150"},F:{"127":0.02377,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"99":0.02377,"122":0.11886,"125":0.07132,"138":0.11886,"140":0.02377,"143":0.04754,"144":0.04754,"145":1.31538,"146":1.44217,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 123 124 126 127 128 129 130 131 132 133 134 135 136 137 139 141 142"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 15.2-15.3 15.4 15.5 15.6 16.0 16.1 16.2 16.3 16.4 16.5 16.6 17.0 17.1 17.2 17.3 17.4 17.5 17.6 18.0 18.1 18.2 18.3 18.4 18.5-18.7 26.0 26.1 26.2 26.3 26.4 26.5 TP"},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00002,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00004,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.0001,"11.0-11.2":0.00256,"11.3-11.4":0.00006,"12.0-12.1":0,"12.2-12.5":0.00079,"13.0-13.1":0,"13.2":0.00031,"13.3":0.00004,"13.4-13.7":0.0001,"14.0-14.4":0.00018,"14.5-14.8":0.00018,"15.0-15.1":0.00026,"15.2-15.3":0.00016,"15.4":0.0002,"15.5":0.00022,"15.6-15.8":0.0036,"16.0":0.00037,"16.1":0.00071,"16.2":0.00041,"16.3":0.00073,"16.4":0.00016,"16.5":0.00031,"16.6-16.7":0.005,"17.0":0.00022,"17.1":0.00037,"17.2":0.00033,"17.3":0.00045,"17.4":0.00073,"17.5":0.00138,"17.6-17.7":0.00356,"18.0":0.00077,"18.1":0.00159,"18.2":0.00083,"18.3":0.00266,"18.4":0.00128,"18.5-18.7":0.04075,"26.0":0.00254,"26.1":0.00386,"26.2":0.02273,"26.3":0.09877,"26.4":0.0037,"26.5":0},P:{"4":0.02077,"29":1.95255,_:"20 21 22 23 24 25 26 27 28 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":1.13815,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00057},K:{"0":0.0249,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{_:"0"},Q:{_:"14.9"},O:{"0":0.0249},H:{all:0},L:{"0":43.89509}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/ES.js b/server/api/node_modules/caniuse-lite/data/regions/ES.js new file mode 100644 index 0000000..a4bc19b --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/ES.js @@ -0,0 +1 @@ +module.exports={C:{"4":0.01365,"49":0.00455,"52":0.0091,"59":0.0091,"78":0.01365,"98":0.00455,"109":0.00455,"113":0.00455,"115":0.16384,"127":0.00455,"128":0.0091,"130":0.00455,"131":0.00455,"133":0.00455,"134":0.00455,"135":0.0091,"136":0.01365,"137":0.00455,"138":0.0091,"139":0.00455,"140":0.08192,"141":0.00455,"142":0.00455,"143":0.0091,"144":0.00455,"145":0.0091,"146":0.0182,"147":0.11833,"148":1.44722,"149":0.25941,_:"2 3 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 53 54 55 56 57 58 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 99 100 101 102 103 104 105 106 107 108 110 111 112 114 116 117 118 119 120 121 122 123 124 125 126 129 132 150 151 152 3.5 3.6"},D:{"49":0.01365,"58":0.00455,"79":0.0091,"80":0.00455,"87":0.0091,"88":0.00455,"93":0.00455,"96":0.00455,"97":0.00455,"103":0.04096,"104":0.0091,"105":0.0091,"106":0.0091,"107":0.0091,"108":0.16384,"109":0.81918,"110":0.0091,"111":0.0182,"112":0.0091,"114":0.0091,"115":0.00455,"116":0.11378,"117":0.0091,"118":0.00455,"119":0.01365,"120":0.02731,"121":0.0091,"122":0.05916,"123":0.01365,"124":0.02276,"125":0.0091,"126":0.06371,"127":0.0091,"128":0.08192,"129":0.0091,"130":0.03186,"131":0.06371,"132":0.05006,"133":0.04096,"134":0.04096,"135":0.04096,"136":0.03641,"137":0.04551,"138":0.19114,"139":0.09102,"140":0.05916,"141":0.07282,"142":0.14563,"143":0.27306,"144":0.88289,"145":11.97368,"146":8.6287,"147":0.01365,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 81 83 84 85 86 89 90 91 92 94 95 98 99 100 101 102 113 148 149 150"},F:{"46":0.00455,"95":0.04551,"96":0.05916,"125":0.00455,"126":0.01365,"127":0.61439,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.00455,"109":0.03186,"122":0.00455,"126":0.00455,"130":0.00455,"131":0.00455,"132":0.00455,"133":0.00455,"134":0.00455,"135":0.00455,"136":0.00455,"137":0.00455,"138":0.01365,"139":0.00455,"140":0.0091,"141":0.0091,"142":0.0182,"143":0.05006,"144":0.09557,"145":1.92507,"146":1.92962,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 123 124 125 127 128 129"},E:{"14":0.0091,_:"4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 15.1 15.2-15.3 26.5 TP","11.1":0.0091,"12.1":0.00455,"13.1":0.02731,"14.1":0.02276,"15.4":0.00455,"15.5":0.00455,"15.6":0.12743,"16.0":0.0091,"16.1":0.0091,"16.2":0.00455,"16.3":0.01365,"16.4":0.00455,"16.5":0.01365,"16.6":0.16384,"17.0":0.00455,"17.1":0.12288,"17.2":0.01365,"17.3":0.0091,"17.4":0.02276,"17.5":0.04096,"17.6":0.14108,"18.0":0.0182,"18.1":0.0182,"18.2":0.01365,"18.3":0.03641,"18.4":0.0182,"18.5-18.7":0.07737,"26.0":0.03186,"26.1":0.04096,"26.2":0.2412,"26.3":1.11955,"26.4":0.05006},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00129,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00258,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00645,"11.0-11.2":0.16265,"11.3-11.4":0.00387,"12.0-12.1":0,"12.2-12.5":0.05034,"13.0-13.1":0,"13.2":0.01936,"13.3":0.00258,"13.4-13.7":0.00645,"14.0-14.4":0.01162,"14.5-14.8":0.01162,"15.0-15.1":0.01678,"15.2-15.3":0.01033,"15.4":0.01291,"15.5":0.0142,"15.6-15.8":0.22848,"16.0":0.02324,"16.1":0.04518,"16.2":0.02582,"16.3":0.04647,"16.4":0.01033,"16.5":0.01936,"16.6-16.7":0.31755,"17.0":0.0142,"17.1":0.02324,"17.2":0.02065,"17.3":0.0284,"17.4":0.04647,"17.5":0.08778,"17.6-17.7":0.2259,"18.0":0.04905,"18.1":0.10069,"18.2":0.05293,"18.3":0.1691,"18.4":0.08132,"18.5-18.7":2.5869,"26.0":0.16136,"26.1":0.24526,"26.2":1.44319,"26.3":6.26975,"26.4":0.23494,"26.5":0},P:{"4":0.0104,"21":0.0104,"22":0.0104,"23":0.0208,"24":0.0208,"25":0.0208,"26":0.0416,"27":0.0416,"28":0.09361,"29":2.32975,_:"20 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 14.0 15.0 16.0 17.0 18.0","13.0":0.0104,"19.0":0.0104},I:{"0":0.049,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.33784,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.05006,_:"6 7 8 9 10 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.47406},Q:{_:"14.9"},O:{"0":0.03269},H:{all:0},L:{"0":47.13838}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/ET.js b/server/api/node_modules/caniuse-lite/data/regions/ET.js new file mode 100644 index 0000000..16f7a7f --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/ET.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.03053,"47":0.00204,"48":0.00204,"52":0.00204,"56":0.00204,"60":0.00204,"66":0.00204,"67":0.00204,"72":0.00407,"84":0.00204,"104":0.00204,"112":0.00611,"115":0.24827,"121":0.00204,"127":0.00814,"131":0.01018,"133":0.00204,"134":0.00204,"136":0.00204,"137":0.00204,"140":0.02035,"142":0.00204,"143":0.00407,"144":0.00204,"145":0.00407,"146":0.00611,"147":0.03663,"148":0.53521,"149":0.09972,"150":0.00204,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 49 50 51 53 54 55 57 58 59 61 62 63 64 65 68 69 70 71 73 74 75 76 77 78 79 80 81 82 83 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 105 106 107 108 109 110 111 113 114 116 117 118 119 120 122 123 124 125 126 128 129 130 132 135 138 139 141 151 152 3.5 3.6"},D:{"49":0.00204,"50":0.00204,"51":0.00204,"55":0.00204,"56":0.00204,"58":0.00204,"61":0.00204,"63":0.00204,"64":0.00204,"65":0.00407,"66":0.01018,"67":0.00204,"68":0.00611,"69":0.00611,"70":0.02239,"71":0.00407,"72":0.00204,"73":0.01628,"74":0.00204,"75":0.00611,"76":0.00204,"77":0.00611,"79":0.01018,"80":0.00814,"81":0.00407,"83":0.00611,"85":0.00407,"86":0.01018,"87":0.00611,"88":0.00204,"90":0.00407,"91":0.00204,"93":0.00407,"95":0.00814,"96":0.00204,"97":0.00204,"98":0.00814,"99":0.00204,"100":0.00204,"101":0.00204,"102":0.00407,"103":0.24013,"104":0.22182,"105":0.22589,"106":0.22792,"107":0.22182,"108":0.22385,"109":0.5291,"110":0.21978,"111":0.22385,"112":0.82214,"113":0.00204,"114":0.02035,"115":0.00204,"116":0.45991,"117":0.22589,"118":0.00204,"119":0.03053,"120":0.2381,"121":0.00611,"122":0.01628,"123":0.00204,"124":0.23199,"125":0.00407,"126":0.01628,"127":0.00407,"128":0.01221,"129":0.00407,"130":0.00814,"131":0.4823,"132":0.00814,"133":0.47212,"134":0.01425,"135":0.01628,"136":0.01221,"137":0.07937,"138":0.14042,"139":0.12617,"140":0.01425,"141":0.02035,"142":0.0346,"143":0.07937,"144":0.45991,"145":3.11559,"146":2.70248,"147":0.02035,"148":0.00611,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 52 53 54 57 59 60 62 78 84 89 92 94 149 150"},F:{"46":0.00204,"54":0.00204,"56":0.00204,"57":0.00204,"79":0.00407,"93":0.00204,"94":0.00204,"95":0.0407,"96":0.02035,"114":0.00204,"120":0.00407,"125":0.00407,"126":0.01832,"127":0.24217,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 55 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 85 86 87 88 89 90 91 92 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 121 122 123 124 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.00407,"15":0.00204,"16":0.00407,"17":0.00204,"18":0.02239,"84":0.00204,"89":0.00204,"90":0.00204,"92":0.02442,"100":0.00407,"107":0.00204,"109":0.02849,"112":0.00204,"114":0.01425,"122":0.00407,"131":0.00204,"132":0.00204,"133":0.00407,"134":0.00407,"135":0.00204,"136":0.00204,"137":0.00204,"138":0.00611,"139":0.00407,"140":0.00611,"141":0.00611,"142":0.01425,"143":0.02849,"144":0.0407,"145":0.78958,"146":0.75906,_:"12 13 79 80 81 83 85 86 87 88 91 93 94 95 96 97 98 99 101 102 103 104 105 106 108 110 111 113 115 116 117 118 119 120 121 123 124 125 126 127 128 129 130"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 14.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.3 16.4 17.0 17.2 17.3 17.5 18.0 26.5 TP","13.1":0.00407,"15.6":0.00611,"16.5":0.00814,"16.6":0.01221,"17.1":0.00204,"17.4":0.00204,"17.6":0.01018,"18.1":0.00204,"18.2":0.00204,"18.3":0.00204,"18.4":0.00204,"18.5-18.7":0.00814,"26.0":0.00611,"26.1":0.00407,"26.2":0.01832,"26.3":0.02849,"26.4":0.00204},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00009,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00019,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00047,"11.0-11.2":0.01174,"11.3-11.4":0.00028,"12.0-12.1":0,"12.2-12.5":0.00363,"13.0-13.1":0,"13.2":0.0014,"13.3":0.00019,"13.4-13.7":0.00047,"14.0-14.4":0.00084,"14.5-14.8":0.00084,"15.0-15.1":0.00121,"15.2-15.3":0.00075,"15.4":0.00093,"15.5":0.00103,"15.6-15.8":0.01649,"16.0":0.00168,"16.1":0.00326,"16.2":0.00186,"16.3":0.00335,"16.4":0.00075,"16.5":0.0014,"16.6-16.7":0.02292,"17.0":0.00103,"17.1":0.00168,"17.2":0.00149,"17.3":0.00205,"17.4":0.00335,"17.5":0.00634,"17.6-17.7":0.01631,"18.0":0.00354,"18.1":0.00727,"18.2":0.00382,"18.3":0.01221,"18.4":0.00587,"18.5-18.7":0.18675,"26.0":0.01165,"26.1":0.01771,"26.2":0.10419,"26.3":0.45263,"26.4":0.01696,"26.5":0},P:{"24":0.01068,"25":0.01068,"26":0.03205,"27":0.05342,"28":0.17096,"29":0.56629,_:"4 20 21 22 23 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.03205},I:{"0":0.15916,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00008},K:{"0":1.3937,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{"2.5":0.0239,_:"3.0-3.1"},R:{_:"0"},M:{"0":0.09558},Q:{_:"14.9"},O:{"0":0.12744},H:{all:0.04},L:{"0":79.20273}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/FI.js b/server/api/node_modules/caniuse-lite/data/regions/FI.js new file mode 100644 index 0000000..3e4ff23 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/FI.js @@ -0,0 +1 @@ +module.exports={C:{"52":0.01086,"60":0.00543,"72":0.01086,"78":0.00543,"97":0.00543,"101":0.00543,"103":0.00543,"115":0.30414,"121":0.00543,"122":0.00543,"123":0.02172,"128":0.00543,"133":0.00543,"134":0.00543,"135":0.40189,"136":0.01629,"138":0.01629,"139":0.04345,"140":0.23896,"141":0.00543,"142":0.01086,"143":0.01086,"144":0.04888,"145":0.01629,"146":0.04345,"147":0.25526,"148":3.53558,"149":0.69517,"150":0.00543,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 98 99 100 102 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 124 125 126 127 129 130 131 132 137 151 152 3.5 3.6"},D:{"39":0.01629,"40":0.01629,"41":0.01629,"42":0.01629,"43":0.01629,"44":0.01629,"45":0.01629,"46":0.01629,"47":0.01629,"48":0.01629,"49":0.01629,"50":0.01629,"51":0.01629,"52":0.01629,"53":0.01629,"54":0.01629,"55":0.01629,"56":0.01629,"57":0.01629,"58":0.01629,"59":0.01629,"60":0.01629,"76":0.00543,"81":0.00543,"87":0.03802,"91":0.00543,"97":0.01086,"101":0.00543,"102":0.01086,"103":0.02172,"104":0.01086,"106":0.00543,"107":0.02716,"109":0.36388,"114":0.01086,"116":0.05431,"117":0.00543,"118":0.02172,"119":0.01629,"120":0.4725,"121":0.01086,"122":0.02716,"123":0.00543,"124":0.01629,"125":0.01086,"126":0.05431,"127":0.02716,"128":0.10319,"129":0.01086,"130":0.01629,"131":0.04888,"132":0.04345,"133":0.02172,"134":0.04345,"135":0.04345,"136":0.02716,"137":0.02716,"138":0.32586,"139":0.04888,"140":0.11405,"141":0.09776,"142":0.12491,"143":0.32586,"144":0.94499,"145":13.2625,"146":10.76967,"147":0.02172,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 77 78 79 80 83 84 85 86 88 89 90 92 93 94 95 96 98 99 100 105 108 110 111 112 113 115 148 149 150"},F:{"68":0.02172,"95":0.0869,"96":0.09233,"114":0.00543,"125":0.00543,"126":0.01629,"127":1.07534,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 120 121 122 123 124 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.00543,"102":0.00543,"109":0.01629,"110":0.01629,"122":0.00543,"125":0.00543,"126":0.00543,"127":0.00543,"131":0.00543,"132":0.00543,"133":0.00543,"134":0.00543,"135":0.00543,"136":0.00543,"137":0.00543,"138":0.02172,"139":0.00543,"140":0.01629,"141":0.00543,"142":0.01629,"143":0.03259,"144":0.14664,"145":3.19886,"146":3.12283,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 103 104 105 106 107 108 111 112 113 114 115 116 117 118 119 120 121 123 124 128 129 130"},E:{"14":0.00543,"15":0.00543,_:"4 5 6 7 8 9 10 11 12 13 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 16.0 26.5 TP","13.1":0.01086,"14.1":0.01629,"15.2-15.3":0.00543,"15.4":0.00543,"15.5":0.00543,"15.6":0.08147,"16.1":0.01086,"16.2":0.00543,"16.3":0.02716,"16.4":0.00543,"16.5":0.02172,"16.6":0.17379,"17.0":0.00543,"17.1":0.15207,"17.2":0.01086,"17.3":0.01629,"17.4":0.01629,"17.5":0.03259,"17.6":0.17922,"18.0":0.01086,"18.1":0.03259,"18.2":0.01086,"18.3":0.02716,"18.4":0.01629,"18.5-18.7":0.06517,"26.0":0.04888,"26.1":0.06517,"26.2":0.4562,"26.3":1.53697,"26.4":0.06517},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00131,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00262,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00654,"11.0-11.2":0.16488,"11.3-11.4":0.00393,"12.0-12.1":0,"12.2-12.5":0.05103,"13.0-13.1":0,"13.2":0.01963,"13.3":0.00262,"13.4-13.7":0.00654,"14.0-14.4":0.01178,"14.5-14.8":0.01178,"15.0-15.1":0.01701,"15.2-15.3":0.01047,"15.4":0.01309,"15.5":0.01439,"15.6-15.8":0.23162,"16.0":0.02355,"16.1":0.0458,"16.2":0.02617,"16.3":0.04711,"16.4":0.01047,"16.5":0.01963,"16.6-16.7":0.32191,"17.0":0.01439,"17.1":0.02355,"17.2":0.02094,"17.3":0.02879,"17.4":0.04711,"17.5":0.08898,"17.6-17.7":0.229,"18.0":0.04973,"18.1":0.10207,"18.2":0.05365,"18.3":0.17142,"18.4":0.08244,"18.5-18.7":2.62236,"26.0":0.16357,"26.1":0.24863,"26.2":1.46297,"26.3":6.35568,"26.4":0.23816,"26.5":0},P:{"21":0.01048,"22":0.02096,"23":0.02096,"24":0.02096,"25":0.01048,"26":0.02096,"27":0.06288,"28":0.14672,"29":3.03924,_:"4 20 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.03652,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.48431,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.01086,_:"6 7 8 9 10 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.95035},Q:{_:"14.9"},O:{"0":0.09138},H:{all:0},L:{"0":30.83507}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/FJ.js b/server/api/node_modules/caniuse-lite/data/regions/FJ.js new file mode 100644 index 0000000..582a0be --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/FJ.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.00393,"78":0.00786,"112":0.00393,"115":0.03145,"125":0.00393,"127":0.01179,"129":0.00393,"132":0.00393,"137":0.00393,"140":0.02752,"145":0.01572,"146":0.03538,"147":0.05503,"148":0.86482,"149":0.34986,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 113 114 116 117 118 119 120 121 122 123 124 126 128 130 131 133 134 135 136 138 139 141 142 143 144 150 151 152 3.5 3.6"},D:{"51":0.00786,"63":0.00393,"66":0.00393,"69":0.00393,"71":0.00393,"73":0.00393,"79":0.00786,"81":0.00786,"83":0.01179,"87":0.00393,"92":0.00393,"93":0.00393,"97":0.00393,"98":0.00393,"103":0.03538,"105":0.00393,"108":0.00393,"109":0.12972,"114":0.01572,"116":0.09828,"118":0.00393,"119":0.00393,"120":0.01966,"121":0.00393,"122":0.00786,"123":0.01179,"124":0.00786,"126":0.03931,"127":0.01179,"128":0.01572,"129":0.01572,"130":0.04324,"131":0.07469,"132":0.01179,"133":0.01966,"134":0.02359,"135":0.01966,"136":0.01572,"137":0.02359,"138":0.1769,"139":0.11007,"140":0.00786,"141":0.01966,"142":0.10221,"143":0.07469,"144":0.36558,"145":7.1898,"146":5.93974,"147":0.00393,"148":0.00393,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 52 53 54 55 56 57 58 59 60 61 62 64 65 67 68 70 72 74 75 76 77 78 80 84 85 86 88 89 90 91 94 95 96 99 100 101 102 104 106 107 110 111 112 113 115 117 125 149 150"},F:{"95":0.09434,"96":0.0629,"100":0.00393,"101":0.00786,"102":0.00393,"103":0.00393,"104":0.00393,"105":0.00393,"106":0.00786,"107":0.00393,"113":0.00393,"114":0.00786,"116":0.00393,"117":0.00393,"118":0.00393,"119":0.00393,"120":0.00786,"121":0.00393,"126":0.00786,"127":0.14545,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 108 109 110 111 112 115 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"15":0.00393,"17":0.00393,"18":0.01179,"92":0.00786,"100":0.03538,"109":0.01179,"113":0.00393,"114":0.00393,"116":0.00786,"121":0.00393,"122":0.00393,"129":0.00393,"131":0.00393,"132":0.00786,"133":0.00393,"134":0.00393,"135":0.00786,"136":0.00393,"137":0.01179,"138":0.06683,"139":0.01179,"140":0.01572,"141":0.02359,"142":0.0629,"143":0.04324,"144":0.06683,"145":3.67549,"146":2.83425,_:"12 13 14 16 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 115 117 118 119 120 123 124 125 126 127 128 130"},E:{"7":0.00393,_:"4 5 6 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 10.1 11.1 12.1 13.1 15.1 16.0 16.2 17.2 18.1 18.2 26.5 TP","9.1":0.00393,"14.1":0.00786,"15.2-15.3":0.00393,"15.4":0.00393,"15.5":0.00393,"15.6":0.10614,"16.1":0.01179,"16.3":0.00786,"16.4":0.00393,"16.5":0.00393,"16.6":0.09828,"17.0":0.0629,"17.1":0.01572,"17.3":0.01966,"17.4":0.01966,"17.5":0.0511,"17.6":0.02359,"18.0":0.00393,"18.3":0.00786,"18.4":0.00393,"18.5-18.7":0.10221,"26.0":0.00393,"26.1":0.03145,"26.2":0.10221,"26.3":0.77441,"26.4":0.01572},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0008,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00161,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00402,"11.0-11.2":0.1014,"11.3-11.4":0.00241,"12.0-12.1":0,"12.2-12.5":0.03139,"13.0-13.1":0,"13.2":0.01207,"13.3":0.00161,"13.4-13.7":0.00402,"14.0-14.4":0.00724,"14.5-14.8":0.00724,"15.0-15.1":0.01046,"15.2-15.3":0.00644,"15.4":0.00805,"15.5":0.00885,"15.6-15.8":0.14244,"16.0":0.01449,"16.1":0.02817,"16.2":0.01609,"16.3":0.02897,"16.4":0.00644,"16.5":0.01207,"16.6-16.7":0.19797,"17.0":0.00885,"17.1":0.01449,"17.2":0.01288,"17.3":0.0177,"17.4":0.02897,"17.5":0.05472,"17.6-17.7":0.14083,"18.0":0.03058,"18.1":0.06277,"18.2":0.03299,"18.3":0.10542,"18.4":0.0507,"18.5-18.7":1.61272,"26.0":0.10059,"26.1":0.1529,"26.2":0.89971,"26.3":3.90867,"26.4":0.14646,"26.5":0},P:{"20":0.01023,"21":0.0307,"22":0.10235,"23":0.05117,"24":0.16376,"25":0.46056,"26":0.12282,"27":0.67549,"28":1.60685,"29":8.65856,_:"4 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 17.0","7.2-7.4":0.18422,"16.0":0.01023,"18.0":0.01023,"19.0":0.02047},I:{"0":0.04851,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.19421,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.13959},Q:{_:"14.9"},O:{"0":0.47338},H:{all:0},L:{"0":52.6341}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/FK.js b/server/api/node_modules/caniuse-lite/data/regions/FK.js new file mode 100644 index 0000000..a2e587d --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/FK.js @@ -0,0 +1 @@ +module.exports={C:{"108":1.68129,"115":0.65193,"122":0.03002,"133":0.03002,"135":0.56186,"136":0.03002,"147":2.86076,"148":3.79577,"149":0.71626,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 109 110 111 112 113 114 116 117 118 119 120 121 123 124 125 126 127 128 129 130 131 132 134 137 138 139 140 141 142 143 144 145 146 150 151 152 3.5 3.6"},D:{"87":0.21874,"109":0.06434,"132":0.03002,"139":0.03002,"142":0.37314,"143":1.08941,"144":1.49257,"145":5.0696,"146":3.98019,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 133 134 135 136 137 138 140 141 147 148 149 150"},F:{"126":0.03002,"127":0.27879,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"109":0.06434,"138":0.24876,"142":0.1544,"144":0.96503,"145":4.16891,"146":4.94522,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 139 140 141 143"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 15.2-15.3 15.4 15.5 15.6 16.0 16.1 16.2 16.3 16.4 16.5 17.0 17.2 17.3 17.5 18.0 18.1 18.2 18.3 18.4 18.5-18.7 26.0 26.1 26.2 26.4 26.5 TP","16.6":0.03002,"17.1":0.06434,"17.4":0.06434,"17.6":0.90069,"26.3":0.87067},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00212,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00423,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.01058,"11.0-11.2":0.26663,"11.3-11.4":0.00635,"12.0-12.1":0,"12.2-12.5":0.08253,"13.0-13.1":0,"13.2":0.03174,"13.3":0.00423,"13.4-13.7":0.01058,"14.0-14.4":0.01905,"14.5-14.8":0.01905,"15.0-15.1":0.02751,"15.2-15.3":0.01693,"15.4":0.02116,"15.5":0.02328,"15.6-15.8":0.37455,"16.0":0.03809,"16.1":0.07406,"16.2":0.04232,"16.3":0.07618,"16.4":0.01693,"16.5":0.03174,"16.6-16.7":0.52057,"17.0":0.02328,"17.1":0.03809,"17.2":0.03386,"17.3":0.04655,"17.4":0.07618,"17.5":0.1439,"17.6-17.7":0.37032,"18.0":0.08041,"18.1":0.16506,"18.2":0.08676,"18.3":0.27721,"18.4":0.13332,"18.5-18.7":4.24072,"26.0":0.26452,"26.1":0.40206,"26.2":2.36583,"26.3":10.27802,"26.4":0.38513,"26.5":0},P:{"4":0.09292,"28":0.86723,"29":11.30493,_:"20 21 22 23 24 25 26 27 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0.03426,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":2.88926},Q:{_:"14.9"},O:{_:"0"},H:{all:0},L:{"0":25.05137}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/FM.js b/server/api/node_modules/caniuse-lite/data/regions/FM.js new file mode 100644 index 0000000..7f7ddba --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/FM.js @@ -0,0 +1 @@ +module.exports={C:{"115":0.05364,"140":0.10728,"147":0.1788,"148":0.99234,"149":0.09387,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 141 142 143 144 145 146 150 151 152 3.5 3.6"},D:{"93":0.06705,"103":0.02682,"109":0.47829,"116":0.04023,"125":0.01341,"126":0.04023,"127":0.02682,"137":0.08046,"138":0.01341,"139":0.06705,"141":0.01341,"142":0.01341,"143":0.39336,"144":0.59898,"145":5.59644,"146":6.00321,"147":0.19221,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 91 92 94 95 96 97 98 99 100 101 102 104 105 106 107 108 110 111 112 113 114 115 117 118 119 120 121 122 123 124 128 129 130 131 132 133 134 135 136 140 148 149 150"},F:{"95":0.02682,"96":0.35313,"127":0.05364,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.02682,"103":0.01341,"109":0.02682,"130":0.01341,"142":0.04023,"143":0.06705,"144":0.04023,"145":4.12581,"146":4.04535,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 131 132 133 134 135 136 137 138 139 140 141"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 14.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.3 16.4 17.1 17.2 17.3 17.5 17.6 18.0 18.1 18.2 26.1 26.4 26.5 TP","13.1":0.05364,"15.6":0.96552,"16.5":0.02682,"16.6":0.05364,"17.0":0.01341,"17.4":0.02682,"18.3":0.05364,"18.4":0.02682,"18.5-18.7":0.01341,"26.0":0.05364,"26.2":0.06705,"26.3":0.92529},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00093,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00186,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00465,"11.0-11.2":0.11713,"11.3-11.4":0.00279,"12.0-12.1":0,"12.2-12.5":0.03625,"13.0-13.1":0,"13.2":0.01394,"13.3":0.00186,"13.4-13.7":0.00465,"14.0-14.4":0.00837,"14.5-14.8":0.00837,"15.0-15.1":0.01208,"15.2-15.3":0.00744,"15.4":0.0093,"15.5":0.01023,"15.6-15.8":0.16454,"16.0":0.01673,"16.1":0.03254,"16.2":0.01859,"16.3":0.03347,"16.4":0.00744,"16.5":0.01394,"16.6-16.7":0.22868,"17.0":0.01023,"17.1":0.01673,"17.2":0.01487,"17.3":0.02045,"17.4":0.03347,"17.5":0.06321,"17.6-17.7":0.16268,"18.0":0.03532,"18.1":0.07251,"18.2":0.03811,"18.3":0.12178,"18.4":0.05856,"18.5-18.7":1.8629,"26.0":0.1162,"26.1":0.17662,"26.2":1.03928,"26.3":4.51503,"26.4":0.16919,"26.5":0},P:{"24":0.30349,"26":0.0314,"27":0.16744,"28":0.2093,"29":1.74768,_:"4 20 21 22 23 25 5.0-5.4 6.2-6.4 8.2 9.2 10.1 12.0 13.0 14.0 15.0 17.0 18.0 19.0","7.2-7.4":0.10465,"11.1-11.2":0.01047,"16.0":0.05233},I:{"0":0.01658,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.11613},Q:{_:"14.9"},O:{"0":2.34472},H:{all:0},L:{"0":58.34421}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/FO.js b/server/api/node_modules/caniuse-lite/data/regions/FO.js new file mode 100644 index 0000000..2a5023e --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/FO.js @@ -0,0 +1 @@ +module.exports={C:{"100":0.00383,"115":0.04215,"140":0.64378,"147":0.03449,"148":1.62477,"149":0.45984,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 141 142 143 144 145 146 150 151 152 3.5 3.6"},D:{"79":0.00383,"80":0.00383,"103":0.00766,"109":0.87753,"122":0.00766,"123":0.00383,"124":0.00383,"126":0.00383,"128":0.04215,"129":0.00383,"131":0.07664,"132":0.00766,"135":0.00383,"137":0.15328,"138":0.00766,"139":0.30656,"140":0.05365,"142":0.04215,"143":0.09963,"144":0.30656,"145":5.10039,"146":4.86664,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 125 127 130 133 134 136 141 147 148 149 150"},F:{"69":0.00383,"124":0.19926,"127":0.4675,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 125 126 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"109":0.06131,"120":0.00383,"141":0.00383,"142":0.00383,"143":0.0115,"144":0.02682,"145":2.43332,"146":1.49831,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 11.1 12.1 15.2-15.3 16.0 17.2 26.5 TP","10.1":0.0115,"13.1":0.00383,"14.1":0.01533,"15.1":0.00383,"15.4":0.00383,"15.5":0.03066,"15.6":0.66294,"16.1":0.04215,"16.2":0.0843,"16.3":0.02682,"16.4":0.00766,"16.5":0.05365,"16.6":1.47915,"17.0":0.00383,"17.1":0.88902,"17.3":0.04598,"17.4":0.11879,"17.5":0.11879,"17.6":0.50966,"18.0":0.03832,"18.1":0.05365,"18.2":0.00766,"18.3":0.16478,"18.4":0.01533,"18.5-18.7":0.29123,"26.0":0.02299,"26.1":0.05748,"26.2":1.45616,"26.3":7.33445,"26.4":0.16478},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00513,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.01026,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.02564,"11.0-11.2":0.64622,"11.3-11.4":0.01539,"12.0-12.1":0,"12.2-12.5":0.20002,"13.0-13.1":0,"13.2":0.07693,"13.3":0.01026,"13.4-13.7":0.02564,"14.0-14.4":0.04616,"14.5-14.8":0.04616,"15.0-15.1":0.06667,"15.2-15.3":0.04103,"15.4":0.05129,"15.5":0.05642,"15.6-15.8":0.90778,"16.0":0.09232,"16.1":0.1795,"16.2":0.10257,"16.3":0.18463,"16.4":0.04103,"16.5":0.07693,"16.6-16.7":1.26166,"17.0":0.05642,"17.1":0.09232,"17.2":0.08206,"17.3":0.11283,"17.4":0.18463,"17.5":0.34875,"17.6-17.7":0.89752,"18.0":0.19489,"18.1":0.40004,"18.2":0.21028,"18.3":0.67186,"18.4":0.32311,"18.5-18.7":10.2779,"26.0":0.64109,"26.1":0.97445,"26.2":5.73388,"26.3":24.91006,"26.4":0.93342,"26.5":0},P:{"4":0.01029,"23":0.01029,"27":0.01029,"28":0.01029,"29":1.75989,_:"20 21 22 24 25 26 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.12325,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00006},K:{"0":0.10486,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.00383,_:"6 7 8 9 10 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.25289},Q:{_:"14.9"},O:{_:"0"},H:{all:0},L:{"0":9.5385}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/FR.js b/server/api/node_modules/caniuse-lite/data/regions/FR.js new file mode 100644 index 0000000..6c7d449 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/FR.js @@ -0,0 +1 @@ +module.exports={C:{"48":0.00476,"52":0.03334,"59":0.00476,"78":0.02858,"102":0.00476,"113":0.00476,"115":0.40009,"121":0.00476,"123":0.00476,"125":0.00476,"127":0.00476,"128":0.04287,"131":0.00476,"132":0.00476,"133":0.01429,"134":0.00953,"135":0.01429,"136":0.02382,"137":0.00476,"138":0.00476,"139":0.01905,"140":0.33341,"141":0.00953,"142":0.00953,"143":0.01905,"144":0.01429,"145":0.01905,"146":0.04287,"147":0.23815,"148":3.71038,"149":0.77161,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 53 54 55 56 57 58 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 103 104 105 106 107 108 109 110 111 112 114 116 117 118 119 120 122 124 126 129 130 150 151 152 3.5 3.6"},D:{"39":0.0905,"40":0.0905,"41":0.0905,"42":0.0905,"43":0.0905,"44":0.0905,"45":0.0905,"46":0.0905,"47":0.0905,"48":0.0905,"49":0.10479,"50":0.0905,"51":0.0905,"52":0.0905,"53":0.0905,"54":0.0905,"55":0.0905,"56":0.09526,"57":0.0905,"58":0.0905,"59":0.0905,"60":0.0905,"76":0.00476,"79":0.00476,"85":0.00476,"87":0.01429,"91":0.00953,"103":0.04763,"104":0.01429,"105":0.00476,"106":0.00476,"107":0.00953,"108":0.04287,"109":0.65729,"110":0.00953,"111":0.00953,"112":0.00953,"113":0.00476,"114":0.01429,"115":0.00476,"116":0.15718,"117":0.00476,"118":0.00476,"119":0.00953,"120":0.04287,"121":0.01429,"122":0.02858,"123":0.01429,"124":0.02382,"125":0.01429,"126":0.06192,"127":0.00953,"128":0.08097,"129":0.02858,"130":0.03334,"131":0.0905,"132":0.04763,"133":0.05716,"134":0.07145,"135":0.05716,"136":0.04287,"137":0.02858,"138":0.19052,"139":0.06668,"140":0.06668,"141":0.07621,"142":0.16194,"143":0.41438,"144":0.87639,"145":10.54052,"146":7.99708,"147":0.02382,"148":0.00476,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 77 78 80 81 83 84 86 88 89 90 92 93 94 95 96 97 98 99 100 101 102 149 150"},F:{"46":0.00476,"94":0.00476,"95":0.05716,"96":0.04763,"102":0.00476,"114":0.00953,"125":0.01429,"126":0.01905,"127":0.62395,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 97 98 99 100 101 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 120 121 122 123 124 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.00476,"109":0.09526,"114":0.00476,"122":0.00476,"126":0.00953,"127":0.00476,"128":0.00476,"129":0.00476,"130":0.00476,"131":0.01905,"132":0.00476,"133":0.00953,"134":0.01429,"135":0.00953,"136":0.01429,"137":0.00953,"138":0.01429,"139":0.01905,"140":0.02382,"141":0.00953,"142":0.02382,"143":0.08097,"144":0.16671,"145":3.05785,"146":3.115,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 123 124 125"},E:{"14":0.00953,_:"4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 26.5 TP","11.1":0.00476,"12.1":0.00476,"13.1":0.06668,"14.1":0.12384,"15.1":0.00476,"15.2-15.3":0.00476,"15.4":0.00953,"15.5":0.00476,"15.6":0.19052,"16.0":0.01429,"16.1":0.00953,"16.2":0.01429,"16.3":0.01905,"16.4":0.00953,"16.5":0.01429,"16.6":0.2191,"17.0":0.00476,"17.1":0.15718,"17.2":0.01429,"17.3":0.01905,"17.4":0.02858,"17.5":0.04763,"17.6":0.27149,"18.0":0.01905,"18.1":0.02382,"18.2":0.01429,"18.3":0.05716,"18.4":0.02382,"18.5-18.7":0.08097,"26.0":0.0381,"26.1":0.04763,"26.2":0.31912,"26.3":1.34793,"26.4":0.05239},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00143,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00285,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00713,"11.0-11.2":0.17958,"11.3-11.4":0.00428,"12.0-12.1":0,"12.2-12.5":0.05558,"13.0-13.1":0,"13.2":0.02138,"13.3":0.00285,"13.4-13.7":0.00713,"14.0-14.4":0.01283,"14.5-14.8":0.01283,"15.0-15.1":0.01853,"15.2-15.3":0.0114,"15.4":0.01425,"15.5":0.01568,"15.6-15.8":0.25227,"16.0":0.02565,"16.1":0.04988,"16.2":0.0285,"16.3":0.05131,"16.4":0.0114,"16.5":0.02138,"16.6-16.7":0.35061,"17.0":0.01568,"17.1":0.02565,"17.2":0.0228,"17.3":0.03136,"17.4":0.05131,"17.5":0.09692,"17.6-17.7":0.24942,"18.0":0.05416,"18.1":0.11117,"18.2":0.05843,"18.3":0.18671,"18.4":0.08979,"18.5-18.7":2.85618,"26.0":0.17815,"26.1":0.2708,"26.2":1.59342,"26.3":6.92239,"26.4":0.25939,"26.5":0},P:{"4":0.01055,"20":0.01055,"21":0.0211,"22":0.03165,"23":0.01055,"24":0.01055,"25":0.0211,"26":0.07385,"27":0.03165,"28":0.09495,"29":2.50032,_:"5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.01055,"13.0":0.01055},I:{"0":0.12555,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00006},K:{"0":0.30369,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.00476,_:"6 7 8 9 10 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.83252},Q:{_:"14.9"},O:{"0":0.16755},H:{all:0},L:{"0":37.49216}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/GA.js b/server/api/node_modules/caniuse-lite/data/regions/GA.js new file mode 100644 index 0000000..df890c2 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/GA.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.04434,"48":0.00493,"69":0.00493,"109":0.00493,"115":0.09854,"122":0.00493,"127":0.00985,"132":0.00493,"135":0.00493,"136":0.00493,"140":0.09361,"143":0.01478,"144":0.00493,"145":0.00493,"146":0.01478,"147":0.13303,"148":1.20712,"149":0.16752,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 116 117 118 119 120 121 123 124 125 126 128 129 130 131 133 134 137 138 139 141 142 150 151 152 3.5 3.6"},D:{"49":0.00985,"51":0.00493,"56":0.00985,"63":0.00493,"64":0.00985,"65":0.00493,"66":0.13303,"68":0.00493,"69":0.06898,"70":0.00493,"71":0.00493,"72":0.03449,"73":0.09854,"74":0.01478,"75":0.03449,"76":0.00493,"78":0.00493,"79":0.03449,"81":0.04927,"83":0.07391,"84":0.00985,"86":0.07883,"87":0.02464,"88":0.00493,"90":0.08376,"91":0.07391,"93":0.00985,"95":0.00985,"98":0.16259,"100":0.00493,"101":0.00985,"102":0.00985,"103":0.73412,"104":0.69471,"105":0.71442,"106":0.7489,"107":0.71934,"108":0.7292,"109":1.14306,"110":0.73412,"111":0.73905,"112":1.56679,"113":0.04434,"114":0.1281,"115":0.00985,"116":1.43376,"117":0.70456,"118":0.01478,"119":0.10839,"120":0.84252,"121":0.00493,"122":0.01478,"123":0.00493,"124":0.71934,"125":0.14288,"126":0.01478,"127":0.00493,"128":0.07391,"129":0.00985,"130":0.02464,"131":1.48303,"132":0.02464,"133":1.48303,"134":0.03942,"135":0.02956,"136":0.03449,"137":0.10347,"138":0.30055,"139":0.34982,"140":0.02464,"141":0.02956,"142":0.0542,"143":0.13303,"144":0.85237,"145":5.37043,"146":4.96149,"148":0.00493,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 52 53 54 55 57 58 59 60 61 62 67 77 80 85 89 92 94 96 97 99 147 149 150"},F:{"28":0.00493,"32":0.00493,"36":0.00493,"38":0.00493,"40":0.00985,"46":0.01478,"79":0.00493,"90":0.00493,"92":0.00493,"95":0.05912,"96":0.02956,"109":0.00493,"113":0.00985,"114":0.00493,"119":0.00493,"120":0.00493,"125":0.00493,"126":0.06405,"127":0.61095,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 33 34 35 37 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 85 86 87 88 89 91 93 94 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 115 116 117 118 121 122 123 124 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"17":0.00493,"18":0.01971,"84":0.00493,"92":0.03449,"100":0.00985,"108":0.03449,"109":0.01478,"120":0.00493,"133":0.00985,"134":0.00493,"135":0.00493,"136":0.00493,"137":0.00493,"138":0.00985,"140":0.00493,"141":0.01478,"142":0.00985,"143":0.0542,"144":0.07391,"145":1.45839,"146":1.46825,_:"12 13 14 15 16 79 80 81 83 85 86 87 88 89 90 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 110 111 112 113 114 115 116 117 118 119 121 122 123 124 125 126 127 128 129 130 131 132 139"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 14.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.4 17.0 17.2 26.0 26.5 TP","10.1":0.01478,"11.1":0.00985,"12.1":0.09361,"13.1":0.00985,"15.6":0.06898,"16.3":0.00985,"16.5":0.00493,"16.6":0.13303,"17.1":0.00985,"17.3":0.00985,"17.4":0.00493,"17.5":0.00493,"17.6":0.46314,"18.0":0.00493,"18.1":0.00985,"18.2":0.00985,"18.3":0.01971,"18.4":0.04927,"18.5-18.7":0.09854,"26.1":0.00985,"26.2":0.08376,"26.3":0.21679,"26.4":0.04434},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00043,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00086,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00215,"11.0-11.2":0.0542,"11.3-11.4":0.00129,"12.0-12.1":0,"12.2-12.5":0.01678,"13.0-13.1":0,"13.2":0.00645,"13.3":0.00086,"13.4-13.7":0.00215,"14.0-14.4":0.00387,"14.5-14.8":0.00387,"15.0-15.1":0.00559,"15.2-15.3":0.00344,"15.4":0.0043,"15.5":0.00473,"15.6-15.8":0.07614,"16.0":0.00774,"16.1":0.01506,"16.2":0.0086,"16.3":0.01549,"16.4":0.00344,"16.5":0.00645,"16.6-16.7":0.10583,"17.0":0.00473,"17.1":0.00774,"17.2":0.00688,"17.3":0.00946,"17.4":0.01549,"17.5":0.02925,"17.6-17.7":0.07528,"18.0":0.01635,"18.1":0.03355,"18.2":0.01764,"18.3":0.05635,"18.4":0.0271,"18.5-18.7":0.8621,"26.0":0.05377,"26.1":0.08174,"26.2":0.48095,"26.3":2.08943,"26.4":0.07829,"26.5":0},P:{"4":0.03211,"22":0.0107,"23":0.0107,"24":0.0107,"25":0.0107,"26":0.03211,"27":0.0214,"28":0.03211,"29":0.48159,_:"20 21 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 18.0 19.0","7.2-7.4":0.12842,"17.0":0.0107},I:{"0":0.11657,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00006},K:{"0":1.85686,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{"2.5":0.00507,_:"3.0-3.1"},R:{_:"0"},M:{"0":0.08624},Q:{"14.9":0.00507},O:{"0":0.24858},H:{all:0.01},L:{"0":54.29895}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/GB.js b/server/api/node_modules/caniuse-lite/data/regions/GB.js new file mode 100644 index 0000000..b48ad76 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/GB.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.00462,"52":0.00462,"59":0.00462,"78":0.00923,"115":0.07849,"128":0.00462,"134":0.00923,"135":0.00462,"136":0.00462,"140":0.03232,"142":0.00462,"143":0.00462,"144":0.00462,"145":0.00462,"146":0.01385,"147":0.10619,"148":1.02497,"149":0.20777,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 129 130 131 132 133 137 138 139 141 150 151 152 3.5 3.6"},D:{"39":0.06926,"40":0.06926,"41":0.06926,"42":0.06926,"43":0.06926,"44":0.06926,"45":0.06926,"46":0.06926,"47":0.06926,"48":0.06926,"49":0.07849,"50":0.06926,"51":0.06926,"52":0.06926,"53":0.06926,"54":0.06926,"55":0.06926,"56":0.06926,"57":0.06926,"58":0.06926,"59":0.06926,"60":0.06926,"66":0.00462,"76":0.00462,"81":0.00462,"87":0.00923,"91":0.00462,"92":0.00462,"93":0.00923,"102":0.00462,"103":0.06926,"104":0.00923,"105":0.00923,"106":0.00923,"107":0.00923,"108":0.00923,"109":0.22162,"110":0.00923,"111":0.00923,"112":0.00923,"114":0.01385,"116":0.06926,"117":0.00923,"119":0.00923,"120":0.02309,"121":0.00462,"122":0.04617,"123":0.00923,"124":0.02309,"125":0.00923,"126":0.10157,"127":0.00923,"128":0.0554,"129":0.00462,"130":0.01385,"131":0.04617,"132":0.02309,"133":0.0277,"134":0.03232,"135":0.0277,"136":0.03232,"137":0.04617,"138":0.1893,"139":0.22162,"140":0.05079,"141":0.06464,"142":0.19391,"143":0.39245,"144":0.8957,"145":9.49717,"146":6.85163,"147":0.01847,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 61 62 63 64 65 67 68 69 70 71 72 73 74 75 77 78 79 80 83 84 85 86 88 89 90 94 95 96 97 98 99 100 101 113 115 118 148 149 150"},F:{"46":0.00462,"95":0.01847,"96":0.02309,"116":0.00462,"125":0.00462,"126":0.00923,"127":0.41553,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 117 118 119 120 121 122 123 124 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"109":0.03694,"114":0.00462,"120":0.00462,"121":0.00462,"131":0.00923,"133":0.01385,"134":0.00462,"135":0.00462,"136":0.00462,"137":0.00462,"138":0.00923,"139":0.00462,"140":0.00923,"141":0.00923,"142":0.02309,"143":0.16621,"144":0.17545,"145":5.38342,"146":5.28647,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 122 123 124 125 126 127 128 129 130 132"},E:{"13":0.00462,"14":0.00923,"15":0.00462,_:"4 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 26.5 TP","10.1":0.00462,"11.1":0.00462,"12.1":0.00462,"13.1":0.03232,"14.1":0.03694,"15.1":0.00462,"15.2-15.3":0.00462,"15.4":0.00462,"15.5":0.00923,"15.6":0.2724,"16.0":0.00923,"16.1":0.01847,"16.2":0.01847,"16.3":0.04155,"16.4":0.01385,"16.5":0.01385,"16.6":0.37398,"17.0":0.01385,"17.1":0.36013,"17.2":0.01385,"17.3":0.01847,"17.4":0.03232,"17.5":0.05079,"17.6":0.26317,"18.0":0.01847,"18.1":0.05079,"18.2":0.02309,"18.3":0.10619,"18.4":0.03694,"18.5-18.7":0.12466,"26.0":0.04155,"26.1":0.0554,"26.2":0.54942,"26.3":2.85331,"26.4":0.10157},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00236,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00472,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.0118,"11.0-11.2":0.29748,"11.3-11.4":0.00708,"12.0-12.1":0,"12.2-12.5":0.09208,"13.0-13.1":0,"13.2":0.03541,"13.3":0.00472,"13.4-13.7":0.0118,"14.0-14.4":0.02125,"14.5-14.8":0.02125,"15.0-15.1":0.03069,"15.2-15.3":0.01889,"15.4":0.02361,"15.5":0.02597,"15.6-15.8":0.41789,"16.0":0.0425,"16.1":0.08263,"16.2":0.04722,"16.3":0.085,"16.4":0.01889,"16.5":0.03541,"16.6-16.7":0.5808,"17.0":0.02597,"17.1":0.0425,"17.2":0.03778,"17.3":0.05194,"17.4":0.085,"17.5":0.16055,"17.6-17.7":0.41317,"18.0":0.08972,"18.1":0.18416,"18.2":0.0968,"18.3":0.30929,"18.4":0.14874,"18.5-18.7":4.73141,"26.0":0.29512,"26.1":0.44859,"26.2":2.63958,"26.3":11.4673,"26.4":0.4297,"26.5":0},P:{"20":0.011,"21":0.02201,"22":0.011,"23":0.02201,"24":0.02201,"25":0.011,"26":0.06603,"27":0.03301,"28":0.11004,"29":3.91753,_:"4 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.02151,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.13458,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.36066},Q:{_:"14.9"},O:{"0":0.03768},H:{all:0},L:{"0":29.45878}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/GD.js b/server/api/node_modules/caniuse-lite/data/regions/GD.js new file mode 100644 index 0000000..10f5a01 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/GD.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.03821,"115":0.01092,"132":0.00546,"134":0.00546,"140":0.01637,"143":0.00546,"145":0.00546,"146":0.00546,"147":0.01092,"148":1.24442,"149":0.93332,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 133 135 136 137 138 139 141 142 144 150 151 152 3.5 3.6"},D:{"66":0.03821,"69":0.00546,"73":0.00546,"76":0.02183,"83":0.01637,"93":0.01092,"101":0.00546,"103":0.03275,"105":0.00546,"109":0.03275,"114":0.00546,"116":0.11462,"121":0.01637,"122":0.03275,"123":0.08187,"124":0.00546,"125":0.00546,"126":0.04366,"128":0.02729,"129":0.02183,"130":0.03275,"131":0.1037,"133":0.39843,"134":0.00546,"135":0.00546,"137":0.01637,"138":0.15282,"139":1.6374,"140":0.00546,"142":0.04912,"143":0.29473,"144":0.99881,"145":19.16304,"146":8.42715,"147":0.03821,"148":0.02183,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 67 68 70 71 72 74 75 77 78 79 80 81 84 85 86 87 88 89 90 91 92 94 95 96 97 98 99 100 102 104 106 107 108 110 111 112 113 115 117 118 119 120 127 132 136 141 149 150"},F:{"85":0.01092,"124":0.00546,"126":0.01637,"127":0.21286,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.00546,"18":0.00546,"92":0.00546,"109":0.00546,"114":0.00546,"122":0.00546,"124":0.00546,"135":0.00546,"136":0.00546,"139":0.00546,"140":0.00546,"141":0.04366,"143":0.16374,"144":0.18011,"145":4.06075,"146":3.68415,_:"12 13 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 123 125 126 127 128 129 130 131 132 133 134 137 138 142"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 12.1 15.1 15.2-15.3 16.0 16.2 16.3 16.5 17.2 17.3 18.0 26.5 TP","10.1":0.00546,"11.1":0.00546,"13.1":0.00546,"14.1":0.31111,"15.4":0.00546,"15.5":0.00546,"15.6":0.07641,"16.1":0.00546,"16.4":0.00546,"16.6":0.08733,"17.0":0.41481,"17.1":0.09279,"17.4":0.00546,"17.5":0.00546,"17.6":0.07095,"18.1":0.01092,"18.2":0.00546,"18.3":0.02183,"18.4":0.01637,"18.5-18.7":0.03275,"26.0":0.10916,"26.1":0.01637,"26.2":0.2729,"26.3":2.1177,"26.4":0.03275},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00164,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00329,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00822,"11.0-11.2":0.20706,"11.3-11.4":0.00493,"12.0-12.1":0,"12.2-12.5":0.06409,"13.0-13.1":0,"13.2":0.02465,"13.3":0.00329,"13.4-13.7":0.00822,"14.0-14.4":0.01479,"14.5-14.8":0.01479,"15.0-15.1":0.02136,"15.2-15.3":0.01315,"15.4":0.01643,"15.5":0.01808,"15.6-15.8":0.29086,"16.0":0.02958,"16.1":0.05752,"16.2":0.03287,"16.3":0.05916,"16.4":0.01315,"16.5":0.02465,"16.6-16.7":0.40425,"17.0":0.01808,"17.1":0.02958,"17.2":0.02629,"17.3":0.03615,"17.4":0.05916,"17.5":0.11174,"17.6-17.7":0.28758,"18.0":0.06245,"18.1":0.12818,"18.2":0.06738,"18.3":0.21527,"18.4":0.10353,"18.5-18.7":3.29316,"26.0":0.20541,"26.1":0.31223,"26.2":1.8372,"26.3":7.98149,"26.4":0.29908,"26.5":0},P:{"4":0.01115,"25":0.02229,"27":0.02229,"28":0.06687,"29":2.74176,_:"20 21 22 23 24 26 5.0-5.4 6.2-6.4 7.2-7.4 8.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0","9.2":0.02229,"19.0":0.01115},I:{"0":0.01815,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.28615,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.25435},Q:{_:"14.9"},O:{"0":0.09084},H:{all:0},L:{"0":31.89976}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/GE.js b/server/api/node_modules/caniuse-lite/data/regions/GE.js new file mode 100644 index 0000000..8a48739 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/GE.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.00424,"68":0.0212,"78":0.02968,"102":0.00848,"113":0.05936,"115":0.05088,"121":0.00424,"124":0.00424,"125":0.00424,"136":0.01272,"140":0.0212,"143":0.00424,"145":0.00424,"146":0.00848,"147":0.03816,"148":0.41128,"149":0.08056,"150":0.00424,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 103 104 105 106 107 108 109 110 111 112 114 116 117 118 119 120 122 123 126 127 128 129 130 131 132 133 134 135 137 138 139 141 142 144 151 152 3.5 3.6"},D:{"53":0.00424,"56":0.02968,"58":0.00424,"60":0.00424,"66":0.02544,"67":0.00424,"68":0.02544,"69":0.0212,"70":0.01272,"71":0.00424,"72":0.01272,"73":0.0636,"74":0.00424,"75":0.00424,"76":0.01272,"78":0.02544,"79":0.09328,"81":0.00424,"83":0.25016,"84":0.00424,"85":0.00424,"86":0.00848,"87":0.21624,"89":0.00424,"91":0.0636,"92":0.01272,"93":0.00424,"94":0.00424,"95":0.0212,"97":0.00424,"98":0.04664,"101":0.17808,"102":0.00424,"103":0.09752,"104":0.07208,"105":0.07208,"106":0.08056,"107":0.06784,"108":0.07208,"109":2.04792,"110":0.11872,"111":0.08904,"112":0.15264,"113":0.07632,"114":0.0212,"116":0.16112,"117":0.0636,"118":0.00848,"119":0.03392,"120":0.19928,"121":0.01272,"122":0.02544,"123":0.0212,"124":0.08904,"125":0.01272,"126":0.0424,"127":0.22048,"128":0.0212,"129":0.01272,"130":0.0212,"131":0.18232,"132":0.07208,"133":0.18656,"134":0.10176,"135":0.0212,"136":0.0212,"137":0.0636,"138":0.22048,"139":0.11024,"140":0.02544,"141":0.03816,"142":0.09328,"143":0.1696,"144":0.55544,"145":10.23536,"146":7.93728,"147":0.01696,"148":0.00424,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 54 55 57 59 61 62 63 64 65 77 80 88 90 96 99 100 115 149 150"},F:{"28":0.00424,"36":0.01696,"40":0.00424,"46":0.41976,"79":0.00848,"83":0.00424,"85":0.00848,"86":0.00424,"95":0.2544,"96":0.0212,"122":0.00424,"123":0.01696,"125":0.00424,"126":0.02968,"127":0.9328,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 84 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 124 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.01696,"16":0.00424,"18":0.00848,"92":0.00848,"109":0.0212,"118":0.00424,"120":0.00424,"127":0.00424,"129":0.00424,"131":0.00424,"132":0.00424,"133":0.00848,"134":0.00848,"135":0.00424,"136":0.00424,"137":0.00848,"138":0.00424,"139":0.00848,"140":0.01696,"141":0.0636,"142":0.01696,"143":0.10176,"144":0.07208,"145":1.38648,"146":1.19992,_:"12 13 15 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 119 121 122 123 124 125 126 128 130"},E:{"14":0.00848,_:"4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 15.2-15.3 16.0 16.2 17.0 26.5 TP","12.1":0.00848,"13.1":0.01272,"14.1":0.03392,"15.1":0.00424,"15.4":0.00424,"15.5":0.02968,"15.6":0.02968,"16.1":0.00424,"16.3":0.00424,"16.4":0.00424,"16.5":0.00424,"16.6":0.0636,"17.1":0.07208,"17.2":0.00424,"17.3":0.00848,"17.4":0.00848,"17.5":0.01696,"17.6":0.0636,"18.0":0.0212,"18.1":0.0212,"18.2":0.00848,"18.3":0.0212,"18.4":0.00848,"18.5-18.7":0.05936,"26.0":0.0212,"26.1":0.02544,"26.2":0.11448,"26.3":0.424,"26.4":0.0212},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00127,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00254,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00634,"11.0-11.2":0.15988,"11.3-11.4":0.00381,"12.0-12.1":0,"12.2-12.5":0.04949,"13.0-13.1":0,"13.2":0.01903,"13.3":0.00254,"13.4-13.7":0.00634,"14.0-14.4":0.01142,"14.5-14.8":0.01142,"15.0-15.1":0.0165,"15.2-15.3":0.01015,"15.4":0.01269,"15.5":0.01396,"15.6-15.8":0.2246,"16.0":0.02284,"16.1":0.04441,"16.2":0.02538,"16.3":0.04568,"16.4":0.01015,"16.5":0.01903,"16.6-16.7":0.31216,"17.0":0.01396,"17.1":0.02284,"17.2":0.0203,"17.3":0.02792,"17.4":0.04568,"17.5":0.08629,"17.6-17.7":0.22206,"18.0":0.04822,"18.1":0.09898,"18.2":0.05203,"18.3":0.16623,"18.4":0.07994,"18.5-18.7":2.54293,"26.0":0.15862,"26.1":0.2411,"26.2":1.41866,"26.3":6.16318,"26.4":0.23094,"26.5":0},P:{"4":0.50403,"21":0.0105,"22":0.0105,"23":0.021,"24":0.021,"25":0.0315,"26":0.021,"27":0.042,"28":0.17851,"29":1.30207,_:"20 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 19.0","5.0-5.4":0.0105,"6.2-6.4":0.0315,"7.2-7.4":0.13651,"8.2":0.042,"18.0":0.0105},I:{"0":0.04028,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.18432,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.1152},Q:{_:"14.9"},O:{"0":0.0288},H:{all:0},L:{"0":49.94632}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/GF.js b/server/api/node_modules/caniuse-lite/data/regions/GF.js new file mode 100644 index 0000000..36c4f45 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/GF.js @@ -0,0 +1 @@ +module.exports={C:{"112":0.00413,"115":0.61522,"119":0.01652,"125":0.00413,"128":0.03303,"130":0.00826,"132":0.00826,"136":0.00413,"140":0.14039,"141":0.00413,"142":0.00826,"143":0.00413,"145":0.00413,"146":0.02065,"147":0.06194,"148":2.24618,"149":0.41703,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 113 114 116 117 118 120 121 122 123 124 126 127 129 131 133 134 135 137 138 139 144 150 151 152 3.5 3.6"},D:{"27":0.00413,"69":0.00413,"72":0.00826,"80":0.00413,"98":0.00826,"101":0.02065,"103":0.00826,"104":0.01652,"105":0.00413,"106":0.00413,"107":0.00413,"108":0.00413,"109":0.33445,"110":0.00413,"111":0.00826,"112":0.00413,"114":0.00413,"116":0.00826,"119":0.00826,"120":0.00413,"122":0.00826,"123":0.00413,"124":0.00826,"125":0.03303,"126":0.00413,"127":0.01652,"128":0.02477,"129":0.00826,"130":0.02477,"131":0.0289,"133":0.00826,"134":0.00826,"135":0.00826,"136":0.00826,"137":0.01652,"138":0.0289,"139":0.04955,"140":0.55329,"141":0.01652,"142":0.03303,"143":0.45419,"144":0.68129,"145":7.41981,"146":5.70215,"147":0.00413,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 70 71 73 74 75 76 77 78 79 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 99 100 102 113 115 117 118 121 132 148 149 150"},F:{"46":0.02065,"95":0.01239,"96":0.05368,"109":0.00826,"126":0.03716,"127":1.16851,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"16":0.00413,"18":0.01652,"92":0.00413,"100":0.00413,"110":0.00413,"113":0.00413,"119":0.00413,"124":0.00826,"128":0.0289,"129":0.00413,"132":0.00826,"134":0.03303,"135":0.00413,"136":0.00413,"137":0.00413,"140":0.00826,"141":0.04129,"142":0.01652,"143":0.15277,"144":0.3138,"145":4.50887,"146":2.92746,_:"12 13 14 15 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 109 111 112 114 115 116 117 118 120 121 122 123 125 126 127 130 131 133 138 139"},E:{"15":0.00413,_:"4 5 6 7 8 9 10 11 12 13 14 3.1 3.2 6.1 7.1 9.1 10.1 12.1 15.2-15.3 15.5 16.1 16.2 16.3 16.4 17.2 18.2 26.5 TP","5.1":0.00413,"11.1":0.00413,"13.1":0.00826,"14.1":0.0289,"15.1":0.04129,"15.4":0.00413,"15.6":0.01652,"16.0":0.01239,"16.5":0.00826,"16.6":0.07845,"17.0":0.00826,"17.1":0.05781,"17.3":0.00413,"17.4":0.00826,"17.5":0.07019,"17.6":0.11148,"18.0":0.00413,"18.1":0.00826,"18.3":0.01652,"18.4":0.02477,"18.5-18.7":0.07845,"26.0":0.08671,"26.1":0.01239,"26.2":0.22297,"26.3":2.01082,"26.4":0.03303},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00148,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00297,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00742,"11.0-11.2":0.18693,"11.3-11.4":0.00445,"12.0-12.1":0,"12.2-12.5":0.05786,"13.0-13.1":0,"13.2":0.02225,"13.3":0.00297,"13.4-13.7":0.00742,"14.0-14.4":0.01335,"14.5-14.8":0.01335,"15.0-15.1":0.01929,"15.2-15.3":0.01187,"15.4":0.01484,"15.5":0.01632,"15.6-15.8":0.2626,"16.0":0.0267,"16.1":0.05193,"16.2":0.02967,"16.3":0.05341,"16.4":0.01187,"16.5":0.02225,"16.6-16.7":0.36497,"17.0":0.01632,"17.1":0.0267,"17.2":0.02374,"17.3":0.03264,"17.4":0.05341,"17.5":0.10088,"17.6-17.7":0.25963,"18.0":0.05638,"18.1":0.11572,"18.2":0.06083,"18.3":0.19435,"18.4":0.09347,"18.5-18.7":2.97314,"26.0":0.18545,"26.1":0.28188,"26.2":1.65867,"26.3":7.20585,"26.4":0.27002,"26.5":0},P:{"4":0.03127,"22":0.0417,"23":0.02085,"24":0.01042,"25":0.0417,"26":0.02085,"27":0.05212,"28":0.08339,"29":5.18063,_:"20 21 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.0417},I:{"0":0.05279,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00003},K:{"0":0.12916,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.68104},Q:{_:"14.9"},O:{"0":0.02348},H:{all:0},L:{"0":44.77846}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/GG.js b/server/api/node_modules/caniuse-lite/data/regions/GG.js new file mode 100644 index 0000000..919ee43 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/GG.js @@ -0,0 +1 @@ +module.exports={C:{"115":0.0686,"140":0.04842,"144":0.00404,"147":0.06456,"148":0.7142,"149":0.03228,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 141 142 143 145 146 150 151 152 3.5 3.6"},D:{"49":0.00404,"93":0.00404,"103":0.0807,"109":0.72227,"116":0.09281,"122":0.00807,"124":0.00404,"126":0.00404,"128":0.02018,"130":0.00404,"131":0.00807,"132":0.00807,"133":0.00404,"134":0.01211,"135":0.00404,"138":0.08474,"139":0.03632,"140":0.02018,"141":0.01211,"142":0.08877,"143":0.13719,"144":0.92805,"145":8.90928,"146":5.17691,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 91 92 94 95 96 97 98 99 100 101 102 104 105 106 107 108 110 111 112 113 114 115 117 118 119 120 121 123 125 127 129 136 137 147 148 149 150"},F:{"127":0.80297,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"109":0.00404,"142":0.02018,"143":0.01614,"144":0.10088,"145":4.24079,"146":3.42572,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141"},E:{"13":0.00807,_:"4 5 6 7 8 9 10 11 12 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 26.5 TP","13.1":0.00807,"14.1":0.02825,"15.4":0.10088,"15.5":0.0686,"15.6":0.27842,"16.0":0.01614,"16.1":0.00807,"16.2":0.04035,"16.3":0.09684,"16.4":0.06456,"16.5":0.00807,"16.6":0.91191,"17.0":0.00404,"17.1":0.20982,"17.2":0.00404,"17.3":0.01211,"17.4":0.00807,"17.5":0.14526,"17.6":0.6456,"18.0":0.00807,"18.1":0.07667,"18.2":0.00404,"18.3":0.29456,"18.4":0.00404,"18.5-18.7":0.10491,"26.0":0.02018,"26.1":0.05649,"26.2":1.46471,"26.3":5.51988,"26.4":0.05649},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00321,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00641,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.01603,"11.0-11.2":0.4039,"11.3-11.4":0.00962,"12.0-12.1":0,"12.2-12.5":0.12502,"13.0-13.1":0,"13.2":0.04808,"13.3":0.00641,"13.4-13.7":0.01603,"14.0-14.4":0.02885,"14.5-14.8":0.02885,"15.0-15.1":0.04167,"15.2-15.3":0.02564,"15.4":0.03206,"15.5":0.03526,"15.6-15.8":0.56739,"16.0":0.0577,"16.1":0.1122,"16.2":0.06411,"16.3":0.1154,"16.4":0.02564,"16.5":0.04808,"16.6-16.7":0.78858,"17.0":0.03526,"17.1":0.0577,"17.2":0.05129,"17.3":0.07052,"17.4":0.1154,"17.5":0.21798,"17.6-17.7":0.56098,"18.0":0.12181,"18.1":0.25004,"18.2":0.13143,"18.3":0.41993,"18.4":0.20195,"18.5-18.7":6.424,"26.0":0.4007,"26.1":0.60906,"26.2":3.58385,"26.3":15.56956,"26.4":0.58342,"26.5":0},P:{"26":0.01116,"27":0.01116,"28":0.03349,"29":4.97865,_:"4 20 21 22 23 24 25 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.10727,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00005},K:{"0":0.02386,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.02421,_:"6 7 8 9 10 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":1.37195},Q:{_:"14.9"},O:{"0":0.00597},H:{all:0},L:{"0":22.37676}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/GH.js b/server/api/node_modules/caniuse-lite/data/regions/GH.js new file mode 100644 index 0000000..6912335 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/GH.js @@ -0,0 +1 @@ +module.exports={C:{"72":0.00805,"84":0.00403,"112":0.00403,"115":0.08455,"127":0.02818,"128":0.00805,"134":0.00403,"135":0.00805,"136":0.00805,"137":0.00805,"139":0.00403,"140":0.03623,"141":0.00403,"143":0.00403,"144":0.00805,"145":0.00403,"146":0.0161,"147":0.11273,"148":1.08299,"149":0.18117,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 78 79 80 81 82 83 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 113 114 116 117 118 119 120 121 122 123 124 125 126 129 130 131 132 133 138 142 150 151 152 3.5 3.6"},D:{"49":0.00403,"50":0.00403,"51":0.00403,"55":0.00403,"58":0.01208,"61":0.00403,"64":0.01208,"65":0.00805,"68":0.00805,"69":0.00403,"70":0.02416,"72":0.00403,"73":0.00403,"74":0.00805,"75":0.0161,"76":0.0161,"77":0.00403,"79":0.03221,"80":0.01208,"81":0.0161,"83":0.00805,"86":0.0161,"87":0.00805,"89":0.00403,"90":0.00403,"93":0.02416,"94":0.00403,"95":0.00805,"97":0.00805,"98":0.01208,"101":0.00403,"103":0.08455,"104":0.0161,"105":0.55156,"106":0.01208,"107":0.01208,"108":0.01208,"109":0.60793,"110":0.0161,"111":0.03221,"112":0.01208,"113":0.02013,"114":0.26572,"116":0.05636,"117":0.01208,"118":0.00805,"119":0.02818,"120":0.02818,"121":0.00403,"122":0.02818,"123":0.00403,"124":0.02013,"125":0.00403,"126":0.05234,"127":0.01208,"128":0.05234,"129":0.00805,"130":0.02013,"131":0.06039,"132":0.04026,"133":0.04429,"134":0.06039,"135":0.02416,"136":0.04429,"137":0.03623,"138":0.18117,"139":0.12883,"140":0.03623,"141":0.03221,"142":0.08857,"143":0.18922,"144":0.49117,"145":7.35148,"146":5.37874,"147":0.02013,"148":0.00805,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 52 53 54 56 57 59 60 62 63 66 67 71 78 84 85 88 91 92 96 99 100 102 115 149 150"},F:{"36":0.00403,"42":0.00403,"79":0.00403,"91":0.00403,"92":0.00403,"93":0.00805,"94":0.02013,"95":0.13688,"96":0.14091,"113":0.00403,"114":0.00403,"120":0.00403,"122":0.00403,"124":0.00403,"125":0.00805,"126":0.11675,"127":0.53948,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 85 86 87 88 89 90 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 115 116 117 118 119 121 123 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.00805,"15":0.00403,"16":0.00403,"17":0.00403,"18":0.06442,"84":0.00805,"89":0.0161,"90":0.02818,"92":0.08052,"100":0.03221,"109":0.00805,"111":0.00403,"112":0.00403,"114":0.00805,"122":0.04429,"129":0.00403,"131":0.00403,"132":0.00403,"133":0.00403,"134":0.00403,"135":0.00403,"136":0.00805,"137":0.00403,"138":0.0161,"139":0.00805,"140":0.03221,"141":0.00805,"142":0.02416,"143":0.08052,"144":0.15299,"145":1.67079,"146":1.393,_:"12 13 79 80 81 83 85 86 87 88 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 113 115 116 117 118 119 120 121 123 124 125 126 127 128 130"},E:{"11":0.00403,"14":0.00403,_:"4 5 6 7 8 9 10 12 13 15 3.1 3.2 6.1 7.1 9.1 15.4 15.5 16.0 16.2 16.3 16.4 17.0 17.3 26.5 TP","5.1":0.00403,"10.1":0.00403,"11.1":0.01208,"12.1":0.00403,"13.1":0.02818,"14.1":0.0161,"15.1":0.00403,"15.2-15.3":0.00403,"15.6":0.08857,"16.1":0.00403,"16.5":0.00403,"16.6":0.04026,"17.1":0.00805,"17.2":0.00403,"17.4":0.00403,"17.5":0.00403,"17.6":0.08857,"18.0":0.00403,"18.1":0.03221,"18.2":0.00805,"18.3":0.01208,"18.4":0.01208,"18.5-18.7":0.02818,"26.0":0.02416,"26.1":0.02013,"26.2":0.0926,"26.3":0.34624,"26.4":0.02818},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00132,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00265,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00662,"11.0-11.2":0.1668,"11.3-11.4":0.00397,"12.0-12.1":0,"12.2-12.5":0.05163,"13.0-13.1":0,"13.2":0.01986,"13.3":0.00265,"13.4-13.7":0.00662,"14.0-14.4":0.01191,"14.5-14.8":0.01191,"15.0-15.1":0.01721,"15.2-15.3":0.01059,"15.4":0.01324,"15.5":0.01456,"15.6-15.8":0.23432,"16.0":0.02383,"16.1":0.04633,"16.2":0.02648,"16.3":0.04766,"16.4":0.01059,"16.5":0.01986,"16.6-16.7":0.32566,"17.0":0.01456,"17.1":0.02383,"17.2":0.02118,"17.3":0.02912,"17.4":0.04766,"17.5":0.09002,"17.6-17.7":0.23167,"18.0":0.05031,"18.1":0.10326,"18.2":0.05428,"18.3":0.17342,"18.4":0.0834,"18.5-18.7":2.65297,"26.0":0.16548,"26.1":0.25153,"26.2":1.48005,"26.3":6.42988,"26.4":0.24094,"26.5":0},P:{"21":0.01032,"22":0.03097,"23":0.01032,"24":0.08259,"25":0.11356,"26":0.03097,"27":0.1755,"28":0.64004,"29":1.20782,_:"4 20 6.2-6.4 8.2 10.1 12.0 14.0 15.0 16.0 18.0","5.0-5.4":0.02065,"7.2-7.4":0.05162,"9.2":0.03097,"11.1-11.2":0.03097,"13.0":0.01032,"17.0":0.01032,"19.0":0.01032},I:{"0":0.01194,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":8.20828,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{"2.5":0.01195,_:"3.0-3.1"},R:{_:"0"},M:{"0":0.46597},Q:{"14.9":0.04779},O:{"0":0.55558},H:{all:0},L:{"0":49.35164}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/GI.js b/server/api/node_modules/caniuse-lite/data/regions/GI.js new file mode 100644 index 0000000..3af1b40 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/GI.js @@ -0,0 +1 @@ +module.exports={C:{"115":0.52359,"140":0.01415,"143":0.20755,"147":0.20283,"148":1.06604,"149":0.19811,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 141 142 144 145 146 150 151 152 3.5 3.6"},D:{"103":0.00472,"106":0.00472,"109":0.08962,"116":0.12736,"118":0.00472,"120":0.02359,"122":0.01887,"125":0.00472,"126":0.01887,"128":0.03302,"129":0.00472,"130":0.01887,"131":0.0283,"134":0.00943,"136":0.00943,"138":0.0283,"139":0.22642,"141":0.0283,"142":0.07547,"143":0.04717,"144":0.68397,"145":12.37741,"146":7.80664,"147":0.11793,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 104 105 107 108 110 111 112 113 114 115 117 119 121 123 124 127 132 133 135 137 140 148 149 150"},F:{"95":0.00472,"126":0.00472,"127":0.18868,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.00472,"109":0.00472,"114":0.00472,"122":0.03774,"129":0.00472,"135":0.00472,"138":0.00943,"142":0.05189,"143":0.17453,"144":0.03774,"145":3.72171,"146":3.81134,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 123 124 125 126 127 128 130 131 132 133 134 136 137 139 140 141"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 16.2 16.4 17.0 26.5 TP","13.1":0.0283,"14.1":0.00943,"15.5":0.00943,"15.6":0.17925,"16.0":0.00472,"16.1":0.01887,"16.3":0.10377,"16.5":0.00943,"16.6":0.4717,"17.1":0.65095,"17.2":0.00472,"17.3":0.02359,"17.4":0.00943,"17.5":0.0283,"17.6":0.10849,"18.0":0.02359,"18.1":0.00472,"18.2":0.04717,"18.3":0.16038,"18.4":0.00472,"18.5-18.7":0.17453,"26.0":0.00943,"26.1":0.00472,"26.2":0.39151,"26.3":3.09435,"26.4":0.03302},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00269,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00537,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.01343,"11.0-11.2":0.33849,"11.3-11.4":0.00806,"12.0-12.1":0,"12.2-12.5":0.10477,"13.0-13.1":0,"13.2":0.0403,"13.3":0.00537,"13.4-13.7":0.01343,"14.0-14.4":0.02418,"14.5-14.8":0.02418,"15.0-15.1":0.03492,"15.2-15.3":0.02149,"15.4":0.02686,"15.5":0.02955,"15.6-15.8":0.47549,"16.0":0.04836,"16.1":0.09402,"16.2":0.05373,"16.3":0.09671,"16.4":0.02149,"16.5":0.0403,"16.6-16.7":0.66086,"17.0":0.02955,"17.1":0.04836,"17.2":0.04298,"17.3":0.0591,"17.4":0.09671,"17.5":0.18268,"17.6-17.7":0.47012,"18.0":0.10208,"18.1":0.20954,"18.2":0.11014,"18.3":0.35192,"18.4":0.16924,"18.5-18.7":5.38356,"26.0":0.3358,"26.1":0.51042,"26.2":3.0034,"26.3":13.04787,"26.4":0.48893,"26.5":0},P:{"4":0.01045,"25":0.02089,"26":0.06268,"28":0.01045,"29":2.66383,_:"20 21 22 23 24 27 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.03167,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.78188,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.09509},Q:{_:"14.9"},O:{_:"0"},H:{all:0},L:{"0":24.56088}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/GL.js b/server/api/node_modules/caniuse-lite/data/regions/GL.js new file mode 100644 index 0000000..a25ed8d --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/GL.js @@ -0,0 +1 @@ +module.exports={C:{"129":0.00501,"134":0.00501,"144":0.00501,"146":0.00501,"147":0.05513,"148":7.49294,"149":1.23295,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 130 131 132 133 135 136 137 138 139 140 141 142 143 145 150 151 152 3.5 3.6"},D:{"32":0.00501,"67":0.01504,"107":0.02005,"109":0.3759,"115":0.02005,"116":0.02005,"117":0.00501,"122":0.05012,"128":0.00501,"129":0.01002,"131":0.00501,"134":0.1654,"135":0.00501,"136":0.05513,"137":0.02005,"138":0.13532,"139":0.03508,"140":0.02005,"141":0.03007,"142":0.05513,"143":0.18544,"144":0.1654,"145":7.518,"146":7.62325,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 108 110 111 112 113 114 118 119 120 121 123 124 125 126 127 130 132 133 147 148 149 150"},F:{"80":0.00501,"90":0.00501,"95":0.08019,"96":0.00501,"123":0.00501,"126":0.00501,"127":0.59643,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 81 82 83 84 85 86 87 88 89 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.00501,"115":0.00501,"122":0.01002,"130":0.02506,"134":0.01002,"138":0.01002,"139":0.01002,"141":0.01002,"142":0.00501,"143":0.06516,"144":0.05012,"145":3.21269,"146":3.18262,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 123 124 125 126 127 128 129 131 132 133 135 136 137 140"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 14.1 15.2-15.3 15.5 16.0 16.1 16.2 16.4 17.0 17.3 18.1 26.5 TP","13.1":0.00501,"15.1":0.10024,"15.4":0.00501,"15.6":0.1253,"16.3":0.03508,"16.5":0.00501,"16.6":0.47113,"17.1":0.1654,"17.2":0.00501,"17.4":0.01002,"17.5":0.02005,"17.6":0.06014,"18.0":0.00501,"18.2":0.17041,"18.3":0.06014,"18.4":0.03508,"18.5-18.7":0.19046,"26.0":0.02005,"26.1":0.02506,"26.2":0.8771,"26.3":5.40795,"26.4":0.09022},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0026,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00521,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.01302,"11.0-11.2":0.32813,"11.3-11.4":0.00781,"12.0-12.1":0,"12.2-12.5":0.10157,"13.0-13.1":0,"13.2":0.03906,"13.3":0.00521,"13.4-13.7":0.01302,"14.0-14.4":0.02344,"14.5-14.8":0.02344,"15.0-15.1":0.03386,"15.2-15.3":0.02083,"15.4":0.02604,"15.5":0.02865,"15.6-15.8":0.46095,"16.0":0.04688,"16.1":0.09115,"16.2":0.05208,"16.3":0.09375,"16.4":0.02083,"16.5":0.03906,"16.6-16.7":0.64064,"17.0":0.02865,"17.1":0.04688,"17.2":0.04167,"17.3":0.05729,"17.4":0.09375,"17.5":0.17709,"17.6-17.7":0.45574,"18.0":0.09896,"18.1":0.20313,"18.2":0.10677,"18.3":0.34115,"18.4":0.16407,"18.5-18.7":5.21889,"26.0":0.32553,"26.1":0.4948,"26.2":2.91153,"26.3":12.64877,"26.4":0.47397,"26.5":0},P:{"4":0.02103,"23":0.03155,"28":0.10517,"29":3.33385,_:"20 21 22 24 25 26 27 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.01495,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.52873,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.5836},Q:{_:"14.9"},O:{_:"0"},H:{all:0},L:{"0":24.84842}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/GM.js b/server/api/node_modules/caniuse-lite/data/regions/GM.js new file mode 100644 index 0000000..dbaa76d --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/GM.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.00325,"54":0.00325,"60":0.0065,"65":0.02274,"71":0.0065,"72":0.03248,"78":0.00325,"115":0.58139,"123":0.00325,"125":0.00325,"127":0.00974,"135":0.00325,"136":0.00325,"138":0.00325,"140":0.04222,"141":0.00325,"143":0.00325,"145":0.94192,"147":0.0812,"148":1.10757,"149":0.25659,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 55 56 57 58 59 61 62 63 64 66 67 68 69 70 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 124 126 128 129 130 131 132 133 134 137 139 142 144 146 150 151 152 3.5 3.6"},D:{"49":0.00325,"53":0.01624,"55":0.01299,"58":0.00325,"59":0.01299,"60":0.01624,"64":0.00974,"65":0.00325,"66":0.00325,"68":0.07146,"69":0.04222,"70":0.04222,"71":0.03248,"72":0.10718,"73":0.02923,"74":0.0747,"75":0.03573,"76":0.04222,"77":0.04222,"78":0.04872,"79":0.08445,"80":0.09419,"81":0.07146,"83":0.06496,"84":0.03898,"85":0.08445,"86":0.12018,"87":0.06496,"88":0.08445,"89":0.05522,"90":0.09744,"91":0.02274,"92":0.02598,"93":0.0065,"95":0.00974,"98":0.00325,"102":0.00325,"103":0.05846,"104":0.00974,"105":0.00325,"106":0.0065,"108":0.02274,"109":0.11693,"110":0.00974,"111":0.01949,"114":0.00974,"116":0.14291,"119":0.00974,"120":0.00974,"121":0.00325,"122":0.0812,"123":0.11043,"124":0.01624,"126":0.00974,"127":0.0065,"128":0.00974,"129":0.00974,"130":0.01624,"131":0.01299,"132":0.00974,"133":0.03573,"134":0.00325,"135":0.03248,"136":0.01949,"137":0.05522,"138":0.27283,"139":0.10069,"140":0.0747,"141":0.0065,"142":0.06821,"143":0.16565,"144":0.33779,"145":4.37181,"146":3.45912,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 54 56 57 61 62 63 67 94 96 97 99 100 101 107 112 113 115 117 118 125 147 148 149 150"},F:{"46":0.00325,"47":0.00325,"49":0.0065,"50":0.00325,"52":0.0065,"53":0.00974,"54":0.02274,"55":0.02274,"56":0.00325,"60":0.00325,"62":0.00325,"63":0.00325,"65":0.00325,"66":0.00325,"67":0.0065,"68":0.0065,"71":0.01299,"72":0.0065,"73":0.01299,"74":0.0065,"75":0.02274,"76":0.03248,"77":0.01299,"93":0.00325,"94":0.00325,"95":0.16565,"96":0.03248,"100":0.0065,"117":0.00325,"126":0.06821,"127":0.47421,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 48 51 57 58 64 69 70 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 97 98 99 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 118 119 120 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.01299,"15":0.02274,"16":0.01299,"17":0.01624,"18":0.01949,"79":0.01299,"80":0.01299,"81":0.00325,"83":0.00974,"84":0.01299,"85":0.00974,"86":0.01299,"87":0.00325,"88":0.01299,"89":0.0065,"90":0.02274,"92":0.01949,"93":0.00325,"98":0.00325,"103":0.01299,"109":0.0747,"115":0.00325,"118":0.00325,"131":0.00325,"133":0.00325,"137":0.00974,"138":0.00325,"139":0.12667,"140":0.01624,"141":0.00974,"142":0.01949,"143":0.05197,"144":0.11368,"145":1.29595,"146":1.23099,_:"12 13 91 94 95 96 97 99 100 101 102 104 105 106 107 108 110 111 112 113 114 116 117 119 120 121 122 123 124 125 126 127 128 129 130 132 134 135 136"},E:{"13":0.00325,_:"4 5 6 7 8 9 10 11 12 14 15 3.1 3.2 6.1 7.1 12.1 15.1 15.2-15.3 15.4 16.0 16.1 16.2 16.4 17.0 17.2 17.3 18.2 26.1 26.5 TP","5.1":0.00325,"9.1":0.36702,"10.1":0.02598,"11.1":0.0065,"13.1":0.12992,"14.1":0.0065,"15.5":0.00325,"15.6":0.0747,"16.3":0.00325,"16.5":0.01949,"16.6":0.03248,"17.1":0.11693,"17.4":0.00325,"17.5":0.00325,"17.6":0.03248,"18.0":0.00325,"18.1":0.00325,"18.3":0.0065,"18.4":0.00325,"18.5-18.7":0.01624,"26.0":0.00974,"26.2":0.8997,"26.3":0.30856,"26.4":0.0065},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00098,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00196,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00489,"11.0-11.2":0.12319,"11.3-11.4":0.00293,"12.0-12.1":0,"12.2-12.5":0.03813,"13.0-13.1":0,"13.2":0.01467,"13.3":0.00196,"13.4-13.7":0.00489,"14.0-14.4":0.0088,"14.5-14.8":0.0088,"15.0-15.1":0.01271,"15.2-15.3":0.00782,"15.4":0.00978,"15.5":0.01075,"15.6-15.8":0.17305,"16.0":0.0176,"16.1":0.03422,"16.2":0.01955,"16.3":0.0352,"16.4":0.00782,"16.5":0.01467,"16.6-16.7":0.24051,"17.0":0.01075,"17.1":0.0176,"17.2":0.01564,"17.3":0.02151,"17.4":0.0352,"17.5":0.06648,"17.6-17.7":0.1711,"18.0":0.03715,"18.1":0.07626,"18.2":0.04009,"18.3":0.12808,"18.4":0.06159,"18.5-18.7":1.95929,"26.0":0.12221,"26.1":0.18576,"26.2":1.09306,"26.3":4.74864,"26.4":0.17794,"26.5":0},P:{"4":0.0311,"21":0.01037,"24":0.05183,"25":0.02073,"26":0.01037,"27":0.0622,"28":0.13476,"29":1.31652,_:"20 22 23 8.2 10.1 12.0 13.0 14.0 15.0 16.0 18.0 19.0","5.0-5.4":0.0311,"6.2-6.4":0.01037,"7.2-7.4":0.04147,"9.2":0.02073,"11.1-11.2":0.01037,"17.0":0.01037},I:{"0":0.06746,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00003},K:{"0":2.03235,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.19581},Q:{_:"14.9"},O:{"0":1.0128},H:{all:0},L:{"0":62.87264}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/GN.js b/server/api/node_modules/caniuse-lite/data/regions/GN.js new file mode 100644 index 0000000..e66a7cb --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/GN.js @@ -0,0 +1 @@ +module.exports={C:{"57":0.0029,"58":0.0029,"60":0.0029,"61":0.0029,"72":0.0058,"92":0.0029,"97":0.0029,"100":0.0029,"107":0.0029,"115":0.00869,"120":0.0058,"127":0.01159,"135":0.0029,"140":0.00869,"142":0.0058,"144":0.00869,"145":0.0058,"146":0.0058,"147":0.07825,"148":0.40282,"149":0.05506,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 59 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 93 94 95 96 98 99 101 102 103 104 105 106 108 109 110 111 112 113 114 116 117 118 119 121 122 123 124 125 126 128 129 130 131 132 133 134 136 137 138 139 141 143 150 151 152 3.5 3.6"},D:{"50":0.0029,"53":0.0029,"55":0.0029,"56":0.0029,"59":0.00869,"60":0.0029,"64":0.0058,"68":0.0058,"69":0.02318,"70":0.0029,"71":0.0029,"72":0.0029,"74":0.0029,"77":0.0058,"78":0.0058,"80":0.0029,"81":0.0058,"83":0.0029,"84":0.0029,"86":0.02029,"87":0.02318,"89":0.0029,"93":0.0029,"98":0.0029,"101":0.01449,"102":0.0029,"103":0.03478,"104":0.01449,"108":0.0029,"109":0.06955,"111":0.0029,"113":0.0058,"114":0.01449,"115":0.0029,"116":0.02608,"118":0.0029,"119":0.0029,"120":0.01159,"121":0.0029,"122":0.12172,"125":0.01159,"126":0.02318,"127":0.01449,"128":0.01159,"129":0.00869,"130":0.01739,"131":0.03478,"132":0.00869,"133":0.0058,"134":0.02318,"135":0.01739,"136":0.01159,"137":0.00869,"138":0.16519,"139":0.02898,"140":0.01449,"141":0.01739,"142":0.04347,"143":0.09563,"144":0.2869,"145":3.59932,"146":2.61689,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 51 52 54 57 58 61 62 63 65 66 67 73 75 76 79 85 88 90 91 92 94 95 96 97 99 100 105 106 107 110 112 117 123 124 147 148 149 150"},F:{"37":0.0029,"42":0.0058,"45":0.0029,"48":0.0029,"57":0.00869,"79":0.00869,"94":0.0058,"95":0.01449,"96":0.02608,"97":0.0029,"101":0.0029,"113":0.0029,"123":0.0029,"125":0.01159,"126":0.08404,"127":0.62307,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 38 39 40 41 43 44 46 47 49 50 51 52 53 54 55 56 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 85 86 87 88 89 90 91 92 93 98 99 100 102 103 104 105 106 107 108 109 110 111 112 114 115 116 117 118 119 120 121 122 124 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"17":0.0058,"18":0.11012,"84":0.0058,"89":0.0058,"90":0.02898,"92":0.13621,"95":0.0029,"100":0.01449,"104":0.0029,"109":0.0029,"113":0.03188,"114":0.0058,"120":0.0029,"122":0.02898,"125":0.0029,"128":0.0029,"129":0.0029,"131":0.0029,"132":0.0029,"133":0.02898,"135":0.0058,"136":0.0029,"137":0.0029,"138":0.01159,"139":0.00869,"140":0.01159,"141":0.01159,"142":0.02608,"143":0.03767,"144":0.11592,"145":2.27783,"146":1.41712,_:"12 13 14 15 16 79 80 81 83 85 86 87 88 91 93 94 96 97 98 99 101 102 103 105 106 107 108 110 111 112 115 116 117 118 119 121 123 124 126 127 130 134"},E:{"11":0.0029,"13":0.0058,"14":0.00869,_:"4 5 6 7 8 9 10 12 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.5 16.0 16.2 16.4 16.5 17.0 17.2 17.3 17.5 18.0 18.2 26.5 TP","5.1":0.0029,"13.1":0.01449,"14.1":0.0029,"15.4":0.0029,"15.6":0.02029,"16.1":0.06665,"16.3":0.0029,"16.6":0.03478,"17.1":0.01449,"17.4":0.0029,"17.6":0.06086,"18.1":0.01159,"18.3":0.01449,"18.4":0.0058,"18.5-18.7":0.01159,"26.0":0.0058,"26.1":0.07245,"26.2":0.03188,"26.3":0.19996,"26.4":0.01449},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00084,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00168,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00421,"11.0-11.2":0.10603,"11.3-11.4":0.00252,"12.0-12.1":0,"12.2-12.5":0.03282,"13.0-13.1":0,"13.2":0.01262,"13.3":0.00168,"13.4-13.7":0.00421,"14.0-14.4":0.00757,"14.5-14.8":0.00757,"15.0-15.1":0.01094,"15.2-15.3":0.00673,"15.4":0.00841,"15.5":0.00926,"15.6-15.8":0.14894,"16.0":0.01515,"16.1":0.02945,"16.2":0.01683,"16.3":0.03029,"16.4":0.00673,"16.5":0.01262,"16.6-16.7":0.207,"17.0":0.00926,"17.1":0.01515,"17.2":0.01346,"17.3":0.01851,"17.4":0.03029,"17.5":0.05722,"17.6-17.7":0.14726,"18.0":0.03198,"18.1":0.06563,"18.2":0.0345,"18.3":0.11023,"18.4":0.05301,"18.5-18.7":1.6863,"26.0":0.10518,"26.1":0.15988,"26.2":0.94076,"26.3":4.08701,"26.4":0.15315,"26.5":0},P:{"21":0.01012,"22":0.01012,"24":0.06071,"25":0.06071,"26":0.07082,"27":0.22259,"28":0.39459,"29":1.75034,_:"4 20 23 5.0-5.4 6.2-6.4 8.2 10.1 11.1-11.2 12.0 13.0 14.0 16.0 17.0 18.0 19.0","7.2-7.4":0.07082,"9.2":0.03035,"15.0":0.01012},I:{"0":0.02128,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":1.70424,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.16332},Q:{"14.9":0.09941},O:{"0":0.58938},H:{all:0},L:{"0":70.72999}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/GP.js b/server/api/node_modules/caniuse-lite/data/regions/GP.js new file mode 100644 index 0000000..67d7517 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/GP.js @@ -0,0 +1 @@ +module.exports={C:{"47":0.00423,"88":0.00423,"113":0.00423,"115":0.17762,"128":0.00423,"134":0.00423,"135":0.00846,"136":0.06766,"137":0.00423,"138":0.00423,"139":0.51171,"140":0.34255,"143":0.00846,"144":0.00846,"146":0.04229,"147":0.19876,"148":2.74462,"149":0.47788,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 114 116 117 118 119 120 121 122 123 124 125 126 127 129 130 131 132 133 141 142 145 150 151 152 3.5 3.6"},D:{"63":0.00423,"69":0.00423,"85":0.00423,"86":0.00423,"88":0.00423,"91":0.00423,"94":0.00423,"102":0.00423,"103":0.00423,"109":0.1607,"110":0.00423,"116":0.13956,"119":0.00846,"122":0.00846,"123":0.00423,"124":0.01269,"125":0.00846,"126":0.0296,"127":0.01269,"128":0.08458,"129":0.00423,"130":0.00846,"131":0.02115,"132":0.00846,"133":0.00423,"134":0.01269,"135":0.00423,"136":0.03383,"137":0.01692,"138":0.09727,"139":0.14802,"140":0.02115,"141":0.02115,"142":0.11418,"143":0.1311,"144":1.20527,"145":6.71565,"146":6.45768,"147":0.00423,"148":0.00846,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 64 65 66 67 68 70 71 72 73 74 75 76 77 78 79 80 81 83 84 87 89 90 92 93 95 96 97 98 99 100 101 104 105 106 107 108 111 112 113 114 115 117 118 120 121 149 150"},F:{"46":0.00846,"95":0.01269,"96":0.00846,"120":0.00423,"123":0.00423,"126":0.01269,"127":1.13337,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 121 122 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"15":0.00423,"109":0.00423,"114":0.04652,"130":0.00423,"131":0.01269,"132":0.04229,"134":0.00846,"135":0.01269,"140":0.00423,"141":0.04229,"142":0.00846,"143":0.04229,"144":0.07189,"145":3.31554,"146":2.07644,_:"12 13 14 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 133 136 137 138 139"},E:{"14":0.00846,_:"4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.5 16.0 26.5 TP","13.1":0.02115,"14.1":0.02115,"15.4":0.00423,"15.6":0.06344,"16.1":0.00846,"16.2":0.0296,"16.3":0.01692,"16.4":0.00423,"16.5":0.00423,"16.6":0.12264,"17.0":0.00846,"17.1":0.7147,"17.2":0.00846,"17.3":0.09304,"17.4":0.00423,"17.5":0.01692,"17.6":0.16493,"18.0":0.00423,"18.1":0.01692,"18.2":0.00423,"18.3":0.06766,"18.4":0.02537,"18.5-18.7":0.24528,"26.0":0.06766,"26.1":0.13956,"26.2":0.20299,"26.3":2.05529,"26.4":0.38484},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00153,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00307,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00767,"11.0-11.2":0.1932,"11.3-11.4":0.0046,"12.0-12.1":0,"12.2-12.5":0.0598,"13.0-13.1":0,"13.2":0.023,"13.3":0.00307,"13.4-13.7":0.00767,"14.0-14.4":0.0138,"14.5-14.8":0.0138,"15.0-15.1":0.01993,"15.2-15.3":0.01227,"15.4":0.01533,"15.5":0.01687,"15.6-15.8":0.2714,"16.0":0.0276,"16.1":0.05367,"16.2":0.03067,"16.3":0.0552,"16.4":0.01227,"16.5":0.023,"16.6-16.7":0.37721,"17.0":0.01687,"17.1":0.0276,"17.2":0.02453,"17.3":0.03373,"17.4":0.0552,"17.5":0.10427,"17.6-17.7":0.26834,"18.0":0.05827,"18.1":0.1196,"18.2":0.06287,"18.3":0.20087,"18.4":0.0966,"18.5-18.7":3.07284,"26.0":0.19167,"26.1":0.29134,"26.2":1.71429,"26.3":7.4475,"26.4":0.27907,"26.5":0},P:{"4":0.01061,"20":0.61523,"22":0.01061,"23":0.01061,"24":0.03182,"25":0.01061,"26":0.06364,"27":0.06364,"28":0.09547,"29":2.78977,_:"21 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 17.0 18.0","7.2-7.4":0.01061,"16.0":0.01061,"19.0":0.01061},I:{"0":0.22487,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00011},K:{"0":0.3982,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":1.09649},Q:{_:"14.9"},O:{"0":0.01154},H:{all:0},L:{"0":44.01254}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/GQ.js b/server/api/node_modules/caniuse-lite/data/regions/GQ.js new file mode 100644 index 0000000..b453585 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/GQ.js @@ -0,0 +1 @@ +module.exports={C:{"57":0.00259,"69":0.0013,"72":0.00259,"111":0.00259,"115":0.02461,"127":0.00389,"130":0.01425,"133":0.0013,"135":0.01425,"136":0.00259,"138":0.00259,"140":0.0013,"146":0.01166,"147":0.03108,"148":0.37685,"149":0.06346,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 58 59 60 61 62 63 64 65 66 67 68 70 71 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 112 113 114 116 117 118 119 120 121 122 123 124 125 126 128 129 131 132 134 137 139 141 142 143 144 145 150 151 152 3.5 3.6"},D:{"32":0.00259,"51":0.00777,"60":0.0013,"68":0.00259,"69":0.00259,"75":0.00777,"76":0.0013,"79":0.01425,"83":0.00259,"86":0.00389,"97":0.01943,"98":0.01036,"103":0.00907,"107":0.00259,"109":0.14634,"113":0.0013,"114":0.01813,"116":0.0013,"119":0.03885,"120":0.0013,"121":0.00518,"122":0.01425,"123":0.00518,"126":0.00259,"127":0.02072,"129":0.0013,"130":0.00259,"131":0.00648,"132":0.00259,"133":0.01036,"135":0.01684,"136":0.0013,"137":0.00259,"138":0.05051,"139":0.03108,"140":0.00259,"141":0.01554,"142":0.01813,"143":0.03497,"144":0.21886,"145":1.44004,"146":1.31702,"147":0.01166,"148":0.00259,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 52 53 54 55 56 57 58 59 61 62 63 64 65 66 67 70 71 72 73 74 77 78 80 81 84 85 87 88 89 90 91 92 93 94 95 96 99 100 101 102 104 105 106 108 110 111 112 115 117 118 124 125 128 134 149 150"},F:{"42":0.0013,"79":0.00259,"95":0.01943,"96":0.01036,"113":0.00259,"122":0.00518,"126":0.00389,"127":0.06346,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 114 115 116 117 118 119 120 121 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.01036,"18":0.03497,"84":0.01554,"89":0.04274,"92":0.02202,"100":0.02849,"103":0.00259,"109":0.05957,"120":0.00518,"122":0.00648,"128":0.04403,"130":0.00389,"131":0.00648,"134":0.00648,"135":0.0013,"136":0.00389,"137":0.0013,"138":0.24217,"140":0.04274,"141":0.02461,"142":0.01036,"143":0.04921,"144":0.17353,"145":1.59933,"146":1.7884,_:"13 14 15 16 17 79 80 81 83 85 86 87 88 90 91 93 94 95 96 97 98 99 101 102 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 121 123 124 125 126 127 129 132 133 139"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 12.1 13.1 14.1 15.1 15.4 15.5 16.0 16.1 16.2 16.3 16.4 16.5 17.0 17.2 17.3 17.4 18.2 18.3 18.4 26.1 26.5 TP","5.1":0.01554,"11.1":0.00648,"15.2-15.3":0.00518,"15.6":0.00518,"16.6":0.01943,"17.1":0.00389,"17.5":0.0013,"17.6":0.0013,"18.0":0.00259,"18.1":0.00259,"18.5-18.7":0.00259,"26.0":0.00518,"26.2":0.02331,"26.3":0.04015,"26.4":0.00907},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00029,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00057,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00143,"11.0-11.2":0.03609,"11.3-11.4":0.00086,"12.0-12.1":0,"12.2-12.5":0.01117,"13.0-13.1":0,"13.2":0.0043,"13.3":0.00057,"13.4-13.7":0.00143,"14.0-14.4":0.00258,"14.5-14.8":0.00258,"15.0-15.1":0.00372,"15.2-15.3":0.00229,"15.4":0.00286,"15.5":0.00315,"15.6-15.8":0.05069,"16.0":0.00516,"16.1":0.01002,"16.2":0.00573,"16.3":0.01031,"16.4":0.00229,"16.5":0.0043,"16.6-16.7":0.07045,"17.0":0.00315,"17.1":0.00516,"17.2":0.00458,"17.3":0.0063,"17.4":0.01031,"17.5":0.01947,"17.6-17.7":0.05012,"18.0":0.01088,"18.1":0.02234,"18.2":0.01174,"18.3":0.03752,"18.4":0.01804,"18.5-18.7":0.57393,"26.0":0.0358,"26.1":0.05441,"26.2":0.32019,"26.3":1.39102,"26.4":0.05212,"26.5":0},P:{"4":0.01045,"24":0.01045,"25":0.01045,"27":0.01045,"28":0.10446,"29":0.41784,_:"20 21 22 23 26 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.01045},I:{"0":0.13915,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00007},K:{"0":0.80957,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{"2.5":0.03482,_:"3.0-3.1"},R:{_:"0"},M:{"0":0.02612},Q:{"14.9":0.00871},O:{"0":0.62676},H:{all:0},L:{"0":85.981}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/GR.js b/server/api/node_modules/caniuse-lite/data/regions/GR.js new file mode 100644 index 0000000..1310f65 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/GR.js @@ -0,0 +1 @@ +module.exports={C:{"52":0.54421,"68":0.2721,"78":0.00633,"102":0.00633,"105":0.40499,"114":0.00633,"115":1.1074,"116":0.00633,"123":0.00633,"127":0.01266,"128":0.01266,"133":0.00633,"135":0.00633,"136":0.01266,"138":0.00633,"139":0.00633,"140":0.0443,"141":0.00633,"142":0.03797,"143":0.01898,"144":0.00633,"145":0.01266,"146":0.0443,"147":0.14554,"148":3.39181,"149":0.71506,"150":0.00633,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 103 104 106 107 108 109 110 111 112 113 117 118 119 120 121 122 124 125 126 129 130 131 132 134 137 151 152 3.5 3.6"},D:{"49":0.03797,"68":0.46194,"73":0.00633,"75":0.00633,"76":0.00633,"87":0.00633,"89":0.00633,"95":0.00633,"99":0.00633,"100":0.00633,"101":0.02531,"102":0.25312,"103":0.05062,"104":0.00633,"105":0.00633,"106":0.00633,"107":0.00633,"108":0.00633,"109":5.16365,"110":0.01266,"111":0.00633,"112":0.00633,"114":0.01266,"116":0.09492,"117":0.00633,"118":0.00633,"119":0.00633,"120":0.01266,"121":0.00633,"122":0.0443,"123":0.00633,"124":0.01898,"126":0.01898,"127":0.01266,"128":0.09492,"129":0.00633,"130":0.01266,"131":0.05062,"132":0.00633,"133":0.06961,"134":0.03164,"135":0.03797,"136":0.01266,"137":0.02531,"138":0.24679,"139":0.17086,"140":0.0443,"141":0.02531,"142":0.12023,"143":0.13289,"144":0.82897,"145":18.81314,"146":15.36438,"147":0.02531,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 69 70 71 72 74 77 78 79 80 81 83 84 85 86 88 90 91 92 93 94 96 97 98 113 115 125 148 149 150"},F:{"40":0.56319,"46":0.26578,"95":0.05062,"96":0.03164,"114":0.03164,"119":0.00633,"123":0.00633,"125":0.01898,"126":0.01266,"127":0.67077,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 120 121 122 124 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"109":0.16453,"131":0.00633,"138":0.00633,"139":0.00633,"140":0.00633,"142":0.00633,"143":0.02531,"144":0.12656,"145":2.39831,"146":2.02496,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 132 133 134 135 136 137 141"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 15.1 15.2-15.3 15.5 16.0 16.2 16.4 17.0 18.0 18.2 26.5 TP","11.1":0.00633,"12.1":0.01266,"13.1":0.00633,"14.1":0.00633,"15.4":0.24046,"15.6":0.06328,"16.1":0.00633,"16.3":0.01266,"16.5":0.01266,"16.6":0.05062,"17.1":0.05695,"17.2":0.00633,"17.3":0.00633,"17.4":0.01266,"17.5":0.01266,"17.6":0.07594,"18.1":0.00633,"18.3":0.02531,"18.4":0.00633,"18.5-18.7":0.02531,"26.0":0.00633,"26.1":0.02531,"26.2":0.08226,"26.3":0.6328,"26.4":0.02531},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00078,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00155,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00388,"11.0-11.2":0.09772,"11.3-11.4":0.00233,"12.0-12.1":0,"12.2-12.5":0.03025,"13.0-13.1":0,"13.2":0.01163,"13.3":0.00155,"13.4-13.7":0.00388,"14.0-14.4":0.00698,"14.5-14.8":0.00698,"15.0-15.1":0.01008,"15.2-15.3":0.0062,"15.4":0.00776,"15.5":0.00853,"15.6-15.8":0.13727,"16.0":0.01396,"16.1":0.02714,"16.2":0.01551,"16.3":0.02792,"16.4":0.0062,"16.5":0.01163,"16.6-16.7":0.19078,"17.0":0.00853,"17.1":0.01396,"17.2":0.01241,"17.3":0.01706,"17.4":0.02792,"17.5":0.05274,"17.6-17.7":0.13572,"18.0":0.02947,"18.1":0.06049,"18.2":0.0318,"18.3":0.10159,"18.4":0.04886,"18.5-18.7":1.55415,"26.0":0.09694,"26.1":0.14735,"26.2":0.86704,"26.3":3.76673,"26.4":0.14115,"26.5":0},P:{"4":0.0213,"21":0.01065,"23":0.01065,"24":0.01065,"25":0.01065,"26":0.0213,"27":0.0213,"28":0.03195,"29":1.13942,_:"20 22 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.12474,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00006},K:{"0":0.26438,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.36353},Q:{_:"14.9"},O:{"0":0.05141},H:{all:0},L:{"0":31.03269}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/GT.js b/server/api/node_modules/caniuse-lite/data/regions/GT.js new file mode 100644 index 0000000..1c5480f --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/GT.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.00443,"78":0.00443,"115":0.03989,"127":0.01773,"136":0.00443,"137":0.00886,"140":0.02216,"141":0.00443,"143":0.0133,"145":0.00886,"146":0.00443,"147":0.05762,"148":0.78003,"149":0.15069,"150":0.00886,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 128 129 130 131 132 133 134 135 138 139 142 144 151 152 3.5 3.6"},D:{"78":0.01773,"79":0.00443,"87":0.00443,"96":0.01773,"97":0.00886,"101":0.00443,"103":0.04875,"104":0.02216,"105":0.02216,"106":0.02659,"107":0.02216,"108":0.02216,"109":0.41661,"110":0.02216,"111":0.03546,"112":0.05318,"114":0.00443,"116":0.08864,"117":0.02216,"120":0.03989,"121":0.00443,"122":0.03546,"123":0.00443,"124":0.03102,"125":0.00886,"126":0.00886,"127":0.00443,"128":0.02659,"129":0.00443,"130":0.00886,"131":0.08421,"132":0.02216,"133":0.05762,"134":0.04432,"135":0.02659,"136":0.01773,"137":0.01773,"138":0.10194,"139":0.07091,"140":0.04432,"141":0.06205,"142":0.07091,"143":0.14626,"144":0.31024,"145":11.06227,"146":8.52717,"147":0.06205,"148":0.0133,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 80 81 83 84 85 86 88 89 90 91 92 93 94 95 98 99 100 102 113 115 118 119 149 150"},F:{"71":0.00443,"95":0.03546,"96":0.03989,"125":0.00443,"126":0.00886,"127":0.68696,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.00443,"109":0.00443,"122":0.00886,"134":0.00443,"135":0.00886,"136":0.00886,"138":0.00443,"139":0.0133,"140":0.00443,"141":0.00443,"142":0.01773,"143":0.03989,"144":0.06205,"145":1.98554,"146":1.92792,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 123 124 125 126 127 128 129 130 131 132 133 137"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 15.5 16.0 16.2 16.3 16.4 17.0 18.2 26.5 TP","5.1":0.00886,"13.1":0.0133,"14.1":0.00443,"15.6":0.02659,"16.1":0.00886,"16.5":0.00886,"16.6":0.03546,"17.1":0.03102,"17.2":0.00443,"17.3":0.00443,"17.4":0.00886,"17.5":0.00886,"17.6":0.06648,"18.0":0.00443,"18.1":0.0133,"18.3":0.0133,"18.4":0.00886,"18.5-18.7":0.06205,"26.0":0.03989,"26.1":0.01773,"26.2":0.19944,"26.3":0.91742,"26.4":0.07091},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0013,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.0026,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.0065,"11.0-11.2":0.16382,"11.3-11.4":0.0039,"12.0-12.1":0,"12.2-12.5":0.0507,"13.0-13.1":0,"13.2":0.0195,"13.3":0.0026,"13.4-13.7":0.0065,"14.0-14.4":0.0117,"14.5-14.8":0.0117,"15.0-15.1":0.0169,"15.2-15.3":0.0104,"15.4":0.013,"15.5":0.0143,"15.6-15.8":0.23012,"16.0":0.0234,"16.1":0.0455,"16.2":0.026,"16.3":0.0468,"16.4":0.0104,"16.5":0.0195,"16.6-16.7":0.31983,"17.0":0.0143,"17.1":0.0234,"17.2":0.0208,"17.3":0.0286,"17.4":0.0468,"17.5":0.08841,"17.6-17.7":0.22752,"18.0":0.0494,"18.1":0.10141,"18.2":0.05331,"18.3":0.17032,"18.4":0.08191,"18.5-18.7":2.60546,"26.0":0.16252,"26.1":0.24702,"26.2":1.45354,"26.3":6.31472,"26.4":0.23662,"26.5":0},P:{"21":0.01014,"22":0.01014,"23":0.01014,"24":0.03042,"25":0.03042,"26":0.03042,"27":0.07098,"28":0.14197,"29":2.97117,_:"4 20 5.0-5.4 6.2-6.4 8.2 9.2 10.1 12.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.02028,"11.1-11.2":0.01014,"13.0":0.01014},I:{"0":0.01113,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.18931,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.22829},Q:{_:"14.9"},O:{"0":0.02227},H:{all:0},L:{"0":51.04406}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/GU.js b/server/api/node_modules/caniuse-lite/data/regions/GU.js new file mode 100644 index 0000000..8673100 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/GU.js @@ -0,0 +1 @@ +module.exports={C:{"115":0.01327,"127":0.00885,"140":0.00885,"141":0.00442,"144":0.09733,"146":0.01327,"147":0.08406,"148":1.62803,"149":0.24774,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 128 129 130 131 132 133 134 135 136 137 138 139 142 143 145 150 151 152 3.5 3.6"},D:{"87":0.00442,"89":0.00442,"91":0.00442,"93":0.00442,"96":0.00442,"98":0.08406,"99":0.02212,"103":0.11945,"107":0.00442,"109":0.19466,"116":0.21678,"120":0.00885,"121":0.00442,"122":0.04424,"124":0.07963,"125":0.00885,"126":0.05751,"127":0.00442,"128":0.04424,"131":0.03097,"132":0.00442,"133":0.00442,"134":0.01327,"135":0.00885,"136":0.03097,"137":0.01327,"138":0.10618,"139":0.06636,"140":0.03097,"141":0.08848,"142":0.82286,"143":0.12387,"144":0.92462,"145":8.50293,"146":7.22439,"147":0.0177,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 88 90 92 94 95 97 100 101 102 104 105 106 108 110 111 112 113 114 115 117 118 119 123 129 130 148 149 150"},F:{"84":0.00442,"95":0.00885,"96":0.00885,"126":0.00885,"127":0.2212,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"98":0.01327,"99":0.00442,"100":0.00442,"109":0.00442,"122":0.00442,"140":0.00442,"141":0.00885,"142":0.00442,"143":0.07078,"144":0.0929,"145":2.61016,"146":2.61458,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139"},E:{"14":0.00442,_:"4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 16.0 17.0 26.5 TP","12.1":0.00442,"13.1":0.00442,"14.1":0.01327,"15.1":0.00885,"15.2-15.3":0.00442,"15.4":0.00442,"15.5":0.00442,"15.6":0.64148,"16.1":0.03539,"16.2":0.02212,"16.3":0.11502,"16.4":0.03539,"16.5":0.03982,"16.6":0.43355,"17.1":0.33622,"17.2":0.03539,"17.3":0.01327,"17.4":0.07078,"17.5":0.04424,"17.6":1.35374,"18.0":0.00442,"18.1":0.06194,"18.2":0.00442,"18.3":0.03982,"18.4":0.03539,"18.5-18.7":0.09733,"26.0":0.04424,"26.1":0.03982,"26.2":0.37604,"26.3":1.94656,"26.4":0.04424},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00209,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00417,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.01044,"11.0-11.2":0.26297,"11.3-11.4":0.00626,"12.0-12.1":0,"12.2-12.5":0.0814,"13.0-13.1":0,"13.2":0.03131,"13.3":0.00417,"13.4-13.7":0.01044,"14.0-14.4":0.01878,"14.5-14.8":0.01878,"15.0-15.1":0.02713,"15.2-15.3":0.0167,"15.4":0.02087,"15.5":0.02296,"15.6-15.8":0.36942,"16.0":0.03757,"16.1":0.07305,"16.2":0.04174,"16.3":0.07514,"16.4":0.0167,"16.5":0.03131,"16.6-16.7":0.51343,"17.0":0.02296,"17.1":0.03757,"17.2":0.03339,"17.3":0.04592,"17.4":0.07514,"17.5":0.14192,"17.6-17.7":0.36524,"18.0":0.07931,"18.1":0.16279,"18.2":0.08557,"18.3":0.27341,"18.4":0.13149,"18.5-18.7":4.18254,"26.0":0.26089,"26.1":0.39655,"26.2":2.33337,"26.3":10.13703,"26.4":0.37985,"26.5":0},P:{"25":0.03091,"26":0.02061,"27":0.02061,"28":0.04122,"29":12.14828,_:"4 20 21 22 23 24 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.01671,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.02788,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.20074},Q:{_:"14.9"},O:{"0":0.01115},H:{all:0},L:{"0":26.48934}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/GW.js b/server/api/node_modules/caniuse-lite/data/regions/GW.js new file mode 100644 index 0000000..93f7a34 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/GW.js @@ -0,0 +1 @@ +module.exports={C:{"68":0.00345,"115":0.02416,"123":0.00345,"127":0.01035,"147":0.00345,"148":0.3382,"149":0.06902,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 124 125 126 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 150 151 152 3.5 3.6"},D:{"58":0.00345,"60":0.02071,"68":0.01035,"77":0.0069,"79":0.03451,"83":0.02071,"88":0.02071,"93":0.00345,"98":0.0069,"103":0.02416,"108":0.00345,"109":0.06902,"111":0.0069,"119":0.00345,"121":0.00345,"122":0.00345,"123":0.00345,"126":0.0138,"127":0.00345,"131":0.00345,"133":0.02416,"134":0.0069,"136":0.04831,"137":0.00345,"138":0.176,"139":0.15875,"140":0.01035,"141":0.01726,"142":0.01035,"143":0.26918,"144":0.28643,"145":4.45524,"146":1.70134,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 59 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 78 80 81 84 85 86 87 89 90 91 92 94 95 96 97 99 100 101 102 104 105 106 107 110 112 113 114 115 116 117 118 120 124 125 128 129 130 132 135 147 148 149 150"},F:{"96":0.00345,"126":0.01726,"127":0.12769,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.00345,"18":0.06902,"80":0.02416,"85":0.01035,"90":0.01035,"92":0.05177,"100":0.00345,"109":0.05177,"114":0.0069,"120":0.00345,"122":0.0138,"125":0.00345,"129":0.00345,"138":0.01035,"140":0.00345,"141":0.03796,"142":0.00345,"143":0.05522,"144":2.29837,"145":1.16644,"146":1.43907,_:"12 13 15 16 17 79 81 83 84 86 87 88 89 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 121 123 124 126 127 128 130 131 132 133 134 135 136 137 139"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 12.1 14.1 15.1 15.4 15.5 16.0 16.1 16.2 16.3 16.4 16.5 17.0 17.1 17.2 17.3 17.4 18.0 18.1 18.2 18.3 18.4 18.5-18.7 26.4 26.5 TP","11.1":0.0069,"13.1":0.01726,"15.2-15.3":0.53491,"15.6":0.04141,"16.6":0.00345,"17.5":0.01726,"17.6":0.04486,"26.0":0.00345,"26.1":0.1691,"26.2":0.01035,"26.3":0.03451},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00037,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00075,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00187,"11.0-11.2":0.04703,"11.3-11.4":0.00112,"12.0-12.1":0,"12.2-12.5":0.01456,"13.0-13.1":0,"13.2":0.0056,"13.3":0.00075,"13.4-13.7":0.00187,"14.0-14.4":0.00336,"14.5-14.8":0.00336,"15.0-15.1":0.00485,"15.2-15.3":0.00299,"15.4":0.00373,"15.5":0.00411,"15.6-15.8":0.06607,"16.0":0.00672,"16.1":0.01307,"16.2":0.00747,"16.3":0.01344,"16.4":0.00299,"16.5":0.0056,"16.6-16.7":0.09183,"17.0":0.00411,"17.1":0.00672,"17.2":0.00597,"17.3":0.00821,"17.4":0.01344,"17.5":0.02538,"17.6-17.7":0.06533,"18.0":0.01419,"18.1":0.02912,"18.2":0.01531,"18.3":0.0489,"18.4":0.02352,"18.5-18.7":0.74808,"26.0":0.04666,"26.1":0.07093,"26.2":0.41734,"26.3":1.81308,"26.4":0.06794,"26.5":0},P:{"21":0.01028,"24":0.10285,"25":0.01028,"26":0.03085,"27":0.17484,"28":0.21598,"29":0.8742,_:"4 20 22 23 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.04114},I:{"0":0.01963,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.63525,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{"2.5":0.0131,_:"3.0-3.1"},R:{_:"0"},M:{"0":0.04584},Q:{_:"14.9"},O:{"0":0.09824},H:{all:0},L:{"0":79.05472}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/GY.js b/server/api/node_modules/caniuse-lite/data/regions/GY.js new file mode 100644 index 0000000..0e20654 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/GY.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.07485,"110":0.00998,"115":0.01996,"140":0.01497,"142":0.02994,"144":0.03493,"146":0.01497,"147":0.05489,"148":0.37924,"149":0.07984,"150":0.02495,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 141 143 145 151 152 3.5 3.6"},D:{"27":0.00499,"54":0.01497,"55":0.00998,"58":0.00499,"61":0.00499,"63":0.00998,"64":0.00499,"68":0.00998,"69":0.01497,"70":0.00499,"73":0.00499,"76":0.00499,"79":0.01497,"83":0.00499,"89":0.00499,"90":0.00499,"91":0.01497,"94":0.00499,"95":0.00499,"98":0.07984,"103":0.50898,"104":0.49401,"105":0.44411,"106":0.50399,"107":0.48403,"108":0.4491,"109":0.55389,"110":0.48403,"111":0.48902,"112":1.12774,"114":0.02994,"116":0.95309,"117":0.46906,"118":0.00499,"119":0.01996,"120":0.47405,"121":0.02495,"122":0.01497,"123":0.01497,"124":0.62874,"125":0.01996,"126":0.04491,"127":0.00499,"128":0.00499,"129":0.01497,"130":0.02495,"131":0.99301,"132":0.0499,"133":0.9481,"134":0.01497,"135":0.00998,"136":0.00998,"137":0.00998,"138":0.07984,"139":0.96806,"140":0.00499,"141":0.02994,"142":0.06487,"143":0.36926,"144":2.33532,"145":8.19358,"146":5.50397,"147":0.01996,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 56 57 59 60 62 65 66 67 71 72 74 75 77 78 80 81 84 85 86 87 88 92 93 96 97 99 100 101 102 113 115 148 149 150"},F:{"56":0.00499,"95":0.03493,"96":0.09481,"121":0.00499,"126":0.00499,"127":0.46906,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"16":0.00499,"18":0.00499,"92":0.02994,"100":0.00499,"113":0.00499,"116":0.00499,"131":0.01497,"133":0.00499,"137":0.00499,"140":0.00998,"141":0.01497,"142":0.00499,"143":0.04491,"144":0.17964,"145":2.68961,"146":2.37524,_:"12 13 14 15 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 109 110 111 112 114 115 117 118 119 120 121 122 123 124 125 126 127 128 129 130 132 134 135 136 138 139"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 14.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.3 16.5 17.0 17.2 18.0 26.5 TP","5.1":0.00998,"13.1":0.00499,"15.6":0.00499,"16.4":0.00998,"16.6":0.02495,"17.1":0.00499,"17.3":0.00499,"17.4":0.00499,"17.5":0.02495,"17.6":0.11477,"18.1":0.00499,"18.2":0.00499,"18.3":0.00499,"18.4":0.01497,"18.5-18.7":0.03493,"26.0":0.02994,"26.1":0.03493,"26.2":0.07485,"26.3":0.51397,"26.4":0.00499},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00087,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00173,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00433,"11.0-11.2":0.10914,"11.3-11.4":0.0026,"12.0-12.1":0,"12.2-12.5":0.03378,"13.0-13.1":0,"13.2":0.01299,"13.3":0.00173,"13.4-13.7":0.00433,"14.0-14.4":0.0078,"14.5-14.8":0.0078,"15.0-15.1":0.01126,"15.2-15.3":0.00693,"15.4":0.00866,"15.5":0.00953,"15.6-15.8":0.15332,"16.0":0.01559,"16.1":0.03032,"16.2":0.01732,"16.3":0.03118,"16.4":0.00693,"16.5":0.01299,"16.6-16.7":0.21309,"17.0":0.00953,"17.1":0.01559,"17.2":0.01386,"17.3":0.01906,"17.4":0.03118,"17.5":0.0589,"17.6-17.7":0.15159,"18.0":0.03292,"18.1":0.06757,"18.2":0.03552,"18.3":0.11348,"18.4":0.05457,"18.5-18.7":1.73592,"26.0":0.10828,"26.1":0.16458,"26.2":0.96844,"26.3":4.20727,"26.4":0.15765,"26.5":0},P:{"4":0.0105,"22":0.04199,"24":0.03149,"25":0.06298,"26":0.02099,"27":0.12597,"28":0.3569,"29":2.59279,_:"20 21 23 5.0-5.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","6.2-6.4":0.03149,"7.2-7.4":0.03149},I:{"0":0.03003,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.2004,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.08517},Q:{"14.9":0.0501},O:{"0":0.8016},H:{all:0},L:{"0":49.4064}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/HK.js b/server/api/node_modules/caniuse-lite/data/regions/HK.js new file mode 100644 index 0000000..7e460b9 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/HK.js @@ -0,0 +1 @@ +module.exports={C:{"52":0.01684,"78":0.00421,"115":0.08841,"126":0.00421,"133":0.00421,"135":0.00421,"136":0.00421,"137":0.00421,"138":0.00421,"140":0.03368,"141":0.00421,"142":0.00842,"143":0.00421,"144":0.00842,"145":0.00421,"146":0.05473,"147":0.0421,"148":0.79569,"149":0.14735,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 127 128 129 130 131 132 134 139 150 151 152 3.5 3.6"},D:{"39":0.01263,"40":0.01263,"41":0.01263,"42":0.01263,"43":0.01263,"44":0.01263,"45":0.01263,"46":0.01263,"47":0.01263,"48":0.01263,"49":0.01263,"50":0.01263,"51":0.01263,"52":0.01263,"53":0.01263,"54":0.01263,"55":0.01263,"56":0.01263,"57":0.01263,"58":0.01263,"59":0.01263,"60":0.01263,"74":0.00421,"78":0.00842,"79":0.02105,"80":0.00842,"81":0.00421,"83":0.00842,"85":0.00421,"86":0.03368,"87":0.01263,"88":0.00421,"89":0.00421,"90":0.00421,"91":0.00842,"96":0.00421,"97":0.02105,"98":0.01263,"99":0.00842,"100":0.00421,"101":0.0421,"102":0.00421,"103":0.02947,"104":0.01263,"105":0.01684,"106":0.01684,"107":0.05473,"108":0.02105,"109":0.59361,"110":0.05052,"111":0.02526,"112":0.02105,"113":0.00842,"114":0.05894,"115":0.03789,"116":0.05473,"117":0.02526,"118":0.02105,"119":0.0421,"120":0.12209,"121":0.10104,"122":0.06315,"123":0.04631,"124":0.07578,"125":0.13472,"126":0.05052,"127":0.05052,"128":0.15577,"129":0.03368,"130":0.15577,"131":0.18945,"132":0.07578,"133":0.08841,"134":0.09683,"135":0.11367,"136":0.03789,"137":0.13893,"138":0.20629,"139":0.10946,"140":0.14735,"141":0.11788,"142":0.3368,"143":0.27786,"144":0.61045,"145":9.17359,"146":7.27909,"147":0.0842,"148":0.07999,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 61 62 63 64 65 66 67 68 69 70 71 72 73 75 76 77 84 92 93 94 95 149 150"},F:{"95":0.03789,"96":0.02947,"125":0.00421,"126":0.00421,"127":0.06736,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00421,"92":0.01263,"100":0.00842,"106":0.00421,"107":0.00421,"109":0.06736,"112":0.00842,"113":0.01263,"114":0.00421,"115":0.00842,"116":0.00842,"117":0.00421,"118":0.00421,"119":0.00421,"120":0.02526,"121":0.00421,"122":0.01684,"123":0.00842,"124":0.00842,"125":0.00842,"126":0.00842,"127":0.02526,"128":0.01263,"129":0.00842,"130":0.00842,"131":0.03368,"132":0.02526,"133":0.01684,"134":0.02105,"135":0.02947,"136":0.02526,"137":0.02526,"138":0.0421,"139":0.0421,"140":0.03368,"141":0.08841,"142":0.06315,"143":0.11788,"144":0.37048,"145":2.68598,"146":2.30708,_:"13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 101 102 103 104 105 108 110 111"},E:{"14":0.01263,"15":0.00421,_:"4 5 6 7 8 9 10 11 12 13 3.1 3.2 5.1 6.1 7.1 10.1 11.1 12.1 26.5 TP","9.1":0.00421,"13.1":0.01684,"14.1":0.01684,"15.1":0.00421,"15.2-15.3":0.00421,"15.4":0.01263,"15.5":0.00842,"15.6":0.07157,"16.0":0.01684,"16.1":0.01684,"16.2":0.00842,"16.3":0.02526,"16.4":0.00842,"16.5":0.01684,"16.6":0.13051,"17.0":0.00421,"17.1":0.07999,"17.2":0.00842,"17.3":0.01263,"17.4":0.02105,"17.5":0.03789,"17.6":0.09262,"18.0":0.00842,"18.1":0.02105,"18.2":0.01684,"18.3":0.0421,"18.4":0.01263,"18.5-18.7":0.07157,"26.0":0.02526,"26.1":0.03789,"26.2":0.2526,"26.3":1.0946,"26.4":0.03789},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00176,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00352,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.0088,"11.0-11.2":0.22178,"11.3-11.4":0.00528,"12.0-12.1":0,"12.2-12.5":0.06865,"13.0-13.1":0,"13.2":0.0264,"13.3":0.00352,"13.4-13.7":0.0088,"14.0-14.4":0.01584,"14.5-14.8":0.01584,"15.0-15.1":0.02288,"15.2-15.3":0.01408,"15.4":0.0176,"15.5":0.01936,"15.6-15.8":0.31155,"16.0":0.03168,"16.1":0.06161,"16.2":0.0352,"16.3":0.06337,"16.4":0.01408,"16.5":0.0264,"16.6-16.7":0.433,"17.0":0.01936,"17.1":0.03168,"17.2":0.02816,"17.3":0.03872,"17.4":0.06337,"17.5":0.11969,"17.6-17.7":0.30803,"18.0":0.06689,"18.1":0.13729,"18.2":0.07217,"18.3":0.23058,"18.4":0.11089,"18.5-18.7":3.52736,"26.0":0.22002,"26.1":0.33443,"26.2":1.96786,"26.3":8.5491,"26.4":0.32035,"26.5":0},P:{"20":0.01057,"21":0.01057,"22":0.01057,"23":0.01057,"24":0.01057,"25":0.02114,"26":0.04227,"27":0.04227,"28":0.11625,"29":4.0476,_:"4 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 14.0 15.0 18.0 19.0","13.0":0.01057,"16.0":0.01057,"17.0":0.01057},I:{"0":0.03471,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.1158,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.18163,"11":0.45408,_:"6 7 9 10 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":1.45329},Q:{"14.9":0.22002},O:{"0":0.41688},H:{all:0},L:{"0":40.72133}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/HN.js b/server/api/node_modules/caniuse-lite/data/regions/HN.js new file mode 100644 index 0000000..8345354 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/HN.js @@ -0,0 +1 @@ +module.exports={C:{"4":0.00966,"5":0.02897,"115":0.02415,"138":0.00483,"140":0.00483,"142":0.00483,"146":0.00483,"147":0.02897,"148":0.60363,"149":0.09658,_:"2 3 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 139 141 143 144 145 150 151 152 3.5 3.6"},D:{"65":0.00483,"66":0.00483,"68":0.00483,"69":0.00483,"75":0.00966,"76":0.00483,"79":0.00483,"85":0.00483,"87":0.00966,"93":0.00966,"97":0.0338,"98":0.00966,"103":0.28974,"104":0.25594,"105":0.25594,"106":0.25111,"107":0.26077,"108":0.26077,"109":0.88854,"110":0.26077,"111":0.28008,"112":0.52636,"114":0.00966,"115":0.00483,"116":0.60845,"117":0.24145,"119":0.01932,"120":0.26077,"121":0.00483,"122":0.00966,"123":0.00966,"124":0.2656,"125":0.00966,"126":0.07244,"127":0.00483,"128":0.04346,"129":0.02415,"130":0.01449,"131":0.60845,"132":0.01932,"133":0.53602,"134":0.01932,"135":0.01449,"136":0.01449,"137":0.01932,"138":0.25111,"139":0.23179,"140":0.1835,"141":0.1835,"142":0.19799,"143":0.26077,"144":0.89337,"145":10.33406,"146":7.56221,"147":0.17384,"148":0.00966,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 67 70 71 72 73 74 77 78 80 81 83 84 86 88 89 90 91 92 94 95 96 99 100 101 102 113 118 149 150"},F:{"95":0.02897,"96":0.01932,"117":0.00483,"126":0.04829,"127":0.89819,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 118 119 120 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00966,"92":0.01932,"109":0.01449,"119":0.00483,"122":0.00483,"124":0.00483,"126":0.00483,"130":0.00483,"133":0.00483,"134":0.00483,"135":0.00483,"136":0.00483,"137":0.00483,"138":0.00966,"139":0.00966,"140":0.01449,"141":0.01449,"142":0.0338,"143":0.17384,"144":0.07726,"145":3.07607,"146":3.05193,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 120 121 123 125 127 128 129 131 132"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 12.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.3 16.4 16.5 17.0 17.3 18.0 18.2 26.5 TP","5.1":0.01932,"11.1":0.00483,"13.1":0.00483,"14.1":0.01932,"15.6":0.03863,"16.2":0.00483,"16.6":0.03863,"17.1":0.00966,"17.2":0.00483,"17.4":0.00483,"17.5":0.00483,"17.6":0.04829,"18.1":0.00483,"18.3":0.00966,"18.4":0.00966,"18.5-18.7":0.01449,"26.0":0.05312,"26.1":0.01449,"26.2":0.13038,"26.3":0.7485,"26.4":0.0338},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00121,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00242,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00604,"11.0-11.2":0.15227,"11.3-11.4":0.00363,"12.0-12.1":0,"12.2-12.5":0.04713,"13.0-13.1":0,"13.2":0.01813,"13.3":0.00242,"13.4-13.7":0.00604,"14.0-14.4":0.01088,"14.5-14.8":0.01088,"15.0-15.1":0.01571,"15.2-15.3":0.00967,"15.4":0.01208,"15.5":0.01329,"15.6-15.8":0.2139,"16.0":0.02175,"16.1":0.0423,"16.2":0.02417,"16.3":0.0435,"16.4":0.00967,"16.5":0.01813,"16.6-16.7":0.29728,"17.0":0.01329,"17.1":0.02175,"17.2":0.01934,"17.3":0.02659,"17.4":0.0435,"17.5":0.08218,"17.6-17.7":0.21148,"18.0":0.04592,"18.1":0.09426,"18.2":0.04955,"18.3":0.15831,"18.4":0.07613,"18.5-18.7":2.42176,"26.0":0.15106,"26.1":0.22961,"26.2":1.35106,"26.3":5.8695,"26.4":0.21994,"26.5":0},P:{"4":0.01042,"21":0.01042,"22":0.02084,"23":0.01042,"24":0.04169,"25":0.06253,"26":0.06253,"27":0.12506,"28":0.27097,"29":2.56376,_:"20 6.2-6.4 10.1 12.0 14.0 15.0 17.0 18.0","5.0-5.4":0.01042,"7.2-7.4":0.0938,"8.2":0.01042,"9.2":0.01042,"11.1-11.2":0.02084,"13.0":0.01042,"16.0":0.02084,"19.0":0.02084},I:{"0":0.04133,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.20684,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.20167},Q:{_:"14.9"},O:{"0":0.1603},H:{all:0},L:{"0":44.42661}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/HR.js b/server/api/node_modules/caniuse-lite/data/regions/HR.js new file mode 100644 index 0000000..1c75040 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/HR.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.00532,"52":0.01596,"87":0.00532,"115":0.25531,"128":0.00532,"134":0.01064,"135":0.01064,"136":0.00532,"137":0.00532,"139":0.05851,"140":0.07979,"141":0.00532,"142":0.01064,"143":0.00532,"145":0.01064,"146":0.02128,"147":0.15957,"148":3.06906,"149":0.55318,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 129 130 131 132 133 138 144 150 151 152 3.5 3.6"},D:{"49":0.01064,"70":0.00532,"75":0.02128,"76":0.00532,"77":0.01064,"79":0.04255,"80":0.00532,"81":0.01596,"87":0.01596,"88":0.00532,"90":0.00532,"103":0.03191,"104":0.01596,"105":0.01596,"106":0.01596,"107":0.01596,"108":0.01596,"109":1.01593,"110":0.02128,"111":0.01596,"112":0.07447,"113":0.01064,"114":0.00532,"116":0.09042,"117":0.01596,"119":0.01596,"120":0.0266,"121":0.01596,"122":0.04787,"123":0.01064,"124":0.0266,"125":0.00532,"126":0.01596,"127":0.00532,"128":0.04787,"129":0.01064,"130":0.01596,"131":0.11702,"132":0.03723,"133":0.09042,"134":0.05319,"135":0.04787,"136":0.06383,"137":0.03723,"138":0.1968,"139":0.35637,"140":0.11702,"141":0.04787,"142":0.12234,"143":0.21276,"144":0.60637,"145":15.02618,"146":12.38263,"147":0.01596,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 71 72 73 74 78 83 84 85 86 89 91 92 93 94 95 96 97 98 99 100 101 102 115 118 148 149 150"},F:{"36":0.00532,"46":0.04787,"90":0.00532,"95":0.07979,"96":0.06383,"114":0.00532,"126":0.03723,"127":0.72338,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 120 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.00532,"109":0.06383,"114":0.03191,"118":0.00532,"131":0.01064,"133":0.00532,"134":0.00532,"135":0.01064,"136":0.00532,"137":0.00532,"138":0.0266,"139":0.00532,"140":0.00532,"141":0.00532,"142":0.04255,"143":0.03191,"144":0.0851,"145":1.86165,"146":2.04782,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 119 120 121 122 123 124 125 126 127 128 129 130 132"},E:{"14":0.00532,_:"4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 15.1 15.2-15.3 15.5 16.2 16.4 18.2 26.5 TP","14.1":0.01064,"15.4":0.00532,"15.6":0.03723,"16.0":0.02128,"16.1":0.00532,"16.3":0.00532,"16.5":0.00532,"16.6":0.10106,"17.0":0.00532,"17.1":0.03191,"17.2":0.00532,"17.3":0.01064,"17.4":0.01596,"17.5":0.03191,"17.6":0.1117,"18.0":0.00532,"18.1":0.01064,"18.3":0.0266,"18.4":0.00532,"18.5-18.7":0.03723,"26.0":0.01596,"26.1":0.02128,"26.2":0.14361,"26.3":0.60637,"26.4":0.0266},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.001,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00201,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00502,"11.0-11.2":0.12643,"11.3-11.4":0.00301,"12.0-12.1":0,"12.2-12.5":0.03913,"13.0-13.1":0,"13.2":0.01505,"13.3":0.00201,"13.4-13.7":0.00502,"14.0-14.4":0.00903,"14.5-14.8":0.00903,"15.0-15.1":0.01304,"15.2-15.3":0.00803,"15.4":0.01003,"15.5":0.01104,"15.6-15.8":0.1776,"16.0":0.01806,"16.1":0.03512,"16.2":0.02007,"16.3":0.03612,"16.4":0.00803,"16.5":0.01505,"16.6-16.7":0.24683,"17.0":0.01104,"17.1":0.01806,"17.2":0.01605,"17.3":0.02207,"17.4":0.03612,"17.5":0.06823,"17.6-17.7":0.17559,"18.0":0.03813,"18.1":0.07826,"18.2":0.04114,"18.3":0.13144,"18.4":0.06321,"18.5-18.7":2.0108,"26.0":0.12542,"26.1":0.19064,"26.2":1.12179,"26.3":4.87347,"26.4":0.18262,"26.5":0},P:{"4":0.1038,"22":0.01038,"23":0.02076,"25":0.01038,"26":0.03114,"27":0.0519,"28":0.07266,"29":3.39415,_:"20 21 24 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.02076},I:{"0":0.04676,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.33228,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.3978},Q:{_:"14.9"},O:{"0":0.07488},H:{all:0},L:{"0":40.03043}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/HT.js b/server/api/node_modules/caniuse-lite/data/regions/HT.js new file mode 100644 index 0000000..aafe29a --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/HT.js @@ -0,0 +1 @@ +module.exports={C:{"49":0.00241,"52":0.00722,"112":0.00241,"115":0.01685,"127":0.00241,"128":0.00481,"135":0.00241,"140":0.00481,"145":0.00241,"146":0.01204,"147":0.03611,"148":0.29365,"149":0.05536,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 113 114 116 117 118 119 120 121 122 123 124 125 126 129 130 131 132 133 134 136 137 138 139 141 142 143 144 150 151 152 3.5 3.6"},D:{"49":0.00722,"50":0.00241,"53":0.00241,"54":0.00481,"58":0.00241,"59":0.00241,"60":0.00241,"68":0.00241,"69":0.00241,"70":0.00241,"74":0.00481,"75":0.00481,"76":0.00963,"78":0.00241,"79":0.01204,"80":0.00481,"81":0.01444,"83":0.00241,"86":0.00241,"87":0.01204,"88":0.00722,"90":0.00481,"91":0.00241,"92":0.00722,"93":0.01685,"94":0.00241,"95":0.00241,"96":0.00241,"97":0.00241,"98":0.00241,"99":0.00241,"100":0.00241,"103":0.06018,"105":0.01444,"106":0.00241,"108":0.04814,"109":0.12516,"110":0.00241,"111":0.06258,"113":0.00241,"114":0.03611,"115":0.00241,"116":0.01685,"117":0.0674,"118":0.00241,"119":0.10591,"120":0.07943,"121":0.00241,"122":0.00722,"123":0.00241,"124":0.00481,"125":0.16127,"126":0.07462,"127":0.01926,"128":0.12757,"129":0.00963,"130":0.01685,"131":0.05055,"132":0.00481,"133":0.03611,"134":0.00963,"135":0.02166,"136":0.01204,"137":0.03129,"138":0.14683,"139":0.07221,"140":0.02888,"141":0.04814,"142":0.08184,"143":0.21422,"144":0.42363,"145":4.18577,"146":2.79453,"147":0.04333,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 51 52 55 56 57 61 62 63 64 65 66 67 71 72 73 77 84 85 89 101 102 104 107 112 148 149 150"},F:{"50":0.00241,"51":0.00241,"95":0.02407,"96":0.02166,"114":0.00241,"120":0.00241,"125":0.00241,"126":0.0337,"127":0.23348,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 121 122 123 124 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.00963,"15":0.00241,"16":0.00722,"17":0.00722,"18":0.02648,"84":0.00481,"89":0.00241,"90":0.00481,"92":0.05536,"100":0.00722,"103":0.00241,"109":0.00722,"112":0.00241,"114":0.02166,"122":0.00963,"123":0.00241,"126":0.00963,"128":0.00241,"130":0.00241,"131":0.00241,"134":0.00481,"135":0.00241,"136":0.00722,"137":0.01444,"138":0.00722,"139":0.00963,"140":0.01685,"141":0.01685,"142":0.02407,"143":0.02888,"144":0.06018,"145":1.1,"146":0.86411,_:"12 13 79 80 81 83 85 86 87 88 91 93 94 95 96 97 98 99 101 102 104 105 106 107 108 110 111 113 115 116 117 118 119 120 121 124 125 127 129 132 133"},E:{"12":0.00481,_:"4 5 6 7 8 9 10 11 13 14 15 3.1 3.2 6.1 7.1 9.1 15.1 15.5 16.0 16.1 16.2 16.3 16.4 17.2 17.3 18.0 18.4 26.5 TP","5.1":0.01204,"10.1":0.00241,"11.1":0.00241,"12.1":0.00241,"13.1":0.01685,"14.1":0.01204,"15.2-15.3":0.00241,"15.4":0.00241,"15.6":0.05295,"16.5":0.00481,"16.6":0.02407,"17.0":0.00241,"17.1":0.01204,"17.4":0.00481,"17.5":0.00241,"17.6":0.07702,"18.1":0.00241,"18.2":0.00481,"18.3":0.00241,"18.5-18.7":0.07702,"26.0":0.01926,"26.1":0.0337,"26.2":0.05777,"26.3":0.40197,"26.4":0.03611},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00149,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00298,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00746,"11.0-11.2":0.18787,"11.3-11.4":0.00447,"12.0-12.1":0,"12.2-12.5":0.05815,"13.0-13.1":0,"13.2":0.02237,"13.3":0.00298,"13.4-13.7":0.00746,"14.0-14.4":0.01342,"14.5-14.8":0.01342,"15.0-15.1":0.01938,"15.2-15.3":0.01193,"15.4":0.01491,"15.5":0.0164,"15.6-15.8":0.26392,"16.0":0.02684,"16.1":0.05219,"16.2":0.02982,"16.3":0.05368,"16.4":0.01193,"16.5":0.02237,"16.6-16.7":0.3668,"17.0":0.0164,"17.1":0.02684,"17.2":0.02386,"17.3":0.0328,"17.4":0.05368,"17.5":0.10139,"17.6-17.7":0.26094,"18.0":0.05666,"18.1":0.1163,"18.2":0.06113,"18.3":0.19533,"18.4":0.09394,"18.5-18.7":2.9881,"26.0":0.18638,"26.1":0.2833,"26.2":1.66701,"26.3":7.24212,"26.4":0.27137,"26.5":0},P:{"20":0.01023,"21":0.03068,"22":0.03068,"23":0.03068,"24":0.09204,"25":0.07159,"26":0.13294,"27":0.31702,"28":0.37838,"29":1.1556,_:"4 10.1 12.0 15.0 19.0","5.0-5.4":0.02045,"6.2-6.4":0.01023,"7.2-7.4":0.05113,"8.2":0.01023,"9.2":0.06136,"11.1-11.2":0.07159,"13.0":0.03068,"14.0":0.07159,"16.0":0.14317,"17.0":0.01023,"18.0":0.01023},I:{"0":0.17446,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00009},K:{"0":0.5694,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.19739},Q:{_:"14.9"},O:{"0":0.10629},H:{all:0},L:{"0":67.10902}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/HU.js b/server/api/node_modules/caniuse-lite/data/regions/HU.js new file mode 100644 index 0000000..7a0978c --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/HU.js @@ -0,0 +1 @@ +module.exports={C:{"48":0.00964,"52":0.01446,"61":0.00482,"66":0.00482,"78":0.00964,"108":0.00964,"113":0.00482,"115":0.41934,"127":0.00482,"128":0.00482,"129":0.00482,"133":0.00482,"134":0.00482,"135":0.00482,"136":0.01928,"137":0.00482,"138":0.00482,"139":0.00482,"140":0.12532,"141":0.00482,"142":0.00482,"143":0.00964,"144":0.00964,"145":0.01928,"146":0.04338,"147":0.13978,"148":3.23904,"149":0.6748,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 53 54 55 56 57 58 59 60 62 63 64 65 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 109 110 111 112 114 116 117 118 119 120 121 122 123 124 125 126 130 131 132 150 151 152 3.5 3.6"},D:{"39":0.00482,"40":0.00482,"41":0.00482,"42":0.00482,"43":0.00482,"44":0.00482,"45":0.00482,"46":0.00482,"47":0.00482,"48":0.00482,"49":0.00482,"50":0.00482,"51":0.00482,"52":0.00482,"53":0.00482,"54":0.00482,"55":0.00482,"56":0.00482,"57":0.00482,"58":0.00482,"59":0.00482,"60":0.00482,"84":0.00482,"87":0.00964,"99":0.01446,"100":0.01446,"101":0.01446,"103":0.03374,"104":0.02892,"105":0.01928,"106":0.01928,"107":0.02892,"108":0.01928,"109":1.1086,"110":0.0482,"111":0.01928,"112":0.0482,"114":0.01446,"116":0.06748,"117":0.01928,"119":0.00482,"120":0.02892,"121":0.05302,"122":0.02892,"123":0.00482,"124":0.03374,"125":0.00482,"126":0.00964,"127":0.00482,"128":0.0241,"129":0.00964,"130":0.01446,"131":0.06748,"132":0.0241,"133":0.05302,"134":0.0482,"135":0.03856,"136":0.05784,"137":0.03856,"138":0.11568,"139":0.13496,"140":0.08194,"141":0.02892,"142":0.13014,"143":0.17352,"144":0.57358,"145":12.69588,"146":10.97032,"147":0.03374,"148":0.00964,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 85 86 88 89 90 91 92 93 94 95 96 97 98 102 113 115 118 149 150"},F:{"87":0.00482,"91":0.00482,"94":0.00482,"95":0.09158,"96":0.04338,"112":0.01446,"125":0.00482,"126":0.01446,"127":0.7953,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 88 89 90 92 93 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 113 114 115 116 117 118 119 120 121 122 123 124 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.00482,"109":0.02892,"113":0.00482,"131":0.00482,"133":0.00482,"135":0.00482,"138":0.00482,"139":0.00482,"140":0.00482,"141":0.00964,"142":0.00482,"143":0.03374,"144":0.0723,"145":2.169,"146":2.05332,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 132 134 136 137"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 15.5 16.0 17.0 26.5 TP","13.1":0.00482,"14.1":0.00964,"15.6":0.05302,"16.1":0.00482,"16.2":0.00482,"16.3":0.00964,"16.4":0.00482,"16.5":0.00482,"16.6":0.05302,"17.1":0.08194,"17.2":0.00482,"17.3":0.00482,"17.4":0.01446,"17.5":0.01446,"17.6":0.08676,"18.0":0.00482,"18.1":0.00964,"18.2":0.00482,"18.3":0.0241,"18.4":0.00482,"18.5-18.7":0.0482,"26.0":0.01928,"26.1":0.0241,"26.2":0.13014,"26.3":0.68444,"26.4":0.04338},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00114,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00227,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00569,"11.0-11.2":0.14329,"11.3-11.4":0.00341,"12.0-12.1":0,"12.2-12.5":0.04435,"13.0-13.1":0,"13.2":0.01706,"13.3":0.00227,"13.4-13.7":0.00569,"14.0-14.4":0.01024,"14.5-14.8":0.01024,"15.0-15.1":0.01478,"15.2-15.3":0.0091,"15.4":0.01137,"15.5":0.01251,"15.6-15.8":0.20129,"16.0":0.02047,"16.1":0.0398,"16.2":0.02274,"16.3":0.04094,"16.4":0.0091,"16.5":0.01706,"16.6-16.7":0.27976,"17.0":0.01251,"17.1":0.02047,"17.2":0.0182,"17.3":0.02502,"17.4":0.04094,"17.5":0.07733,"17.6-17.7":0.19902,"18.0":0.04321,"18.1":0.0887,"18.2":0.04663,"18.3":0.14898,"18.4":0.07165,"18.5-18.7":2.27901,"26.0":0.14215,"26.1":0.21607,"26.2":1.27142,"26.3":5.52352,"26.4":0.20698,"26.5":0},P:{"21":0.01032,"22":0.01032,"23":0.01032,"25":0.01032,"26":0.02063,"27":0.01032,"28":0.06189,"29":2.1146,_:"4 20 24 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 14.0 15.0 16.0 17.0 18.0 19.0","12.0":0.01032,"13.0":0.01032},I:{"0":0.15529,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00008},K:{"0":0.43002,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.35231},Q:{_:"14.9"},O:{"0":0.02072},H:{all:0},L:{"0":43.34348}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/ID.js b/server/api/node_modules/caniuse-lite/data/regions/ID.js new file mode 100644 index 0000000..d1ab4e6 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/ID.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.01754,"68":0.00438,"102":0.00877,"113":0.01754,"114":0.00877,"115":0.09206,"123":0.00438,"127":0.00438,"128":0.00438,"130":0.00438,"132":0.00438,"133":0.00438,"134":0.00438,"135":0.00438,"136":0.00438,"137":0.00438,"138":0.01754,"139":0.00438,"140":0.0263,"141":0.00438,"142":0.01315,"143":0.01315,"144":0.01315,"145":0.02192,"146":0.0263,"147":0.11398,"148":1.55632,"149":0.3025,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 103 104 105 106 107 108 109 110 111 112 116 117 118 119 120 121 122 124 125 126 129 131 150 151 152 3.5 3.6"},D:{"39":0.00438,"40":0.00438,"41":0.00438,"42":0.00438,"43":0.00438,"44":0.00438,"45":0.00438,"46":0.00438,"47":0.00438,"48":0.00438,"49":0.00438,"50":0.00438,"51":0.00438,"52":0.00438,"53":0.00438,"54":0.00438,"55":0.00438,"56":0.00438,"57":0.00438,"58":0.00438,"59":0.00438,"60":0.00438,"69":0.00438,"85":0.00877,"98":0.00438,"103":0.04822,"104":0.03946,"105":0.03946,"106":0.04384,"107":0.03946,"108":0.03946,"109":0.48224,"110":0.03946,"111":0.03946,"112":0.06576,"113":0.00438,"114":0.01754,"115":0.00438,"116":0.12275,"117":0.03946,"118":0.00438,"119":0.00877,"120":0.05699,"121":0.01754,"122":0.04384,"123":0.01754,"124":0.05699,"125":0.01754,"126":0.03069,"127":0.02192,"128":0.06576,"129":0.0263,"130":0.0263,"131":0.15782,"132":0.04384,"133":0.1096,"134":0.03507,"135":0.05699,"136":0.04822,"137":0.04822,"138":0.1929,"139":0.07014,"140":0.05699,"141":0.05699,"142":0.12714,"143":0.4121,"144":0.71021,"145":16.7425,"146":9.05734,"147":0.0263,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 61 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 78 79 80 81 83 84 86 87 88 89 90 91 92 93 94 95 96 97 99 100 101 102 148 149 150"},F:{"94":0.00438,"95":0.0263,"96":0.01754,"126":0.00877,"127":0.20166,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00438,"92":0.00438,"105":0.00438,"109":0.01315,"114":0.00438,"122":0.00438,"131":0.00438,"133":0.00438,"138":0.00438,"139":0.00438,"140":0.00438,"141":0.00438,"142":0.00877,"143":0.02192,"144":0.05699,"145":2.63478,"146":1.56947,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 106 107 108 110 111 112 113 115 116 117 118 119 120 121 123 124 125 126 127 128 129 130 132 134 135 136 137"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 13.1 15.1 15.2-15.3 16.0 26.5 TP","5.1":0.00877,"14.1":0.00438,"15.4":0.00438,"15.5":0.00438,"15.6":0.03069,"16.1":0.00877,"16.2":0.00438,"16.3":0.00877,"16.4":0.00877,"16.5":0.01754,"16.6":0.04822,"17.0":0.00438,"17.1":0.01315,"17.2":0.00877,"17.3":0.01315,"17.4":0.02192,"17.5":0.03069,"17.6":0.09206,"18.0":0.01754,"18.1":0.0263,"18.2":0.01315,"18.3":0.05261,"18.4":0.0263,"18.5-18.7":0.08768,"26.0":0.04822,"26.1":0.04384,"26.2":0.18413,"26.3":0.39894,"26.4":0.01315},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00071,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00142,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00355,"11.0-11.2":0.08951,"11.3-11.4":0.00213,"12.0-12.1":0,"12.2-12.5":0.02771,"13.0-13.1":0,"13.2":0.01066,"13.3":0.00142,"13.4-13.7":0.00355,"14.0-14.4":0.00639,"14.5-14.8":0.00639,"15.0-15.1":0.00924,"15.2-15.3":0.00568,"15.4":0.0071,"15.5":0.00781,"15.6-15.8":0.12575,"16.0":0.01279,"16.1":0.02486,"16.2":0.01421,"16.3":0.02558,"16.4":0.00568,"16.5":0.01066,"16.6-16.7":0.17476,"17.0":0.00781,"17.1":0.01279,"17.2":0.01137,"17.3":0.01563,"17.4":0.02558,"17.5":0.04831,"17.6-17.7":0.12432,"18.0":0.027,"18.1":0.05541,"18.2":0.02913,"18.3":0.09307,"18.4":0.04476,"18.5-18.7":1.42369,"26.0":0.0888,"26.1":0.13498,"26.2":0.79425,"26.3":3.45053,"26.4":0.1293,"26.5":0},P:{"22":0.01015,"23":0.01015,"24":0.01015,"25":0.02031,"26":0.02031,"27":0.02031,"28":0.07108,"29":1.08645,_:"4 20 21 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 18.0 19.0","7.2-7.4":0.01015,"17.0":0.01015},I:{"0":0.06172,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00003},K:{"0":0.49421,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.02192,_:"6 7 8 9 10 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.07301},Q:{_:"14.9"},O:{"0":0.60653},H:{all:0},L:{"0":51.80501}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/IE.js b/server/api/node_modules/caniuse-lite/data/regions/IE.js new file mode 100644 index 0000000..5cfc386 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/IE.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.00338,"78":0.00338,"109":0.00676,"115":0.0608,"132":0.00338,"135":0.00338,"136":0.00338,"140":0.07432,"141":0.00338,"143":0.00338,"144":0.00338,"145":0.00338,"146":0.01013,"147":0.06756,"148":0.84112,"149":0.16552,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 133 134 137 138 139 142 150 151 152 3.5 3.6"},D:{"49":0.00676,"76":0.01013,"79":0.00338,"86":0.00338,"87":0.00338,"92":0.00338,"93":0.01013,"103":0.07094,"104":0.02027,"105":0.01689,"106":0.02027,"107":0.01689,"108":0.01689,"109":0.17228,"110":0.02027,"111":0.01689,"112":0.09458,"113":0.00676,"114":0.02027,"115":0.00338,"116":0.09121,"117":0.02702,"118":0.00338,"119":0.00676,"120":0.02702,"121":0.00338,"122":0.07094,"123":0.00676,"124":0.02702,"125":0.03378,"126":0.04391,"127":0.00676,"128":0.04729,"129":0.02027,"130":0.01689,"131":0.09121,"132":0.03378,"133":0.09458,"134":0.05743,"135":0.0608,"136":0.03716,"137":0.07094,"138":0.16214,"139":0.07094,"140":0.05743,"141":0.0608,"142":0.1385,"143":0.23646,"144":0.57764,"145":7.21203,"146":5.13794,"147":0.01351,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 77 78 80 81 83 84 85 88 89 90 91 94 95 96 97 98 99 100 101 102 148 149 150"},F:{"46":0.00338,"95":0.02702,"96":0.03716,"126":0.00676,"127":0.22633,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00338,"18":0.00676,"109":0.00676,"114":0.00338,"121":0.01351,"134":0.01013,"136":0.00338,"138":0.00676,"139":0.00338,"140":0.00338,"141":0.00338,"142":0.01351,"143":0.10472,"144":0.12161,"145":2.95575,"146":2.66524,_:"13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 122 123 124 125 126 127 128 129 130 131 132 133 135 137"},E:{"13":0.00338,"14":0.02027,_:"4 5 6 7 8 9 10 11 12 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 26.5 TP","13.1":0.01013,"14.1":0.02365,"15.1":0.00338,"15.2-15.3":0.00338,"15.4":0.00338,"15.5":0.01013,"15.6":0.11147,"16.0":0.01013,"16.1":0.01013,"16.2":0.01013,"16.3":0.02702,"16.4":0.00676,"16.5":0.01689,"16.6":0.17228,"17.0":0.00338,"17.1":0.1385,"17.2":0.01013,"17.3":0.01013,"17.4":0.03378,"17.5":0.04391,"17.6":0.14863,"18.0":0.00676,"18.1":0.03716,"18.2":0.01013,"18.3":0.05405,"18.4":0.0304,"18.5-18.7":0.10472,"26.0":0.03378,"26.1":0.08445,"26.2":0.31078,"26.3":1.13501,"26.4":0.03716},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00269,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00538,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.01344,"11.0-11.2":0.3387,"11.3-11.4":0.00806,"12.0-12.1":0,"12.2-12.5":0.10484,"13.0-13.1":0,"13.2":0.04032,"13.3":0.00538,"13.4-13.7":0.01344,"14.0-14.4":0.02419,"14.5-14.8":0.02419,"15.0-15.1":0.03495,"15.2-15.3":0.02151,"15.4":0.02688,"15.5":0.02957,"15.6-15.8":0.4758,"16.0":0.04839,"16.1":0.09408,"16.2":0.05376,"16.3":0.09677,"16.4":0.02151,"16.5":0.04032,"16.6-16.7":0.66128,"17.0":0.02957,"17.1":0.04839,"17.2":0.04301,"17.3":0.05914,"17.4":0.09677,"17.5":0.18279,"17.6-17.7":0.47042,"18.0":0.10215,"18.1":0.20967,"18.2":0.11021,"18.3":0.35214,"18.4":0.16935,"18.5-18.7":5.387,"26.0":0.33602,"26.1":0.51074,"26.2":3.00532,"26.3":13.05623,"26.4":0.48924,"26.5":0},P:{"21":0.03119,"22":0.0208,"23":0.0208,"24":0.03119,"25":0.0208,"26":0.04159,"27":0.07279,"28":0.09358,"29":4.23198,_:"4 20 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0","19.0":0.0104},I:{"0":0.05954,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00003},K:{"0":0.13904,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{"2.5":0.00662,_:"3.0-3.1"},R:{_:"0"},M:{"0":0.41712},Q:{_:"14.9"},O:{"0":0.02648},H:{all:0},L:{"0":40.56282}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/IL.js b/server/api/node_modules/caniuse-lite/data/regions/IL.js new file mode 100644 index 0000000..bebd266 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/IL.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.00367,"24":0.00367,"25":0.00367,"26":0.01468,"27":0.00367,"36":0.00367,"52":0.00367,"115":0.06241,"127":0.00734,"128":0.00367,"136":0.00367,"140":0.01836,"141":0.00367,"142":0.00367,"143":0.00367,"144":0.00367,"145":0.00367,"146":0.02203,"147":0.06975,"148":0.60939,"149":0.12114,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 129 130 131 132 133 134 135 137 138 139 150 151 152 3.5 3.6"},D:{"31":0.01836,"32":0.00367,"64":0.00734,"69":0.00367,"79":0.00367,"81":0.00367,"86":0.00367,"87":0.00367,"90":0.00367,"91":0.00367,"95":0.00734,"99":0.00367,"100":0.00367,"103":0.04038,"104":0.03304,"105":0.03304,"106":0.03671,"107":0.03304,"108":0.03671,"109":0.43685,"110":0.03304,"111":0.03304,"112":0.09545,"114":0.00367,"116":0.10279,"117":0.03304,"119":0.01468,"120":0.05139,"121":0.00367,"122":0.02203,"123":0.00734,"124":0.03671,"125":0.00367,"126":0.00734,"127":0.00734,"128":0.0257,"129":0.00367,"130":0.01101,"131":0.09545,"132":0.01101,"133":0.0881,"134":1.04256,"135":0.01836,"136":0.01468,"137":0.01468,"138":0.07709,"139":0.17621,"140":0.2533,"141":0.0257,"142":0.10279,"143":0.18355,"144":0.47723,"145":9.13712,"146":8.469,"147":0.01468,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 65 66 67 68 70 71 72 73 74 75 76 77 78 80 83 84 85 88 89 92 93 94 96 97 98 101 102 113 115 118 148 149 150"},F:{"86":0.00367,"93":0.00367,"94":0.00367,"95":0.04405,"96":0.03671,"122":0.00367,"125":0.00367,"126":0.00734,"127":0.31204,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 87 88 89 90 91 92 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 123 124 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00367,"104":0.00367,"109":0.02203,"119":0.00734,"128":0.00734,"131":0.00367,"132":0.00367,"133":0.00367,"136":0.00367,"137":0.00734,"138":0.00734,"139":0.00367,"140":0.00367,"141":0.00367,"142":0.00734,"143":0.0257,"144":0.05139,"145":1.13801,"146":1.09396,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 105 106 107 108 110 111 112 113 114 115 116 117 118 120 121 122 123 124 125 126 127 129 130 134 135"},E:{"7":0.00367,"14":0.00367,_:"4 5 6 8 9 10 11 12 13 15 3.1 3.2 7.1 9.1 10.1 11.1 12.1 15.4 16.0 16.4 16.5 17.0 17.2 18.0 18.2 26.5 TP","5.1":0.00367,"6.1":0.00367,"13.1":0.00734,"14.1":0.01101,"15.1":0.00367,"15.2-15.3":0.00367,"15.5":0.00367,"15.6":0.04038,"16.1":0.00367,"16.2":0.00367,"16.3":0.01101,"16.6":0.08076,"17.1":0.06975,"17.3":0.00367,"17.4":0.00367,"17.5":0.00367,"17.6":0.04405,"18.1":0.01468,"18.3":0.01101,"18.4":0.00367,"18.5-18.7":0.03304,"26.0":0.01101,"26.1":0.00734,"26.2":0.08443,"26.3":0.50293,"26.4":0.01836},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00152,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00304,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00759,"11.0-11.2":0.19123,"11.3-11.4":0.00455,"12.0-12.1":0,"12.2-12.5":0.05919,"13.0-13.1":0,"13.2":0.02277,"13.3":0.00304,"13.4-13.7":0.00759,"14.0-14.4":0.01366,"14.5-14.8":0.01366,"15.0-15.1":0.01973,"15.2-15.3":0.01214,"15.4":0.01518,"15.5":0.01669,"15.6-15.8":0.26863,"16.0":0.02732,"16.1":0.05312,"16.2":0.03035,"16.3":0.05464,"16.4":0.01214,"16.5":0.02277,"16.6-16.7":0.37335,"17.0":0.01669,"17.1":0.02732,"17.2":0.02428,"17.3":0.03339,"17.4":0.05464,"17.5":0.1032,"17.6-17.7":0.2656,"18.0":0.05767,"18.1":0.11838,"18.2":0.06223,"18.3":0.19882,"18.4":0.09561,"18.5-18.7":3.04146,"26.0":0.18971,"26.1":0.28836,"26.2":1.69678,"26.3":7.37144,"26.4":0.27622,"26.5":0},P:{"20":0.01029,"21":0.02058,"22":0.03087,"23":0.04115,"24":0.04115,"25":0.04115,"26":0.06173,"27":0.13375,"28":0.26751,"29":7.33583,_:"4 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 14.0 15.0 16.0","13.0":0.01029,"17.0":0.01029,"18.0":0.01029,"19.0":0.01029},I:{"0":0.00632,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0.31012,_:"10 11 12 11.1 11.5 12.1"},A:{"9":0.00551,"10":0.00551,"11":0.01101,_:"6 7 8 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.22152},Q:{_:"14.9"},O:{"0":0.03797},H:{all:0},L:{"0":48.58237}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/IM.js b/server/api/node_modules/caniuse-lite/data/regions/IM.js new file mode 100644 index 0000000..d73b03c --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/IM.js @@ -0,0 +1 @@ +module.exports={C:{"113":0.00907,"115":0.22685,"138":0.00454,"140":0.03176,"144":0.02722,"146":0.00454,"147":0.04083,"148":0.81212,"149":0.13611,"150":0.00454,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 139 141 142 143 145 151 152 3.5 3.6"},D:{"75":0.00454,"93":0.00454,"98":0.00454,"99":0.00454,"103":0.02269,"109":0.51268,"116":0.19055,"119":0.00907,"120":0.1588,"121":0.04991,"122":0.00454,"123":0.00907,"124":0.01815,"126":0.04083,"128":0.01361,"129":0.00454,"130":0.16787,"131":0.04537,"132":0.01815,"134":0.00907,"135":0.01815,"138":0.20417,"139":0.06352,"140":0.00907,"141":0.05444,"142":0.40379,"143":0.1225,"144":0.36296,"145":10.7663,"146":6.91893,"147":0.00907,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 76 77 78 79 80 81 83 84 85 86 87 88 89 90 91 92 94 95 96 97 100 101 102 104 105 106 107 108 110 111 112 113 114 115 117 118 125 127 133 136 137 148 149 150"},F:{"79":0.00454,"96":0.00907,"124":0.00907,"127":0.80305,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 125 126 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"16":0.00454,"17":0.00454,"109":0.00907,"133":0.0363,"135":0.00907,"136":0.04083,"137":0.00454,"138":0.00454,"140":0.00454,"141":0.01815,"142":0.01361,"143":0.10435,"144":0.30398,"145":3.32562,"146":4.81829,_:"12 13 14 15 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 134 139"},E:{"13":0.00454,_:"4 5 6 7 8 9 10 11 12 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.2-15.3 15.4 16.1 17.0 17.2 17.3 18.0 26.5 TP","13.1":0.00907,"14.1":0.00907,"15.1":0.00454,"15.5":0.00454,"15.6":0.22231,"16.0":0.01361,"16.2":0.03176,"16.3":0.04537,"16.4":0.00907,"16.5":0.22685,"16.6":0.20417,"17.1":0.73046,"17.4":0.00454,"17.5":0.10435,"17.6":0.59435,"18.1":0.04083,"18.2":0.01361,"18.3":0.04537,"18.4":0.00454,"18.5-18.7":0.2087,"26.0":0.01361,"26.1":0.02722,"26.2":0.43102,"26.3":5.42625,"26.4":0.37657},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00289,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00578,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.01446,"11.0-11.2":0.36434,"11.3-11.4":0.00867,"12.0-12.1":0,"12.2-12.5":0.11277,"13.0-13.1":0,"13.2":0.04337,"13.3":0.00578,"13.4-13.7":0.01446,"14.0-14.4":0.02602,"14.5-14.8":0.02602,"15.0-15.1":0.03759,"15.2-15.3":0.02313,"15.4":0.02892,"15.5":0.03181,"15.6-15.8":0.5118,"16.0":0.05205,"16.1":0.1012,"16.2":0.05783,"16.3":0.1041,"16.4":0.02313,"16.5":0.04337,"16.6-16.7":0.71132,"17.0":0.03181,"17.1":0.05205,"17.2":0.04626,"17.3":0.06361,"17.4":0.1041,"17.5":0.19663,"17.6-17.7":0.50602,"18.0":0.10988,"18.1":0.22554,"18.2":0.11855,"18.3":0.37879,"18.4":0.18217,"18.5-18.7":5.79466,"26.0":0.36144,"26.1":0.54939,"26.2":3.23275,"26.3":14.04425,"26.4":0.52626,"26.5":0},P:{"21":0.01139,"26":0.06833,"27":0.06833,"28":0.31886,"29":2.90392,_:"4 20 22 23 24 25 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.01139},I:{"0":0.01092,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.26227,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.39341},Q:{_:"14.9"},O:{"0":0.00546},H:{all:0},L:{"0":23.79582}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/IN.js b/server/api/node_modules/caniuse-lite/data/regions/IN.js new file mode 100644 index 0000000..e5c64d5 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/IN.js @@ -0,0 +1 @@ +module.exports={C:{"113":0.00293,"115":0.07335,"127":0.00293,"136":0.0088,"140":0.0176,"143":0.00293,"144":0.00293,"145":0.00293,"146":0.00293,"147":0.02054,"148":0.31394,"149":0.06455,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 114 116 117 118 119 120 121 122 123 124 125 126 128 129 130 131 132 133 134 135 137 138 139 141 142 150 151 152 3.5 3.6"},D:{"39":0.00587,"40":0.00587,"41":0.00587,"42":0.00587,"43":0.00587,"44":0.00587,"45":0.00587,"46":0.00587,"47":0.00587,"48":0.00587,"49":0.00587,"50":0.00587,"51":0.00587,"52":0.00587,"53":0.00587,"54":0.00587,"55":0.00587,"56":0.00587,"57":0.00587,"58":0.00587,"59":0.00587,"60":0.00587,"68":0.00293,"69":0.00293,"71":0.00293,"73":0.00293,"74":0.00293,"79":0.00293,"80":0.00293,"81":0.00293,"83":0.00293,"86":0.00293,"87":0.00293,"93":0.00293,"103":0.03227,"104":0.02347,"105":0.02347,"106":0.02347,"107":0.02347,"108":0.02347,"109":0.67189,"110":0.02054,"111":0.02347,"112":0.06455,"114":0.00293,"116":0.04988,"117":0.02347,"119":0.02054,"120":0.03521,"121":0.00293,"122":0.0088,"123":0.00293,"124":0.02934,"125":0.0088,"126":0.01174,"127":0.0088,"128":0.0088,"129":0.00587,"130":0.0088,"131":0.07335,"132":0.01467,"133":0.05575,"134":0.01467,"135":0.0176,"136":0.02054,"137":0.02054,"138":0.07922,"139":0.03521,"140":0.02934,"141":0.02641,"142":0.05281,"143":0.11736,"144":0.25232,"145":4.94086,"146":4.58584,"147":0.0176,"148":0.00293,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 61 62 63 64 65 66 67 70 72 75 76 77 78 84 85 88 89 90 91 92 94 95 96 97 98 99 100 101 102 113 115 118 149 150"},F:{"85":0.00293,"92":0.00293,"93":0.00587,"94":0.01174,"95":0.1291,"96":0.1555,"97":0.00293,"126":0.00587,"127":0.07042,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 86 87 88 89 90 91 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00293,"92":0.00587,"109":0.00587,"114":0.00587,"131":0.00293,"133":0.00293,"135":0.00293,"136":0.00293,"138":0.00293,"139":0.00293,"140":0.00293,"141":0.00293,"142":0.0088,"143":0.0088,"144":0.02347,"145":0.49878,"146":0.53399,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 132 134 137"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 10.1 11.1 12.1 13.1 14.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.3 16.4 16.5 17.0 17.2 17.3 18.0 18.2 26.5 TP","9.1":0.00293,"15.6":0.00587,"16.6":0.00587,"17.1":0.00293,"17.4":0.00293,"17.5":0.00293,"17.6":0.01174,"18.1":0.00293,"18.3":0.00293,"18.4":0.00293,"18.5-18.7":0.0088,"26.0":0.00587,"26.1":0.01174,"26.2":0.03227,"26.3":0.10269,"26.4":0.0088},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00026,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00051,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00128,"11.0-11.2":0.03222,"11.3-11.4":0.00077,"12.0-12.1":0,"12.2-12.5":0.00997,"13.0-13.1":0,"13.2":0.00384,"13.3":0.00051,"13.4-13.7":0.00128,"14.0-14.4":0.0023,"14.5-14.8":0.0023,"15.0-15.1":0.00332,"15.2-15.3":0.00205,"15.4":0.00256,"15.5":0.00281,"15.6-15.8":0.04527,"16.0":0.0046,"16.1":0.00895,"16.2":0.00512,"16.3":0.00921,"16.4":0.00205,"16.5":0.00384,"16.6-16.7":0.06292,"17.0":0.00281,"17.1":0.0046,"17.2":0.00409,"17.3":0.00563,"17.4":0.00921,"17.5":0.01739,"17.6-17.7":0.04476,"18.0":0.00972,"18.1":0.01995,"18.2":0.01049,"18.3":0.0335,"18.4":0.01611,"18.5-18.7":0.51253,"26.0":0.03197,"26.1":0.04859,"26.2":0.28593,"26.3":1.24219,"26.4":0.04655,"26.5":0},P:{"23":0.01016,"24":0.01016,"25":0.01016,"26":0.02033,"27":0.02033,"28":0.04065,"29":0.4472,_:"4 20 21 22 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.02033},I:{"0":0.01412,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":2.53634,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.00293,_:"6 7 8 9 10 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{"2.5":0.03533,_:"3.0-3.1"},R:{_:"0"},M:{"0":0.13424},Q:{_:"14.9"},O:{"0":1.01736},H:{all:0},L:{"0":78.45057}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/IQ.js b/server/api/node_modules/caniuse-lite/data/regions/IQ.js new file mode 100644 index 0000000..27cd293 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/IQ.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.01319,"115":0.02309,"146":0.0033,"147":0.0033,"148":0.04947,"149":0.01319,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 150 151 152 3.5 3.6"},D:{"55":0.0033,"56":0.0033,"58":0.0033,"60":0.0033,"63":0.00989,"65":0.0033,"66":0.0033,"68":0.0033,"69":0.00989,"70":0.0033,"72":0.0033,"73":0.0066,"74":0.0033,"75":0.0066,"79":0.0033,"80":0.0033,"81":0.00989,"83":0.01649,"86":0.0033,"87":0.01319,"89":0.0033,"91":0.01649,"92":0.0033,"93":0.0066,"95":0.01319,"96":0.0033,"97":0.0033,"98":0.05277,"101":0.0066,"102":0.0066,"103":0.25065,"104":0.20448,"105":0.20448,"106":0.20777,"107":0.20448,"108":0.20448,"109":0.55406,"110":0.21107,"111":0.20448,"112":0.54747,"113":0.0066,"114":0.02309,"115":0.0033,"116":0.39906,"117":0.20118,"119":0.01979,"120":0.21437,"122":0.0033,"123":0.0033,"124":0.20777,"125":0.0033,"126":0.02309,"127":0.0066,"128":0.01649,"129":0.0033,"130":0.0033,"131":0.42544,"132":0.00989,"133":0.41555,"134":0.01319,"135":0.01319,"136":0.0033,"137":0.03628,"138":0.06266,"139":0.01319,"140":0.01319,"141":0.0066,"142":0.02638,"143":0.02638,"144":0.26054,"145":1.57315,"146":2.01508,"147":0.00989,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 57 59 61 62 64 67 71 76 77 78 84 85 88 90 94 99 100 118 121 148 149 150"},F:{"90":0.0033,"94":0.0033,"95":0.02638,"96":0.07256,"127":0.03958,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 91 92 93 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.0033,"109":0.0033,"140":0.0033,"143":0.01649,"144":0.0033,"145":0.09234,"146":0.09894,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 141 142"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 13.1 15.1 15.2-15.3 15.4 16.0 16.4 17.0 17.3 17.4 26.5 TP","5.1":0.0033,"14.1":0.0033,"15.5":0.0066,"15.6":0.01649,"16.1":0.0033,"16.2":0.0033,"16.3":0.00989,"16.5":0.0033,"16.6":0.02638,"17.1":0.01979,"17.2":0.0033,"17.5":0.0066,"17.6":0.01979,"18.0":0.0033,"18.1":0.0066,"18.2":0.0033,"18.3":0.00989,"18.4":0.0033,"18.5-18.7":0.02968,"26.0":0.0066,"26.1":0.0066,"26.2":0.05607,"26.3":0.18139,"26.4":0.0066},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00098,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00196,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00489,"11.0-11.2":0.12321,"11.3-11.4":0.00293,"12.0-12.1":0,"12.2-12.5":0.03814,"13.0-13.1":0,"13.2":0.01467,"13.3":0.00196,"13.4-13.7":0.00489,"14.0-14.4":0.0088,"14.5-14.8":0.0088,"15.0-15.1":0.01271,"15.2-15.3":0.00782,"15.4":0.00978,"15.5":0.01076,"15.6-15.8":0.17307,"16.0":0.0176,"16.1":0.03422,"16.2":0.01956,"16.3":0.0352,"16.4":0.00782,"16.5":0.01467,"16.6-16.7":0.24054,"17.0":0.01076,"17.1":0.0176,"17.2":0.01565,"17.3":0.02151,"17.4":0.0352,"17.5":0.06649,"17.6-17.7":0.17112,"18.0":0.03716,"18.1":0.07627,"18.2":0.04009,"18.3":0.12809,"18.4":0.0616,"18.5-18.7":1.95955,"26.0":0.12223,"26.1":0.18579,"26.2":1.0932,"26.3":4.74928,"26.4":0.17796,"26.5":0},P:{"4":0.01036,"20":0.02072,"21":0.02072,"22":0.01036,"23":0.04145,"24":0.03108,"25":0.05181,"26":0.21759,"27":0.07253,"28":0.1865,"29":2.51781,_:"5.0-5.4 8.2 9.2 10.1 12.0 18.0","6.2-6.4":0.01036,"7.2-7.4":0.06217,"11.1-11.2":0.01036,"13.0":0.02072,"14.0":0.01036,"15.0":0.01036,"16.0":0.01036,"17.0":0.02072,"19.0":0.01036},I:{"0":0.05357,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00003},K:{"0":0.69031,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.10053},Q:{_:"14.9"},O:{"0":0.40882},H:{all:0},L:{"0":75.19445}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/IR.js b/server/api/node_modules/caniuse-lite/data/regions/IR.js new file mode 100644 index 0000000..c1a6ff1 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/IR.js @@ -0,0 +1 @@ +module.exports={C:{"52":0.00385,"60":0.0077,"76":0.00385,"78":0.01541,"81":0.00385,"91":0.02311,"103":0.00385,"104":0.0077,"113":0.00385,"115":0.55084,"116":0.00385,"117":0.0077,"120":0.00385,"121":0.00385,"127":0.02311,"128":0.03467,"132":0.00385,"135":0.0077,"136":0.0077,"137":0.02696,"138":0.00385,"140":0.65869,"141":0.0077,"142":0.0077,"143":0.01156,"144":0.01541,"145":0.06163,"146":0.10015,"147":0.81277,"148":3.22798,"149":0.31972,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 77 79 80 82 83 84 85 86 87 88 89 90 92 93 94 95 96 97 98 99 100 101 102 105 106 107 108 109 110 111 112 114 118 119 122 123 124 125 126 129 130 131 133 134 139 150 151 152 3.5 3.6"},D:{"49":0.02311,"58":0.03082,"60":0.00385,"70":0.0077,"71":0.0077,"74":0.00385,"76":0.01156,"77":0.00385,"80":0.01156,"81":0.0077,"83":0.0077,"84":0.01156,"85":0.00385,"86":0.03082,"87":0.00385,"90":0.02696,"92":0.01541,"94":0.00385,"96":0.00385,"97":0.01156,"98":0.01541,"99":0.00385,"103":0.00385,"104":0.0077,"105":0.00385,"106":0.0077,"107":0.01541,"108":0.01541,"109":1.42909,"110":0.0077,"111":0.00385,"112":0.0077,"113":0.00385,"114":0.01156,"115":0.01926,"116":0.01541,"117":0.01156,"118":0.03082,"119":0.01156,"120":0.0077,"121":0.0077,"122":0.01926,"123":0.02311,"124":0.21956,"125":0.01541,"126":0.01926,"127":0.01541,"128":0.03082,"129":0.03082,"130":0.03852,"131":0.22342,"132":0.05393,"133":0.06163,"134":0.07704,"135":0.02696,"136":0.07704,"137":0.13097,"138":0.13482,"139":0.104,"140":0.07704,"141":0.15023,"142":0.25808,"143":0.53928,"144":1.16716,"145":13.89031,"146":4.16401,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 59 61 62 63 64 65 66 67 68 69 72 73 75 78 79 88 89 91 93 95 100 101 102 147 148 149 150"},F:{"95":0.03082,"96":0.00385,"115":0.0077,"119":0.02696,"125":0.03467,"126":0.03852,"127":0.54698,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 120 121 122 123 124 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"15":0.00385,"18":0.0077,"84":0.01156,"86":0.00385,"90":0.00385,"92":0.13482,"100":0.00385,"109":0.06548,"116":0.01541,"122":0.11556,"124":0.00385,"125":0.00385,"126":0.00385,"130":0.00385,"131":0.01926,"132":0.0077,"133":0.00385,"134":0.01156,"135":0.00385,"137":0.00385,"138":0.01541,"140":0.01926,"141":0.03082,"142":0.01541,"143":0.09245,"144":0.12712,"145":1.23264,"146":0.32357,_:"12 13 14 16 17 79 80 81 83 85 87 88 89 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 114 115 117 118 119 120 121 123 127 128 129 136 139"},E:{"10":0.00385,"11":0.00385,_:"4 5 6 7 8 9 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.3 16.4 16.5 17.0 17.2 17.4 18.0 18.2 18.4 26.5 TP","15.6":0.0077,"16.6":0.00385,"17.1":0.00385,"17.3":0.00385,"17.5":0.00385,"17.6":0.0077,"18.1":0.01541,"18.3":0.00385,"18.5-18.7":0.04622,"26.0":0.05778,"26.1":0.00385,"26.2":0.03082,"26.3":0.104,"26.4":0.0077},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00129,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00259,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00647,"11.0-11.2":0.16299,"11.3-11.4":0.00388,"12.0-12.1":0,"12.2-12.5":0.05045,"13.0-13.1":0,"13.2":0.0194,"13.3":0.00259,"13.4-13.7":0.00647,"14.0-14.4":0.01164,"14.5-14.8":0.01164,"15.0-15.1":0.01682,"15.2-15.3":0.01035,"15.4":0.01294,"15.5":0.01423,"15.6-15.8":0.22896,"16.0":0.02328,"16.1":0.04527,"16.2":0.02587,"16.3":0.04657,"16.4":0.01035,"16.5":0.0194,"16.6-16.7":0.31821,"17.0":0.01423,"17.1":0.02328,"17.2":0.0207,"17.3":0.02846,"17.4":0.04657,"17.5":0.08796,"17.6-17.7":0.22637,"18.0":0.04915,"18.1":0.1009,"18.2":0.05304,"18.3":0.16945,"18.4":0.08149,"18.5-18.7":2.59225,"26.0":0.16169,"26.1":0.24577,"26.2":1.44618,"26.3":6.28272,"26.4":0.23542,"26.5":0},P:{"21":0.03034,"22":0.02023,"23":0.03034,"24":0.05056,"25":0.04045,"26":0.26293,"27":0.53597,"28":0.17192,"29":4.51026,_:"4 20 5.0-5.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 15.0 16.0 17.0","6.2-6.4":0.01011,"7.2-7.4":0.01011,"14.0":0.01011,"18.0":0.03034,"19.0":0.01011},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0.166,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.00385,"11":0.0077,_:"6 7 9 10 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":1.59233},Q:{_:"14.9"},O:{"0":0.04304},H:{all:0},L:{"0":44.9533}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/IS.js b/server/api/node_modules/caniuse-lite/data/regions/IS.js new file mode 100644 index 0000000..dd549f7 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/IS.js @@ -0,0 +1 @@ +module.exports={C:{"48":0.08551,"60":0.01316,"78":0.02631,"113":0.00658,"115":0.10525,"120":0.01973,"125":0.00658,"128":0.02631,"134":0.00658,"140":0.82883,"144":0.02631,"146":0.01316,"147":0.3289,"148":2.16416,"149":0.41441,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 52 53 54 55 56 57 58 59 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 114 116 117 118 119 121 122 123 124 126 127 129 130 131 132 133 135 136 137 138 139 141 142 143 145 150 151 152 3.5 3.6"},D:{"87":0.00658,"92":0.00658,"93":0.00658,"98":0.01973,"99":0.00658,"103":0.03947,"104":0.00658,"109":0.15129,"110":0.00658,"113":0.00658,"114":0.03947,"115":0.00658,"116":0.14472,"117":0.00658,"118":0.01316,"119":0.00658,"120":0.01316,"121":0.00658,"122":0.0592,"124":0.02631,"125":0.00658,"126":0.03947,"127":0.00658,"128":0.19734,"129":0.09867,"130":0.02631,"131":0.1184,"132":0.02631,"133":0.06578,"134":0.04605,"135":0.09867,"136":0.03947,"137":0.10525,"138":0.43415,"139":0.19734,"140":0.03289,"141":0.13156,"142":0.43415,"143":1.55241,"144":2.74303,"145":18.97095,"146":11.83382,"147":0.00658,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 88 89 90 91 94 95 96 97 100 101 102 105 106 107 108 111 112 123 148 149 150"},F:{"46":0.04605,"95":0.06578,"96":0.00658,"100":0.00658,"101":0.00658,"102":0.00658,"103":0.00658,"106":0.00658,"107":0.00658,"109":0.00658,"110":0.00658,"111":0.00658,"113":0.00658,"114":0.00658,"119":0.00658,"125":0.00658,"126":0.00658,"127":0.85514,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 104 105 108 112 115 116 117 118 120 121 122 123 124 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"109":0.03947,"131":0.01316,"132":0.00658,"133":0.00658,"134":0.01316,"135":0.00658,"136":0.00658,"137":0.00658,"138":0.03947,"139":0.00658,"140":0.00658,"141":0.01316,"142":0.00658,"143":0.04605,"144":0.1184,"145":4.13756,"146":3.35478,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130"},E:{"13":0.00658,"14":0.00658,_:"4 5 6 7 8 9 10 11 12 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 16.0 26.5 TP","13.1":0.01973,"14.1":0.01316,"15.2-15.3":0.00658,"15.4":0.0592,"15.5":0.01316,"15.6":0.30259,"16.1":0.01973,"16.2":0.00658,"16.3":0.00658,"16.4":0.00658,"16.5":0.02631,"16.6":0.25654,"17.0":0.02631,"17.1":0.18418,"17.2":0.10525,"17.3":0.02631,"17.4":0.0592,"17.5":0.30917,"17.6":0.40126,"18.0":0.01316,"18.1":0.04605,"18.2":0.05262,"18.3":0.07236,"18.4":0.03289,"18.5-18.7":0.10525,"26.0":0.15787,"26.1":0.19076,"26.2":0.50651,"26.3":2.32861,"26.4":0.0592},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00159,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00318,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00795,"11.0-11.2":0.20032,"11.3-11.4":0.00477,"12.0-12.1":0,"12.2-12.5":0.062,"13.0-13.1":0,"13.2":0.02385,"13.3":0.00318,"13.4-13.7":0.00795,"14.0-14.4":0.01431,"14.5-14.8":0.01431,"15.0-15.1":0.02067,"15.2-15.3":0.01272,"15.4":0.0159,"15.5":0.01749,"15.6-15.8":0.28141,"16.0":0.02862,"16.1":0.05565,"16.2":0.0318,"16.3":0.05724,"16.4":0.01272,"16.5":0.02385,"16.6-16.7":0.39111,"17.0":0.01749,"17.1":0.02862,"17.2":0.02544,"17.3":0.03498,"17.4":0.05724,"17.5":0.10811,"17.6-17.7":0.27823,"18.0":0.06041,"18.1":0.12401,"18.2":0.06518,"18.3":0.20827,"18.4":0.10016,"18.5-18.7":3.18608,"26.0":0.19873,"26.1":0.30207,"26.2":1.77746,"26.3":7.72196,"26.4":0.28935,"26.5":0},P:{"24":0.01053,"26":0.01053,"27":0.08426,"28":0.0316,"29":2.83337,_:"4 20 21 22 23 25 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.02735,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.20874,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.56121},Q:{_:"14.9"},O:{"0":0.01027},H:{all:0},L:{"0":18.0429}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/IT.js b/server/api/node_modules/caniuse-lite/data/regions/IT.js new file mode 100644 index 0000000..0feb802 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/IT.js @@ -0,0 +1 @@ +module.exports={C:{"52":0.02155,"59":0.00539,"68":0.00539,"78":0.01616,"113":0.01077,"115":0.25319,"121":0.00539,"128":0.01077,"132":0.00539,"133":0.00539,"135":0.00539,"136":0.01077,"137":0.00539,"138":0.05926,"139":0.00539,"140":0.10774,"141":0.00539,"142":0.01077,"143":0.01616,"144":0.01077,"145":0.01077,"146":0.02694,"147":0.12929,"148":2.50496,"149":0.4956,"150":0.00539,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 60 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 114 116 117 118 119 120 122 123 124 125 126 127 129 130 131 134 151 152 3.5 3.6"},D:{"39":0.29629,"40":0.29629,"41":0.29629,"42":0.29629,"43":0.29629,"44":0.29629,"45":0.29629,"46":0.29629,"47":0.29629,"48":0.29629,"49":0.31783,"50":0.30167,"51":0.30167,"52":0.29629,"53":0.29629,"54":0.29629,"55":0.29629,"56":0.30167,"57":0.29629,"58":0.29629,"59":0.29629,"60":0.29629,"66":0.00539,"77":0.01616,"79":0.00539,"85":0.01077,"86":0.01616,"87":0.01616,"102":0.00539,"103":0.0431,"104":0.00539,"105":0.01077,"106":0.01077,"107":0.01077,"108":0.01077,"109":1.39523,"110":0.01077,"111":0.01077,"112":0.01077,"113":0.00539,"114":0.01077,"116":0.15084,"117":0.01077,"118":0.00539,"119":0.03232,"120":0.03232,"121":0.03771,"122":0.05926,"123":0.01077,"124":0.02155,"125":0.01077,"126":0.02694,"127":0.03232,"128":0.12929,"129":0.01616,"130":0.0431,"131":0.08081,"132":0.0431,"133":0.05926,"134":0.09158,"135":0.06464,"136":0.03771,"137":0.03232,"138":0.20471,"139":0.08619,"140":0.09158,"141":0.06464,"142":0.167,"143":0.24242,"144":0.72186,"145":13.3005,"146":11.08106,"147":0.02155,"148":0.00539,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 61 62 63 64 65 67 68 69 70 71 72 73 74 75 76 78 80 81 83 84 88 89 90 91 92 93 94 95 96 97 98 99 100 101 115 149 150"},F:{"46":0.00539,"94":0.00539,"95":0.05926,"96":0.05387,"102":0.00539,"114":0.00539,"122":0.00539,"125":0.00539,"126":0.01616,"127":0.50099,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 97 98 99 100 101 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 120 121 123 124 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"17":0.00539,"18":0.00539,"85":0.00539,"92":0.00539,"109":0.02694,"122":0.02155,"129":0.00539,"131":0.00539,"132":0.00539,"133":0.00539,"134":0.00539,"135":0.00539,"136":0.00539,"137":0.00539,"138":0.00539,"139":0.00539,"140":0.01077,"141":0.00539,"142":0.02694,"143":0.06464,"144":0.10235,"145":2.07938,"146":2.12787,_:"12 13 14 15 16 79 80 81 83 84 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 123 124 125 126 127 128 130"},E:{"8":0.00539,"14":0.01077,_:"4 5 6 7 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 15.1 15.2-15.3 26.5 TP","11.1":0.01077,"12.1":0.00539,"13.1":0.03232,"14.1":0.02694,"15.4":0.00539,"15.5":0.00539,"15.6":0.14006,"16.0":0.01077,"16.1":0.01077,"16.2":0.01077,"16.3":0.01077,"16.4":0.01077,"16.5":0.01077,"16.6":0.12929,"17.0":0.00539,"17.1":0.10235,"17.2":0.01077,"17.3":0.02155,"17.4":0.02694,"17.5":0.05387,"17.6":0.22625,"18.0":0.01616,"18.1":0.01616,"18.2":0.01077,"18.3":0.03232,"18.4":0.03232,"18.5-18.7":0.09158,"26.0":0.04848,"26.1":0.04848,"26.2":0.28551,"26.3":1.26595,"26.4":0.07542},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00118,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00237,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00592,"11.0-11.2":0.14911,"11.3-11.4":0.00355,"12.0-12.1":0,"12.2-12.5":0.04615,"13.0-13.1":0,"13.2":0.01775,"13.3":0.00237,"13.4-13.7":0.00592,"14.0-14.4":0.01065,"14.5-14.8":0.01065,"15.0-15.1":0.01538,"15.2-15.3":0.00947,"15.4":0.01183,"15.5":0.01302,"15.6-15.8":0.20947,"16.0":0.0213,"16.1":0.04142,"16.2":0.02367,"16.3":0.0426,"16.4":0.00947,"16.5":0.01775,"16.6-16.7":0.29113,"17.0":0.01302,"17.1":0.0213,"17.2":0.01894,"17.3":0.02604,"17.4":0.0426,"17.5":0.08047,"17.6-17.7":0.2071,"18.0":0.04497,"18.1":0.09231,"18.2":0.04852,"18.3":0.15503,"18.4":0.07456,"18.5-18.7":2.37161,"26.0":0.14793,"26.1":0.22485,"26.2":1.32309,"26.3":5.74796,"26.4":0.21539,"26.5":0},P:{"4":0.02071,"21":0.01036,"22":0.01036,"23":0.01036,"24":0.06214,"25":0.01036,"26":0.03107,"27":0.04143,"28":0.08286,"29":2.09214,_:"20 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 18.0","16.0":0.01036,"17.0":0.01036,"19.0":0.01036},I:{"0":0.02765,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.30439,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.38741},Q:{_:"14.9"},O:{"0":0.07379},H:{all:0},L:{"0":35.586}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/JE.js b/server/api/node_modules/caniuse-lite/data/regions/JE.js new file mode 100644 index 0000000..919205e --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/JE.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.00433,"115":0.013,"122":0.00433,"125":0.00433,"140":0.03467,"146":0.03034,"147":0.09968,"148":1.08783,"149":0.09101,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 123 124 126 127 128 129 130 131 132 133 134 135 136 137 138 139 141 142 143 144 145 150 151 152 3.5 3.6"},D:{"80":0.17769,"83":0.013,"87":0.00867,"98":0.013,"99":0.00433,"103":0.03901,"109":0.07801,"110":0.00433,"116":0.03034,"119":0.00433,"120":0.00433,"122":0.19936,"123":0.00433,"124":0.00867,"126":0.03901,"128":0.013,"131":0.33805,"132":0.00433,"133":0.00433,"134":0.00433,"135":0.08235,"138":0.50274,"139":0.03467,"140":0.00433,"141":0.00433,"142":0.07368,"143":0.08235,"144":0.77145,"145":7.87921,"146":5.06645,"147":0.26004,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 81 84 85 86 88 89 90 91 92 93 94 95 96 97 100 101 102 104 105 106 107 108 111 112 113 114 115 117 118 121 125 127 129 130 136 137 148 149 150"},F:{"95":0.00867,"96":0.013,"121":0.00433,"127":0.13869,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 122 123 124 125 126 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"109":0.01734,"129":0.013,"132":0.06934,"135":0.04767,"136":0.00433,"139":0.013,"140":0.00433,"142":0.00433,"143":0.06068,"144":0.10402,"145":4.38601,"146":3.4802,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 130 131 133 134 137 138 141"},E:{"15":0.00433,_:"4 5 6 7 8 9 10 11 12 13 14 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 15.1 15.2-15.3 15.4 17.0 18.0 26.5 TP","12.1":0.00433,"13.1":0.00433,"14.1":0.12135,"15.5":0.03467,"15.6":0.39439,"16.0":0.02167,"16.1":0.01734,"16.2":0.00433,"16.3":0.01734,"16.4":0.02167,"16.5":0.00867,"16.6":0.49408,"17.1":0.55042,"17.2":0.00867,"17.3":0.03034,"17.4":0.03034,"17.5":0.06501,"17.6":0.30771,"18.1":0.026,"18.2":0.00433,"18.3":0.10402,"18.4":0.00433,"18.5-18.7":0.42907,"26.0":0.02167,"26.1":0.02167,"26.2":1.3132,"26.3":5.65587,"26.4":0.13002},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00316,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00632,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.0158,"11.0-11.2":0.39822,"11.3-11.4":0.00948,"12.0-12.1":0,"12.2-12.5":0.12326,"13.0-13.1":0,"13.2":0.04741,"13.3":0.00632,"13.4-13.7":0.0158,"14.0-14.4":0.02844,"14.5-14.8":0.02844,"15.0-15.1":0.04109,"15.2-15.3":0.02528,"15.4":0.03161,"15.5":0.03477,"15.6-15.8":0.55941,"16.0":0.05689,"16.1":0.11062,"16.2":0.06321,"16.3":0.11378,"16.4":0.02528,"16.5":0.04741,"16.6-16.7":0.77748,"17.0":0.03477,"17.1":0.05689,"17.2":0.05057,"17.3":0.06953,"17.4":0.11378,"17.5":0.21491,"17.6-17.7":0.55309,"18.0":0.1201,"18.1":0.24652,"18.2":0.12958,"18.3":0.41403,"18.4":0.19911,"18.5-18.7":6.33365,"26.0":0.39506,"26.1":0.6005,"26.2":3.53344,"26.3":15.35057,"26.4":0.57521,"26.5":0},P:{"28":0.02184,"29":3.74539,_:"4 20 21 22 23 24 25 26 27 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.00566,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0.01133,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.10197},Q:{_:"14.9"},O:{"0":0.01133},H:{all:0},L:{"0":26.6321}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/JM.js b/server/api/node_modules/caniuse-lite/data/regions/JM.js new file mode 100644 index 0000000..ad25734 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/JM.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.06182,"115":0.06182,"125":0.00562,"140":0.01124,"147":0.14612,"148":0.8149,"149":0.13488,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 126 127 128 129 130 131 132 133 134 135 136 137 138 139 141 142 143 144 145 146 150 151 152 3.5 3.6"},D:{"49":0.00562,"56":0.0281,"65":0.00562,"66":0.00562,"68":0.00562,"69":0.00562,"70":0.00562,"73":0.0281,"75":0.00562,"76":0.01124,"79":0.00562,"81":0.01124,"83":0.02248,"86":0.02248,"87":0.01124,"91":0.00562,"93":0.01686,"98":0.00562,"101":0.00562,"103":0.64068,"104":0.56762,"105":0.55638,"106":0.55076,"107":0.55638,"108":0.55076,"109":0.71936,"110":0.55076,"111":0.562,"112":1.21954,"113":0.01124,"114":0.01124,"115":0.00562,"116":1.14086,"117":0.54514,"119":0.01686,"120":0.57324,"121":0.07868,"122":0.01686,"123":0.08992,"124":0.58448,"125":0.00562,"126":0.1124,"127":0.00562,"128":0.03934,"129":0.01124,"130":0.02248,"131":1.15772,"132":0.12364,"133":1.13524,"134":0.01686,"135":0.01686,"136":0.02248,"137":0.03372,"138":0.85986,"139":1.70286,"140":0.80366,"141":0.7868,"142":0.85424,"143":0.96664,"144":1.78716,"145":10.8185,"146":7.306,"147":0.80928,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 57 58 59 60 61 62 63 64 67 71 72 74 77 78 80 84 85 88 89 90 92 94 95 96 97 99 100 102 118 148 149 150"},F:{"94":0.00562,"95":0.03372,"96":0.05058,"126":0.01686,"127":0.37654,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.01124,"92":0.01124,"109":0.00562,"114":0.00562,"122":0.00562,"133":0.00562,"138":0.00562,"140":0.00562,"141":0.01124,"142":0.00562,"143":0.0562,"144":0.10678,"145":2.35478,"146":2.0513,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 123 124 125 126 127 128 129 130 131 132 134 135 136 137 139"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.5 17.2 26.5 TP","12.1":0.00562,"13.1":0.02248,"14.1":0.01124,"15.6":0.15174,"16.3":0.00562,"16.4":0.00562,"16.6":0.1405,"17.0":0.01124,"17.1":0.12364,"17.3":0.00562,"17.4":0.01686,"17.5":0.01124,"17.6":0.14612,"18.0":0.00562,"18.1":0.01686,"18.2":0.00562,"18.3":0.06744,"18.4":0.0281,"18.5-18.7":0.06744,"26.0":0.03934,"26.1":0.04496,"26.2":0.24166,"26.3":1.14086,"26.4":0.02248},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00143,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00286,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00715,"11.0-11.2":0.1803,"11.3-11.4":0.00429,"12.0-12.1":0,"12.2-12.5":0.05581,"13.0-13.1":0,"13.2":0.02146,"13.3":0.00286,"13.4-13.7":0.00715,"14.0-14.4":0.01288,"14.5-14.8":0.01288,"15.0-15.1":0.0186,"15.2-15.3":0.01145,"15.4":0.01431,"15.5":0.01574,"15.6-15.8":0.25328,"16.0":0.02576,"16.1":0.05008,"16.2":0.02862,"16.3":0.05151,"16.4":0.01145,"16.5":0.02146,"16.6-16.7":0.35201,"17.0":0.01574,"17.1":0.02576,"17.2":0.0229,"17.3":0.03148,"17.4":0.05151,"17.5":0.0973,"17.6-17.7":0.25042,"18.0":0.05438,"18.1":0.11161,"18.2":0.05867,"18.3":0.18745,"18.4":0.09015,"18.5-18.7":2.86762,"26.0":0.17887,"26.1":0.27188,"26.2":1.5998,"26.3":6.9501,"26.4":0.26043,"26.5":0},P:{"21":0.01067,"24":0.02134,"25":0.01067,"26":0.04267,"27":0.02134,"28":0.16002,"29":2.51764,_:"4 20 22 23 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 17.0 18.0 19.0","7.2-7.4":0.02134,"16.0":0.01067},I:{"0":0.02188,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.22776,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.18834},Q:{"14.9":0.00876},O:{"0":0.12702},H:{all:0},L:{"0":32.70146}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/JO.js b/server/api/node_modules/caniuse-lite/data/regions/JO.js new file mode 100644 index 0000000..2f38ed0 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/JO.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.0056,"113":0.0014,"115":0.03218,"136":0.0014,"139":0.0028,"140":0.0028,"144":0.0014,"146":0.0014,"147":0.00839,"148":0.31058,"149":0.02798,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 137 138 141 142 143 145 150 151 152 3.5 3.6"},D:{"66":0.0014,"69":0.0014,"73":0.0014,"83":0.0014,"87":0.0028,"88":0.0014,"91":0.0014,"95":0.0014,"96":0.0014,"97":0.0014,"98":0.02518,"103":0.09233,"104":0.08814,"105":0.08814,"106":0.08814,"107":0.08814,"108":0.08954,"109":0.51623,"110":0.08814,"111":0.08814,"112":0.22104,"113":0.0014,"114":0.0042,"116":0.17907,"117":0.09793,"118":0.0014,"119":0.00839,"120":0.10493,"121":0.0014,"122":0.02518,"123":0.0014,"124":0.09233,"125":0.0014,"126":0.0056,"127":0.0028,"128":0.00979,"129":0.0028,"130":0.0028,"131":0.19306,"132":0.007,"133":0.18187,"134":0.0042,"135":0.00979,"136":0.0056,"137":0.01679,"138":0.05736,"139":0.02378,"140":0.00979,"141":0.0056,"142":0.01959,"143":0.05736,"144":0.20425,"145":3.30444,"146":2.27617,"147":0.0028,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 67 68 70 71 72 74 75 76 77 78 79 80 81 84 85 86 89 90 92 93 94 99 100 101 102 115 148 149 150"},F:{"95":0.007,"96":0.00979,"122":0.0014,"126":0.00839,"127":0.03637,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.0014,"92":0.0014,"109":0.007,"135":0.0014,"136":0.0014,"137":0.0014,"139":0.0014,"140":0.0028,"141":0.0014,"142":0.0042,"143":0.01119,"144":0.01819,"145":0.4225,"146":0.37913,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 138"},E:{"14":0.0014,_:"4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 15.2-15.3 15.4 16.0 16.1 16.4 17.0 17.2 18.2 26.5 TP","5.1":0.0028,"15.5":0.0028,"15.6":0.00839,"16.2":0.0042,"16.3":0.0014,"16.5":0.0042,"16.6":0.03917,"17.1":0.00979,"17.3":0.0042,"17.4":0.0042,"17.5":0.0014,"17.6":0.01399,"18.0":0.0014,"18.1":0.0028,"18.3":0.0056,"18.4":0.0014,"18.5-18.7":0.007,"26.0":0.0014,"26.1":0.0042,"26.2":0.03358,"26.3":0.16508,"26.4":0.0056},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0021,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.0042,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.01051,"11.0-11.2":0.26486,"11.3-11.4":0.00631,"12.0-12.1":0,"12.2-12.5":0.08198,"13.0-13.1":0,"13.2":0.03153,"13.3":0.0042,"13.4-13.7":0.01051,"14.0-14.4":0.01892,"14.5-14.8":0.01892,"15.0-15.1":0.02733,"15.2-15.3":0.01682,"15.4":0.02102,"15.5":0.02312,"15.6-15.8":0.37207,"16.0":0.03784,"16.1":0.07357,"16.2":0.04204,"16.3":0.07568,"16.4":0.01682,"16.5":0.03153,"16.6-16.7":0.51711,"17.0":0.02312,"17.1":0.03784,"17.2":0.03363,"17.3":0.04625,"17.4":0.07568,"17.5":0.14294,"17.6-17.7":0.36786,"18.0":0.07988,"18.1":0.16396,"18.2":0.08619,"18.3":0.27537,"18.4":0.13243,"18.5-18.7":4.21258,"26.0":0.26276,"26.1":0.3994,"26.2":2.35013,"26.3":10.20982,"26.4":0.38258,"26.5":0},P:{"21":0.01011,"22":0.01011,"23":0.01011,"24":0.01011,"25":0.03033,"26":0.03033,"27":0.03033,"28":0.10109,"29":1.30406,_:"4 20 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.01011,"13.0":0.01011},I:{"0":0.30076,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00015},K:{"0":0.04301,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.05161},Q:{_:"14.9"},O:{"0":0.0172},H:{all:0},L:{"0":66.5919}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/JP.js b/server/api/node_modules/caniuse-lite/data/regions/JP.js new file mode 100644 index 0000000..ff6d74f --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/JP.js @@ -0,0 +1 @@ +module.exports={C:{"52":0.01614,"56":0.00538,"78":0.01076,"115":0.12374,"128":0.00538,"133":0.00538,"134":0.00538,"135":0.00538,"136":0.00538,"138":0.00538,"139":0.00538,"140":0.0538,"142":0.00538,"143":0.00538,"144":0.00538,"145":0.00538,"146":0.01614,"147":0.08608,"148":1.63014,"149":0.31742,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 129 130 131 132 137 141 150 151 152 3.5 3.6"},D:{"39":0.32818,"40":0.33356,"41":0.32818,"42":0.32818,"43":0.32818,"44":0.32818,"45":0.32818,"46":0.32818,"47":0.32818,"48":0.32818,"49":0.3497,"50":0.32818,"51":0.32818,"52":0.32818,"53":0.32818,"54":0.32818,"55":0.32818,"56":0.32818,"57":0.33356,"58":0.32818,"59":0.32818,"60":0.32818,"61":0.00538,"80":0.00538,"81":0.01614,"83":0.00538,"86":0.01076,"87":0.00538,"89":0.00538,"90":0.00538,"93":0.00538,"95":0.01076,"97":0.00538,"98":0.00538,"100":0.00538,"101":0.01076,"102":0.00538,"103":0.0269,"106":0.01614,"107":0.01076,"108":0.01076,"109":0.4035,"110":0.00538,"111":0.04304,"112":0.01076,"114":0.02152,"115":0.00538,"116":0.06994,"117":0.01076,"118":0.01076,"119":0.06994,"120":0.03228,"121":0.03766,"122":0.01614,"123":0.01614,"124":0.0269,"125":0.03766,"126":0.02152,"127":0.0269,"128":0.08608,"129":0.02152,"130":0.0538,"131":0.08608,"132":0.03766,"133":0.03228,"134":0.03766,"135":0.04842,"136":0.06994,"137":0.06456,"138":0.19368,"139":0.12374,"140":0.06994,"141":0.0538,"142":0.1345,"143":0.19906,"144":0.6187,"145":8.61338,"146":7.22534,"147":0.04304,"148":0.02152,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 84 85 88 91 92 94 96 99 104 105 113 149 150"},F:{"90":0.00538,"95":0.03228,"96":0.04304,"102":0.00538,"121":0.00538,"126":0.00538,"127":0.10222,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 91 92 93 94 97 98 99 100 101 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"17":0.00538,"18":0.00538,"92":0.01614,"100":0.00538,"106":0.00538,"109":0.1345,"112":0.00538,"113":0.00538,"114":0.00538,"115":0.00538,"116":0.00538,"117":0.00538,"118":0.00538,"119":0.00538,"120":0.00538,"121":0.00538,"122":0.02152,"123":0.00538,"124":0.00538,"125":0.00538,"126":0.01076,"127":0.00538,"128":0.00538,"129":0.00538,"130":0.01076,"131":0.01614,"132":0.00538,"133":0.01614,"134":0.02152,"135":0.01614,"136":0.01614,"137":0.01614,"138":0.0269,"139":0.02152,"140":0.0269,"141":0.03228,"142":0.05918,"143":0.09684,"144":0.3228,"145":5.44994,"146":5.84268,_:"12 13 14 15 16 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 101 102 103 104 105 107 108 110 111"},E:{"13":0.00538,"14":0.01076,_:"4 5 6 7 8 9 10 11 12 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 26.5 TP","11.1":0.00538,"12.1":0.00538,"13.1":0.0269,"14.1":0.0538,"15.1":0.00538,"15.2-15.3":0.00538,"15.4":0.00538,"15.5":0.00538,"15.6":0.11298,"16.0":0.00538,"16.1":0.01076,"16.2":0.01076,"16.3":0.02152,"16.4":0.01076,"16.5":0.00538,"16.6":0.15064,"17.0":0.00538,"17.1":0.11298,"17.2":0.00538,"17.3":0.00538,"17.4":0.02152,"17.5":0.0269,"17.6":0.14526,"18.0":0.01076,"18.1":0.01614,"18.2":0.00538,"18.3":0.03766,"18.4":0.01076,"18.5-18.7":0.0538,"26.0":0.03228,"26.1":0.03766,"26.2":0.1614,"26.3":0.96302,"26.4":0.03766},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00198,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00396,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00989,"11.0-11.2":0.24926,"11.3-11.4":0.00593,"12.0-12.1":0,"12.2-12.5":0.07715,"13.0-13.1":0,"13.2":0.02967,"13.3":0.00396,"13.4-13.7":0.00989,"14.0-14.4":0.0178,"14.5-14.8":0.0178,"15.0-15.1":0.02572,"15.2-15.3":0.01583,"15.4":0.01978,"15.5":0.02176,"15.6-15.8":0.35016,"16.0":0.03561,"16.1":0.06924,"16.2":0.03957,"16.3":0.07122,"16.4":0.01583,"16.5":0.02967,"16.6-16.7":0.48666,"17.0":0.02176,"17.1":0.03561,"17.2":0.03165,"17.3":0.04352,"17.4":0.07122,"17.5":0.13452,"17.6-17.7":0.3462,"18.0":0.07517,"18.1":0.15431,"18.2":0.08111,"18.3":0.25916,"18.4":0.12463,"18.5-18.7":3.96448,"26.0":0.24729,"26.1":0.37587,"26.2":2.21172,"26.3":9.60853,"26.4":0.36005,"26.5":0},P:{"27":0.01089,"28":0.03267,"29":0.71874,_:"4 20 21 22 23 24 25 26 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.03231,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.11088,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.15064,"11":0.07532,_:"6 7 9 10 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.4389},Q:{"14.9":0.07392},O:{"0":0.20328},H:{all:0},L:{"0":32.45872}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/KE.js b/server/api/node_modules/caniuse-lite/data/regions/KE.js new file mode 100644 index 0000000..c6b809f --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/KE.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.03623,"47":0.00453,"78":0.00453,"115":0.09964,"123":0.00453,"127":0.00453,"128":0.00453,"132":0.00453,"136":0.00906,"140":0.03623,"141":0.00453,"143":0.00453,"144":0.00453,"145":0.00453,"146":0.00906,"147":0.08605,"148":1.00544,"149":0.15852,"150":0.00453,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 124 125 126 129 130 131 133 134 135 137 138 139 142 151 152 3.5 3.6"},D:{"51":0.00906,"65":0.00453,"66":0.00453,"68":0.00453,"69":0.00906,"70":0.00453,"72":0.00906,"73":0.01812,"75":0.00453,"76":0.00453,"83":0.02717,"86":0.00453,"87":0.01812,"91":0.00453,"93":0.00453,"95":0.00453,"98":0.01359,"100":0.00453,"103":0.34873,"104":0.3125,"105":0.3125,"106":0.31703,"107":0.3125,"108":0.31703,"109":0.85145,"110":0.3125,"111":0.31703,"112":0.70652,"113":0.01359,"114":0.02265,"116":0.62953,"117":0.30797,"119":0.01812,"120":0.32156,"121":0.00453,"122":0.02717,"123":0.00453,"124":0.31703,"125":0.00906,"126":0.0317,"127":0.00906,"128":0.03623,"129":0.00906,"130":0.04076,"131":0.66123,"132":0.01812,"133":0.63406,"134":0.01812,"135":0.02717,"136":0.02265,"137":0.0317,"138":0.16304,"139":0.08152,"140":0.04529,"141":0.02717,"142":0.06341,"143":0.18116,"144":0.5616,"145":8.23372,"146":6.90673,"147":0.0317,"148":0.00453,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 52 53 54 55 56 57 58 59 60 61 62 63 64 67 71 74 77 78 79 80 81 84 85 88 89 90 92 94 96 97 99 101 102 115 118 149 150"},F:{"46":0.00453,"89":0.00453,"90":0.02265,"92":0.01812,"93":0.01359,"94":0.01359,"95":0.1721,"96":0.20381,"97":0.00453,"126":0.01359,"127":0.37138,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 91 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.01812,"90":0.00906,"92":0.0317,"100":0.00453,"109":0.00906,"114":0.01812,"122":0.00906,"125":0.00906,"133":0.00453,"138":0.00453,"139":0.00453,"140":0.00906,"141":0.00453,"142":0.00906,"143":0.02265,"144":0.05888,"145":1.23642,"146":1.08243,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 123 124 126 127 128 129 130 131 132 134 135 136 137"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 12.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.3 16.4 16.5 17.0 17.2 18.0 18.2 26.5 TP","5.1":0.01359,"11.1":0.00453,"13.1":0.00453,"14.1":0.00453,"15.6":0.03623,"16.6":0.0317,"17.1":0.00906,"17.3":0.00453,"17.4":0.00453,"17.5":0.00906,"17.6":0.04982,"18.1":0.00453,"18.3":0.00906,"18.4":0.00453,"18.5-18.7":0.00906,"26.0":0.00906,"26.1":0.00906,"26.2":0.02717,"26.3":0.14946,"26.4":0.01359},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00023,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00047,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00117,"11.0-11.2":0.0295,"11.3-11.4":0.0007,"12.0-12.1":0,"12.2-12.5":0.00913,"13.0-13.1":0,"13.2":0.00351,"13.3":0.00047,"13.4-13.7":0.00117,"14.0-14.4":0.00211,"14.5-14.8":0.00211,"15.0-15.1":0.00304,"15.2-15.3":0.00187,"15.4":0.00234,"15.5":0.00258,"15.6-15.8":0.04145,"16.0":0.00421,"16.1":0.0082,"16.2":0.00468,"16.3":0.00843,"16.4":0.00187,"16.5":0.00351,"16.6-16.7":0.0576,"17.0":0.00258,"17.1":0.00421,"17.2":0.00375,"17.3":0.00515,"17.4":0.00843,"17.5":0.01592,"17.6-17.7":0.04098,"18.0":0.0089,"18.1":0.01826,"18.2":0.0096,"18.3":0.03067,"18.4":0.01475,"18.5-18.7":0.46925,"26.0":0.02927,"26.1":0.04449,"26.2":0.26179,"26.3":1.13731,"26.4":0.04262,"26.5":0},P:{"22":0.01034,"24":0.03102,"25":0.01034,"26":0.02068,"27":0.04136,"28":0.1551,"29":0.82718,_:"4 20 21 23 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.03102},I:{"0":0.0328,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":18.55857,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.20243},Q:{_:"14.9"},O:{"0":0.12036},H:{all:0.01},L:{"0":46.48504}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/KG.js b/server/api/node_modules/caniuse-lite/data/regions/KG.js new file mode 100644 index 0000000..0075f9a --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/KG.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.0618,"52":0.02247,"115":0.06742,"127":0.00562,"128":0.00562,"140":0.03371,"143":0.00562,"145":0.00562,"146":0.00562,"147":0.05618,"148":0.61798,"149":0.26966,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 129 130 131 132 133 134 135 136 137 138 139 141 142 144 150 151 152 3.5 3.6"},D:{"49":0.01124,"66":0.00562,"68":0.00562,"69":0.00562,"75":0.00562,"81":0.00562,"90":0.00562,"100":0.00562,"102":0.00562,"103":0.76405,"104":0.76405,"105":0.74158,"106":0.78652,"107":0.74719,"108":0.73596,"109":2.19664,"110":0.73596,"111":0.74719,"112":1.67978,"114":0.00562,"115":0.00562,"116":1.47192,"117":0.74719,"118":0.01124,"119":0.02247,"120":0.76967,"121":0.01685,"122":0.03371,"123":0.01124,"124":0.74158,"125":0.01685,"126":0.02247,"127":0.00562,"128":0.05056,"129":0.07865,"130":0.01124,"131":1.5618,"132":0.01685,"133":1.54495,"134":0.01685,"135":0.02247,"136":0.02809,"137":0.01685,"138":0.0618,"139":0.03371,"140":0.02809,"141":0.03371,"142":0.11236,"143":0.23596,"144":1.0618,"145":10.96634,"146":9.26408,"147":0.25281,"148":0.01124,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 67 70 71 72 73 74 76 77 78 79 80 83 84 85 86 87 88 89 91 92 93 94 95 96 97 98 99 101 113 149 150"},F:{"54":0.00562,"56":0.00562,"79":0.00562,"85":0.03371,"95":0.11798,"96":0.24719,"109":0.00562,"111":0.01124,"120":0.00562,"122":0.00562,"126":0.02809,"127":0.97753,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 55 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 110 112 113 114 115 116 117 118 119 121 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00562,"92":0.02247,"112":0.00562,"122":0.00562,"131":0.01124,"134":0.00562,"137":0.00562,"138":0.00562,"141":0.00562,"142":0.00562,"143":0.01685,"144":0.02247,"145":0.96068,"146":0.89888,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 113 114 115 116 117 118 119 120 121 123 124 125 126 127 128 129 130 132 133 135 136 139 140"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 15.5 16.0 16.2 16.3 18.0 18.1 26.5 TP","5.1":0.01124,"9.1":0.00562,"13.1":0.01124,"14.1":0.00562,"15.6":0.02247,"16.1":0.00562,"16.4":0.00562,"16.5":0.00562,"16.6":0.02809,"17.0":0.00562,"17.1":0.01685,"17.2":0.00562,"17.3":0.00562,"17.4":0.01685,"17.5":0.02247,"17.6":0.05056,"18.2":0.00562,"18.3":0.05056,"18.4":0.01124,"18.5-18.7":0.05618,"26.0":0.04494,"26.1":0.02809,"26.2":0.14045,"26.3":0.53933,"26.4":0.01124},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00088,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00176,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.0044,"11.0-11.2":0.11076,"11.3-11.4":0.00264,"12.0-12.1":0,"12.2-12.5":0.03428,"13.0-13.1":0,"13.2":0.01319,"13.3":0.00176,"13.4-13.7":0.0044,"14.0-14.4":0.00791,"14.5-14.8":0.00791,"15.0-15.1":0.01143,"15.2-15.3":0.00703,"15.4":0.00879,"15.5":0.00967,"15.6-15.8":0.15559,"16.0":0.01582,"16.1":0.03077,"16.2":0.01758,"16.3":0.03165,"16.4":0.00703,"16.5":0.01319,"16.6-16.7":0.21624,"17.0":0.00967,"17.1":0.01582,"17.2":0.01406,"17.3":0.01934,"17.4":0.03165,"17.5":0.05977,"17.6-17.7":0.15383,"18.0":0.0334,"18.1":0.06856,"18.2":0.03604,"18.3":0.11515,"18.4":0.05538,"18.5-18.7":1.76157,"26.0":0.10988,"26.1":0.16702,"26.2":0.98275,"26.3":4.26944,"26.4":0.15998,"26.5":0},P:{"22":0.01057,"23":0.01057,"24":0.01057,"25":0.01057,"26":0.01057,"27":0.03171,"28":0.14799,"29":0.75054,_:"4 20 21 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 19.0","7.2-7.4":0.02114,"18.0":0.02114},I:{"0":0.01751,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.60033,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.20157},Q:{"14.9":0.04382},O:{"0":0.48202},H:{all:0},L:{"0":37.63684}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/KH.js b/server/api/node_modules/caniuse-lite/data/regions/KH.js new file mode 100644 index 0000000..3a1143e --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/KH.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.00473,"47":0.01893,"78":0.1183,"115":0.07571,"125":0.00473,"127":0.00473,"133":0.00473,"134":0.00473,"135":0.00473,"136":0.00473,"138":0.00473,"139":0.00473,"140":0.01893,"146":0.00946,"147":0.04732,"148":0.64355,"149":0.11357,"150":0.00473,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 126 128 129 130 131 132 137 141 142 143 144 145 151 152 3.5 3.6"},D:{"49":0.00473,"56":0.00473,"70":0.00473,"78":0.00473,"79":0.00473,"100":0.0142,"101":0.00473,"103":0.12303,"104":0.10884,"105":0.11357,"106":0.1183,"107":0.11357,"108":0.10884,"109":0.41642,"110":0.10884,"111":0.1183,"112":0.35963,"114":0.02839,"115":0.00946,"116":0.24133,"117":0.11357,"118":0.00473,"119":0.00473,"120":0.16562,"121":0.00473,"122":0.02366,"123":0.0142,"124":0.12776,"125":0.00946,"126":0.0142,"127":0.01893,"128":0.02366,"129":0.02366,"130":0.04732,"131":0.7098,"132":0.02839,"133":0.24606,"134":0.1041,"135":0.03312,"136":0.0142,"137":0.2366,"138":0.19401,"139":0.14196,"140":0.08044,"141":0.03312,"142":0.08044,"143":0.25553,"144":0.55364,"145":14.64554,"146":12.34106,"147":0.04259,"148":0.00473,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 57 58 59 60 61 62 63 64 65 66 67 68 69 71 72 73 74 75 76 77 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 102 113 149 150"},F:{"95":0.02839,"96":0.08991,"114":0.00473,"126":0.0142,"127":0.20348,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 120 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.00473,"18":0.00946,"89":0.00946,"92":0.02366,"107":0.00473,"109":0.00473,"112":0.00473,"114":0.00473,"118":0.00946,"122":0.00473,"128":0.00473,"131":0.0142,"132":0.00946,"133":0.00946,"134":0.00946,"135":0.00473,"136":0.00946,"137":0.00473,"138":0.00946,"139":0.00473,"140":0.00473,"141":0.00473,"142":0.00946,"143":0.03312,"144":0.09937,"145":1.34862,"146":1.43853,_:"12 13 15 16 17 79 80 81 83 84 85 86 87 88 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 108 110 111 113 115 116 117 119 120 121 123 124 125 126 127 129 130"},E:{"14":0.00473,_:"4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 16.2 16.4 17.0 17.3 26.5 TP","13.1":0.00473,"14.1":0.00473,"15.5":0.00473,"15.6":0.08518,"16.0":0.00946,"16.1":0.00473,"16.3":0.00473,"16.5":0.00473,"16.6":0.05678,"17.1":0.05678,"17.2":0.00473,"17.4":0.00946,"17.5":0.00946,"17.6":0.07098,"18.0":0.00473,"18.1":0.00946,"18.2":0.00473,"18.3":0.00946,"18.4":0.00473,"18.5-18.7":0.05205,"26.0":0.01893,"26.1":0.03312,"26.2":0.1041,"26.3":0.49686,"26.4":0.03786},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00169,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00338,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00845,"11.0-11.2":0.21294,"11.3-11.4":0.00507,"12.0-12.1":0,"12.2-12.5":0.06591,"13.0-13.1":0,"13.2":0.02535,"13.3":0.00338,"13.4-13.7":0.00845,"14.0-14.4":0.01521,"14.5-14.8":0.01521,"15.0-15.1":0.02197,"15.2-15.3":0.01352,"15.4":0.0169,"15.5":0.01859,"15.6-15.8":0.29913,"16.0":0.03042,"16.1":0.05915,"16.2":0.0338,"16.3":0.06084,"16.4":0.01352,"16.5":0.02535,"16.6-16.7":0.41573,"17.0":0.01859,"17.1":0.03042,"17.2":0.02704,"17.3":0.03718,"17.4":0.06084,"17.5":0.11492,"17.6-17.7":0.29575,"18.0":0.06422,"18.1":0.13182,"18.2":0.06929,"18.3":0.22139,"18.4":0.10647,"18.5-18.7":3.38671,"26.0":0.21125,"26.1":0.3211,"26.2":1.88939,"26.3":8.20821,"26.4":0.30758,"26.5":0},P:{"4":0.09159,"23":0.01018,"25":0.01018,"26":0.01018,"27":0.01018,"28":0.04071,"29":0.71238,_:"20 21 22 24 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.02632,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.33715,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.02524,"11":0.05047,_:"6 7 9 10 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.23179},Q:{"14.9":0.07902},O:{"0":0.69538},H:{all:0},L:{"0":41.06494}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/KI.js b/server/api/node_modules/caniuse-lite/data/regions/KI.js new file mode 100644 index 0000000..e337447 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/KI.js @@ -0,0 +1 @@ +module.exports={C:{"115":0.00936,"123":0.00936,"125":0.08422,"146":0.06551,"147":0.00936,"148":0.32753,"149":0.01872,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 124 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 150 151 152 3.5 3.6"},D:{"71":0.00936,"89":0.00936,"109":0.01872,"119":0.00936,"120":0.02807,"122":0.00936,"125":0.00936,"126":0.06551,"127":0.00936,"128":0.04679,"135":0.08422,"136":0.03743,"138":0.23395,"139":0.16844,"141":0.00936,"142":0.03743,"143":0.41175,"144":0.56616,"145":4.29064,"146":3.33145,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 72 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 121 123 124 129 130 131 132 133 134 137 140 147 148 149 150"},F:{"95":0.03743,"112":0.02807,"127":0.31817,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 113 114 115 116 117 118 119 120 121 122 123 124 125 126 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.04679,"109":0.1123,"113":0.00936,"129":0.00936,"136":0.01872,"137":0.00936,"139":0.01872,"142":0.10294,"143":0.03743,"144":0.18716,"145":4.72579,"146":4.66028,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 130 131 132 133 134 135 138 140 141"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.3 16.4 16.5 17.0 17.1 17.2 17.4 17.6 18.0 18.1 18.2 18.3 18.4 18.5-18.7 26.0 26.1 26.2 26.4 26.5 TP","14.1":1.26333,"15.6":0.00936,"16.6":0.02807,"17.3":0.00936,"17.5":0.12165,"26.3":0.07486},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00021,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00042,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00104,"11.0-11.2":0.02622,"11.3-11.4":0.00062,"12.0-12.1":0,"12.2-12.5":0.00812,"13.0-13.1":0,"13.2":0.00312,"13.3":0.00042,"13.4-13.7":0.00104,"14.0-14.4":0.00187,"14.5-14.8":0.00187,"15.0-15.1":0.00271,"15.2-15.3":0.00166,"15.4":0.00208,"15.5":0.00229,"15.6-15.8":0.03683,"16.0":0.00375,"16.1":0.00728,"16.2":0.00416,"16.3":0.00749,"16.4":0.00166,"16.5":0.00312,"16.6-16.7":0.05119,"17.0":0.00229,"17.1":0.00375,"17.2":0.00333,"17.3":0.00458,"17.4":0.00749,"17.5":0.01415,"17.6-17.7":0.03642,"18.0":0.00791,"18.1":0.01623,"18.2":0.00853,"18.3":0.02726,"18.4":0.01311,"18.5-18.7":0.41701,"26.0":0.02601,"26.1":0.03954,"26.2":0.23264,"26.3":1.01069,"26.4":0.03787,"26.5":0},P:{"21":0.12207,"22":0.02034,"24":0.01017,"25":0.61034,"26":0.03052,"27":0.22379,"28":0.4781,"29":6.08306,_:"4 20 23 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 16.0 18.0 19.0","7.2-7.4":0.04069,"15.0":0.03052,"17.0":0.04069},I:{"0":0.15952,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00008},K:{"0":0.05854,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.10644},Q:{_:"14.9"},O:{"0":0.53752},H:{all:0},L:{"0":66.69989}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/KM.js b/server/api/node_modules/caniuse-lite/data/regions/KM.js new file mode 100644 index 0000000..205d5d2 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/KM.js @@ -0,0 +1 @@ +module.exports={C:{"50":0.02152,"72":0.01793,"81":0.03945,"115":0.03945,"116":0.03227,"124":0.01793,"133":0.00717,"140":0.1291,"142":0.00717,"145":0.01076,"146":0.01076,"147":0.02869,"148":2.32373,"149":0.03227,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 78 79 80 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 117 118 119 120 121 122 123 125 126 127 128 129 130 131 132 134 135 136 137 138 139 141 143 144 150 151 152 3.5 3.6"},D:{"32":0.00717,"63":0.03945,"80":0.01793,"81":0.01076,"83":0.01076,"86":0.05379,"87":0.11117,"95":0.01793,"99":0.04303,"105":0.13268,"109":0.60603,"112":0.00717,"116":0.01076,"119":0.01793,"123":0.02869,"130":0.02869,"131":0.03945,"132":0.02152,"136":0.02869,"137":0.07172,"138":3.45332,"139":0.19364,"140":0.00717,"142":0.04303,"143":0.44825,"144":0.54507,"145":6.84567,"146":5.26066,"147":0.00717,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 84 85 88 89 90 91 92 93 94 96 97 98 100 101 102 103 104 106 107 108 110 111 113 114 115 117 118 120 121 122 124 125 126 127 128 129 133 134 135 141 148 149 150"},F:{"49":0.02869,"79":0.04303,"95":0.00717,"96":0.01793,"113":0.01076,"126":0.02869,"127":0.27612,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 114 115 116 117 118 119 120 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.01076,"17":0.01076,"18":0.0502,"85":0.02152,"90":0.02152,"92":0.10399,"96":0.03945,"100":0.02869,"109":0.02152,"113":0.00717,"129":0.01793,"137":0.00717,"138":0.01076,"141":0.03227,"142":0.03945,"143":0.01076,"144":0.09324,"145":1.30172,"146":0.63831,_:"12 13 15 16 79 80 81 83 84 86 87 88 89 91 93 94 95 97 98 99 101 102 103 104 105 106 107 108 110 111 112 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 130 131 132 133 134 135 136 139 140"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.3 16.4 16.5 17.0 17.1 17.2 17.3 17.4 17.5 18.0 18.1 18.2 18.3 18.4 26.1 26.5 TP","13.1":0.03227,"14.1":0.00717,"15.6":0.06096,"16.6":0.04303,"17.6":0.18289,"18.5-18.7":0.03227,"26.0":0.06096,"26.2":1.4093,"26.3":1.08656,"26.4":0.01793},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00038,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00075,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00188,"11.0-11.2":0.04736,"11.3-11.4":0.00113,"12.0-12.1":0,"12.2-12.5":0.01466,"13.0-13.1":0,"13.2":0.00564,"13.3":0.00075,"13.4-13.7":0.00188,"14.0-14.4":0.00338,"14.5-14.8":0.00338,"15.0-15.1":0.00489,"15.2-15.3":0.00301,"15.4":0.00376,"15.5":0.00413,"15.6-15.8":0.06653,"16.0":0.00677,"16.1":0.01316,"16.2":0.00752,"16.3":0.01353,"16.4":0.00301,"16.5":0.00564,"16.6-16.7":0.09246,"17.0":0.00413,"17.1":0.00677,"17.2":0.00601,"17.3":0.00827,"17.4":0.01353,"17.5":0.02556,"17.6-17.7":0.06578,"18.0":0.01428,"18.1":0.02932,"18.2":0.01541,"18.3":0.04924,"18.4":0.02368,"18.5-18.7":0.75322,"26.0":0.04698,"26.1":0.07141,"26.2":0.42021,"26.3":1.82555,"26.4":0.06841,"26.5":0},P:{"4":0.01037,"22":0.04146,"23":0.01037,"25":0.02073,"26":0.08292,"27":0.07256,"28":0.12439,"29":0.55974,_:"20 21 24 6.2-6.4 8.2 10.1 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","5.0-5.4":0.01037,"7.2-7.4":0.17621,"9.2":0.01037,"11.1-11.2":0.0311},I:{"0":0.02563,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":1.82158,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.0898},Q:{_:"14.9"},O:{"0":0.25015},H:{all:0},L:{"0":65.1752}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/KN.js b/server/api/node_modules/caniuse-lite/data/regions/KN.js new file mode 100644 index 0000000..b68277d --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/KN.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.00891,"115":0.19602,"147":0.0401,"148":0.7529,"149":0.14256,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 150 151 152 3.5 3.6"},D:{"56":0.07574,"71":0.00446,"87":0.00891,"97":0.31631,"103":0.01782,"106":0.00446,"108":0.00446,"109":0.14702,"112":0.00446,"116":0.03564,"122":0.04901,"126":0.06237,"128":0.36531,"129":0.02673,"131":0.02228,"133":0.01782,"135":0.00446,"137":0.00891,"138":0.07574,"139":1.20285,"140":0.02673,"141":0.21384,"142":0.09801,"143":0.2673,"144":0.64598,"145":11.74338,"146":8.70062,"147":0.00891,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 57 58 59 60 61 62 63 64 65 66 67 68 69 70 72 73 74 75 76 77 78 79 80 81 83 84 85 86 88 89 90 91 92 93 94 95 96 98 99 100 101 102 104 105 107 110 111 113 114 115 117 118 119 120 121 123 124 125 127 130 132 134 136 148 149 150"},F:{"126":0.43214,"127":1.65726,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"100":0.00891,"109":0.00891,"112":0.02673,"120":0.00446,"122":0.00446,"129":0.00891,"132":0.00446,"134":0.00446,"135":0.01782,"138":0.00891,"142":0.00891,"143":0.5346,"144":0.23612,"145":2.86011,"146":2.8913,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 113 114 115 116 117 118 119 121 123 124 125 126 127 128 130 131 133 136 137 139 140 141"},E:{"14":0.00891,_:"4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.2-15.3 15.5 16.1 16.3 16.4 17.0 17.3 18.0 18.1 26.5 TP","15.1":0.00446,"15.4":0.00446,"15.6":0.03564,"16.0":0.00891,"16.2":0.00891,"16.5":0.00891,"16.6":0.16038,"17.1":0.02228,"17.2":0.00446,"17.4":0.02228,"17.5":0.01337,"17.6":0.11138,"18.2":0.00446,"18.3":0.01337,"18.4":0.01782,"18.5-18.7":0.04901,"26.0":0.02673,"26.1":0.07128,"26.2":0.14702,"26.3":3.0294,"26.4":0.02228},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0019,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.0038,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00949,"11.0-11.2":0.23915,"11.3-11.4":0.00569,"12.0-12.1":0,"12.2-12.5":0.07402,"13.0-13.1":0,"13.2":0.02847,"13.3":0.0038,"13.4-13.7":0.00949,"14.0-14.4":0.01708,"14.5-14.8":0.01708,"15.0-15.1":0.02467,"15.2-15.3":0.01518,"15.4":0.01898,"15.5":0.02088,"15.6-15.8":0.33596,"16.0":0.03416,"16.1":0.06643,"16.2":0.03796,"16.3":0.06833,"16.4":0.01518,"16.5":0.02847,"16.6-16.7":0.46692,"17.0":0.02088,"17.1":0.03416,"17.2":0.03037,"17.3":0.04176,"17.4":0.06833,"17.5":0.12907,"17.6-17.7":0.33216,"18.0":0.07213,"18.1":0.14805,"18.2":0.07782,"18.3":0.24865,"18.4":0.11958,"18.5-18.7":3.8037,"26.0":0.23726,"26.1":0.36063,"26.2":2.12202,"26.3":9.21885,"26.4":0.34545,"26.5":0},P:{"4":0.01045,"22":0.01045,"24":0.03136,"26":0.01045,"27":0.01045,"28":0.02091,"29":2.17445,_:"20 21 23 25 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.01045},I:{"0":0.02216,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":1.56924,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.35488},Q:{_:"14.9"},O:{"0":0.17744},H:{all:0},L:{"0":36.58695}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/KP.js b/server/api/node_modules/caniuse-lite/data/regions/KP.js new file mode 100644 index 0000000..efab553 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/KP.js @@ -0,0 +1 @@ +module.exports={C:{"148":5.882,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 149 150 151 152 3.5 3.6"},D:{"144":3.92329,"145":1.95871,"146":1.95871,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 147 148 149 150"},F:{"127":9.80529,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"131":7.84071,"145":27.45129,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 132 133 134 135 136 137 138 139 140 141 142 143 144 146"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 15.2-15.3 15.4 15.5 15.6 16.0 16.1 16.2 16.3 16.4 16.5 16.6 17.0 17.1 17.2 17.3 17.4 17.5 17.6 18.0 18.1 18.2 18.3 18.4 18.5-18.7 26.0 26.1 26.2 26.3 26.4 26.5 TP"},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00314,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00628,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.01569,"11.0-11.2":0.39533,"11.3-11.4":0.00941,"12.0-12.1":0,"12.2-12.5":0.12236,"13.0-13.1":0,"13.2":0.04706,"13.3":0.00628,"13.4-13.7":0.01569,"14.0-14.4":0.02824,"14.5-14.8":0.02824,"15.0-15.1":0.04079,"15.2-15.3":0.0251,"15.4":0.03138,"15.5":0.03451,"15.6-15.8":0.55534,"16.0":0.05648,"16.1":0.10981,"16.2":0.06275,"16.3":0.11295,"16.4":0.0251,"16.5":0.04706,"16.6-16.7":0.77183,"17.0":0.03451,"17.1":0.05648,"17.2":0.0502,"17.3":0.06903,"17.4":0.11295,"17.5":0.21335,"17.6-17.7":0.54906,"18.0":0.11923,"18.1":0.24473,"18.2":0.12864,"18.3":0.41101,"18.4":0.19766,"18.5-18.7":6.28756,"26.0":0.39219,"26.1":0.59613,"26.2":3.50773,"26.3":15.23886,"26.4":0.57103,"26.5":0},P:{_:"4 20 21 22 23 24 25 26 27 28 29 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{_:"0"},Q:{_:"14.9"},O:{_:"0"},H:{all:0},L:{"0":9.80496}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/KR.js b/server/api/node_modules/caniuse-lite/data/regions/KR.js new file mode 100644 index 0000000..b8d5449 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/KR.js @@ -0,0 +1 @@ +module.exports={C:{"52":0.00515,"115":0.0206,"125":0.00515,"133":0.00515,"134":0.00515,"135":0.00515,"140":0.01545,"147":0.0103,"148":0.4017,"149":0.0824,"150":0.00515,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 126 127 128 129 130 131 132 136 137 138 139 141 142 143 144 145 146 151 152 3.5 3.6"},D:{"39":0.00515,"40":0.00515,"41":0.00515,"42":0.00515,"43":0.00515,"44":0.00515,"45":0.00515,"46":0.00515,"47":0.00515,"48":0.00515,"49":0.00515,"50":0.00515,"51":0.00515,"52":0.00515,"53":0.00515,"54":0.00515,"55":0.00515,"56":0.00515,"57":0.00515,"58":0.00515,"59":0.00515,"60":0.00515,"65":0.00515,"80":0.00515,"83":0.00515,"86":0.00515,"87":0.01545,"88":0.00515,"90":0.00515,"101":0.00515,"103":0.00515,"106":0.00515,"109":0.3193,"111":0.0206,"112":0.00515,"114":0.00515,"116":0.0206,"118":0.00515,"119":0.00515,"120":0.01545,"121":0.00515,"122":0.02575,"123":0.00515,"124":0.01545,"125":0.0206,"126":0.02575,"127":0.0103,"128":0.03605,"129":0.0103,"130":0.0206,"131":0.14935,"132":0.02575,"133":0.0309,"134":0.0412,"135":0.0206,"136":0.0515,"137":0.02575,"138":0.0927,"139":0.0927,"140":0.04635,"141":0.0412,"142":0.06695,"143":0.206,"144":0.3399,"145":16.3152,"146":13.79685,"147":0.04635,"148":0.01545,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 61 62 63 64 66 67 68 69 70 71 72 73 74 75 76 77 78 79 81 84 85 89 91 92 93 94 95 96 97 98 99 100 102 104 105 107 108 110 113 115 117 149 150"},F:{"95":0.01545,"96":0.0206,"114":0.00515,"126":0.00515,"127":0.11845,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 120 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00515,"92":0.0103,"100":0.00515,"109":0.05665,"114":0.00515,"115":0.00515,"116":0.00515,"117":0.00515,"119":0.0103,"120":0.0103,"122":0.0103,"123":0.00515,"124":0.00515,"125":0.00515,"126":0.00515,"127":0.00515,"128":0.00515,"129":0.00515,"130":0.0103,"131":0.0309,"132":0.0206,"133":0.01545,"134":0.0206,"135":0.01545,"136":0.01545,"137":0.0206,"138":0.02575,"139":0.0206,"140":0.0206,"141":0.01545,"142":0.03605,"143":0.0618,"144":0.10815,"145":4.326,"146":4.27965,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 118 121"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 10.1 11.1 12.1 13.1 15.1 15.2-15.3 15.4 15.5 16.2 16.3 16.5 17.0 18.0 18.2 26.5 TP","9.1":0.0103,"14.1":0.00515,"15.6":0.0206,"16.0":0.00515,"16.1":0.00515,"16.4":0.00515,"16.6":0.0206,"17.1":0.0206,"17.2":0.00515,"17.3":0.00515,"17.4":0.0103,"17.5":0.0103,"17.6":0.0309,"18.1":0.00515,"18.3":0.01545,"18.4":0.00515,"18.5-18.7":0.02575,"26.0":0.0103,"26.1":0.01545,"26.2":0.103,"26.3":0.515,"26.4":0.03605},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00111,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00222,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00555,"11.0-11.2":0.13994,"11.3-11.4":0.00333,"12.0-12.1":0,"12.2-12.5":0.04332,"13.0-13.1":0,"13.2":0.01666,"13.3":0.00222,"13.4-13.7":0.00555,"14.0-14.4":0.01,"14.5-14.8":0.01,"15.0-15.1":0.01444,"15.2-15.3":0.00889,"15.4":0.01111,"15.5":0.01222,"15.6-15.8":0.19659,"16.0":0.01999,"16.1":0.03887,"16.2":0.02221,"16.3":0.03998,"16.4":0.00889,"16.5":0.01666,"16.6-16.7":0.27322,"17.0":0.01222,"17.1":0.01999,"17.2":0.01777,"17.3":0.02443,"17.4":0.03998,"17.5":0.07552,"17.6-17.7":0.19436,"18.0":0.0422,"18.1":0.08663,"18.2":0.04554,"18.3":0.1455,"18.4":0.06997,"18.5-18.7":2.22574,"26.0":0.13883,"26.1":0.21102,"26.2":1.24171,"26.3":5.39443,"26.4":0.20214,"26.5":0},P:{"21":0.01021,"22":0.01021,"23":0.01021,"24":0.01021,"25":0.01021,"26":0.05105,"27":0.05105,"28":0.21442,"29":11.73165,_:"4 20 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 18.0 19.0","17.0":0.01021},I:{"0":0.07753,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00004},K:{"0":0.08245,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.0309,"11":0.0309,_:"6 7 9 10 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.1455},Q:{"14.9":0.01455},O:{"0":0.0679},H:{all:0},L:{"0":22.60225}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/KW.js b/server/api/node_modules/caniuse-lite/data/regions/KW.js new file mode 100644 index 0000000..a65d040 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/KW.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.00337,"48":0.00337,"115":0.01686,"134":0.00674,"140":0.01349,"143":0.00674,"144":0.00337,"146":0.00337,"147":0.03709,"148":0.3979,"149":0.09779,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 135 136 137 138 139 141 142 145 150 151 152 3.5 3.6"},D:{"83":0.00674,"91":0.00337,"93":0.01012,"101":0.00337,"103":0.10116,"104":0.04384,"105":0.04384,"106":0.04384,"107":0.04384,"108":0.04384,"109":0.3136,"110":0.04721,"111":0.04384,"112":0.11802,"114":0.01686,"116":0.10453,"117":0.04384,"119":0.00674,"120":0.04721,"121":0.01349,"122":0.01349,"123":0.00337,"124":0.05058,"125":0.00674,"126":0.00674,"127":0.00337,"128":0.0236,"129":0.00674,"130":0.00674,"131":0.11128,"132":0.03035,"133":0.12139,"134":0.01686,"135":0.06407,"136":0.01349,"137":0.0236,"138":0.22592,"139":0.09104,"140":0.02023,"141":0.02698,"142":0.03709,"143":0.16186,"144":0.35069,"145":6.70016,"146":7.96804,"147":0.01686,"148":0.00337,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 84 85 86 87 88 89 90 92 94 95 96 97 98 99 100 102 113 115 118 149 150"},F:{"46":0.00337,"85":0.00337,"94":0.01349,"95":0.07081,"96":0.10116,"97":0.00337,"125":0.00337,"126":0.0236,"127":0.49568,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 86 87 88 89 90 91 92 93 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00337,"92":0.01349,"100":0.00337,"109":0.01012,"114":0.00337,"122":0.00337,"131":0.00674,"138":0.00337,"139":0.00337,"140":0.00337,"141":0.00674,"142":0.01012,"143":0.03035,"144":0.09442,"145":1.26787,"146":1.6253,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 123 124 125 126 127 128 129 130 132 133 134 135 136 137"},E:{"14":0.00337,"15":0.00337,_:"4 5 6 7 8 9 10 11 12 13 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 15.1 16.0 16.2 26.5 TP","5.1":0.00337,"13.1":0.01349,"14.1":0.00674,"15.2-15.3":0.00337,"15.4":0.00337,"15.5":0.00337,"15.6":0.0236,"16.1":0.01012,"16.3":0.01012,"16.4":0.00337,"16.5":0.00674,"16.6":0.10453,"17.0":0.00337,"17.1":0.02698,"17.2":0.1686,"17.3":0.01012,"17.4":0.00674,"17.5":0.02023,"17.6":0.05732,"18.0":0.01349,"18.1":0.04384,"18.2":0.00674,"18.3":0.01686,"18.4":0.01349,"18.5-18.7":0.08093,"26.0":0.05395,"26.1":0.04384,"26.2":0.1922,"26.3":0.8666,"26.4":0.06744},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00241,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00481,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.01203,"11.0-11.2":0.30303,"11.3-11.4":0.00722,"12.0-12.1":0,"12.2-12.5":0.0938,"13.0-13.1":0,"13.2":0.03608,"13.3":0.00481,"13.4-13.7":0.01203,"14.0-14.4":0.02165,"14.5-14.8":0.02165,"15.0-15.1":0.03127,"15.2-15.3":0.01924,"15.4":0.02405,"15.5":0.02646,"15.6-15.8":0.42569,"16.0":0.04329,"16.1":0.08418,"16.2":0.0481,"16.3":0.08658,"16.4":0.01924,"16.5":0.03608,"16.6-16.7":0.59163,"17.0":0.02646,"17.1":0.04329,"17.2":0.03848,"17.3":0.05291,"17.4":0.08658,"17.5":0.16354,"17.6-17.7":0.42088,"18.0":0.09139,"18.1":0.18759,"18.2":0.09861,"18.3":0.31506,"18.4":0.15152,"18.5-18.7":4.81962,"26.0":0.30063,"26.1":0.45695,"26.2":2.68879,"26.3":11.68109,"26.4":0.43771,"26.5":0},P:{"21":0.01019,"22":0.03057,"23":0.01019,"24":0.02038,"25":0.03057,"26":0.02038,"27":0.07133,"28":0.15285,"29":2.77174,_:"4 20 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.01019,"13.0":0.01019},I:{"0":0.03974,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":1.31917,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.07955},Q:{_:"14.9"},O:{"0":1.47164},H:{all:0},L:{"0":44.4508}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/KY.js b/server/api/node_modules/caniuse-lite/data/regions/KY.js new file mode 100644 index 0000000..1e64046 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/KY.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.00932,"115":0.05591,"125":0.00932,"134":0.00466,"137":0.00932,"140":0.01398,"146":0.00932,"147":0.06057,"148":0.70817,"149":0.15841,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 126 127 128 129 130 131 132 133 135 136 138 139 141 142 143 144 145 150 151 152 3.5 3.6"},D:{"98":0.00466,"103":0.06057,"106":0.00466,"108":0.00466,"109":0.0233,"110":0.00466,"116":0.0792,"122":0.01398,"124":0.08386,"126":0.00466,"128":0.09318,"130":0.00466,"131":0.01864,"132":0.00466,"133":0.00466,"134":0.01398,"136":0.00932,"137":0.00466,"138":1.78906,"139":0.77805,"140":0.04193,"141":0.08852,"142":0.69419,"143":0.27488,"144":0.58703,"145":10.8182,"146":8.14859,"147":0.15375,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 99 100 101 102 104 105 107 111 112 113 114 115 117 118 119 120 121 123 125 127 129 135 148 149 150"},F:{"96":0.00466,"127":0.26556,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.00466,"106":0.00466,"132":0.01864,"133":0.01398,"137":0.00932,"138":0.00932,"140":0.0792,"141":0.0233,"142":0.00932,"143":0.26556,"144":0.74544,"145":4.58912,"146":3.07028,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 134 135 136 139"},E:{"14":0.00466,"15":0.04193,_:"4 5 6 7 8 9 10 11 12 13 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 15.1 15.4 16.2 17.0 17.2 18.0 26.5 TP","14.1":0.00466,"15.2-15.3":0.34477,"15.5":0.00466,"15.6":0.03261,"16.0":0.02795,"16.1":0.00466,"16.3":0.03727,"16.4":0.00466,"16.5":0.00466,"16.6":0.17704,"17.1":0.13511,"17.3":0.00932,"17.4":0.00466,"17.5":0.12113,"17.6":0.12579,"18.1":0.00466,"18.2":0.00466,"18.3":0.06057,"18.4":0.01864,"18.5-18.7":0.09784,"26.0":0.04193,"26.1":0.02795,"26.2":0.48454,"26.3":3.64334,"26.4":0.04193},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00279,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00559,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.01397,"11.0-11.2":0.35196,"11.3-11.4":0.00838,"12.0-12.1":0,"12.2-12.5":0.10894,"13.0-13.1":0,"13.2":0.0419,"13.3":0.00559,"13.4-13.7":0.01397,"14.0-14.4":0.02514,"14.5-14.8":0.02514,"15.0-15.1":0.03631,"15.2-15.3":0.02235,"15.4":0.02793,"15.5":0.03073,"15.6-15.8":0.49442,"16.0":0.05028,"16.1":0.09777,"16.2":0.05587,"16.3":0.10056,"16.4":0.02235,"16.5":0.0419,"16.6-16.7":0.68717,"17.0":0.03073,"17.1":0.05028,"17.2":0.04469,"17.3":0.06145,"17.4":0.10056,"17.5":0.18995,"17.6-17.7":0.48884,"18.0":0.10615,"18.1":0.21788,"18.2":0.11453,"18.3":0.36593,"18.4":0.17598,"18.5-18.7":5.59788,"26.0":0.34917,"26.1":0.53074,"26.2":3.12297,"26.3":13.56732,"26.4":0.50839,"26.5":0},P:{"27":0.03105,"28":0.13455,"29":4.02629,_:"4 20 21 22 23 24 25 26 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.00534,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0.1335,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.12816},Q:{_:"14.9"},O:{"0":0.01068},H:{all:0},L:{"0":23.17815}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/KZ.js b/server/api/node_modules/caniuse-lite/data/regions/KZ.js new file mode 100644 index 0000000..cb48faf --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/KZ.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.02847,"52":0.05693,"55":0.06832,"71":0.01708,"115":0.29034,"123":0.00569,"125":0.00569,"128":0.00569,"133":0.02277,"134":0.00569,"136":0.01139,"138":0.00569,"139":0.00569,"140":0.06262,"143":0.06262,"144":0.00569,"145":0.00569,"146":0.02847,"147":0.04554,"148":1.45172,"149":0.29604,"150":0.01139,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 124 126 127 129 130 131 132 135 137 141 142 151 152 3.5 3.6"},D:{"49":0.00569,"68":0.00569,"69":0.00569,"75":0.00569,"79":0.00569,"80":0.00569,"83":0.00569,"86":0.01708,"87":0.00569,"98":0.00569,"100":0.00569,"101":0.00569,"102":0.00569,"103":0.34158,"104":0.33589,"105":0.33019,"106":0.44975,"107":0.33019,"108":0.34158,"109":1.86161,"110":0.3245,"111":0.33019,"112":0.67177,"113":0.00569,"114":0.01139,"116":0.67747,"117":0.31881,"119":0.01139,"120":0.33589,"121":0.01139,"122":0.04554,"123":0.02847,"124":0.34727,"125":0.00569,"126":0.02847,"127":0.01139,"128":0.01139,"129":0.02277,"130":0.01139,"131":0.71163,"132":0.05124,"133":0.68885,"134":0.05693,"135":0.01708,"136":0.01708,"137":0.01708,"138":0.10247,"139":0.18218,"140":0.15371,"141":0.02847,"142":0.38143,"143":0.33589,"144":0.7344,"145":11.99515,"146":8.84123,"147":0.02847,"148":0.01139,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 70 71 72 73 74 76 77 78 81 84 85 88 89 90 91 92 93 94 95 96 97 99 115 118 149 150"},F:{"54":0.04554,"73":0.00569,"79":0.02277,"85":0.01708,"86":0.00569,"94":0.00569,"95":0.31881,"96":0.02847,"115":0.00569,"122":0.02277,"124":0.00569,"125":0.00569,"126":0.02277,"127":0.95073,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 74 75 76 77 78 80 81 82 83 84 87 88 89 90 91 92 93 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 123 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00569,"92":0.01139,"100":0.00569,"109":0.02277,"118":0.00569,"126":0.00569,"131":0.00569,"133":0.00569,"135":0.00569,"137":0.00569,"140":0.01139,"141":0.00569,"142":0.00569,"143":0.02277,"144":0.06262,"145":2.07795,"146":1.79899,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 119 120 121 122 123 124 125 127 128 129 130 132 134 136 138 139"},E:{"14":0.00569,_:"4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 15.2-15.3 15.5 16.0 16.2 17.0 26.5 TP","5.1":0.00569,"13.1":0.00569,"14.1":0.00569,"15.1":0.00569,"15.4":0.00569,"15.6":0.0797,"16.1":0.00569,"16.3":0.00569,"16.4":0.00569,"16.5":0.01139,"16.6":0.10247,"17.1":0.06832,"17.2":0.00569,"17.3":0.01139,"17.4":0.01708,"17.5":0.02277,"17.6":0.12525,"18.0":0.01139,"18.1":0.02277,"18.2":0.06832,"18.3":0.04554,"18.4":0.01708,"18.5-18.7":0.09678,"26.0":0.03416,"26.1":0.05124,"26.2":0.37574,"26.3":1.16707,"26.4":0.05124},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00169,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00338,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00844,"11.0-11.2":0.21268,"11.3-11.4":0.00506,"12.0-12.1":0,"12.2-12.5":0.06583,"13.0-13.1":0,"13.2":0.02532,"13.3":0.00338,"13.4-13.7":0.00844,"14.0-14.4":0.01519,"14.5-14.8":0.01519,"15.0-15.1":0.02194,"15.2-15.3":0.0135,"15.4":0.01688,"15.5":0.01857,"15.6-15.8":0.29876,"16.0":0.03038,"16.1":0.05908,"16.2":0.03376,"16.3":0.06076,"16.4":0.0135,"16.5":0.02532,"16.6-16.7":0.41523,"17.0":0.01857,"17.1":0.03038,"17.2":0.02701,"17.3":0.03713,"17.4":0.06076,"17.5":0.11478,"17.6-17.7":0.29538,"18.0":0.06414,"18.1":0.13166,"18.2":0.0692,"18.3":0.22112,"18.4":0.10634,"18.5-18.7":3.38258,"26.0":0.21099,"26.1":0.3207,"26.2":1.88709,"26.3":8.19819,"26.4":0.3072,"26.5":0},P:{"4":0.0209,"22":0.01045,"23":0.01045,"24":0.01045,"25":0.01045,"26":0.03135,"27":0.0209,"28":0.0836,"29":1.11818,_:"20 21 5.0-5.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","6.2-6.4":0.01045,"7.2-7.4":0.01045},I:{"0":0.01721,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.41778,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.01328,"11":0.06642,_:"6 7 9 10 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.21104},Q:{"14.9":0.00861},O:{"0":0.27996},H:{all:0},L:{"0":26.99503}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/LA.js b/server/api/node_modules/caniuse-lite/data/regions/LA.js new file mode 100644 index 0000000..15497e4 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/LA.js @@ -0,0 +1 @@ +module.exports={C:{"115":0.01077,"143":0.00269,"147":0.00538,"148":0.12114,"149":0.01615,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 144 145 146 150 151 152 3.5 3.6"},D:{"70":0.00538,"71":0.00269,"79":0.00269,"87":0.00269,"88":0.00269,"98":0.00269,"99":0.00269,"101":0.00269,"102":0.00269,"103":0.00269,"104":0.00269,"109":0.23151,"111":0.00269,"114":0.02692,"115":0.00269,"116":0.00538,"119":0.00808,"120":0.00269,"122":0.00538,"124":0.00269,"125":0.02692,"126":0.00538,"127":0.01077,"128":0.01346,"130":0.1023,"131":0.01615,"132":0.00808,"133":0.00269,"134":0.00538,"135":0.00538,"136":0.02154,"137":0.01615,"138":0.08076,"139":0.0323,"140":0.01077,"141":0.00808,"142":0.01346,"143":0.11306,"144":0.65685,"145":4.93713,"146":3.29501,"147":0.00538,"148":0.00269,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 72 73 74 75 76 77 78 80 81 83 84 85 86 89 90 91 92 93 94 95 96 97 100 105 106 107 108 110 112 113 117 118 121 123 129 149 150"},F:{"64":0.00269,"95":0.01615,"96":0.01077,"126":0.00538,"127":0.06192,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00808,"92":0.00538,"104":0.01346,"109":0.00538,"117":0.00808,"119":0.00269,"128":0.00269,"131":0.00269,"135":0.00269,"140":0.00269,"142":0.00269,"143":0.00269,"144":0.01077,"145":0.29612,"146":0.28535,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 105 106 107 108 110 111 112 113 114 115 116 118 120 121 122 123 124 125 126 127 129 130 132 133 134 136 137 138 139 141"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 10.1 11.1 12.1 13.1 15.1 15.2-15.3 15.4 15.5 16.0 16.3 16.4 17.0 17.2 26.5 TP","9.1":0.00269,"14.1":0.00269,"15.6":0.02692,"16.1":0.00269,"16.2":0.00808,"16.5":0.00269,"16.6":0.05115,"17.1":0.01077,"17.3":0.00269,"17.4":0.00269,"17.5":0.00538,"17.6":0.01077,"18.0":0.00269,"18.1":0.00269,"18.2":0.01346,"18.3":0.00538,"18.4":0.00269,"18.5-18.7":0.01615,"26.0":0.00538,"26.1":0.01077,"26.2":0.03769,"26.3":0.11845,"26.4":0.00269},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00196,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00393,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00982,"11.0-11.2":0.24751,"11.3-11.4":0.00589,"12.0-12.1":0,"12.2-12.5":0.07661,"13.0-13.1":0,"13.2":0.02947,"13.3":0.00393,"13.4-13.7":0.00982,"14.0-14.4":0.01768,"14.5-14.8":0.01768,"15.0-15.1":0.02554,"15.2-15.3":0.01572,"15.4":0.01964,"15.5":0.02161,"15.6-15.8":0.3477,"16.0":0.03536,"16.1":0.06875,"16.2":0.03929,"16.3":0.07072,"16.4":0.01572,"16.5":0.02947,"16.6-16.7":0.48324,"17.0":0.02161,"17.1":0.03536,"17.2":0.03143,"17.3":0.04322,"17.4":0.07072,"17.5":0.13358,"17.6-17.7":0.34377,"18.0":0.07465,"18.1":0.15322,"18.2":0.08054,"18.3":0.25734,"18.4":0.12376,"18.5-18.7":3.93664,"26.0":0.24555,"26.1":0.37323,"26.2":2.19619,"26.3":9.54104,"26.4":0.35752,"26.5":0},P:{"21":0.01022,"22":0.01022,"23":0.0409,"24":0.01022,"25":0.09202,"26":0.0409,"27":0.07157,"28":0.26583,"29":1.58477,_:"4 20 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.0409},I:{"0":0.0146,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.33617,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.07308},Q:{"14.9":0.01462},O:{"0":0.57733},H:{all:0},L:{"0":65.4511}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/LB.js b/server/api/node_modules/caniuse-lite/data/regions/LB.js new file mode 100644 index 0000000..31ce86e --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/LB.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.07281,"52":0.00485,"56":0.00485,"78":0.00971,"115":0.16504,"125":0.00485,"128":0.00971,"140":0.01456,"142":0.00485,"144":0.00485,"146":0.00971,"147":0.06796,"148":0.54365,"149":0.10193,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 126 127 129 130 131 132 133 134 135 136 137 138 139 141 143 145 150 151 152 3.5 3.6"},D:{"49":0.00485,"54":0.00485,"65":0.00485,"66":0.00485,"67":0.00485,"68":0.00485,"69":0.00971,"70":0.00485,"71":0.00485,"73":0.00485,"75":0.00485,"79":0.00485,"80":0.00485,"81":0.00485,"83":0.00485,"87":0.00971,"90":0.00485,"91":0.1165,"95":0.00971,"96":0.00485,"98":0.02427,"103":0.58248,"104":0.57763,"105":0.57277,"106":0.59219,"107":0.57277,"108":0.59219,"109":1.3397,"110":0.56792,"111":0.58248,"112":1.56784,"113":0.00485,"114":0.01456,"115":0.00485,"116":1.20865,"117":0.56792,"118":0.00485,"119":0.01942,"120":0.6019,"121":0.01456,"122":0.03883,"123":0.00971,"124":0.59219,"125":0.00485,"126":0.01456,"127":0.01456,"128":0.07766,"129":0.01456,"130":0.00971,"131":1.22806,"132":0.02912,"133":1.17952,"134":0.01456,"135":0.02427,"136":0.01942,"137":0.02912,"138":0.21843,"139":0.19901,"140":0.02427,"141":0.02912,"142":0.09708,"143":0.10679,"144":0.96109,"145":8.65468,"146":7.00918,"147":0.01456,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 55 56 57 58 59 60 61 62 63 64 72 74 76 77 78 84 85 86 88 89 92 93 94 97 99 100 101 102 148 149 150"},F:{"48":0.00485,"56":0.00485,"95":0.02912,"96":0.02427,"102":0.00485,"126":0.01456,"127":0.27668,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 52 53 54 55 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"15":0.00485,"16":0.00485,"18":0.01942,"84":0.00485,"92":0.01942,"109":0.00971,"114":0.00485,"122":0.00485,"131":0.00485,"132":0.00485,"133":0.00485,"134":0.00485,"135":0.00485,"137":0.00485,"138":0.01456,"139":0.00485,"140":0.00485,"141":0.01942,"142":0.00485,"143":0.01942,"144":0.04854,"145":1.40281,"146":1.49503,_:"12 13 14 17 79 80 81 83 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 123 124 125 126 127 128 129 130 136"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.5 26.5 TP","5.1":0.04854,"13.1":0.00485,"14.1":0.00485,"15.4":0.01456,"15.6":0.19416,"16.0":0.00485,"16.1":0.00971,"16.2":0.00485,"16.3":0.00485,"16.4":0.00485,"16.5":0.00485,"16.6":0.08737,"17.0":0.00485,"17.1":0.03883,"17.2":0.00485,"17.3":0.00485,"17.4":0.00971,"17.5":0.01942,"17.6":0.03883,"18.0":0.00971,"18.1":0.01942,"18.2":0.01456,"18.3":0.02427,"18.4":0.00971,"18.5-18.7":0.04369,"26.0":0.02427,"26.1":0.01456,"26.2":0.15533,"26.3":0.90284,"26.4":0.02912},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00152,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00305,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00762,"11.0-11.2":0.19205,"11.3-11.4":0.00457,"12.0-12.1":0,"12.2-12.5":0.05945,"13.0-13.1":0,"13.2":0.02286,"13.3":0.00305,"13.4-13.7":0.00762,"14.0-14.4":0.01372,"14.5-14.8":0.01372,"15.0-15.1":0.01982,"15.2-15.3":0.01219,"15.4":0.01524,"15.5":0.01677,"15.6-15.8":0.26979,"16.0":0.02744,"16.1":0.05335,"16.2":0.03048,"16.3":0.05487,"16.4":0.01219,"16.5":0.02286,"16.6-16.7":0.37496,"17.0":0.01677,"17.1":0.02744,"17.2":0.02439,"17.3":0.03353,"17.4":0.05487,"17.5":0.10365,"17.6-17.7":0.26674,"18.0":0.05792,"18.1":0.11889,"18.2":0.06249,"18.3":0.19968,"18.4":0.09603,"18.5-18.7":3.05459,"26.0":0.19053,"26.1":0.28961,"26.2":1.70411,"26.3":7.40326,"26.4":0.27741,"26.5":0},P:{"21":0.01022,"22":0.01022,"23":0.02045,"24":0.03067,"25":0.05112,"26":0.10224,"27":0.07157,"28":0.41918,"29":3.83394,_:"4 20 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 14.0 15.0 18.0 19.0","7.2-7.4":0.0409,"13.0":0.01022,"16.0":0.01022,"17.0":0.01022},I:{"0":0.04627,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.41683,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.08252,_:"6 7 8 9 10 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.13894},Q:{_:"14.9"},O:{"0":0.12865},H:{all:0},L:{"0":40.77141}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/LC.js b/server/api/node_modules/caniuse-lite/data/regions/LC.js new file mode 100644 index 0000000..3bd39c8 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/LC.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.03179,"115":0.01816,"140":0.00908,"146":0.00454,"147":0.03633,"148":0.85371,"149":0.14531,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 141 142 143 144 145 150 151 152 3.5 3.6"},D:{"59":0.00454,"65":0.00454,"70":0.01816,"74":0.00454,"75":0.00454,"77":0.01362,"79":0.00908,"88":0.00908,"92":0.00454,"93":0.00908,"101":0.00454,"103":0.03633,"104":0.00908,"106":0.00908,"107":0.00454,"108":0.00454,"109":0.08174,"110":0.00454,"111":0.00454,"112":0.00908,"114":0.02725,"116":0.02725,"119":0.00908,"120":0.00908,"121":0.00454,"122":0.14077,"123":0.00908,"124":0.01362,"125":0.02271,"126":0.01362,"127":0.09082,"128":0.01362,"129":0.00454,"130":0.01816,"131":0.04087,"132":0.00908,"133":0.00908,"134":0.00454,"135":0.02725,"137":0.00908,"138":0.03633,"139":1.02627,"140":0.05903,"141":0.00908,"142":0.36328,"143":0.15894,"144":1.09438,"145":14.03169,"146":7.51081,"147":0.13169,"148":0.02271,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 61 62 63 64 66 67 68 69 71 72 73 76 78 80 81 83 84 85 86 87 89 90 91 94 95 96 97 98 99 100 102 105 113 115 117 118 136 149 150"},F:{"95":0.07266,"124":0.00454,"126":0.00454,"127":0.33603,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00454,"92":0.02271,"100":0.00454,"109":0.00454,"119":0.46318,"130":0.00454,"134":0.14985,"137":0.00454,"140":0.00908,"141":0.01362,"142":0.00908,"143":0.17256,"144":0.13169,"145":3.71908,"146":3.20595,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 120 121 122 123 124 125 126 127 128 129 131 132 133 135 136 138 139"},E:{"14":0.2543,_:"4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 12.1 15.1 15.2-15.3 15.4 16.2 16.5 17.0 17.2 18.1 26.5 TP","11.1":0.00454,"13.1":0.01816,"14.1":0.01816,"15.5":0.00454,"15.6":0.04087,"16.0":0.00454,"16.1":0.00454,"16.3":0.00454,"16.4":0.00454,"16.6":0.28608,"17.1":0.06357,"17.3":0.01362,"17.4":0.00908,"17.5":0.00454,"17.6":0.07266,"18.0":0.00454,"18.2":0.00454,"18.3":0.09536,"18.4":0.01362,"18.5-18.7":0.02725,"26.0":0.00454,"26.1":0.00908,"26.2":0.30425,"26.3":1.03989,"26.4":0.05449},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00195,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.0039,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00975,"11.0-11.2":0.24558,"11.3-11.4":0.00585,"12.0-12.1":0,"12.2-12.5":0.07601,"13.0-13.1":0,"13.2":0.02924,"13.3":0.0039,"13.4-13.7":0.00975,"14.0-14.4":0.01754,"14.5-14.8":0.01754,"15.0-15.1":0.02534,"15.2-15.3":0.01559,"15.4":0.01949,"15.5":0.02144,"15.6-15.8":0.34498,"16.0":0.03508,"16.1":0.06822,"16.2":0.03898,"16.3":0.07017,"16.4":0.01559,"16.5":0.02924,"16.6-16.7":0.47947,"17.0":0.02144,"17.1":0.03508,"17.2":0.03118,"17.3":0.04288,"17.4":0.07017,"17.5":0.13254,"17.6-17.7":0.34108,"18.0":0.07406,"18.1":0.15203,"18.2":0.07991,"18.3":0.25533,"18.4":0.12279,"18.5-18.7":3.9059,"26.0":0.24363,"26.1":0.37032,"26.2":2.17904,"26.3":9.46654,"26.4":0.35473,"26.5":0},P:{"22":0.04195,"23":0.02098,"24":0.01049,"25":0.02098,"26":0.02098,"27":0.02098,"28":0.04195,"29":2.04524,_:"4 20 21 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.05244},I:{"0":0.02727,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.20195,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.03179,_:"6 7 8 9 10 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.43664},Q:{_:"14.9"},O:{"0":0.06004},H:{all:0},L:{"0":39.1174}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/LI.js b/server/api/node_modules/caniuse-lite/data/regions/LI.js new file mode 100644 index 0000000..630e08c --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/LI.js @@ -0,0 +1 @@ +module.exports={C:{"115":0.66436,"136":0.01829,"140":0.02438,"144":1.54204,"146":0.02438,"147":0.09143,"148":4.85162,"149":1.38966,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 137 138 139 141 142 143 145 150 151 152 3.5 3.6"},D:{"95":0.0061,"98":0.03657,"99":0.01219,"106":0.0061,"109":0.03048,"114":0.0061,"116":0.02438,"119":0.02438,"120":0.0061,"122":0.09143,"124":0.92035,"125":0.0061,"130":0.03657,"131":0.35351,"132":0.02438,"133":0.01829,"134":0.02438,"135":0.05486,"138":0.2438,"139":0.01829,"140":0.01829,"141":0.02438,"142":0.47541,"143":2.18201,"144":1.12148,"145":13.78689,"146":8.76461,"147":0.03657,"148":0.0061,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 96 97 100 101 102 103 104 105 107 108 110 111 112 113 115 117 118 121 123 126 127 128 129 136 137 149 150"},F:{"79":0.03048,"95":0.0061,"96":0.01829,"104":0.01219,"122":0.0061,"126":0.0061,"127":0.60341,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"98":0.01219,"133":0.04876,"136":0.01219,"139":0.128,"140":0.01219,"143":0.06095,"144":0.32913,"145":6.30833,"146":5.86339,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 134 135 137 138 141 142"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 12.1 14.1 15.1 15.2-15.3 15.4 15.5 16.4 17.0 18.0 18.2 26.1 26.5 TP","11.1":0.28647,"13.1":0.0061,"15.6":0.32304,"16.0":0.04267,"16.1":0.0061,"16.2":0.06095,"16.3":0.0061,"16.5":0.01829,"16.6":0.22552,"17.1":0.01829,"17.2":0.0061,"17.3":0.0061,"17.4":0.01219,"17.5":0.01829,"17.6":0.20114,"18.1":0.03657,"18.3":0.21333,"18.4":0.01219,"18.5-18.7":0.02438,"26.0":0.05486,"26.2":0.15847,"26.3":1.71879,"26.4":0.04876},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00235,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.0047,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.01175,"11.0-11.2":0.29603,"11.3-11.4":0.00705,"12.0-12.1":0,"12.2-12.5":0.09163,"13.0-13.1":0,"13.2":0.03524,"13.3":0.0047,"13.4-13.7":0.01175,"14.0-14.4":0.02115,"14.5-14.8":0.02115,"15.0-15.1":0.03054,"15.2-15.3":0.0188,"15.4":0.02349,"15.5":0.02584,"15.6-15.8":0.41585,"16.0":0.04229,"16.1":0.08223,"16.2":0.04699,"16.3":0.08458,"16.4":0.0188,"16.5":0.03524,"16.6-16.7":0.57797,"17.0":0.02584,"17.1":0.04229,"17.2":0.03759,"17.3":0.05169,"17.4":0.08458,"17.5":0.15976,"17.6-17.7":0.41116,"18.0":0.08928,"18.1":0.18326,"18.2":0.09633,"18.3":0.30778,"18.4":0.14802,"18.5-18.7":4.70832,"26.0":0.29368,"26.1":0.4464,"26.2":2.6267,"26.3":11.41132,"26.4":0.4276,"26.5":0},P:{"29":1.6952,_:"4 20 21 22 23 24 25 26 27 28 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.0039,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0.98822,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":1.02337},Q:{_:"14.9"},O:{"0":0.03515},H:{all:0},L:{"0":12.84737}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/LK.js b/server/api/node_modules/caniuse-lite/data/regions/LK.js new file mode 100644 index 0000000..6021111 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/LK.js @@ -0,0 +1 @@ +module.exports={C:{"115":0.09173,"140":0.01529,"141":0.00764,"146":0.01529,"147":0.03058,"148":0.96314,"149":0.14524,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 142 143 144 145 150 151 152 3.5 3.6"},D:{"74":0.00764,"76":0.00764,"79":0.00764,"80":0.00764,"87":0.00764,"93":0.00764,"103":0.04586,"104":0.00764,"105":0.01529,"106":0.01529,"107":0.00764,"108":0.01529,"109":0.55037,"110":0.00764,"111":0.00764,"112":0.02293,"114":0.00764,"116":0.02293,"117":0.00764,"118":0.00764,"119":0.00764,"120":0.01529,"121":0.00764,"122":0.01529,"123":0.00764,"124":0.01529,"125":0.01529,"126":0.01529,"127":0.02293,"128":0.01529,"129":0.00764,"130":0.00764,"131":0.04586,"132":0.00764,"133":0.03058,"134":0.01529,"135":0.02293,"136":0.02293,"137":0.03058,"138":0.06115,"139":0.0688,"140":0.02293,"141":0.05351,"142":0.05351,"143":0.09173,"144":0.25225,"145":7.22358,"146":6.48211,"147":0.01529,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 75 77 78 81 83 84 85 86 88 89 90 91 92 94 95 96 97 98 99 100 101 102 113 115 148 149 150"},F:{"94":0.00764,"95":0.12995,"96":0.03822,"126":0.02293,"127":0.22932,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.01529,"92":0.02293,"109":0.00764,"122":0.00764,"135":0.00764,"136":0.00764,"138":0.00764,"139":0.00764,"140":0.00764,"141":0.00764,"142":0.03058,"143":0.0688,"144":0.2599,"145":26.08897,"146":25.31693,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 123 124 125 126 127 128 129 130 131 132 133 134 137"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.3 16.4 16.5 17.0 17.2 17.3 17.4 18.0 18.1 26.5 TP","15.6":0.00764,"16.6":0.01529,"17.1":0.00764,"17.5":0.00764,"17.6":0.01529,"18.2":0.00764,"18.3":0.00764,"18.4":0.00764,"18.5-18.7":0.01529,"26.0":0.00764,"26.1":0.00764,"26.2":0.03822,"26.3":0.1223,"26.4":0.00764},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00035,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00071,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00177,"11.0-11.2":0.04457,"11.3-11.4":0.00106,"12.0-12.1":0,"12.2-12.5":0.0138,"13.0-13.1":0,"13.2":0.00531,"13.3":0.00071,"13.4-13.7":0.00177,"14.0-14.4":0.00318,"14.5-14.8":0.00318,"15.0-15.1":0.0046,"15.2-15.3":0.00283,"15.4":0.00354,"15.5":0.00389,"15.6-15.8":0.06261,"16.0":0.00637,"16.1":0.01238,"16.2":0.00707,"16.3":0.01273,"16.4":0.00283,"16.5":0.00531,"16.6-16.7":0.08702,"17.0":0.00389,"17.1":0.00637,"17.2":0.00566,"17.3":0.00778,"17.4":0.01273,"17.5":0.02405,"17.6-17.7":0.0619,"18.0":0.01344,"18.1":0.02759,"18.2":0.0145,"18.3":0.04634,"18.4":0.02228,"18.5-18.7":0.70886,"26.0":0.04422,"26.1":0.06721,"26.2":0.39546,"26.3":1.71802,"26.4":0.06438,"26.5":0},P:{"21":0.01054,"22":0.02108,"23":0.02108,"24":0.03161,"25":0.06323,"26":0.05269,"27":0.06323,"28":0.1686,"29":0.63226,_:"4 20 5.0-5.4 6.2-6.4 8.2 9.2 10.1 12.0 13.0 14.0 15.0 16.0 17.0 18.0","7.2-7.4":0.15806,"11.1-11.2":0.01054,"19.0":0.01054},I:{"0":0.00471,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0.62408,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.08243},Q:{_:"14.9"},O:{"0":0.54872},H:{all:0},L:{"0":23.43796}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/LR.js b/server/api/node_modules/caniuse-lite/data/regions/LR.js new file mode 100644 index 0000000..c6bd394 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/LR.js @@ -0,0 +1 @@ +module.exports={C:{"55":0.01104,"56":0.00368,"58":0.01104,"65":0.00736,"85":0.00368,"112":0.01104,"115":0.00736,"128":0.00368,"138":0.02577,"140":0.04417,"146":0.00736,"147":0.05153,"148":0.49694,"149":0.13252,"150":0.00368,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 57 59 60 61 62 63 64 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 113 114 116 117 118 119 120 121 122 123 124 125 126 127 129 130 131 132 133 134 135 136 137 139 141 142 143 144 145 151 152 3.5 3.6"},D:{"55":0.01104,"56":0.00368,"57":0.00368,"59":0.02577,"60":0.08098,"64":0.00368,"66":0.00368,"67":0.00736,"69":0.00368,"71":0.02945,"72":0.02577,"73":0.00368,"75":0.00368,"76":0.00736,"77":0.00736,"79":0.00736,"80":0.00736,"81":0.00368,"83":0.00736,"86":0.00368,"88":0.00368,"90":0.01841,"93":0.02945,"94":0.00736,"95":0.00736,"98":0.01104,"99":0.00368,"103":0.03313,"105":0.02577,"109":0.12147,"110":0.00736,"111":0.05153,"114":0.00368,"116":0.00368,"117":0.00368,"118":0.01104,"119":0.00368,"120":0.01104,"122":0.00736,"123":0.00368,"125":0.00368,"126":0.04417,"127":0.01841,"128":0.05153,"131":0.01841,"132":0.04785,"133":0.00368,"134":0.01841,"135":0.01841,"136":0.02577,"137":0.09939,"138":0.19141,"139":0.07362,"140":0.04417,"141":0.02577,"142":0.04417,"143":0.10675,"144":0.3497,"145":4.5534,"146":3.48591,"147":0.01104,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 58 61 62 63 65 68 70 74 78 84 85 87 89 91 92 96 97 100 101 102 104 106 107 108 112 113 115 121 124 129 130 148 149 150"},F:{"50":0.00368,"90":0.00368,"91":0.00736,"93":0.04417,"94":0.01104,"95":0.08466,"96":0.02945,"113":0.00736,"125":0.01104,"126":0.01472,"127":0.28344,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 92 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 114 115 116 117 118 119 120 121 122 123 124 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.00736,"15":0.02577,"16":0.00368,"17":0.01104,"18":0.16933,"84":0.00368,"85":0.00368,"89":0.00736,"90":0.02577,"92":0.04785,"97":0.00368,"100":0.01841,"111":0.01104,"114":0.01841,"120":0.00368,"122":0.00368,"128":0.00368,"129":0.00736,"130":0.00368,"131":0.00736,"133":0.00736,"134":0.00368,"135":0.00368,"136":0.00736,"137":0.01104,"138":0.02945,"139":0.00736,"140":0.00736,"141":0.01104,"142":0.03681,"143":0.0773,"144":0.15828,"145":1.96197,"146":1.62332,_:"12 13 79 80 81 83 86 87 88 91 93 94 95 96 98 99 101 102 103 104 105 106 107 108 109 110 112 113 115 116 117 118 119 121 123 124 125 126 127 132"},E:{"14":0.01841,_:"4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 15.1 15.2-15.3 15.5 16.0 16.1 16.2 16.3 16.4 16.5 17.0 17.3 17.4 18.0 18.1 18.2 18.3 26.0 26.1 26.4 26.5 TP","11.1":0.01472,"12.1":0.00368,"13.1":0.01841,"14.1":0.00368,"15.4":0.00368,"15.6":0.08098,"16.6":0.03681,"17.1":0.00736,"17.2":0.00736,"17.5":0.02209,"17.6":0.1362,"18.4":0.00368,"18.5-18.7":0.00736,"26.2":0.02209,"26.3":0.1362},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00058,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00116,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.0029,"11.0-11.2":0.07308,"11.3-11.4":0.00174,"12.0-12.1":0,"12.2-12.5":0.02262,"13.0-13.1":0,"13.2":0.0087,"13.3":0.00116,"13.4-13.7":0.0029,"14.0-14.4":0.00522,"14.5-14.8":0.00522,"15.0-15.1":0.00754,"15.2-15.3":0.00464,"15.4":0.0058,"15.5":0.00638,"15.6-15.8":0.10266,"16.0":0.01044,"16.1":0.0203,"16.2":0.0116,"16.3":0.02088,"16.4":0.00464,"16.5":0.0087,"16.6-16.7":0.14268,"17.0":0.00638,"17.1":0.01044,"17.2":0.00928,"17.3":0.01276,"17.4":0.02088,"17.5":0.03944,"17.6-17.7":0.1015,"18.0":0.02204,"18.1":0.04524,"18.2":0.02378,"18.3":0.07598,"18.4":0.03654,"18.5-18.7":1.1623,"26.0":0.0725,"26.1":0.1102,"26.2":0.64843,"26.3":2.81702,"26.4":0.10556,"26.5":0},P:{"21":0.01038,"22":0.01038,"24":0.04154,"26":0.01038,"27":0.08308,"28":0.11423,"29":0.57116,_:"4 20 23 25 5.0-5.4 6.2-6.4 8.2 10.1 11.1-11.2 12.0 13.0 14.0 16.0 17.0 18.0 19.0","7.2-7.4":0.01038,"9.2":0.03115,"15.0":0.02077},I:{"0":0.01894,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":3.48122,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{"2.5":0.01264,_:"3.0-3.1"},R:{_:"0"},M:{"0":0.0695},Q:{"14.9":0.00632},O:{"0":0.56862},H:{all:0},L:{"0":71.99843}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/LS.js b/server/api/node_modules/caniuse-lite/data/regions/LS.js new file mode 100644 index 0000000..e1f7cbc --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/LS.js @@ -0,0 +1 @@ +module.exports={C:{"88":0.00396,"115":0.01981,"127":0.00396,"128":0.00792,"140":0.00396,"141":0.00792,"143":0.00792,"146":0.00396,"147":0.04754,"148":0.69731,"149":0.0832,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 129 130 131 132 133 134 135 136 137 138 139 142 144 145 150 151 152 3.5 3.6"},D:{"54":0.00396,"56":0.00396,"63":0.00396,"65":0.00792,"69":0.00396,"77":0.00396,"79":0.00792,"87":0.00792,"88":0.00396,"92":0.00396,"101":0.00396,"103":0.01189,"104":0.00396,"109":0.40809,"114":0.01189,"115":0.00396,"116":0.00396,"118":0.00792,"119":0.00396,"120":0.02377,"122":0.01189,"124":0.00396,"125":0.07528,"127":0.30507,"129":0.01189,"130":0.04358,"131":0.02377,"132":0.00396,"133":0.00396,"134":0.12678,"135":0.00792,"136":0.00792,"137":0.00396,"138":0.07528,"139":0.05547,"140":0.01585,"141":0.00792,"142":0.06339,"143":0.04358,"144":0.19414,"145":6.09752,"146":4.34631,"148":0.00396,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 55 57 58 59 60 61 62 64 66 67 68 70 71 72 73 74 75 76 78 80 81 83 84 85 86 89 90 91 93 94 95 96 97 98 99 100 102 105 106 107 108 110 111 112 113 117 121 123 126 128 147 149 150"},F:{"38":0.00396,"45":0.00792,"86":0.00396,"94":0.00396,"95":0.45167,"96":0.00792,"112":0.00792,"124":0.00396,"125":0.03962,"126":0.02773,"127":0.31696,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 87 88 89 90 91 92 93 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 113 114 115 116 117 118 119 120 121 122 123 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"16":0.00792,"18":0.02377,"83":0.00396,"92":0.04754,"104":0.00396,"109":0.03566,"111":0.00396,"114":0.00396,"121":0.00396,"122":0.01189,"133":0.00396,"134":0.00396,"135":0.00396,"137":0.01189,"138":0.01981,"139":0.01585,"140":0.00792,"141":0.01981,"142":0.01585,"143":0.0317,"144":0.05943,"145":1.91761,"146":1.36293,_:"12 13 14 15 17 79 80 81 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 105 106 107 108 110 112 113 115 116 117 118 119 120 123 124 125 126 127 128 129 130 131 132 136"},E:{"13":0.00396,_:"4 5 6 7 8 9 10 11 12 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.3 16.4 16.5 17.0 17.1 17.3 17.4 18.0 18.2 18.4 26.0 26.1 26.5 TP","14.1":0.00396,"15.6":0.00396,"16.2":0.00396,"16.6":0.00396,"17.2":0.00792,"17.5":0.00396,"17.6":0.05547,"18.1":0.00792,"18.3":0.00396,"18.5-18.7":0.01189,"26.2":0.06339,"26.3":0.04754,"26.4":0.00396},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00085,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00171,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00427,"11.0-11.2":0.1075,"11.3-11.4":0.00256,"12.0-12.1":0,"12.2-12.5":0.03327,"13.0-13.1":0,"13.2":0.0128,"13.3":0.00171,"13.4-13.7":0.00427,"14.0-14.4":0.00768,"14.5-14.8":0.00768,"15.0-15.1":0.01109,"15.2-15.3":0.00683,"15.4":0.00853,"15.5":0.00938,"15.6-15.8":0.15101,"16.0":0.01536,"16.1":0.02986,"16.2":0.01706,"16.3":0.03071,"16.4":0.00683,"16.5":0.0128,"16.6-16.7":0.20988,"17.0":0.00938,"17.1":0.01536,"17.2":0.01365,"17.3":0.01877,"17.4":0.03071,"17.5":0.05802,"17.6-17.7":0.1493,"18.0":0.03242,"18.1":0.06655,"18.2":0.03498,"18.3":0.11177,"18.4":0.05375,"18.5-18.7":1.70975,"26.0":0.10665,"26.1":0.1621,"26.2":0.95384,"26.3":4.14384,"26.4":0.15528,"26.5":0},P:{"22":0.04078,"23":0.01019,"24":0.10194,"25":0.05097,"26":0.04078,"27":0.11214,"28":0.25486,"29":3.47629,_:"4 20 21 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0","7.2-7.4":0.25486,"19.0":0.04078},I:{"0":0.0181,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":3.55638,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.04227},Q:{_:"14.9"},O:{"0":0.50719},H:{all:0},L:{"0":64.30878}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/LT.js b/server/api/node_modules/caniuse-lite/data/regions/LT.js new file mode 100644 index 0000000..1adb53b --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/LT.js @@ -0,0 +1 @@ +module.exports={C:{"52":0.00575,"56":0.00575,"78":0.00575,"106":0.00575,"115":0.33356,"122":0.00575,"127":0.00575,"128":0.00575,"129":0.023,"133":0.00575,"134":0.00575,"135":0.0115,"136":0.0115,"137":0.00575,"138":0.00575,"139":0.0115,"140":0.12652,"141":0.0115,"142":0.0115,"143":0.023,"144":0.01725,"145":0.0115,"146":0.03451,"147":0.28755,"148":3.04803,"149":0.60386,"150":0.00575,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 107 108 109 110 111 112 113 114 116 117 118 119 120 121 123 124 125 126 130 131 132 151 152 3.5 3.6"},D:{"39":0.03451,"40":0.02876,"41":0.02876,"42":0.03451,"43":0.03451,"44":0.02876,"45":0.02876,"46":0.02876,"47":0.03451,"48":0.03451,"49":0.03451,"50":0.03451,"51":0.03451,"52":0.03451,"53":0.03451,"54":0.03451,"55":0.03451,"56":0.03451,"57":0.03451,"58":0.03451,"59":0.03451,"60":0.03451,"79":0.00575,"83":0.00575,"88":0.04601,"101":0.00575,"102":0.023,"103":0.0115,"104":0.00575,"105":0.00575,"106":0.01725,"107":0.00575,"109":1.21346,"110":0.00575,"111":0.00575,"112":0.0115,"114":0.01725,"115":0.00575,"116":0.05751,"117":0.00575,"118":0.00575,"119":0.01725,"120":0.07476,"121":0.00575,"122":0.42557,"123":0.00575,"124":0.01725,"125":0.00575,"126":0.02876,"127":0.00575,"128":0.04601,"129":0.04601,"130":0.05751,"131":0.17828,"132":0.02876,"133":0.04601,"134":0.05751,"135":0.02876,"136":0.04601,"137":0.05751,"138":0.54059,"139":0.40832,"140":0.16678,"141":0.34506,"142":0.13227,"143":0.32781,"144":3.77841,"145":14.07845,"146":11.29496,"147":0.04601,"148":0.00575,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 84 85 86 87 89 90 91 92 93 94 95 96 97 98 99 100 108 113 149 150"},F:{"87":0.01725,"94":0.00575,"95":0.21854,"96":0.06326,"99":0.05751,"102":0.00575,"114":0.00575,"119":0.00575,"124":0.00575,"125":0.00575,"126":0.06326,"127":1.49526,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 88 89 90 91 92 93 97 98 100 101 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 120 121 122 123 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.01725,"92":0.0115,"105":0.00575,"109":0.04601,"120":0.00575,"122":0.00575,"131":0.00575,"132":0.00575,"133":0.00575,"134":0.00575,"135":0.00575,"136":0.0115,"137":0.00575,"138":0.01725,"140":0.0115,"141":0.01725,"142":0.01725,"143":0.04026,"144":0.09777,"145":2.61095,"146":2.75473,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 106 107 108 110 111 112 113 114 115 116 117 118 119 121 123 124 125 126 127 128 129 130 139"},E:{"10":0.00575,"11":0.0115,"14":0.00575,"15":0.00575,_:"4 5 6 7 8 9 12 13 3.1 3.2 5.1 6.1 7.1 11.1 12.1 15.1 15.2-15.3 15.5 16.0 26.5 TP","9.1":0.00575,"10.1":0.01725,"13.1":0.00575,"14.1":0.00575,"15.4":0.00575,"15.6":0.06901,"16.1":0.00575,"16.2":0.00575,"16.3":0.00575,"16.4":0.00575,"16.5":0.00575,"16.6":0.04601,"17.0":0.00575,"17.1":0.023,"17.2":0.00575,"17.3":0.0115,"17.4":0.023,"17.5":0.023,"17.6":0.12652,"18.0":0.00575,"18.1":0.03451,"18.2":0.00575,"18.3":0.023,"18.4":0.0115,"18.5-18.7":0.04601,"26.0":0.023,"26.1":0.03451,"26.2":0.3048,"26.3":0.8339,"26.4":0.04601},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00104,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00209,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00522,"11.0-11.2":0.13159,"11.3-11.4":0.00313,"12.0-12.1":0,"12.2-12.5":0.04073,"13.0-13.1":0,"13.2":0.01567,"13.3":0.00209,"13.4-13.7":0.00522,"14.0-14.4":0.0094,"14.5-14.8":0.0094,"15.0-15.1":0.01358,"15.2-15.3":0.00836,"15.4":0.01044,"15.5":0.01149,"15.6-15.8":0.18486,"16.0":0.0188,"16.1":0.03655,"16.2":0.02089,"16.3":0.0376,"16.4":0.00836,"16.5":0.01567,"16.6-16.7":0.25692,"17.0":0.01149,"17.1":0.0188,"17.2":0.01671,"17.3":0.02298,"17.4":0.0376,"17.5":0.07102,"17.6-17.7":0.18277,"18.0":0.03969,"18.1":0.08146,"18.2":0.04282,"18.3":0.13682,"18.4":0.0658,"18.5-18.7":2.09299,"26.0":0.13055,"26.1":0.19844,"26.2":1.16764,"26.3":5.07267,"26.4":0.19008,"26.5":0},P:{"4":0.01038,"21":0.01038,"23":0.01038,"24":0.02075,"25":0.02075,"26":0.03113,"27":0.01038,"28":0.0415,"29":2.55246,_:"20 22 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.06226},I:{"0":0.0467,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.44615,_:"10 11 12 11.1 11.5 12.1"},A:{"9":0.00719,"10":0.00719,"11":0.01438,_:"6 7 8 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.38666},Q:{_:"14.9"},O:{"0":0.04674},H:{all:0},L:{"0":30.14585}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/LU.js b/server/api/node_modules/caniuse-lite/data/regions/LU.js new file mode 100644 index 0000000..ddfbcba --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/LU.js @@ -0,0 +1 @@ +module.exports={C:{"52":0.00553,"60":0.06084,"78":0.13274,"91":0.01106,"101":0.01106,"102":0.00553,"115":0.4646,"116":0.04978,"122":0.01659,"123":0.03872,"128":0.14381,"133":0.00553,"134":0.00553,"135":0.00553,"136":0.04425,"138":0.00553,"139":0.00553,"140":4.80644,"142":0.0719,"143":0.00553,"144":0.00553,"145":0.00553,"146":0.17146,"147":0.21018,"148":2.90378,"149":0.86284,"150":0.05531,"151":0.01659,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 92 93 94 95 96 97 98 99 100 103 104 105 106 107 108 109 110 111 112 113 114 117 118 119 120 121 124 125 126 127 129 130 131 132 137 141 152 3.5 3.6"},D:{"73":0.05531,"88":0.00553,"92":0.02212,"95":0.01106,"103":0.04425,"104":0.00553,"109":0.38717,"111":0.00553,"114":0.01659,"116":0.3927,"118":0.04978,"119":0.06084,"120":0.01659,"121":0.04978,"122":0.09956,"123":0.01659,"124":0.01106,"125":0.00553,"126":0.01659,"127":0.00553,"128":0.04425,"129":0.00553,"130":0.04978,"131":0.03872,"132":0.02212,"133":0.02766,"134":0.09956,"135":0.00553,"136":0.06637,"137":0.06637,"138":1.13939,"139":0.07743,"140":0.02766,"141":0.08297,"142":0.27102,"143":0.44801,"144":0.49226,"145":9.62394,"146":6.27769,"147":0.00553,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 74 75 76 77 78 79 80 81 83 84 85 86 87 89 90 91 93 94 96 97 98 99 100 101 102 105 106 107 108 110 112 113 115 117 148 149 150"},F:{"84":0.01106,"86":0.00553,"87":0.01106,"95":0.03872,"96":0.06084,"97":0.00553,"107":0.00553,"114":0.00553,"116":0.00553,"120":0.00553,"125":0.00553,"126":0.01106,"127":0.66372,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 85 88 89 90 91 92 93 94 98 99 100 101 102 103 104 105 106 108 109 110 111 112 113 115 117 118 119 121 122 123 124 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"99":0.00553,"102":0.00553,"109":0.01106,"118":0.00553,"120":0.00553,"121":0.00553,"122":0.00553,"124":0.00553,"129":0.00553,"131":0.00553,"133":0.01106,"134":0.01106,"135":0.00553,"136":0.00553,"137":0.01106,"138":0.01659,"139":0.00553,"140":0.01106,"141":0.02766,"142":0.02212,"143":0.07743,"144":0.49226,"145":3.52325,"146":3.42369,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 100 101 103 104 105 106 107 108 110 111 112 113 114 115 116 117 119 123 125 126 127 128 130 132"},E:{"14":0.00553,"15":0.01106,_:"4 5 6 7 8 9 10 11 12 13 3.1 3.2 5.1 6.1 7.1 9.1 10.1 15.1 26.5 TP","11.1":0.00553,"12.1":0.00553,"13.1":0.01659,"14.1":0.02212,"15.2-15.3":0.00553,"15.4":0.00553,"15.5":0.01106,"15.6":0.09956,"16.0":0.01106,"16.1":0.03319,"16.2":0.01659,"16.3":0.02212,"16.4":0.01106,"16.5":0.04978,"16.6":0.15487,"17.0":0.01659,"17.1":0.35398,"17.2":0.03319,"17.3":0.06084,"17.4":0.06637,"17.5":0.06084,"17.6":0.27102,"18.0":0.0719,"18.1":0.09956,"18.2":0.02212,"18.3":0.11062,"18.4":0.05531,"18.5-18.7":0.18805,"26.0":0.18805,"26.1":0.31527,"26.2":0.56416,"26.3":2.5332,"26.4":0.13828},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00164,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00329,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00821,"11.0-11.2":0.207,"11.3-11.4":0.00493,"12.0-12.1":0,"12.2-12.5":0.06407,"13.0-13.1":0,"13.2":0.02464,"13.3":0.00329,"13.4-13.7":0.00821,"14.0-14.4":0.01479,"14.5-14.8":0.01479,"15.0-15.1":0.02136,"15.2-15.3":0.01314,"15.4":0.01643,"15.5":0.01807,"15.6-15.8":0.29079,"16.0":0.02957,"16.1":0.0575,"16.2":0.03286,"16.3":0.05914,"16.4":0.01314,"16.5":0.02464,"16.6-16.7":0.40415,"17.0":0.01807,"17.1":0.02957,"17.2":0.02629,"17.3":0.03614,"17.4":0.05914,"17.5":0.11172,"17.6-17.7":0.2875,"18.0":0.06243,"18.1":0.12814,"18.2":0.06736,"18.3":0.21522,"18.4":0.1035,"18.5-18.7":3.29234,"26.0":0.20536,"26.1":0.31215,"26.2":1.83674,"26.3":7.97949,"26.4":0.299,"26.5":0},P:{"4":0.01042,"21":0.02084,"23":0.05209,"24":0.01042,"26":0.02084,"27":0.03125,"28":0.02084,"29":3.85452,_:"20 22 25 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.02678,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.65233,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.01106,"11":0.01106,_:"6 7 9 10 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":2.01954},Q:{"14.9":0.04021},O:{"0":0.17872},H:{all:0},L:{"0":25.36917}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/LV.js b/server/api/node_modules/caniuse-lite/data/regions/LV.js new file mode 100644 index 0000000..6c98197 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/LV.js @@ -0,0 +1 @@ +module.exports={C:{"52":0.01291,"110":0.03227,"113":0.00645,"114":0.01291,"115":0.60013,"128":0.08389,"130":0.00645,"132":0.00645,"133":0.00645,"134":0.00645,"135":0.00645,"136":0.02581,"137":0.00645,"138":0.00645,"139":0.03872,"140":0.2194,"141":0.00645,"142":0.00645,"143":0.01936,"144":0.09034,"145":0.01936,"146":0.05162,"147":0.23876,"148":4.64616,"149":0.65821,"150":0.00645,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 111 112 116 117 118 119 120 121 122 123 124 125 126 127 129 131 151 152 3.5 3.6"},D:{"79":0.00645,"87":0.00645,"92":0.00645,"99":0.00645,"103":0.05162,"104":0.01936,"105":0.01936,"106":0.03227,"107":0.01936,"108":0.02581,"109":2.24564,"110":0.01936,"111":0.02581,"112":0.0968,"113":0.00645,"114":0.01291,"115":0.00645,"116":0.10325,"117":0.01936,"118":0.00645,"119":0.00645,"120":0.05162,"121":0.01291,"122":0.04517,"123":0.01291,"124":0.03227,"125":0.00645,"126":0.09034,"127":0.00645,"128":0.06453,"129":0.01291,"130":0.10325,"131":0.13551,"132":0.01291,"133":0.07098,"134":0.05162,"135":0.21295,"136":0.04517,"137":0.1097,"138":0.2194,"139":0.18714,"140":0.18068,"141":0.12261,"142":0.13551,"143":0.45171,"144":0.79372,"145":16.82297,"146":12.74468,"147":0.13551,"148":0.18068,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 83 84 85 86 88 89 90 91 93 94 95 96 97 98 100 101 102 149 150"},F:{"77":0.00645,"79":0.01291,"82":0.01291,"85":0.00645,"86":0.01291,"87":0.00645,"93":0.00645,"95":0.41945,"96":0.08389,"99":0.01936,"114":0.00645,"119":0.00645,"122":0.01291,"124":0.00645,"125":0.00645,"126":0.09034,"127":1.48419,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 78 80 81 83 84 88 89 90 91 92 94 97 98 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 120 121 123 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.00645,"102":0.00645,"109":0.05162,"120":0.00645,"128":0.01291,"131":0.01291,"133":0.01936,"135":0.00645,"136":0.00645,"138":0.00645,"140":0.00645,"141":0.00645,"142":0.00645,"143":0.05162,"144":0.1097,"145":2.38761,"146":2.28436,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 121 122 123 124 125 126 127 129 130 132 134 137 139"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 15.1 15.2-15.3 15.4 15.5 16.0 16.2 16.3 16.4 26.5 TP","14.1":0.00645,"15.6":0.1097,"16.1":0.00645,"16.5":0.00645,"16.6":0.08389,"17.0":0.00645,"17.1":0.04517,"17.2":0.00645,"17.3":0.01936,"17.4":0.01291,"17.5":0.01291,"17.6":0.07098,"18.0":0.00645,"18.1":0.00645,"18.2":0.00645,"18.3":0.06453,"18.4":0.00645,"18.5-18.7":0.05808,"26.0":0.02581,"26.1":0.04517,"26.2":0.16778,"26.3":0.8647,"26.4":0.09034},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00095,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.0019,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00475,"11.0-11.2":0.11978,"11.3-11.4":0.00285,"12.0-12.1":0,"12.2-12.5":0.03707,"13.0-13.1":0,"13.2":0.01426,"13.3":0.0019,"13.4-13.7":0.00475,"14.0-14.4":0.00856,"14.5-14.8":0.00856,"15.0-15.1":0.01236,"15.2-15.3":0.0076,"15.4":0.00951,"15.5":0.01046,"15.6-15.8":0.16826,"16.0":0.01711,"16.1":0.03327,"16.2":0.01901,"16.3":0.03422,"16.4":0.0076,"16.5":0.01426,"16.6-16.7":0.23385,"17.0":0.01046,"17.1":0.01711,"17.2":0.01521,"17.3":0.02091,"17.4":0.03422,"17.5":0.06464,"17.6-17.7":0.16635,"18.0":0.03612,"18.1":0.07415,"18.2":0.03897,"18.3":0.12453,"18.4":0.05989,"18.5-18.7":1.90499,"26.0":0.11882,"26.1":0.18061,"26.2":1.06277,"26.3":4.61704,"26.4":0.17301,"26.5":0},P:{"22":0.01037,"23":0.01037,"25":0.01037,"26":0.02075,"27":0.03112,"28":0.06224,"29":2.44816,_:"4 20 21 24 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.01037},I:{"0":0.04607,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.27667,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.33697},Q:{_:"14.9"},O:{"0":0.02128},H:{all:0},L:{"0":26.17774}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/LY.js b/server/api/node_modules/caniuse-lite/data/regions/LY.js new file mode 100644 index 0000000..838ba82 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/LY.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.00417,"52":0.00208,"56":0.00208,"72":0.00208,"91":0.00208,"115":0.17297,"133":0.00208,"136":0.00208,"140":0.01042,"143":0.00417,"146":0.00208,"147":0.02918,"148":0.30843,"149":0.07502,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 134 135 137 138 139 141 142 144 145 150 151 152 3.5 3.6"},D:{"49":0.00208,"51":0.00208,"63":0.00208,"64":0.00208,"69":0.00208,"70":0.00625,"71":0.00834,"73":0.00208,"74":0.00208,"75":0.00417,"78":0.00834,"79":0.04376,"81":0.00208,"83":0.00208,"86":0.00208,"87":0.00625,"88":0.00208,"90":0.00417,"91":0.00208,"92":0.00208,"93":0.00208,"94":0.00208,"95":0.00625,"96":0.01042,"98":0.01667,"99":0.00208,"100":0.00208,"101":0.00208,"103":0.09586,"104":0.08544,"105":0.08336,"106":0.09586,"107":0.08336,"108":0.10003,"109":1.11911,"110":0.07919,"111":0.08544,"112":0.07919,"114":0.01042,"116":0.16464,"117":0.08753,"119":0.00417,"120":0.08753,"121":0.00417,"122":0.02084,"123":0.03751,"124":0.10212,"125":0.00208,"126":0.0125,"127":0.00208,"128":0.00417,"130":0.00417,"131":0.17922,"132":0.0125,"133":0.17297,"134":0.01876,"135":0.02292,"136":0.00625,"137":0.13338,"138":0.03543,"139":0.03543,"140":0.03126,"141":0.01042,"142":0.02918,"143":0.08128,"144":0.29801,"145":3.02805,"146":2.38618,"147":0.01042,"148":0.02501,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 52 53 54 55 56 57 58 59 60 61 62 65 66 67 68 72 76 77 80 84 85 89 97 102 113 115 118 129 149 150"},F:{"36":0.00208,"79":0.00208,"81":0.02292,"86":0.00417,"92":0.00208,"93":0.00834,"94":0.02918,"95":0.08961,"96":0.07294,"125":0.00208,"126":0.00834,"127":0.13546,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 82 83 84 85 87 88 89 90 91 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"17":0.00208,"18":0.0125,"89":0.00208,"92":0.01459,"100":0.00208,"109":0.02084,"114":0.00417,"122":0.00208,"123":0.00417,"128":0.00625,"131":0.00208,"135":0.00208,"136":0.00208,"138":0.00208,"139":0.00208,"140":0.00625,"141":0.00417,"142":0.00208,"143":0.10003,"144":0.04168,"145":0.6773,"146":0.58144,_:"12 13 14 15 16 79 80 81 83 84 85 86 87 88 90 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 124 125 126 127 129 130 132 133 134 137"},E:{"14":0.00417,_:"4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 13.1 15.1 15.2-15.3 16.0 16.2 16.3 16.4 17.0 17.1 17.2 17.3 17.4 17.5 18.1 18.2 18.4 26.5 TP","5.1":0.02292,"14.1":0.01042,"15.4":0.00208,"15.5":0.00208,"15.6":0.00625,"16.1":0.01459,"16.5":0.00208,"16.6":0.00417,"17.6":0.00417,"18.0":0.00208,"18.3":0.00417,"18.5-18.7":0.00625,"26.0":0.00208,"26.1":0.0125,"26.2":0.01459,"26.3":0.06044,"26.4":0.00625},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00105,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.0021,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00525,"11.0-11.2":0.13226,"11.3-11.4":0.00315,"12.0-12.1":0,"12.2-12.5":0.04094,"13.0-13.1":0,"13.2":0.01574,"13.3":0.0021,"13.4-13.7":0.00525,"14.0-14.4":0.00945,"14.5-14.8":0.00945,"15.0-15.1":0.01365,"15.2-15.3":0.0084,"15.4":0.0105,"15.5":0.01155,"15.6-15.8":0.18579,"16.0":0.01889,"16.1":0.03674,"16.2":0.02099,"16.3":0.03779,"16.4":0.0084,"16.5":0.01574,"16.6-16.7":0.25822,"17.0":0.01155,"17.1":0.01889,"17.2":0.01679,"17.3":0.02309,"17.4":0.03779,"17.5":0.07138,"17.6-17.7":0.18369,"18.0":0.03989,"18.1":0.08187,"18.2":0.04304,"18.3":0.13751,"18.4":0.06613,"18.5-18.7":2.10352,"26.0":0.13121,"26.1":0.19944,"26.2":1.17352,"26.3":5.09821,"26.4":0.19104,"26.5":0},P:{"20":0.01014,"21":0.07098,"22":0.0507,"23":0.06084,"24":0.09125,"25":0.09125,"26":0.16223,"27":0.17237,"28":0.31432,"29":1.79466,_:"4 9.2 10.1 13.0 14.0 16.0","5.0-5.4":0.01014,"6.2-6.4":0.01014,"7.2-7.4":0.27376,"8.2":0.01014,"11.1-11.2":0.01014,"12.0":0.06084,"15.0":0.01014,"17.0":0.06084,"18.0":0.01014,"19.0":0.01014},I:{"0":0.11863,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00006},K:{"0":2.34314,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.08708},Q:{_:"14.9"},O:{"0":0.27706},H:{all:0},L:{"0":70.56705}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/MA.js b/server/api/node_modules/caniuse-lite/data/regions/MA.js new file mode 100644 index 0000000..92d483b --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/MA.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.01885,"48":0.00942,"52":0.00942,"65":0.01414,"75":0.00471,"78":0.00471,"115":0.20733,"122":0.00471,"127":0.00471,"128":0.00942,"133":0.00471,"134":0.00471,"135":0.00471,"136":0.00471,"137":0.00471,"138":0.00471,"140":0.0377,"141":0.00471,"143":0.00471,"144":0.00471,"145":0.00471,"146":0.01885,"147":0.1178,"148":1.0602,"149":0.18377,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 66 67 68 69 70 71 72 73 74 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 123 124 125 126 129 130 131 132 139 142 150 151 152 3.5 3.6"},D:{"49":0.01414,"50":0.00471,"55":0.00471,"56":0.02827,"62":0.00471,"63":0.00471,"65":0.00471,"66":0.00471,"67":0.00471,"68":0.04712,"69":0.00942,"70":0.01414,"71":0.00471,"72":0.02356,"73":0.02356,"74":0.00471,"75":0.00942,"77":0.00471,"78":0.00471,"79":0.03298,"80":0.00942,"81":0.01414,"83":0.03298,"84":0.00471,"85":0.00471,"86":0.00942,"87":0.01885,"90":0.00471,"91":0.00471,"93":0.00471,"95":0.00942,"96":0.00471,"98":0.00942,"100":0.00942,"101":0.00942,"102":0.00471,"103":0.30157,"104":0.28743,"105":0.28272,"106":0.30157,"107":0.28272,"108":0.27801,"109":1.32407,"110":0.30628,"111":0.27801,"112":0.59842,"113":0.00942,"114":0.02827,"115":0.00471,"116":0.61256,"117":0.27801,"118":0.00471,"119":0.07539,"120":0.3157,"121":0.01414,"122":0.0801,"123":0.01414,"124":0.29686,"125":0.01414,"126":0.01885,"127":0.00942,"128":0.07539,"129":0.02827,"130":0.04241,"131":0.67853,"132":0.04241,"133":0.61256,"134":0.08953,"135":0.04712,"136":0.05183,"137":0.05183,"138":0.23089,"139":0.24031,"140":0.03298,"141":0.04241,"142":0.11309,"143":0.32984,"144":0.68324,"145":11.59152,"146":8.55699,"147":0.0377,"148":0.00942,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 51 52 53 54 57 58 59 60 61 64 76 88 89 92 94 97 99 149 150"},F:{"40":0.00471,"46":0.00471,"93":0.00471,"95":0.05654,"96":0.01885,"101":0.00471,"114":0.00471,"125":0.00471,"126":0.04712,"127":0.81518,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 94 97 98 99 100 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 120 121 122 123 124 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.00942,"18":0.00942,"92":0.02356,"109":0.01414,"112":0.00942,"114":0.00471,"117":0.00471,"122":0.00471,"128":0.00471,"129":0.00942,"130":0.00942,"131":0.01885,"132":0.00942,"133":0.01414,"134":0.01885,"135":0.01414,"136":0.00942,"137":0.00942,"138":0.01414,"139":0.00942,"140":0.00942,"141":0.01414,"142":0.02356,"143":0.04241,"144":0.10366,"145":1.78114,"146":1.60679,_:"12 13 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 113 115 116 118 119 120 121 123 124 125 126 127"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 15.5 16.0 16.3 16.4 16.5 17.0 26.5 TP","5.1":0.01414,"13.1":0.00942,"14.1":0.00471,"15.6":0.02827,"16.1":0.00471,"16.2":0.00471,"16.6":0.04712,"17.1":0.01414,"17.2":0.00471,"17.3":0.01414,"17.4":0.00471,"17.5":0.00942,"17.6":0.05654,"18.0":0.01414,"18.1":0.01885,"18.2":0.00471,"18.3":0.01414,"18.4":0.01885,"18.5-18.7":0.03298,"26.0":0.02827,"26.1":0.0377,"26.2":0.0801,"26.3":0.36282,"26.4":0.04712},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00101,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00201,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00503,"11.0-11.2":0.12673,"11.3-11.4":0.00302,"12.0-12.1":0,"12.2-12.5":0.03923,"13.0-13.1":0,"13.2":0.01509,"13.3":0.00201,"13.4-13.7":0.00503,"14.0-14.4":0.00905,"14.5-14.8":0.00905,"15.0-15.1":0.01308,"15.2-15.3":0.00805,"15.4":0.01006,"15.5":0.01106,"15.6-15.8":0.17802,"16.0":0.0181,"16.1":0.0352,"16.2":0.02012,"16.3":0.03621,"16.4":0.00805,"16.5":0.01509,"16.6-16.7":0.24742,"17.0":0.01106,"17.1":0.0181,"17.2":0.01609,"17.3":0.02213,"17.4":0.03621,"17.5":0.06839,"17.6-17.7":0.17601,"18.0":0.03822,"18.1":0.07845,"18.2":0.04124,"18.3":0.13176,"18.4":0.06336,"18.5-18.7":2.01558,"26.0":0.12572,"26.1":0.1911,"26.2":1.12446,"26.3":4.88506,"26.4":0.18305,"26.5":0},P:{"4":0.04133,"20":0.01033,"21":0.01033,"22":0.01033,"23":0.02066,"24":0.02066,"25":0.05166,"26":0.10331,"27":0.06199,"28":0.1653,"29":2.21091,_:"5.0-5.4 9.2 10.1 12.0 13.0 15.0 16.0 17.0 18.0","6.2-6.4":0.01033,"7.2-7.4":0.13431,"8.2":0.01033,"11.1-11.2":0.01033,"14.0":0.01033,"19.0":0.01033},I:{"0":0.07397,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00004},K:{"0":0.2644,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.01414,"11":0.01414,_:"6 7 9 10 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.18508},Q:{_:"14.9"},O:{"0":0.09518},H:{all:0},L:{"0":45.63705}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/MC.js b/server/api/node_modules/caniuse-lite/data/regions/MC.js new file mode 100644 index 0000000..874bfd6 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/MC.js @@ -0,0 +1 @@ +module.exports={C:{"60":0.04866,"78":0.00695,"115":0.59779,"125":0.0139,"140":0.90363,"145":0.00695,"146":0.00695,"147":0.09731,"148":2.82211,"149":1.79336,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 126 127 128 129 130 131 132 133 134 135 136 137 138 139 141 142 143 144 150 151 152 3.5 3.6"},D:{"86":0.00695,"87":1.17472,"96":0.00695,"97":0.00695,"98":0.21548,"99":0.06256,"100":0.00695,"103":1.92543,"107":0.0139,"109":0.33365,"116":0.18768,"120":0.03476,"122":0.0139,"124":0.03476,"125":0.0139,"128":0.03476,"131":0.25719,"133":0.0278,"134":0.00695,"135":0.16682,"137":0.07646,"138":0.30584,"139":0.02085,"140":0.00695,"141":0.05561,"142":0.06951,"143":0.13207,"144":0.77851,"145":7.99365,"146":7.11087,"147":0.0139,"148":0.05561,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 88 89 90 91 92 93 94 95 101 102 104 105 106 108 110 111 112 113 114 115 117 118 119 121 123 126 127 129 130 132 136 149 150"},F:{"84":0.00695,"126":0.0278,"127":16.16108,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"98":0.03476,"99":0.0278,"143":0.00695,"144":0.04171,"145":2.01579,"146":1.52227,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142"},E:{"14":0.00695,_:"4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 11.1 12.1 15.1 15.2-15.3 15.4 15.5 16.0 17.0 26.5 TP","10.1":0.00695,"13.1":0.00695,"14.1":0.03476,"15.6":0.15292,"16.1":0.00695,"16.2":0.00695,"16.3":0.02085,"16.4":0.00695,"16.5":0.08341,"16.6":0.20853,"17.1":0.33365,"17.2":0.17378,"17.3":0.02085,"17.4":0.03476,"17.5":0.05561,"17.6":0.36145,"18.0":0.0139,"18.1":0.00695,"18.2":0.00695,"18.3":0.0139,"18.4":0.0139,"18.5-18.7":0.31975,"26.0":0.0278,"26.1":0.07646,"26.2":0.47962,"26.3":4.03158,"26.4":0.20158},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00174,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00348,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.0087,"11.0-11.2":0.21932,"11.3-11.4":0.00522,"12.0-12.1":0,"12.2-12.5":0.06789,"13.0-13.1":0,"13.2":0.02611,"13.3":0.00348,"13.4-13.7":0.0087,"14.0-14.4":0.01567,"14.5-14.8":0.01567,"15.0-15.1":0.02263,"15.2-15.3":0.01393,"15.4":0.01741,"15.5":0.01915,"15.6-15.8":0.3081,"16.0":0.03133,"16.1":0.06092,"16.2":0.03481,"16.3":0.06266,"16.4":0.01393,"16.5":0.02611,"16.6-16.7":0.42821,"17.0":0.01915,"17.1":0.03133,"17.2":0.02785,"17.3":0.03829,"17.4":0.06266,"17.5":0.11837,"17.6-17.7":0.30462,"18.0":0.06615,"18.1":0.13577,"18.2":0.07137,"18.3":0.22803,"18.4":0.10966,"18.5-18.7":3.48831,"26.0":0.21758,"26.1":0.33073,"26.2":1.94607,"26.3":8.45445,"26.4":0.3168,"26.5":0},P:{"24":0.22094,"26":0.02104,"27":0.01052,"29":0.69437,_:"4 20 21 22 23 25 28 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 18.0 19.0","17.0":0.01052},I:{"0":0.02742,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.02439,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.18599},Q:{_:"14.9"},O:{_:"0"},H:{all:0},L:{"0":11.77391}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/MD.js b/server/api/node_modules/caniuse-lite/data/regions/MD.js new file mode 100644 index 0000000..7e91714 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/MD.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.01075,"52":0.14513,"60":0.00538,"72":0.00538,"78":0.00538,"101":0.00538,"115":0.20963,"123":0.00538,"128":0.00538,"136":0.00538,"140":0.17738,"141":0.00538,"142":0.00538,"143":0.00538,"144":0.00538,"146":0.06988,"147":0.05375,"148":2.32738,"149":0.344,"151":0.00538,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 124 125 126 127 129 130 131 132 133 134 135 137 138 139 145 150 152 3.5 3.6"},D:{"49":0.00538,"53":0.00538,"58":0.00538,"68":0.00538,"69":0.00538,"70":0.00538,"75":0.00538,"79":0.00538,"80":0.00538,"83":0.00538,"84":0.00538,"85":0.00538,"86":0.01075,"87":0.00538,"88":0.00538,"90":0.00538,"91":0.00538,"92":0.00538,"95":0.00538,"96":0.00538,"97":0.0215,"98":0.00538,"100":0.00538,"101":0.00538,"102":0.02688,"103":0.1935,"104":0.16125,"105":0.17738,"106":0.17738,"107":0.16663,"108":0.16663,"109":2.6015,"110":0.16663,"111":0.16125,"112":0.40313,"113":0.00538,"114":0.0215,"116":0.44613,"117":0.1935,"118":0.00538,"119":0.06988,"120":0.20963,"121":0.01613,"122":0.02688,"123":0.00538,"124":0.18275,"125":0.02688,"126":0.0215,"127":0.01075,"128":0.01613,"129":0.07525,"130":0.0215,"131":0.45688,"132":0.02688,"133":0.34938,"134":0.04838,"135":0.01613,"136":0.02688,"137":0.06988,"138":0.76863,"139":0.17738,"140":0.0645,"141":0.07525,"142":0.129,"143":0.46225,"144":0.89225,"145":12.80863,"146":8.97088,"147":0.02688,"148":0.01075,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 54 55 56 57 59 60 61 62 63 64 65 66 67 71 72 73 74 76 77 78 81 89 93 94 99 115 149 150"},F:{"79":0.13975,"82":0.01075,"85":0.03763,"86":0.00538,"90":0.00538,"91":0.00538,"95":0.18813,"96":0.05913,"114":0.00538,"125":0.00538,"126":0.03225,"127":1.0535,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 83 84 87 88 89 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 120 121 122 123 124 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00538,"92":0.00538,"102":0.00538,"109":0.00538,"118":0.01075,"124":0.01075,"131":0.00538,"133":0.00538,"134":0.01075,"135":0.00538,"137":0.00538,"138":0.01075,"140":0.00538,"141":0.00538,"142":0.01613,"143":0.03763,"144":0.07525,"145":1.31688,"146":1.32225,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 103 104 105 106 107 108 110 111 112 113 114 115 116 117 119 120 121 122 123 125 126 127 128 129 130 132 136 139"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 10.1 11.1 12.1 15.1 15.5 16.0 16.1 16.2 16.4 16.5 17.0 26.5 TP","9.1":0.01075,"13.1":0.00538,"14.1":0.01075,"15.2-15.3":0.01075,"15.4":0.00538,"15.6":0.02688,"16.3":0.01075,"16.6":0.043,"17.1":0.0215,"17.2":0.00538,"17.3":0.01075,"17.4":0.00538,"17.5":0.0215,"17.6":0.03763,"18.0":0.01075,"18.1":0.0215,"18.2":0.0215,"18.3":0.01075,"18.4":0.01075,"18.5-18.7":0.02688,"26.0":0.04838,"26.1":0.03225,"26.2":0.1505,"26.3":0.9675,"26.4":0.0215},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00122,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00244,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00609,"11.0-11.2":0.15344,"11.3-11.4":0.00365,"12.0-12.1":0,"12.2-12.5":0.04749,"13.0-13.1":0,"13.2":0.01827,"13.3":0.00244,"13.4-13.7":0.00609,"14.0-14.4":0.01096,"14.5-14.8":0.01096,"15.0-15.1":0.01583,"15.2-15.3":0.00974,"15.4":0.01218,"15.5":0.0134,"15.6-15.8":0.21554,"16.0":0.02192,"16.1":0.04262,"16.2":0.02436,"16.3":0.04384,"16.4":0.00974,"16.5":0.01827,"16.6-16.7":0.29957,"17.0":0.0134,"17.1":0.02192,"17.2":0.01948,"17.3":0.02679,"17.4":0.04384,"17.5":0.08281,"17.6-17.7":0.21311,"18.0":0.04627,"18.1":0.09499,"18.2":0.04993,"18.3":0.15953,"18.4":0.07672,"18.5-18.7":2.4404,"26.0":0.15222,"26.1":0.23137,"26.2":1.36146,"26.3":5.91467,"26.4":0.22163,"26.5":0},P:{"4":0.01031,"20":0.01031,"21":0.01031,"22":0.01031,"23":0.01031,"25":0.03093,"26":0.02062,"27":0.02062,"28":0.14434,"29":1.71144,_:"24 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.00924,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0.74463,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.13438,_:"6 7 8 9 10 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.296},Q:{"14.9":0.04163},O:{"0":0.222},H:{all:0},L:{"0":34.55738}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/ME.js b/server/api/node_modules/caniuse-lite/data/regions/ME.js new file mode 100644 index 0000000..29c1854 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/ME.js @@ -0,0 +1 @@ +module.exports={C:{"52":0.00405,"78":0.01622,"94":0.00405,"115":0.18243,"132":0.00405,"133":0.00811,"140":0.01216,"141":0.00405,"142":0.00405,"143":0.00405,"146":0.00811,"147":0.08919,"148":1.00134,"149":0.16216,"150":0.00405,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 134 135 136 137 138 139 144 145 151 152 3.5 3.6"},D:{"49":0.01622,"53":0.01216,"69":0.00811,"78":0.01216,"79":0.01216,"83":0.01622,"84":0.00405,"86":0.01216,"87":0.02027,"89":0.00811,"93":0.00811,"97":0.02838,"98":0.00405,"101":0.00811,"102":0.00811,"103":0.02027,"105":0.01216,"106":0.01622,"107":0.00405,"108":0.00811,"109":0.87161,"110":0.00811,"114":0.00405,"115":0.02432,"116":0.04459,"119":0.01216,"120":0.00405,"121":0.00811,"122":0.10946,"123":0.00811,"124":0.03243,"125":0.01216,"126":0.08108,"127":0.01216,"128":0.02027,"130":0.00811,"131":0.08919,"132":0.04459,"133":0.01216,"134":0.02027,"135":0.02432,"136":0.01622,"137":0.02027,"138":0.10946,"139":0.34054,"140":0.00811,"141":0.03649,"142":0.09324,"143":0.23919,"144":0.60405,"145":11.15661,"146":9.69311,"147":0.01216,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 80 81 85 88 90 91 92 94 95 96 99 100 104 111 112 113 117 118 129 148 149 150"},F:{"28":0.00405,"40":0.00405,"46":0.23919,"85":0.00811,"95":0.02027,"96":0.02838,"125":0.00405,"126":0.00405,"127":0.31216,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00405,"92":0.01216,"114":0.00405,"115":0.00405,"125":0.03243,"129":0.00405,"131":0.00405,"132":0.00811,"135":0.00405,"140":0.00405,"141":0.00405,"142":0.00405,"143":0.04054,"144":0.04865,"145":1.04999,"146":1.12701,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 116 117 118 119 120 121 122 123 124 126 127 128 130 133 134 136 137 138 139"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 16.0 16.1 16.3 18.0 26.5 TP","13.1":0.00405,"14.1":0.02027,"15.4":0.00811,"15.5":0.01216,"15.6":0.01622,"16.2":0.00405,"16.4":0.00811,"16.5":0.00405,"16.6":0.08513,"17.0":0.00405,"17.1":0.05676,"17.2":0.00405,"17.3":0.06892,"17.4":0.01622,"17.5":0.08108,"17.6":0.06486,"18.1":0.00405,"18.2":0.00405,"18.3":0.01216,"18.4":0.01622,"18.5-18.7":0.0527,"26.0":0.04459,"26.1":0.02838,"26.2":0.08513,"26.3":0.68107,"26.4":0.06081},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00163,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00326,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00816,"11.0-11.2":0.20569,"11.3-11.4":0.0049,"12.0-12.1":0,"12.2-12.5":0.06367,"13.0-13.1":0,"13.2":0.02449,"13.3":0.00326,"13.4-13.7":0.00816,"14.0-14.4":0.01469,"14.5-14.8":0.01469,"15.0-15.1":0.02122,"15.2-15.3":0.01306,"15.4":0.01632,"15.5":0.01796,"15.6-15.8":0.28894,"16.0":0.02938,"16.1":0.05714,"16.2":0.03265,"16.3":0.05877,"16.4":0.01306,"16.5":0.02449,"16.6-16.7":0.40158,"17.0":0.01796,"17.1":0.02938,"17.2":0.02612,"17.3":0.03591,"17.4":0.05877,"17.5":0.11101,"17.6-17.7":0.28568,"18.0":0.06203,"18.1":0.12733,"18.2":0.06693,"18.3":0.21385,"18.4":0.10284,"18.5-18.7":3.27143,"26.0":0.20406,"26.1":0.31017,"26.2":1.82508,"26.3":7.92882,"26.4":0.29711,"26.5":0},P:{"4":0.10379,"21":0.08303,"22":0.01038,"23":0.04152,"24":0.01038,"25":0.12455,"26":0.11417,"27":0.08303,"28":0.15569,"29":4.08945,_:"20 5.0-5.4 6.2-6.4 9.2 10.1 11.1-11.2 12.0 13.0 15.0 16.0 17.0","7.2-7.4":0.04152,"8.2":0.02076,"14.0":0.01038,"18.0":0.0519,"19.0":0.03114},I:{"0":0.02377,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.3033,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.33303},Q:{_:"14.9"},O:{"0":0.01784},H:{all:0},L:{"0":46.55269}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/MG.js b/server/api/node_modules/caniuse-lite/data/regions/MG.js new file mode 100644 index 0000000..9078d15 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/MG.js @@ -0,0 +1 @@ +module.exports={C:{"52":0.00798,"56":0.00399,"67":0.00399,"72":0.00399,"78":0.01197,"102":0.00399,"113":0.00399,"115":0.42693,"116":0.00399,"121":0.00399,"123":0.00399,"127":0.01995,"128":0.00798,"130":0.00399,"131":0.00399,"132":0.00399,"134":0.01197,"135":0.00798,"136":0.03192,"138":0.00399,"139":0.00798,"140":0.14364,"141":0.01596,"142":0.00399,"143":0.02394,"144":0.02793,"145":0.01197,"146":0.01596,"147":0.13566,"148":2.04687,"149":0.36708,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 57 58 59 60 61 62 63 64 65 66 68 69 70 71 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 103 104 105 106 107 108 109 110 111 112 114 117 118 119 120 122 124 125 126 129 133 137 150 151 152 3.5 3.6"},D:{"49":0.00399,"50":0.00399,"54":0.00399,"56":0.00399,"58":0.00798,"59":0.00399,"60":0.00798,"61":0.00399,"63":0.01596,"64":0.00399,"66":0.00399,"68":0.00399,"69":0.00798,"70":0.00399,"71":0.00399,"73":0.03192,"74":0.00399,"75":0.06384,"76":0.00798,"78":0.00798,"79":0.00798,"80":0.00798,"81":0.02394,"83":0.01197,"85":0.00399,"86":0.0399,"87":0.01197,"88":0.00399,"89":0.00399,"90":0.00399,"91":0.00399,"92":0.00399,"94":0.00798,"95":0.01995,"96":0.00399,"97":0.00399,"99":0.00399,"100":0.00798,"101":0.01197,"102":0.00798,"103":0.01596,"104":0.00399,"105":0.00399,"106":0.03192,"107":0.01197,"108":0.01197,"109":1.14912,"110":0.00399,"111":0.00798,"113":0.00399,"114":0.00399,"115":0.00798,"116":0.09975,"117":0.00798,"118":0.00399,"119":0.02793,"120":0.03192,"121":0.00798,"122":0.04389,"123":0.02394,"124":0.01197,"125":0.00798,"126":0.01596,"127":0.02793,"128":0.03591,"129":0.04788,"130":0.03591,"131":0.04788,"132":0.01197,"133":0.0399,"134":0.01995,"135":0.24738,"136":0.02394,"137":0.05586,"138":0.20349,"139":0.18753,"140":0.04389,"141":0.05985,"142":0.17157,"143":0.20748,"144":0.49476,"145":9.67575,"146":7.96005,"147":0.01995,"148":0.00798,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 51 52 53 55 57 62 65 67 72 77 84 93 98 112 149 150"},F:{"36":0.00399,"46":0.00399,"79":0.00798,"90":0.00399,"94":0.00798,"95":0.07182,"96":0.01995,"113":0.00399,"122":0.00399,"124":0.00399,"125":0.00399,"126":0.03192,"127":0.5187,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 85 86 87 88 89 91 92 93 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 114 115 116 117 118 119 120 121 123 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.00399,"15":0.00399,"16":0.00399,"17":0.00798,"18":0.0399,"84":0.00399,"85":0.00399,"89":0.01197,"90":0.00798,"92":0.13167,"100":0.01197,"109":0.01197,"114":0.00399,"122":0.01995,"126":0.00399,"130":0.00399,"133":0.00399,"135":0.00399,"136":0.00399,"138":0.00798,"139":0.00798,"140":0.02394,"141":0.01995,"142":0.02793,"143":0.05187,"144":0.13965,"145":1.61595,"146":1.24089,_:"12 13 79 80 81 83 86 87 88 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 123 124 125 127 128 129 131 132 134 137"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 12.1 13.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.3 16.4 16.5 17.0 17.2 17.3 18.0 18.1 18.2 18.4 26.5 TP","11.1":0.00798,"14.1":0.00399,"15.1":0.01596,"15.6":0.01197,"16.6":0.04788,"17.1":0.00399,"17.4":0.00399,"17.5":0.00399,"17.6":0.02394,"18.3":0.00399,"18.5-18.7":0.03192,"26.0":0.00798,"26.1":0.00399,"26.2":0.05985,"26.3":0.15162,"26.4":0.00399},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00029,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00059,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00147,"11.0-11.2":0.03703,"11.3-11.4":0.00088,"12.0-12.1":0,"12.2-12.5":0.01146,"13.0-13.1":0,"13.2":0.00441,"13.3":0.00059,"13.4-13.7":0.00147,"14.0-14.4":0.00265,"14.5-14.8":0.00265,"15.0-15.1":0.00382,"15.2-15.3":0.00235,"15.4":0.00294,"15.5":0.00323,"15.6-15.8":0.05202,"16.0":0.00529,"16.1":0.01029,"16.2":0.00588,"16.3":0.01058,"16.4":0.00235,"16.5":0.00441,"16.6-16.7":0.0723,"17.0":0.00323,"17.1":0.00529,"17.2":0.0047,"17.3":0.00647,"17.4":0.01058,"17.5":0.01998,"17.6-17.7":0.05143,"18.0":0.01117,"18.1":0.02292,"18.2":0.01205,"18.3":0.0385,"18.4":0.01852,"18.5-18.7":0.58895,"26.0":0.03674,"26.1":0.05584,"26.2":0.32857,"26.3":1.42742,"26.4":0.05349,"26.5":0},P:{"22":0.01024,"25":0.01024,"26":0.01024,"27":0.04098,"28":0.04098,"29":0.30733,_:"4 20 21 23 24 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 16.0 17.0 18.0 19.0","7.2-7.4":0.01024,"15.0":0.02049},I:{"0":0.17413,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00009},K:{"0":1.43841,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{"2.5":0.05409,_:"3.0-3.1"},R:{_:"0"},M:{"0":0.22838},Q:{"14.9":0.00601},O:{"0":0.74524},H:{all:0.01},L:{"0":62.73498}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/MH.js b/server/api/node_modules/caniuse-lite/data/regions/MH.js new file mode 100644 index 0000000..a70e918 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/MH.js @@ -0,0 +1 @@ +module.exports={C:{"115":0.00752,"146":0.01504,"147":0.21053,"148":0.28572,"149":0.03008,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 150 151 152 3.5 3.6"},D:{"70":0.0376,"75":0.0376,"93":0.04511,"103":0.06015,"104":0.04511,"107":0.01504,"109":0.06767,"110":0.00752,"112":0.01504,"116":0.11279,"119":0.04511,"120":0.04511,"121":0.00752,"123":0.00752,"124":0.00752,"125":0.01504,"127":0.00752,"130":0.06767,"131":0.06015,"133":0.00752,"136":0.08271,"137":0.03008,"138":0.01504,"139":0.11279,"140":0.18046,"142":0.11279,"143":0.51129,"144":0.65415,"145":50.8134,"146":9.73711,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 71 72 73 74 76 77 78 79 80 81 83 84 85 86 87 88 89 90 91 92 94 95 96 97 98 99 100 101 102 105 106 108 111 113 114 115 117 118 122 126 128 129 132 134 135 141 147 148 149 150"},F:{"126":0.00752,"127":0.01504,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"109":0.00752,"114":0.06767,"121":0.00752,"131":0.00752,"137":0.01504,"141":0.01504,"143":0.09023,"144":0.25565,"145":1.48124,"146":0.78198,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 122 123 124 125 126 127 128 129 130 132 133 134 135 136 138 139 140 142"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 15.2-15.3 15.4 15.5 15.6 16.0 16.1 16.2 16.3 16.4 16.5 17.0 17.1 17.2 17.4 18.0 18.1 18.2 18.3 26.0 26.5 TP","16.6":0.06767,"17.3":0.06015,"17.5":3.6392,"17.6":0.0376,"18.4":0.06015,"18.5-18.7":0.01504,"26.1":0.06767,"26.2":0.30828,"26.3":0.45114,"26.4":0.00752},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00051,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00102,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00256,"11.0-11.2":0.06455,"11.3-11.4":0.00154,"12.0-12.1":0,"12.2-12.5":0.01998,"13.0-13.1":0,"13.2":0.00768,"13.3":0.00102,"13.4-13.7":0.00256,"14.0-14.4":0.00461,"14.5-14.8":0.00461,"15.0-15.1":0.00666,"15.2-15.3":0.0041,"15.4":0.00512,"15.5":0.00564,"15.6-15.8":0.09068,"16.0":0.00922,"16.1":0.01793,"16.2":0.01025,"16.3":0.01844,"16.4":0.0041,"16.5":0.00768,"16.6-16.7":0.12603,"17.0":0.00564,"17.1":0.00922,"17.2":0.0082,"17.3":0.01127,"17.4":0.01844,"17.5":0.03484,"17.6-17.7":0.08966,"18.0":0.01947,"18.1":0.03996,"18.2":0.02101,"18.3":0.06711,"18.4":0.03228,"18.5-18.7":1.0267,"26.0":0.06404,"26.1":0.09734,"26.2":0.57278,"26.3":2.48837,"26.4":0.09324,"26.5":0},P:{"29":0.26795,_:"4 20 21 22 23 24 25 26 27 28 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.00992,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.01737},Q:{_:"14.9"},O:{_:"0"},H:{all:0},L:{"0":22.87682}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/MK.js b/server/api/node_modules/caniuse-lite/data/regions/MK.js new file mode 100644 index 0000000..ba0f897 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/MK.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.00374,"48":0.00374,"51":0.00374,"52":0.02988,"68":0.00374,"85":0.00374,"111":0.00374,"115":0.20543,"121":0.00374,"125":0.00747,"132":0.03362,"133":0.00747,"134":0.00374,"135":0.00747,"136":0.00374,"138":0.00374,"140":0.01868,"143":0.00374,"144":0.00374,"145":0.00747,"146":0.01121,"147":0.03362,"148":1.47533,"149":0.27266,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 112 113 114 116 117 118 119 120 122 123 124 126 127 128 129 130 131 137 139 141 142 150 151 152 3.5 3.6"},D:{"49":0.00747,"53":0.00374,"56":0.01121,"66":0.00374,"69":0.00747,"70":0.01494,"73":0.00374,"79":0.00374,"83":0.00747,"84":0.00747,"87":0.01494,"91":0.00747,"93":0.01121,"95":0.01121,"96":0.00374,"98":0.00374,"100":0.00374,"101":0.00374,"102":0.01121,"103":0.07097,"104":0.0747,"105":0.05976,"106":0.05976,"107":0.05603,"108":0.05603,"109":1.83389,"110":0.0635,"111":0.05976,"112":0.17928,"113":0.00374,"114":0.00747,"116":0.12699,"117":0.0635,"118":0.00374,"119":0.01868,"120":0.10832,"121":0.02615,"122":0.02615,"123":0.00747,"124":0.07097,"125":0.00374,"126":0.01494,"127":0.00374,"128":0.04109,"129":0.00747,"130":0.00747,"131":0.16808,"132":0.02988,"133":0.1494,"134":0.00747,"135":0.04482,"136":0.01494,"137":0.01494,"138":0.0747,"139":0.32495,"140":0.02615,"141":0.07097,"142":0.04109,"143":0.13073,"144":0.37724,"145":10.85018,"146":9.42714,"147":0.02241,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 54 55 57 58 59 60 61 62 63 64 65 67 68 71 72 74 75 76 77 78 80 81 85 86 88 89 90 92 94 97 99 115 148 149 150"},F:{"36":0.00374,"40":0.00374,"46":0.01868,"95":0.05229,"96":0.03362,"119":0.00374,"126":0.00747,"127":0.47435,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 120 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00374,"92":0.00374,"109":0.00747,"119":0.00374,"127":0.00374,"131":0.02615,"132":0.00374,"133":0.00374,"134":0.01494,"135":0.00374,"136":0.00747,"137":0.00747,"138":0.00747,"140":0.01494,"141":0.00374,"142":0.01121,"143":0.01121,"144":0.04482,"145":1.1205,"146":1.07568,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 120 121 122 123 124 125 126 128 129 130 139"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 12.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 17.0 17.2 17.3 18.0 18.2 26.5 TP","11.1":0.00747,"13.1":0.01494,"14.1":0.00747,"15.6":0.00747,"16.3":0.00374,"16.4":0.00374,"16.5":0.01121,"16.6":0.01868,"17.1":0.02241,"17.4":0.00747,"17.5":0.00374,"17.6":0.01868,"18.1":0.00747,"18.3":0.03735,"18.4":0.00374,"18.5-18.7":0.00747,"26.0":0.01121,"26.1":0.02615,"26.2":0.09338,"26.3":0.26892,"26.4":0.01121},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00171,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00342,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00855,"11.0-11.2":0.21558,"11.3-11.4":0.00513,"12.0-12.1":0,"12.2-12.5":0.06673,"13.0-13.1":0,"13.2":0.02566,"13.3":0.00342,"13.4-13.7":0.00855,"14.0-14.4":0.0154,"14.5-14.8":0.0154,"15.0-15.1":0.02224,"15.2-15.3":0.01369,"15.4":0.01711,"15.5":0.01882,"15.6-15.8":0.30284,"16.0":0.0308,"16.1":0.05988,"16.2":0.03422,"16.3":0.06159,"16.4":0.01369,"16.5":0.02566,"16.6-16.7":0.4209,"17.0":0.01882,"17.1":0.0308,"17.2":0.02738,"17.3":0.03764,"17.4":0.06159,"17.5":0.11635,"17.6-17.7":0.29942,"18.0":0.06502,"18.1":0.13346,"18.2":0.07015,"18.3":0.22414,"18.4":0.10779,"18.5-18.7":3.42879,"26.0":0.21387,"26.1":0.32508,"26.2":1.91287,"26.3":8.31019,"26.4":0.3114,"26.5":0},P:{"4":0.09157,"21":0.01017,"22":0.02035,"23":0.01017,"24":0.01017,"25":0.03052,"26":0.02035,"27":0.03052,"28":0.09157,"29":2.18749,_:"20 5.0-5.4 6.2-6.4 9.2 10.1 11.1-11.2 13.0 14.0 15.0 17.0 18.0 19.0","7.2-7.4":0.01017,"8.2":0.01017,"12.0":0.01017,"16.0":0.01017},I:{"0":0.13145,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00007},K:{"0":0.19422,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.0056,"11":0.0056,_:"6 7 9 10 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.16916},Q:{_:"14.9"},O:{"0":0.02506},H:{all:0},L:{"0":47.38342}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/ML.js b/server/api/node_modules/caniuse-lite/data/regions/ML.js new file mode 100644 index 0000000..16928e1 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/ML.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.01305,"66":0.00261,"76":0.00261,"78":0.00261,"110":0.00261,"112":0.00522,"113":0.00261,"115":0.03392,"123":0.00261,"127":0.00522,"133":0.00261,"139":0.00261,"140":0.00783,"142":0.00522,"144":0.00261,"145":0.00261,"146":0.01565,"147":0.07044,"148":0.70704,"149":0.10436,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 67 68 69 70 71 72 73 74 75 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 111 114 116 117 118 119 120 121 122 124 125 126 128 129 130 131 132 134 135 136 137 138 141 143 150 151 152 3.5 3.6"},D:{"27":0.00261,"32":0.00261,"49":0.00261,"56":0.00261,"58":0.00261,"62":0.00261,"68":0.00261,"69":0.00522,"71":0.00522,"72":0.00261,"73":0.00522,"75":0.00783,"77":0.00261,"79":0.00783,"81":0.00783,"83":0.01305,"86":0.00783,"88":0.00522,"89":0.00522,"90":0.00261,"93":0.00261,"98":0.01826,"99":0.00261,"101":0.00261,"103":0.14089,"104":0.1435,"105":0.16698,"106":0.15915,"107":0.15393,"108":0.1435,"109":0.24003,"110":0.16176,"111":0.15915,"112":0.30004,"113":0.00261,"114":0.02348,"116":0.3183,"117":0.16437,"118":0.00261,"119":0.02609,"120":0.16698,"121":0.00261,"122":0.08871,"124":0.16176,"125":0.00261,"126":0.00261,"127":0.00261,"128":0.03392,"129":0.00783,"130":0.00522,"131":0.35743,"132":0.00522,"133":0.29743,"134":0.00783,"135":0.01826,"136":0.00783,"137":0.01305,"138":0.20872,"139":0.09392,"140":0.01044,"141":0.00522,"142":0.02087,"143":0.06523,"144":0.16959,"145":2.3768,"146":1.77412,"147":0.00261,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 28 29 30 31 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 57 59 60 61 63 64 65 66 67 70 74 76 78 80 84 85 87 91 92 94 95 96 97 100 102 115 123 148 149 150"},F:{"40":0.00261,"67":0.00261,"86":0.00261,"90":0.00522,"94":0.00261,"95":0.01826,"96":0.01565,"122":0.00261,"126":0.01305,"127":0.13045,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 87 88 89 91 92 93 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.00261,"15":0.00261,"17":0.00261,"18":0.01565,"84":0.00261,"86":0.00261,"89":0.00261,"90":0.01305,"92":0.01565,"100":0.01305,"113":0.00261,"114":0.00261,"122":0.00261,"124":0.00261,"129":0.00261,"133":0.00261,"136":0.03392,"138":0.00261,"139":0.00522,"140":0.02609,"141":0.00522,"142":0.00522,"143":0.02609,"144":0.19307,"145":0.81401,"146":0.51136,_:"12 13 16 79 80 81 83 85 87 88 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 109 110 111 112 115 116 117 118 119 120 121 123 125 126 127 128 130 131 132 134 135 137"},E:{"11":0.00261,"15":0.00261,_:"4 5 6 7 8 9 10 12 13 14 3.1 3.2 5.1 6.1 7.1 9.1 10.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.3 16.4 16.5 17.0 17.1 17.2 17.3 18.0 18.1 18.2 18.4 26.5 TP","11.1":0.00522,"12.1":0.01826,"13.1":0.00522,"14.1":0.00522,"15.6":0.01044,"16.6":0.03392,"17.4":0.00261,"17.5":0.00783,"17.6":0.05218,"18.3":0.00522,"18.5-18.7":0.03392,"26.0":0.01305,"26.1":0.00783,"26.2":0.04696,"26.3":0.13567,"26.4":0.01565},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00041,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00082,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00206,"11.0-11.2":0.05196,"11.3-11.4":0.00124,"12.0-12.1":0,"12.2-12.5":0.01608,"13.0-13.1":0,"13.2":0.00619,"13.3":0.00082,"13.4-13.7":0.00206,"14.0-14.4":0.00371,"14.5-14.8":0.00371,"15.0-15.1":0.00536,"15.2-15.3":0.0033,"15.4":0.00412,"15.5":0.00454,"15.6-15.8":0.073,"16.0":0.00742,"16.1":0.01443,"16.2":0.00825,"16.3":0.01485,"16.4":0.0033,"16.5":0.00619,"16.6-16.7":0.10145,"17.0":0.00454,"17.1":0.00742,"17.2":0.0066,"17.3":0.00907,"17.4":0.01485,"17.5":0.02804,"17.6-17.7":0.07217,"18.0":0.01567,"18.1":0.03217,"18.2":0.01691,"18.3":0.05403,"18.4":0.02598,"18.5-18.7":0.82649,"26.0":0.05155,"26.1":0.07836,"26.2":0.46108,"26.3":2.00311,"26.4":0.07506,"26.5":0},P:{"4":0.01019,"23":0.09167,"24":0.02037,"25":0.03056,"26":0.04074,"27":0.13241,"28":0.39722,"29":0.84537,_:"20 21 22 8.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","5.0-5.4":0.01019,"6.2-6.4":0.01019,"7.2-7.4":0.0713,"9.2":0.01019},I:{"0":0.05907,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00003},K:{"0":0.56172,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.16999},Q:{"14.9":0.01478},O:{"0":0.28086},H:{all:0},L:{"0":80.03798}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/MM.js b/server/api/node_modules/caniuse-lite/data/regions/MM.js new file mode 100644 index 0000000..0e18d14 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/MM.js @@ -0,0 +1 @@ +module.exports={C:{"72":0.00339,"108":0.00339,"115":0.06437,"127":0.01355,"133":0.00339,"134":0.00678,"138":0.00339,"140":0.02033,"141":0.00339,"142":0.00339,"143":0.02033,"144":0.00678,"145":0.00339,"146":0.02372,"147":0.07115,"148":0.69793,"149":0.1423,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 128 129 130 131 132 135 136 137 139 150 151 152 3.5 3.6"},D:{"49":0.00339,"56":0.00678,"61":0.00339,"62":0.00339,"65":0.00339,"67":0.00339,"68":0.00339,"70":0.00339,"71":0.00678,"74":0.00339,"79":0.00339,"80":0.00339,"81":0.01016,"83":0.00339,"86":0.00339,"87":0.00339,"88":0.00339,"89":0.00339,"91":0.00339,"92":0.00339,"95":0.00678,"97":0.00339,"102":0.00339,"103":0.0576,"104":0.06098,"105":0.0576,"106":0.06437,"107":0.0576,"108":0.0576,"109":0.29137,"110":0.0576,"111":0.0576,"112":0.0576,"113":0.00339,"114":0.05421,"115":0.01694,"116":0.11858,"117":0.05421,"119":0.01694,"120":0.06776,"121":0.00678,"122":0.03727,"123":0.00678,"124":0.07115,"125":0.00678,"126":0.02372,"127":0.02372,"128":0.01694,"129":0.01355,"130":0.01694,"131":0.16601,"132":0.01016,"133":0.12536,"134":0.02033,"135":0.04404,"136":0.01694,"137":0.01694,"138":0.10842,"139":0.0271,"140":0.0271,"141":0.01694,"142":0.03727,"143":0.13213,"144":0.21683,"145":6.45075,"146":5.46823,"147":0.01355,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 57 58 59 60 63 64 66 69 72 73 75 76 77 78 84 85 90 93 94 96 98 99 100 101 118 148 149 150"},F:{"79":0.00678,"95":0.01016,"96":0.01355,"119":0.00339,"120":0.00339,"122":0.01016,"123":0.00339,"124":0.00678,"125":0.01016,"126":0.01355,"127":0.0847,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 121 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.00339,"18":0.01016,"92":0.01355,"100":0.00339,"109":0.00339,"114":0.00678,"122":0.00339,"136":0.00339,"138":0.00339,"139":0.00339,"140":0.00678,"141":0.00678,"142":0.00678,"143":0.00678,"144":0.03727,"145":0.8741,"146":0.76908,_:"12 13 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 123 124 125 126 127 128 129 130 131 132 133 134 135 137"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 12.1 15.1 15.2-15.3 15.4 15.5 16.2 16.4 17.0 17.3 26.5 TP","11.1":0.00339,"13.1":0.00339,"14.1":0.01016,"15.6":0.02033,"16.0":0.00339,"16.1":0.01355,"16.3":0.00678,"16.5":0.01355,"16.6":0.04743,"17.1":0.01016,"17.2":0.00339,"17.4":0.00339,"17.5":0.00678,"17.6":0.03388,"18.0":0.00339,"18.1":0.00339,"18.2":0.00339,"18.3":0.01355,"18.4":0.00339,"18.5-18.7":0.03727,"26.0":0.04404,"26.1":0.01694,"26.2":0.08809,"26.3":0.42689,"26.4":0.02033},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00064,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00127,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00318,"11.0-11.2":0.08023,"11.3-11.4":0.00191,"12.0-12.1":0,"12.2-12.5":0.02483,"13.0-13.1":0,"13.2":0.00955,"13.3":0.00127,"13.4-13.7":0.00318,"14.0-14.4":0.00573,"14.5-14.8":0.00573,"15.0-15.1":0.00828,"15.2-15.3":0.00509,"15.4":0.00637,"15.5":0.007,"15.6-15.8":0.1127,"16.0":0.01146,"16.1":0.02229,"16.2":0.01273,"16.3":0.02292,"16.4":0.00509,"16.5":0.00955,"16.6-16.7":0.15664,"17.0":0.007,"17.1":0.01146,"17.2":0.01019,"17.3":0.01401,"17.4":0.02292,"17.5":0.0433,"17.6-17.7":0.11143,"18.0":0.0242,"18.1":0.04967,"18.2":0.02611,"18.3":0.08341,"18.4":0.04011,"18.5-18.7":1.27602,"26.0":0.07959,"26.1":0.12098,"26.2":0.71187,"26.3":3.09262,"26.4":0.11589,"26.5":0},P:{"21":0.01081,"25":0.02162,"26":0.01081,"27":0.01081,"28":0.05405,"29":0.42159,_:"4 20 22 23 24 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 14.0 15.0 16.0 17.0 18.0 19.0","13.0":0.15134},I:{"0":0.1123,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00006},K:{"0":0.25787,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.23803},Q:{"14.9":0.1124},O:{"0":0.87278},H:{all:0},L:{"0":72.40362}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/MN.js b/server/api/node_modules/caniuse-lite/data/regions/MN.js new file mode 100644 index 0000000..a420ffa --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/MN.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.02938,"47":0.00588,"49":0.00588,"50":0.00588,"69":0.00588,"112":0.00588,"115":0.06463,"125":0.00588,"140":0.02938,"141":0.00588,"143":0.00588,"146":0.01763,"147":0.05288,"148":0.90475,"149":0.22913,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 113 114 116 117 118 119 120 121 122 123 124 126 127 128 129 130 131 132 133 134 135 136 137 138 139 142 144 145 150 151 152 3.5 3.6"},D:{"49":0.00588,"58":0.00588,"59":0.00588,"66":0.00588,"68":0.00588,"69":0.00588,"70":0.00588,"74":0.00588,"79":0.00588,"80":0.00588,"81":0.00588,"86":0.00588,"87":0.00588,"91":0.01175,"102":0.00588,"103":0.3525,"104":0.34075,"105":0.3525,"106":0.34663,"107":0.34075,"108":0.329,"109":1.40413,"110":0.34663,"111":0.34075,"112":1.0575,"114":0.01175,"116":0.71675,"117":0.33488,"118":0.00588,"119":0.01175,"120":0.34075,"121":0.01175,"122":0.05288,"123":0.01175,"124":0.38188,"125":0.0235,"126":0.05288,"127":0.00588,"128":0.05288,"129":0.01175,"130":0.047,"131":0.8695,"132":0.02938,"133":0.7285,"134":0.36425,"135":0.05875,"136":0.04113,"137":0.02938,"138":0.2115,"139":0.34075,"140":0.0705,"141":0.06463,"142":0.17625,"143":0.27613,"144":1.13975,"145":14.1,"146":10.85113,"147":0.02938,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 60 61 62 63 64 65 67 71 72 73 75 76 77 78 83 84 85 88 89 90 92 93 94 95 96 97 98 99 100 101 113 115 148 149 150"},F:{"56":0.00588,"63":0.00588,"67":0.00588,"95":0.02938,"96":0.00588,"109":0.00588,"125":0.00588,"126":0.04113,"127":1.32775,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 57 58 60 62 64 65 66 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.00588,"15":0.00588,"16":0.00588,"17":0.00588,"18":0.05875,"92":0.04113,"100":0.01175,"108":0.01175,"109":0.17625,"113":0.00588,"114":0.01175,"122":0.0235,"123":0.01175,"124":0.00588,"127":0.01763,"128":0.00588,"129":0.01175,"130":0.00588,"131":0.01175,"132":0.00588,"133":0.02938,"134":0.01175,"135":0.01763,"136":0.01763,"137":0.00588,"138":0.05875,"139":0.01175,"140":0.0235,"141":0.02938,"142":0.05875,"143":0.094,"144":0.1645,"145":4.15363,"146":4.03025,_:"12 13 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 110 111 112 115 116 117 118 119 120 121 125 126"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 15.4 15.5 16.0 17.0 17.2 26.5 TP","11.1":0.00588,"12.1":0.00588,"13.1":0.00588,"14.1":0.04113,"15.1":0.00588,"15.2-15.3":0.00588,"15.6":0.04113,"16.1":0.01763,"16.2":0.01175,"16.3":0.00588,"16.4":0.00588,"16.5":0.01175,"16.6":0.094,"17.1":0.10575,"17.3":0.00588,"17.4":0.01763,"17.5":0.04113,"17.6":0.13513,"18.0":0.00588,"18.1":0.01175,"18.2":0.01175,"18.3":0.08813,"18.4":0.0235,"18.5-18.7":0.08225,"26.0":0.047,"26.1":0.047,"26.2":0.22325,"26.3":0.53463,"26.4":0.05288},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00132,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00264,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00661,"11.0-11.2":0.16662,"11.3-11.4":0.00397,"12.0-12.1":0,"12.2-12.5":0.05157,"13.0-13.1":0,"13.2":0.01984,"13.3":0.00264,"13.4-13.7":0.00661,"14.0-14.4":0.0119,"14.5-14.8":0.0119,"15.0-15.1":0.01719,"15.2-15.3":0.01058,"15.4":0.01322,"15.5":0.01455,"15.6-15.8":0.23406,"16.0":0.0238,"16.1":0.04628,"16.2":0.02645,"16.3":0.04761,"16.4":0.01058,"16.5":0.01984,"16.6-16.7":0.32531,"17.0":0.01455,"17.1":0.0238,"17.2":0.02116,"17.3":0.02909,"17.4":0.04761,"17.5":0.08992,"17.6-17.7":0.23142,"18.0":0.05025,"18.1":0.10315,"18.2":0.05422,"18.3":0.17323,"18.4":0.08331,"18.5-18.7":2.65006,"26.0":0.1653,"26.1":0.25125,"26.2":1.47842,"26.3":6.42281,"26.4":0.24067,"26.5":0},P:{"23":0.01023,"24":0.01023,"25":0.02045,"26":0.03068,"27":0.02045,"28":0.1227,"29":2.09619,_:"4 20 21 22 6.2-6.4 8.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","5.0-5.4":0.01023,"7.2-7.4":0.02045,"9.2":0.01023},I:{"0":0.05771,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00003},K:{"0":0.12378,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.03525,_:"6 7 8 9 10 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.19392},Q:{"14.9":0.01238},O:{"0":0.07839},H:{all:0},L:{"0":30.03377}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/MO.js b/server/api/node_modules/caniuse-lite/data/regions/MO.js new file mode 100644 index 0000000..ff96a67 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/MO.js @@ -0,0 +1 @@ +module.exports={C:{"34":0.00373,"72":0.04472,"115":0.041,"125":0.00373,"127":0.00373,"128":0.43606,"131":0.00373,"132":0.00373,"138":0.00373,"140":0.17517,"143":0.00373,"146":0.00373,"147":0.02609,"148":0.75658,"149":0.13417,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 126 129 130 133 134 135 136 137 139 141 142 144 145 150 151 152 3.5 3.6"},D:{"49":0.00373,"71":0.00745,"72":0.01491,"78":0.00373,"79":0.01118,"80":0.00373,"87":0.00373,"92":0.01864,"94":0.00745,"97":0.01864,"99":0.00745,"101":0.01118,"103":0.03354,"106":0.00745,"107":0.00373,"108":0.00745,"109":0.45469,"114":0.21244,"115":0.01491,"116":0.03727,"117":0.00745,"118":0.01118,"119":0.01491,"120":0.01864,"121":0.02236,"122":0.02609,"123":0.00373,"124":0.02609,"125":0.02982,"126":0.01491,"127":0.05963,"128":0.05218,"129":0.00373,"130":0.06336,"131":0.03354,"132":0.03354,"133":0.01118,"134":0.02982,"135":0.02982,"136":0.01864,"137":0.04472,"138":0.19008,"139":0.14535,"140":0.06336,"141":0.01864,"142":0.07454,"143":0.12299,"144":0.41742,"145":7.73353,"146":6.72351,"147":0.08199,"148":0.041,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 73 74 75 76 77 81 83 84 85 86 88 89 90 91 93 95 96 98 100 102 104 105 110 111 112 113 149 150"},F:{"95":0.05218,"96":0.01491,"126":0.03354,"127":0.10808,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00745,"109":0.03727,"120":0.02609,"121":0.00373,"122":0.02609,"124":0.05218,"125":0.01491,"126":0.02609,"127":0.03727,"128":0.01118,"130":0.00373,"131":0.00373,"132":0.02236,"135":0.00373,"136":0.01864,"138":0.02236,"139":0.00745,"140":0.00373,"141":0.00373,"142":0.02236,"143":0.06709,"144":0.17144,"145":3.06732,"146":2.6089,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 123 129 133 134 137"},E:{"14":0.00745,_:"4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 26.5 TP","13.1":0.01864,"14.1":0.13417,"15.1":0.00373,"15.2-15.3":0.00373,"15.4":0.01491,"15.5":0.01864,"15.6":0.07081,"16.0":0.00373,"16.1":0.03727,"16.2":0.00745,"16.3":0.01864,"16.4":0.01118,"16.5":0.02236,"16.6":0.10808,"17.0":0.00745,"17.1":0.10436,"17.2":0.00745,"17.3":0.00745,"17.4":0.02236,"17.5":0.02236,"17.6":0.08199,"18.0":0.02236,"18.1":0.03354,"18.2":0.00373,"18.3":0.03354,"18.4":0.02609,"18.5-18.7":0.08945,"26.0":0.04845,"26.1":0.01864,"26.2":0.47333,"26.3":1.75542,"26.4":0.05591},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0027,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00541,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.01352,"11.0-11.2":0.34058,"11.3-11.4":0.00811,"12.0-12.1":0,"12.2-12.5":0.10542,"13.0-13.1":0,"13.2":0.04055,"13.3":0.00541,"13.4-13.7":0.01352,"14.0-14.4":0.02433,"14.5-14.8":0.02433,"15.0-15.1":0.03514,"15.2-15.3":0.02162,"15.4":0.02703,"15.5":0.02973,"15.6-15.8":0.47844,"16.0":0.04865,"16.1":0.09461,"16.2":0.05406,"16.3":0.09731,"16.4":0.02162,"16.5":0.04055,"16.6-16.7":0.66495,"17.0":0.02973,"17.1":0.04865,"17.2":0.04325,"17.3":0.05947,"17.4":0.09731,"17.5":0.18381,"17.6-17.7":0.47303,"18.0":0.10272,"18.1":0.21084,"18.2":0.11082,"18.3":0.3541,"18.4":0.17029,"18.5-18.7":5.41688,"26.0":0.33788,"26.1":0.51358,"26.2":3.02199,"26.3":13.12864,"26.4":0.49195,"26.5":0},P:{"4":0.02099,"21":0.03148,"22":0.01049,"23":0.01049,"26":0.02099,"27":0.01049,"28":0.03148,"29":3.84055,_:"20 24 25 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 14.0 15.0 16.0 17.0 18.0 19.0","5.0-5.4":0.01049,"13.0":0.02099},I:{"0":0.10028,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00005},K:{"0":0.08782,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.44351,_:"6 7 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":1.19814},Q:{"14.9":0.08782},O:{"0":0.88449},H:{all:0},L:{"0":35.73647}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/MP.js b/server/api/node_modules/caniuse-lite/data/regions/MP.js new file mode 100644 index 0000000..2be6023 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/MP.js @@ -0,0 +1 @@ +module.exports={C:{"88":0.01622,"115":0.01622,"147":0.01622,"148":1.98941,"149":0.21083,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 150 151 152 3.5 3.6"},D:{"59":0.00541,"103":0.12434,"108":0.00541,"109":0.21624,"115":0.04325,"116":0.01081,"122":0.00541,"123":0.02162,"124":0.17299,"125":0.00541,"126":0.04865,"128":0.04865,"130":0.02703,"132":0.01081,"133":0.00541,"134":0.04325,"135":0.00541,"137":0.04325,"138":0.13515,"139":0.28652,"140":0.02162,"141":0.04325,"142":0.10271,"143":0.32436,"144":0.71359,"145":14.67188,"146":7.95763,"147":0.01622,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 104 105 106 107 110 111 112 113 114 117 118 119 120 121 127 129 131 136 148 149 150"},F:{"95":0.00541,"126":0.01081,"127":2.05428,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.01622,"131":0.01081,"137":0.03244,"142":0.02703,"144":0.36761,"145":6.58991,"146":5.42222,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 132 133 134 135 136 138 139 140 141 143"},E:{"15":0.00541,_:"4 5 6 7 8 9 10 11 12 13 14 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 15.1 15.4 15.5 16.0 17.0 17.2 17.3 17.4 18.1 18.2 26.0 26.5 TP","14.1":0.02162,"15.2-15.3":0.00541,"15.6":0.07568,"16.1":0.0865,"16.2":0.02703,"16.3":0.00541,"16.4":0.00541,"16.5":0.01622,"16.6":0.13515,"17.1":0.40545,"17.5":0.08109,"17.6":0.08109,"18.0":0.00541,"18.3":0.00541,"18.4":0.01622,"18.5-18.7":0.03784,"26.1":0.02703,"26.2":0.40004,"26.3":2.02184,"26.4":0.01622},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0015,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00299,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00749,"11.0-11.2":0.18865,"11.3-11.4":0.00449,"12.0-12.1":0,"12.2-12.5":0.05839,"13.0-13.1":0,"13.2":0.02246,"13.3":0.00299,"13.4-13.7":0.00749,"14.0-14.4":0.01347,"14.5-14.8":0.01347,"15.0-15.1":0.01946,"15.2-15.3":0.01198,"15.4":0.01497,"15.5":0.01647,"15.6-15.8":0.265,"16.0":0.02695,"16.1":0.0524,"16.2":0.02994,"16.3":0.0539,"16.4":0.01198,"16.5":0.02246,"16.6-16.7":0.36831,"17.0":0.01647,"17.1":0.02695,"17.2":0.02395,"17.3":0.03294,"17.4":0.0539,"17.5":0.10181,"17.6-17.7":0.26201,"18.0":0.05689,"18.1":0.11678,"18.2":0.06138,"18.3":0.19613,"18.4":0.09432,"18.5-18.7":3.00036,"26.0":0.18715,"26.1":0.28447,"26.2":1.67385,"26.3":7.27183,"26.4":0.27249,"26.5":0},P:{"24":0.03144,"27":0.09431,"28":0.05239,"29":6.8323,_:"4 20 21 22 23 25 26 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.00459,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0.0781,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.00541,_:"6 7 8 9 10 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.06891},Q:{_:"14.9"},O:{"0":0.2297},H:{all:0},L:{"0":27.6583}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/MQ.js b/server/api/node_modules/caniuse-lite/data/regions/MQ.js new file mode 100644 index 0000000..f3876a6 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/MQ.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.0041,"52":0.0041,"88":0.0041,"115":0.11065,"127":0.0082,"132":0.0082,"133":0.0041,"135":0.0041,"140":0.08606,"141":0.01229,"143":0.0041,"145":0.0041,"146":0.01229,"147":0.12294,"148":1.67198,"149":0.4139,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 128 129 130 131 134 136 137 138 139 142 144 150 151 152 3.5 3.6"},D:{"56":0.01229,"97":0.0041,"98":0.0082,"103":0.02049,"108":0.0041,"109":0.16392,"110":0.01639,"114":0.04098,"116":0.0082,"119":0.01229,"120":0.0041,"122":0.0082,"123":0.01639,"125":0.01639,"126":0.02049,"127":0.0041,"128":0.04508,"129":0.0041,"130":0.0041,"131":0.02459,"132":0.0082,"133":0.0041,"135":0.0082,"136":0.01229,"138":0.06967,"139":0.08196,"140":0.0082,"141":0.01229,"142":0.11474,"143":0.19261,"144":1.75394,"145":8.64678,"146":6.90103,"147":0.0041,"148":0.01229,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 99 100 101 102 104 105 106 107 111 112 113 115 117 118 121 124 134 137 149 150"},F:{"40":0.0041,"46":0.01229,"67":0.0041,"95":0.0041,"96":0.0041,"114":0.02049,"122":0.0082,"126":0.02049,"127":0.77042,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 120 121 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.0082,"100":0.01639,"109":0.01639,"116":0.0041,"124":0.0041,"129":0.01639,"130":0.0041,"132":0.0082,"133":0.01229,"134":0.0082,"135":0.0082,"136":0.01229,"137":0.02869,"140":0.09425,"142":0.01639,"143":0.03278,"144":0.06967,"145":2.38913,"146":2.48749,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 114 115 117 118 119 120 121 122 123 125 126 127 128 131 138 139 141"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 13.1 15.1 15.2-15.3 15.4 16.0 17.0 26.5 TP","11.1":0.0082,"12.1":0.01229,"14.1":0.01229,"15.5":0.01639,"15.6":0.15982,"16.1":0.01639,"16.2":0.0041,"16.3":0.0041,"16.4":0.0041,"16.5":0.02049,"16.6":0.09835,"17.1":0.06557,"17.2":0.01229,"17.3":0.01229,"17.4":0.0082,"17.5":0.01639,"17.6":0.29506,"18.0":0.01229,"18.1":0.02049,"18.2":0.0082,"18.3":0.06557,"18.4":0.01639,"18.5-18.7":0.34423,"26.0":0.04098,"26.1":0.28276,"26.2":1.00811,"26.3":1.99573,"26.4":0.09835},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00183,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00366,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00916,"11.0-11.2":0.23083,"11.3-11.4":0.0055,"12.0-12.1":0,"12.2-12.5":0.07145,"13.0-13.1":0,"13.2":0.02748,"13.3":0.00366,"13.4-13.7":0.00916,"14.0-14.4":0.01649,"14.5-14.8":0.01649,"15.0-15.1":0.02382,"15.2-15.3":0.01466,"15.4":0.01832,"15.5":0.02015,"15.6-15.8":0.32426,"16.0":0.03298,"16.1":0.06412,"16.2":0.03664,"16.3":0.06595,"16.4":0.01466,"16.5":0.02748,"16.6-16.7":0.45067,"17.0":0.02015,"17.1":0.03298,"17.2":0.02931,"17.3":0.0403,"17.4":0.06595,"17.5":0.12457,"17.6-17.7":0.3206,"18.0":0.06962,"18.1":0.14289,"18.2":0.07511,"18.3":0.23999,"18.4":0.11541,"18.5-18.7":3.67129,"26.0":0.229,"26.1":0.34808,"26.2":2.04815,"26.3":8.89793,"26.4":0.33342,"26.5":0},P:{"21":0.01063,"23":0.02126,"24":0.0744,"25":0.05314,"26":0.18069,"27":0.06377,"28":0.1488,"29":4.4215,_:"4 20 22 5.0-5.4 6.2-6.4 8.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.03189,"9.2":0.01063},I:{"0":0.08255,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00004},K:{"0":0.05902,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.46036},Q:{_:"14.9"},O:{"0":0.0059},H:{all:0},L:{"0":41.72225}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/MR.js b/server/api/node_modules/caniuse-lite/data/regions/MR.js new file mode 100644 index 0000000..b28a0cc --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/MR.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.00205,"115":0.07983,"127":0.00205,"140":0.03889,"144":0.00205,"145":0.00205,"146":0.00819,"147":0.02047,"148":0.17604,"149":0.04094,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 128 129 130 131 132 133 134 135 136 137 138 139 141 142 143 150 151 152 3.5 3.6"},D:{"50":0.00205,"54":0.00205,"56":0.01228,"58":0.00614,"66":0.00409,"68":0.00205,"69":0.00205,"70":0.00205,"72":0.00819,"75":0.00409,"77":0.00614,"79":0.00205,"81":0.00614,"83":0.00819,"86":0.00409,"87":0.00614,"90":0.00205,"91":0.00205,"92":0.00205,"93":0.00409,"95":0.00205,"98":0.03889,"99":0.00205,"101":0.00205,"103":0.00409,"105":0.01228,"106":0.00205,"108":0.00205,"109":0.15353,"110":0.00819,"111":0.00409,"113":0.00614,"114":0.00614,"116":0.00409,"118":0.00205,"119":0.01228,"120":0.00205,"122":0.00205,"123":0.00409,"124":0.00205,"125":0.00614,"126":0.00409,"127":0.00205,"128":0.00819,"130":0.01228,"131":0.01842,"133":0.00409,"134":0.01024,"135":0.05322,"136":0.0348,"137":0.00614,"138":0.04913,"139":0.07165,"140":0.00409,"141":0.00409,"142":0.01228,"143":0.06755,"144":0.17604,"145":2.01425,"146":1.43085,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 51 52 53 55 57 59 60 61 62 63 64 65 67 71 73 74 76 78 80 84 85 88 89 94 96 97 100 102 104 107 112 115 117 121 129 132 147 148 149 150"},F:{"46":0.00205,"92":0.00409,"95":0.01228,"96":0.01024,"110":0.01024,"123":0.00205,"126":0.00819,"127":0.12282,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 111 112 113 114 115 116 117 118 119 120 121 122 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.00205,"17":0.00205,"18":0.00205,"84":0.00409,"92":0.01024,"109":0.00205,"114":0.01024,"122":0.00205,"123":0.00205,"128":0.00205,"129":0.01024,"133":0.00409,"138":0.00409,"140":0.01228,"141":0.00819,"142":0.00409,"143":0.00819,"144":0.01638,"145":0.44625,"146":0.42987,_:"12 13 15 16 79 80 81 83 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 124 125 126 127 130 131 132 134 135 136 137 139"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.2-15.3 15.4 15.5 16.2 16.3 16.4 17.0 17.2 17.3 17.4 18.1 18.4 26.5 TP","5.1":0.00819,"15.1":0.00409,"15.6":0.01024,"16.0":0.00409,"16.1":0.00205,"16.5":0.00205,"16.6":0.02866,"17.1":0.01024,"17.5":0.00205,"17.6":0.01024,"18.0":0.00614,"18.2":0.00205,"18.3":0.00409,"18.5-18.7":0.01638,"26.0":0.03889,"26.1":0.01024,"26.2":0.03071,"26.3":0.10235,"26.4":0.00205},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00203,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00407,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.01016,"11.0-11.2":0.25613,"11.3-11.4":0.0061,"12.0-12.1":0,"12.2-12.5":0.07928,"13.0-13.1":0,"13.2":0.03049,"13.3":0.00407,"13.4-13.7":0.01016,"14.0-14.4":0.0183,"14.5-14.8":0.0183,"15.0-15.1":0.02643,"15.2-15.3":0.01626,"15.4":0.02033,"15.5":0.02236,"15.6-15.8":0.3598,"16.0":0.03659,"16.1":0.07115,"16.2":0.04066,"16.3":0.07318,"16.4":0.01626,"16.5":0.03049,"16.6-16.7":0.50007,"17.0":0.02236,"17.1":0.03659,"17.2":0.03252,"17.3":0.04472,"17.4":0.07318,"17.5":0.13823,"17.6-17.7":0.35574,"18.0":0.07725,"18.1":0.15856,"18.2":0.08334,"18.3":0.2663,"18.4":0.12807,"18.5-18.7":4.0737,"26.0":0.2541,"26.1":0.38623,"26.2":2.27266,"26.3":9.87325,"26.4":0.36997,"26.5":0},P:{"20":0.03041,"21":0.03041,"22":0.08111,"23":0.04055,"24":0.49677,"25":0.24332,"26":0.31428,"27":0.49677,"28":0.83133,"29":3.11242,_:"4 5.0-5.4 6.2-6.4 8.2 9.2 10.1 12.0 14.0 17.0","7.2-7.4":0.48663,"11.1-11.2":0.02028,"13.0":0.01014,"15.0":0.01014,"16.0":0.01014,"18.0":0.03041,"19.0":0.10138},I:{"0":0.00795,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0.89074,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.17497},Q:{"14.9":0.00795},O:{"0":0.29426},H:{all:0},L:{"0":65.10558}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/MS.js b/server/api/node_modules/caniuse-lite/data/regions/MS.js new file mode 100644 index 0000000..bdfeb9d --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/MS.js @@ -0,0 +1 @@ +module.exports={C:{"128":0.08239,"148":0.12733,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 149 150 151 152 3.5 3.6"},D:{"92":0.73402,"116":0.04494,"122":0.08239,"139":0.08239,"142":0.04494,"143":0.98868,"144":0.98868,"145":17.23449,"146":6.83088,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 117 118 119 120 121 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 140 141 147 148 149 150"},F:{"127":0.86135,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"144":0.51681,"145":1.50549,"146":2.66644,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 15.2-15.3 15.4 15.5 15.6 16.0 16.2 16.3 16.4 16.5 16.6 17.0 17.2 17.3 17.4 17.5 18.0 18.1 18.2 18.3 18.4 26.5 TP","16.1":25.87046,"17.1":0.04494,"17.6":0.2996,"18.5-18.7":0.04494,"26.0":0.04494,"26.1":0.04494,"26.2":0.21721,"26.3":0.98868,"26.4":0.04494},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00091,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00181,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00454,"11.0-11.2":0.11433,"11.3-11.4":0.00272,"12.0-12.1":0,"12.2-12.5":0.03539,"13.0-13.1":0,"13.2":0.01361,"13.3":0.00181,"13.4-13.7":0.00454,"14.0-14.4":0.00817,"14.5-14.8":0.00817,"15.0-15.1":0.0118,"15.2-15.3":0.00726,"15.4":0.00907,"15.5":0.00998,"15.6-15.8":0.1606,"16.0":0.01633,"16.1":0.03176,"16.2":0.01815,"16.3":0.03267,"16.4":0.00726,"16.5":0.01361,"16.6-16.7":0.22321,"17.0":0.00998,"17.1":0.01633,"17.2":0.01452,"17.3":0.01996,"17.4":0.03267,"17.5":0.0617,"17.6-17.7":0.15879,"18.0":0.03448,"18.1":0.07077,"18.2":0.0372,"18.3":0.11886,"18.4":0.05716,"18.5-18.7":1.81836,"26.0":0.11342,"26.1":0.1724,"26.2":1.01443,"26.3":4.40707,"26.4":0.16514,"26.5":0},P:{"24":0.32363,"29":0.50702,_:"4 20 21 22 23 25 26 27 28 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","11.1-11.2":0.18339},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.09287},Q:{_:"14.9"},O:{_:"0"},H:{all:0},L:{"0":18.65946}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/MT.js b/server/api/node_modules/caniuse-lite/data/regions/MT.js new file mode 100644 index 0000000..ac1c9a3 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/MT.js @@ -0,0 +1 @@ +module.exports={C:{"109":0.00554,"110":0.00554,"113":0.00554,"115":0.04986,"131":0.01662,"140":0.01108,"146":0.00554,"147":0.06648,"148":0.8033,"149":0.09418,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 111 112 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 132 133 134 135 136 137 138 139 141 142 143 144 145 150 151 152 3.5 3.6"},D:{"70":0.00554,"77":0.01108,"79":0.00554,"81":0.00554,"86":0.00554,"89":0.00554,"103":0.06648,"104":0.03878,"105":0.03324,"106":0.03878,"107":0.03878,"108":0.03324,"109":0.43212,"110":0.03324,"111":0.03878,"112":0.0831,"115":0.01108,"116":0.15512,"117":0.03878,"118":0.04432,"119":0.01108,"120":0.06648,"121":0.00554,"122":0.12188,"123":0.6925,"124":0.0554,"125":0.00554,"126":0.01108,"127":0.00554,"128":0.06648,"129":0.01108,"130":0.01108,"131":0.14404,"132":0.01108,"133":0.08864,"134":0.01662,"135":0.03324,"136":0.03324,"137":0.06648,"138":0.0831,"139":0.21052,"140":0.11634,"141":0.78668,"142":0.08864,"143":0.3047,"144":0.74236,"145":18.33186,"146":13.0467,"147":0.01108,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 71 72 73 74 75 76 78 80 83 84 85 87 88 90 91 92 93 94 95 96 97 98 99 100 101 102 113 114 148 149 150"},F:{"28":0.00554,"95":0.01108,"96":0.0277,"111":0.01108,"126":0.02216,"127":0.78668,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 112 113 114 115 116 117 118 119 120 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"109":0.02216,"112":0.01108,"117":0.00554,"133":0.00554,"135":0.00554,"136":0.00554,"137":0.00554,"138":0.00554,"140":0.00554,"141":0.01662,"142":0.04986,"143":0.07202,"144":0.11634,"145":4.19932,"146":2.93066,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 113 114 115 116 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 134 139"},E:{"14":0.00554,_:"4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 13.1 15.1 15.2-15.3 15.4 15.5 16.2 26.5 TP","12.1":0.00554,"14.1":0.01662,"15.6":0.1108,"16.0":0.00554,"16.1":0.01108,"16.3":0.0277,"16.4":0.00554,"16.5":0.00554,"16.6":0.06094,"17.0":0.14958,"17.1":0.07202,"17.2":0.00554,"17.3":0.01662,"17.4":0.02216,"17.5":0.0277,"17.6":0.17728,"18.0":0.00554,"18.1":0.01108,"18.2":0.02216,"18.3":0.03878,"18.4":0.01108,"18.5-18.7":0.0554,"26.0":0.04986,"26.1":0.03324,"26.2":0.43212,"26.3":1.36838,"26.4":0.08864},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00173,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00346,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00865,"11.0-11.2":0.21793,"11.3-11.4":0.00519,"12.0-12.1":0,"12.2-12.5":0.06745,"13.0-13.1":0,"13.2":0.02594,"13.3":0.00346,"13.4-13.7":0.00865,"14.0-14.4":0.01557,"14.5-14.8":0.01557,"15.0-15.1":0.02248,"15.2-15.3":0.01384,"15.4":0.0173,"15.5":0.01903,"15.6-15.8":0.30614,"16.0":0.03113,"16.1":0.06054,"16.2":0.03459,"16.3":0.06227,"16.4":0.01384,"16.5":0.02594,"16.6-16.7":0.42548,"17.0":0.01903,"17.1":0.03113,"17.2":0.02767,"17.3":0.03805,"17.4":0.06227,"17.5":0.11761,"17.6-17.7":0.30268,"18.0":0.06572,"18.1":0.13491,"18.2":0.07091,"18.3":0.22658,"18.4":0.10896,"18.5-18.7":3.46609,"26.0":0.2162,"26.1":0.32862,"26.2":1.93368,"26.3":8.40061,"26.4":0.31479,"26.5":0},P:{"20":0.01044,"21":0.01044,"25":0.01044,"26":0.03133,"27":0.01044,"28":0.04178,"29":2.38119,_:"4 22 23 24 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.01044},I:{"0":0.11586,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00006},K:{"0":0.13826,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.00554,_:"6 7 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.1784},Q:{_:"14.9"},O:{"0":0.14272},H:{all:0},L:{"0":28.93668}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/MU.js b/server/api/node_modules/caniuse-lite/data/regions/MU.js new file mode 100644 index 0000000..6b2a1ed --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/MU.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.00337,"48":0.01012,"52":0.02024,"78":0.00675,"102":0.00337,"115":0.11134,"133":0.00675,"135":0.00675,"136":0.00337,"139":0.00337,"140":0.02024,"144":0.00675,"147":0.06073,"148":1.22814,"149":0.23955,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 134 137 138 141 142 143 145 146 150 151 152 3.5 3.6"},D:{"68":0.00337,"72":0.00337,"79":0.00337,"80":0.00337,"86":0.00337,"87":0.00337,"90":0.00675,"91":0.00675,"96":0.00337,"97":0.00337,"101":0.00337,"103":0.03711,"104":0.02362,"105":0.02362,"106":0.02362,"107":0.02024,"108":0.02362,"109":0.3374,"110":0.02699,"111":0.02362,"112":0.04049,"113":0.01687,"114":0.02362,"115":0.00337,"116":0.06411,"117":0.02362,"118":0.00337,"119":0.01012,"120":0.02699,"121":0.00337,"122":0.0135,"123":0.04049,"124":0.02699,"125":0.00337,"126":0.01687,"127":0.00337,"128":0.02699,"129":0.01012,"130":0.00337,"131":0.07085,"132":0.0135,"133":0.05061,"134":0.01687,"135":0.03037,"136":0.00675,"137":0.00675,"138":0.12146,"139":0.12146,"140":0.01687,"141":0.05398,"142":0.02362,"143":0.13833,"144":0.45886,"145":8.435,"146":6.86946,"147":0.01687,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 69 70 71 73 74 75 76 77 78 81 83 84 85 88 89 92 93 94 95 98 99 100 102 148 149 150"},F:{"94":0.00337,"95":0.0135,"96":0.02699,"112":0.00337,"113":0.01012,"114":0.00337,"118":0.00337,"125":0.00337,"126":0.01687,"127":0.39476,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 115 116 117 119 120 121 122 123 124 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00337,"92":0.00337,"109":0.02699,"114":0.00337,"122":0.00337,"129":0.00337,"132":0.0135,"133":0.00337,"134":0.05398,"138":0.00337,"139":0.00337,"140":0.01012,"141":0.00337,"142":0.00337,"143":0.02024,"144":0.08772,"145":1.49131,"146":1.47444,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 123 124 125 126 127 128 130 131 135 136 137"},E:{"14":0.02362,_:"4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.4 26.5 TP","13.1":0.00337,"14.1":0.00337,"15.6":0.02362,"16.3":0.00675,"16.5":0.00337,"16.6":0.07423,"17.0":0.00337,"17.1":0.02699,"17.2":0.00337,"17.3":0.00337,"17.4":0.00675,"17.5":0.01687,"17.6":0.16533,"18.0":0.0135,"18.1":0.00337,"18.2":0.01687,"18.3":0.01012,"18.4":0.01687,"18.5-18.7":0.04049,"26.0":0.0135,"26.1":0.03037,"26.2":0.12484,"26.3":0.82326,"26.4":0.03711},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0009,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.0018,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00449,"11.0-11.2":0.11313,"11.3-11.4":0.00269,"12.0-12.1":0,"12.2-12.5":0.03502,"13.0-13.1":0,"13.2":0.01347,"13.3":0.0018,"13.4-13.7":0.00449,"14.0-14.4":0.00808,"14.5-14.8":0.00808,"15.0-15.1":0.01167,"15.2-15.3":0.00718,"15.4":0.00898,"15.5":0.00988,"15.6-15.8":0.15891,"16.0":0.01616,"16.1":0.03142,"16.2":0.01796,"16.3":0.03232,"16.4":0.00718,"16.5":0.01347,"16.6-16.7":0.22086,"17.0":0.00988,"17.1":0.01616,"17.2":0.01437,"17.3":0.01975,"17.4":0.03232,"17.5":0.06105,"17.6-17.7":0.15712,"18.0":0.03412,"18.1":0.07003,"18.2":0.03681,"18.3":0.11761,"18.4":0.05656,"18.5-18.7":1.79924,"26.0":0.11223,"26.1":0.17059,"26.2":1.00377,"26.3":4.36073,"26.4":0.1634,"26.5":0},P:{"21":0.0102,"22":0.07142,"23":0.02041,"24":0.05101,"25":0.03061,"26":0.03061,"27":0.05101,"28":0.43873,"29":4.03018,_:"4 20 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 17.0 18.0","7.2-7.4":0.12244,"16.0":0.25507,"19.0":0.0102},I:{"0":0.18536,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00009},K:{"0":0.71561,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.47045},Q:{_:"14.9"},O:{"0":0.72886},H:{all:0},L:{"0":58.24337}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/MV.js b/server/api/node_modules/caniuse-lite/data/regions/MV.js new file mode 100644 index 0000000..6ed0273 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/MV.js @@ -0,0 +1 @@ +module.exports={C:{"115":0.03622,"140":0.00836,"146":0.00279,"147":0.01672,"148":0.60178,"149":0.13094,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 141 142 143 144 145 150 151 152 3.5 3.6"},D:{"68":0.00279,"73":0.00279,"74":0.00279,"77":0.00279,"94":0.00279,"103":0.00836,"104":0.00279,"109":0.08358,"112":0.00557,"113":0.00279,"115":0.00279,"116":0.00279,"117":0.00279,"119":0.00279,"120":0.00279,"122":0.02229,"123":0.00557,"124":0.00557,"125":0.00279,"126":0.00279,"127":0.00279,"128":0.05851,"129":0.00279,"130":0.00836,"131":0.01114,"132":0.00836,"133":0.00279,"134":0.00557,"135":0.00557,"136":0.01672,"137":0.02786,"138":0.08915,"139":0.23124,"140":0.04179,"141":0.01114,"142":0.03343,"143":0.10587,"144":0.53213,"145":7.14888,"146":4.95072,"147":0.01672,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 69 70 71 72 75 76 78 79 80 81 83 84 85 86 87 88 89 90 91 92 93 95 96 97 98 99 100 101 102 105 106 107 108 110 111 114 118 121 148 149 150"},F:{"95":0.04458,"96":0.01393,"114":0.00279,"125":0.00279,"126":0.00279,"127":0.25631,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 120 121 122 123 124 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"16":0.00836,"18":0.00279,"92":0.00557,"114":0.01393,"122":0.00279,"127":0.00279,"131":0.00279,"136":0.00557,"137":0.01393,"138":0.00557,"139":0.00279,"140":0.00557,"141":0.00279,"142":0.16437,"143":0.02786,"144":0.59342,"145":1.18684,"146":0.9751,_:"12 13 14 15 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 120 121 123 124 125 126 128 129 130 132 133 134 135"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 15.5 16.1 17.0 17.2 26.5 TP","13.1":0.00279,"14.1":0.00557,"15.6":0.01393,"16.0":0.00279,"16.2":0.00279,"16.3":0.00279,"16.4":0.00836,"16.5":0.00279,"16.6":0.0195,"17.1":0.00557,"17.3":0.00836,"17.4":0.01114,"17.5":0.02229,"17.6":0.08079,"18.0":0.01672,"18.1":0.00279,"18.2":0.00279,"18.3":0.00836,"18.4":0.00557,"18.5-18.7":0.04179,"26.0":0.05572,"26.1":0.01393,"26.2":0.19223,"26.3":0.59063,"26.4":0.0195},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00175,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.0035,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00875,"11.0-11.2":0.22042,"11.3-11.4":0.00525,"12.0-12.1":0,"12.2-12.5":0.06823,"13.0-13.1":0,"13.2":0.02624,"13.3":0.0035,"13.4-13.7":0.00875,"14.0-14.4":0.01574,"14.5-14.8":0.01574,"15.0-15.1":0.02274,"15.2-15.3":0.014,"15.4":0.01749,"15.5":0.01924,"15.6-15.8":0.30964,"16.0":0.03149,"16.1":0.06123,"16.2":0.03499,"16.3":0.06298,"16.4":0.014,"16.5":0.02624,"16.6-16.7":0.43035,"17.0":0.01924,"17.1":0.03149,"17.2":0.02799,"17.3":0.03849,"17.4":0.06298,"17.5":0.11896,"17.6-17.7":0.30614,"18.0":0.06648,"18.1":0.13645,"18.2":0.07173,"18.3":0.22917,"18.4":0.11021,"18.5-18.7":3.50579,"26.0":0.21867,"26.1":0.33239,"26.2":1.95582,"26.3":8.49681,"26.4":0.31839,"26.5":0},P:{"25":0.01023,"26":0.01023,"27":0.01023,"28":0.03069,"29":1.05377,_:"4 20 21 22 23 24 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 14.0 15.0 16.0 17.0 18.0 19.0","13.0":0.01023},I:{"0":0.03604,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.75747,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.101},Q:{_:"14.9"},O:{"0":0.59155},H:{all:0},L:{"0":60.09552}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/MW.js b/server/api/node_modules/caniuse-lite/data/regions/MW.js new file mode 100644 index 0000000..6f3c23b --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/MW.js @@ -0,0 +1 @@ +module.exports={C:{"52":0.02546,"64":0.00727,"72":0.00364,"112":0.00364,"115":0.0982,"123":0.00364,"134":0.00364,"135":0.02546,"136":0.00727,"138":0.00364,"139":0.00364,"140":0.03637,"142":0.00364,"143":0.01455,"144":0.00364,"145":0.00727,"146":0.01819,"147":0.10184,"148":1.38933,"149":0.20731,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 65 66 67 68 69 70 71 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 113 114 116 117 118 119 120 121 122 124 125 126 127 128 129 130 131 132 133 137 141 150 151 152 3.5 3.6"},D:{"49":0.00364,"50":0.01091,"63":0.00364,"65":0.01091,"66":0.00364,"67":0.00364,"68":0.00364,"69":0.00364,"70":0.00364,"71":0.01455,"73":0.00364,"80":0.01091,"81":0.00727,"83":0.00364,"86":0.00727,"87":0.01091,"88":0.00364,"89":0.00364,"91":0.00364,"92":0.01455,"93":0.00364,"94":0.00364,"95":0.01455,"98":0.00364,"99":0.00364,"100":0.00364,"102":0.00364,"103":0.02182,"105":0.01091,"106":0.00727,"107":0.00364,"108":0.00364,"109":0.37097,"110":0.00364,"111":0.00727,"112":0.00364,"114":0.05819,"116":0.0291,"117":0.00364,"119":0.01819,"120":0.00727,"121":0.00727,"122":0.04001,"123":0.01455,"124":0.01091,"125":0.02182,"126":0.02182,"127":0.01091,"128":0.04364,"129":0.00364,"130":0.07274,"131":0.0291,"132":0.02182,"133":0.04728,"134":0.01091,"135":0.03637,"136":0.00727,"137":0.02182,"138":0.1273,"139":0.0982,"140":0.15639,"141":0.0291,"142":0.04364,"143":0.18185,"144":0.40007,"145":6.76846,"146":5.41186,"147":0.0291,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 51 52 53 54 55 56 57 58 59 60 61 62 64 72 74 75 76 77 78 79 84 85 90 96 97 101 104 113 115 118 148 149 150"},F:{"36":0.00727,"42":0.00727,"45":0.00364,"49":0.00364,"90":0.01455,"93":0.00364,"94":0.00364,"95":0.06547,"96":0.06183,"97":0.00364,"109":0.00364,"117":0.00364,"122":0.00727,"124":0.00364,"125":0.01455,"126":0.08365,"127":0.53828,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 43 44 46 47 48 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 91 92 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 118 119 120 121 123 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.00727,"15":0.00364,"16":0.01091,"17":0.00364,"18":0.06547,"84":0.00727,"89":0.01455,"90":0.02546,"92":0.10911,"95":0.00364,"100":0.02182,"109":0.01819,"112":0.00364,"114":0.00364,"122":0.02546,"132":0.01455,"133":0.00364,"134":0.00364,"135":0.01455,"136":0.00364,"137":0.00364,"138":0.00727,"139":0.01455,"140":0.01819,"141":0.01455,"142":0.0291,"143":0.09093,"144":0.12002,"145":1.90579,"146":1.63301,_:"12 13 79 80 81 83 85 86 87 88 91 93 94 96 97 98 99 101 102 103 104 105 106 107 108 110 111 113 115 116 117 118 119 120 121 123 124 125 126 127 128 129 130 131"},E:{"12":0.00364,"13":0.00364,"14":0.01819,_:"4 5 6 7 8 9 10 11 15 3.1 3.2 6.1 7.1 9.1 11.1 15.1 15.2-15.3 15.4 16.0 16.1 16.2 16.3 16.4 17.0 17.2 17.3 17.4 17.5 18.0 18.1 18.2 18.4 26.0 26.5 TP","5.1":0.01091,"10.1":0.00364,"12.1":0.00364,"13.1":0.01091,"14.1":0.00727,"15.5":0.00364,"15.6":0.02546,"16.5":0.00364,"16.6":0.01819,"17.1":0.00727,"17.6":0.05456,"18.3":0.00364,"18.5-18.7":0.00364,"26.1":0.00364,"26.2":0.0291,"26.3":0.12002,"26.4":0.00727},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0002,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.0004,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00101,"11.0-11.2":0.02533,"11.3-11.4":0.0006,"12.0-12.1":0,"12.2-12.5":0.00784,"13.0-13.1":0,"13.2":0.00302,"13.3":0.0004,"13.4-13.7":0.00101,"14.0-14.4":0.00181,"14.5-14.8":0.00181,"15.0-15.1":0.00261,"15.2-15.3":0.00161,"15.4":0.00201,"15.5":0.00221,"15.6-15.8":0.03559,"16.0":0.00362,"16.1":0.00704,"16.2":0.00402,"16.3":0.00724,"16.4":0.00161,"16.5":0.00302,"16.6-16.7":0.04946,"17.0":0.00221,"17.1":0.00362,"17.2":0.00322,"17.3":0.00442,"17.4":0.00724,"17.5":0.01367,"17.6-17.7":0.03519,"18.0":0.00764,"18.1":0.01568,"18.2":0.00824,"18.3":0.02634,"18.4":0.01267,"18.5-18.7":0.40295,"26.0":0.02513,"26.1":0.0382,"26.2":0.2248,"26.3":0.9766,"26.4":0.03659,"26.5":0},P:{"21":0.0105,"22":0.0105,"23":0.0105,"24":0.0315,"25":0.0105,"26":0.021,"27":0.042,"28":0.09449,"29":0.91341,_:"4 20 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","5.0-5.4":0.0105,"6.2-6.4":0.021,"7.2-7.4":0.08399},I:{"0":0.01907,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":3.01879,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{"2.5":0.1209,_:"3.0-3.1"},R:{_:"0"},M:{"0":0.24816},Q:{"14.9":0.00636},O:{"0":2.06161},H:{all:0.01},L:{"0":67.13328}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/MX.js b/server/api/node_modules/caniuse-lite/data/regions/MX.js new file mode 100644 index 0000000..13bbac5 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/MX.js @@ -0,0 +1 @@ +module.exports={C:{"4":0.00499,"5":0.00999,"52":0.00499,"78":0.00499,"115":0.12483,"123":0.00499,"128":0.00499,"136":0.00499,"138":0.00999,"140":0.04494,"141":0.00499,"142":0.00499,"143":0.00499,"144":0.00499,"145":0.00999,"146":0.00999,"147":0.0699,"148":1.11344,"149":0.19972,"150":0.00499,_:"2 3 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 124 125 126 127 129 130 131 132 133 134 135 137 139 151 152 3.5 3.6"},D:{"49":0.00499,"53":0.00499,"76":0.01498,"79":0.00499,"80":0.00499,"87":0.01498,"88":0.00499,"91":0.00499,"93":0.00499,"97":0.00999,"103":0.20471,"104":0.1448,"105":0.1448,"106":0.14979,"107":0.14979,"108":0.1448,"109":0.89375,"110":0.1448,"111":0.17975,"112":0.45936,"114":0.02996,"116":0.40443,"117":0.1398,"118":0.00499,"119":0.00999,"120":0.15978,"121":0.00999,"122":0.0749,"123":0.02497,"124":0.15978,"125":0.03994,"126":0.02996,"127":0.01997,"128":0.10485,"129":0.00999,"130":0.01498,"131":0.33952,"132":0.03495,"133":0.32455,"134":0.03495,"135":0.03994,"136":0.02996,"137":0.03994,"138":0.26463,"139":0.17476,"140":0.08488,"141":0.08987,"142":0.1398,"143":0.49431,"144":0.87877,"145":12.60733,"146":10.36547,"147":0.05992,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 77 78 81 83 84 85 86 89 90 92 94 95 96 98 99 100 101 102 113 115 148 149 150"},F:{"95":0.03495,"96":0.02497,"124":0.00499,"125":0.00499,"126":0.01498,"127":0.72399,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00499,"92":0.00999,"109":0.03994,"114":0.00499,"122":0.00499,"124":0.00499,"128":0.00499,"130":0.00499,"131":0.00999,"133":0.00999,"134":0.00499,"135":0.00499,"136":0.00499,"137":0.00999,"138":0.00999,"139":0.01498,"140":0.00999,"141":0.01498,"142":0.02497,"143":0.30957,"144":0.11983,"145":3.17555,"146":2.89095,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 123 125 126 127 129 132"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 15.1 15.2-15.3 15.4 26.5 TP","5.1":0.00499,"12.1":0.00499,"13.1":0.00999,"14.1":0.01498,"15.5":0.00499,"15.6":0.0699,"16.0":0.00499,"16.1":0.00499,"16.2":0.00499,"16.3":0.01498,"16.4":0.00499,"16.5":0.01498,"16.6":0.08488,"17.0":0.00499,"17.1":0.05992,"17.2":0.00499,"17.3":0.00499,"17.4":0.00999,"17.5":0.02497,"17.6":0.12982,"18.0":0.00499,"18.1":0.01498,"18.2":0.00999,"18.3":0.01997,"18.4":0.01997,"18.5-18.7":0.04993,"26.0":0.02497,"26.1":0.03495,"26.2":0.18973,"26.3":0.86379,"26.4":0.03994},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00138,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00276,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.0069,"11.0-11.2":0.17393,"11.3-11.4":0.00414,"12.0-12.1":0,"12.2-12.5":0.05384,"13.0-13.1":0,"13.2":0.02071,"13.3":0.00276,"13.4-13.7":0.0069,"14.0-14.4":0.01242,"14.5-14.8":0.01242,"15.0-15.1":0.01795,"15.2-15.3":0.01104,"15.4":0.0138,"15.5":0.01518,"15.6-15.8":0.24434,"16.0":0.02485,"16.1":0.04832,"16.2":0.02761,"16.3":0.0497,"16.4":0.01104,"16.5":0.02071,"16.6-16.7":0.33959,"17.0":0.01518,"17.1":0.02485,"17.2":0.02209,"17.3":0.03037,"17.4":0.0497,"17.5":0.09387,"17.6-17.7":0.24158,"18.0":0.05246,"18.1":0.10767,"18.2":0.0566,"18.3":0.18084,"18.4":0.08697,"18.5-18.7":2.76638,"26.0":0.17255,"26.1":0.26228,"26.2":1.54332,"26.3":6.70475,"26.4":0.25124,"26.5":0},P:{"4":0.02094,"23":0.01047,"25":0.01047,"26":0.02094,"27":0.01047,"28":0.03141,"29":0.69097,_:"20 21 22 24 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.01047},I:{"0":0.06503,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00003},K:{"0":0.17525,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.20529},Q:{_:"14.9"},O:{"0":0.06008},H:{all:0},L:{"0":41.24822}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/MY.js b/server/api/node_modules/caniuse-lite/data/regions/MY.js new file mode 100644 index 0000000..06ccb39 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/MY.js @@ -0,0 +1 @@ +module.exports={C:{"112":0.00557,"115":0.08349,"123":0.00557,"125":0.04453,"127":0.0167,"136":0.01113,"138":0.01113,"140":0.01113,"142":0.00557,"143":0.00557,"145":0.00557,"146":0.01113,"147":0.06123,"148":0.84603,"149":0.16698,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 113 114 116 117 118 119 120 121 122 124 126 128 129 130 131 132 133 134 135 137 139 141 144 150 151 152 3.5 3.6"},D:{"39":0.00557,"40":0.00557,"41":0.00557,"42":0.00557,"43":0.00557,"44":0.00557,"45":0.00557,"46":0.00557,"47":0.00557,"48":0.00557,"49":0.00557,"50":0.00557,"51":0.00557,"52":0.00557,"53":0.00557,"54":0.00557,"55":0.01113,"56":0.00557,"57":0.00557,"58":0.00557,"59":0.00557,"60":0.00557,"68":0.00557,"70":0.00557,"75":0.00557,"76":0.00557,"77":0.00557,"78":0.00557,"79":0.00557,"84":0.00557,"87":0.01113,"88":0.0167,"91":0.02783,"92":0.00557,"93":0.12245,"96":0.00557,"97":0.00557,"99":0.00557,"102":0.00557,"103":1.4249,"104":0.02226,"105":0.0334,"106":0.0167,"107":0.02226,"108":0.0167,"109":0.86273,"110":0.0167,"111":0.02226,"112":0.02783,"113":0.00557,"114":0.03896,"115":0.00557,"116":0.11689,"117":0.02226,"118":0.01113,"119":0.01113,"120":0.0334,"121":0.18368,"122":0.10575,"123":0.02783,"124":0.05566,"125":0.0167,"126":0.10575,"127":0.0167,"128":0.03896,"129":0.02226,"130":0.0167,"131":0.12245,"132":0.05009,"133":0.08906,"134":0.0334,"135":0.06123,"136":0.05566,"137":0.15028,"138":0.19481,"139":0.08906,"140":0.05566,"141":0.06123,"142":0.30613,"143":0.38962,"144":1.28018,"145":17.76667,"146":14.66084,"147":0.03896,"148":0.00557,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 61 62 63 64 65 66 67 69 71 72 73 74 80 81 83 85 86 89 90 94 95 98 100 101 149 150"},F:{"77":0.00557,"95":0.03896,"96":0.04453,"126":0.0167,"127":0.32283,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.00557,"109":0.01113,"117":0.00557,"120":0.00557,"131":0.00557,"134":0.00557,"135":0.01113,"136":0.0167,"138":0.00557,"140":0.00557,"141":0.00557,"142":0.00557,"143":0.02783,"144":0.07792,"145":1.71433,"146":1.75329,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 118 119 121 122 123 124 125 126 127 128 129 130 132 133 137 139"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 26.5 TP","13.1":0.00557,"14.1":0.01113,"15.4":0.00557,"15.5":0.00557,"15.6":0.03896,"16.0":0.00557,"16.1":0.00557,"16.2":0.00557,"16.3":0.01113,"16.4":0.00557,"16.5":0.02226,"16.6":0.07236,"17.0":0.00557,"17.1":0.03896,"17.2":0.00557,"17.3":0.01113,"17.4":0.0334,"17.5":0.02783,"17.6":0.10019,"18.0":0.01113,"18.1":0.02783,"18.2":0.01113,"18.3":0.03896,"18.4":0.02226,"18.5-18.7":0.12802,"26.0":0.05566,"26.1":0.08349,"26.2":0.43971,"26.3":1.1132,"26.4":0.04453},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00174,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00348,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.0087,"11.0-11.2":0.21912,"11.3-11.4":0.00522,"12.0-12.1":0,"12.2-12.5":0.06782,"13.0-13.1":0,"13.2":0.02609,"13.3":0.00348,"13.4-13.7":0.0087,"14.0-14.4":0.01565,"14.5-14.8":0.01565,"15.0-15.1":0.02261,"15.2-15.3":0.01391,"15.4":0.01739,"15.5":0.01913,"15.6-15.8":0.30781,"16.0":0.0313,"16.1":0.06087,"16.2":0.03478,"16.3":0.0626,"16.4":0.01391,"16.5":0.02609,"16.6-16.7":0.4278,"17.0":0.01913,"17.1":0.0313,"17.2":0.02782,"17.3":0.03826,"17.4":0.0626,"17.5":0.11825,"17.6-17.7":0.30433,"18.0":0.06608,"18.1":0.13564,"18.2":0.0713,"18.3":0.22781,"18.4":0.10956,"18.5-18.7":3.48499,"26.0":0.21738,"26.1":0.33041,"26.2":1.94422,"26.3":8.44639,"26.4":0.3165,"26.5":0},P:{"21":0.01058,"23":0.01058,"25":0.01058,"26":0.01058,"27":0.01058,"28":0.03174,"29":1.11083,_:"4 20 22 24 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.01058},I:{"0":0.01329,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.4434,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.1951},Q:{"14.9":0.00443},O:{"0":0.57642},H:{all:0},L:{"0":31.80817}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/MZ.js b/server/api/node_modules/caniuse-lite/data/regions/MZ.js new file mode 100644 index 0000000..d71ee6e --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/MZ.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.00373,"88":0.00373,"113":0.04105,"115":0.1045,"124":0.02239,"127":0.00373,"128":0.00373,"133":0.00373,"135":0.00373,"136":0.0112,"137":0.00373,"138":0.00373,"139":0.00373,"140":0.0112,"143":0.00373,"145":0.00746,"146":0.00746,"147":0.05971,"148":0.76506,"149":0.12689,"150":0.00373,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 114 116 117 118 119 120 121 122 123 125 126 129 130 131 132 134 141 142 144 151 152 3.5 3.6"},D:{"11":0.00373,"49":0.00373,"53":0.00373,"55":0.00373,"58":0.00373,"61":0.00746,"64":0.00373,"65":0.00746,"67":0.00373,"69":0.00373,"70":0.00373,"71":0.00746,"72":0.00373,"73":0.01866,"74":0.00746,"75":0.00373,"77":0.00373,"78":0.00746,"79":0.00746,"80":0.00373,"81":0.00746,"83":0.00373,"85":0.00373,"86":0.02612,"87":0.01493,"88":0.00373,"89":0.00373,"90":0.0112,"91":0.00373,"92":0.00373,"93":0.00373,"94":0.00373,"95":0.00746,"97":0.00373,"98":0.00373,"100":0.00373,"101":0.00373,"102":0.00746,"103":0.00746,"104":0.00373,"105":0.00373,"106":0.0112,"107":0.00373,"108":0.00373,"109":0.86209,"110":0.00746,"111":0.0112,"112":0.00373,"114":0.56353,"116":0.13062,"117":0.00373,"119":0.0112,"120":0.02239,"121":0.00373,"122":0.01493,"123":0.00746,"124":0.02986,"125":0.00373,"126":0.02239,"127":0.0112,"128":0.05225,"129":0.00373,"130":0.01493,"131":0.07464,"132":0.00746,"133":0.04478,"134":0.01493,"135":0.03732,"136":0.02239,"137":0.02986,"138":0.0821,"139":0.10823,"140":0.02986,"141":0.03359,"142":0.07837,"143":0.13062,"144":0.33961,"145":6.23617,"146":5.42633,"147":0.0112,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 54 56 57 59 60 62 63 66 68 76 84 96 99 113 115 118 148 149 150"},F:{"42":0.00746,"79":0.00373,"81":0.00373,"86":0.00373,"92":0.00373,"93":0.00373,"94":0.00746,"95":0.1045,"96":0.03359,"113":0.00373,"114":0.00373,"117":0.00373,"119":0.00373,"120":0.00373,"123":0.00373,"124":0.01493,"125":0.00373,"126":0.04105,"127":0.31722,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 82 83 84 85 87 88 89 90 91 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 115 116 118 121 122 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.00746,"15":0.01866,"16":0.00746,"17":0.00746,"18":0.06718,"84":0.01493,"89":0.0112,"90":0.02239,"91":0.00373,"92":0.11196,"95":0.00373,"100":0.02239,"102":0.00373,"109":0.03732,"114":0.0112,"115":0.00746,"119":0.00373,"120":0.00746,"122":0.0112,"123":0.00373,"126":0.00373,"130":0.00373,"131":0.01866,"132":0.00373,"133":0.01493,"134":0.00373,"135":0.0112,"136":0.0112,"137":0.0112,"138":0.01493,"139":0.00746,"140":0.02612,"141":0.0112,"142":0.03359,"143":0.06344,"144":0.10076,"145":2.17202,"146":1.7615,_:"12 13 79 80 81 83 85 86 87 88 93 94 96 97 98 99 101 103 104 105 106 107 108 110 111 112 113 116 117 118 121 124 125 127 128 129"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 15.2-15.3 15.5 16.0 16.1 16.2 16.3 16.4 16.5 17.0 17.4 26.5 TP","5.1":0.01493,"10.1":0.00373,"11.1":0.00373,"12.1":0.00373,"13.1":0.01866,"14.1":0.02239,"15.1":0.01493,"15.4":0.00373,"15.6":0.02612,"16.6":0.07464,"17.1":0.00373,"17.2":0.00373,"17.3":0.00373,"17.5":0.00373,"17.6":0.04852,"18.0":0.00373,"18.1":0.00746,"18.2":0.00373,"18.3":0.0112,"18.4":0.00373,"18.5-18.7":0.0112,"26.0":0.0112,"26.1":0.01493,"26.2":0.03732,"26.3":0.13808,"26.4":0.00746},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00062,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00124,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00311,"11.0-11.2":0.07834,"11.3-11.4":0.00187,"12.0-12.1":0,"12.2-12.5":0.02425,"13.0-13.1":0,"13.2":0.00933,"13.3":0.00124,"13.4-13.7":0.00311,"14.0-14.4":0.0056,"14.5-14.8":0.0056,"15.0-15.1":0.00808,"15.2-15.3":0.00497,"15.4":0.00622,"15.5":0.00684,"15.6-15.8":0.11006,"16.0":0.01119,"16.1":0.02176,"16.2":0.01244,"16.3":0.02238,"16.4":0.00497,"16.5":0.00933,"16.6-16.7":0.15296,"17.0":0.00684,"17.1":0.01119,"17.2":0.00995,"17.3":0.01368,"17.4":0.02238,"17.5":0.04228,"17.6-17.7":0.10881,"18.0":0.02363,"18.1":0.0485,"18.2":0.02549,"18.3":0.08145,"18.4":0.03917,"18.5-18.7":1.24606,"26.0":0.07772,"26.1":0.11814,"26.2":0.69516,"26.3":3.02001,"26.4":0.11316,"26.5":0},P:{"20":0.02042,"21":0.01021,"22":0.04084,"23":0.02042,"24":0.19398,"25":0.1021,"26":0.05105,"27":0.16336,"28":0.30629,"29":1.93985,_:"4 5.0-5.4 6.2-6.4 8.2 10.1 12.0 13.0 14.0 15.0 16.0 17.0 18.0","7.2-7.4":0.08168,"9.2":0.01021,"11.1-11.2":0.01021,"19.0":0.02042},I:{"0":0.01252,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":3.26816,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.03732,_:"6 7 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{"2.5":0.11909,_:"3.0-3.1"},R:{_:"0"},M:{"0":0.18804},Q:{"14.9":0.05641},O:{"0":0.3322},H:{all:0.01},L:{"0":63.87908}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/NA.js b/server/api/node_modules/caniuse-lite/data/regions/NA.js new file mode 100644 index 0000000..55f9eae --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/NA.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.00434,"52":0.02168,"102":0.02601,"112":0.00434,"115":0.13005,"123":0.00434,"127":0.00434,"140":0.01734,"146":0.00434,"147":0.07803,"148":1.20947,"149":0.24276,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 103 104 105 106 107 108 109 110 111 113 114 116 117 118 119 120 121 122 124 125 126 128 129 130 131 132 133 134 135 136 137 138 139 141 142 143 144 145 150 151 152 3.5 3.6"},D:{"49":0.06069,"52":0.00434,"69":0.00434,"70":0.00434,"72":0.00434,"73":0.00434,"74":0.01734,"78":0.00434,"81":0.00434,"86":0.00867,"87":0.00434,"91":0.00434,"93":0.00434,"95":0.00434,"97":0.00434,"98":0.00867,"103":0.00867,"104":0.00434,"106":0.00867,"109":0.41183,"111":0.03035,"114":0.02168,"116":0.03468,"117":0.00434,"119":0.00867,"120":0.00867,"121":0.00867,"122":0.10838,"123":0.00867,"124":0.00434,"125":0.00434,"126":0.01734,"127":0.00867,"128":0.04335,"129":0.00867,"130":0.00867,"131":0.02601,"132":0.00434,"133":0.00867,"134":0.0867,"135":0.01734,"136":0.01301,"137":0.01301,"138":0.06936,"139":0.19508,"140":0.01734,"141":0.03035,"142":0.03035,"143":0.0867,"144":0.26877,"145":8.98646,"146":7.08773,"147":0.01301,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 71 75 76 77 79 80 83 84 85 88 89 90 92 94 96 99 100 101 102 105 107 108 110 112 113 115 118 148 149 150"},F:{"86":0.00434,"95":0.06069,"96":0.02168,"113":0.00434,"114":0.00434,"123":0.00434,"126":0.12572,"127":0.37715,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 115 116 117 118 119 120 121 122 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.00434,"15":0.00434,"16":0.01301,"17":0.00434,"18":0.06069,"90":0.00434,"92":0.0737,"100":0.00434,"107":0.00434,"109":0.01301,"122":0.02168,"123":0.00434,"125":0.00434,"129":0.01734,"132":0.01301,"133":0.01301,"134":0.01734,"135":0.00867,"136":0.00434,"137":0.00867,"138":0.00867,"139":0.02168,"140":0.02601,"141":0.03035,"142":0.02168,"143":0.0867,"144":0.11271,"145":3.00849,"146":2.96514,_:"12 13 79 80 81 83 84 85 86 87 88 89 91 93 94 95 96 97 98 99 101 102 103 104 105 106 108 110 111 112 113 114 115 116 117 118 119 120 121 124 126 127 128 130 131"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 11.1 12.1 15.1 15.2-15.3 15.4 15.5 16.0 16.3 16.5 26.5 TP","10.1":0.00434,"13.1":0.01734,"14.1":0.00434,"15.6":0.0867,"16.1":0.00434,"16.2":0.00434,"16.4":0.00434,"16.6":0.12572,"17.0":0.01734,"17.1":0.00867,"17.2":0.01301,"17.3":0.00434,"17.4":0.00867,"17.5":0.01734,"17.6":0.06503,"18.0":0.00434,"18.1":0.00867,"18.2":0.01301,"18.3":0.00434,"18.4":0.01734,"18.5-18.7":0.04769,"26.0":0.0737,"26.1":0.01734,"26.2":0.20808,"26.3":0.68493,"26.4":0.03902},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00087,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00174,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00436,"11.0-11.2":0.10978,"11.3-11.4":0.00261,"12.0-12.1":0,"12.2-12.5":0.03398,"13.0-13.1":0,"13.2":0.01307,"13.3":0.00174,"13.4-13.7":0.00436,"14.0-14.4":0.00784,"14.5-14.8":0.00784,"15.0-15.1":0.01133,"15.2-15.3":0.00697,"15.4":0.00871,"15.5":0.00958,"15.6-15.8":0.15422,"16.0":0.01568,"16.1":0.03049,"16.2":0.01743,"16.3":0.03137,"16.4":0.00697,"16.5":0.01307,"16.6-16.7":0.21433,"17.0":0.00958,"17.1":0.01568,"17.2":0.01394,"17.3":0.01917,"17.4":0.03137,"17.5":0.05925,"17.6-17.7":0.15247,"18.0":0.03311,"18.1":0.06796,"18.2":0.03572,"18.3":0.11414,"18.4":0.05489,"18.5-18.7":1.74604,"26.0":0.10891,"26.1":0.16554,"26.2":0.97409,"26.3":4.23179,"26.4":0.15857,"26.5":0},P:{"4":0.02038,"23":0.02038,"24":0.04076,"25":0.01019,"26":0.03057,"27":0.13246,"28":0.15284,"29":4.04522,_:"20 21 22 5.0-5.4 6.2-6.4 9.2 10.1 11.1-11.2 12.0 15.0 16.0 19.0","7.2-7.4":0.08152,"8.2":0.01019,"13.0":0.02038,"14.0":0.02038,"17.0":0.01019,"18.0":0.01019},I:{"0":0.01132,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":1.36527,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.41355},Q:{_:"14.9"},O:{"0":0.3399},H:{all:0},L:{"0":53.5362}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/NC.js b/server/api/node_modules/caniuse-lite/data/regions/NC.js new file mode 100644 index 0000000..5f1aa90 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/NC.js @@ -0,0 +1 @@ +module.exports={C:{"48":0.00352,"53":0.7044,"102":0.00352,"115":0.13384,"117":0.00352,"124":0.00352,"128":0.17962,"131":0.00352,"136":0.00704,"137":0.00352,"140":0.10566,"141":0.04226,"144":0.01761,"145":0.00352,"146":0.10566,"147":0.1127,"148":2.55345,"149":0.64805,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 52 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 103 104 105 106 107 108 109 110 111 112 113 114 116 118 119 120 121 122 123 125 126 127 129 130 132 133 134 135 138 139 142 143 150 151 152 3.5 3.6"},D:{"75":0.00352,"87":0.00352,"93":0.00352,"103":0.00704,"108":0.01057,"109":0.2888,"110":0.02113,"113":0.00352,"115":0.00352,"116":0.09157,"120":0.00352,"121":0.01057,"122":0.00352,"124":0.00704,"126":0.00352,"127":0.00352,"128":0.05987,"129":0.03522,"131":0.01409,"135":0.00704,"136":0.00704,"137":0.00352,"138":0.04931,"139":0.08453,"140":0.00352,"141":0.00352,"142":0.02818,"143":0.13384,"144":0.13384,"145":5.08577,"146":5.52602,"147":0.01761,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 76 77 78 79 80 81 83 84 85 86 88 89 90 91 92 94 95 96 97 98 99 100 101 102 104 105 106 107 111 112 114 117 118 119 123 125 130 132 133 134 148 149 150"},F:{"46":0.00352,"48":0.00704,"95":0.00704,"96":0.00704,"126":0.10214,"127":0.66214,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"16":0.00352,"92":0.00704,"109":0.00352,"114":0.00704,"119":0.01409,"120":0.00352,"121":0.00352,"122":0.00704,"126":0.00704,"130":0.00352,"132":0.01057,"133":0.00352,"135":0.00704,"136":0.00704,"137":0.00352,"138":0.13031,"139":0.01761,"140":0.00704,"141":0.01057,"142":1.5215,"143":0.02465,"144":0.04579,"145":3.77911,"146":3.99395,_:"12 13 14 15 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 123 124 125 127 128 129 131 134"},E:{"14":0.01409,"15":0.00352,_:"4 5 6 7 8 9 10 11 12 13 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 15.2-15.3 15.4 16.2 17.0 26.5 TP","12.1":0.00352,"13.1":0.00704,"14.1":0.00704,"15.1":0.00352,"15.5":0.00352,"15.6":0.16553,"16.0":0.00352,"16.1":0.03522,"16.3":0.00352,"16.4":0.00352,"16.5":0.00704,"16.6":0.07748,"17.1":0.10566,"17.2":0.00352,"17.3":0.01761,"17.4":0.00352,"17.5":0.01409,"17.6":0.15497,"18.0":0.00352,"18.1":0.00352,"18.2":0.01057,"18.3":0.02113,"18.4":0.00704,"18.5-18.7":0.0634,"26.0":0.01761,"26.1":0.11975,"26.2":0.33107,"26.3":1.16226,"26.4":0.00704},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00109,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00219,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00547,"11.0-11.2":0.13786,"11.3-11.4":0.00328,"12.0-12.1":0,"12.2-12.5":0.04267,"13.0-13.1":0,"13.2":0.01641,"13.3":0.00219,"13.4-13.7":0.00547,"14.0-14.4":0.00985,"14.5-14.8":0.00985,"15.0-15.1":0.01422,"15.2-15.3":0.00875,"15.4":0.01094,"15.5":0.01204,"15.6-15.8":0.19366,"16.0":0.01969,"16.1":0.03829,"16.2":0.02188,"16.3":0.03939,"16.4":0.00875,"16.5":0.01641,"16.6-16.7":0.26916,"17.0":0.01204,"17.1":0.01969,"17.2":0.01751,"17.3":0.02407,"17.4":0.03939,"17.5":0.0744,"17.6-17.7":0.19147,"18.0":0.04158,"18.1":0.08534,"18.2":0.04486,"18.3":0.14333,"18.4":0.06893,"18.5-18.7":2.19264,"26.0":0.13677,"26.1":0.20789,"26.2":1.22324,"26.3":5.31421,"26.4":0.19913,"26.5":0},P:{"24":0.0211,"25":0.01055,"26":0.05275,"27":0.03165,"28":0.14771,"29":2.22619,_:"4 20 21 22 23 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.01055},I:{"0":0.09708,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00005},K:{"0":0.12308,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.56359},Q:{_:"14.9"},O:{"0":0.00648},H:{all:0},L:{"0":55.00002}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/NE.js b/server/api/node_modules/caniuse-lite/data/regions/NE.js new file mode 100644 index 0000000..e4ab561 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/NE.js @@ -0,0 +1 @@ +module.exports={C:{"50":0.00198,"56":0.00198,"57":0.01387,"65":0.00991,"67":0.00198,"69":0.00198,"72":0.00198,"77":0.00198,"86":0.00198,"91":0.00198,"115":0.07928,"126":0.00198,"127":0.00991,"128":0.00198,"136":0.00396,"140":0.00793,"142":0.00991,"144":0.00198,"145":0.00595,"146":0.01784,"147":0.06144,"148":0.93154,"149":0.12487,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 51 52 53 54 55 58 59 60 61 62 63 64 66 68 70 71 73 74 75 76 78 79 80 81 82 83 84 85 87 88 89 90 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 129 130 131 132 133 134 135 137 138 139 141 143 150 151 152 3.5 3.6"},D:{"56":0.00198,"58":0.00595,"61":0.00198,"64":0.00595,"67":0.00793,"68":0.24379,"69":0.01982,"70":0.00793,"72":0.07135,"74":0.00198,"79":0.00991,"80":0.00396,"81":0.00396,"83":0.00198,"84":0.00595,"86":0.00396,"87":0.00198,"88":0.00198,"90":0.00198,"94":0.00396,"95":0.00595,"98":0.00198,"100":0.00198,"102":0.00198,"103":0.01784,"108":0.00198,"109":0.17442,"110":0.00198,"113":0.00396,"114":0.01189,"115":0.00793,"116":0.00991,"119":0.00396,"120":0.0218,"122":0.00595,"123":0.01189,"125":0.00198,"126":0.00396,"127":0.00396,"128":0.0218,"129":0.00198,"130":0.00991,"131":0.03568,"132":0.00595,"135":0.00991,"136":0.00198,"137":0.01982,"138":0.08523,"139":0.03964,"140":0.02378,"141":0.00991,"142":0.01784,"143":0.08721,"144":0.35081,"145":3.09787,"146":1.76596,"147":0.03568,"148":0.00198,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 57 59 60 62 63 65 66 71 73 75 76 77 78 85 89 91 92 93 96 97 99 101 104 105 106 107 111 112 117 118 121 124 133 134 149 150"},F:{"37":0.00198,"53":0.00198,"64":0.00198,"79":0.00595,"82":0.00198,"94":0.00198,"95":0.04757,"96":0.01586,"124":0.00198,"125":0.00595,"126":0.05351,"127":0.27153,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 54 55 56 57 58 60 62 63 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 83 84 85 86 87 88 89 90 91 92 93 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.00396,"16":0.00198,"17":0.01586,"18":0.03171,"84":0.00198,"89":0.00991,"90":0.00198,"92":0.0436,"100":0.01586,"104":0.00198,"109":0.03964,"114":0.00198,"122":0.00396,"124":0.00198,"133":0.00198,"138":0.00198,"139":0.00793,"140":0.00991,"141":0.01586,"142":0.16252,"143":0.08126,"144":0.09514,"145":0.90379,"146":0.52721,_:"12 13 15 79 80 81 83 85 86 87 88 91 93 94 95 96 97 98 99 101 102 103 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 123 125 126 127 128 129 130 131 132 134 135 136 137"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 12.1 13.1 14.1 15.1 15.2-15.3 15.4 15.5 15.6 16.0 16.1 16.2 16.3 16.4 16.5 17.0 17.1 17.2 17.3 17.4 17.5 18.0 18.1 18.2 18.4 26.1 26.5 TP","5.1":0.00991,"11.1":0.00198,"16.6":0.00595,"17.6":0.01784,"18.3":0.00198,"18.5-18.7":0.02775,"26.0":0.00396,"26.2":0.00198,"26.3":0.02378,"26.4":0.00793},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00023,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00045,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00113,"11.0-11.2":0.02859,"11.3-11.4":0.00068,"12.0-12.1":0,"12.2-12.5":0.00885,"13.0-13.1":0,"13.2":0.0034,"13.3":0.00045,"13.4-13.7":0.00113,"14.0-14.4":0.00204,"14.5-14.8":0.00204,"15.0-15.1":0.00295,"15.2-15.3":0.00182,"15.4":0.00227,"15.5":0.0025,"15.6-15.8":0.04016,"16.0":0.00408,"16.1":0.00794,"16.2":0.00454,"16.3":0.00817,"16.4":0.00182,"16.5":0.0034,"16.6-16.7":0.05582,"17.0":0.0025,"17.1":0.00408,"17.2":0.00363,"17.3":0.00499,"17.4":0.00817,"17.5":0.01543,"17.6-17.7":0.03971,"18.0":0.00862,"18.1":0.0177,"18.2":0.0093,"18.3":0.02973,"18.4":0.0143,"18.5-18.7":0.45473,"26.0":0.02836,"26.1":0.04311,"26.2":0.25368,"26.3":1.1021,"26.4":0.0413,"26.5":0},P:{"21":0.0101,"24":0.0101,"25":0.0202,"26":0.0303,"27":0.0404,"28":0.0707,"29":0.53533,_:"4 20 22 23 5.0-5.4 6.2-6.4 8.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.0505,"9.2":0.0101},I:{"0":0.01602,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":3.36161,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{"2.5":0.00802,_:"3.0-3.1"},R:{_:"0"},M:{"0":0.06414},Q:{"14.9":0.03207},O:{"0":0.68153},H:{all:0.03},L:{"0":81.1137}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/NF.js b/server/api/node_modules/caniuse-lite/data/regions/NF.js new file mode 100644 index 0000000..fab31d2 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/NF.js @@ -0,0 +1 @@ +module.exports={C:{_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 3.5 3.6"},D:{"145":1.31039,"146":0.43726,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 147 148 149 150"},F:{_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"145":3.4925,"146":3.4925,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 15.2-15.3 15.4 15.5 15.6 16.0 16.1 16.2 16.3 16.4 16.5 16.6 17.0 17.2 17.3 17.4 17.5 17.6 18.0 18.1 18.2 18.3 18.4 18.5-18.7 26.0 26.1 26.2 26.4 26.5 TP","17.1":0.43726,"26.3":1.74625},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00364,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00727,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.01818,"11.0-11.2":0.4582,"11.3-11.4":0.01091,"12.0-12.1":0,"12.2-12.5":0.14182,"13.0-13.1":0,"13.2":0.05455,"13.3":0.00727,"13.4-13.7":0.01818,"14.0-14.4":0.03273,"14.5-14.8":0.03273,"15.0-15.1":0.04727,"15.2-15.3":0.02909,"15.4":0.03636,"15.5":0.04,"15.6-15.8":0.64366,"16.0":0.06546,"16.1":0.12728,"16.2":0.07273,"16.3":0.13091,"16.4":0.02909,"16.5":0.05455,"16.6-16.7":0.89458,"17.0":0.04,"17.1":0.06546,"17.2":0.05818,"17.3":0.08,"17.4":0.13091,"17.5":0.24728,"17.6-17.7":0.63639,"18.0":0.13819,"18.1":0.28365,"18.2":0.1491,"18.3":0.47638,"18.4":0.2291,"18.5-18.7":7.28752,"26.0":0.45456,"26.1":0.69093,"26.2":4.06559,"26.3":17.66242,"26.4":0.66184,"26.5":0},P:{"29":0.88611,_:"4 20 21 22 23 24 25 26 27 28 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{_:"0"},Q:{_:"14.9"},O:{_:"0"},H:{all:0},L:{"0":51.39689}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/NG.js b/server/api/node_modules/caniuse-lite/data/regions/NG.js new file mode 100644 index 0000000..f5d1481 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/NG.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.00326,"65":0.00326,"72":0.00326,"109":0.00326,"115":0.44621,"127":0.00651,"128":0.00326,"135":0.00326,"140":0.01629,"143":0.00326,"144":0.00326,"145":0.00651,"146":0.00651,"147":0.04886,"148":0.46575,"149":0.08143,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 66 67 68 69 70 71 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 129 130 131 132 133 134 136 137 138 139 141 142 150 151 152 3.5 3.6"},D:{"49":0.00326,"62":0.01629,"63":0.00651,"64":0.00326,"65":0.00326,"68":0.00326,"69":0.00326,"70":0.01954,"71":0.00326,"74":0.00326,"75":0.00326,"76":0.00326,"77":0.00326,"79":0.01303,"80":0.00977,"81":0.00326,"83":0.00326,"86":0.00651,"87":0.00651,"88":0.00326,"90":0.00326,"91":0.00326,"92":0.00326,"93":0.00977,"95":0.00977,"98":0.00326,"102":0.00326,"103":0.05211,"104":0.02931,"105":0.0456,"106":0.03257,"107":0.02606,"108":0.02931,"109":0.47552,"110":0.02606,"111":0.03257,"112":0.06514,"114":0.00977,"115":0.00326,"116":0.07491,"117":0.02606,"118":0.00326,"119":0.0228,"120":0.03257,"121":0.00326,"122":0.01303,"123":0.00651,"124":0.04234,"125":0.00326,"126":0.01954,"127":0.00977,"128":0.02606,"129":0.00977,"130":0.00977,"131":0.10748,"132":0.01303,"133":0.06514,"134":0.01303,"135":0.01954,"136":0.02606,"137":0.02606,"138":0.16611,"139":0.04886,"140":0.02931,"141":0.04234,"142":0.0684,"143":0.15308,"144":0.33221,"145":4.56957,"146":2.91827,"147":0.01629,"148":0.00326,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 66 67 72 73 78 84 85 89 94 96 97 99 100 101 113 149 150"},F:{"37":0.00977,"79":0.00326,"85":0.00326,"86":0.00326,"87":0.00977,"88":0.00651,"89":0.00651,"90":0.01954,"91":0.01303,"92":0.02931,"93":0.08468,"94":0.10097,"95":0.41038,"96":0.2345,"97":0.00326,"114":0.00326,"125":0.00326,"126":0.02931,"127":0.18565,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 120 121 122 123 124 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.02931,"89":0.00326,"90":0.00651,"92":0.0228,"100":0.00651,"103":0.00326,"109":0.00977,"114":0.04886,"122":0.00651,"128":0.00326,"131":0.00651,"133":0.00326,"135":0.00326,"136":0.00326,"137":0.00326,"138":0.00326,"139":0.00326,"140":0.00651,"141":0.00651,"142":0.00977,"143":0.04234,"144":0.06188,"145":0.74585,"146":0.55369,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 91 93 94 95 96 97 98 99 101 102 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 123 124 125 126 127 129 130 132 134"},E:{"11":0.00326,"13":0.00651,"14":0.00326,_:"4 5 6 7 8 9 10 12 15 3.1 3.2 6.1 7.1 9.1 10.1 12.1 15.1 15.2-15.3 15.4 16.0 16.1 16.4 17.0 17.2 17.3 26.5 TP","5.1":0.00326,"11.1":0.00326,"13.1":0.01629,"14.1":0.00651,"15.5":0.00326,"15.6":0.02931,"16.2":0.00326,"16.3":0.00326,"16.5":0.00326,"16.6":0.02606,"17.1":0.00651,"17.4":0.00326,"17.5":0.00326,"17.6":0.02606,"18.0":0.00326,"18.1":0.00977,"18.2":0.00326,"18.3":0.00977,"18.4":0.00326,"18.5-18.7":0.01954,"26.0":0.00977,"26.1":0.01303,"26.2":0.0456,"26.3":0.10422,"26.4":0.00326},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00071,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00142,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00354,"11.0-11.2":0.08929,"11.3-11.4":0.00213,"12.0-12.1":0,"12.2-12.5":0.02764,"13.0-13.1":0,"13.2":0.01063,"13.3":0.00142,"13.4-13.7":0.00354,"14.0-14.4":0.00638,"14.5-14.8":0.00638,"15.0-15.1":0.00921,"15.2-15.3":0.00567,"15.4":0.00709,"15.5":0.0078,"15.6-15.8":0.12544,"16.0":0.01276,"16.1":0.0248,"16.2":0.01417,"16.3":0.02551,"16.4":0.00567,"16.5":0.01063,"16.6-16.7":0.17434,"17.0":0.0078,"17.1":0.01276,"17.2":0.01134,"17.3":0.01559,"17.4":0.02551,"17.5":0.04819,"17.6-17.7":0.12402,"18.0":0.02693,"18.1":0.05528,"18.2":0.02906,"18.3":0.09284,"18.4":0.04465,"18.5-18.7":1.42021,"26.0":0.08859,"26.1":0.13465,"26.2":0.79231,"26.3":3.4421,"26.4":0.12898,"26.5":0},P:{"21":0.01005,"22":0.01005,"24":0.03015,"25":0.03015,"26":0.0201,"27":0.07035,"28":0.16079,"29":0.63313,_:"4 20 23 5.0-5.4 6.2-6.4 8.2 10.1 12.0 13.0 14.0 15.0 17.0 18.0 19.0","7.2-7.4":0.0201,"9.2":0.0402,"11.1-11.2":0.01005,"16.0":0.01005},I:{"0":0.01347,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":17.5962,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{"2.5":0.00674,_:"3.0-3.1"},R:{_:"0"},M:{"0":0.26298},Q:{_:"14.9"},O:{"0":0.39109},H:{all:0.03},L:{"0":58.44168}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/NI.js b/server/api/node_modules/caniuse-lite/data/regions/NI.js new file mode 100644 index 0000000..148a64b --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/NI.js @@ -0,0 +1 @@ +module.exports={C:{"4":0.00554,"5":0.05541,"115":0.02771,"128":0.01108,"138":0.01108,"140":0.00554,"142":0.02216,"143":0.00554,"144":0.00554,"145":0.00554,"146":0.01108,"147":0.04987,"148":0.85886,"149":0.21056,_:"2 3 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 129 130 131 132 133 134 135 136 137 139 141 150 151 152 3.5 3.6"},D:{"65":0.00554,"69":0.01108,"73":0.00554,"75":0.00554,"79":0.01108,"83":0.00554,"86":0.00554,"87":0.01662,"92":0.00554,"93":0.00554,"95":0.00554,"97":0.01108,"98":0.03879,"101":0.00554,"102":0.00554,"103":0.58735,"104":0.56518,"105":0.54856,"106":0.55964,"107":0.54856,"108":0.56518,"109":0.89764,"110":0.5541,"111":0.57626,"112":1.51269,"114":0.02216,"115":0.00554,"116":1.0805,"117":0.5264,"119":0.01108,"120":0.5541,"121":0.00554,"122":0.01108,"123":0.00554,"124":0.57626,"125":0.01662,"126":0.01662,"127":0.01662,"128":0.01662,"129":0.01108,"130":0.01108,"131":1.15807,"132":0.02216,"133":1.12482,"134":0.02771,"135":0.02216,"136":0.01108,"137":0.01108,"138":0.07203,"139":0.07757,"140":0.01662,"141":0.12744,"142":0.04433,"143":1.03617,"144":0.81453,"145":10.69967,"146":7.70199,"147":0.01108,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 66 67 68 70 71 72 74 76 77 78 80 81 84 85 88 89 90 91 94 96 99 100 113 118 148 149 150"},F:{"54":0.00554,"79":0.00554,"87":0.03879,"95":0.04987,"96":0.2438,"122":0.00554,"125":0.01662,"126":0.01108,"127":0.51531,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 85 86 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 123 124 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.02216,"100":0.01108,"109":0.00554,"114":0.00554,"122":0.01108,"123":0.00554,"127":0.00554,"130":0.00554,"133":0.00554,"135":0.00554,"136":0.01108,"137":0.00554,"138":0.00554,"139":0.02216,"140":0.00554,"141":0.01108,"142":0.03879,"143":0.15515,"144":0.08866,"145":2.69293,"146":2.64306,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 124 125 126 128 129 131 132 134"},E:{"13":0.00554,_:"4 5 6 7 8 9 10 11 12 14 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.2-15.3 15.4 15.5 16.0 16.1 16.3 16.4 16.5 17.0 17.2 17.3 17.4 18.1 26.5 TP","5.1":0.06649,"15.1":0.01662,"15.6":0.01108,"16.2":0.00554,"16.6":0.04987,"17.1":0.08312,"17.5":0.01108,"17.6":0.0942,"18.0":0.01108,"18.2":0.06095,"18.3":0.01108,"18.4":0.01108,"18.5-18.7":0.06649,"26.0":0.02216,"26.1":0.03879,"26.2":0.27151,"26.3":0.46544,"26.4":0.01662},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00067,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00133,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00334,"11.0-11.2":0.08405,"11.3-11.4":0.002,"12.0-12.1":0,"12.2-12.5":0.02602,"13.0-13.1":0,"13.2":0.01001,"13.3":0.00133,"13.4-13.7":0.00334,"14.0-14.4":0.006,"14.5-14.8":0.006,"15.0-15.1":0.00867,"15.2-15.3":0.00534,"15.4":0.00667,"15.5":0.00734,"15.6-15.8":0.11807,"16.0":0.01201,"16.1":0.02335,"16.2":0.01334,"16.3":0.02401,"16.4":0.00534,"16.5":0.01001,"16.6-16.7":0.1641,"17.0":0.00734,"17.1":0.01201,"17.2":0.01067,"17.3":0.01468,"17.4":0.02401,"17.5":0.04536,"17.6-17.7":0.11674,"18.0":0.02535,"18.1":0.05203,"18.2":0.02735,"18.3":0.08739,"18.4":0.04203,"18.5-18.7":1.3368,"26.0":0.08338,"26.1":0.12674,"26.2":0.74578,"26.3":3.23994,"26.4":0.12141,"26.5":0},P:{"4":0.02082,"22":0.02082,"23":0.01041,"24":0.04164,"25":0.03123,"26":0.05205,"27":0.09369,"28":0.16656,"29":2.13407,_:"20 21 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 18.0","7.2-7.4":0.08328,"17.0":0.01041,"19.0":0.01041},I:{"0":0.04009,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.33443,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.20957},Q:{"14.9":0.00892},O:{"0":0.10256},H:{all:0},L:{"0":45.44637}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/NL.js b/server/api/node_modules/caniuse-lite/data/regions/NL.js new file mode 100644 index 0000000..ba5a293 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/NL.js @@ -0,0 +1 @@ +module.exports={C:{"38":0.00958,"43":0.00958,"44":0.0383,"45":0.00958,"50":0.00479,"51":0.00479,"52":0.00958,"53":0.00479,"55":0.00479,"56":0.01436,"60":0.00479,"66":0.00479,"78":0.00958,"88":0.00479,"115":0.11012,"121":0.00479,"128":0.01436,"133":0.00479,"134":0.00479,"135":0.03352,"136":0.01436,"138":0.00479,"139":0.00479,"140":0.47401,"141":0.00479,"143":0.00479,"144":0.00958,"145":0.00958,"146":0.01436,"147":0.10534,"148":1.42682,"149":0.31122,"150":0.00479,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 46 47 48 49 54 57 58 59 61 62 63 64 65 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 122 123 124 125 126 127 129 130 131 132 137 142 151 152 3.5 3.6"},D:{"39":0.30643,"40":0.30164,"41":0.30643,"42":0.30643,"43":0.30643,"44":0.30164,"45":0.30643,"46":0.30643,"47":0.31122,"48":0.41177,"49":0.33516,"50":0.30643,"51":0.30643,"52":0.30643,"53":0.30643,"54":0.30643,"55":0.30643,"56":0.30643,"57":0.30643,"58":0.30643,"59":0.30643,"60":0.30164,"87":0.00479,"92":0.00479,"93":0.01915,"103":0.09576,"104":0.02394,"105":0.02394,"106":0.02394,"107":0.06224,"108":0.02873,"109":0.29686,"110":0.01915,"111":0.02394,"112":0.02394,"113":0.00479,"114":0.01436,"115":0.00479,"116":0.06703,"117":0.02873,"118":0.00958,"119":0.00958,"120":0.18194,"121":0.01436,"122":0.0383,"123":0.00479,"124":0.02873,"125":0.00479,"126":0.0383,"127":0.00958,"128":0.05746,"129":0.01436,"130":0.03352,"131":0.06224,"132":0.03352,"133":0.04788,"134":0.33995,"135":0.04309,"136":0.02873,"137":0.05267,"138":0.13885,"139":0.07182,"140":0.04788,"141":0.49795,"142":0.28249,"143":0.3974,"144":0.78523,"145":9.0158,"146":6.57392,"147":0.02394,"148":0.00479,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 88 89 90 91 94 95 96 97 98 99 100 101 102 149 150"},F:{"46":0.00479,"94":0.00479,"95":0.04788,"96":0.08618,"113":0.00479,"125":0.00479,"126":0.01436,"127":0.42134,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 114 115 116 117 118 119 120 121 122 123 124 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"94":0.00479,"109":0.06703,"119":0.00479,"120":0.00479,"131":0.00479,"132":0.00479,"133":0.00479,"134":0.00479,"135":0.00479,"136":0.00479,"137":0.00479,"138":0.01436,"139":0.00479,"140":0.00958,"141":0.00479,"142":0.02873,"143":0.07182,"144":0.19152,"145":3.1505,"146":3.0308,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 121 122 123 124 125 126 127 128 129 130"},E:{"8":0.00479,"9":0.01436,_:"4 5 6 7 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 15.1 15.4 26.5 TP","11.1":0.00479,"12.1":0.00479,"13.1":0.01436,"14.1":0.00958,"15.2-15.3":0.00479,"15.5":0.00479,"15.6":0.11012,"16.0":0.00958,"16.1":0.01436,"16.2":0.00958,"16.3":0.01436,"16.4":0.01915,"16.5":0.00958,"16.6":0.19631,"17.0":0.00479,"17.1":0.19152,"17.2":0.00958,"17.3":0.01436,"17.4":0.02394,"17.5":0.03352,"17.6":0.31122,"18.0":0.01915,"18.1":0.01915,"18.2":0.01436,"18.3":0.04309,"18.4":0.01915,"18.5-18.7":0.06224,"26.0":0.02873,"26.1":0.04309,"26.2":0.33995,"26.3":1.69495,"26.4":0.06703},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00149,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00298,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00744,"11.0-11.2":0.18756,"11.3-11.4":0.00447,"12.0-12.1":0,"12.2-12.5":0.05805,"13.0-13.1":0,"13.2":0.02233,"13.3":0.00298,"13.4-13.7":0.00744,"14.0-14.4":0.0134,"14.5-14.8":0.0134,"15.0-15.1":0.01935,"15.2-15.3":0.01191,"15.4":0.01489,"15.5":0.01637,"15.6-15.8":0.26347,"16.0":0.02679,"16.1":0.0521,"16.2":0.02977,"16.3":0.05359,"16.4":0.01191,"16.5":0.02233,"16.6-16.7":0.36618,"17.0":0.01637,"17.1":0.02679,"17.2":0.02382,"17.3":0.03275,"17.4":0.05359,"17.5":0.10122,"17.6-17.7":0.2605,"18.0":0.05656,"18.1":0.11611,"18.2":0.06103,"18.3":0.195,"18.4":0.09378,"18.5-18.7":2.98305,"26.0":0.18607,"26.1":0.28282,"26.2":1.6642,"26.3":7.22987,"26.4":0.27092,"26.5":0},P:{"4":0.01044,"21":0.01044,"22":0.01044,"23":0.01044,"24":0.01044,"25":0.01044,"26":0.04175,"27":0.02087,"28":0.06262,"29":3.8827,_:"20 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.04166,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.49514,_:"10 11 12 11.1 11.5 12.1"},A:{"9":0.01077,"11":0.03232,_:"6 7 8 10 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.61502},Q:{"14.9":0.00521},O:{"0":0.3023},H:{all:0},L:{"0":35.00375}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/NO.js b/server/api/node_modules/caniuse-lite/data/regions/NO.js new file mode 100644 index 0000000..161654c --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/NO.js @@ -0,0 +1 @@ +module.exports={C:{"52":0.0049,"59":0.03918,"60":0.0049,"78":0.0049,"113":0.0049,"115":0.09796,"128":0.0098,"136":0.0049,"140":0.30857,"142":0.0049,"143":0.0049,"145":0.0049,"146":0.0098,"147":0.07347,"148":1.19021,"149":0.18612,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 114 116 117 118 119 120 121 122 123 124 125 126 127 129 130 131 132 133 134 135 137 138 139 141 144 150 151 152 3.5 3.6"},D:{"66":0.01469,"84":0.0049,"87":0.0049,"92":0.0049,"103":0.01469,"104":0.0049,"106":0.0049,"109":0.11265,"111":0.0049,"112":0.0049,"114":0.0098,"116":0.07347,"118":0.69552,"120":0.0049,"121":0.0049,"122":0.01959,"123":0.0049,"124":0.0098,"125":0.0049,"126":0.02939,"127":0.01469,"128":0.04408,"129":0.0049,"130":0.02449,"131":0.02449,"132":0.0098,"133":0.01959,"134":0.02449,"135":0.02939,"136":0.02939,"137":0.02939,"138":0.15674,"139":0.02449,"140":0.03429,"141":0.08816,"142":0.09306,"143":0.23021,"144":0.83266,"145":8.8262,"146":6.69557,"147":0.01959,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 85 86 88 89 90 91 93 94 95 96 97 98 99 100 101 102 105 107 108 110 113 115 117 119 148 149 150"},F:{"69":0.0049,"79":0.05388,"82":0.0049,"84":0.0049,"85":0.01959,"86":0.01959,"87":0.0049,"89":0.0049,"90":0.0098,"91":0.02449,"92":0.0098,"93":0.01469,"94":0.04408,"95":1.20491,"96":0.71511,"97":0.0049,"102":0.01959,"103":0.0049,"109":0.0049,"112":0.0049,"113":0.0049,"114":0.02449,"116":0.0098,"117":0.0049,"118":0.0049,"119":0.0098,"120":0.0098,"121":0.0049,"122":0.01959,"123":0.0098,"124":0.0098,"125":0.04898,"126":0.13714,"127":3.57064,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 78 80 81 83 88 98 99 100 101 104 105 106 107 108 110 111 115 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.0049,"109":0.01959,"115":0.0098,"121":0.07347,"122":0.0049,"131":0.0049,"132":0.0049,"133":0.0049,"134":0.0098,"136":0.0049,"137":0.0049,"138":0.0049,"139":0.0098,"140":0.01469,"141":0.0098,"142":0.01959,"143":0.04408,"144":0.16163,"145":5.74046,"146":3.58534,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 116 117 118 119 120 123 124 125 126 127 128 129 130 135"},E:{"14":0.0049,_:"4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 15.1 15.2-15.3 26.5 TP","11.1":0.03429,"12.1":0.03918,"13.1":0.01959,"14.1":0.01959,"15.4":0.0098,"15.5":0.0049,"15.6":0.14694,"16.0":0.0049,"16.1":0.01959,"16.2":0.01469,"16.3":0.02449,"16.4":0.0098,"16.5":0.0098,"16.6":0.30857,"17.0":0.0049,"17.1":0.32817,"17.2":0.0098,"17.3":0.01469,"17.4":0.02939,"17.5":0.09306,"17.6":0.18612,"18.0":0.01469,"18.1":0.03918,"18.2":0.0098,"18.3":0.06367,"18.4":0.02939,"18.5-18.7":0.06367,"26.0":0.02939,"26.1":0.04898,"26.2":0.4996,"26.3":2.08165,"26.4":0.05878},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00245,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00489,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.01223,"11.0-11.2":0.30824,"11.3-11.4":0.00734,"12.0-12.1":0,"12.2-12.5":0.09541,"13.0-13.1":0,"13.2":0.0367,"13.3":0.00489,"13.4-13.7":0.01223,"14.0-14.4":0.02202,"14.5-14.8":0.02202,"15.0-15.1":0.0318,"15.2-15.3":0.01957,"15.4":0.02446,"15.5":0.02691,"15.6-15.8":0.43301,"16.0":0.04403,"16.1":0.08562,"16.2":0.04893,"16.3":0.08807,"16.4":0.01957,"16.5":0.0367,"16.6-16.7":0.60181,"17.0":0.02691,"17.1":0.04403,"17.2":0.03914,"17.3":0.05382,"17.4":0.08807,"17.5":0.16635,"17.6-17.7":0.42812,"18.0":0.09296,"18.1":0.19082,"18.2":0.1003,"18.3":0.32048,"18.4":0.15412,"18.5-18.7":4.90254,"26.0":0.3058,"26.1":0.46481,"26.2":2.73505,"26.3":11.88206,"26.4":0.44524,"26.5":0},P:{"21":0.01046,"23":0.01046,"25":0.01046,"26":0.02092,"27":0.01046,"28":0.04184,"29":3.24296,_:"4 20 22 24 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.0153,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":8.56794,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.41334},Q:{_:"14.9"},O:{"0":0.04082},H:{all:0},L:{"0":16.40336}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/NP.js b/server/api/node_modules/caniuse-lite/data/regions/NP.js new file mode 100644 index 0000000..9c82659 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/NP.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.00271,"52":0.00271,"99":0.00271,"115":0.09224,"123":0.00271,"127":0.00543,"140":0.01628,"141":0.00543,"143":0.00271,"145":0.00271,"146":0.00814,"147":0.03256,"148":0.63213,"149":0.18448,"150":0.00543,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 124 125 126 128 129 130 131 132 133 134 135 136 137 138 139 142 144 151 152 3.5 3.6"},D:{"69":0.00271,"81":0.00271,"83":0.00543,"87":0.01085,"91":0.00543,"93":0.00271,"103":0.05697,"104":0.03798,"105":0.0407,"106":0.03798,"107":0.03527,"108":0.03798,"109":0.93056,"110":0.03527,"111":0.03527,"112":0.09767,"113":0.00271,"114":0.00271,"116":0.09496,"117":0.03527,"119":0.00271,"120":0.03798,"121":0.00543,"122":0.01899,"123":0.00543,"124":0.04612,"125":0.01085,"126":0.01628,"127":0.00814,"128":0.01899,"129":0.00814,"130":0.01085,"131":0.11666,"132":0.02984,"133":0.08682,"134":0.01357,"135":0.02442,"136":0.02713,"137":0.01899,"138":0.0841,"139":0.03798,"140":0.02442,"141":0.02442,"142":0.03798,"143":0.07596,"144":0.21161,"145":7.70763,"146":7.92467,"147":0.0624,"148":0.00271,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 78 79 80 84 85 86 88 89 90 92 94 95 96 97 98 99 100 101 102 115 118 149 150"},F:{"95":0.02713,"96":0.01628,"126":0.00814,"127":0.08953,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00271,"92":0.00271,"100":0.00271,"109":0.00543,"122":0.00271,"131":0.00543,"133":0.00271,"134":0.00543,"136":0.00271,"138":0.00271,"139":0.00271,"140":0.00814,"141":0.00271,"142":0.00814,"143":0.00814,"144":0.02442,"145":0.67825,"146":0.87359,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 123 124 125 126 127 128 129 130 132 135 137"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 15.1 15.2-15.3 16.0 16.2 17.0 17.2 18.2 26.5 TP","12.1":0.00271,"13.1":0.00271,"14.1":0.00543,"15.4":0.00271,"15.5":0.00271,"15.6":0.0217,"16.1":0.00814,"16.3":0.00271,"16.4":0.00271,"16.5":0.00543,"16.6":0.02442,"17.1":0.00543,"17.3":0.00543,"17.4":0.00543,"17.5":0.00543,"17.6":0.02713,"18.0":0.00271,"18.1":0.01899,"18.3":0.00543,"18.4":0.00271,"18.5-18.7":0.01085,"26.0":0.01628,"26.1":0.00814,"26.2":0.07325,"26.3":0.20619,"26.4":0.01357},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00183,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00365,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00913,"11.0-11.2":0.23,"11.3-11.4":0.00548,"12.0-12.1":0,"12.2-12.5":0.07119,"13.0-13.1":0,"13.2":0.02738,"13.3":0.00365,"13.4-13.7":0.00913,"14.0-14.4":0.01643,"14.5-14.8":0.01643,"15.0-15.1":0.02373,"15.2-15.3":0.0146,"15.4":0.01825,"15.5":0.02008,"15.6-15.8":0.32309,"16.0":0.03286,"16.1":0.06389,"16.2":0.03651,"16.3":0.06571,"16.4":0.0146,"16.5":0.02738,"16.6-16.7":0.44905,"17.0":0.02008,"17.1":0.03286,"17.2":0.02921,"17.3":0.04016,"17.4":0.06571,"17.5":0.12413,"17.6-17.7":0.31944,"18.0":0.06936,"18.1":0.14238,"18.2":0.07484,"18.3":0.23913,"18.4":0.115,"18.5-18.7":3.65809,"26.0":0.22817,"26.1":0.34682,"26.2":2.04079,"26.3":8.86594,"26.4":0.33222,"26.5":0},P:{"26":0.01093,"28":0.02186,"29":0.28419,_:"4 20 21 22 23 24 25 27 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.01093},I:{"0":0.06552,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00003},K:{"0":0.40079,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.0583},Q:{_:"14.9"},O:{"0":0.58296},H:{all:0},L:{"0":57.7685}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/NR.js b/server/api/node_modules/caniuse-lite/data/regions/NR.js new file mode 100644 index 0000000..3c5eb89 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/NR.js @@ -0,0 +1 @@ +module.exports={C:{_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 3.5 3.6"},D:{"142":0.03865,"143":0.85028,"144":0.61838,"145":5.48221,"146":3.78463,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 147 148 149 150"},F:{_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"114":0.1546,"137":0.0773,"143":0.03865,"145":2.74111,"146":1.81353,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 138 139 140 141 142 144"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 15.2-15.3 15.4 15.5 15.6 16.0 16.1 16.2 16.3 16.4 16.5 16.6 17.0 17.1 17.2 17.3 17.4 17.5 17.6 18.0 18.1 18.2 18.3 18.4 18.5-18.7 26.0 26.1 26.2 26.4 26.5 TP","26.3":0.0773},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00046,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00092,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00229,"11.0-11.2":0.05782,"11.3-11.4":0.00138,"12.0-12.1":0,"12.2-12.5":0.0179,"13.0-13.1":0,"13.2":0.00688,"13.3":0.00092,"13.4-13.7":0.00229,"14.0-14.4":0.00413,"14.5-14.8":0.00413,"15.0-15.1":0.00597,"15.2-15.3":0.00367,"15.4":0.00459,"15.5":0.00505,"15.6-15.8":0.08122,"16.0":0.00826,"16.1":0.01606,"16.2":0.00918,"16.3":0.01652,"16.4":0.00367,"16.5":0.00688,"16.6-16.7":0.11288,"17.0":0.00505,"17.1":0.00826,"17.2":0.00734,"17.3":0.01009,"17.4":0.01652,"17.5":0.0312,"17.6-17.7":0.0803,"18.0":0.01744,"18.1":0.03579,"18.2":0.01881,"18.3":0.06011,"18.4":0.02891,"18.5-18.7":0.91956,"26.0":0.05736,"26.1":0.08718,"26.2":0.51301,"26.3":2.2287,"26.4":0.08351,"26.5":0},P:{"28":2.74662,"29":1.31498,_:"4 20 21 22 23 24 25 26 27 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":2.78972,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.08432},Q:{_:"14.9"},O:{"0":1.76378},H:{all:0},L:{"0":69.65747}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/NU.js b/server/api/node_modules/caniuse-lite/data/regions/NU.js new file mode 100644 index 0000000..58be024 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/NU.js @@ -0,0 +1 @@ +module.exports={C:{"148":0.69512,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 149 150 151 152 3.5 3.6"},D:{"144":0.69512,"145":9.722,"146":1.39025,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 147 148 149 150"},F:{_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"145":5.55612,"146":2.08537,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 15.2-15.3 15.4 15.5 15.6 16.0 16.1 16.2 16.3 16.4 16.5 16.6 17.0 17.1 17.2 17.3 17.4 17.5 17.6 18.0 18.1 18.2 18.3 18.4 18.5-18.7 26.0 26.1 26.2 26.3 26.4 26.5 TP"},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00203,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00405,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.01013,"11.0-11.2":0.25538,"11.3-11.4":0.00608,"12.0-12.1":0,"12.2-12.5":0.07905,"13.0-13.1":0,"13.2":0.0304,"13.3":0.00405,"13.4-13.7":0.01013,"14.0-14.4":0.01824,"14.5-14.8":0.01824,"15.0-15.1":0.02635,"15.2-15.3":0.01621,"15.4":0.02027,"15.5":0.0223,"15.6-15.8":0.35875,"16.0":0.03648,"16.1":0.07094,"16.2":0.04054,"16.3":0.07297,"16.4":0.01621,"16.5":0.0304,"16.6-16.7":0.4986,"17.0":0.0223,"17.1":0.03648,"17.2":0.03243,"17.3":0.04459,"17.4":0.07297,"17.5":0.13782,"17.6-17.7":0.35469,"18.0":0.07702,"18.1":0.15809,"18.2":0.0831,"18.3":0.26551,"18.4":0.12769,"18.5-18.7":4.06175,"26.0":0.25335,"26.1":0.3851,"26.2":2.26599,"26.3":9.84427,"26.4":0.36888,"26.5":0},P:{"24":0.7246,_:"4 20 21 22 23 25 26 27 28 29 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{_:"0"},Q:{_:"14.9"},O:{_:"0"},H:{all:0},L:{"0":58.86806}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/NZ.js b/server/api/node_modules/caniuse-lite/data/regions/NZ.js new file mode 100644 index 0000000..f27ab7f --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/NZ.js @@ -0,0 +1 @@ +module.exports={C:{"48":0.0113,"52":0.0113,"78":0.00565,"88":0.00565,"115":0.14687,"136":0.05084,"138":0.0226,"140":0.07909,"142":0.0113,"143":0.00565,"144":0.00565,"146":0.0113,"147":0.14687,"148":1.78508,"149":0.36719,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 137 139 141 145 150 151 152 3.5 3.6"},D:{"49":0.00565,"76":0.00565,"87":0.0113,"90":0.00565,"93":0.01695,"95":0.0113,"99":0.00565,"103":0.07909,"105":0.00565,"107":0.00565,"108":0.00565,"109":0.33329,"113":0.0113,"114":0.01695,"116":0.11298,"119":0.01695,"120":0.01695,"121":0.01695,"122":0.03954,"123":0.00565,"124":0.01695,"125":0.03389,"126":0.05084,"127":0.03389,"128":0.09038,"129":0.0113,"130":0.01695,"131":0.05084,"132":0.0226,"133":0.03389,"134":0.02825,"135":0.03954,"136":0.04519,"137":0.05649,"138":0.19772,"139":0.06214,"140":0.04519,"141":0.09603,"142":0.18077,"143":0.57055,"144":1.30492,"145":15.64208,"146":11.33754,"147":0.03389,"148":0.00565,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 77 78 79 80 81 83 84 85 86 88 89 91 92 94 96 97 98 100 101 102 104 106 110 111 112 115 117 118 149 150"},F:{"46":0.00565,"93":0.00565,"95":0.05084,"96":0.03954,"122":0.00565,"126":0.01695,"127":0.50276,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00565,"95":0.00565,"105":0.00565,"109":0.01695,"113":0.00565,"127":0.00565,"131":0.00565,"133":0.00565,"134":0.00565,"135":0.0113,"136":0.00565,"138":0.00565,"139":0.00565,"140":0.00565,"141":0.0226,"142":0.02825,"143":0.11298,"144":0.22596,"145":4.18591,"146":4.03904,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 106 107 108 110 111 112 114 115 116 117 118 119 120 121 122 123 124 125 126 128 129 130 132 137"},E:{"14":0.00565,_:"4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 26.5 TP","12.1":0.00565,"13.1":0.0226,"14.1":0.03954,"15.1":0.00565,"15.2-15.3":0.00565,"15.4":0.00565,"15.5":0.00565,"15.6":0.2768,"16.0":0.00565,"16.1":0.04519,"16.2":0.02825,"16.3":0.02825,"16.4":0.01695,"16.5":0.0226,"16.6":0.34459,"17.0":0.00565,"17.1":0.30505,"17.2":0.0226,"17.3":0.02825,"17.4":0.03389,"17.5":0.06214,"17.6":0.32764,"18.0":0.0113,"18.1":0.03954,"18.2":0.01695,"18.3":0.16947,"18.4":0.02825,"18.5-18.7":0.12993,"26.0":0.05649,"26.1":0.05084,"26.2":0.49711,"26.3":2.86969,"26.4":0.08474},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00178,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00356,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00889,"11.0-11.2":0.22411,"11.3-11.4":0.00534,"12.0-12.1":0,"12.2-12.5":0.06937,"13.0-13.1":0,"13.2":0.02668,"13.3":0.00356,"13.4-13.7":0.00889,"14.0-14.4":0.01601,"14.5-14.8":0.01601,"15.0-15.1":0.02312,"15.2-15.3":0.01423,"15.4":0.01779,"15.5":0.01957,"15.6-15.8":0.31483,"16.0":0.03202,"16.1":0.06225,"16.2":0.03557,"16.3":0.06403,"16.4":0.01423,"16.5":0.02668,"16.6-16.7":0.43756,"17.0":0.01957,"17.1":0.03202,"17.2":0.02846,"17.3":0.03913,"17.4":0.06403,"17.5":0.12095,"17.6-17.7":0.31127,"18.0":0.06759,"18.1":0.13874,"18.2":0.07293,"18.3":0.23301,"18.4":0.11206,"18.5-18.7":3.56449,"26.0":0.22234,"26.1":0.33795,"26.2":1.98857,"26.3":8.63909,"26.4":0.32372,"26.5":0},P:{"21":0.02158,"22":0.03236,"24":0.01079,"25":0.04315,"26":0.03236,"27":0.03236,"28":0.10788,"29":3.11765,_:"4 20 23 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.03043,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.17404,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.69181},Q:{"14.9":0.00435},O:{"0":0.08267},H:{all:0},L:{"0":24.98395}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/OM.js b/server/api/node_modules/caniuse-lite/data/regions/OM.js new file mode 100644 index 0000000..fa709a3 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/OM.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.02195,"68":0.00366,"115":0.02927,"128":0.00366,"133":0.00366,"140":0.00732,"146":0.00732,"147":0.02195,"148":0.31467,"149":0.0805,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 129 130 131 132 134 135 136 137 138 139 141 142 143 144 145 150 151 152 3.5 3.6"},D:{"65":0.00732,"68":0.00366,"69":0.00366,"74":0.00366,"75":0.0183,"76":0.00366,"79":0.00366,"81":0.01098,"83":0.00366,"86":0.00366,"87":0.0183,"90":0.00366,"91":0.00732,"93":0.0183,"98":0.08416,"101":0.00366,"102":0.00732,"103":0.43908,"104":0.21588,"105":0.21588,"106":0.21588,"107":0.21588,"108":0.21954,"109":0.67692,"110":0.2232,"111":0.2232,"112":0.65862,"113":0.00732,"114":0.04391,"116":0.46103,"117":0.21588,"119":0.03659,"120":0.21588,"121":0.00366,"122":0.03293,"123":0.00732,"124":0.22686,"125":0.00366,"126":0.08782,"127":0.01098,"128":0.01464,"129":0.00732,"130":0.01098,"131":0.47201,"132":0.0183,"133":0.46469,"134":0.02195,"135":0.0183,"136":0.04391,"137":0.05854,"138":0.25247,"139":0.08416,"140":0.03293,"141":0.04757,"142":0.03659,"143":0.10245,"144":0.55617,"145":7.23018,"146":6.03735,"147":0.0183,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 66 67 70 71 72 73 77 78 80 84 85 88 89 92 94 95 96 97 99 100 115 118 148 149 150"},F:{"89":0.00366,"95":0.04757,"96":0.11709,"125":0.00732,"126":0.01098,"127":0.26711,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00366,"92":0.00732,"109":0.02195,"122":0.00366,"131":0.00366,"132":0.00366,"135":0.00366,"136":0.01098,"137":0.00366,"138":0.02561,"139":0.00366,"140":0.00366,"141":0.01464,"142":0.01098,"143":0.02561,"144":0.05123,"145":1.14893,"146":0.96232,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 123 124 125 126 127 128 129 130 133 134"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 14.1 15.1 15.2-15.3 15.4 16.0 16.4 16.5 17.2 17.4 26.5 TP","5.1":0.00732,"13.1":0.01098,"15.5":0.00366,"15.6":0.02561,"16.1":0.00366,"16.2":0.00366,"16.3":0.00366,"16.6":0.02561,"17.0":0.00366,"17.1":0.0183,"17.3":0.00366,"17.5":0.00366,"17.6":0.02561,"18.0":0.00366,"18.1":0.00366,"18.2":0.00366,"18.3":0.00732,"18.4":0.00366,"18.5-18.7":0.05123,"26.0":0.01464,"26.1":0.01098,"26.2":0.08416,"26.3":0.35126,"26.4":0.01098},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00121,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00243,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00607,"11.0-11.2":0.15292,"11.3-11.4":0.00364,"12.0-12.1":0,"12.2-12.5":0.04733,"13.0-13.1":0,"13.2":0.01821,"13.3":0.00243,"13.4-13.7":0.00607,"14.0-14.4":0.01092,"14.5-14.8":0.01092,"15.0-15.1":0.01578,"15.2-15.3":0.00971,"15.4":0.01214,"15.5":0.01335,"15.6-15.8":0.21482,"16.0":0.02185,"16.1":0.04248,"16.2":0.02427,"16.3":0.04369,"16.4":0.00971,"16.5":0.01821,"16.6-16.7":0.29856,"17.0":0.01335,"17.1":0.02185,"17.2":0.01942,"17.3":0.0267,"17.4":0.04369,"17.5":0.08253,"17.6-17.7":0.21239,"18.0":0.04612,"18.1":0.09467,"18.2":0.04976,"18.3":0.15899,"18.4":0.07646,"18.5-18.7":2.43219,"26.0":0.15171,"26.1":0.2306,"26.2":1.35688,"26.3":5.89478,"26.4":0.22089,"26.5":0},P:{"4":0.03147,"22":0.01049,"23":0.02098,"24":0.01049,"25":0.01049,"26":0.04196,"27":0.04196,"28":0.11538,"29":1.93003,_:"20 21 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.03147},I:{"0":0.04435,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.99554,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.15853},Q:{_:"14.9"},O:{"0":0.78628},H:{all:0},L:{"0":58.11559}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/PA.js b/server/api/node_modules/caniuse-lite/data/regions/PA.js new file mode 100644 index 0000000..f3ef05b --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/PA.js @@ -0,0 +1 @@ +module.exports={C:{"4":0.03999,"5":0.03428,"115":0.02285,"128":0.00571,"140":0.09141,"144":0.00571,"145":0.00571,"146":0.00571,"147":0.12569,"148":0.87409,"149":0.18853,_:"2 3 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 129 130 131 132 133 134 135 136 137 138 139 141 142 143 150 151 152 3.5 3.6"},D:{"47":0.00571,"68":0.00571,"69":0.00571,"70":0.00571,"73":0.00571,"79":0.01143,"83":0.01714,"87":0.03999,"88":0.00571,"91":0.00571,"93":0.00571,"97":0.01143,"98":0.00571,"100":0.00571,"101":0.00571,"103":0.50846,"104":0.47989,"105":0.47989,"106":0.47989,"107":0.49132,"108":0.48561,"109":0.81125,"110":0.49132,"111":0.56559,"112":1.0112,"114":0.02857,"116":1.00549,"117":0.46275,"118":0.00571,"119":0.03428,"120":0.50846,"121":0.00571,"122":0.03428,"123":0.00571,"124":0.49132,"125":0.01143,"126":0.03999,"127":0.01143,"128":0.03999,"129":0.01143,"130":0.02285,"131":1.03405,"132":0.23995,"133":1.00549,"134":0.09712,"135":0.06856,"136":0.02285,"137":0.01714,"138":0.19996,"139":0.22852,"140":0.09712,"141":0.15996,"142":0.15425,"143":0.38277,"144":1.01691,"145":11.48884,"146":9.2265,"147":0.09141,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 71 72 74 75 76 77 78 80 81 84 85 86 89 90 92 94 95 96 99 102 113 115 148 149 150"},F:{"85":0.00571,"95":0.02285,"96":0.01714,"125":0.02857,"126":0.01714,"127":1.13689,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.01143,"109":0.02857,"114":0.00571,"122":0.00571,"126":0.00571,"127":0.06284,"131":0.00571,"134":0.01143,"136":0.01143,"137":0.00571,"138":0.01143,"139":0.00571,"140":0.03999,"141":0.01143,"142":0.01714,"143":0.05142,"144":0.16568,"145":2.73081,"146":3.1193,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 123 124 125 128 129 130 132 133 135"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 13.1 15.1 15.2-15.3 16.0 16.2 16.3 17.0 26.5 TP","5.1":0.01143,"14.1":0.00571,"15.4":0.00571,"15.5":0.01143,"15.6":0.02857,"16.1":0.00571,"16.4":0.00571,"16.5":0.01143,"16.6":0.10283,"17.1":0.10283,"17.2":0.01143,"17.3":0.01714,"17.4":0.00571,"17.5":0.05142,"17.6":0.05713,"18.0":0.00571,"18.1":0.36563,"18.2":0.00571,"18.3":0.03999,"18.4":0.00571,"18.5-18.7":0.06284,"26.0":0.01714,"26.1":0.14854,"26.2":0.23995,"26.3":1.02263,"26.4":0.07998},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00113,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00227,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00566,"11.0-11.2":0.14273,"11.3-11.4":0.0034,"12.0-12.1":0,"12.2-12.5":0.04418,"13.0-13.1":0,"13.2":0.01699,"13.3":0.00227,"13.4-13.7":0.00566,"14.0-14.4":0.0102,"14.5-14.8":0.0102,"15.0-15.1":0.01473,"15.2-15.3":0.00906,"15.4":0.01133,"15.5":0.01246,"15.6-15.8":0.2005,"16.0":0.02039,"16.1":0.03965,"16.2":0.02266,"16.3":0.04078,"16.4":0.00906,"16.5":0.01699,"16.6-16.7":0.27867,"17.0":0.01246,"17.1":0.02039,"17.2":0.01812,"17.3":0.02492,"17.4":0.04078,"17.5":0.07703,"17.6-17.7":0.19824,"18.0":0.04305,"18.1":0.08836,"18.2":0.04644,"18.3":0.1484,"18.4":0.07137,"18.5-18.7":2.27011,"26.0":0.1416,"26.1":0.21523,"26.2":1.26646,"26.3":5.50196,"26.4":0.20617,"26.5":0},P:{"20":0.02092,"22":0.13601,"23":0.01046,"24":0.01046,"25":0.01046,"26":0.02092,"27":0.03139,"28":0.07324,"29":2.74116,_:"4 21 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.04185},I:{"0":0.04282,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.33431,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.23144},Q:{"14.9":0.00429},O:{"0":0.1843},H:{all:0},L:{"0":35.39833}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/PE.js b/server/api/node_modules/caniuse-lite/data/regions/PE.js new file mode 100644 index 0000000..df51423 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/PE.js @@ -0,0 +1 @@ +module.exports={C:{"4":0.02459,"5":0.01844,"52":0.00615,"115":0.13523,"123":0.00615,"125":0.00615,"135":0.00615,"136":0.00615,"140":0.01844,"141":0.00615,"146":0.01229,"147":0.03688,"148":0.72535,"149":0.14753,_:"2 3 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 124 126 127 128 129 130 131 132 133 134 137 138 139 142 143 144 145 150 151 152 3.5 3.6"},D:{"27":0.00615,"32":0.00615,"34":0.00615,"49":0.00615,"55":0.02459,"58":0.00615,"75":0.00615,"79":0.06147,"83":0.00615,"85":0.00615,"87":0.03074,"91":0.00615,"93":0.00615,"94":0.00615,"95":0.01844,"97":0.03688,"103":0.12294,"104":0.11065,"105":0.11065,"106":0.11679,"107":0.12294,"108":0.12294,"109":1.08187,"110":0.12294,"111":0.18441,"112":0.24588,"113":0.00615,"114":0.01844,"115":0.00615,"116":0.26432,"117":0.11065,"119":0.01844,"120":0.15368,"121":0.03688,"122":0.07991,"123":0.01229,"124":0.13523,"125":0.01844,"126":0.02459,"127":0.02459,"128":0.03688,"129":0.02459,"130":0.04303,"131":0.35653,"132":0.03074,"133":0.29506,"134":0.03688,"135":0.06762,"136":0.05532,"137":0.04303,"138":0.16597,"139":0.17212,"140":0.03688,"141":0.05532,"142":0.11679,"143":0.50405,"144":0.87287,"145":19.01882,"146":16.78131,"147":0.02459,"148":0.00615,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 28 29 30 31 33 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 56 57 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 76 77 78 80 81 84 86 88 89 90 92 96 98 99 100 101 102 118 149 150"},F:{"63":0.00615,"67":0.00615,"93":0.00615,"95":0.04918,"96":0.07376,"109":0.00615,"125":0.01229,"126":0.03074,"127":1.16178,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 64 65 66 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 94 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.01229,"92":0.01229,"109":0.02459,"113":0.00615,"114":0.00615,"122":0.01229,"124":0.00615,"129":0.00615,"131":0.00615,"133":0.00615,"134":0.00615,"135":0.00615,"137":0.00615,"138":0.01229,"139":0.00615,"140":0.01229,"141":0.01229,"142":0.01229,"143":0.04918,"144":0.08606,"145":2.50798,"146":2.57559,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 115 116 117 118 119 120 121 123 125 126 127 128 130 132 136"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 14.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.5 17.0 17.2 18.0 26.5 TP","5.1":0.02459,"13.1":0.00615,"15.1":0.00615,"15.6":0.01844,"16.3":0.00615,"16.4":0.00615,"16.6":0.02459,"17.1":0.03074,"17.3":0.00615,"17.4":0.00615,"17.5":0.00615,"17.6":0.03688,"18.1":0.00615,"18.2":0.00615,"18.3":0.01229,"18.4":0.00615,"18.5-18.7":0.02459,"26.0":0.01844,"26.1":0.02459,"26.2":0.09835,"26.3":0.39956,"26.4":0.02459},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00051,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00102,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00256,"11.0-11.2":0.06457,"11.3-11.4":0.00154,"12.0-12.1":0,"12.2-12.5":0.01999,"13.0-13.1":0,"13.2":0.00769,"13.3":0.00102,"13.4-13.7":0.00256,"14.0-14.4":0.00461,"14.5-14.8":0.00461,"15.0-15.1":0.00666,"15.2-15.3":0.0041,"15.4":0.00512,"15.5":0.00564,"15.6-15.8":0.0907,"16.0":0.00922,"16.1":0.01794,"16.2":0.01025,"16.3":0.01845,"16.4":0.0041,"16.5":0.00769,"16.6-16.7":0.12606,"17.0":0.00564,"17.1":0.00922,"17.2":0.0082,"17.3":0.01127,"17.4":0.01845,"17.5":0.03485,"17.6-17.7":0.08968,"18.0":0.01947,"18.1":0.03997,"18.2":0.02101,"18.3":0.06713,"18.4":0.03228,"18.5-18.7":1.02695,"26.0":0.06406,"26.1":0.09737,"26.2":0.57292,"26.3":2.48896,"26.4":0.09327,"26.5":0},P:{"4":0.04145,"21":0.01036,"23":0.01036,"25":0.01036,"26":0.01036,"27":0.02073,"28":0.04145,"29":0.72543,_:"20 22 24 5.0-5.4 6.2-6.4 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.02073,"8.2":0.01036},I:{"0":0.04234,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.262,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.16953},Q:{_:"14.9"},O:{"0":0.01541},H:{all:0},L:{"0":38.30514}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/PF.js b/server/api/node_modules/caniuse-lite/data/regions/PF.js new file mode 100644 index 0000000..0bb4454 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/PF.js @@ -0,0 +1 @@ +module.exports={C:{"51":0.00241,"56":0.00241,"78":0.0457,"92":0.00241,"103":0.00241,"111":0.00722,"115":0.41366,"128":0.00722,"136":0.00481,"140":0.15633,"144":0.00481,"145":0.01443,"146":0.01684,"147":0.09139,"148":0.97162,"149":0.17797,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 52 53 54 55 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 104 105 106 107 108 109 110 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 129 130 131 132 133 134 135 137 138 139 141 142 143 150 151 152 3.5 3.6"},D:{"67":0.00241,"87":0.00241,"92":0.00481,"94":0.00241,"98":0.00241,"99":0.00241,"103":0.04089,"106":0.00241,"107":0.00241,"109":0.1924,"116":0.02886,"120":0.00481,"122":0.00962,"125":0.00481,"126":0.00241,"127":0.00481,"128":0.03127,"129":0.00241,"130":0.01684,"131":0.02886,"132":0.00962,"133":0.00962,"135":0.00722,"136":0.00481,"137":0.01684,"138":0.06253,"139":0.12506,"140":0.00241,"141":0.00722,"142":0.02886,"143":0.10101,"144":0.10582,"145":3.61712,"146":3.14334,"147":0.00962,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 88 89 90 91 93 95 96 97 100 101 102 104 105 108 110 111 112 113 114 115 117 118 119 121 123 124 134 148 149 150"},F:{"46":0.00241,"89":0.00481,"94":0.00481,"95":0.02405,"96":0.00241,"126":0.00722,"127":0.15873,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 90 91 92 93 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"109":0.00481,"126":0.00241,"128":0.00241,"131":0.00722,"132":0.00241,"136":0.00241,"138":0.00241,"140":0.00962,"141":0.00481,"142":0.00241,"143":0.01443,"144":0.02405,"145":0.94276,"146":1.94084,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 127 129 130 133 134 135 137 139"},E:{"14":0.00962,_:"4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.2-15.3 26.5 TP","13.1":0.00481,"14.1":0.04329,"15.1":0.00241,"15.4":0.00241,"15.5":0.00241,"15.6":0.07215,"16.0":0.00481,"16.1":0.20683,"16.2":0.00481,"16.3":0.08418,"16.4":0.00962,"16.5":0.01684,"16.6":0.27417,"17.0":0.00481,"17.1":0.3343,"17.2":0.01924,"17.3":0.00962,"17.4":0.03848,"17.5":0.05532,"17.6":1.0077,"18.0":0.00241,"18.1":0.04089,"18.2":0.00962,"18.3":0.03848,"18.4":0.00241,"18.5-18.7":0.21405,"26.0":0.01924,"26.1":0.02405,"26.2":0.46898,"26.3":1.43579,"26.4":0.03127},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00103,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00207,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00517,"11.0-11.2":0.13036,"11.3-11.4":0.0031,"12.0-12.1":0,"12.2-12.5":0.04035,"13.0-13.1":0,"13.2":0.01552,"13.3":0.00207,"13.4-13.7":0.00517,"14.0-14.4":0.00931,"14.5-14.8":0.00931,"15.0-15.1":0.01345,"15.2-15.3":0.00828,"15.4":0.01035,"15.5":0.01138,"15.6-15.8":0.18312,"16.0":0.01862,"16.1":0.03621,"16.2":0.02069,"16.3":0.03724,"16.4":0.00828,"16.5":0.01552,"16.6-16.7":0.25451,"17.0":0.01138,"17.1":0.01862,"17.2":0.01655,"17.3":0.02276,"17.4":0.03724,"17.5":0.07035,"17.6-17.7":0.18105,"18.0":0.03931,"18.1":0.0807,"18.2":0.04242,"18.3":0.13553,"18.4":0.06518,"18.5-18.7":2.07329,"26.0":0.12932,"26.1":0.19657,"26.2":1.15666,"26.3":5.02493,"26.4":0.18829,"26.5":0},P:{"23":0.01054,"25":0.04216,"27":0.02108,"28":0.03162,"29":2.21355,_:"4 20 21 22 24 26 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","11.1-11.2":0.07378},I:{"0":0.08348,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00004},K:{"0":0.03038,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.28865},Q:{_:"14.9"},O:{"0":0.03798},H:{all:0},L:{"0":66.85341}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/PG.js b/server/api/node_modules/caniuse-lite/data/regions/PG.js new file mode 100644 index 0000000..f1e4d15 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/PG.js @@ -0,0 +1 @@ +module.exports={C:{"70":0.00458,"115":0.05958,"121":0.00458,"127":0.00458,"132":0.00458,"135":0.00458,"136":0.00458,"140":0.01833,"141":0.00458,"142":0.00458,"143":0.00458,"144":0.00917,"145":0.02292,"146":0.00458,"147":0.09166,"148":0.60037,"149":0.10999,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 122 123 124 125 126 128 129 130 131 133 134 137 138 139 150 151 152 3.5 3.6"},D:{"49":0.01375,"56":0.00917,"63":0.01375,"70":0.00917,"71":0.00458,"73":0.00458,"74":0.00458,"78":0.00458,"79":0.00458,"87":0.00458,"88":0.00917,"94":0.00458,"95":0.00458,"96":0.00917,"99":0.00917,"101":0.00458,"103":0.00917,"105":0.00458,"106":0.01833,"107":0.00458,"109":0.22457,"111":0.00917,"114":0.01375,"116":0.02292,"117":0.00917,"119":0.00458,"120":0.10999,"121":0.00458,"122":0.01833,"123":0.00458,"124":0.00458,"125":0.00458,"126":0.055,"127":0.03208,"128":0.06875,"129":0.01833,"130":0.01833,"131":0.055,"132":0.02292,"133":0.01375,"134":0.01833,"135":0.01833,"136":0.02292,"137":0.00917,"138":0.11458,"139":0.05958,"140":0.01833,"141":0.03208,"142":0.06875,"143":0.10999,"144":0.37122,"145":5.08713,"146":3.73515,"147":0.01375,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 57 58 59 60 61 62 64 65 66 67 68 69 72 75 76 77 80 81 83 84 85 86 89 90 91 92 93 97 98 100 102 104 108 110 112 113 115 118 148 149 150"},F:{"37":0.00458,"90":0.00917,"92":0.00458,"93":0.00917,"94":0.01375,"95":0.10999,"96":0.05958,"110":0.00458,"126":0.00458,"127":0.11916,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 91 97 98 99 100 101 102 103 104 105 106 107 108 109 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.00917,"16":0.00458,"17":0.00917,"18":0.09624,"84":0.00458,"88":0.00458,"89":0.01833,"90":0.00917,"92":0.055,"100":0.04125,"108":0.00458,"109":0.00458,"110":0.00458,"114":0.01375,"117":0.00458,"119":0.00458,"120":0.02292,"121":0.00458,"122":0.03208,"124":0.00458,"126":0.00917,"128":0.00458,"129":0.00458,"131":0.01375,"132":0.00458,"133":0.00458,"134":0.01375,"135":0.00917,"136":0.01833,"137":0.01833,"138":0.03208,"139":0.05041,"140":0.0275,"141":0.05041,"142":0.11458,"143":0.10541,"144":0.27956,"145":2.69022,"146":2.21359,_:"12 13 15 79 80 81 83 85 86 87 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 111 112 113 115 116 118 123 125 127 130"},E:{"11":0.00458,_:"4 5 6 7 8 9 10 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 15.1 15.2-15.3 15.4 16.0 16.1 16.4 16.5 17.0 17.4 18.0 18.1 18.2 26.5 TP","14.1":0.00917,"15.5":0.00458,"15.6":0.03208,"16.2":0.11916,"16.3":0.00458,"16.6":0.00917,"17.1":0.57746,"17.2":0.00917,"17.3":0.00917,"17.5":0.00917,"17.6":0.05958,"18.3":0.00458,"18.4":0.00458,"18.5-18.7":0.00458,"26.0":0.01375,"26.1":0.00917,"26.2":0.00917,"26.3":0.055,"26.4":0.01375},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00023,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00046,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00115,"11.0-11.2":0.02887,"11.3-11.4":0.00069,"12.0-12.1":0,"12.2-12.5":0.00894,"13.0-13.1":0,"13.2":0.00344,"13.3":0.00046,"13.4-13.7":0.00115,"14.0-14.4":0.00206,"14.5-14.8":0.00206,"15.0-15.1":0.00298,"15.2-15.3":0.00183,"15.4":0.00229,"15.5":0.00252,"15.6-15.8":0.04056,"16.0":0.00412,"16.1":0.00802,"16.2":0.00458,"16.3":0.00825,"16.4":0.00183,"16.5":0.00344,"16.6-16.7":0.05637,"17.0":0.00252,"17.1":0.00412,"17.2":0.00367,"17.3":0.00504,"17.4":0.00825,"17.5":0.01558,"17.6-17.7":0.0401,"18.0":0.00871,"18.1":0.01787,"18.2":0.00939,"18.3":0.03002,"18.4":0.01444,"18.5-18.7":0.45919,"26.0":0.02864,"26.1":0.04354,"26.2":0.25618,"26.3":1.11293,"26.4":0.0417,"26.5":0},P:{"21":0.01027,"22":0.05134,"23":0.02054,"24":0.04107,"25":0.20536,"26":0.02054,"27":0.23617,"28":0.53394,"29":1.58128,_:"4 20 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 14.0 15.0 16.0 17.0 18.0","5.0-5.4":0.01027,"7.2-7.4":0.02054,"13.0":0.01027,"19.0":0.01027},I:{"0":0.11907,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00006},K:{"0":0.69879,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{"2.5":0.00542,_:"3.0-3.1"},R:{_:"0"},M:{"0":0.69338},Q:{"14.9":0.04875},O:{"0":0.60129},H:{all:0},L:{"0":71.59302}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/PH.js b/server/api/node_modules/caniuse-lite/data/regions/PH.js new file mode 100644 index 0000000..f06e262 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/PH.js @@ -0,0 +1 @@ +module.exports={C:{"59":0.00386,"115":0.03864,"123":0.00386,"125":0.00386,"131":0.00386,"133":0.00386,"136":0.00386,"140":0.00773,"144":0.00386,"145":0.00773,"146":0.00773,"147":0.03864,"148":0.5371,"149":0.07728,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 124 126 127 128 129 130 132 134 135 137 138 139 141 142 143 150 151 152 3.5 3.6"},D:{"76":0.00773,"78":0.00386,"84":0.00386,"86":0.00386,"87":0.00773,"90":0.00386,"91":0.01546,"92":0.01546,"93":0.12365,"94":0.0425,"103":0.30526,"104":0.05023,"105":0.05023,"106":0.05023,"107":0.04637,"108":0.04637,"109":0.34003,"110":0.05023,"111":0.05023,"112":0.04637,"113":0.00773,"114":0.02705,"115":0.00386,"116":0.11978,"117":0.05023,"118":0.00386,"119":0.00773,"120":0.11978,"121":0.01932,"122":0.03864,"123":0.01932,"124":0.10819,"125":0.02705,"126":0.08114,"127":0.02318,"128":0.04637,"129":0.01546,"130":0.03864,"131":0.2357,"132":0.04637,"133":0.12751,"134":0.03091,"135":0.05023,"136":0.0966,"137":0.10433,"138":0.17774,"139":0.23184,"140":0.05796,"141":0.08114,"142":0.11592,"143":0.22411,"144":0.50232,"145":11.77747,"146":10.85398,"147":0.02705,"148":0.02318,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 77 79 80 81 83 85 88 89 95 96 97 98 99 100 101 102 149 150"},F:{"95":0.01159,"96":0.01932,"114":0.00386,"119":0.02318,"124":0.00386,"126":0.01159,"127":0.45982,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 120 121 122 123 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00386,"90":0.00386,"92":0.00386,"107":0.00386,"109":0.00773,"114":0.00386,"122":0.00386,"125":0.00386,"129":0.00386,"133":0.00386,"134":0.00386,"138":0.01159,"139":0.00773,"140":0.00386,"141":0.00386,"142":0.01546,"143":0.02318,"144":0.05796,"145":1.94359,"146":1.94359,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 108 110 111 112 113 115 116 117 118 119 120 121 123 124 126 127 128 130 131 132 135 136 137"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 12.1 15.2-15.3 15.4 15.5 16.0 26.5 TP","11.1":0.00386,"13.1":0.00386,"14.1":0.00386,"15.1":0.00386,"15.6":0.02318,"16.1":0.00386,"16.2":0.00386,"16.3":0.00386,"16.4":0.00386,"16.5":0.00386,"16.6":0.0425,"17.0":0.00386,"17.1":0.02318,"17.2":0.00386,"17.3":0.01546,"17.4":0.01159,"17.5":0.01932,"17.6":0.06569,"18.0":0.00773,"18.1":0.03864,"18.2":0.00386,"18.3":0.01932,"18.4":0.01159,"18.5-18.7":0.03864,"26.0":0.02318,"26.1":0.02705,"26.2":0.22025,"26.3":0.47914,"26.4":0.02705},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00059,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00118,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00295,"11.0-11.2":0.0743,"11.3-11.4":0.00177,"12.0-12.1":0,"12.2-12.5":0.023,"13.0-13.1":0,"13.2":0.00885,"13.3":0.00118,"13.4-13.7":0.00295,"14.0-14.4":0.00531,"14.5-14.8":0.00531,"15.0-15.1":0.00767,"15.2-15.3":0.00472,"15.4":0.0059,"15.5":0.00649,"15.6-15.8":0.10437,"16.0":0.01061,"16.1":0.02064,"16.2":0.01179,"16.3":0.02123,"16.4":0.00472,"16.5":0.00885,"16.6-16.7":0.14506,"17.0":0.00649,"17.1":0.01061,"17.2":0.00943,"17.3":0.01297,"17.4":0.02123,"17.5":0.0401,"17.6-17.7":0.10319,"18.0":0.02241,"18.1":0.04599,"18.2":0.02418,"18.3":0.07725,"18.4":0.03715,"18.5-18.7":1.1817,"26.0":0.07371,"26.1":0.11204,"26.2":0.65925,"26.3":2.86403,"26.4":0.10732,"26.5":0},P:{"25":0.0108,"26":0.0108,"27":0.0108,"28":0.0324,"29":0.47517,_:"4 20 21 22 23 24 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.20844,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.0001},K:{"0":0.13499,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.06136},Q:{_:"14.9"},O:{"0":0.0859},H:{all:0},L:{"0":58.1799}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/PK.js b/server/api/node_modules/caniuse-lite/data/regions/PK.js new file mode 100644 index 0000000..e5d5e61 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/PK.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.01555,"52":0.00389,"112":0.00389,"113":0.00389,"115":0.1283,"127":0.00389,"133":0.00389,"134":0.00389,"135":0.00389,"136":0.00389,"138":0.00389,"139":0.00389,"140":0.01555,"143":0.00389,"145":0.00389,"146":0.00389,"147":0.02333,"148":0.37325,"149":0.08554,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 114 116 117 118 119 120 121 122 123 124 125 126 128 129 130 131 132 137 141 142 144 150 151 152 3.5 3.6"},D:{"49":0.00389,"50":0.00389,"55":0.00389,"56":0.00778,"58":0.00389,"62":0.00389,"63":0.00389,"64":0.00389,"65":0.00389,"66":0.00389,"68":0.01555,"69":0.01555,"70":0.00389,"71":0.01166,"72":0.00778,"73":0.00778,"74":0.01555,"75":0.00778,"76":0.00389,"77":0.00778,"78":0.00389,"79":0.00778,"80":0.01166,"81":0.00389,"83":0.00389,"86":0.00778,"87":0.01166,"88":0.00389,"89":0.00389,"91":0.00778,"93":0.02333,"94":0.00389,"95":0.00778,"98":0.00389,"99":0.03499,"102":0.01555,"103":0.28771,"104":0.18662,"105":0.18662,"106":0.19051,"107":0.18662,"108":0.19051,"109":1.54742,"110":0.18274,"111":0.18662,"112":0.47045,"113":0.00389,"114":0.01166,"116":0.37714,"117":0.18274,"119":0.02333,"120":0.18662,"121":0.00778,"122":0.01166,"123":0.00778,"124":0.19051,"125":0.00778,"126":0.03499,"127":0.00778,"128":0.02333,"129":0.00778,"130":0.02333,"131":0.41213,"132":0.0661,"133":0.38491,"134":0.01944,"135":0.02333,"136":0.02722,"137":0.04666,"138":0.14774,"139":0.05443,"140":0.04277,"141":0.04277,"142":0.08554,"143":0.15941,"144":0.59486,"145":10.1399,"146":7.77211,"147":0.03888,"148":0.00778,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 51 52 53 54 57 59 60 61 67 84 85 90 92 96 97 100 101 115 118 149 150"},F:{"94":0.00389,"95":0.07387,"96":0.07387,"114":0.00389,"126":0.01555,"127":0.2255,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 120 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.00389,"15":0.00389,"16":0.00389,"17":0.00389,"18":0.01944,"89":0.00778,"92":0.02722,"109":0.01166,"113":0.00389,"114":0.00778,"122":0.00389,"131":0.00778,"132":0.01166,"133":0.00389,"134":0.00389,"135":0.00389,"136":0.00389,"137":0.00389,"138":0.00389,"139":0.00389,"140":0.00389,"141":0.00778,"142":0.00778,"143":0.01944,"144":0.03499,"145":0.73483,"146":0.62986,_:"12 13 79 80 81 83 84 85 86 87 88 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 115 116 117 118 119 120 121 123 124 125 126 127 128 129 130"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 15.4 15.5 16.0 16.1 16.2 16.3 16.4 16.5 17.0 17.2 17.3 18.0 18.2 18.4 26.5 TP","5.1":0.00778,"13.1":0.00389,"14.1":0.00389,"15.1":0.00778,"15.2-15.3":0.00389,"15.6":0.01555,"16.6":0.01944,"17.1":0.01555,"17.4":0.00389,"17.5":0.00389,"17.6":0.02333,"18.1":0.00389,"18.3":0.00389,"18.5-18.7":0.00778,"26.0":0.00389,"26.1":0.00778,"26.2":0.0311,"26.3":0.08165,"26.4":0.00389},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0004,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00081,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00202,"11.0-11.2":0.0509,"11.3-11.4":0.00121,"12.0-12.1":0,"12.2-12.5":0.01576,"13.0-13.1":0,"13.2":0.00606,"13.3":0.00081,"13.4-13.7":0.00202,"14.0-14.4":0.00364,"14.5-14.8":0.00364,"15.0-15.1":0.00525,"15.2-15.3":0.00323,"15.4":0.00404,"15.5":0.00444,"15.6-15.8":0.07151,"16.0":0.00727,"16.1":0.01414,"16.2":0.00808,"16.3":0.01454,"16.4":0.00323,"16.5":0.00606,"16.6-16.7":0.09938,"17.0":0.00444,"17.1":0.00727,"17.2":0.00646,"17.3":0.00889,"17.4":0.01454,"17.5":0.02747,"17.6-17.7":0.0707,"18.0":0.01535,"18.1":0.03151,"18.2":0.01656,"18.3":0.05292,"18.4":0.02545,"18.5-18.7":0.80962,"26.0":0.0505,"26.1":0.07676,"26.2":0.45168,"26.3":1.96224,"26.4":0.07353,"26.5":0},P:{"23":0.01072,"24":0.01072,"25":0.02144,"26":0.03216,"27":0.01072,"28":0.03216,"29":0.56813,_:"4 20 21 22 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.01072},I:{"0":0.07938,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00004},K:{"0":1.6808,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.01166,"11":0.01166,_:"6 7 9 10 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{"2.5":0.04278,_:"3.0-3.1"},R:{_:"0"},M:{"0":0.05501},Q:{_:"14.9"},O:{"0":3.91168},H:{all:0},L:{"0":60.69221}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/PL.js b/server/api/node_modules/caniuse-lite/data/regions/PL.js new file mode 100644 index 0000000..843106d --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/PL.js @@ -0,0 +1 @@ +module.exports={C:{"47":0.00576,"52":0.02878,"60":0.00576,"78":0.00576,"101":0.00576,"102":0.00576,"113":0.00576,"115":0.38565,"120":0.00576,"121":0.00576,"122":0.00576,"123":0.01151,"125":0.00576,"127":0.00576,"128":0.01727,"131":0.00576,"133":0.00576,"134":0.00576,"135":0.00576,"136":0.02878,"137":0.00576,"138":0.00576,"139":0.00576,"140":0.58136,"141":0.00576,"142":0.00576,"143":0.01151,"144":0.01151,"145":0.01727,"146":0.02878,"147":0.18995,"148":3.29243,"149":0.67921,"150":0.00576,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 49 50 51 53 54 55 56 57 58 59 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 103 104 105 106 107 108 109 110 111 112 114 116 117 118 119 124 126 129 130 132 151 152 3.5 3.6"},D:{"39":0.24175,"40":0.24175,"41":0.24175,"42":0.24751,"43":0.24175,"44":0.24751,"45":0.24175,"46":0.24175,"47":0.24175,"48":0.24175,"49":0.24751,"50":0.24175,"51":0.24751,"52":0.24175,"53":0.24175,"54":0.24175,"55":0.24175,"56":0.24175,"57":0.24175,"58":0.24175,"59":0.24175,"60":0.24175,"79":0.00576,"85":0.00576,"87":0.00576,"92":0.00576,"93":0.00576,"100":0.00576,"101":0.00576,"103":0.01727,"104":0.00576,"106":0.00576,"107":0.00576,"108":0.00576,"109":0.58711,"111":0.03454,"113":0.00576,"114":0.02302,"115":0.00576,"116":0.04605,"118":0.00576,"119":0.00576,"120":0.01727,"121":0.01151,"122":0.04605,"123":0.00576,"124":0.01727,"125":0.01727,"126":0.02878,"127":0.01727,"128":0.02878,"129":0.01151,"130":0.05756,"131":0.04029,"132":0.03454,"133":0.05756,"134":0.06907,"135":0.05756,"136":0.02878,"137":0.10936,"138":0.08634,"139":0.236,"140":0.04029,"141":0.0518,"142":0.10361,"143":0.24751,"144":0.52955,"145":11.68468,"146":9.33048,"147":0.01727,"148":0.00576,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 83 84 86 88 89 90 91 94 95 96 97 98 99 102 105 110 112 117 149 150"},F:{"46":0.00576,"85":0.00576,"87":0.00576,"94":0.00576,"95":0.236,"96":0.11512,"115":0.00576,"117":0.00576,"122":0.02878,"124":0.00576,"125":0.01151,"126":0.06907,"127":4.97894,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 86 88 89 90 91 92 93 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 118 119 120 121 123 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.00576,"102":0.00576,"109":0.10936,"114":0.00576,"122":0.00576,"131":0.00576,"132":0.00576,"134":0.00576,"135":0.00576,"136":0.00576,"137":0.00576,"138":0.00576,"139":0.00576,"140":0.00576,"141":0.00576,"142":0.01727,"143":0.06332,"144":0.08058,"145":2.33694,"146":2.35996,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 123 124 125 126 127 128 129 130 133"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 15.5 16.0 16.2 26.5 TP","13.1":0.01151,"14.1":0.00576,"15.6":0.02878,"16.1":0.00576,"16.3":0.00576,"16.4":0.00576,"16.5":0.00576,"16.6":0.04605,"17.0":0.00576,"17.1":0.01727,"17.2":0.01151,"17.3":0.01151,"17.4":0.01151,"17.5":0.02302,"17.6":0.06332,"18.0":0.00576,"18.1":0.01151,"18.2":0.00576,"18.3":0.02302,"18.4":0.01151,"18.5-18.7":0.04029,"26.0":0.03454,"26.1":0.02302,"26.2":0.13814,"26.3":0.61589,"26.4":0.04605},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00078,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00156,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00391,"11.0-11.2":0.09855,"11.3-11.4":0.00235,"12.0-12.1":0,"12.2-12.5":0.0305,"13.0-13.1":0,"13.2":0.01173,"13.3":0.00156,"13.4-13.7":0.00391,"14.0-14.4":0.00704,"14.5-14.8":0.00704,"15.0-15.1":0.01017,"15.2-15.3":0.00626,"15.4":0.00782,"15.5":0.0086,"15.6-15.8":0.13844,"16.0":0.01408,"16.1":0.02738,"16.2":0.01564,"16.3":0.02816,"16.4":0.00626,"16.5":0.01173,"16.6-16.7":0.19241,"17.0":0.0086,"17.1":0.01408,"17.2":0.01251,"17.3":0.01721,"17.4":0.02816,"17.5":0.05319,"17.6-17.7":0.13688,"18.0":0.02972,"18.1":0.06101,"18.2":0.03207,"18.3":0.10246,"18.4":0.04928,"18.5-18.7":1.56747,"26.0":0.09777,"26.1":0.14861,"26.2":0.87447,"26.3":3.799,"26.4":0.14235,"26.5":0},P:{"23":0.01037,"25":0.01037,"26":0.02074,"27":0.02074,"28":0.04147,"29":1.5345,_:"4 20 21 22 24 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.0212,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.65782,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.45411},Q:{_:"14.9"},O:{"0":0.09337},H:{all:0},L:{"0":35.44727}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/PM.js b/server/api/node_modules/caniuse-lite/data/regions/PM.js new file mode 100644 index 0000000..ba2f931 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/PM.js @@ -0,0 +1 @@ +module.exports={C:{"128":0.06819,"142":0.02436,"147":0.17536,"148":1.51488,"149":0.24355,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 129 130 131 132 133 134 135 136 137 138 139 140 141 143 144 145 146 150 151 152 3.5 3.6"},D:{"100":0.0341,"103":0.04384,"109":0.34584,"116":0.00974,"119":0.02436,"126":0.02436,"128":0.05845,"136":0.00974,"137":0.0341,"138":0.04384,"142":0.0341,"143":0.49684,"144":1.05214,"145":11.70501,"146":5.98646,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 101 102 104 105 106 107 108 110 111 112 113 114 115 117 118 120 121 122 123 124 125 127 129 130 131 132 133 134 135 139 140 141 147 148 149 150"},F:{"127":0.41404,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"145":1.52462,"146":1.80227,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 14.1 15.4 15.5 16.0 17.0 18.0 18.1 18.2 26.5 TP","13.1":0.02436,"15.1":0.13639,"15.2-15.3":0.02436,"15.6":0.16074,"16.1":0.09255,"16.2":0.04384,"16.3":0.32149,"16.4":0.12665,"16.5":0.19484,"16.6":2.10427,"17.1":1.89482,"17.2":0.12665,"17.3":0.0341,"17.4":0.05845,"17.5":0.57965,"17.6":10.42394,"18.3":0.06819,"18.4":0.1851,"18.5-18.7":0.32149,"26.0":0.02436,"26.1":0.00974,"26.2":0.16074,"26.3":2.62547,"26.4":0.05845},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00315,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.0063,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.01576,"11.0-11.2":0.39712,"11.3-11.4":0.00946,"12.0-12.1":0,"12.2-12.5":0.12292,"13.0-13.1":0,"13.2":0.04728,"13.3":0.0063,"13.4-13.7":0.01576,"14.0-14.4":0.02837,"14.5-14.8":0.02837,"15.0-15.1":0.04097,"15.2-15.3":0.02521,"15.4":0.03152,"15.5":0.03467,"15.6-15.8":0.55786,"16.0":0.05673,"16.1":0.11031,"16.2":0.06304,"16.3":0.11346,"16.4":0.02521,"16.5":0.04728,"16.6-16.7":0.77534,"17.0":0.03467,"17.1":0.05673,"17.2":0.05043,"17.3":0.06934,"17.4":0.11346,"17.5":0.21432,"17.6-17.7":0.55156,"18.0":0.11977,"18.1":0.24584,"18.2":0.12922,"18.3":0.41288,"18.4":0.19856,"18.5-18.7":6.31615,"26.0":0.39397,"26.1":0.59884,"26.2":3.52368,"26.3":15.30815,"26.4":0.57362,"26.5":0},P:{"27":0.01135,"29":0.52207,_:"4 20 21 22 23 24 25 26 28 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.041,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.18464,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.21029},Q:{_:"14.9"},O:{_:"0"},H:{all:0},L:{"0":18.53192}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/PN.js b/server/api/node_modules/caniuse-lite/data/regions/PN.js new file mode 100644 index 0000000..629af8f --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/PN.js @@ -0,0 +1 @@ +module.exports={C:{_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 3.5 3.6"},D:{_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150"},F:{_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"145":4.9995,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 146"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 15.2-15.3 15.4 15.5 15.6 16.0 16.1 16.2 16.3 16.4 16.5 16.6 17.0 17.1 17.2 17.3 17.4 17.5 17.6 18.0 18.1 18.2 18.3 18.4 18.5-18.7 26.0 26.1 26.2 26.3 26.4 26.5 TP"},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0005,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.001,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.0025,"11.0-11.2":0.06297,"11.3-11.4":0.0015,"12.0-12.1":0,"12.2-12.5":0.01949,"13.0-13.1":0,"13.2":0.0075,"13.3":0.001,"13.4-13.7":0.0025,"14.0-14.4":0.0045,"14.5-14.8":0.0045,"15.0-15.1":0.0065,"15.2-15.3":0.004,"15.4":0.005,"15.5":0.0055,"15.6-15.8":0.08846,"16.0":0.009,"16.1":0.01749,"16.2":0.01,"16.3":0.01799,"16.4":0.004,"16.5":0.0075,"16.6-16.7":0.12295,"17.0":0.0055,"17.1":0.009,"17.2":0.008,"17.3":0.011,"17.4":0.01799,"17.5":0.03399,"17.6-17.7":0.08747,"18.0":0.01899,"18.1":0.03898,"18.2":0.02049,"18.3":0.06547,"18.4":0.03149,"18.5-18.7":1.0016,"26.0":0.06248,"26.1":0.09496,"26.2":0.55878,"26.3":2.42753,"26.4":0.09096,"26.5":0},P:{_:"4 20 21 22 23 24 25 26 27 28 29 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{_:"0"},Q:{_:"14.9"},O:{_:"0"},H:{all:0},L:{"0":90.0025}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/PR.js b/server/api/node_modules/caniuse-lite/data/regions/PR.js new file mode 100644 index 0000000..db852a0 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/PR.js @@ -0,0 +1 @@ +module.exports={C:{"4":0.01029,"5":0.00514,"52":0.00514,"115":0.04115,"128":0.00514,"140":0.04115,"143":0.00514,"144":0.00514,"146":0.00514,"147":0.08745,"148":1.05966,"149":0.19547,_:"2 3 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 129 130 131 132 133 134 135 136 137 138 139 141 142 145 150 151 152 3.5 3.6"},D:{"65":0.00514,"76":0.00514,"79":0.00514,"80":0.00514,"91":0.01029,"93":0.00514,"101":0.00514,"103":0.11831,"104":0.05144,"105":0.05658,"106":0.05658,"107":0.05144,"108":0.05144,"109":0.2572,"110":0.05144,"111":0.05144,"112":0.23148,"113":0.06173,"116":0.12346,"117":0.05144,"119":0.01543,"120":0.05144,"122":0.01543,"123":0.00514,"124":0.06173,"125":0.00514,"126":0.01543,"127":0.00514,"128":0.04115,"129":0.00514,"130":0.03086,"131":0.13889,"132":0.02572,"133":0.11317,"134":0.01543,"135":0.07202,"136":0.01029,"137":0.01029,"138":0.19547,"139":0.26234,"140":0.03601,"141":0.01543,"142":0.07202,"143":4.77363,"144":5.98247,"145":7.81888,"146":6.11622,"147":0.0463,"148":0.00514,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 66 67 68 69 70 71 72 73 74 75 77 78 81 83 84 85 86 87 88 89 90 92 94 95 96 97 98 99 100 102 114 115 118 121 149 150"},F:{"73":0.01029,"95":0.01543,"96":0.07202,"117":0.01029,"125":0.00514,"126":0.01029,"127":0.63786,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 118 119 120 121 122 123 124 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00514,"92":0.01029,"109":0.03086,"114":0.00514,"118":0.00514,"120":0.00514,"122":0.02572,"125":0.00514,"130":0.02058,"131":0.01029,"132":0.00514,"133":0.01029,"134":0.00514,"135":0.00514,"136":0.00514,"137":0.01029,"138":0.00514,"139":0.01543,"140":0.01029,"141":0.02058,"142":0.02572,"143":0.15432,"144":0.15946,"145":3.92487,"146":3.79627,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 119 121 123 124 126 127 128 129"},E:{"14":0.01029,_:"4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.2-15.3 26.5 TP","13.1":0.00514,"14.1":0.01029,"15.1":0.00514,"15.4":0.00514,"15.5":0.00514,"15.6":0.06687,"16.0":0.00514,"16.1":0.01543,"16.2":0.00514,"16.3":0.01029,"16.4":0.00514,"16.5":0.00514,"16.6":0.13889,"17.0":0.01543,"17.1":0.0463,"17.2":0.03086,"17.3":0.01029,"17.4":0.11831,"17.5":0.04115,"17.6":0.14403,"18.0":0.01029,"18.1":0.03601,"18.2":0.02058,"18.3":0.05144,"18.4":0.03601,"18.5-18.7":0.12346,"26.0":0.10288,"26.1":0.05144,"26.2":0.42181,"26.3":2.28394,"26.4":0.09259},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00235,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.0047,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.01176,"11.0-11.2":0.29626,"11.3-11.4":0.00705,"12.0-12.1":0,"12.2-12.5":0.0917,"13.0-13.1":0,"13.2":0.03527,"13.3":0.0047,"13.4-13.7":0.01176,"14.0-14.4":0.02116,"14.5-14.8":0.02116,"15.0-15.1":0.03057,"15.2-15.3":0.01881,"15.4":0.02351,"15.5":0.02586,"15.6-15.8":0.41618,"16.0":0.04232,"16.1":0.08229,"16.2":0.04703,"16.3":0.08465,"16.4":0.01881,"16.5":0.03527,"16.6-16.7":0.57841,"17.0":0.02586,"17.1":0.04232,"17.2":0.03762,"17.3":0.05173,"17.4":0.08465,"17.5":0.15989,"17.6-17.7":0.41147,"18.0":0.08935,"18.1":0.1834,"18.2":0.0964,"18.3":0.30802,"18.4":0.14813,"18.5-18.7":4.71195,"26.0":0.29391,"26.1":0.44674,"26.2":2.62872,"26.3":11.42014,"26.4":0.42793,"26.5":0},P:{"4":0.07358,"22":0.01051,"23":0.01051,"25":0.02102,"26":0.01051,"27":0.01051,"28":0.07358,"29":2.52267,_:"20 21 24 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 18.0 19.0","16.0":0.01051,"17.0":0.01051},I:{"0":0.07764,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00004},K:{"0":0.19914,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.29142},Q:{_:"14.9"},O:{"0":0.00971},H:{all:0},L:{"0":28.27811}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/PS.js b/server/api/node_modules/caniuse-lite/data/regions/PS.js new file mode 100644 index 0000000..3917503 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/PS.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.01029,"78":0.00206,"115":0.01646,"140":0.00206,"145":0.00206,"146":0.00206,"147":0.01851,"148":0.21187,"149":0.05554,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 141 142 143 144 150 151 152 3.5 3.6"},D:{"69":0.00411,"71":0.00206,"77":0.01029,"78":0.00206,"79":0.00206,"83":0.00411,"85":0.00206,"86":0.00206,"87":0.00206,"89":0.00823,"90":0.00206,"92":0.00206,"93":0.00206,"95":0.00206,"97":0.00617,"98":0.00411,"100":0.00206,"101":0.00206,"103":0.11108,"104":0.10902,"105":0.11108,"106":0.11108,"107":0.11108,"108":0.10696,"109":0.29209,"110":0.10696,"111":0.11108,"112":0.30855,"114":0.00411,"115":0.00206,"116":0.2201,"117":0.11519,"118":0.00206,"119":0.00617,"120":0.10902,"121":0.00206,"122":0.01029,"123":0.03086,"124":0.11108,"125":0.00617,"126":0.00206,"127":0.00617,"128":0.01646,"129":0.00206,"130":0.02057,"131":0.2489,"132":0.00617,"133":0.23244,"134":0.01029,"135":0.0288,"136":0.01234,"137":0.0144,"138":0.06582,"139":0.03703,"140":0.0144,"141":0.01029,"142":0.04114,"143":0.07611,"144":0.46283,"145":3.66969,"146":2.9086,"147":0.00411,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 70 72 73 74 75 76 80 81 84 88 91 94 96 99 102 113 148 149 150"},F:{"85":0.00206,"95":0.00411,"96":0.00617,"125":0.00206,"126":0.00206,"127":0.08845,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.0288,"92":0.00617,"109":0.00411,"114":0.00206,"130":0.00206,"131":0.00206,"133":0.00206,"135":0.00206,"138":0.00206,"140":0.00206,"141":0.00206,"142":0.00206,"143":0.00823,"144":0.03086,"145":0.48545,"146":0.41551,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 132 134 136 137 139"},E:{"13":0.00206,_:"4 5 6 7 8 9 10 11 12 14 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.4 17.0 17.2 18.2 18.4 26.5 TP","5.1":0.02057,"15.6":0.00617,"16.3":0.00206,"16.5":0.00206,"16.6":0.01029,"17.1":0.00617,"17.3":0.00206,"17.4":0.00206,"17.5":0.00411,"17.6":0.00411,"18.0":0.00411,"18.1":0.00206,"18.3":0.00617,"18.5-18.7":0.01029,"26.0":0.00206,"26.1":0.00411,"26.2":0.0288,"26.3":0.17279,"26.4":0.00617},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00068,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00136,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.0034,"11.0-11.2":0.08567,"11.3-11.4":0.00204,"12.0-12.1":0,"12.2-12.5":0.02652,"13.0-13.1":0,"13.2":0.0102,"13.3":0.00136,"13.4-13.7":0.0034,"14.0-14.4":0.00612,"14.5-14.8":0.00612,"15.0-15.1":0.00884,"15.2-15.3":0.00544,"15.4":0.0068,"15.5":0.00748,"15.6-15.8":0.12035,"16.0":0.01224,"16.1":0.0238,"16.2":0.0136,"16.3":0.02448,"16.4":0.00544,"16.5":0.0102,"16.6-16.7":0.16726,"17.0":0.00748,"17.1":0.01224,"17.2":0.01088,"17.3":0.01496,"17.4":0.02448,"17.5":0.04623,"17.6-17.7":0.11899,"18.0":0.02584,"18.1":0.05303,"18.2":0.02788,"18.3":0.08907,"18.4":0.04284,"18.5-18.7":1.36256,"26.0":0.08499,"26.1":0.12918,"26.2":0.76015,"26.3":3.30238,"26.4":0.12375,"26.5":0},P:{"20":0.01003,"21":0.04013,"22":0.05016,"23":0.04013,"24":0.02006,"25":0.06019,"26":0.18057,"27":0.10032,"28":0.27086,"29":1.81574,_:"4 5.0-5.4 6.2-6.4 9.2 10.1 12.0","7.2-7.4":0.0301,"8.2":0.01003,"11.1-11.2":0.01003,"13.0":0.01003,"14.0":0.01003,"15.0":0.01003,"16.0":0.01003,"17.0":0.01003,"18.0":0.01003,"19.0":0.01003},I:{"0":0.06349,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00003},K:{"0":0.21446,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.06354},Q:{_:"14.9"},O:{"0":0.03177},H:{all:0},L:{"0":77.91695}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/PT.js b/server/api/node_modules/caniuse-lite/data/regions/PT.js new file mode 100644 index 0000000..3d7663a --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/PT.js @@ -0,0 +1 @@ +module.exports={C:{"52":0.00601,"78":0.01201,"115":0.15013,"122":0.00601,"123":0.00601,"127":0.00601,"128":0.00601,"136":0.01201,"137":0.00601,"138":0.00601,"139":0.00601,"140":0.05405,"142":0.00601,"143":0.00601,"144":0.02402,"145":0.00601,"146":0.01802,"147":0.1201,"148":1.95763,"149":0.3543,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 124 125 126 129 130 131 132 133 134 135 141 150 151 152 3.5 3.6"},D:{"39":0.00601,"40":0.00601,"41":0.00601,"42":0.00601,"43":0.00601,"44":0.00601,"45":0.00601,"46":0.00601,"47":0.00601,"48":0.00601,"49":0.01201,"50":0.00601,"51":0.00601,"52":0.00601,"53":0.00601,"54":0.00601,"55":0.00601,"56":0.00601,"57":0.00601,"58":0.00601,"59":0.00601,"60":0.00601,"81":0.00601,"86":0.00601,"87":0.00601,"89":0.00601,"100":0.00601,"101":0.01201,"102":0.00601,"103":0.02402,"104":0.00601,"105":0.00601,"106":0.00601,"107":0.00601,"108":0.00601,"109":0.49842,"110":0.00601,"111":0.00601,"112":0.00601,"114":0.01201,"116":0.08407,"117":0.85872,"119":0.00601,"120":0.01802,"121":0.02402,"122":0.13211,"123":0.01201,"124":0.01802,"125":0.00601,"126":0.04204,"127":0.01201,"128":0.04804,"129":0.01201,"130":0.10209,"131":0.06606,"132":0.03603,"133":0.06005,"134":0.09608,"135":0.05405,"136":0.07206,"137":0.03003,"138":0.13812,"139":0.16814,"140":0.06606,"141":0.04804,"142":0.1201,"143":0.25221,"144":0.94279,"145":17.81684,"146":13.6914,"147":0.04804,"148":0.01201,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 83 84 85 88 90 91 92 93 94 95 96 97 98 99 113 115 118 149 150"},F:{"95":0.03003,"96":0.03603,"102":0.00601,"114":0.00601,"122":0.00601,"125":0.00601,"126":0.02402,"127":2.02369,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 120 121 123 124 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00601,"92":0.00601,"109":0.03603,"116":0.00601,"120":0.00601,"122":0.00601,"126":0.00601,"128":0.00601,"130":0.00601,"131":0.00601,"132":0.00601,"133":0.00601,"134":0.00601,"135":0.00601,"136":0.00601,"137":0.00601,"138":0.00601,"139":0.00601,"140":0.00601,"141":0.01802,"142":0.01802,"143":0.04804,"144":0.19216,"145":4.24554,"146":3.72911,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 117 118 119 121 123 124 125 127 129"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 15.5 16.2 16.4 26.5 TP","13.1":0.00601,"14.1":0.00601,"15.6":0.03603,"16.0":0.00601,"16.1":0.00601,"16.3":0.01201,"16.5":0.01201,"16.6":0.12611,"17.0":0.00601,"17.1":0.06005,"17.2":0.00601,"17.3":0.01201,"17.4":0.01802,"17.5":0.03603,"17.6":0.16814,"18.0":0.01802,"18.1":0.01802,"18.2":0.01802,"18.3":0.03603,"18.4":0.02402,"18.5-18.7":0.04804,"26.0":0.02402,"26.1":0.06606,"26.2":0.26422,"26.3":1.17098,"26.4":0.09008},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00118,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00235,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00588,"11.0-11.2":0.14814,"11.3-11.4":0.00353,"12.0-12.1":0,"12.2-12.5":0.04585,"13.0-13.1":0,"13.2":0.01764,"13.3":0.00235,"13.4-13.7":0.00588,"14.0-14.4":0.01058,"14.5-14.8":0.01058,"15.0-15.1":0.01528,"15.2-15.3":0.00941,"15.4":0.01176,"15.5":0.01293,"15.6-15.8":0.2081,"16.0":0.02116,"16.1":0.04115,"16.2":0.02351,"16.3":0.04233,"16.4":0.00941,"16.5":0.01764,"16.6-16.7":0.28923,"17.0":0.01293,"17.1":0.02116,"17.2":0.01881,"17.3":0.02587,"17.4":0.04233,"17.5":0.07995,"17.6-17.7":0.20575,"18.0":0.04468,"18.1":0.09171,"18.2":0.0482,"18.3":0.15402,"18.4":0.07407,"18.5-18.7":2.35616,"26.0":0.14697,"26.1":0.22339,"26.2":1.31446,"26.3":5.71051,"26.4":0.21398,"26.5":0},P:{"22":0.01044,"23":0.01044,"24":0.01044,"25":0.01044,"26":0.01044,"27":0.02087,"28":0.05218,"29":1.59662,_:"4 20 21 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.07584,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00004},K:{"0":0.22772,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.01201,_:"6 7 8 9 10 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.26367},Q:{_:"14.9"},O:{"0":0.08789},H:{all:0},L:{"0":30.44077}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/PW.js b/server/api/node_modules/caniuse-lite/data/regions/PW.js new file mode 100644 index 0000000..3ec68f3 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/PW.js @@ -0,0 +1 @@ +module.exports={C:{"115":0.01398,"134":0.07689,"145":0.02447,"148":0.46833,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 135 136 137 138 139 140 141 142 143 144 146 147 149 150 151 152 3.5 3.6"},D:{"109":1.17083,"116":0.01398,"131":0.01398,"132":0.03845,"135":0.06641,"136":0.06641,"139":0.07689,"141":0.01398,"143":0.7025,"144":2.35563,"145":5.96946,"146":4.01925,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 117 118 119 120 121 122 123 124 125 126 127 128 129 130 133 134 137 138 140 142 147 148 149 150"},F:{"127":0.11534,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"109":0.01398,"142":0.09087,"143":0.09087,"144":0.05243,"145":1.70556,"146":1.53431,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 15.1 15.2-15.3 15.4 16.0 16.2 16.4 16.5 17.0 17.3 18.0 18.1 18.2 18.3 26.1 26.4 26.5 TP","14.1":0.01398,"15.5":0.01398,"15.6":0.03845,"16.1":0.02447,"16.3":0.01398,"16.6":0.15728,"17.1":6.00791,"17.2":0.05243,"17.4":0.01398,"17.5":0.01398,"17.6":0.02447,"18.4":0.07689,"18.5-18.7":0.03845,"26.0":0.01398,"26.2":0.25863,"26.3":1.17083},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00137,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00275,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00687,"11.0-11.2":0.17319,"11.3-11.4":0.00412,"12.0-12.1":0,"12.2-12.5":0.05361,"13.0-13.1":0,"13.2":0.02062,"13.3":0.00275,"13.4-13.7":0.00687,"14.0-14.4":0.01237,"14.5-14.8":0.01237,"15.0-15.1":0.01787,"15.2-15.3":0.011,"15.4":0.01375,"15.5":0.01512,"15.6-15.8":0.24329,"16.0":0.02474,"16.1":0.04811,"16.2":0.02749,"16.3":0.04948,"16.4":0.011,"16.5":0.02062,"16.6-16.7":0.33813,"17.0":0.01512,"17.1":0.02474,"17.2":0.02199,"17.3":0.03024,"17.4":0.04948,"17.5":0.09347,"17.6-17.7":0.24054,"18.0":0.05223,"18.1":0.10721,"18.2":0.05635,"18.3":0.18006,"18.4":0.08659,"18.5-18.7":2.75451,"26.0":0.17181,"26.1":0.26116,"26.2":1.5367,"26.3":6.67598,"26.4":0.25016,"26.5":0},P:{"22":0.01013,"28":0.31416,"29":0.56751,_:"4 20 21 23 24 25 26 27 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","5.0-5.4":0.07094},I:{"0":0.026,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.09107,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.19515},Q:{_:"14.9"},O:{"0":5.27556},H:{all:0},L:{"0":48.37609}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/PY.js b/server/api/node_modules/caniuse-lite/data/regions/PY.js new file mode 100644 index 0000000..f6c241a --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/PY.js @@ -0,0 +1 @@ +module.exports={C:{"4":0.33794,"5":0.06094,"52":0.00554,"88":0.01662,"115":0.06094,"136":0.01108,"140":0.1385,"142":0.00554,"143":0.00554,"144":0.00554,"145":0.00554,"146":0.02216,"147":0.04432,"148":1.108,"149":0.22714,_:"2 3 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 137 138 139 141 150 151 152 3.5 3.6"},D:{"49":0.01108,"64":0.01108,"65":0.02216,"68":0.00554,"69":0.01662,"73":0.01108,"75":0.03324,"77":0.00554,"83":0.01108,"86":0.00554,"87":0.02216,"94":0.00554,"97":0.02216,"98":0.00554,"102":0.00554,"103":0.84208,"104":0.84762,"105":0.831,"106":0.83654,"107":0.82546,"108":0.83654,"109":1.43486,"110":0.81438,"111":0.84762,"112":1.8559,"113":0.01108,"114":0.0277,"115":0.00554,"116":1.70632,"117":0.8033,"118":0.00554,"119":0.0277,"120":0.831,"121":0.01662,"122":0.03324,"123":0.01662,"124":0.83654,"125":0.04986,"126":0.0277,"127":0.02216,"128":0.03324,"129":0.01662,"130":0.03878,"131":1.75064,"132":0.02216,"133":1.72848,"134":0.17728,"135":0.02216,"136":0.01662,"137":0.0277,"138":0.09418,"139":0.13296,"140":0.01662,"141":0.0277,"142":0.07202,"143":0.12188,"144":1.3019,"145":9.04682,"146":8.26568,"147":0.10526,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 66 67 70 71 72 74 76 78 79 80 81 84 85 88 89 90 91 92 93 95 96 99 100 101 148 149 150"},F:{"56":0.00554,"95":0.01662,"96":0.01108,"125":0.00554,"126":0.01662,"127":0.5817,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00554,"92":0.01108,"100":0.01108,"109":0.01662,"122":0.0277,"125":0.00554,"131":0.00554,"135":0.00554,"137":0.00554,"138":0.00554,"139":0.00554,"140":0.00554,"141":0.00554,"142":0.01662,"143":0.06094,"144":0.0831,"145":2.18276,"146":2.57056,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 123 124 126 127 128 129 130 132 133 134 136"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 14.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.4 17.0 17.2 17.3 17.4 18.1 18.2 26.5 TP","5.1":0.01662,"13.1":0.00554,"15.6":0.02216,"16.3":0.00554,"16.5":0.0554,"16.6":0.0277,"17.1":0.0277,"17.5":0.00554,"17.6":0.17728,"18.0":0.01662,"18.3":0.01108,"18.4":0.00554,"18.5-18.7":0.0277,"26.0":0.01662,"26.1":0.01108,"26.2":0.29916,"26.3":0.45982,"26.4":0.0277},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0008,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.0016,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.004,"11.0-11.2":0.10076,"11.3-11.4":0.0024,"12.0-12.1":0,"12.2-12.5":0.03119,"13.0-13.1":0,"13.2":0.012,"13.3":0.0016,"13.4-13.7":0.004,"14.0-14.4":0.0072,"14.5-14.8":0.0072,"15.0-15.1":0.0104,"15.2-15.3":0.0064,"15.4":0.008,"15.5":0.0088,"15.6-15.8":0.14154,"16.0":0.01439,"16.1":0.02799,"16.2":0.01599,"16.3":0.02879,"16.4":0.0064,"16.5":0.012,"16.6-16.7":0.19672,"17.0":0.0088,"17.1":0.01439,"17.2":0.01279,"17.3":0.01759,"17.4":0.02879,"17.5":0.05438,"17.6-17.7":0.13994,"18.0":0.03039,"18.1":0.06237,"18.2":0.03279,"18.3":0.10476,"18.4":0.05038,"18.5-18.7":1.60255,"26.0":0.09996,"26.1":0.15194,"26.2":0.89404,"26.3":3.88404,"26.4":0.14554,"26.5":0},P:{"20":0.01031,"21":0.05154,"22":0.02062,"23":0.01031,"24":0.02062,"25":0.03092,"26":0.11339,"27":0.09277,"28":0.09277,"29":2.90689,_:"4 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 14.0 15.0 16.0 18.0 19.0","7.2-7.4":0.20616,"13.0":0.01031,"17.0":0.01031},I:{"0":0.05347,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00003},K:{"0":0.446,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.32112},Q:{_:"14.9"},O:{"0":0.03568},H:{all:0},L:{"0":38.39518}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/QA.js b/server/api/node_modules/caniuse-lite/data/regions/QA.js new file mode 100644 index 0000000..d3809a7 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/QA.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.00606,"115":0.05153,"140":0.00909,"143":0.00303,"146":0.00303,"147":0.02122,"148":0.2152,"149":0.0394,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 141 142 144 145 150 151 152 3.5 3.6"},D:{"69":0.00303,"73":0.00606,"79":0.00303,"84":0.00303,"87":0.00303,"88":0.00303,"91":0.00606,"93":0.00303,"98":0.00303,"102":0.01212,"103":0.14246,"104":0.05759,"105":0.05759,"106":0.05456,"107":0.05759,"108":0.05456,"109":0.26673,"110":0.05456,"111":0.05759,"112":0.16671,"114":0.01212,"116":0.13336,"117":0.05456,"118":0.00303,"119":0.00909,"120":0.06062,"121":0.00606,"122":0.01819,"123":0.02122,"124":0.06668,"125":0.00303,"126":0.01212,"127":0.00909,"128":0.01819,"129":0.00303,"130":0.01819,"131":0.1364,"132":0.01516,"133":0.11821,"134":0.00909,"135":0.01516,"136":0.01819,"137":0.01212,"138":0.11821,"139":0.10609,"140":0.03334,"141":0.03031,"142":0.05456,"143":0.15458,"144":0.29704,"145":6.52574,"146":5.15573,"147":0.01212,"148":0.00303,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 70 71 72 74 75 76 77 78 80 81 83 85 86 89 90 92 94 95 96 97 99 100 101 113 115 149 150"},F:{"46":0.00606,"93":0.00303,"95":0.07578,"96":0.10002,"114":0.00303,"126":0.01212,"127":0.32735,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 120 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00606,"92":0.00606,"114":0.00606,"122":0.00303,"131":0.00606,"133":0.00303,"134":0.00303,"135":0.00303,"136":0.00303,"137":0.00303,"138":0.00606,"139":0.00303,"140":0.00303,"141":0.01212,"142":0.00606,"143":0.02122,"144":0.06365,"145":1.36698,"146":1.21543,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 120 121 123 124 125 126 127 128 129 130 132"},E:{"14":0.00303,"15":0.02122,_:"4 5 6 7 8 9 10 11 12 13 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 15.1 16.2 16.4 17.3 26.5 TP","14.1":0.00606,"15.2-15.3":0.00303,"15.4":0.00303,"15.5":0.00303,"15.6":0.01516,"16.0":0.00303,"16.1":0.01212,"16.3":0.01516,"16.5":0.00303,"16.6":0.0394,"17.0":0.00303,"17.1":0.10305,"17.2":0.00303,"17.4":0.01516,"17.5":0.07578,"17.6":0.05759,"18.0":0.00303,"18.1":0.01516,"18.2":0.00303,"18.3":0.01212,"18.4":0.00303,"18.5-18.7":0.04243,"26.0":0.02425,"26.1":0.03637,"26.2":0.18489,"26.3":0.72441,"26.4":0.03334},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00119,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00239,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00596,"11.0-11.2":0.15026,"11.3-11.4":0.00358,"12.0-12.1":0,"12.2-12.5":0.04651,"13.0-13.1":0,"13.2":0.01789,"13.3":0.00239,"13.4-13.7":0.00596,"14.0-14.4":0.01073,"14.5-14.8":0.01073,"15.0-15.1":0.0155,"15.2-15.3":0.00954,"15.4":0.01193,"15.5":0.01312,"15.6-15.8":0.21108,"16.0":0.02147,"16.1":0.04174,"16.2":0.02385,"16.3":0.04293,"16.4":0.00954,"16.5":0.01789,"16.6-16.7":0.29337,"17.0":0.01312,"17.1":0.02147,"17.2":0.01908,"17.3":0.02624,"17.4":0.04293,"17.5":0.08109,"17.6-17.7":0.2087,"18.0":0.04532,"18.1":0.09302,"18.2":0.0489,"18.3":0.15623,"18.4":0.07513,"18.5-18.7":2.3899,"26.0":0.14907,"26.1":0.22659,"26.2":1.33329,"26.3":5.7923,"26.4":0.21705,"26.5":0},P:{"22":0.0833,"26":0.02083,"27":0.01041,"28":0.0833,"29":1.53071,_:"4 20 21 23 24 25 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.06267,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00003},K:{"0":1.4637,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.10455},Q:{_:"14.9"},O:{"0":3.52682},H:{all:0},L:{"0":60.7903}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/RE.js b/server/api/node_modules/caniuse-lite/data/regions/RE.js new file mode 100644 index 0000000..93004f6 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/RE.js @@ -0,0 +1 @@ +module.exports={C:{"72":0.00443,"78":0.11518,"82":0.00443,"102":0.02215,"110":0.00443,"112":0.00443,"115":0.12404,"120":0.00443,"127":0.00443,"128":0.02658,"131":0.00886,"134":0.00443,"136":0.2215,"137":0.00443,"139":0.01329,"140":0.30124,"143":0.00443,"144":0.00443,"145":0.00886,"146":0.01329,"147":0.21264,"148":3.38452,"149":0.65564,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 103 104 105 106 107 108 109 111 113 114 116 117 118 119 121 122 123 124 125 126 129 130 132 133 135 138 141 142 150 151 152 3.5 3.6"},D:{"65":0.00443,"71":0.00886,"74":0.00443,"85":0.00443,"87":0.06202,"94":0.00443,"98":0.03101,"101":0.00443,"103":0.08417,"104":0.00443,"109":0.51831,"113":0.00443,"114":0.01329,"116":0.05759,"118":0.00443,"119":0.01329,"120":0.07088,"122":0.03101,"123":0.00443,"124":0.00443,"125":0.00443,"126":0.01329,"127":0.00886,"128":0.05759,"130":0.00886,"131":0.03101,"132":0.01772,"133":0.07974,"134":0.01772,"135":0.00886,"136":0.00886,"137":0.01772,"138":0.27466,"139":0.12847,"140":0.06202,"141":0.01772,"142":0.05316,"143":0.11518,"144":0.34997,"145":9.44033,"146":7.54872,"147":0.03544,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 66 67 68 69 70 72 73 75 76 77 78 79 80 81 83 84 86 88 89 90 91 92 93 95 96 97 99 100 102 105 106 107 108 110 111 112 115 117 121 129 148 149 150"},F:{"46":0.00443,"95":0.02215,"96":0.05316,"114":0.00443,"119":0.00443,"122":0.00443,"125":0.15062,"126":0.0443,"127":0.66893,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 120 121 123 124 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.00443,"18":0.00443,"109":0.00886,"129":0.00443,"130":0.00443,"131":0.00443,"132":0.00443,"133":0.00443,"135":0.00443,"136":0.00443,"138":0.00443,"139":0.00443,"140":0.01329,"141":0.02658,"142":0.01772,"143":0.04873,"144":0.08417,"145":2.56497,"146":2.88836,_:"12 13 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 134 137"},E:{"14":0.00443,_:"4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 17.0 26.5 TP","11.1":0.00886,"12.1":0.00443,"13.1":0.02658,"14.1":0.02658,"15.1":0.00443,"15.2-15.3":0.00886,"15.4":0.00443,"15.5":0.00443,"15.6":0.11961,"16.0":0.00443,"16.1":0.00443,"16.2":0.00443,"16.3":0.01772,"16.4":0.00886,"16.5":0.02215,"16.6":0.12404,"17.1":0.16391,"17.2":0.00886,"17.3":0.00443,"17.4":0.07974,"17.5":0.01772,"17.6":0.19049,"18.0":0.17277,"18.1":0.01772,"18.2":0.00886,"18.3":0.0443,"18.4":0.05316,"18.5-18.7":0.09746,"26.0":0.12404,"26.1":0.03987,"26.2":0.34111,"26.3":1.66125,"26.4":0.07088},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00166,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00331,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00829,"11.0-11.2":0.20879,"11.3-11.4":0.00497,"12.0-12.1":0,"12.2-12.5":0.06463,"13.0-13.1":0,"13.2":0.02486,"13.3":0.00331,"13.4-13.7":0.00829,"14.0-14.4":0.01491,"14.5-14.8":0.01491,"15.0-15.1":0.02154,"15.2-15.3":0.01326,"15.4":0.01657,"15.5":0.01823,"15.6-15.8":0.2933,"16.0":0.02983,"16.1":0.058,"16.2":0.03314,"16.3":0.05965,"16.4":0.01326,"16.5":0.02486,"16.6-16.7":0.40764,"17.0":0.01823,"17.1":0.02983,"17.2":0.02651,"17.3":0.03646,"17.4":0.05965,"17.5":0.11268,"17.6-17.7":0.28999,"18.0":0.06297,"18.1":0.12925,"18.2":0.06794,"18.3":0.21708,"18.4":0.1044,"18.5-18.7":3.32078,"26.0":0.20713,"26.1":0.31484,"26.2":1.85261,"26.3":8.04841,"26.4":0.30159,"26.5":0},P:{"21":0.06261,"22":0.01044,"23":0.01044,"25":0.03131,"26":0.02087,"27":0.04174,"28":0.1774,"29":3.01576,_:"4 20 24 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.01044},I:{"0":0.06121,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00003},K:{"0":0.10026,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.74638},Q:{_:"14.9"},O:{"0":0.13368},H:{all:0},L:{"0":40.16819}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/RO.js b/server/api/node_modules/caniuse-lite/data/regions/RO.js new file mode 100644 index 0000000..433b289 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/RO.js @@ -0,0 +1 @@ +module.exports={C:{"52":0.01593,"96":0.01062,"112":0.02124,"115":0.27617,"121":0.00531,"127":0.01593,"128":0.01062,"134":0.00531,"135":0.00531,"136":0.00531,"137":0.00531,"139":0.00531,"140":0.08498,"142":0.00531,"143":0.01062,"144":0.00531,"145":0.00531,"146":0.01593,"147":0.0956,"148":1.35962,"149":0.27617,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 113 114 116 117 118 119 120 122 123 124 125 126 129 130 131 132 133 138 141 150 151 152 3.5 3.6"},D:{"39":0.00531,"40":0.00531,"41":0.00531,"42":0.00531,"43":0.00531,"44":0.00531,"45":0.00531,"46":0.00531,"47":0.00531,"48":0.00531,"49":0.01062,"50":0.00531,"51":0.00531,"52":0.00531,"53":0.00531,"54":0.00531,"55":0.00531,"56":0.00531,"57":0.00531,"58":0.00531,"59":0.00531,"60":0.00531,"70":0.01062,"75":0.00531,"76":0.01062,"98":0.01062,"99":0.00531,"100":0.00531,"102":0.01062,"103":0.01593,"104":0.00531,"105":0.00531,"106":0.00531,"107":0.00531,"108":0.00531,"109":0.72761,"110":0.01062,"111":0.00531,"112":0.01593,"113":0.01062,"114":0.02124,"116":0.02656,"117":0.00531,"119":0.01062,"120":0.03187,"121":0.01062,"122":0.0478,"123":0.00531,"124":0.01593,"125":0.01062,"126":0.01593,"127":0.01062,"128":0.03718,"129":0.01593,"130":0.0478,"131":0.06373,"132":0.02656,"133":0.03718,"134":0.04249,"135":0.04249,"136":0.03187,"137":0.03718,"138":0.07435,"139":0.11153,"140":0.06904,"141":0.06904,"142":0.0956,"143":0.16464,"144":0.40895,"145":18.60974,"146":17.96711,"147":0.01593,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 61 62 63 64 65 66 67 68 69 71 72 73 74 77 78 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 101 115 118 148 149 150"},F:{"85":0.00531,"87":0.00531,"94":0.00531,"95":0.05842,"96":0.0478,"122":0.00531,"126":0.01062,"127":0.71167,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 86 88 89 90 91 92 93 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"16":0.00531,"18":0.00531,"92":0.00531,"109":0.01593,"112":0.01062,"131":0.00531,"132":0.00531,"134":0.00531,"136":0.00531,"138":0.01062,"140":0.00531,"141":0.00531,"142":0.01062,"143":0.02124,"144":0.0478,"145":1.24809,"146":1.22684,_:"12 13 14 15 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 133 135 137 139"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 15.5 16.5 26.5 TP","13.1":0.00531,"14.1":0.01062,"15.6":0.02656,"16.0":0.00531,"16.1":0.00531,"16.2":0.01062,"16.3":0.00531,"16.4":0.00531,"16.6":0.04249,"17.0":0.00531,"17.1":0.05311,"17.2":0.00531,"17.3":0.00531,"17.4":0.00531,"17.5":0.01062,"17.6":0.05311,"18.0":0.00531,"18.1":0.01062,"18.2":0.00531,"18.3":0.01593,"18.4":0.00531,"18.5-18.7":0.02124,"26.0":0.01062,"26.1":0.01593,"26.2":0.07435,"26.3":0.39833,"26.4":0.02656},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00108,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00216,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.0054,"11.0-11.2":0.13601,"11.3-11.4":0.00324,"12.0-12.1":0,"12.2-12.5":0.0421,"13.0-13.1":0,"13.2":0.01619,"13.3":0.00216,"13.4-13.7":0.0054,"14.0-14.4":0.00971,"14.5-14.8":0.00971,"15.0-15.1":0.01403,"15.2-15.3":0.00864,"15.4":0.01079,"15.5":0.01187,"15.6-15.8":0.19106,"16.0":0.01943,"16.1":0.03778,"16.2":0.02159,"16.3":0.03886,"16.4":0.00864,"16.5":0.01619,"16.6-16.7":0.26553,"17.0":0.01187,"17.1":0.01943,"17.2":0.01727,"17.3":0.02375,"17.4":0.03886,"17.5":0.0734,"17.6-17.7":0.1889,"18.0":0.04102,"18.1":0.08419,"18.2":0.04426,"18.3":0.1414,"18.4":0.068,"18.5-18.7":2.16313,"26.0":0.13493,"26.1":0.20509,"26.2":1.20678,"26.3":5.24268,"26.4":0.19645,"26.5":0},P:{"21":0.01039,"22":0.01039,"23":0.02077,"24":0.02077,"25":0.02077,"26":0.03116,"27":0.05194,"28":0.0831,"29":2.72151,_:"4 20 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 15.0 16.0 17.0 18.0 19.0","14.0":0.02077},I:{"0":0.0609,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00003},K:{"0":0.27196,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.30479},Q:{_:"14.9"},O:{"0":0.04689},H:{all:0},L:{"0":37.21955}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/RS.js b/server/api/node_modules/caniuse-lite/data/regions/RS.js new file mode 100644 index 0000000..a736318 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/RS.js @@ -0,0 +1 @@ +module.exports={C:{"52":0.02423,"72":0.00485,"78":0.00485,"88":0.00485,"96":0.00485,"100":0.00485,"101":0.01938,"102":0.00485,"113":0.00485,"114":0.00485,"115":0.64936,"121":0.00485,"122":0.01938,"123":0.063,"125":0.00485,"127":0.00485,"128":0.00969,"134":0.00969,"135":0.00485,"136":0.01938,"138":0.00485,"139":0.00485,"140":0.03392,"141":0.00485,"142":0.01454,"143":0.01938,"144":0.00485,"145":0.01454,"146":0.01454,"147":0.14053,"148":2.41815,"149":0.50398,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 79 80 81 82 83 84 85 86 87 89 90 91 92 93 94 95 97 98 99 103 104 105 106 107 108 109 110 111 112 116 117 118 119 120 124 126 129 130 131 132 133 137 150 151 152 3.5 3.6"},D:{"49":0.00485,"55":0.00485,"57":0.02423,"65":0.00485,"67":0.00485,"69":0.00485,"75":0.00485,"78":0.01454,"79":0.01454,"81":0.00969,"83":0.00485,"86":0.00485,"87":0.01454,"89":0.00485,"91":0.00969,"93":0.00969,"95":0.00969,"96":0.00969,"98":0.00485,"101":0.00485,"102":0.00485,"103":0.08723,"104":0.03392,"105":0.03392,"106":0.03392,"107":0.03392,"108":0.03877,"109":2.2437,"110":0.03392,"111":0.02908,"112":0.09207,"114":0.00969,"115":0.00485,"116":0.08723,"117":0.03877,"118":0.00485,"119":0.04846,"120":0.07269,"121":0.04846,"122":0.05331,"123":0.00485,"124":0.04361,"125":0.00969,"126":0.04361,"127":0.01938,"128":0.04361,"129":0.01938,"130":0.03877,"131":0.16476,"132":0.03877,"133":0.09692,"134":0.02908,"135":0.02423,"136":0.063,"137":0.02423,"138":0.1163,"139":0.38283,"140":0.14538,"141":0.08723,"142":0.09207,"143":0.16476,"144":0.51852,"145":12.21192,"146":10.67574,"147":0.02423,"148":0.00485,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 56 58 59 60 61 62 63 64 66 68 70 71 72 73 74 76 77 80 84 85 88 90 92 94 97 99 100 113 149 150"},F:{"40":0.01454,"46":0.02908,"79":0.00485,"85":0.00485,"95":0.14053,"96":0.04846,"115":0.00485,"119":0.00485,"120":0.00485,"125":0.00485,"126":0.01454,"127":0.85774,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 121 122 123 124 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00485,"92":0.00485,"102":0.02423,"109":0.03877,"122":0.00485,"131":0.00485,"132":0.00485,"133":0.00485,"134":0.00485,"135":0.00485,"136":0.00485,"137":0.00485,"138":0.00485,"139":0.00485,"140":0.00485,"141":0.00969,"142":0.00485,"143":0.01938,"144":0.06784,"145":1.21635,"146":1.17758,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 123 124 125 126 127 128 129 130"},E:{"13":0.00485,"14":0.00969,"15":0.00485,_:"4 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1 15.1 15.2-15.3 26.5 TP","11.1":0.00485,"12.1":0.00969,"13.1":0.03392,"14.1":0.02423,"15.4":0.00969,"15.5":0.00969,"15.6":0.03392,"16.0":0.00485,"16.1":0.00485,"16.2":0.00485,"16.3":0.00969,"16.4":0.00485,"16.5":0.00485,"16.6":0.05815,"17.0":0.00969,"17.1":0.03392,"17.2":0.00969,"17.3":0.02908,"17.4":0.01938,"17.5":0.01454,"17.6":0.07754,"18.0":0.00485,"18.1":0.01938,"18.2":0.00485,"18.3":0.01938,"18.4":0.00485,"18.5-18.7":0.01938,"26.0":0.00969,"26.1":0.00969,"26.2":0.08238,"26.3":0.34891,"26.4":0.02423},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00094,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00188,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00471,"11.0-11.2":0.11871,"11.3-11.4":0.00283,"12.0-12.1":0,"12.2-12.5":0.03674,"13.0-13.1":0,"13.2":0.01413,"13.3":0.00188,"13.4-13.7":0.00471,"14.0-14.4":0.00848,"14.5-14.8":0.00848,"15.0-15.1":0.01225,"15.2-15.3":0.00754,"15.4":0.00942,"15.5":0.01036,"15.6-15.8":0.16676,"16.0":0.01696,"16.1":0.03298,"16.2":0.01884,"16.3":0.03392,"16.4":0.00754,"16.5":0.01413,"16.6-16.7":0.23177,"17.0":0.01036,"17.1":0.01696,"17.2":0.01507,"17.3":0.02073,"17.4":0.03392,"17.5":0.06407,"17.6-17.7":0.16488,"18.0":0.0358,"18.1":0.07349,"18.2":0.03863,"18.3":0.12342,"18.4":0.05936,"18.5-18.7":1.88807,"26.0":0.11777,"26.1":0.17901,"26.2":1.05333,"26.3":4.57603,"26.4":0.17147,"26.5":0},P:{"4":0.07255,"22":0.01036,"23":0.01036,"24":0.01036,"25":0.01036,"26":0.03109,"27":0.04146,"28":0.07255,"29":2.57038,_:"20 21 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.01036},I:{"0":0.02575,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.30924,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.17524},Q:{"14.9":0.00515},O:{"0":0.1237},H:{all:0},L:{"0":46.7287}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/RU.js b/server/api/node_modules/caniuse-lite/data/regions/RU.js new file mode 100644 index 0000000..8bdb7af --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/RU.js @@ -0,0 +1 @@ +module.exports={C:{"52":0.09499,"68":0.00731,"78":0.01461,"91":0.00731,"96":0.00731,"113":0.00731,"114":0.00731,"115":0.56995,"120":0.00731,"121":0.00731,"128":0.01461,"133":0.01461,"134":0.00731,"135":0.02192,"136":0.02192,"137":0.00731,"138":0.01461,"139":0.01461,"140":0.1023,"141":0.00731,"142":0.00731,"143":0.01461,"144":0.00731,"145":0.01461,"146":0.02923,"147":0.13153,"148":1.40294,"149":0.25575,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 92 93 94 95 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 116 117 118 119 122 123 124 125 126 127 129 130 131 132 150 151 152 3.5 3.6"},D:{"39":0.00731,"40":0.00731,"41":0.00731,"42":0.00731,"43":0.00731,"44":0.00731,"45":0.00731,"46":0.00731,"47":0.00731,"48":0.00731,"49":0.04384,"50":0.00731,"51":0.01461,"52":0.00731,"53":0.00731,"54":0.00731,"55":0.00731,"56":0.00731,"57":0.01461,"58":0.00731,"59":0.01461,"60":0.00731,"69":0.00731,"80":0.00731,"81":0.02192,"83":0.02192,"85":0.00731,"86":0.02192,"87":0.01461,"88":0.00731,"89":0.00731,"90":0.00731,"91":0.01461,"92":0.24113,"96":0.00731,"97":0.01461,"98":0.01461,"100":0.00731,"101":0.00731,"102":0.01461,"103":0.13153,"104":0.12422,"105":0.11691,"106":0.21921,"107":0.11691,"108":0.13883,"109":2.49899,"110":0.12422,"111":0.13153,"112":0.13153,"114":0.04384,"116":0.33612,"117":0.11691,"118":0.00731,"119":0.01461,"120":0.18998,"121":0.02923,"122":0.09499,"123":0.05115,"124":0.13153,"125":0.05846,"126":0.02192,"127":0.02192,"128":0.02923,"129":0.01461,"130":0.05846,"131":0.27036,"132":0.02192,"133":0.29228,"134":0.10961,"135":0.02192,"136":0.07307,"137":0.02923,"138":0.14614,"139":0.05115,"140":0.05115,"141":0.08768,"142":0.2046,"143":0.21921,"144":0.6284,"145":9.63063,"146":7.90617,"147":0.02192,"148":0.00731,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 61 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 78 79 84 93 94 95 99 113 115 149 150"},F:{"36":0.01461,"58":0.00731,"76":0.00731,"77":0.1023,"79":0.04384,"80":0.00731,"82":0.00731,"83":0.00731,"84":0.00731,"85":0.05115,"86":0.04384,"87":0.00731,"89":0.00731,"90":0.00731,"92":0.00731,"93":0.00731,"94":0.00731,"95":0.86223,"96":0.1023,"102":0.01461,"113":0.00731,"114":0.01461,"117":0.00731,"118":0.00731,"119":0.01461,"120":0.00731,"121":0.02923,"122":0.01461,"124":0.00731,"125":0.02192,"126":0.07307,"127":1.9802,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 78 81 88 91 97 98 99 100 101 103 104 105 106 107 108 109 110 111 112 115 116 123 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00731,"92":0.01461,"109":0.06576,"120":0.00731,"122":0.00731,"131":0.02923,"132":0.01461,"133":0.01461,"134":0.01461,"135":0.01461,"136":0.01461,"137":0.00731,"138":0.00731,"139":0.00731,"140":0.00731,"141":0.01461,"142":0.02192,"143":0.03654,"144":0.10961,"145":2.55014,"146":2.47707,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 121 123 124 125 126 127 128 129 130"},E:{"14":0.00731,_:"4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 26.5 TP","12.1":0.00731,"13.1":0.00731,"14.1":0.02923,"15.6":0.07307,"16.3":0.02192,"16.4":0.00731,"16.5":0.01461,"16.6":0.08768,"17.0":0.00731,"17.1":0.05115,"17.2":0.00731,"17.3":0.00731,"17.4":0.01461,"17.5":0.01461,"17.6":0.08768,"18.0":0.00731,"18.1":0.01461,"18.2":0.00731,"18.3":0.01461,"18.4":0.00731,"18.5-18.7":0.02923,"26.0":0.02192,"26.1":0.02192,"26.2":0.10961,"26.3":0.54803,"26.4":0.02192},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00065,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00131,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00327,"11.0-11.2":0.08235,"11.3-11.4":0.00196,"12.0-12.1":0,"12.2-12.5":0.02549,"13.0-13.1":0,"13.2":0.0098,"13.3":0.00131,"13.4-13.7":0.00327,"14.0-14.4":0.00588,"14.5-14.8":0.00588,"15.0-15.1":0.0085,"15.2-15.3":0.00523,"15.4":0.00654,"15.5":0.00719,"15.6-15.8":0.11569,"16.0":0.01176,"16.1":0.02288,"16.2":0.01307,"16.3":0.02353,"16.4":0.00523,"16.5":0.0098,"16.6-16.7":0.16078,"17.0":0.00719,"17.1":0.01176,"17.2":0.01046,"17.3":0.01438,"17.4":0.02353,"17.5":0.04444,"17.6-17.7":0.11438,"18.0":0.02484,"18.1":0.05098,"18.2":0.0268,"18.3":0.08562,"18.4":0.04118,"18.5-18.7":1.3098,"26.0":0.0817,"26.1":0.12418,"26.2":0.73071,"26.3":3.17449,"26.4":0.11895,"26.5":0},P:{"4":0.02235,"21":0.01118,"24":0.01118,"26":0.01118,"27":0.01118,"28":0.02235,"29":0.79349,_:"20 22 23 25 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.01118},I:{"0":0.02152,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.55476,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.00731,"11":0.05846,_:"6 7 9 10 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.12657},Q:{"14.9":0.00539},O:{"0":0.0781},H:{all:0},L:{"0":17.61389}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/RW.js b/server/api/node_modules/caniuse-lite/data/regions/RW.js new file mode 100644 index 0000000..3f67dea --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/RW.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.00573,"48":0.00573,"57":0.00573,"72":0.00573,"89":0.00573,"103":0.01146,"112":0.01146,"115":0.23489,"127":0.01146,"129":0.00573,"140":0.0401,"143":0.00573,"144":0.00573,"145":0.00573,"146":0.01146,"147":0.09166,"148":0.97393,"149":0.18333,"150":0.00573,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 52 53 54 55 56 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 90 91 92 93 94 95 96 97 98 99 100 101 102 104 105 106 107 108 109 110 111 113 114 116 117 118 119 120 121 122 123 124 125 126 128 130 131 132 133 134 135 136 137 138 139 141 142 151 152 3.5 3.6"},D:{"49":0.00573,"58":0.00573,"61":0.00573,"65":0.01146,"68":0.00573,"70":0.00573,"71":0.01146,"74":0.01146,"76":0.01719,"77":0.00573,"80":0.01146,"81":0.01146,"83":0.00573,"84":0.00573,"87":0.02292,"89":0.01146,"91":0.00573,"92":0.00573,"93":0.00573,"94":0.01146,"95":0.00573,"98":0.07448,"99":0.00573,"101":0.01719,"102":0.00573,"103":0.03437,"105":0.00573,"106":0.04583,"109":0.29791,"110":0.01146,"111":0.00573,"113":0.0401,"114":0.01146,"115":0.00573,"116":0.14323,"119":0.00573,"120":0.01719,"121":0.00573,"122":0.02292,"123":0.0401,"124":0.01146,"125":0.01146,"126":0.08594,"127":0.01146,"128":0.11458,"129":0.00573,"130":0.00573,"131":0.10312,"132":0.0401,"133":0.02865,"134":0.03437,"135":0.08594,"136":0.04583,"137":0.05156,"138":0.21197,"139":0.37239,"140":0.05156,"141":0.0401,"142":0.06302,"143":0.25781,"144":0.56717,"145":17.06669,"146":12.76421,"147":0.05156,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 59 60 62 63 64 66 67 69 72 73 75 78 79 85 86 88 90 96 97 100 104 107 108 112 117 118 148 149 150"},F:{"28":0.01146,"56":0.00573,"94":0.01719,"95":0.08021,"96":0.06875,"114":0.00573,"122":0.01146,"124":0.00573,"126":0.05156,"127":0.888,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 120 121 123 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"16":0.03437,"17":0.01146,"18":0.13177,"84":0.00573,"89":0.01146,"90":0.01719,"92":0.07448,"100":0.0401,"109":0.00573,"111":0.00573,"112":0.00573,"114":0.05156,"122":0.10885,"131":0.01146,"133":0.01146,"135":0.00573,"136":0.00573,"138":0.00573,"139":0.01719,"140":0.02865,"141":0.02292,"142":0.07448,"143":0.05729,"144":0.14895,"145":2.54941,"146":2.16556,_:"12 13 14 15 79 80 81 83 85 86 87 88 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 113 115 116 117 118 119 120 121 123 124 125 126 127 128 129 130 132 134 137"},E:{"14":0.00573,_:"4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 15.1 15.2-15.3 15.5 16.0 16.2 16.3 16.4 16.5 17.0 17.2 17.3 18.0 26.5 TP","5.1":0.00573,"12.1":0.00573,"13.1":0.01719,"14.1":0.02292,"15.4":0.00573,"15.6":0.09166,"16.1":0.00573,"16.6":0.05156,"17.1":0.01146,"17.4":0.00573,"17.5":0.01719,"17.6":0.24062,"18.1":0.01146,"18.2":0.00573,"18.3":0.01146,"18.4":0.00573,"18.5-18.7":0.0401,"26.0":0.0401,"26.1":0.02865,"26.2":0.10885,"26.3":0.34374,"26.4":0.01719},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00055,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.0011,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00275,"11.0-11.2":0.06926,"11.3-11.4":0.00165,"12.0-12.1":0,"12.2-12.5":0.02144,"13.0-13.1":0,"13.2":0.00825,"13.3":0.0011,"13.4-13.7":0.00275,"14.0-14.4":0.00495,"14.5-14.8":0.00495,"15.0-15.1":0.00715,"15.2-15.3":0.0044,"15.4":0.0055,"15.5":0.00605,"15.6-15.8":0.09729,"16.0":0.00989,"16.1":0.01924,"16.2":0.01099,"16.3":0.01979,"16.4":0.0044,"16.5":0.00825,"16.6-16.7":0.13522,"17.0":0.00605,"17.1":0.00989,"17.2":0.00879,"17.3":0.01209,"17.4":0.01979,"17.5":0.03738,"17.6-17.7":0.09619,"18.0":0.02089,"18.1":0.04287,"18.2":0.02254,"18.3":0.07201,"18.4":0.03463,"18.5-18.7":1.10155,"26.0":0.06871,"26.1":0.10444,"26.2":0.61454,"26.3":2.66978,"26.4":0.10004,"26.5":0},P:{"24":0.03161,"25":0.01054,"26":0.01054,"27":0.02107,"28":0.05268,"29":0.45301,_:"4 20 21 22 23 5.0-5.4 6.2-6.4 8.2 10.1 12.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.02107,"9.2":0.01054,"11.1-11.2":0.01054,"13.0":0.01054},I:{"0":0.0128,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":3.58618,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{"2.5":0.0299,_:"3.0-3.1"},R:{_:"0"},M:{"0":0.12813},Q:{"14.9":0.00427},O:{"0":0.24345},H:{all:0.01},L:{"0":45.43191}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/SA.js b/server/api/node_modules/caniuse-lite/data/regions/SA.js new file mode 100644 index 0000000..610dcbb --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/SA.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.00392,"99":0.00196,"115":0.02154,"128":0.00196,"140":0.00587,"142":0.00196,"145":0.00196,"146":0.00392,"147":0.01762,"148":0.20363,"149":0.04895,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 129 130 131 132 133 134 135 136 137 138 139 141 143 144 150 151 152 3.5 3.6"},D:{"56":0.00196,"69":0.00196,"70":0.00196,"73":0.00196,"75":0.00196,"79":0.00196,"81":0.00196,"83":0.00196,"87":0.00392,"90":0.00196,"91":0.00196,"93":0.00392,"98":0.00196,"101":0.00196,"103":0.08028,"104":0.0744,"105":0.0744,"106":0.07636,"107":0.0744,"108":0.0744,"109":0.3309,"110":0.0744,"111":0.0744,"112":0.0744,"114":0.02154,"116":0.16056,"117":0.07636,"118":0.00196,"119":0.00783,"120":0.07832,"121":0.00587,"122":0.01175,"123":0.00196,"124":0.07636,"125":0.00587,"126":0.00392,"127":0.00587,"128":0.01175,"129":0.00587,"130":0.00587,"131":0.16839,"132":0.00783,"133":0.15664,"134":0.00783,"135":0.01371,"136":0.02937,"137":0.01371,"138":0.07832,"139":0.04699,"140":0.01958,"141":0.01371,"142":0.03133,"143":0.09594,"144":0.38573,"145":3.89642,"146":3.52244,"147":0.00979,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 57 58 59 60 61 62 63 64 65 66 67 68 71 72 74 76 77 78 80 84 85 86 88 89 92 94 95 96 97 99 100 102 113 115 148 149 150"},F:{"79":0.00196,"82":0.00196,"95":0.02741,"96":0.03524,"114":0.00196,"124":0.00196,"125":0.01958,"126":0.00196,"127":0.08811,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 120 121 122 123 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00392,"92":0.00587,"109":0.00587,"114":0.00587,"120":0.00196,"122":0.00196,"124":0.00196,"125":0.00196,"126":0.00392,"129":0.00196,"130":0.00196,"131":0.00196,"132":0.00196,"133":0.00196,"134":0.00196,"135":0.00196,"136":0.00392,"137":0.00196,"138":0.00587,"139":0.00392,"140":0.00392,"141":0.00783,"142":0.01175,"143":0.0235,"144":0.07245,"145":0.76949,"146":0.65006,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 121 123 127 128"},E:{"14":0.00196,_:"4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 16.0 17.0 26.5 TP","5.1":0.00392,"13.1":0.00196,"14.1":0.00392,"15.5":0.00392,"15.6":0.02741,"16.1":0.00587,"16.2":0.00196,"16.3":0.00587,"16.4":0.00392,"16.5":0.00196,"16.6":0.06266,"17.1":0.0372,"17.2":0.00196,"17.3":0.00587,"17.4":0.00587,"17.5":0.01175,"17.6":0.04112,"18.0":0.00196,"18.1":0.00979,"18.2":0.00587,"18.3":0.01566,"18.4":0.01958,"18.5-18.7":0.04895,"26.0":0.02741,"26.1":0.01958,"26.2":0.13314,"26.3":0.49537,"26.4":0.0235},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00182,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00364,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00911,"11.0-11.2":0.22954,"11.3-11.4":0.00547,"12.0-12.1":0,"12.2-12.5":0.07105,"13.0-13.1":0,"13.2":0.02733,"13.3":0.00364,"13.4-13.7":0.00911,"14.0-14.4":0.0164,"14.5-14.8":0.0164,"15.0-15.1":0.02368,"15.2-15.3":0.01457,"15.4":0.01822,"15.5":0.02004,"15.6-15.8":0.32245,"16.0":0.03279,"16.1":0.06376,"16.2":0.03643,"16.3":0.06558,"16.4":0.01457,"16.5":0.02733,"16.6-16.7":0.44815,"17.0":0.02004,"17.1":0.03279,"17.2":0.02915,"17.3":0.04008,"17.4":0.06558,"17.5":0.12388,"17.6-17.7":0.3188,"18.0":0.06923,"18.1":0.1421,"18.2":0.07469,"18.3":0.23865,"18.4":0.11477,"18.5-18.7":3.65077,"26.0":0.22772,"26.1":0.34613,"26.2":2.0367,"26.3":8.84819,"26.4":0.33156,"26.5":0},P:{"21":0.01011,"22":0.01011,"23":0.01011,"24":0.01011,"25":0.03032,"26":0.03032,"27":0.05053,"28":0.12127,"29":2.03135,_:"4 20 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0","7.2-7.4":0.01011,"19.0":0.01011},I:{"0":0.03214,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.41824,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.08847},Q:{_:"14.9"},O:{"0":1.15015},H:{all:0},L:{"0":63.86879}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/SB.js b/server/api/node_modules/caniuse-lite/data/regions/SB.js new file mode 100644 index 0000000..b46b4b3 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/SB.js @@ -0,0 +1 @@ +module.exports={C:{"59":0.00408,"115":0.06113,"121":0.00408,"127":0.00408,"140":0.00815,"145":0.01223,"147":0.03668,"148":1.93563,"149":0.6683,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 122 123 124 125 126 128 129 130 131 132 133 134 135 136 137 138 139 141 142 143 144 146 150 151 152 3.5 3.6"},D:{"63":0.00408,"76":0.02853,"86":0.00815,"91":0.03668,"103":0.02853,"104":0.00408,"105":0.0326,"108":0.01223,"109":0.17523,"111":0.00815,"119":0.04483,"122":0.00408,"123":0.0163,"125":0.00815,"126":0.01223,"127":0.02038,"128":0.01223,"129":0.0163,"131":0.02853,"132":0.04075,"133":0.00408,"134":0.03668,"135":0.02038,"136":0.02038,"137":0.00815,"138":0.04075,"139":0.1304,"140":0.02445,"141":0.00815,"142":0.04483,"143":0.163,"144":0.17115,"145":6.01063,"146":5.28935,"147":0.0163,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 64 65 66 67 68 69 70 71 72 73 74 75 77 78 79 80 81 83 84 85 87 88 89 90 92 93 94 95 96 97 98 99 100 101 102 106 107 110 112 113 114 115 116 117 118 120 121 124 130 148 149 150"},F:{"52":0.04075,"95":0.0815,"96":0.02038,"126":0.00815,"127":1.32845,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"15":0.00815,"16":0.00408,"17":0.01223,"18":0.01223,"89":0.00408,"92":0.03668,"100":0.00408,"109":0.00815,"122":0.00815,"123":0.00408,"126":0.00408,"127":0.00408,"128":0.00815,"130":0.00408,"131":0.0163,"132":0.03668,"133":0.01223,"134":0.01223,"135":0.01223,"136":0.00815,"137":0.02038,"138":0.02038,"139":0.02038,"140":0.02853,"141":0.05705,"142":0.06113,"143":0.07335,"144":0.20783,"145":4.0913,"146":4.07093,_:"12 13 14 79 80 81 83 84 85 86 87 88 90 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 124 125 129"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 13.1 14.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.3 16.4 16.5 17.2 17.3 17.4 17.5 18.0 18.2 26.0 26.4 26.5 TP","12.1":0.00815,"15.6":0.02038,"16.6":0.01223,"17.0":0.00408,"17.1":0.00408,"17.6":0.07335,"18.1":0.00408,"18.3":0.05298,"18.4":0.0489,"18.5-18.7":0.03668,"26.1":0.00815,"26.2":0.02038,"26.3":0.17115},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00041,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00082,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00204,"11.0-11.2":0.05144,"11.3-11.4":0.00122,"12.0-12.1":0,"12.2-12.5":0.01592,"13.0-13.1":0,"13.2":0.00612,"13.3":0.00082,"13.4-13.7":0.00204,"14.0-14.4":0.00367,"14.5-14.8":0.00367,"15.0-15.1":0.00531,"15.2-15.3":0.00327,"15.4":0.00408,"15.5":0.00449,"15.6-15.8":0.07226,"16.0":0.00735,"16.1":0.01429,"16.2":0.00816,"16.3":0.0147,"16.4":0.00327,"16.5":0.00612,"16.6-16.7":0.10043,"17.0":0.00449,"17.1":0.00735,"17.2":0.00653,"17.3":0.00898,"17.4":0.0147,"17.5":0.02776,"17.6-17.7":0.07144,"18.0":0.01551,"18.1":0.03184,"18.2":0.01674,"18.3":0.05348,"18.4":0.02572,"18.5-18.7":0.8181,"26.0":0.05103,"26.1":0.07756,"26.2":0.4564,"26.3":1.98279,"26.4":0.0743,"26.5":0},P:{"21":0.01019,"24":0.01019,"25":0.05097,"27":0.09174,"28":0.12232,"29":0.57084,_:"4 20 22 23 26 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0","5.0-5.4":0.01019,"7.2-7.4":0.07135,"19.0":0.01019},I:{"0":0.00592,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0.69323,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.05333},Q:{"14.9":0.00593},O:{"0":2.5359},H:{all:0},L:{"0":64.67078}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/SC.js b/server/api/node_modules/caniuse-lite/data/regions/SC.js new file mode 100644 index 0000000..dbf842a --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/SC.js @@ -0,0 +1 @@ +module.exports={C:{"60":0.01312,"78":0.01312,"91":0.00437,"114":0.00875,"115":0.1006,"120":0.00437,"121":0.05249,"125":0.00437,"127":0.00437,"128":0.04374,"133":0.00875,"134":0.00437,"135":0.00437,"136":0.00875,"137":0.00437,"140":0.66047,"143":0.00437,"144":0.09623,"147":0.03062,"148":0.51613,"149":0.08311,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 116 117 118 119 122 123 124 126 129 130 131 132 138 139 141 142 145 146 150 151 152 3.5 3.6"},D:{"39":0.00437,"40":0.00437,"41":0.00437,"42":0.00437,"43":0.00437,"44":0.00437,"45":0.00437,"46":0.00437,"47":0.00875,"48":0.00875,"49":0.00437,"50":0.00437,"51":0.00437,"52":0.00437,"53":0.00875,"54":0.00437,"55":0.00875,"56":0.00437,"57":0.00437,"58":0.00875,"59":0.00437,"60":0.00875,"69":0.00437,"78":0.00875,"79":0.00437,"83":0.00875,"86":0.05686,"87":0.01312,"90":0.00437,"92":0.02187,"95":0.0175,"96":0.00437,"97":0.00437,"98":0.00437,"100":0.02624,"101":0.05249,"103":0.00875,"104":0.01312,"106":0.00437,"107":0.08311,"109":0.22745,"110":0.00437,"111":0.01312,"112":0.0175,"113":0.00437,"114":0.04374,"115":0.00437,"116":0.42865,"117":0.00875,"118":0.02624,"119":0.04811,"120":0.39803,"121":0.1006,"122":0.03937,"123":0.0175,"124":0.1006,"125":0.14872,"126":0.07436,"127":0.05249,"128":0.07873,"129":0.15309,"130":0.25369,"131":0.06124,"132":0.07873,"133":1.83708,"134":0.29743,"135":0.12247,"136":0.04374,"137":0.22307,"138":0.31493,"139":0.30181,"140":0.17933,"141":0.16184,"142":0.56862,"143":0.31055,"144":0.58612,"145":7.12962,"146":5.87428,"147":0.03499,"148":0.02187,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 61 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 80 81 84 85 88 89 91 93 94 99 102 105 108 149 150"},F:{"87":0.00437,"89":0.00437,"95":0.05249,"96":0.04811,"105":0.00437,"114":0.0175,"119":0.00437,"126":0.00437,"127":0.1181,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 88 90 91 92 93 94 97 98 99 100 101 102 103 104 106 107 108 109 110 111 112 113 115 116 117 118 120 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.01312,"92":0.00875,"106":0.0175,"108":0.00437,"109":0.00875,"113":0.02624,"114":0.00875,"117":0.00437,"119":0.00875,"120":0.03499,"122":0.03499,"124":0.00437,"126":0.01312,"127":0.00875,"128":0.03062,"129":0.0175,"130":0.00875,"131":0.0175,"132":0.02624,"133":0.04374,"134":0.06561,"135":0.03937,"136":0.02187,"137":0.04811,"138":0.05686,"139":0.05686,"140":0.01312,"141":0.08748,"142":0.06998,"143":0.15309,"144":0.5555,"145":2.75562,"146":2.10827,_:"13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 107 110 111 112 115 116 118 121 123 125"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 10.1 11.1 12.1 15.2-15.3 15.4 16.0 18.0 26.5 TP","9.1":0.00437,"13.1":0.00437,"14.1":0.00875,"15.1":0.00437,"15.5":0.00437,"15.6":0.03937,"16.1":0.0175,"16.2":0.00437,"16.3":0.00437,"16.4":0.01312,"16.5":0.00875,"16.6":0.03062,"17.0":0.01312,"17.1":0.03937,"17.2":0.0175,"17.3":0.00437,"17.4":0.02187,"17.5":0.01312,"17.6":0.02187,"18.1":0.01312,"18.2":0.00437,"18.3":0.0175,"18.4":0.02624,"18.5-18.7":0.03499,"26.0":0.00437,"26.1":0.11372,"26.2":0.1181,"26.3":0.83981,"26.4":0.03937},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00116,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00232,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.0058,"11.0-11.2":0.14614,"11.3-11.4":0.00348,"12.0-12.1":0,"12.2-12.5":0.04524,"13.0-13.1":0,"13.2":0.0174,"13.3":0.00232,"13.4-13.7":0.0058,"14.0-14.4":0.01044,"14.5-14.8":0.01044,"15.0-15.1":0.01508,"15.2-15.3":0.00928,"15.4":0.0116,"15.5":0.01276,"15.6-15.8":0.2053,"16.0":0.02088,"16.1":0.0406,"16.2":0.0232,"16.3":0.04176,"16.4":0.00928,"16.5":0.0174,"16.6-16.7":0.28533,"17.0":0.01276,"17.1":0.02088,"17.2":0.01856,"17.3":0.02552,"17.4":0.04176,"17.5":0.07887,"17.6-17.7":0.20298,"18.0":0.04408,"18.1":0.09047,"18.2":0.04755,"18.3":0.15194,"18.4":0.07307,"18.5-18.7":2.32439,"26.0":0.14498,"26.1":0.22038,"26.2":1.29674,"26.3":5.63351,"26.4":0.2111,"26.5":0},P:{"28":0.05169,"29":1.85047,_:"4 20 21 22 23 24 25 26 27 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 14.0 15.0 16.0 17.0 18.0 19.0","13.0":0.01034},I:{"0":0.02248,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.63563,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.30837,"9":0.10279,"11":0.20558,_:"6 7 10 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.97313},Q:{"14.9":0.29813},O:{"0":0.93375},H:{all:0},L:{"0":47.70198}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/SD.js b/server/api/node_modules/caniuse-lite/data/regions/SD.js new file mode 100644 index 0000000..875890f --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/SD.js @@ -0,0 +1 @@ +module.exports={C:{"47":0.00333,"50":0.00333,"86":0.00333,"111":0.00998,"115":0.10643,"127":0.00665,"128":0.00333,"135":0.00333,"140":0.02328,"141":0.00665,"142":0.0133,"143":0.00998,"146":0.00333,"147":0.02993,"148":0.50223,"149":0.10311,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 49 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 112 113 114 116 117 118 119 120 121 122 123 124 125 126 129 130 131 132 133 134 136 137 138 139 144 145 150 151 152 3.5 3.6"},D:{"37":0.0898,"55":0.00333,"57":0.00333,"62":0.00333,"64":0.00333,"68":0.00333,"69":0.00333,"70":0.00665,"71":0.00333,"72":0.00333,"78":0.01663,"79":0.02328,"80":0.00333,"86":0.00333,"87":0.00333,"91":0.03659,"99":0.00665,"106":0.00333,"109":0.11308,"111":0.00998,"114":0.0133,"116":0.0133,"117":0.00333,"119":0.00333,"120":0.00998,"122":0.00333,"123":0.00665,"124":0.03659,"126":0.0133,"127":0.01996,"131":0.04324,"132":0.00333,"133":0.00665,"134":0.00998,"135":0.0133,"136":0.03659,"137":0.02661,"138":0.04989,"139":0.01663,"140":0.01663,"141":0.00665,"142":0.03659,"143":0.09645,"144":0.12971,"145":1.04769,"146":0.57207,"147":0.00333,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 56 58 59 60 61 63 65 66 67 73 74 75 76 77 81 83 84 85 88 89 90 92 93 94 95 96 97 98 100 101 102 103 104 105 107 108 110 112 113 115 118 121 125 128 129 130 148 149 150"},F:{"79":0.00333,"86":0.00333,"89":0.00333,"90":0.00333,"91":0.00333,"92":0.00333,"93":0.04656,"94":0.05987,"95":0.32262,"96":0.41575,"97":0.02328,"126":0.00665,"127":0.04989,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 85 87 88 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.00333,"18":0.0133,"84":0.00333,"92":0.02328,"100":0.00333,"109":0.00665,"122":0.00333,"129":0.00333,"131":0.00665,"132":0.00665,"133":0.00333,"138":0.00333,"140":0.00333,"141":0.00333,"142":0.00333,"143":0.01996,"144":0.06652,"145":0.39912,"146":0.2561,_:"12 13 15 16 17 79 80 81 83 85 86 87 88 89 90 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 123 124 125 126 127 128 130 134 135 136 137 139"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 14.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.3 16.4 17.0 17.2 17.3 17.4 17.5 17.6 18.0 18.1 18.3 18.4 18.5-18.7 26.0 26.1 26.4 26.5 TP","5.1":0.04324,"13.1":0.00333,"15.6":0.05322,"16.5":0.00333,"16.6":0.00333,"17.1":0.00333,"18.2":0.00998,"26.2":0.0133,"26.3":0.04656},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00014,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00029,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00072,"11.0-11.2":0.01825,"11.3-11.4":0.00043,"12.0-12.1":0,"12.2-12.5":0.00565,"13.0-13.1":0,"13.2":0.00217,"13.3":0.00029,"13.4-13.7":0.00072,"14.0-14.4":0.0013,"14.5-14.8":0.0013,"15.0-15.1":0.00188,"15.2-15.3":0.00116,"15.4":0.00145,"15.5":0.00159,"15.6-15.8":0.02563,"16.0":0.00261,"16.1":0.00507,"16.2":0.0029,"16.3":0.00521,"16.4":0.00116,"16.5":0.00217,"16.6-16.7":0.03562,"17.0":0.00159,"17.1":0.00261,"17.2":0.00232,"17.3":0.00319,"17.4":0.00521,"17.5":0.00985,"17.6-17.7":0.02534,"18.0":0.0055,"18.1":0.01129,"18.2":0.00594,"18.3":0.01897,"18.4":0.00912,"18.5-18.7":0.29019,"26.0":0.0181,"26.1":0.02751,"26.2":0.16189,"26.3":0.70331,"26.4":0.02635,"26.5":0},P:{"20":0.01006,"21":0.05028,"22":0.05028,"23":0.02011,"24":0.06034,"25":0.14079,"26":0.25141,"27":0.2313,"28":0.36203,"29":1.32746,_:"4 5.0-5.4 8.2 9.2 10.1 11.1-11.2 12.0 15.0","6.2-6.4":0.02011,"7.2-7.4":0.18102,"13.0":0.04023,"14.0":0.02011,"16.0":0.04023,"17.0":0.03017,"18.0":0.01006,"19.0":0.01006},I:{"0":0.11334,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00006},K:{"0":3.63011,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.12679},Q:{_:"14.9"},O:{"0":0.86082},H:{all:0},L:{"0":84.99373}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/SE.js b/server/api/node_modules/caniuse-lite/data/regions/SE.js new file mode 100644 index 0000000..db73f5e --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/SE.js @@ -0,0 +1 @@ +module.exports={C:{"52":0.01059,"59":0.00529,"60":0.01059,"78":0.01059,"91":0.00529,"115":0.1747,"128":0.02647,"136":0.00529,"140":0.82586,"143":0.00529,"144":0.00529,"145":0.02118,"146":0.01588,"147":0.10059,"148":1.38173,"149":0.25941,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 129 130 131 132 133 134 135 137 138 139 141 142 150 151 152 3.5 3.6"},D:{"39":0.60881,"40":0.60881,"41":0.60881,"42":0.60881,"43":0.60881,"44":0.60881,"45":0.60881,"46":0.6141,"47":0.6141,"48":0.6141,"49":0.6141,"50":0.60881,"51":0.60881,"52":0.6141,"53":0.60881,"54":0.60881,"55":0.60881,"56":0.60881,"57":0.60881,"58":0.6141,"59":0.60881,"60":0.60881,"66":0.01059,"87":0.01059,"92":0.01059,"93":0.00529,"103":0.06882,"104":0.02118,"105":0.01059,"106":0.01059,"107":0.01059,"108":0.02118,"109":0.23823,"110":0.01059,"111":0.01059,"112":0.04235,"114":0.00529,"116":0.13764,"117":0.01059,"118":0.01588,"119":0.00529,"120":0.02118,"121":0.01059,"122":0.03706,"123":0.00529,"124":0.03176,"125":0.00529,"126":0.04765,"127":0.01059,"128":0.05294,"129":0.00529,"130":0.02118,"131":0.05294,"132":0.01588,"133":0.04235,"134":0.02118,"135":0.02118,"136":0.02647,"137":0.03176,"138":0.20647,"139":0.09529,"140":0.03706,"141":0.0847,"142":0.20117,"143":0.31235,"144":1.10645,"145":10.72564,"146":6.74985,"147":0.01059,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 61 62 63 64 65 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 88 89 90 91 94 95 96 97 98 99 100 101 102 113 115 148 149 150"},F:{"86":0.00529,"95":0.02118,"96":0.03176,"120":0.00529,"125":0.00529,"126":0.01059,"127":0.53469,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 121 122 123 124 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.01059,"109":0.03706,"119":0.00529,"131":0.00529,"132":0.00529,"135":0.00529,"136":0.00529,"137":0.01059,"138":0.00529,"139":0.00529,"140":0.01588,"141":0.00529,"142":0.01588,"143":0.07412,"144":0.21705,"145":3.3511,"146":3.22405,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 120 121 122 123 124 125 126 127 128 129 130 133 134"},E:{"13":0.00529,"14":0.00529,_:"4 5 6 7 8 9 10 11 12 15 3.1 3.2 5.1 6.1 7.1 9.1 12.1 15.1 15.2-15.3 26.5 TP","10.1":0.01059,"11.1":0.01059,"13.1":0.05294,"14.1":0.02647,"15.4":0.00529,"15.5":0.00529,"15.6":0.16411,"16.0":0.00529,"16.1":0.01059,"16.2":0.01059,"16.3":0.02647,"16.4":0.01588,"16.5":0.01059,"16.6":0.24352,"17.0":0.00529,"17.1":0.15353,"17.2":0.01059,"17.3":0.02118,"17.4":0.03706,"17.5":0.04765,"17.6":0.19588,"18.0":0.01588,"18.1":0.03706,"18.2":0.01059,"18.3":0.05823,"18.4":0.03176,"18.5-18.7":0.06882,"26.0":0.03706,"26.1":0.05294,"26.2":0.27529,"26.3":1.50879,"26.4":0.05823},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00184,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00368,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.0092,"11.0-11.2":0.23173,"11.3-11.4":0.00552,"12.0-12.1":0,"12.2-12.5":0.07173,"13.0-13.1":0,"13.2":0.02759,"13.3":0.00368,"13.4-13.7":0.0092,"14.0-14.4":0.01655,"14.5-14.8":0.01655,"15.0-15.1":0.02391,"15.2-15.3":0.01471,"15.4":0.01839,"15.5":0.02023,"15.6-15.8":0.32552,"16.0":0.0331,"16.1":0.06437,"16.2":0.03678,"16.3":0.06621,"16.4":0.01471,"16.5":0.02759,"16.6-16.7":0.45242,"17.0":0.02023,"17.1":0.0331,"17.2":0.02943,"17.3":0.04046,"17.4":0.06621,"17.5":0.12506,"17.6-17.7":0.32184,"18.0":0.06989,"18.1":0.14345,"18.2":0.0754,"18.3":0.24092,"18.4":0.11586,"18.5-18.7":3.68557,"26.0":0.22989,"26.1":0.34943,"26.2":2.05612,"26.3":8.93253,"26.4":0.33472,"26.5":0},P:{"4":0.02078,"21":0.02078,"22":0.01039,"23":0.01039,"24":0.01039,"26":0.03117,"27":0.02078,"28":0.05195,"29":3.01306,_:"20 25 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 18.0 19.0","17.0":0.01039},I:{"0":0.02821,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.13647,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.61178},Q:{_:"14.9"},O:{"0":0.01412},H:{all:0},L:{"0":26.93347}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/SG.js b/server/api/node_modules/caniuse-lite/data/regions/SG.js new file mode 100644 index 0000000..1324669 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/SG.js @@ -0,0 +1 @@ +module.exports={C:{"78":0.00416,"115":0.04163,"125":0.00416,"133":0.00833,"134":0.00416,"135":0.01249,"136":0.00416,"137":0.00416,"139":0.00416,"140":0.02498,"141":0.00416,"143":0.00416,"145":0.00833,"146":0.01249,"147":0.04996,"148":0.87423,"149":0.17068,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 126 127 128 129 130 131 132 138 142 144 150 151 152 3.5 3.6"},D:{"39":0.01665,"40":0.01665,"41":0.01665,"42":0.01665,"43":0.01665,"44":0.01665,"45":0.01665,"46":0.01665,"47":0.01665,"48":0.01665,"49":0.01665,"50":0.01665,"51":0.01665,"52":0.01665,"53":0.01665,"54":0.01665,"55":0.01665,"56":0.01665,"57":0.01665,"58":0.01665,"59":0.01665,"60":0.01665,"70":0.00416,"71":0.00416,"78":0.00416,"81":0.00416,"83":0.00416,"86":0.01249,"87":0.00416,"91":0.00416,"92":0.09159,"95":0.00416,"97":0.00416,"98":0.00833,"99":0.00416,"100":0.00416,"101":0.00833,"103":0.0333,"104":0.02498,"105":0.02498,"106":0.02914,"107":0.0333,"108":0.02914,"109":0.20815,"110":0.02498,"111":0.02914,"112":0.02498,"113":0.00416,"114":0.0333,"115":0.02498,"116":0.07493,"117":0.0333,"118":0.01249,"119":0.02498,"120":0.12073,"121":0.04163,"122":0.0333,"123":0.03747,"124":0.04996,"125":0.06245,"126":0.0333,"127":0.02082,"128":0.09575,"129":0.01665,"130":0.05828,"131":0.19566,"132":0.04996,"133":0.07077,"134":0.04996,"135":0.12073,"136":0.04163,"137":0.08326,"138":0.13738,"139":0.16236,"140":0.23729,"141":0.09575,"142":0.25394,"143":0.25394,"144":0.98247,"145":10.1036,"146":7.61413,"147":0.03747,"148":0.02498,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 61 62 63 64 65 66 67 68 69 72 73 74 75 76 77 79 80 84 85 88 89 90 93 94 96 102 149 150"},F:{"46":0.00416,"90":0.00416,"92":0.00416,"93":0.01249,"94":0.00833,"95":0.20815,"96":0.32055,"97":0.00416,"102":0.00416,"114":0.00833,"122":0.00416,"125":0.01249,"126":0.02914,"127":0.49123,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 91 98 99 100 101 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 120 121 123 124 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"109":0.01249,"114":0.00416,"120":0.00416,"122":0.00416,"123":0.00416,"124":0.00416,"126":0.00833,"127":0.00416,"128":0.00416,"129":0.00416,"130":0.00416,"131":0.01249,"132":0.00416,"133":0.00833,"134":0.00833,"135":0.02914,"136":0.00833,"137":0.00833,"138":0.01665,"139":0.00416,"140":0.00833,"141":0.01249,"142":0.02082,"143":0.04163,"144":0.1915,"145":1.72348,"146":1.67353,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 121 125"},E:{"14":0.00416,"15":0.00416,_:"4 5 6 7 8 9 10 11 12 13 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 26.5 TP","13.1":0.00416,"14.1":0.00833,"15.5":0.00416,"15.6":0.04996,"16.0":0.00416,"16.1":0.00833,"16.2":0.00416,"16.3":0.01249,"16.4":0.00416,"16.5":0.00416,"16.6":0.07077,"17.0":0.04579,"17.1":0.04579,"17.2":0.01249,"17.3":0.00833,"17.4":0.00833,"17.5":0.01665,"17.6":0.07077,"18.0":0.01249,"18.1":0.02914,"18.2":0.00833,"18.3":0.02914,"18.4":0.00833,"18.5-18.7":0.03747,"26.0":0.02498,"26.1":0.02498,"26.2":0.21231,"26.3":0.84925,"26.4":0.03747},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00165,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00331,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00827,"11.0-11.2":0.20843,"11.3-11.4":0.00496,"12.0-12.1":0,"12.2-12.5":0.06451,"13.0-13.1":0,"13.2":0.02481,"13.3":0.00331,"13.4-13.7":0.00827,"14.0-14.4":0.01489,"14.5-14.8":0.01489,"15.0-15.1":0.0215,"15.2-15.3":0.01323,"15.4":0.01654,"15.5":0.0182,"15.6-15.8":0.29279,"16.0":0.02978,"16.1":0.0579,"16.2":0.03308,"16.3":0.05955,"16.4":0.01323,"16.5":0.02481,"16.6-16.7":0.40693,"17.0":0.0182,"17.1":0.02978,"17.2":0.02647,"17.3":0.03639,"17.4":0.05955,"17.5":0.11249,"17.6-17.7":0.28949,"18.0":0.06286,"18.1":0.12903,"18.2":0.06782,"18.3":0.2167,"18.4":0.10421,"18.5-18.7":3.31503,"26.0":0.20678,"26.1":0.3143,"26.2":1.8494,"26.3":8.03448,"26.4":0.30107,"26.5":0},P:{"24":0.01037,"25":0.01037,"26":0.02073,"27":0.01037,"28":0.0622,"29":3.1722,_:"4 20 21 22 23 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.02333,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":1.78612,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.13322,_:"6 7 8 9 10 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.6946},Q:{"14.9":0.06421},O:{"0":0.75297},H:{all:0},L:{"0":42.82122}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/SH.js b/server/api/node_modules/caniuse-lite/data/regions/SH.js new file mode 100644 index 0000000..c04a15e --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/SH.js @@ -0,0 +1 @@ +module.exports={C:{_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 3.5 3.6"},D:{"108":0.637,"112":0.637,"116":1.91099,"143":11.46596,"144":8.28097,"145":19.74694,"146":11.46596,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 109 110 111 113 114 115 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 147 148 149 150"},F:{_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"100":0.637,"139":1.274,"143":0.637,"145":8.28097,"146":15.28795,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 140 141 142 144"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 15.2-15.3 15.4 15.5 15.6 16.0 16.1 16.2 16.3 16.4 16.5 16.6 17.0 17.1 17.2 17.3 17.4 17.5 17.6 18.0 18.1 18.2 18.3 18.4 18.5-18.7 26.0 26.1 26.2 26.3 26.4 26.5 TP"},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00064,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00127,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00319,"11.0-11.2":0.08026,"11.3-11.4":0.00191,"12.0-12.1":0,"12.2-12.5":0.02484,"13.0-13.1":0,"13.2":0.00956,"13.3":0.00127,"13.4-13.7":0.00319,"14.0-14.4":0.00573,"14.5-14.8":0.00573,"15.0-15.1":0.00828,"15.2-15.3":0.0051,"15.4":0.00637,"15.5":0.00701,"15.6-15.8":0.11275,"16.0":0.01147,"16.1":0.0223,"16.2":0.01274,"16.3":0.02293,"16.4":0.0051,"16.5":0.00956,"16.6-16.7":0.1567,"17.0":0.00701,"17.1":0.01147,"17.2":0.01019,"17.3":0.01401,"17.4":0.02293,"17.5":0.04332,"17.6-17.7":0.11148,"18.0":0.02421,"18.1":0.04969,"18.2":0.02612,"18.3":0.08345,"18.4":0.04013,"18.5-18.7":1.27655,"26.0":0.07963,"26.1":0.12103,"26.2":0.71217,"26.3":3.09391,"26.4":0.11593,"26.5":0},P:{_:"4 20 21 22 23 24 25 26 27 28 29 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{_:"0"},Q:{_:"14.9"},O:{_:"0"},H:{all:0},L:{"0":12.73998}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/SI.js b/server/api/node_modules/caniuse-lite/data/regions/SI.js new file mode 100644 index 0000000..0b78dfb --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/SI.js @@ -0,0 +1 @@ +module.exports={C:{"52":0.01178,"68":0.00589,"78":0.00589,"91":0.00589,"95":0.07068,"103":0.00589,"115":0.8246,"122":0.04712,"126":0.01178,"127":0.00589,"128":0.02945,"134":0.01178,"135":0.00589,"136":0.01178,"138":0.04123,"139":0.04123,"140":0.12369,"141":0.00589,"142":0.00589,"143":0.00589,"144":0.13547,"145":0.04123,"146":0.04123,"147":0.37107,"148":4.4764,"149":0.94829,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 92 93 94 96 97 98 99 100 101 102 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 123 124 125 129 130 131 132 133 137 150 151 152 3.5 3.6"},D:{"51":0.01767,"79":0.00589,"96":0.00589,"98":0.00589,"99":0.00589,"100":0.01178,"103":0.04712,"104":0.02356,"105":0.01767,"106":0.01767,"107":0.01767,"108":0.01767,"109":1.0602,"110":0.01767,"111":0.02356,"112":0.01767,"114":0.00589,"115":0.00589,"116":0.07068,"117":0.02356,"119":0.01178,"120":0.02356,"121":0.01178,"122":0.05301,"123":0.01178,"124":0.02356,"125":0.00589,"126":0.00589,"127":0.00589,"128":0.02945,"129":0.01767,"130":0.14136,"131":0.10602,"132":0.02356,"133":0.07657,"134":0.08246,"135":0.04712,"136":0.03534,"137":0.01178,"138":0.14136,"139":0.50065,"140":0.1178,"141":0.22382,"142":0.14725,"143":0.30039,"144":0.85994,"145":15.73219,"146":12.57515,"147":0.03534,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 97 101 102 113 118 148 149 150"},F:{"32":0.00589,"46":0.01767,"95":0.0589,"96":0.02356,"125":0.02356,"126":0.04712,"127":0.90117,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.00589,"109":0.04712,"129":0.00589,"131":0.00589,"133":0.00589,"135":0.02945,"137":0.01178,"138":0.00589,"140":0.00589,"141":0.00589,"142":0.17081,"143":0.05301,"144":0.1767,"145":3.23361,"146":3.19827,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 130 132 134 136 139"},E:{"14":0.00589,_:"4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 16.0 16.4 26.5 TP","13.1":0.01178,"14.1":0.00589,"15.4":0.01178,"15.5":0.00589,"15.6":0.05301,"16.1":0.01178,"16.2":0.00589,"16.3":0.00589,"16.5":0.01178,"16.6":0.08246,"17.0":0.00589,"17.1":0.04712,"17.2":0.01767,"17.3":0.00589,"17.4":0.01767,"17.5":0.05301,"17.6":0.11191,"18.0":0.00589,"18.1":0.03534,"18.2":0.00589,"18.3":0.02356,"18.4":0.00589,"18.5-18.7":0.03534,"26.0":0.02945,"26.1":0.02945,"26.2":0.19437,"26.3":0.91295,"26.4":0.04123},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00107,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00213,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00533,"11.0-11.2":0.1342,"11.3-11.4":0.0032,"12.0-12.1":0,"12.2-12.5":0.04154,"13.0-13.1":0,"13.2":0.01598,"13.3":0.00213,"13.4-13.7":0.00533,"14.0-14.4":0.00959,"14.5-14.8":0.00959,"15.0-15.1":0.01385,"15.2-15.3":0.00852,"15.4":0.01065,"15.5":0.01172,"15.6-15.8":0.18851,"16.0":0.01917,"16.1":0.03728,"16.2":0.0213,"16.3":0.03834,"16.4":0.00852,"16.5":0.01598,"16.6-16.7":0.262,"17.0":0.01172,"17.1":0.01917,"17.2":0.01704,"17.3":0.02343,"17.4":0.03834,"17.5":0.07242,"17.6-17.7":0.18638,"18.0":0.04047,"18.1":0.08307,"18.2":0.04367,"18.3":0.13952,"18.4":0.0671,"18.5-18.7":2.13437,"26.0":0.13313,"26.1":0.20236,"26.2":1.19073,"26.3":5.17296,"26.4":0.19384,"26.5":0},P:{"4":0.03091,"20":0.0103,"21":0.0103,"22":0.0103,"23":0.0103,"24":0.02061,"26":0.02061,"27":0.08244,"28":0.30913,"29":3.45199,_:"25 5.0-5.4 6.2-6.4 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.0103,"8.2":0.0103},I:{"0":0.06979,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00003},K:{"0":0.2301,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.60402},Q:{_:"14.9"},O:{"0":0.01233},H:{all:0},L:{"0":30.96547}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/SK.js b/server/api/node_modules/caniuse-lite/data/regions/SK.js new file mode 100644 index 0000000..8c04605 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/SK.js @@ -0,0 +1 @@ +module.exports={C:{"52":0.01458,"56":0.00486,"88":0.00486,"99":0.0243,"102":0.00486,"115":0.39844,"127":0.00486,"128":0.00486,"129":0.01458,"130":0.00486,"133":0.00486,"136":0.00972,"138":0.00486,"140":0.0826,"142":0.00486,"143":0.00972,"144":0.00486,"145":0.01458,"146":0.04373,"147":0.19922,"148":4.6695,"149":1.00095,"150":0.00486,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 89 90 91 92 93 94 95 96 97 98 100 101 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 131 132 134 135 137 139 141 151 152 3.5 3.6"},D:{"49":0.00972,"79":0.00486,"81":0.00486,"98":0.00972,"99":0.00486,"103":0.04373,"104":0.01944,"105":0.01458,"106":0.01944,"107":0.01944,"108":0.01458,"109":0.98152,"110":0.01944,"111":0.01458,"112":0.07774,"114":0.00972,"116":0.06317,"117":0.0243,"119":0.02915,"120":0.03401,"121":0.00486,"122":0.02915,"123":0.01458,"124":0.02915,"125":0.00972,"126":0.00972,"127":0.03887,"128":0.01944,"129":0.02915,"130":0.00972,"131":0.09232,"132":0.01944,"133":0.09232,"134":0.01944,"135":0.01944,"136":0.01458,"137":0.0243,"138":0.10204,"139":0.13119,"140":0.05345,"141":0.04373,"142":0.07774,"143":0.34013,"144":0.51505,"145":11.03965,"146":9.01345,"147":0.01458,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 100 101 102 113 115 118 148 149 150"},F:{"46":0.0243,"85":0.00486,"88":0.00486,"95":0.17492,"96":0.07774,"114":0.00486,"117":0.00486,"122":0.01944,"125":0.00486,"126":0.0243,"127":1.08842,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 86 87 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 118 119 120 121 123 124 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00486,"92":0.00486,"109":0.05345,"114":0.00486,"127":0.00486,"131":0.00486,"132":0.00486,"133":0.00972,"134":0.00486,"135":0.00486,"138":0.00486,"139":0.00486,"141":0.00972,"142":0.0243,"143":0.04373,"144":0.16035,"145":2.52668,"146":2.67245,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 122 123 124 125 126 128 129 130 136 137 140"},E:{"4":0.00486,"14":0.00486,"15":0.00486,_:"5 6 7 8 9 10 11 12 13 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.5 16.2 16.4 26.5 TP","13.1":0.00486,"14.1":0.00486,"15.4":0.00486,"15.6":0.04859,"16.0":0.00486,"16.1":0.00486,"16.3":0.00486,"16.5":0.00972,"16.6":0.06317,"17.0":0.00486,"17.1":0.04859,"17.2":0.00486,"17.3":0.00972,"17.4":0.01944,"17.5":0.03401,"17.6":0.09718,"18.0":0.00486,"18.1":0.01458,"18.2":0.00972,"18.3":0.0243,"18.4":0.03401,"18.5-18.7":0.04859,"26.0":0.0243,"26.1":0.05831,"26.2":0.21866,"26.3":0.93293,"26.4":0.0826},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00115,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.0023,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00574,"11.0-11.2":0.14465,"11.3-11.4":0.00344,"12.0-12.1":0,"12.2-12.5":0.04477,"13.0-13.1":0,"13.2":0.01722,"13.3":0.0023,"13.4-13.7":0.00574,"14.0-14.4":0.01033,"14.5-14.8":0.01033,"15.0-15.1":0.01492,"15.2-15.3":0.00918,"15.4":0.01148,"15.5":0.01263,"15.6-15.8":0.20319,"16.0":0.02066,"16.1":0.04018,"16.2":0.02296,"16.3":0.04133,"16.4":0.00918,"16.5":0.01722,"16.6-16.7":0.2824,"17.0":0.01263,"17.1":0.02066,"17.2":0.01837,"17.3":0.02526,"17.4":0.04133,"17.5":0.07806,"17.6-17.7":0.2009,"18.0":0.04362,"18.1":0.08954,"18.2":0.04707,"18.3":0.15039,"18.4":0.07232,"18.5-18.7":2.30056,"26.0":0.1435,"26.1":0.21812,"26.2":1.28345,"26.3":5.57576,"26.4":0.20893,"26.5":0},P:{"4":0.0208,"23":0.0104,"24":0.0104,"25":0.0104,"26":0.0416,"27":0.0104,"28":0.0624,"29":2.53764,_:"20 21 22 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 18.0 19.0","17.0":0.0104},I:{"0":0.06164,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00003},K:{"0":0.39072,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.35473},Q:{_:"14.9"},O:{"0":0.02571},H:{all:0},L:{"0":42.80183}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/SL.js b/server/api/node_modules/caniuse-lite/data/regions/SL.js new file mode 100644 index 0000000..f39441b --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/SL.js @@ -0,0 +1 @@ +module.exports={C:{"108":0.07584,"109":0.00379,"112":0.01517,"115":0.08722,"123":0.01517,"127":0.1441,"136":0.01138,"139":0.00379,"140":0.00758,"142":0.03413,"143":0.02654,"145":0.01138,"147":0.03792,"148":0.51571,"149":0.0455,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 110 111 113 114 116 117 118 119 120 121 122 124 125 126 128 129 130 131 132 133 134 135 137 138 141 144 146 150 151 152 3.5 3.6"},D:{"56":0.01517,"58":0.02275,"63":0.02275,"64":0.01138,"65":0.00758,"67":0.01138,"68":0.00379,"69":0.01138,"70":0.01138,"71":0.00379,"72":0.00379,"73":0.00758,"74":0.06826,"75":0.00758,"77":0.01138,"79":0.10997,"80":0.00379,"81":0.02275,"83":0.00379,"84":0.00379,"86":0.00758,"87":0.00379,"90":0.00379,"91":0.00379,"93":0.01517,"94":0.00379,"96":0.00758,"101":0.00379,"103":0.1896,"105":0.00379,"106":0.01138,"108":0.01138,"109":0.10618,"110":0.00379,"111":0.01896,"112":0.00758,"114":0.00758,"115":0.00758,"116":0.01517,"117":0.00379,"118":0.02654,"119":0.07205,"120":0.00758,"121":0.01517,"122":0.0455,"123":0.00758,"124":0.01517,"126":0.02654,"127":0.00758,"128":0.02654,"129":0.01517,"130":0.03034,"131":0.03792,"132":0.00379,"133":0.01138,"134":0.03034,"135":0.00758,"136":0.03413,"137":0.03034,"138":0.33749,"139":0.08722,"140":0.03413,"141":0.0493,"142":0.10238,"143":0.15926,"144":0.43987,"145":5.79797,"146":4.17499,"147":0.02654,"148":0.00379,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 57 59 60 61 62 66 76 78 85 88 89 92 95 97 98 99 100 102 104 107 113 125 149 150"},F:{"36":0.01138,"44":0.00379,"73":0.02654,"79":0.01517,"90":0.00379,"93":0.00379,"94":0.01517,"95":0.12893,"96":0.10618,"109":0.00379,"113":0.00758,"114":0.00379,"117":0.01138,"120":0.00758,"124":0.00758,"125":0.00379,"126":0.10997,"127":0.44366,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 74 75 76 77 78 80 81 82 83 84 85 86 87 88 89 91 92 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 115 116 118 119 121 122 123 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.00379,"16":0.00758,"17":0.00758,"18":0.09859,"89":0.01138,"90":0.01517,"92":0.06067,"95":0.00758,"100":0.00758,"109":0.00758,"111":0.00758,"114":0.01517,"122":0.01138,"124":0.00379,"133":0.00758,"134":0.00379,"136":0.00379,"137":0.00758,"138":0.00758,"139":0.01896,"140":0.01138,"141":0.01138,"142":0.02654,"143":0.05688,"144":0.10997,"145":1.51301,"146":1.38787,_:"12 13 15 79 80 81 83 84 85 86 87 88 91 93 94 96 97 98 99 101 102 103 104 105 106 107 108 110 112 113 115 116 117 118 119 120 121 123 125 126 127 128 129 130 131 132 135"},E:{"14":0.13651,_:"4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 6.1 7.1 9.1 10.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.3 16.4 16.5 17.0 17.2 18.0 18.1 18.2 26.5 TP","5.1":0.01517,"11.1":0.00758,"12.1":0.00379,"13.1":0.04171,"14.1":0.00379,"15.6":0.03413,"16.6":0.05309,"17.1":0.08722,"17.3":0.02654,"17.4":0.01138,"17.5":0.00379,"17.6":0.09859,"18.3":0.02654,"18.4":0.01138,"18.5-18.7":0.02275,"26.0":0.01138,"26.1":0.00379,"26.2":0.17064,"26.3":0.20477,"26.4":0.00379},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00058,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00116,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00291,"11.0-11.2":0.07337,"11.3-11.4":0.00175,"12.0-12.1":0,"12.2-12.5":0.02271,"13.0-13.1":0,"13.2":0.00873,"13.3":0.00116,"13.4-13.7":0.00291,"14.0-14.4":0.00524,"14.5-14.8":0.00524,"15.0-15.1":0.00757,"15.2-15.3":0.00466,"15.4":0.00582,"15.5":0.00641,"15.6-15.8":0.10307,"16.0":0.01048,"16.1":0.02038,"16.2":0.01165,"16.3":0.02096,"16.4":0.00466,"16.5":0.00873,"16.6-16.7":0.14325,"17.0":0.00641,"17.1":0.01048,"17.2":0.00932,"17.3":0.01281,"17.4":0.02096,"17.5":0.0396,"17.6-17.7":0.1019,"18.0":0.02213,"18.1":0.04542,"18.2":0.02387,"18.3":0.07628,"18.4":0.03669,"18.5-18.7":1.16695,"26.0":0.07279,"26.1":0.11064,"26.2":0.65102,"26.3":2.82828,"26.4":0.10598,"26.5":0},P:{"22":0.02044,"24":0.06133,"25":0.27599,"26":0.02044,"27":0.21466,"28":0.36798,"29":1.20617,_:"4 20 21 23 8.2 10.1 13.0 14.0 15.0 17.0 18.0 19.0","5.0-5.4":0.01022,"6.2-6.4":0.01022,"7.2-7.4":0.06133,"9.2":0.03067,"11.1-11.2":0.05111,"12.0":0.03067,"16.0":0.01022},I:{"0":0.0124,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":7.09437,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{"2.5":0.06829,_:"3.0-3.1"},R:{_:"0"},M:{"0":0.0807},Q:{"14.9":0.01242},O:{"0":0.49043},H:{all:0.02},L:{"0":64.01939}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/SM.js b/server/api/node_modules/caniuse-lite/data/regions/SM.js new file mode 100644 index 0000000..349e8c1 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/SM.js @@ -0,0 +1 @@ +module.exports={C:{"52":0.00454,"78":0.09995,"115":0.06815,"125":0.00454,"140":0.18626,"146":0.01363,"147":0.71325,"148":2.89389,"149":0.24532,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 126 127 128 129 130 131 132 133 134 135 136 137 138 139 141 142 143 144 145 150 151 152 3.5 3.6"},D:{"95":0.00454,"100":0.00454,"103":0.04543,"109":1.35836,"112":0.01363,"116":0.05906,"121":0.00454,"122":0.01817,"123":0.00454,"124":0.31347,"128":0.05906,"130":0.02272,"131":0.0636,"132":0.00909,"133":0.00454,"134":0.00909,"135":0.0318,"136":0.02726,"137":0.00909,"138":0.11358,"139":0.05452,"140":0.02272,"143":0.09995,"144":0.13175,"145":14.88287,"146":11.39839,"147":0.01363,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 101 102 104 105 106 107 108 110 111 113 114 115 117 118 119 120 125 126 127 129 141 142 148 149 150"},F:{"89":0.13175,"117":0.00454,"122":0.01363,"126":0.02272,"127":0.97675,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 118 119 120 121 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"129":0.01363,"134":0.00909,"140":0.00909,"143":0.04997,"144":0.03634,"145":2.29876,"146":1.98983,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 130 131 132 133 135 136 137 138 139 141 142"},E:{"15":0.00454,_:"4 5 6 7 8 9 10 11 12 13 14 3.1 3.2 5.1 6.1 7.1 9.1 11.1 15.1 15.2-15.3 15.4 15.5 16.0 16.2 16.3 16.4 16.5 17.5 18.0 18.1 18.2 18.4 26.5 TP","10.1":0.00909,"12.1":0.05452,"13.1":0.59513,"14.1":0.00909,"15.6":0.04089,"16.1":0.02726,"16.6":0.34981,"17.0":0.00454,"17.1":0.23624,"17.2":0.00454,"17.3":0.00454,"17.4":0.0636,"17.6":0.11812,"18.3":0.04997,"18.5-18.7":0.01363,"26.0":0.00909,"26.1":0.21352,"26.2":0.52699,"26.3":1.2675,"26.4":0.02726},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00113,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00226,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00566,"11.0-11.2":0.14267,"11.3-11.4":0.0034,"12.0-12.1":0,"12.2-12.5":0.04416,"13.0-13.1":0,"13.2":0.01698,"13.3":0.00226,"13.4-13.7":0.00566,"14.0-14.4":0.01019,"14.5-14.8":0.01019,"15.0-15.1":0.01472,"15.2-15.3":0.00906,"15.4":0.01132,"15.5":0.01246,"15.6-15.8":0.20042,"16.0":0.02038,"16.1":0.03963,"16.2":0.02265,"16.3":0.04076,"16.4":0.00906,"16.5":0.01698,"16.6-16.7":0.27855,"17.0":0.01246,"17.1":0.02038,"17.2":0.01812,"17.3":0.02491,"17.4":0.04076,"17.5":0.077,"17.6-17.7":0.19816,"18.0":0.04303,"18.1":0.08832,"18.2":0.04643,"18.3":0.14833,"18.4":0.07134,"18.5-18.7":2.26918,"26.0":0.14154,"26.1":0.21514,"26.2":1.26594,"26.3":5.49971,"26.4":0.20608,"26.5":0},P:{"29":25.48965,_:"4 20 21 22 23 24 25 26 27 28 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.05452,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00003},K:{"0":0.0382,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.06548},Q:{_:"14.9"},O:{_:"0"},H:{all:0},L:{"0":19.61562}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/SN.js b/server/api/node_modules/caniuse-lite/data/regions/SN.js new file mode 100644 index 0000000..ca05c08 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/SN.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.03851,"115":0.07702,"127":0.00428,"128":0.00428,"136":0.00428,"137":0.00428,"140":0.02567,"141":0.00428,"143":0.00428,"144":0.00428,"146":0.01284,"147":0.04279,"148":0.67608,"149":0.11981,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 129 130 131 132 133 134 135 138 139 142 145 150 151 152 3.5 3.6"},D:{"49":0.00428,"54":0.00428,"55":0.00428,"56":0.00428,"62":0.00428,"64":0.00428,"65":0.00856,"66":0.00428,"68":0.00428,"69":0.00856,"70":0.00428,"72":0.00428,"73":0.01284,"75":0.00856,"77":0.00428,"78":0.02995,"79":0.01284,"80":0.00428,"81":0.01284,"83":0.01712,"86":0.01712,"87":0.04707,"91":0.00428,"93":0.00428,"95":0.00428,"98":0.04279,"101":0.00428,"103":0.65469,"104":0.60334,"105":0.59478,"106":0.60334,"107":0.59478,"108":0.64613,"109":1.0997,"110":0.60334,"111":0.59906,"112":1.49765,"113":0.00428,"114":0.03423,"115":0.00428,"116":1.24519,"117":0.5905,"118":0.00428,"119":0.03851,"120":0.59906,"121":0.0214,"122":0.01712,"123":0.00856,"124":0.60762,"125":0.00428,"126":0.00856,"127":0.00856,"128":0.04707,"129":0.00428,"130":0.02567,"131":1.26658,"132":0.0214,"133":1.21524,"134":0.05135,"135":0.01712,"136":0.01284,"137":0.0214,"138":0.20967,"139":0.13265,"140":0.0214,"141":0.05563,"142":0.04279,"143":0.09842,"144":0.65041,"145":5.53275,"146":4.25333,"147":0.00428,"148":0.00428,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 57 58 59 60 61 63 67 71 74 76 84 85 88 89 90 92 94 96 97 99 100 102 149 150"},F:{"36":0.00428,"46":0.00428,"79":0.00428,"90":0.00428,"95":0.11981,"96":0.0214,"113":0.00428,"126":0.01712,"127":0.38511,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 85 86 87 88 89 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 114 115 116 117 118 119 120 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"17":0.00428,"18":0.01712,"85":0.00428,"90":0.00428,"92":0.0214,"100":0.00428,"109":0.00428,"119":0.00428,"128":0.00428,"133":0.00428,"135":0.00428,"136":0.00428,"138":0.00856,"139":0.00428,"140":0.00428,"141":0.00428,"142":0.00428,"143":0.09842,"144":0.03423,"145":4.23193,"146":2.20369,_:"12 13 14 15 16 79 80 81 83 84 86 87 88 89 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 120 121 122 123 124 125 126 127 129 130 131 132 134 137"},E:{"11":0.00428,_:"4 5 6 7 8 9 10 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 12.1 15.1 15.2-15.3 15.4 15.5 16.0 16.3 16.4 17.0 17.2 26.5 TP","10.1":0.00428,"11.1":0.00428,"13.1":0.01712,"14.1":0.02567,"15.6":0.08558,"16.1":0.00428,"16.2":0.04279,"16.5":0.00428,"16.6":0.09414,"17.1":0.01284,"17.3":0.00428,"17.4":0.00428,"17.5":0.01284,"17.6":0.09414,"18.0":0.00856,"18.1":0.00428,"18.2":0.00428,"18.3":0.01284,"18.4":0.00856,"18.5-18.7":0.01712,"26.0":0.0214,"26.1":0.01712,"26.2":0.07702,"26.3":0.35516,"26.4":0.01284},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00096,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00192,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.0048,"11.0-11.2":0.12096,"11.3-11.4":0.00288,"12.0-12.1":0,"12.2-12.5":0.03744,"13.0-13.1":0,"13.2":0.0144,"13.3":0.00192,"13.4-13.7":0.0048,"14.0-14.4":0.00864,"14.5-14.8":0.00864,"15.0-15.1":0.01248,"15.2-15.3":0.00768,"15.4":0.0096,"15.5":0.01056,"15.6-15.8":0.16992,"16.0":0.01728,"16.1":0.0336,"16.2":0.0192,"16.3":0.03456,"16.4":0.00768,"16.5":0.0144,"16.6-16.7":0.23616,"17.0":0.01056,"17.1":0.01728,"17.2":0.01536,"17.3":0.02112,"17.4":0.03456,"17.5":0.06528,"17.6-17.7":0.168,"18.0":0.03648,"18.1":0.07488,"18.2":0.03936,"18.3":0.12576,"18.4":0.06048,"18.5-18.7":1.92381,"26.0":0.12,"26.1":0.1824,"26.2":1.07326,"26.3":4.66264,"26.4":0.17472,"26.5":0},P:{"4":0.0205,"22":0.0205,"23":0.01025,"24":0.03076,"25":0.03076,"26":0.04101,"27":0.05126,"28":0.11277,"29":1.10719,_:"20 21 5.0-5.4 6.2-6.4 8.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.09227,"9.2":0.01025},I:{"0":0.10289,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00005},K:{"0":0.19451,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.09154},Q:{_:"14.9"},O:{"0":0.08009},H:{all:0},L:{"0":52.99368}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/SO.js b/server/api/node_modules/caniuse-lite/data/regions/SO.js new file mode 100644 index 0000000..c2171ae --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/SO.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.0032,"68":0.0032,"72":0.0032,"112":0.00639,"115":0.00959,"127":0.0032,"128":0.0032,"140":0.00639,"143":0.0032,"146":0.0032,"147":0.02238,"148":0.59145,"149":0.08632,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 69 70 71 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 113 114 116 117 118 119 120 121 122 123 124 125 126 129 130 131 132 133 134 135 136 137 138 139 141 142 144 145 150 151 152 3.5 3.6"},D:{"50":0.00959,"63":0.00959,"64":0.0032,"68":0.0032,"69":0.01279,"70":0.00959,"72":0.00639,"73":0.00639,"74":0.0032,"75":0.0032,"76":0.0032,"77":0.0032,"78":0.00639,"79":0.00959,"80":0.00639,"81":0.00639,"83":0.0032,"84":0.0032,"85":0.0032,"86":0.05115,"87":0.00959,"88":0.00639,"89":0.0032,"90":0.0032,"95":0.0032,"97":0.00959,"98":0.02558,"103":0.00959,"105":0.0032,"109":0.1055,"114":0.0032,"116":0.00959,"118":0.00639,"119":0.02238,"120":0.0032,"121":0.0032,"122":0.00639,"126":0.00959,"127":0.0032,"128":0.03197,"130":0.0032,"131":0.04156,"132":0.00639,"133":0.01918,"134":0.00639,"135":0.00959,"136":0.00639,"137":0.02877,"138":0.09591,"139":0.07353,"140":0.01599,"141":0.02558,"142":0.04796,"143":0.09911,"144":0.47955,"145":5.4381,"146":3.96748,"147":0.01918,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 51 52 53 54 55 56 57 58 59 60 61 62 65 66 67 71 91 92 93 94 96 99 100 101 102 104 106 107 108 110 111 112 113 115 117 123 124 125 129 148 149 150"},F:{"76":0.0032,"77":0.0032,"91":0.00639,"95":0.02238,"96":0.02558,"125":0.00639,"126":0.01599,"127":0.27494,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 78 79 80 81 82 83 84 85 86 87 88 89 90 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.0032,"18":0.01279,"86":0.0032,"90":0.0032,"92":0.03517,"107":0.0032,"111":0.00639,"114":0.00959,"122":0.0032,"126":0.0032,"129":0.0032,"131":0.0032,"132":0.0032,"134":0.0032,"135":0.00639,"137":0.0032,"138":0.0032,"139":0.0032,"140":0.06074,"141":0.0032,"142":0.04156,"143":0.01599,"144":0.03517,"145":0.9559,"146":0.78007,_:"12 13 15 16 17 79 80 81 83 84 85 87 88 89 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 108 109 110 112 113 115 116 117 118 119 120 121 123 124 125 127 128 130 133 136"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 10.1 12.1 15.1 15.2-15.3 15.4 15.5 16.0 16.2 16.3 16.4 16.5 17.0 17.2 17.3 17.4 18.0 18.1 18.4 26.5 TP","5.1":0.00639,"9.1":0.02558,"11.1":0.00959,"13.1":0.0032,"14.1":0.0032,"15.6":0.00959,"16.1":0.0032,"16.6":0.02238,"17.1":0.03836,"17.5":0.01279,"17.6":0.01918,"18.2":0.0032,"18.3":0.0032,"18.5-18.7":0.01918,"26.0":0.0032,"26.1":0.00959,"26.2":0.01599,"26.3":0.13747,"26.4":0.00639},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00057,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00115,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00287,"11.0-11.2":0.07243,"11.3-11.4":0.00172,"12.0-12.1":0,"12.2-12.5":0.02242,"13.0-13.1":0,"13.2":0.00862,"13.3":0.00115,"13.4-13.7":0.00287,"14.0-14.4":0.00517,"14.5-14.8":0.00517,"15.0-15.1":0.00747,"15.2-15.3":0.0046,"15.4":0.00575,"15.5":0.00632,"15.6-15.8":0.10175,"16.0":0.01035,"16.1":0.02012,"16.2":0.0115,"16.3":0.02069,"16.4":0.0046,"16.5":0.00862,"16.6-16.7":0.14141,"17.0":0.00632,"17.1":0.01035,"17.2":0.0092,"17.3":0.01265,"17.4":0.02069,"17.5":0.03909,"17.6-17.7":0.1006,"18.0":0.02184,"18.1":0.04484,"18.2":0.02357,"18.3":0.07531,"18.4":0.03622,"18.5-18.7":1.15201,"26.0":0.07186,"26.1":0.10922,"26.2":0.64269,"26.3":2.79206,"26.4":0.10462,"26.5":0},P:{"22":0.01031,"23":0.02062,"24":0.03093,"25":0.05156,"26":0.22684,"27":0.28871,"28":0.45369,"29":2.4128,_:"4 20 21 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.12373},I:{"0":0.12234,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00006},K:{"0":3.616,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.09524},Q:{_:"14.9"},O:{"0":1.10209},H:{all:0.01},L:{"0":70.32207}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/SR.js b/server/api/node_modules/caniuse-lite/data/regions/SR.js new file mode 100644 index 0000000..ddde2ab --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/SR.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.01219,"115":0.95481,"133":0.00406,"140":0.00406,"147":0.05282,"148":2.14526,"149":0.39817,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 134 135 136 137 138 139 141 142 143 144 145 146 150 151 152 3.5 3.6"},D:{"69":0.00406,"70":0.00813,"75":0.00406,"79":0.01219,"81":0.00406,"83":0.00406,"93":0.00813,"95":0.00813,"101":0.00406,"102":0.00813,"103":0.01219,"109":0.26816,"111":0.02438,"113":0.00406,"114":0.00406,"115":0.00406,"116":0.08126,"119":0.00813,"120":0.01625,"122":0.04876,"123":0.00813,"124":0.00406,"126":0.06501,"128":0.04063,"129":0.00406,"130":0.01219,"131":0.02438,"133":0.00406,"134":0.00813,"135":0.02032,"136":0.05688,"137":0.00406,"138":0.13814,"139":0.38599,"140":0.02032,"141":0.00813,"142":0.02438,"143":0.10564,"144":2.49875,"145":8.76389,"146":6.99242,"147":0.01625,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 71 72 73 74 76 77 78 80 84 85 86 87 88 89 90 91 92 94 96 97 98 99 100 104 105 106 107 108 110 112 117 118 121 125 127 132 148 149 150"},F:{"93":0.01625,"95":0.06095,"96":0.04469,"123":0.01625,"127":0.4388,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 124 125 126 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"17":0.03657,"18":0.00406,"92":0.00406,"109":0.00406,"114":0.00406,"124":0.00406,"134":0.00406,"135":0.00406,"138":0.00813,"142":0.00406,"143":0.01219,"144":0.34942,"145":2.64095,"146":2.59219,_:"12 13 14 15 16 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 122 123 125 126 127 128 129 130 131 132 133 136 137 139 140 141"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 14.1 15.1 15.2-15.3 15.4 15.5 16.1 16.2 16.3 16.4 17.0 17.2 17.3 18.0 18.1 26.5 TP","13.1":0.3738,"15.6":0.13408,"16.0":0.00406,"16.5":0.00406,"16.6":0.27222,"17.1":0.00813,"17.4":0.00406,"17.5":0.00406,"17.6":0.1097,"18.2":0.00406,"18.3":0.01625,"18.4":0.00406,"18.5-18.7":0.02438,"26.0":0.02438,"26.1":0.02844,"26.2":0.06095,"26.3":0.57695,"26.4":0.0325},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00146,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00292,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.0073,"11.0-11.2":0.18407,"11.3-11.4":0.00438,"12.0-12.1":0,"12.2-12.5":0.05697,"13.0-13.1":0,"13.2":0.02191,"13.3":0.00292,"13.4-13.7":0.0073,"14.0-14.4":0.01315,"14.5-14.8":0.01315,"15.0-15.1":0.01899,"15.2-15.3":0.01169,"15.4":0.01461,"15.5":0.01607,"15.6-15.8":0.25857,"16.0":0.0263,"16.1":0.05113,"16.2":0.02922,"16.3":0.05259,"16.4":0.01169,"16.5":0.02191,"16.6-16.7":0.35937,"17.0":0.01607,"17.1":0.0263,"17.2":0.02337,"17.3":0.03214,"17.4":0.05259,"17.5":0.09934,"17.6-17.7":0.25565,"18.0":0.05551,"18.1":0.11395,"18.2":0.05989,"18.3":0.19137,"18.4":0.09203,"18.5-18.7":2.92754,"26.0":0.18261,"26.1":0.27756,"26.2":1.63323,"26.3":7.09535,"26.4":0.26587,"26.5":0},P:{"21":0.01032,"22":0.0413,"23":0.02065,"24":0.09292,"25":0.15486,"26":0.08259,"27":0.36134,"28":0.28907,"29":4.53221,_:"4 20 5.0-5.4 6.2-6.4 8.2 9.2 10.1 12.0 13.0 14.0 15.0 16.0 18.0","7.2-7.4":0.11356,"11.1-11.2":0.01032,"17.0":0.01032,"19.0":0.01032},I:{"0":0.02965,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.18995,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.10091},Q:{"14.9":0.01781},O:{"0":0.45707},H:{all:0},L:{"0":46.06249}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/ST.js b/server/api/node_modules/caniuse-lite/data/regions/ST.js new file mode 100644 index 0000000..ae3ce1d --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/ST.js @@ -0,0 +1 @@ +module.exports={C:{"78":0.07074,"146":0.03095,"147":0.01768,"148":0.74273,"149":0.00884,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 150 151 152 3.5 3.6"},D:{"32":0.00884,"57":0.31831,"64":0.13705,"66":0.04863,"83":0.23873,"87":0.00884,"109":0.1901,"120":0.01768,"122":0.31831,"126":0.01768,"127":0.07074,"137":0.08842,"138":0.3581,"139":0.07074,"141":0.01768,"142":0.07074,"143":0.84441,"144":1.60482,"145":6.93655,"146":5.10183,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 58 59 60 61 62 63 65 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 84 85 86 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 121 123 124 125 128 129 130 131 132 133 134 135 136 140 147 148 149 150"},F:{"46":0.1901,"63":0.00884,"95":0.11053,"96":0.03979,"127":0.53494,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"15":0.01768,"18":0.00884,"92":0.03979,"109":0.03095,"112":0.00884,"127":0.00884,"140":0.03979,"144":0.05747,"145":1.01241,"146":1.40588,_:"12 13 14 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 113 114 115 116 117 118 119 120 121 122 123 124 125 126 128 129 130 131 132 133 134 135 136 137 138 139 141 142 143"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 14.1 15.1 15.2-15.3 15.4 15.5 15.6 16.0 16.1 16.2 16.3 16.4 16.5 17.0 17.1 17.2 17.3 17.5 17.6 18.0 18.1 18.2 18.3 18.4 18.5-18.7 26.0 26.1 26.4 26.5 TP","13.1":0.00884,"16.6":0.00884,"17.4":0.01768,"26.2":0.01768,"26.3":0.19895},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00034,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00068,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00171,"11.0-11.2":0.04302,"11.3-11.4":0.00102,"12.0-12.1":0,"12.2-12.5":0.01332,"13.0-13.1":0,"13.2":0.00512,"13.3":0.00068,"13.4-13.7":0.00171,"14.0-14.4":0.00307,"14.5-14.8":0.00307,"15.0-15.1":0.00444,"15.2-15.3":0.00273,"15.4":0.00341,"15.5":0.00376,"15.6-15.8":0.06043,"16.0":0.00615,"16.1":0.01195,"16.2":0.00683,"16.3":0.01229,"16.4":0.00273,"16.5":0.00512,"16.6-16.7":0.08399,"17.0":0.00376,"17.1":0.00615,"17.2":0.00546,"17.3":0.00751,"17.4":0.01229,"17.5":0.02322,"17.6-17.7":0.05975,"18.0":0.01297,"18.1":0.02663,"18.2":0.014,"18.3":0.04473,"18.4":0.02151,"18.5-18.7":0.68424,"26.0":0.04268,"26.1":0.06487,"26.2":0.38172,"26.3":1.65835,"26.4":0.06214,"26.5":0},P:{"21":0.02043,"24":0.05106,"25":0.01021,"27":0.16341,"28":0.37788,"29":1.16427,_:"4 20 22 23 26 6.2-6.4 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","5.0-5.4":0.01021,"7.2-7.4":0.06128,"8.2":0.01021},I:{"0":0.02787,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.212,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.06137},Q:{_:"14.9"},O:{"0":1.00422},H:{all:0},L:{"0":71.10862}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/SV.js b/server/api/node_modules/caniuse-lite/data/regions/SV.js new file mode 100644 index 0000000..2ba820b --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/SV.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.011,"52":0.0055,"115":0.14295,"122":0.0055,"123":0.0055,"128":0.02749,"136":0.01649,"140":0.07697,"141":0.011,"144":0.0055,"145":0.01649,"146":0.01649,"147":0.04948,"148":1.52295,"149":0.25291,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 124 125 126 127 129 130 131 132 133 134 135 137 138 139 142 143 150 151 152 3.5 3.6"},D:{"64":0.02749,"65":0.0055,"70":0.0055,"79":0.01649,"83":0.0055,"87":0.0055,"90":0.0055,"91":0.01649,"93":0.0055,"96":0.0055,"97":0.02199,"99":0.0055,"103":0.14845,"104":0.12645,"105":0.11546,"106":0.12645,"107":0.12645,"108":0.12645,"109":0.97864,"110":0.12645,"111":0.17594,"112":0.30789,"114":0.0055,"116":0.31339,"117":0.12096,"119":0.08797,"120":0.14295,"121":0.0055,"122":0.03849,"123":0.0055,"124":0.14295,"125":0.011,"126":0.02749,"127":0.011,"128":0.03849,"129":0.02199,"130":0.011,"131":0.31339,"132":0.02749,"133":0.29689,"134":0.02749,"135":0.05498,"136":0.02199,"137":0.02749,"138":0.22542,"139":0.23641,"140":0.16494,"141":0.15394,"142":0.41785,"143":1.9298,"144":0.79171,"145":12.73337,"146":10.4407,"147":0.14845,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 66 67 68 69 71 72 73 74 75 76 77 78 80 81 84 85 86 88 89 92 94 95 98 100 101 102 113 115 118 148 149 150"},F:{"67":0.0055,"95":0.04948,"96":0.04398,"115":0.0055,"126":0.011,"127":0.93466,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.0055,"92":0.011,"100":0.0055,"109":0.01649,"122":0.01649,"130":0.0055,"131":0.03849,"133":0.011,"135":0.01649,"136":0.0055,"137":0.0055,"138":0.011,"139":0.0055,"140":0.0055,"141":0.01649,"142":0.04948,"143":0.05498,"144":0.10446,"145":2.89745,"146":2.95792,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 123 124 125 126 127 128 129 132 134"},E:{"14":0.011,"15":0.0055,_:"4 5 6 7 8 9 10 11 12 13 3.1 3.2 6.1 7.1 9.1 10.1 12.1 14.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.3 16.5 17.2 17.4 18.0 26.5 TP","5.1":0.011,"11.1":0.0055,"13.1":0.0055,"15.6":0.02749,"16.4":0.02199,"16.6":0.06598,"17.0":0.0055,"17.1":0.01649,"17.3":0.0055,"17.5":0.0055,"17.6":0.04398,"18.1":0.0055,"18.2":0.0055,"18.3":0.011,"18.4":0.0055,"18.5-18.7":0.01649,"26.0":0.011,"26.1":0.0055,"26.2":0.21992,"26.3":0.65426,"26.4":0.02749},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00077,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00155,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00387,"11.0-11.2":0.09762,"11.3-11.4":0.00232,"12.0-12.1":0,"12.2-12.5":0.03022,"13.0-13.1":0,"13.2":0.01162,"13.3":0.00155,"13.4-13.7":0.00387,"14.0-14.4":0.00697,"14.5-14.8":0.00697,"15.0-15.1":0.01007,"15.2-15.3":0.0062,"15.4":0.00775,"15.5":0.00852,"15.6-15.8":0.13714,"16.0":0.01395,"16.1":0.02712,"16.2":0.0155,"16.3":0.02789,"16.4":0.0062,"16.5":0.01162,"16.6-16.7":0.1906,"17.0":0.00852,"17.1":0.01395,"17.2":0.0124,"17.3":0.01705,"17.4":0.02789,"17.5":0.05269,"17.6-17.7":0.13559,"18.0":0.02944,"18.1":0.06043,"18.2":0.03177,"18.3":0.1015,"18.4":0.04881,"18.5-18.7":1.55269,"26.0":0.09685,"26.1":0.14721,"26.2":0.86622,"26.3":3.76318,"26.4":0.14101,"26.5":0},P:{"22":0.02099,"24":0.0105,"25":0.0105,"26":0.02099,"27":0.03149,"28":0.03149,"29":1.49033,_:"4 20 21 23 5.0-5.4 6.2-6.4 9.2 10.1 11.1-11.2 12.0 13.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.0105,"8.2":0.03149,"14.0":0.02099},I:{"0":0.04948,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.37817,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.21159},Q:{_:"14.9"},O:{"0":0.11705},H:{all:0},L:{"0":44.14228}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/SY.js b/server/api/node_modules/caniuse-lite/data/regions/SY.js new file mode 100644 index 0000000..2e4e2d7 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/SY.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.02433,"47":0.00348,"52":0.00695,"72":0.00695,"92":0.00348,"106":0.00348,"110":0.00348,"115":0.1877,"127":0.00695,"132":0.00348,"140":0.03824,"142":0.00348,"143":0.02781,"144":0.00348,"145":0.00348,"146":0.00695,"147":0.02433,"148":0.34412,"149":0.073,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 107 108 109 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 128 129 130 131 133 134 135 136 137 138 139 141 150 151 152 3.5 3.6"},D:{"49":0.00348,"50":0.00348,"52":0.00348,"53":0.00348,"55":0.00348,"56":0.01043,"57":0.00348,"58":0.00348,"60":0.00348,"62":0.00348,"63":0.00348,"64":0.00695,"65":0.0139,"66":0.0139,"68":0.0139,"69":0.01043,"70":0.03128,"71":0.0139,"72":0.00695,"73":0.01738,"74":0.00695,"75":0.00695,"76":0.00348,"78":0.00348,"79":0.03128,"80":0.01043,"81":0.01043,"83":0.01738,"85":0.00348,"86":0.01738,"87":0.03476,"88":0.00695,"89":0.00348,"90":0.00348,"92":0.00348,"93":0.00348,"94":0.00695,"95":0.00348,"97":0.0139,"98":0.06257,"99":0.00348,"100":0.00348,"101":0.00348,"102":0.01043,"103":0.31284,"104":0.31632,"105":0.31632,"106":0.30936,"107":0.32674,"108":0.32327,"109":0.95938,"110":0.32327,"111":0.31979,"112":0.84467,"113":0.02086,"114":0.02086,"115":0.00348,"116":0.62568,"117":0.31284,"118":0.00348,"119":0.02433,"120":0.3615,"121":0.00695,"122":0.03128,"123":0.02781,"124":0.31979,"125":0.00695,"126":0.03824,"127":0.02086,"128":0.00695,"129":0.0139,"130":0.03128,"131":0.75777,"132":0.0139,"133":0.65696,"134":0.02781,"135":0.04171,"136":0.05909,"137":0.07647,"138":0.06952,"139":0.07995,"140":0.03476,"141":0.03476,"142":0.06952,"143":0.20508,"144":0.49359,"145":2.6209,"146":1.9848,"147":0.00695,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 51 54 59 61 67 77 84 91 96 148 149 150"},F:{"46":0.00348,"79":0.00695,"84":0.00348,"85":0.00695,"89":0.00348,"91":0.00348,"92":0.00348,"93":0.01043,"94":0.01043,"95":0.06604,"96":0.05214,"126":0.0139,"127":0.13904,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 86 87 88 90 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"16":0.00348,"17":0.00348,"18":0.01043,"83":0.00695,"89":0.00348,"92":0.02781,"100":0.00348,"109":0.01738,"114":0.00695,"122":0.00695,"135":0.00348,"138":0.00348,"139":0.00348,"140":0.00348,"141":0.00348,"142":0.00348,"143":0.0139,"144":0.02781,"145":0.31979,"146":0.31979,_:"12 13 14 15 79 80 81 84 85 86 87 88 90 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 123 124 125 126 127 128 129 130 131 132 133 134 136 137"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.4 16.5 17.0 17.2 17.3 17.4 17.5 18.1 18.2 18.3 26.4 26.5 TP","5.1":0.14252,"15.1":0.00348,"15.6":0.01043,"16.3":0.00348,"16.6":0.01043,"17.1":0.00348,"17.6":0.00695,"18.0":0.00348,"18.4":0.00348,"18.5-18.7":0.00348,"26.0":0.00695,"26.1":0.00348,"26.2":0.0139,"26.3":0.03824},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00021,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00041,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00103,"11.0-11.2":0.02598,"11.3-11.4":0.00062,"12.0-12.1":0,"12.2-12.5":0.00804,"13.0-13.1":0,"13.2":0.00309,"13.3":0.00041,"13.4-13.7":0.00103,"14.0-14.4":0.00186,"14.5-14.8":0.00186,"15.0-15.1":0.00268,"15.2-15.3":0.00165,"15.4":0.00206,"15.5":0.00227,"15.6-15.8":0.03649,"16.0":0.00371,"16.1":0.00722,"16.2":0.00412,"16.3":0.00742,"16.4":0.00165,"16.5":0.00309,"16.6-16.7":0.05071,"17.0":0.00227,"17.1":0.00371,"17.2":0.0033,"17.3":0.00454,"17.4":0.00742,"17.5":0.01402,"17.6-17.7":0.03608,"18.0":0.00783,"18.1":0.01608,"18.2":0.00845,"18.3":0.02701,"18.4":0.01299,"18.5-18.7":0.41314,"26.0":0.02577,"26.1":0.03917,"26.2":0.23049,"26.3":1.00131,"26.4":0.03752,"26.5":0},P:{"21":0.02036,"22":0.03054,"23":0.03054,"24":0.04072,"25":0.12217,"26":0.15271,"27":0.18325,"28":0.45813,"29":1.47621,_:"4 20 10.1 12.0 18.0","5.0-5.4":0.02036,"6.2-6.4":0.10181,"7.2-7.4":0.15271,"8.2":0.03054,"9.2":0.07127,"11.1-11.2":0.01018,"13.0":0.0509,"14.0":0.07127,"15.0":0.02036,"16.0":0.02036,"17.0":0.11199,"19.0":0.01018},I:{"0":0.03911,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.77636,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.10438},Q:{_:"14.9"},O:{"0":0.94598},H:{all:0},L:{"0":76.05822}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/SZ.js b/server/api/node_modules/caniuse-lite/data/regions/SZ.js new file mode 100644 index 0000000..baf5719 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/SZ.js @@ -0,0 +1 @@ +module.exports={C:{"73":0.00321,"78":0.01604,"111":0.0417,"113":0.02566,"114":0.03208,"115":0.04491,"126":0.00321,"128":0.00321,"140":0.00962,"143":0.00321,"144":0.00321,"146":0.00962,"147":0.0385,"148":0.51007,"149":0.12511,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 112 116 117 118 119 120 121 122 123 124 125 127 129 130 131 132 133 134 135 136 137 138 139 141 142 145 150 151 152 3.5 3.6"},D:{"68":0.00321,"70":0.02246,"72":0.00321,"86":0.00642,"87":0.00321,"88":0.00321,"92":0.00321,"93":0.00321,"97":0.00321,"100":0.00321,"103":0.02887,"104":0.00642,"105":0.00321,"106":0.00321,"108":0.00321,"109":0.25985,"110":0.00321,"111":0.00642,"112":0.01283,"114":0.00962,"115":0.00321,"116":0.0417,"119":0.00321,"120":0.01283,"121":0.00321,"122":0.02566,"123":0.01283,"124":0.05454,"125":0.00642,"126":0.01604,"127":0.02246,"128":0.00642,"130":0.00321,"131":0.0385,"132":0.00321,"133":0.00962,"134":0.04491,"135":0.00962,"136":0.01604,"137":0.01283,"138":0.09624,"139":0.05774,"140":0.01283,"141":0.03208,"142":0.04491,"143":0.08982,"144":0.21494,"145":4.29872,"146":3.21762,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 69 71 73 74 75 76 77 78 79 80 81 83 84 85 89 90 91 94 95 96 98 99 101 102 107 113 117 118 129 147 148 149 150"},F:{"40":0.00642,"42":0.01283,"43":0.00642,"45":0.00642,"86":0.00321,"88":0.00321,"90":0.06416,"93":0.04812,"94":0.10907,"95":0.19248,"96":0.05774,"102":0.00642,"114":0.00321,"124":0.00321,"125":0.00642,"126":0.10586,"127":0.25664,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 41 44 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 87 89 91 92 97 98 99 100 101 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 120 121 122 123 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"16":0.00962,"17":0.00321,"18":0.0417,"89":0.00321,"90":0.00321,"92":0.05774,"100":0.00962,"109":0.02887,"112":0.01283,"114":0.02246,"122":0.00321,"126":0.00321,"129":0.00321,"133":0.00321,"135":0.00321,"136":0.00642,"137":0.00321,"138":0.00962,"139":0.00962,"140":0.00962,"141":0.06737,"142":0.05454,"143":0.04491,"144":0.13474,"145":1.7259,"146":1.37623,_:"12 13 14 15 79 80 81 83 84 85 86 87 88 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 113 115 116 117 118 119 120 121 123 124 125 127 128 130 131 132 134"},E:{"14":0.00642,_:"4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.4 16.0 16.1 16.2 16.4 16.5 17.0 17.2 17.3 17.5 18.1 18.3 26.5 TP","5.1":0.00321,"13.1":0.00962,"14.1":0.00321,"15.2-15.3":0.02566,"15.5":0.00321,"15.6":0.04812,"16.3":0.00321,"16.6":0.0802,"17.1":0.00321,"17.4":0.00321,"17.6":0.0385,"18.0":0.0417,"18.2":0.01604,"18.4":0.00321,"18.5-18.7":0.01283,"26.0":0.00642,"26.1":0.22777,"26.2":0.07378,"26.3":0.31438,"26.4":0.00642},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00057,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00114,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00285,"11.0-11.2":0.0719,"11.3-11.4":0.00171,"12.0-12.1":0,"12.2-12.5":0.02225,"13.0-13.1":0,"13.2":0.00856,"13.3":0.00114,"13.4-13.7":0.00285,"14.0-14.4":0.00514,"14.5-14.8":0.00514,"15.0-15.1":0.00742,"15.2-15.3":0.00456,"15.4":0.00571,"15.5":0.00628,"15.6-15.8":0.101,"16.0":0.01027,"16.1":0.01997,"16.2":0.01141,"16.3":0.02054,"16.4":0.00456,"16.5":0.00856,"16.6-16.7":0.14037,"17.0":0.00628,"17.1":0.01027,"17.2":0.00913,"17.3":0.01255,"17.4":0.02054,"17.5":0.0388,"17.6-17.7":0.09986,"18.0":0.02168,"18.1":0.04451,"18.2":0.0234,"18.3":0.07475,"18.4":0.03595,"18.5-18.7":1.14351,"26.0":0.07133,"26.1":0.10842,"26.2":0.63794,"26.3":2.77146,"26.4":0.10385,"26.5":0},P:{"22":0.01028,"23":0.04111,"24":0.07194,"25":0.04111,"26":0.03083,"27":0.10278,"28":0.26722,"29":2.33301,_:"4 20 21 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0","7.2-7.4":0.65777,"19.0":0.01028},I:{"0":0.01357,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":9.74116,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{"2.5":0.02038,_:"3.0-3.1"},R:{_:"0"},M:{"0":0.88988},Q:{_:"14.9"},O:{"0":0.44834},H:{all:0},L:{"0":62.68562}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/TC.js b/server/api/node_modules/caniuse-lite/data/regions/TC.js new file mode 100644 index 0000000..2e634bc --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/TC.js @@ -0,0 +1 @@ +module.exports={C:{"140":0.00424,"142":0.01273,"147":0.01273,"148":0.40299,"149":0.04666,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 141 143 144 145 146 150 151 152 3.5 3.6"},D:{"69":0.00424,"93":0.00424,"94":0.00424,"103":0.02121,"104":0.00424,"105":0.01697,"107":0.01273,"108":0.00424,"109":0.32239,"110":0.01273,"111":0.00424,"112":0.00848,"116":0.02121,"117":0.01273,"119":0.00848,"120":0.00424,"123":0.00848,"124":0.00424,"126":0.05939,"127":0.00424,"129":0.00424,"130":0.00848,"131":0.02969,"132":0.01697,"133":0.02545,"134":0.02121,"136":0.00848,"137":0.38178,"138":0.09757,"139":0.40723,"140":0.00424,"141":0.00424,"142":0.06787,"143":0.33088,"144":1.00111,"145":8.73852,"146":6.51571,"147":0.02545,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 91 92 95 96 97 98 99 100 101 102 106 113 114 115 118 121 122 125 128 135 148 149 150"},F:{"127":0.25452,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"83":0.02969,"109":0.00424,"120":0.00424,"122":0.00424,"129":0.00424,"135":0.00424,"137":0.00424,"141":0.12726,"142":0.00424,"143":0.02545,"144":0.25452,"145":3.96203,"146":4.3226,_:"12 13 14 15 16 17 18 79 80 81 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 121 123 124 125 126 127 128 130 131 132 133 134 136 138 139 140"},E:{"14":0.00424,_:"4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 14.1 15.2-15.3 15.5 16.4 18.4 26.5 TP","12.1":0.01697,"13.1":0.00424,"15.1":0.00424,"15.4":0.00424,"15.6":0.24604,"16.0":0.01697,"16.1":0.0509,"16.2":0.00424,"16.3":0.02545,"16.5":0.09757,"16.6":0.61933,"17.0":0.00424,"17.1":0.10605,"17.2":0.01273,"17.3":0.01273,"17.4":0.01273,"17.5":0.18241,"17.6":0.17392,"18.0":0.06363,"18.1":0.01697,"18.2":0.00424,"18.3":0.05939,"18.5-18.7":0.27149,"26.0":0.02545,"26.1":0.00424,"26.2":1.13261,"26.3":5.12858,"26.4":0.11453},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00337,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00675,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.01687,"11.0-11.2":0.42522,"11.3-11.4":0.01012,"12.0-12.1":0,"12.2-12.5":0.13162,"13.0-13.1":0,"13.2":0.05062,"13.3":0.00675,"13.4-13.7":0.01687,"14.0-14.4":0.03037,"14.5-14.8":0.03037,"15.0-15.1":0.04387,"15.2-15.3":0.027,"15.4":0.03375,"15.5":0.03712,"15.6-15.8":0.59733,"16.0":0.06075,"16.1":0.11812,"16.2":0.0675,"16.3":0.12149,"16.4":0.027,"16.5":0.05062,"16.6-16.7":0.83019,"17.0":0.03712,"17.1":0.06075,"17.2":0.054,"17.3":0.07424,"17.4":0.12149,"17.5":0.22948,"17.6-17.7":0.59058,"18.0":0.12824,"18.1":0.26323,"18.2":0.13837,"18.3":0.44209,"18.4":0.21261,"18.5-18.7":6.76303,"26.0":0.42185,"26.1":0.64121,"26.2":3.77299,"26.3":16.39123,"26.4":0.61421,"26.5":0},P:{"24":0.01072,"25":0.01072,"26":0.01072,"27":0.01072,"28":0.05362,"29":1.90885,_:"4 20 21 22 23 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.02145},I:{"0":0.11506,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00006},K:{"0":0.19577,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.19001},Q:{_:"14.9"},O:{_:"0"},H:{all:0},L:{"0":25.21169}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/TD.js b/server/api/node_modules/caniuse-lite/data/regions/TD.js new file mode 100644 index 0000000..6ea92b9 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/TD.js @@ -0,0 +1 @@ +module.exports={C:{"58":0.00267,"66":0.00267,"72":0.00534,"93":0.00267,"104":0.00267,"115":0.06143,"116":0.00534,"127":0.00534,"129":0.00534,"133":0.00267,"140":0.0187,"144":0.00534,"146":0.00534,"147":0.03472,"148":0.44606,"149":0.09883,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 59 60 61 62 63 64 65 67 68 69 70 71 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 94 95 96 97 98 99 100 101 102 103 105 106 107 108 109 110 111 112 113 114 117 118 119 120 121 122 123 124 125 126 128 130 131 132 134 135 136 137 138 139 141 142 143 145 150 151 152 3.5 3.6"},D:{"49":0.00267,"71":0.00267,"74":0.00801,"77":0.00534,"80":0.00267,"87":0.00267,"94":0.00267,"98":0.00534,"102":0.00267,"103":0.00534,"108":0.01336,"109":0.05609,"110":0.6544,"114":0.00534,"116":0.00534,"118":0.00801,"119":0.01068,"120":0.00267,"121":0.00801,"122":0.01068,"123":0.01336,"124":0.00267,"126":0.00267,"129":0.00534,"130":0.00534,"131":0.02404,"132":0.00267,"133":0.00267,"134":0.00801,"135":0.00534,"136":0.00267,"137":0.01336,"138":0.02938,"139":0.13088,"140":0.00534,"141":0.00534,"142":0.00801,"143":0.05876,"144":0.16827,"145":1.81895,"146":1.55719,"147":0.00267,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 72 73 75 76 78 79 81 83 84 85 86 88 89 90 91 92 93 95 96 97 99 100 101 104 105 106 107 111 112 113 115 117 125 127 128 148 149 150"},F:{"38":0.00267,"42":0.00534,"93":0.00534,"95":0.02137,"96":0.02137,"117":0.00267,"122":0.00267,"126":0.01336,"127":0.09616,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 118 119 120 121 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"16":0.00267,"17":0.00801,"18":0.01603,"89":0.00267,"90":0.00534,"92":0.02938,"114":0.00801,"116":0.00267,"122":0.00801,"128":0.00267,"132":0.00267,"133":0.00267,"134":0.00267,"139":0.00534,"141":0.01068,"142":0.01068,"143":0.03205,"144":0.04808,"145":0.67843,"146":0.56358,_:"12 13 14 15 79 80 81 83 84 85 86 87 88 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 117 118 119 120 121 123 124 125 126 127 129 130 131 135 136 137 138 140"},E:{"11":0.00267,"14":0.00801,_:"4 5 6 7 8 9 10 12 13 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 14.1 15.1 15.2-15.3 15.4 15.5 15.6 16.0 16.1 16.2 16.3 16.4 16.5 17.0 17.1 17.2 17.3 17.4 17.5 18.0 18.1 18.2 18.3 18.4 18.5-18.7 26.0 26.5 TP","5.1":0.01068,"13.1":0.00267,"16.6":0.00534,"17.6":0.00267,"26.1":0.00801,"26.2":0.01336,"26.3":0.03205,"26.4":0.01068},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00027,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00054,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00134,"11.0-11.2":0.0338,"11.3-11.4":0.0008,"12.0-12.1":0,"12.2-12.5":0.01046,"13.0-13.1":0,"13.2":0.00402,"13.3":0.00054,"13.4-13.7":0.00134,"14.0-14.4":0.00241,"14.5-14.8":0.00241,"15.0-15.1":0.00349,"15.2-15.3":0.00215,"15.4":0.00268,"15.5":0.00295,"15.6-15.8":0.04748,"16.0":0.00483,"16.1":0.00939,"16.2":0.00536,"16.3":0.00966,"16.4":0.00215,"16.5":0.00402,"16.6-16.7":0.06599,"17.0":0.00295,"17.1":0.00483,"17.2":0.00429,"17.3":0.0059,"17.4":0.00966,"17.5":0.01824,"17.6-17.7":0.04694,"18.0":0.01019,"18.1":0.02092,"18.2":0.011,"18.3":0.03514,"18.4":0.0169,"18.5-18.7":0.53756,"26.0":0.03353,"26.1":0.05097,"26.2":0.29989,"26.3":1.30285,"26.4":0.04882,"26.5":0},P:{"20":0.01017,"21":0.01017,"22":0.04068,"23":0.03051,"24":0.04068,"25":0.03051,"26":0.07119,"27":0.27457,"28":0.62033,"29":1.73895,_:"4 5.0-5.4 6.2-6.4 8.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0","7.2-7.4":0.03051,"9.2":0.02034,"19.0":0.01017},I:{"0":0.05126,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00003},K:{"0":0.82551,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.32981},Q:{"14.9":0.01466},O:{"0":0.30049},H:{all:0.01},L:{"0":84.64083}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/TG.js b/server/api/node_modules/caniuse-lite/data/regions/TG.js new file mode 100644 index 0000000..35120eb --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/TG.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.02082,"50":0.00416,"52":0.00416,"57":0.00416,"62":0.00416,"69":0.00833,"72":0.00833,"77":0.00416,"78":0.00416,"91":0.00416,"92":0.00416,"95":0.00833,"113":0.00416,"115":0.2706,"121":0.00416,"123":0.00416,"125":0.00833,"126":0.00416,"127":0.01665,"136":0.00416,"138":0.00416,"140":0.05828,"141":0.00833,"142":0.00416,"143":0.00833,"144":0.00416,"145":0.01249,"146":0.02498,"147":0.17485,"148":1.72765,"149":0.3039,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 51 53 54 55 56 58 59 60 61 63 64 65 66 67 68 70 71 73 74 75 76 79 80 81 82 83 84 85 86 87 88 89 90 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 114 116 117 118 119 120 122 124 128 129 130 131 132 133 134 135 137 139 150 151 152 3.5 3.6"},D:{"32":0.00416,"49":0.00416,"50":0.00416,"56":0.00833,"58":0.00416,"62":0.04996,"63":0.00416,"65":0.00416,"66":0.00416,"67":0.00416,"68":0.00416,"69":0.00833,"70":0.00416,"73":0.01665,"75":0.01665,"76":0.00416,"79":0.00833,"81":0.00833,"83":0.00416,"84":0.00416,"85":0.00416,"86":0.03747,"87":0.01249,"88":0.00416,"91":0.01249,"93":0.02082,"95":0.00416,"97":0.00416,"98":0.01249,"102":0.00416,"103":0.41214,"104":0.35386,"105":0.34969,"106":0.36634,"107":0.36218,"108":0.34969,"109":1.88584,"110":0.34553,"111":0.37051,"112":0.9117,"113":0.00416,"114":0.02498,"115":0.00416,"116":0.7202,"117":0.32888,"118":0.00416,"119":0.0791,"120":0.38716,"121":0.00416,"122":0.01665,"123":0.00833,"124":0.36634,"125":0.00416,"126":0.00833,"127":0.00416,"128":0.05412,"129":0.00833,"130":0.00833,"131":0.78681,"132":0.00833,"133":0.7202,"134":0.02082,"135":0.0791,"136":0.02498,"137":0.0333,"138":0.22897,"139":0.27892,"140":0.02082,"141":0.02914,"142":0.09575,"143":0.14154,"144":0.35802,"145":5.79906,"146":5.37027,"147":0.02082,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 51 52 53 54 55 57 59 60 61 64 71 72 74 77 78 80 89 90 92 94 96 99 100 101 148 149 150"},F:{"40":0.01665,"63":0.00416,"67":0.00416,"95":0.94084,"96":0.10408,"102":0.00416,"109":0.00833,"113":0.00416,"120":0.01665,"125":0.00416,"126":0.05828,"127":0.62861,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 64 65 66 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 103 104 105 106 107 108 110 111 112 114 115 116 117 118 119 121 122 123 124 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"17":0.00416,"18":0.03747,"85":0.00416,"89":0.00833,"90":0.01249,"92":0.07493,"100":0.01665,"109":0.00833,"113":0.00416,"122":0.00833,"124":0.00416,"126":0.00416,"128":0.00416,"131":0.02082,"133":0.00416,"136":0.00416,"139":0.00833,"140":0.00833,"141":0.0333,"142":0.01665,"143":0.03747,"144":0.04996,"145":1.66104,"146":1.69434,_:"12 13 14 15 16 79 80 81 83 84 86 87 88 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 114 115 116 117 118 119 120 121 123 125 127 129 130 132 134 135 137 138"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 12.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.3 16.4 16.5 17.0 17.2 17.3 17.5 18.0 18.1 18.2 18.4 26.5 TP","5.1":0.00416,"11.1":0.00833,"13.1":0.00416,"14.1":0.04163,"15.6":0.04579,"16.6":0.00833,"17.1":0.01249,"17.4":0.00416,"17.6":0.05412,"18.3":0.00416,"18.5-18.7":0.00416,"26.0":0.00416,"26.1":0.00416,"26.2":0.01665,"26.3":0.12489,"26.4":0.01665},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0005,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.001,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.0025,"11.0-11.2":0.0631,"11.3-11.4":0.0015,"12.0-12.1":0,"12.2-12.5":0.01953,"13.0-13.1":0,"13.2":0.00751,"13.3":0.001,"13.4-13.7":0.0025,"14.0-14.4":0.00451,"14.5-14.8":0.00451,"15.0-15.1":0.00651,"15.2-15.3":0.00401,"15.4":0.00501,"15.5":0.00551,"15.6-15.8":0.08864,"16.0":0.00901,"16.1":0.01753,"16.2":0.01002,"16.3":0.01803,"16.4":0.00401,"16.5":0.00751,"16.6-16.7":0.1232,"17.0":0.00551,"17.1":0.00901,"17.2":0.00801,"17.3":0.01102,"17.4":0.01803,"17.5":0.03406,"17.6-17.7":0.08764,"18.0":0.01903,"18.1":0.03906,"18.2":0.02053,"18.3":0.06561,"18.4":0.03155,"18.5-18.7":1.00363,"26.0":0.0626,"26.1":0.09515,"26.2":0.55991,"26.3":2.43246,"26.4":0.09115,"26.5":0},P:{"4":0.01062,"25":0.02125,"26":0.01062,"27":0.01062,"28":0.02125,"29":0.37182,_:"20 21 22 23 24 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","5.0-5.4":0.06374,"7.2-7.4":0.02125},I:{"0":0.11663,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00006},K:{"0":1.83449,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{"2.5":0.00584,_:"3.0-3.1"},R:{_:"0"},M:{"0":0.16344},Q:{_:"14.9"},O:{"0":0.3152},H:{all:0.01},L:{"0":59.62125}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/TH.js b/server/api/node_modules/caniuse-lite/data/regions/TH.js new file mode 100644 index 0000000..983bd94 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/TH.js @@ -0,0 +1 @@ +module.exports={C:{"78":0.00302,"115":0.02715,"135":0.00302,"140":0.00302,"147":0.01207,"148":0.29868,"149":0.06939,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 136 137 138 139 141 142 143 144 145 146 150 151 152 3.5 3.6"},D:{"53":0.00302,"56":0.00302,"57":0.00302,"61":0.00302,"65":0.00302,"67":0.00603,"70":0.00302,"78":0.00302,"79":0.00302,"83":0.00302,"87":0.00603,"91":0.00603,"95":0.00302,"101":0.00302,"102":0.00302,"103":0.00603,"104":0.00302,"106":0.00302,"107":0.00302,"108":0.00302,"109":0.32584,"110":0.00302,"111":0.00302,"112":0.00302,"113":0.00603,"114":0.02112,"115":0.00302,"116":0.02112,"117":0.00302,"119":0.01207,"120":0.00905,"121":0.00603,"122":0.01207,"123":0.00603,"124":0.01207,"125":0.00603,"126":0.00905,"127":0.01509,"128":0.01207,"129":0.00302,"130":0.00603,"131":0.05129,"132":0.01509,"133":0.01509,"134":0.01207,"135":0.01509,"136":0.01207,"137":0.0181,"138":0.10861,"139":0.03319,"140":0.02715,"141":0.02414,"142":0.02414,"143":0.08448,"144":0.13275,"145":4.74574,"146":3.54498,"147":0.01207,"148":0.00302,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 54 55 58 59 60 62 63 64 66 68 69 71 72 73 74 75 76 77 80 81 84 85 86 88 89 90 92 93 94 96 97 98 99 100 105 118 149 150"},F:{"93":0.00302,"94":0.00302,"95":0.04526,"96":0.04526,"126":0.00302,"127":0.07844,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"17":0.00905,"109":0.00302,"122":0.00302,"125":0.00302,"131":0.00302,"135":0.00302,"138":0.00302,"139":0.00302,"140":0.00302,"141":0.00603,"142":0.00302,"143":0.00905,"144":0.02112,"145":0.5672,"146":0.51591,_:"12 13 14 15 16 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 123 124 126 127 128 129 130 132 133 134 136 137"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 15.1 15.2-15.3 26.5 TP","14.1":0.00302,"15.4":0.00302,"15.5":0.00302,"15.6":0.02715,"16.0":0.00302,"16.1":0.00905,"16.2":0.00302,"16.3":0.01207,"16.4":0.00302,"16.5":0.00302,"16.6":0.04526,"17.0":0.00302,"17.1":0.04827,"17.2":0.00302,"17.3":0.00302,"17.4":0.00603,"17.5":0.0181,"17.6":0.03319,"18.0":0.00603,"18.1":0.01509,"18.2":0.00603,"18.3":0.02112,"18.4":0.00905,"18.5-18.7":0.05431,"26.0":0.02414,"26.1":0.02112,"26.2":0.15085,"26.3":0.63357,"26.4":0.0181},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00158,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00315,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00788,"11.0-11.2":0.19847,"11.3-11.4":0.00473,"12.0-12.1":0,"12.2-12.5":0.06143,"13.0-13.1":0,"13.2":0.02363,"13.3":0.00315,"13.4-13.7":0.00788,"14.0-14.4":0.01418,"14.5-14.8":0.01418,"15.0-15.1":0.02048,"15.2-15.3":0.0126,"15.4":0.01575,"15.5":0.01733,"15.6-15.8":0.2788,"16.0":0.02835,"16.1":0.05513,"16.2":0.0315,"16.3":0.05671,"16.4":0.0126,"16.5":0.02363,"16.6-16.7":0.38748,"17.0":0.01733,"17.1":0.02835,"17.2":0.0252,"17.3":0.03465,"17.4":0.05671,"17.5":0.10711,"17.6-17.7":0.27565,"18.0":0.05986,"18.1":0.12286,"18.2":0.06458,"18.3":0.20634,"18.4":0.09923,"18.5-18.7":3.15658,"26.0":0.19689,"26.1":0.29928,"26.2":1.76101,"26.3":7.65045,"26.4":0.28668,"26.5":0},P:{"4":0.06271,"21":0.0209,"22":0.0209,"23":0.0209,"24":0.0209,"25":0.04181,"26":0.05226,"27":0.07317,"28":0.2195,"29":2.91624,_:"20 5.0-5.4 6.2-6.4 8.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.03136,"9.2":0.06271},I:{"0":0.01395,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.31419,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.20946},Q:{_:"14.9"},O:{"0":0.32815},H:{all:0},L:{"0":66.22234}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/TJ.js b/server/api/node_modules/caniuse-lite/data/regions/TJ.js new file mode 100644 index 0000000..729e109 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/TJ.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.00791,"60":0.00395,"69":0.00395,"72":0.00395,"115":0.08697,"123":0.00395,"125":0.00395,"127":0.00395,"128":0.03558,"134":0.00395,"140":0.02767,"141":0.00395,"144":0.01581,"146":0.02372,"147":0.09092,"148":0.37554,"149":0.07511,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 61 62 63 64 65 66 67 68 70 71 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 124 126 129 130 131 132 133 135 136 137 138 139 142 143 145 150 151 152 3.5 3.6"},D:{"27":0.00395,"32":0.00395,"49":0.03558,"58":0.00791,"62":0.00791,"66":0.00791,"68":0.00395,"69":0.00395,"70":0.00791,"71":0.01977,"72":0.00791,"73":0.07115,"74":0.00395,"75":0.00791,"78":0.00395,"79":0.01581,"80":0.05139,"83":0.00791,"84":0.00395,"86":0.01186,"87":0.00395,"88":0.00791,"89":0.00395,"92":0.01186,"94":0.00395,"95":0.00395,"96":0.00395,"98":0.00395,"101":0.00395,"102":0.00791,"103":0.00395,"104":0.00791,"107":0.00395,"108":0.01186,"109":3.83441,"112":0.01581,"114":0.01581,"115":0.01581,"116":0.03162,"117":0.00395,"118":0.00395,"119":0.02372,"120":0.00395,"121":0.00791,"122":0.03162,"123":0.00395,"124":0.01581,"125":0.02372,"126":0.01977,"127":0.00395,"128":0.00791,"129":0.01186,"130":0.01186,"131":0.02767,"132":0.01186,"133":0.03953,"134":0.00791,"135":0.00791,"136":0.02767,"137":0.02767,"138":0.0672,"139":0.01977,"140":0.03953,"141":0.03953,"142":0.08301,"143":0.14231,"144":0.51389,"145":5.30493,"146":4.19809,"147":0.01186,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 28 29 30 31 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 59 60 61 63 64 65 67 76 77 81 85 90 91 93 97 99 100 105 106 110 111 113 148 149 150"},F:{"42":0.00395,"45":0.00395,"63":0.00395,"64":0.00395,"79":0.02372,"81":0.00395,"91":0.00395,"94":0.00395,"95":1.1859,"96":0.02767,"106":0.00395,"109":0.00395,"110":0.02372,"126":0.03558,"127":0.31624,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 43 44 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 82 83 84 85 86 87 88 89 90 92 93 97 98 99 100 101 102 103 104 105 107 108 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"15":0.00395,"18":0.02372,"92":0.0593,"100":0.00791,"109":0.00791,"112":0.00791,"114":0.04348,"124":0.00395,"126":0.00395,"128":0.00791,"131":0.00395,"135":0.00395,"136":0.00395,"137":0.01977,"138":0.00791,"139":0.00395,"141":0.01581,"142":0.02372,"143":0.01977,"144":0.07906,"145":0.93686,"146":0.99616,_:"12 13 14 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 113 115 116 117 118 119 120 121 122 123 125 127 129 130 132 133 134 140"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.3 16.4 16.5 17.0 17.2 17.3 17.5 26.5 TP","5.1":0.05534,"15.6":0.00395,"16.2":0.00395,"16.6":0.02372,"17.1":0.00395,"17.4":0.00395,"17.6":0.05139,"18.0":0.00395,"18.1":0.00791,"18.2":0.01581,"18.3":0.01186,"18.4":0.01581,"18.5-18.7":0.03953,"26.0":0.00791,"26.1":0.02372,"26.2":1.02383,"26.3":0.25299,"26.4":0.00395},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00075,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.0015,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00375,"11.0-11.2":0.09455,"11.3-11.4":0.00225,"12.0-12.1":0,"12.2-12.5":0.02927,"13.0-13.1":0,"13.2":0.01126,"13.3":0.0015,"13.4-13.7":0.00375,"14.0-14.4":0.00675,"14.5-14.8":0.00675,"15.0-15.1":0.00976,"15.2-15.3":0.006,"15.4":0.0075,"15.5":0.00825,"15.6-15.8":0.13283,"16.0":0.01351,"16.1":0.02627,"16.2":0.01501,"16.3":0.02702,"16.4":0.006,"16.5":0.01126,"16.6-16.7":0.18461,"17.0":0.00825,"17.1":0.01351,"17.2":0.01201,"17.3":0.01651,"17.4":0.02702,"17.5":0.05103,"17.6-17.7":0.13133,"18.0":0.02852,"18.1":0.05853,"18.2":0.03077,"18.3":0.09831,"18.4":0.04728,"18.5-18.7":1.50387,"26.0":0.0938,"26.1":0.14258,"26.2":0.83898,"26.3":3.64485,"26.4":0.13658,"26.5":0},P:{"20":0.01023,"22":0.03068,"23":0.03068,"24":0.04091,"25":0.04091,"26":0.05113,"27":0.10227,"28":0.24544,"29":0.77722,_:"4 21 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 14.0 15.0 16.0 17.0 18.0 19.0","5.0-5.4":0.01023,"7.2-7.4":0.04091,"13.0":0.01023},I:{"0":0.01208,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":2.19506,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.01814},Q:{"14.9":0.06047},O:{"0":1.07637},H:{all:0},L:{"0":57.02471}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/TL.js b/server/api/node_modules/caniuse-lite/data/regions/TL.js new file mode 100644 index 0000000..d94c66d --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/TL.js @@ -0,0 +1 @@ +module.exports={C:{"37":0.00591,"50":0.01182,"56":0.04727,"57":0.01182,"63":0.05909,"65":0.00591,"66":0.07091,"70":0.00591,"72":0.04727,"78":0.04727,"94":0.00591,"105":0.01182,"114":0.04136,"115":0.54363,"117":0.01182,"118":0.00591,"126":0.01182,"127":0.02955,"129":0.065,"131":0.00591,"132":0.01182,"133":0.00591,"134":0.02364,"135":0.20682,"136":0.04727,"137":0.00591,"138":0.01773,"139":0.01182,"140":0.24818,"141":0.01773,"142":0.05318,"143":0.02955,"144":0.04727,"145":0.05318,"146":0.09454,"147":0.36636,"148":4.54993,"149":0.76817,"150":0.00591,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 38 39 40 41 42 43 44 45 46 47 48 49 51 52 53 54 55 58 59 60 61 62 64 67 68 69 71 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 95 96 97 98 99 100 101 102 103 104 106 107 108 109 110 111 112 113 116 119 120 121 122 123 124 125 128 130 151 152 3.5 3.6"},D:{"40":0.01182,"49":0.00591,"53":0.00591,"58":0.00591,"63":0.00591,"64":0.00591,"67":0.00591,"68":0.05909,"70":0.01773,"74":0.02364,"75":0.01773,"77":0.00591,"78":0.00591,"79":0.03545,"80":0.05318,"83":0.00591,"86":0.01773,"87":0.01773,"93":0.00591,"95":0.01773,"96":0.01182,"101":0.00591,"103":0.04727,"105":0.00591,"106":0.00591,"109":0.87453,"111":0.00591,"112":0.00591,"114":0.02955,"115":0.00591,"116":0.17136,"117":0.00591,"118":0.00591,"119":0.02364,"120":0.07091,"122":0.03545,"123":0.00591,"124":0.01773,"125":0.01773,"126":0.07682,"127":0.07091,"128":0.065,"129":0.02955,"130":0.02364,"131":0.07682,"132":0.065,"133":0.02364,"134":0.05909,"135":0.04136,"136":0.03545,"137":0.065,"138":0.27181,"139":0.27181,"140":0.08273,"141":0.11818,"142":0.15363,"143":0.26,"144":0.64999,"145":14.21115,"146":10.3762,"147":0.02955,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 41 42 43 44 45 46 47 48 50 51 52 54 55 56 57 59 60 61 62 65 66 69 71 72 73 76 81 84 85 88 89 90 91 92 94 97 98 99 100 102 104 107 108 110 113 121 148 149 150"},F:{"93":0.00591,"95":0.01182,"96":0.00591,"118":0.05318,"124":0.00591,"125":0.00591,"126":0.01773,"127":0.44318,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 119 120 121 122 123 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00591,"14":0.00591,"15":0.01182,"16":0.00591,"17":0.01182,"18":0.01773,"80":0.00591,"84":0.01773,"89":0.01182,"90":0.01182,"92":0.05909,"96":0.00591,"100":0.02364,"109":0.00591,"113":0.00591,"114":0.01773,"117":0.00591,"118":0.02955,"120":0.00591,"122":0.02364,"127":0.01182,"128":0.01182,"130":0.03545,"131":0.03545,"132":0.02364,"133":0.02364,"134":0.00591,"135":0.01773,"136":0.02955,"137":0.09454,"138":0.02955,"139":0.02955,"140":0.08864,"141":0.11818,"142":0.14773,"143":0.13,"144":0.42545,"145":6.104,"146":5.40674,_:"13 79 81 83 85 86 87 88 91 93 94 95 97 98 99 101 102 103 104 105 106 107 108 110 111 112 115 116 119 121 123 124 125 126 129"},E:{"14":0.00591,_:"4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 12.1 15.1 15.4 15.5 16.0 16.2 16.3 17.0 18.2 18.4 26.5 TP","10.1":0.01773,"11.1":0.01182,"13.1":0.01773,"14.1":0.11227,"15.2-15.3":0.00591,"15.6":0.10636,"16.1":0.01182,"16.4":0.01182,"16.5":0.05909,"16.6":0.10636,"17.1":0.01182,"17.2":0.02955,"17.3":0.00591,"17.4":0.01182,"17.5":0.01773,"17.6":0.08864,"18.0":0.01182,"18.1":0.01182,"18.3":0.02364,"18.5-18.7":0.01182,"26.0":0.01773,"26.1":0.065,"26.2":0.04727,"26.3":0.3959,"26.4":0.00591},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00073,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00145,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00363,"11.0-11.2":0.09144,"11.3-11.4":0.00218,"12.0-12.1":0,"12.2-12.5":0.0283,"13.0-13.1":0,"13.2":0.01089,"13.3":0.00145,"13.4-13.7":0.00363,"14.0-14.4":0.00653,"14.5-14.8":0.00653,"15.0-15.1":0.00943,"15.2-15.3":0.00581,"15.4":0.00726,"15.5":0.00798,"15.6-15.8":0.12846,"16.0":0.01306,"16.1":0.0254,"16.2":0.01451,"16.3":0.02613,"16.4":0.00581,"16.5":0.01089,"16.6-16.7":0.17853,"17.0":0.00798,"17.1":0.01306,"17.2":0.01161,"17.3":0.01597,"17.4":0.02613,"17.5":0.04935,"17.6-17.7":0.12701,"18.0":0.02758,"18.1":0.05661,"18.2":0.02976,"18.3":0.09507,"18.4":0.04572,"18.5-18.7":1.45439,"26.0":0.09072,"26.1":0.13789,"26.2":0.81138,"26.3":3.52494,"26.4":0.13209,"26.5":0},P:{"4":0.01032,"21":0.02063,"22":0.07221,"23":0.03095,"24":0.05158,"25":0.05158,"26":0.06189,"27":0.10315,"28":0.25788,"29":0.73238,_:"20 5.0-5.4 6.2-6.4 8.2 9.2 10.1 12.0 13.0 14.0 15.0 17.0 18.0 19.0","7.2-7.4":0.01032,"11.1-11.2":0.03095,"16.0":0.01032},I:{"0":0.00409,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0.31501,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.02864},Q:{"14.9":0.31092},O:{"0":0.47865},H:{all:0},L:{"0":38.05694}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/TM.js b/server/api/node_modules/caniuse-lite/data/regions/TM.js new file mode 100644 index 0000000..9056ae8 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/TM.js @@ -0,0 +1 @@ +module.exports={C:{"62":0.28852,"108":0.00849,"115":0.00849,"117":0.00849,"123":0.01273,"125":0.03819,"133":0.00849,"136":0.01273,"139":0.02122,"140":0.02122,"146":0.00849,"147":0.00849,"148":0.09335,"149":0.01273,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 109 110 111 112 113 114 116 118 119 120 121 122 124 126 127 128 129 130 131 132 134 135 137 138 141 142 143 144 145 150 151 152 3.5 3.6"},D:{"55":0.00849,"72":0.00849,"78":0.02122,"79":0.22912,"81":0.01273,"89":0.02122,"91":0.00849,"101":0.00849,"105":0.03394,"106":0.06365,"109":3.50048,"114":0.00849,"116":0.02546,"117":0.00849,"118":0.02122,"119":0.00849,"122":0.01273,"123":0.01273,"124":0.04667,"125":0.00849,"126":0.01273,"127":0.00849,"131":0.10608,"133":0.00849,"134":0.07213,"135":0.02122,"138":0.04667,"141":0.08062,"142":0.00849,"143":0.20366,"144":0.25458,"145":8.38417,"146":10.05591,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 80 83 84 85 86 87 88 90 92 93 94 95 96 97 98 99 100 102 103 104 107 108 110 111 112 113 115 120 121 128 129 130 132 136 137 139 140 147 148 149 150"},F:{"86":0.01273,"87":0.02546,"95":0.09759,"96":0.04667,"126":0.00849,"127":0.02546,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.04667,"100":0.01273,"109":0.00849,"114":0.00849,"122":0.00849,"123":0.00849,"133":0.01273,"139":0.12305,"141":0.00849,"144":0.02122,"145":0.4243,"146":0.5431,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 124 125 126 127 128 129 130 131 132 134 135 136 137 138 140 142 143"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.3 16.5 17.2 17.4 17.5 18.0 18.1 18.2 18.3 18.4 26.0 26.2 26.5 TP","15.6":0.02122,"16.4":0.05092,"16.6":0.04667,"17.0":0.00849,"17.1":0.02122,"17.3":0.01273,"17.6":0.00849,"18.5-18.7":0.03394,"26.1":0.29701,"26.3":0.13578,"26.4":0.00849},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00045,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00089,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00223,"11.0-11.2":0.05622,"11.3-11.4":0.00134,"12.0-12.1":0,"12.2-12.5":0.0174,"13.0-13.1":0,"13.2":0.00669,"13.3":0.00089,"13.4-13.7":0.00223,"14.0-14.4":0.00402,"14.5-14.8":0.00402,"15.0-15.1":0.0058,"15.2-15.3":0.00357,"15.4":0.00446,"15.5":0.00491,"15.6-15.8":0.07897,"16.0":0.00803,"16.1":0.01562,"16.2":0.00892,"16.3":0.01606,"16.4":0.00357,"16.5":0.00669,"16.6-16.7":0.10976,"17.0":0.00491,"17.1":0.00803,"17.2":0.00714,"17.3":0.00982,"17.4":0.01606,"17.5":0.03034,"17.6-17.7":0.07808,"18.0":0.01695,"18.1":0.0348,"18.2":0.01829,"18.3":0.05845,"18.4":0.02811,"18.5-18.7":0.89412,"26.0":0.05577,"26.1":0.08477,"26.2":0.49882,"26.3":2.16704,"26.4":0.0812,"26.5":0},P:{"22":0.01014,"23":0.06084,"24":0.24336,"25":0.03042,"26":0.08112,"27":0.27378,"28":0.17238,"29":0.69965,_:"4 20 21 5.0-5.4 8.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 18.0","6.2-6.4":0.03042,"7.2-7.4":0.46644,"9.2":0.03042,"17.0":0.3549,"19.0":0.01014},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0.54116,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.0403},Q:{_:"14.9"},O:{"0":0.11514},H:{all:0},L:{"0":56.70131}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/TN.js b/server/api/node_modules/caniuse-lite/data/regions/TN.js new file mode 100644 index 0000000..6955691 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/TN.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.02523,"52":0.01514,"78":0.00505,"89":0.18166,"108":0.01009,"115":0.1211,"123":0.00505,"128":0.01009,"134":0.00505,"136":0.00505,"137":0.00505,"140":0.03028,"143":0.00505,"145":0.00505,"146":0.00505,"147":0.04037,"148":1.06975,"149":0.22707,"150":0.00505,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 109 110 111 112 113 114 116 117 118 119 120 121 122 124 125 126 127 129 130 131 132 133 135 138 139 141 142 144 151 152 3.5 3.6"},D:{"49":0.01009,"50":0.00505,"52":0.00505,"56":0.02523,"58":0.02523,"59":0.00505,"60":0.00505,"63":0.00505,"65":0.02018,"66":0.01009,"68":0.01009,"69":0.00505,"70":0.01009,"71":0.01009,"72":0.00505,"73":0.01514,"75":0.01009,"78":0.00505,"79":0.00505,"81":0.00505,"83":0.00505,"84":0.00505,"85":0.00505,"86":0.00505,"87":0.01009,"88":0.00505,"89":0.00505,"90":0.00505,"91":0.03028,"92":0.00505,"93":0.00505,"94":0.00505,"95":0.02018,"96":0.00505,"98":0.01009,"99":0.00505,"102":0.01009,"103":0.39863,"104":0.39359,"105":0.39359,"106":0.39359,"107":0.39359,"108":0.38854,"109":2.40694,"110":0.39359,"111":0.3835,"112":0.85277,"113":0.00505,"114":0.01514,"115":0.00505,"116":0.80736,"117":0.37845,"118":0.00505,"119":0.04541,"120":0.39359,"121":0.01009,"122":0.03028,"123":0.02018,"124":0.40873,"125":0.01514,"126":0.07064,"127":0.01009,"128":0.02523,"129":0.01009,"130":0.01514,"131":0.88305,"132":0.05551,"133":0.8225,"134":0.04541,"135":0.03532,"136":0.03028,"137":0.03532,"138":0.11101,"139":0.19679,"140":0.04037,"141":0.03532,"142":0.09083,"143":0.16652,"144":0.64084,"145":10.56632,"146":9.30987,"147":0.01514,"148":0.00505,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 51 53 54 55 57 61 62 64 67 74 76 77 80 97 100 101 149 150"},F:{"46":0.01514,"73":0.00505,"79":0.00505,"87":0.00505,"95":0.08074,"96":0.03028,"119":0.00505,"123":0.00505,"126":0.02523,"127":1.3826,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 74 75 76 77 78 80 81 82 83 84 85 86 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 120 121 122 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.01009,"90":0.00505,"92":0.01514,"109":0.02523,"114":0.00505,"115":0.00505,"122":0.00505,"125":0.00505,"132":0.01009,"134":0.00505,"135":0.00505,"136":0.00505,"138":0.01009,"139":0.00505,"140":0.00505,"141":0.05046,"142":0.01009,"143":0.03532,"144":0.08578,"145":1.54912,"146":1.49866,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 116 117 118 119 120 121 123 124 126 127 128 129 130 131 133 137"},E:{"14":0.00505,_:"4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.3 16.4 16.5 17.0 17.2 18.1 18.2 26.5 TP","13.1":0.00505,"14.1":0.00505,"15.6":0.02018,"16.6":0.02523,"17.1":0.01009,"17.3":0.00505,"17.4":0.00505,"17.5":0.00505,"17.6":0.04037,"18.0":0.00505,"18.3":0.01009,"18.4":0.00505,"18.5-18.7":0.02523,"26.0":0.01009,"26.1":0.00505,"26.2":0.06055,"26.3":0.1312,"26.4":0.01514},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00058,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00116,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.0029,"11.0-11.2":0.07309,"11.3-11.4":0.00174,"12.0-12.1":0,"12.2-12.5":0.02262,"13.0-13.1":0,"13.2":0.0087,"13.3":0.00116,"13.4-13.7":0.0029,"14.0-14.4":0.00522,"14.5-14.8":0.00522,"15.0-15.1":0.00754,"15.2-15.3":0.00464,"15.4":0.0058,"15.5":0.00638,"15.6-15.8":0.10268,"16.0":0.01044,"16.1":0.0203,"16.2":0.0116,"16.3":0.02088,"16.4":0.00464,"16.5":0.0087,"16.6-16.7":0.14271,"17.0":0.00638,"17.1":0.01044,"17.2":0.00928,"17.3":0.01276,"17.4":0.02088,"17.5":0.03945,"17.6-17.7":0.10152,"18.0":0.02204,"18.1":0.04525,"18.2":0.02378,"18.3":0.07599,"18.4":0.03655,"18.5-18.7":1.16255,"26.0":0.07251,"26.1":0.11022,"26.2":0.64857,"26.3":2.81761,"26.4":0.10558,"26.5":0},P:{"22":0.01034,"23":0.01034,"24":0.01034,"25":0.01034,"26":0.03102,"27":0.02068,"28":0.09306,"29":1.08575,_:"4 20 21 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.03102},I:{"0":0.07424,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00004},K:{"0":0.16348,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.08917},Q:{_:"14.9"},O:{"0":0.08917},H:{all:0},L:{"0":50.29318}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/TO.js b/server/api/node_modules/caniuse-lite/data/regions/TO.js new file mode 100644 index 0000000..b416d1e --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/TO.js @@ -0,0 +1 @@ +module.exports={C:{"147":0.04426,"148":5.88193,"149":0.32459,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 150 151 152 3.5 3.6"},D:{"55":0.00984,"69":0.00984,"103":0.03934,"105":0.00984,"109":0.00984,"112":0.00984,"114":0.01967,"116":0.04426,"122":0.34426,"126":0.02951,"128":0.01967,"130":0.00984,"131":0.01967,"132":0.01967,"135":0.00984,"136":0.00984,"137":0.02951,"138":0.0541,"139":0.17705,"140":0.17705,"141":0.01967,"142":0.08361,"143":0.94917,"144":1.05737,"145":10.53436,"146":4.94259,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 56 57 58 59 60 61 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 104 106 107 108 110 111 113 115 117 118 119 120 121 123 124 125 127 129 133 134 147 148 149 150"},F:{"127":5.90652,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.01967,"84":0.03934,"109":0.00984,"113":0.01967,"124":0.00984,"135":0.01967,"136":0.00984,"138":0.00984,"139":0.02951,"140":0.04426,"141":0.01967,"142":0.07377,"143":0.02951,"144":0.41803,"145":4.5344,"146":4.75571,_:"12 13 14 15 16 17 79 80 81 83 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 114 115 116 117 118 119 120 121 122 123 125 126 127 128 129 130 131 132 133 134 137"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.4 16.5 17.2 17.3 17.4 17.5 18.0 18.1 18.2 18.4 26.1 26.4 26.5 TP","13.1":0.01967,"14.1":0.00984,"15.1":0.00984,"15.6":0.06393,"16.3":0.01967,"16.6":0.09344,"17.0":0.00984,"17.1":0.12787,"17.6":0.02951,"18.3":0.12787,"18.5-18.7":0.01967,"26.0":0.37869,"26.2":0.09344,"26.3":0.29508},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0009,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00179,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00448,"11.0-11.2":0.11289,"11.3-11.4":0.00269,"12.0-12.1":0,"12.2-12.5":0.03494,"13.0-13.1":0,"13.2":0.01344,"13.3":0.00179,"13.4-13.7":0.00448,"14.0-14.4":0.00806,"14.5-14.8":0.00806,"15.0-15.1":0.01165,"15.2-15.3":0.00717,"15.4":0.00896,"15.5":0.00986,"15.6-15.8":0.15858,"16.0":0.01613,"16.1":0.03136,"16.2":0.01792,"16.3":0.03225,"16.4":0.00717,"16.5":0.01344,"16.6-16.7":0.22041,"17.0":0.00986,"17.1":0.01613,"17.2":0.01434,"17.3":0.01971,"17.4":0.03225,"17.5":0.06093,"17.6-17.7":0.15679,"18.0":0.03405,"18.1":0.06988,"18.2":0.03673,"18.3":0.11737,"18.4":0.05645,"18.5-18.7":1.7955,"26.0":0.11199,"26.1":0.17023,"26.2":1.00168,"26.3":4.35166,"26.4":0.16306,"26.5":0},P:{"28":0.07164,"29":0.66525,_:"4 20 21 22 23 24 25 26 27 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.01015,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.60476,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.31},Q:{"14.9":0.24394},O:{_:"0"},H:{all:0},L:{"0":45.86546}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/TR.js b/server/api/node_modules/caniuse-lite/data/regions/TR.js new file mode 100644 index 0000000..5c57d90 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/TR.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.00282,"52":0.00282,"115":0.03105,"128":0.00565,"133":0.00282,"134":0.00282,"135":0.00282,"136":0.00282,"140":0.01412,"146":0.00282,"147":0.01129,"148":0.40651,"149":0.08469,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 129 130 131 132 137 138 139 141 142 143 144 145 150 151 152 3.5 3.6"},D:{"41":0.00282,"44":0.00282,"46":0.00282,"49":0.00282,"50":0.00282,"53":0.00282,"55":0.00282,"56":0.00282,"57":0.00282,"58":0.00282,"59":0.00282,"60":0.00282,"69":0.00282,"70":0.00282,"71":0.00282,"72":0.00282,"73":0.00847,"79":0.00565,"81":0.00282,"83":0.00847,"85":0.00565,"86":0.00282,"87":0.00847,"88":0.00282,"90":0.00282,"91":0.00282,"94":0.00282,"95":0.00282,"97":0.00282,"98":0.00282,"101":0.00847,"102":0.00282,"103":0.09034,"104":0.08751,"105":0.08751,"106":0.09034,"107":0.08751,"108":0.08751,"109":0.69446,"110":0.08751,"111":0.08751,"112":0.08751,"113":0.00282,"114":0.01412,"115":0.00282,"116":0.18914,"117":0.10445,"118":0.01694,"119":0.00847,"120":0.09598,"121":0.00565,"122":0.02258,"123":0.00565,"124":0.08751,"125":0.00565,"126":0.01694,"127":0.01976,"128":0.01412,"129":0.00847,"130":0.01694,"131":0.19761,"132":0.01976,"133":0.18632,"134":0.02541,"135":0.0367,"136":0.01412,"137":0.02541,"138":0.08469,"139":0.0734,"140":0.02823,"141":0.02823,"142":0.05646,"143":0.12139,"144":0.36699,"145":7.97498,"146":6.86836,"147":0.01412,"148":0.00282,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 42 43 45 47 48 51 52 54 61 62 63 64 65 66 67 68 74 75 76 77 78 80 84 89 92 93 96 99 100 149 150"},F:{"40":0.00282,"46":0.01694,"87":0.00282,"91":0.00282,"92":0.00282,"93":0.00282,"94":0.00282,"95":0.05364,"96":0.05364,"114":0.00282,"119":0.00282,"122":0.00282,"123":0.00282,"125":0.00282,"126":0.02258,"127":1.23647,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 88 89 90 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 120 121 124 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"17":0.00282,"18":0.00282,"92":0.00565,"109":0.01694,"122":0.00282,"131":0.00565,"132":0.00282,"133":0.00282,"134":0.00282,"135":0.00282,"136":0.00565,"137":0.00282,"138":0.00282,"139":0.00282,"140":0.00565,"141":0.00282,"142":0.00565,"143":0.01694,"144":0.02823,"145":0.68881,"146":0.71987,_:"12 13 14 15 16 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 123 124 125 126 127 128 129 130"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 15.5 16.0 16.2 26.5 TP","5.1":0.00565,"13.1":0.00282,"14.1":0.00282,"15.6":0.01412,"16.1":0.00282,"16.3":0.00282,"16.4":0.00282,"16.5":0.00282,"16.6":0.01976,"17.0":0.00565,"17.1":0.01129,"17.2":0.00282,"17.3":0.00282,"17.4":0.00565,"17.5":0.00847,"17.6":0.03388,"18.0":0.00282,"18.1":0.00847,"18.2":0.00282,"18.3":0.01129,"18.4":0.00847,"18.5-18.7":0.02258,"26.0":0.01412,"26.1":0.01694,"26.2":0.09316,"26.3":0.33594,"26.4":0.01976},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00128,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00257,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00641,"11.0-11.2":0.1616,"11.3-11.4":0.00385,"12.0-12.1":0,"12.2-12.5":0.05002,"13.0-13.1":0,"13.2":0.01924,"13.3":0.00257,"13.4-13.7":0.00641,"14.0-14.4":0.01154,"14.5-14.8":0.01154,"15.0-15.1":0.01667,"15.2-15.3":0.01026,"15.4":0.01283,"15.5":0.01411,"15.6-15.8":0.22701,"16.0":0.02309,"16.1":0.04489,"16.2":0.02565,"16.3":0.04617,"16.4":0.01026,"16.5":0.01924,"16.6-16.7":0.3155,"17.0":0.01411,"17.1":0.02309,"17.2":0.02052,"17.3":0.02822,"17.4":0.04617,"17.5":0.08721,"17.6-17.7":0.22444,"18.0":0.04874,"18.1":0.10004,"18.2":0.05258,"18.3":0.16801,"18.4":0.0808,"18.5-18.7":2.57019,"26.0":0.16032,"26.1":0.24368,"26.2":1.43387,"26.3":6.22925,"26.4":0.23342,"26.5":0},P:{"4":0.08117,"20":0.01015,"21":0.04059,"22":0.01015,"23":0.01015,"24":0.01015,"25":0.02029,"26":0.07103,"27":0.03044,"28":0.11161,"29":1.8873,_:"5.0-5.4 8.2 10.1 11.1-11.2 12.0 14.0 15.0 16.0 18.0 19.0","6.2-6.4":0.01015,"7.2-7.4":0.02029,"9.2":0.01015,"13.0":0.01015,"17.0":0.01015},I:{"0":0.01434,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":1.03349,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.00565,_:"6 7 8 9 10 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.07895},Q:{_:"14.9"},O:{"0":0.13636},H:{all:0},L:{"0":58.67945}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/TT.js b/server/api/node_modules/caniuse-lite/data/regions/TT.js new file mode 100644 index 0000000..d59f98d --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/TT.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.04229,"52":0.0047,"78":0.0047,"115":0.15037,"128":0.0047,"140":0.13157,"141":0.0047,"146":0.0047,"147":0.10338,"148":0.81293,"149":0.10808,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 129 130 131 132 133 134 135 136 137 138 139 142 143 144 145 150 151 152 3.5 3.6"},D:{"50":0.0047,"62":0.0047,"69":0.12687,"70":0.0047,"76":0.0094,"79":0.0047,"87":0.0047,"91":0.0094,"93":0.0094,"95":0.0047,"96":0.0047,"98":0.0047,"103":0.22085,"104":0.05639,"105":0.05639,"106":0.05639,"107":0.05639,"108":0.05169,"109":0.44641,"110":0.05639,"111":0.05639,"112":0.16916,"114":0.0047,"116":0.27254,"117":0.05639,"119":0.0094,"120":0.07049,"121":0.03289,"122":0.0188,"123":0.0047,"124":0.07518,"125":0.0094,"126":0.10338,"128":0.4746,"129":0.0047,"130":0.0141,"131":0.22555,"132":0.0047,"133":0.14097,"134":0.0094,"135":0.0094,"136":0.0141,"137":0.04699,"138":0.18326,"139":1.03378,"140":0.07988,"141":0.07518,"142":0.38532,"143":0.19736,"144":1.37681,"145":12.28319,"146":9.27583,"147":0.07988,"148":0.0047,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 51 52 53 54 55 56 57 58 59 60 61 63 64 65 66 67 68 71 72 73 74 75 77 78 80 81 83 84 85 86 88 89 90 92 94 97 99 100 101 102 113 115 118 127 149 150"},F:{"95":0.0141,"96":0.03759,"126":0.0047,"127":0.55918,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.0047,"90":0.0047,"92":0.0047,"109":0.0094,"117":0.0047,"137":0.0047,"138":0.0047,"139":0.0235,"140":0.0047,"141":0.0047,"142":0.0094,"143":0.06109,"144":0.12217,"145":3.18592,"146":2.56096,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.5 16.0 16.4 18.2 26.5 TP","13.1":0.02819,"14.1":0.0141,"15.4":0.0188,"15.6":0.39002,"16.1":0.0235,"16.2":0.0235,"16.3":0.0094,"16.5":0.0047,"16.6":0.11748,"17.0":0.0047,"17.1":0.07049,"17.2":0.0047,"17.3":0.0094,"17.4":0.0047,"17.5":0.03289,"17.6":0.09398,"18.0":0.0235,"18.1":0.0141,"18.3":0.0141,"18.4":0.0047,"18.5-18.7":0.14097,"26.0":0.02819,"26.1":0.0141,"26.2":0.21615,"26.3":1.10896,"26.4":0.09398},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00165,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.0033,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00826,"11.0-11.2":0.20813,"11.3-11.4":0.00496,"12.0-12.1":0,"12.2-12.5":0.06442,"13.0-13.1":0,"13.2":0.02478,"13.3":0.0033,"13.4-13.7":0.00826,"14.0-14.4":0.01487,"14.5-14.8":0.01487,"15.0-15.1":0.02147,"15.2-15.3":0.01321,"15.4":0.01652,"15.5":0.01817,"15.6-15.8":0.29237,"16.0":0.02973,"16.1":0.05781,"16.2":0.03304,"16.3":0.05946,"16.4":0.01321,"16.5":0.02478,"16.6-16.7":0.40634,"17.0":0.01817,"17.1":0.02973,"17.2":0.02643,"17.3":0.03634,"17.4":0.05946,"17.5":0.11232,"17.6-17.7":0.28906,"18.0":0.06277,"18.1":0.12884,"18.2":0.06772,"18.3":0.21638,"18.4":0.10406,"18.5-18.7":3.31019,"26.0":0.20647,"26.1":0.31384,"26.2":1.8467,"26.3":8.02275,"26.4":0.30063,"26.5":0},P:{"4":0.02103,"23":0.01052,"24":0.03155,"25":0.03155,"26":0.05258,"27":0.03155,"28":0.12618,"29":3.51204,_:"20 21 22 5.0-5.4 6.2-6.4 8.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.01052,"9.2":0.02103},I:{"0":0.03178,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.12722,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.33396},Q:{_:"14.9"},O:{"0":0.03181},H:{all:0},L:{"0":38.23171}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/TV.js b/server/api/node_modules/caniuse-lite/data/regions/TV.js new file mode 100644 index 0000000..35f1d77 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/TV.js @@ -0,0 +1 @@ +module.exports={C:{"148":4.25646,"149":0.65099,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 150 151 152 3.5 3.6"},D:{"83":0.03895,"131":0.16136,"141":0.03895,"142":0.28376,"143":4.54022,"144":4.70158,"145":10.62724,"146":14.96716,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 132 133 134 135 136 137 138 139 140 147 148 149 150"},F:{_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"134":0.28376,"142":0.03895,"145":2.999,"146":2.9211,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 135 136 137 138 139 140 141 143 144"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 13.1 14.1 15.1 15.2-15.3 15.4 15.5 15.6 16.0 16.1 16.2 16.3 16.4 16.5 16.6 17.0 17.2 17.3 17.4 17.5 17.6 18.0 18.2 18.4 18.5-18.7 26.0 26.1 26.2 26.5 TP","12.1":0.03895,"17.1":0.08346,"18.1":0.12241,"18.3":0.03895,"26.3":1.74153,"26.4":0.03895},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00187,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00374,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00935,"11.0-11.2":0.2357,"11.3-11.4":0.00561,"12.0-12.1":0,"12.2-12.5":0.07296,"13.0-13.1":0,"13.2":0.02806,"13.3":0.00374,"13.4-13.7":0.00935,"14.0-14.4":0.01684,"14.5-14.8":0.01684,"15.0-15.1":0.02432,"15.2-15.3":0.01497,"15.4":0.01871,"15.5":0.02058,"15.6-15.8":0.33111,"16.0":0.03367,"16.1":0.06547,"16.2":0.03741,"16.3":0.06734,"16.4":0.01497,"16.5":0.02806,"16.6-16.7":0.46018,"17.0":0.02058,"17.1":0.03367,"17.2":0.02993,"17.3":0.04115,"17.4":0.06734,"17.5":0.1272,"17.6-17.7":0.32737,"18.0":0.07109,"18.1":0.14591,"18.2":0.0767,"18.3":0.24506,"18.4":0.11785,"18.5-18.7":3.74881,"26.0":0.23383,"26.1":0.35543,"26.2":2.0914,"26.3":9.0858,"26.4":0.34046,"26.5":0},P:{"29":0.04436,_:"4 20 21 22 23 24 25 26 27 28 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.08864,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00004},K:{"0":0.08872,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{_:"0"},Q:{_:"14.9"},O:{_:"0"},H:{all:0},L:{"0":31.23607}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/TW.js b/server/api/node_modules/caniuse-lite/data/regions/TW.js new file mode 100644 index 0000000..0ec24de --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/TW.js @@ -0,0 +1 @@ +module.exports={C:{"52":0.022,"115":0.088,"133":0.0044,"135":0.0044,"136":0.0132,"139":0.0044,"140":0.0132,"142":0.0044,"143":0.0044,"144":0.0044,"145":0.0044,"146":0.0088,"147":0.0572,"148":0.7612,"149":0.1672,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 134 137 138 141 150 151 152 3.5 3.6"},D:{"49":0.0044,"77":2.5872,"78":0.0088,"79":0.0088,"80":0.0044,"81":0.0088,"83":0.0044,"85":0.0132,"86":0.0088,"87":0.0088,"90":0.0044,"91":0.0044,"95":0.0088,"97":0.0088,"98":0.0088,"100":0.0044,"101":0.0044,"102":0.0044,"103":0.022,"104":0.0132,"105":0.0132,"106":0.0132,"107":0.022,"108":0.0176,"109":1.144,"110":0.0132,"111":0.0132,"112":0.0176,"113":0.0044,"114":0.0132,"115":0.0088,"116":0.0572,"117":0.0264,"118":0.0176,"119":0.0484,"120":0.0528,"121":0.044,"122":0.0308,"123":0.0132,"124":0.0352,"125":0.0352,"126":0.022,"127":0.0308,"128":0.044,"129":0.022,"130":0.044,"131":0.1496,"132":0.0484,"133":0.0572,"134":0.0396,"135":0.0528,"136":0.0352,"137":0.044,"138":0.1276,"139":0.1012,"140":0.0616,"141":0.0572,"142":0.11,"143":0.2596,"144":0.6732,"145":11.88,"146":9.8252,"147":0.0396,"148":0.0132,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 84 88 89 92 93 94 96 99 149 150"},F:{"28":0.0044,"46":0.0088,"95":0.0308,"96":0.0308,"126":0.0044,"127":0.0484,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"84":0.0044,"92":0.0044,"109":0.0484,"111":0.0044,"113":0.0044,"114":0.0044,"118":0.0044,"119":0.0044,"120":0.0044,"122":0.0044,"124":0.0044,"125":0.0044,"126":0.0044,"127":0.0088,"128":0.0044,"129":0.0044,"130":0.0044,"131":0.0088,"132":0.0044,"133":0.0088,"134":0.0088,"135":0.0044,"136":0.0044,"137":0.0088,"138":0.0088,"139":0.0132,"140":0.0176,"141":0.0176,"142":0.0264,"143":0.0572,"144":0.1408,"145":2.1868,"146":2.1076,_:"12 13 14 15 16 17 18 79 80 81 83 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 112 115 116 117 121 123"},E:{"13":0.0044,"14":0.0044,_:"4 5 6 7 8 9 10 11 12 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 15.1 15.2-15.3 26.5 TP","12.1":0.0044,"13.1":0.0176,"14.1":0.0176,"15.4":0.0264,"15.5":0.0176,"15.6":0.1056,"16.0":0.0044,"16.1":0.022,"16.2":0.0176,"16.3":0.0264,"16.4":0.0132,"16.5":0.0088,"16.6":0.176,"17.0":0.0044,"17.1":0.1188,"17.2":0.0088,"17.3":0.0088,"17.4":0.0176,"17.5":0.044,"17.6":0.11,"18.0":0.0132,"18.1":0.0176,"18.2":0.0132,"18.3":0.044,"18.4":0.0308,"18.5-18.7":0.0968,"26.0":0.0308,"26.1":0.0352,"26.2":0.3432,"26.3":1.2628,"26.4":0.0352},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00233,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00466,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.01164,"11.0-11.2":0.29332,"11.3-11.4":0.00698,"12.0-12.1":0,"12.2-12.5":0.09079,"13.0-13.1":0,"13.2":0.03492,"13.3":0.00466,"13.4-13.7":0.01164,"14.0-14.4":0.02095,"14.5-14.8":0.02095,"15.0-15.1":0.03026,"15.2-15.3":0.01862,"15.4":0.02328,"15.5":0.02561,"15.6-15.8":0.41204,"16.0":0.0419,"16.1":0.08148,"16.2":0.04656,"16.3":0.08381,"16.4":0.01862,"16.5":0.03492,"16.6-16.7":0.57267,"17.0":0.02561,"17.1":0.0419,"17.2":0.03725,"17.3":0.05121,"17.4":0.08381,"17.5":0.1583,"17.6-17.7":0.40739,"18.0":0.08846,"18.1":0.18158,"18.2":0.09544,"18.3":0.30496,"18.4":0.14666,"18.5-18.7":4.66515,"26.0":0.29099,"26.1":0.4423,"26.2":2.60261,"26.3":11.30671,"26.4":0.42368,"26.5":0},P:{"20":0.01078,"21":0.04312,"22":0.02156,"23":0.02156,"24":0.02156,"25":0.03234,"26":0.06468,"27":0.06468,"28":0.17249,"29":3.20178,_:"4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 14.0 15.0 18.0","5.0-5.4":0.01078,"12.0":0.01078,"13.0":0.01078,"16.0":0.01078,"17.0":0.02156,"19.0":0.02156},I:{"0":0.01119,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.1568,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.1452,_:"6 7 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.3024},Q:{"14.9":0.0392},O:{"0":0.1792},H:{all:0},L:{"0":33.6068}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/TZ.js b/server/api/node_modules/caniuse-lite/data/regions/TZ.js new file mode 100644 index 0000000..6006d9a --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/TZ.js @@ -0,0 +1 @@ +module.exports={C:{"61":0.00304,"65":0.00304,"68":0.00304,"72":0.00608,"90":0.00304,"91":0.00304,"103":0.00608,"112":0.00608,"115":0.05168,"127":0.01216,"128":0.00608,"135":0.00304,"136":0.00304,"140":0.0304,"143":0.00304,"144":0.00304,"145":0.00304,"146":0.00912,"147":0.06384,"148":0.83904,"149":0.1824,"150":0.00304,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 62 63 64 66 67 69 70 71 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 92 93 94 95 96 97 98 99 100 101 102 104 105 106 107 108 109 110 111 113 114 116 117 118 119 120 121 122 123 124 125 126 129 130 131 132 133 134 137 138 139 141 142 151 152 3.5 3.6"},D:{"49":0.00304,"55":0.00304,"58":0.00304,"59":0.00304,"61":0.00304,"63":0.00304,"64":0.00304,"65":0.00304,"66":0.00304,"68":0.00608,"69":0.00304,"70":0.00912,"71":0.01216,"72":0.00304,"73":0.02128,"74":0.00608,"75":0.00608,"76":0.00304,"77":0.00304,"78":0.00304,"79":0.00912,"80":0.00912,"81":0.00608,"83":0.00608,"86":0.00912,"87":0.00608,"90":0.01824,"91":0.00304,"93":0.00304,"94":0.0152,"95":0.00304,"98":0.00304,"99":0.00912,"101":0.00304,"103":0.02736,"104":0.00912,"105":0.00304,"106":0.00304,"108":0.00304,"109":0.26448,"110":0.00304,"111":0.00608,"112":0.00304,"113":0.00608,"114":0.03344,"116":0.05776,"117":0.00304,"118":0.00304,"119":0.01216,"120":0.01216,"121":0.00608,"122":0.05472,"123":0.00304,"124":0.00608,"125":0.00608,"126":0.01216,"127":0.01216,"128":0.02736,"129":0.00304,"130":0.00912,"131":0.04256,"132":0.00912,"133":0.00912,"134":0.01824,"135":0.0152,"136":0.01216,"137":0.02432,"138":0.10336,"139":0.10336,"140":0.0304,"141":0.03648,"142":0.03344,"143":0.08816,"144":0.25232,"145":5.09808,"146":4.24384,"147":0.0152,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 56 57 60 62 67 84 85 88 89 92 96 97 100 102 107 115 148 149 150"},F:{"37":0.00304,"79":0.00304,"93":0.00608,"94":0.01216,"95":0.09728,"96":0.06384,"124":0.00304,"125":0.00304,"126":0.0304,"127":0.29184,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 85 86 87 88 89 90 91 92 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.00304,"15":0.01216,"16":0.01216,"17":0.00304,"18":0.06384,"84":0.00304,"86":0.00304,"89":0.00304,"90":0.0152,"92":0.04256,"100":0.00608,"103":0.00304,"109":0.0152,"111":0.00304,"112":0.00304,"114":0.0152,"122":0.00608,"127":0.00304,"129":0.00912,"131":0.00304,"132":0.00304,"136":0.00304,"137":0.03952,"138":0.00608,"139":0.01216,"140":0.0304,"141":0.00608,"142":0.0152,"143":0.02736,"144":0.05168,"145":0.9728,"146":0.85424,_:"12 13 79 80 81 83 85 87 88 91 93 94 95 96 97 98 99 101 102 104 105 106 107 108 110 113 115 116 117 118 119 120 121 123 124 125 126 128 130 133 134 135"},E:{"11":0.00304,_:"4 5 6 7 8 9 10 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 15.2-15.3 15.4 15.5 16.0 16.2 16.3 16.4 16.5 17.0 17.2 17.3 17.4 18.2 26.5 TP","11.1":0.00304,"12.1":0.00304,"13.1":0.01216,"14.1":0.00912,"15.1":0.00304,"15.6":0.02736,"16.1":0.00304,"16.6":0.03344,"17.1":0.00304,"17.5":0.00304,"17.6":0.03952,"18.0":0.00304,"18.1":0.00304,"18.3":0.00608,"18.4":0.00304,"18.5-18.7":0.00912,"26.0":0.00912,"26.1":0.00608,"26.2":0.04256,"26.3":0.11856,"26.4":0.01216},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00035,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.0007,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00175,"11.0-11.2":0.0442,"11.3-11.4":0.00105,"12.0-12.1":0,"12.2-12.5":0.01368,"13.0-13.1":0,"13.2":0.00526,"13.3":0.0007,"13.4-13.7":0.00175,"14.0-14.4":0.00316,"14.5-14.8":0.00316,"15.0-15.1":0.00456,"15.2-15.3":0.00281,"15.4":0.00351,"15.5":0.00386,"15.6-15.8":0.06209,"16.0":0.00631,"16.1":0.01228,"16.2":0.00702,"16.3":0.01263,"16.4":0.00281,"16.5":0.00526,"16.6-16.7":0.08629,"17.0":0.00386,"17.1":0.00631,"17.2":0.00561,"17.3":0.00772,"17.4":0.01263,"17.5":0.02385,"17.6-17.7":0.06139,"18.0":0.01333,"18.1":0.02736,"18.2":0.01438,"18.3":0.04595,"18.4":0.0221,"18.5-18.7":0.70297,"26.0":0.04385,"26.1":0.06665,"26.2":0.39218,"26.3":1.70376,"26.4":0.06384,"26.5":0},P:{"21":0.01019,"22":0.01019,"24":0.07133,"25":0.02038,"26":0.03057,"27":0.14266,"28":0.42798,"29":1.0292,_:"4 20 23 5.0-5.4 6.2-6.4 8.2 10.1 12.0 14.0 15.0 17.0 18.0 19.0","7.2-7.4":0.02038,"9.2":0.03057,"11.1-11.2":0.02038,"13.0":0.01019,"16.0":0.02038},I:{"0":0.21557,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00011},K:{"0":8.38072,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{"2.5":0.20184,_:"3.0-3.1"},R:{_:"0"},M:{"0":0.14616},Q:{_:"14.9"},O:{"0":0.33408},H:{all:0.02},L:{"0":69.00688}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/UA.js b/server/api/node_modules/caniuse-lite/data/regions/UA.js new file mode 100644 index 0000000..098c7de --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/UA.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.01343,"52":0.0537,"60":0.02014,"68":0.00671,"74":0.00671,"78":0.00671,"95":0.01343,"100":0.00671,"101":0.02014,"110":0.00671,"113":0.00671,"115":0.6713,"116":0.00671,"120":0.00671,"122":0.02685,"123":0.08056,"127":0.00671,"128":0.00671,"129":0.01343,"133":0.02014,"134":0.01343,"135":0.02014,"136":0.04028,"137":0.00671,"138":0.01343,"139":0.00671,"140":0.12083,"142":0.00671,"143":0.00671,"144":0.02685,"145":0.01343,"146":0.02014,"147":0.1007,"148":1.84608,"149":0.34908,"150":0.00671,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 61 62 63 64 65 66 67 69 70 71 72 73 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 102 103 104 105 106 107 108 109 111 112 114 117 118 119 121 124 125 126 130 131 132 141 151 152 3.5 3.6"},D:{"39":0.00671,"40":0.00671,"41":0.00671,"42":0.00671,"43":0.00671,"44":0.00671,"45":0.00671,"46":0.00671,"47":0.01343,"48":0.00671,"49":0.03357,"50":0.00671,"51":0.00671,"52":0.01343,"53":0.00671,"54":0.00671,"55":0.00671,"56":0.00671,"57":0.00671,"58":0.01343,"59":0.00671,"60":0.01343,"61":0.01343,"79":0.00671,"81":0.00671,"83":0.00671,"85":0.04028,"86":0.02014,"87":0.00671,"96":0.00671,"97":0.00671,"98":0.00671,"101":0.00671,"102":0.01343,"103":0.24167,"104":0.22824,"105":0.22824,"106":0.24838,"107":0.22824,"108":0.23496,"109":3.30951,"110":0.22153,"111":0.22153,"112":0.59746,"113":0.00671,"114":0.00671,"116":0.5169,"117":0.22153,"118":0.00671,"119":0.02014,"120":0.28195,"121":0.02685,"122":0.07384,"123":0.01343,"124":0.24167,"125":0.01343,"126":0.02014,"127":0.04699,"128":0.04028,"129":0.02014,"130":0.02685,"131":0.5169,"132":0.02685,"133":0.49676,"134":0.0537,"135":0.04028,"136":0.06042,"137":0.04699,"138":0.19468,"139":0.20139,"140":0.16111,"141":1.05394,"142":1.25533,"143":0.33565,"144":0.85926,"145":17.05773,"146":13.83549,"147":0.03357,"148":0.00671,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 84 88 89 90 91 92 93 94 95 99 100 115 149 150"},F:{"36":0.00671,"51":0.00671,"79":0.01343,"83":0.00671,"84":0.02685,"85":0.04028,"86":0.0537,"87":0.00671,"90":0.00671,"94":0.00671,"95":0.79885,"96":0.11412,"98":0.00671,"99":0.00671,"102":0.00671,"114":0.02014,"115":0.00671,"116":0.00671,"117":0.00671,"118":0.01343,"119":0.00671,"121":0.01343,"122":0.01343,"125":0.01343,"126":0.07384,"127":2.38312,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 88 89 91 92 93 97 100 101 103 104 105 106 107 108 109 110 111 112 113 120 123 124 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6","12.1":0.00671},B:{"18":0.00671,"92":0.02014,"102":0.03357,"108":0.00671,"109":0.02014,"122":0.00671,"131":0.04028,"132":0.01343,"133":0.02014,"134":0.02685,"135":0.02014,"136":0.02014,"137":0.01343,"138":0.00671,"140":0.00671,"142":0.00671,"143":0.03357,"144":0.04028,"145":1.32246,"146":1.20834,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 103 104 105 106 107 110 111 112 113 114 115 116 117 118 119 120 121 123 124 125 126 127 128 129 130 139 141"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.5 16.0 26.5 TP","13.1":0.02014,"14.1":0.02014,"15.4":0.01343,"15.6":0.0537,"16.1":0.00671,"16.2":0.00671,"16.3":0.01343,"16.4":0.00671,"16.5":0.02685,"16.6":0.08056,"17.0":0.01343,"17.1":0.0537,"17.2":0.01343,"17.3":0.0537,"17.4":0.06042,"17.5":0.02685,"17.6":0.09398,"18.0":0.02014,"18.1":0.02685,"18.2":0.00671,"18.3":0.0537,"18.4":0.01343,"18.5-18.7":0.02014,"26.0":0.02014,"26.1":0.02014,"26.2":0.12083,"26.3":0.51019,"26.4":0.03357},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00095,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00191,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00477,"11.0-11.2":0.12011,"11.3-11.4":0.00286,"12.0-12.1":0,"12.2-12.5":0.03718,"13.0-13.1":0,"13.2":0.0143,"13.3":0.00191,"13.4-13.7":0.00477,"14.0-14.4":0.00858,"14.5-14.8":0.00858,"15.0-15.1":0.01239,"15.2-15.3":0.00763,"15.4":0.00953,"15.5":0.01049,"15.6-15.8":0.16872,"16.0":0.01716,"16.1":0.03336,"16.2":0.01906,"16.3":0.03432,"16.4":0.00763,"16.5":0.0143,"16.6-16.7":0.23449,"17.0":0.01049,"17.1":0.01716,"17.2":0.01525,"17.3":0.02097,"17.4":0.03432,"17.5":0.06482,"17.6-17.7":0.16682,"18.0":0.03622,"18.1":0.07435,"18.2":0.03908,"18.3":0.12487,"18.4":0.06005,"18.5-18.7":1.91027,"26.0":0.11915,"26.1":0.18111,"26.2":1.06571,"26.3":4.62984,"26.4":0.17349,"26.5":0},P:{"4":0.0109,"24":0.0109,"25":0.0109,"26":0.0218,"27":0.0109,"28":0.05451,"29":0.97032,_:"20 21 22 23 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.0109},I:{"0":0.01642,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.76587,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.0358,"9":0.00895,"10":0.00895,"11":0.02685,_:"6 7 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.16435},Q:{_:"14.9"},O:{"0":0.06245},H:{all:0},L:{"0":24.3778}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/UG.js b/server/api/node_modules/caniuse-lite/data/regions/UG.js new file mode 100644 index 0000000..f8000fc --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/UG.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.00399,"50":0.00399,"56":0.00399,"57":0.00399,"58":0.00798,"60":0.00399,"65":0.00399,"68":0.00399,"72":0.00798,"91":0.00399,"93":0.00798,"112":0.00399,"115":0.13573,"127":0.01996,"128":0.00399,"140":0.04391,"142":0.01198,"143":0.01198,"144":0.00798,"145":0.00798,"146":0.01597,"147":0.18363,"148":1.27744,"149":0.26347,"150":0.00798,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 51 52 53 54 55 59 61 62 63 64 66 67 69 70 71 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 92 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 113 114 116 117 118 119 120 121 122 123 124 125 126 129 130 131 132 133 134 135 136 137 138 139 141 151 152 3.5 3.6"},D:{"49":0.00399,"53":0.00399,"58":0.00399,"59":0.00399,"63":0.00399,"64":0.00399,"65":0.00399,"66":0.00399,"68":0.00798,"69":0.00399,"70":0.00798,"71":0.01198,"72":0.02794,"73":0.00798,"74":0.00399,"75":0.00399,"76":0.03194,"77":0.00399,"79":0.00399,"80":0.00798,"81":0.00798,"83":0.00798,"86":0.00798,"87":0.05988,"89":0.00798,"91":0.00399,"92":0.00798,"93":0.01597,"94":0.01996,"95":0.00399,"97":0.00399,"98":0.01198,"100":0.00399,"101":0.00399,"102":0.00399,"103":0.0479,"105":0.00798,"106":0.01198,"107":0.00399,"108":0.00399,"109":0.5469,"110":0.00399,"111":0.00399,"114":0.02395,"116":0.0998,"119":0.02395,"120":0.00798,"122":0.02395,"123":0.01996,"124":0.00798,"125":0.00399,"126":0.01597,"127":0.01597,"128":0.04391,"129":0.00399,"130":0.01198,"131":0.04391,"132":0.00798,"133":0.03194,"134":0.03593,"135":0.02395,"136":0.02794,"137":0.02395,"138":0.15569,"139":0.08383,"140":0.02395,"141":0.03194,"142":0.07984,"143":0.17166,"144":0.33932,"145":7.59678,"146":5.8363,"147":0.01996,"148":0.00399,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 54 55 56 57 60 61 62 67 78 84 85 88 90 96 99 104 112 113 115 117 118 121 149 150"},F:{"36":0.00399,"46":0.00399,"79":0.00399,"89":0.00399,"92":0.00399,"93":0.00798,"94":0.00798,"95":0.1477,"96":0.17565,"125":0.00399,"126":0.03194,"127":0.3473,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 85 86 87 88 90 91 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.01198,"15":0.00399,"16":0.00798,"17":0.00399,"18":0.12375,"84":0.00399,"89":0.00399,"90":0.01597,"92":0.05589,"100":0.00399,"109":0.01198,"114":0.01198,"122":0.01198,"126":0.00399,"129":0.00399,"130":0.00399,"133":0.00399,"134":0.00399,"135":0.00399,"136":0.00399,"137":0.00798,"138":0.01198,"139":0.00798,"140":0.01597,"141":0.0479,"142":0.03992,"143":0.03992,"144":0.07984,"145":1.4491,"146":1.17365,_:"12 13 79 80 81 83 85 86 87 88 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 123 124 125 127 128 131 132"},E:{"12":0.00399,_:"4 5 6 7 8 9 10 11 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.3 16.4 16.5 17.0 17.2 17.4 18.0 18.1 18.4 26.5 TP","5.1":0.02395,"11.1":0.00399,"12.1":0.00798,"13.1":0.01198,"14.1":0.01996,"15.6":0.04391,"16.6":0.02395,"17.1":0.03593,"17.3":0.00399,"17.5":0.00399,"17.6":0.03593,"18.2":0.00399,"18.3":0.00399,"18.5-18.7":0.00798,"26.0":0.01198,"26.1":0.01198,"26.2":0.03593,"26.3":0.12375,"26.4":0.01996},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00037,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00074,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00185,"11.0-11.2":0.04662,"11.3-11.4":0.00111,"12.0-12.1":0,"12.2-12.5":0.01443,"13.0-13.1":0,"13.2":0.00555,"13.3":0.00074,"13.4-13.7":0.00185,"14.0-14.4":0.00333,"14.5-14.8":0.00333,"15.0-15.1":0.00481,"15.2-15.3":0.00296,"15.4":0.0037,"15.5":0.00407,"15.6-15.8":0.0655,"16.0":0.00666,"16.1":0.01295,"16.2":0.0074,"16.3":0.01332,"16.4":0.00296,"16.5":0.00555,"16.6-16.7":0.09103,"17.0":0.00407,"17.1":0.00666,"17.2":0.00592,"17.3":0.00814,"17.4":0.01332,"17.5":0.02516,"17.6-17.7":0.06476,"18.0":0.01406,"18.1":0.02886,"18.2":0.01517,"18.3":0.04847,"18.4":0.02331,"18.5-18.7":0.74154,"26.0":0.04625,"26.1":0.07031,"26.2":0.41369,"26.3":1.79724,"26.4":0.06735,"26.5":0},P:{"21":0.01025,"22":0.01025,"23":0.01025,"24":0.10249,"25":0.041,"26":0.03075,"27":0.16399,"28":0.35872,"29":0.95318,_:"4 20 6.2-6.4 8.2 10.1 12.0 13.0 14.0 15.0 17.0 18.0","5.0-5.4":0.01025,"7.2-7.4":0.0615,"9.2":0.03075,"11.1-11.2":0.01025,"16.0":0.01025,"19.0":0.01025},I:{"0":0.02401,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":3.75038,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{"2.5":0.02403,_:"3.0-3.1"},R:{_:"0"},M:{"0":0.13215},Q:{"14.9":0.00601},O:{"0":0.22827},H:{all:0.01},L:{"0":66.41745}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/US.js b/server/api/node_modules/caniuse-lite/data/regions/US.js new file mode 100644 index 0000000..daa3075 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/US.js @@ -0,0 +1 @@ +module.exports={C:{"11":0.01052,"44":0.00526,"52":0.01052,"78":0.01577,"94":0.00526,"115":0.163,"125":0.00526,"127":0.00526,"128":0.01052,"133":0.00526,"134":0.00526,"135":0.01052,"136":0.01052,"137":0.01052,"138":0.01052,"139":0.01052,"140":0.12619,"141":0.00526,"142":0.00526,"143":0.01052,"144":0.01577,"145":0.01577,"146":0.02629,"147":0.1998,"148":1.7772,"149":0.32074,_:"2 3 4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 126 129 130 131 132 150 151 152 3.5 3.6"},D:{"39":0.02629,"40":0.02629,"41":0.02629,"42":0.02629,"43":0.02629,"44":0.02629,"45":0.02629,"46":0.02629,"47":0.03155,"48":0.04206,"49":0.03681,"50":0.02629,"51":0.02629,"52":0.02629,"53":0.02629,"54":0.02629,"55":0.02629,"56":0.03155,"57":0.02629,"58":0.03155,"59":0.02629,"60":0.02629,"76":0.00526,"79":0.00526,"80":0.01052,"85":0.00526,"87":0.01052,"91":0.00526,"93":0.01577,"99":0.00526,"101":0.00526,"103":0.11042,"104":0.01052,"105":0.01052,"106":0.01052,"107":0.01052,"108":0.01052,"109":0.29445,"110":0.01052,"111":0.01577,"112":0.02629,"113":0.00526,"114":0.01052,"115":0.00526,"116":0.11042,"117":0.01577,"118":0.00526,"119":0.01052,"120":0.02629,"121":0.01052,"122":0.07361,"123":0.01052,"124":0.03155,"125":0.01577,"126":0.05784,"127":0.01052,"128":0.08413,"129":0.01577,"130":0.05258,"131":0.07361,"132":0.05258,"133":0.03681,"134":0.03681,"135":0.05258,"136":0.07887,"137":0.0631,"138":0.55209,"139":1.3145,"140":0.13145,"141":0.13671,"142":0.35229,"143":0.78344,"144":2.06114,"145":12.57714,"146":7.48213,"147":0.02629,"148":0.00526,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 77 78 81 83 84 86 88 89 90 92 94 95 96 97 98 100 102 149 150"},F:{"95":0.05258,"96":0.04206,"114":0.00526,"122":0.00526,"124":0.00526,"125":0.00526,"126":0.01577,"127":0.36806,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 120 121 123 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"91":0.00526,"109":0.04732,"122":0.00526,"124":0.00526,"128":0.00526,"130":0.00526,"131":0.01052,"132":0.00526,"133":0.00526,"134":0.01052,"135":0.01052,"136":0.01052,"137":0.00526,"138":0.01577,"139":0.01052,"140":0.01052,"141":0.01577,"142":0.03155,"143":0.12619,"144":0.1998,"145":3.96453,"146":3.55967,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 123 125 126 127 129"},E:{"13":0.00526,"14":0.02103,"15":0.00526,_:"4 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 26.5 TP","10.1":0.00526,"11.1":0.00526,"12.1":0.00526,"13.1":0.04732,"14.1":0.04206,"15.1":0.00526,"15.2-15.3":0.00526,"15.4":0.00526,"15.5":0.01052,"15.6":0.15248,"16.0":0.01052,"16.1":0.02103,"16.2":0.01577,"16.3":0.03155,"16.4":0.03681,"16.5":0.03681,"16.6":0.3628,"17.0":0.01577,"17.1":0.23135,"17.2":0.02103,"17.3":0.03681,"17.4":0.08939,"17.5":0.13145,"17.6":0.52054,"18.0":0.02103,"18.1":0.04206,"18.2":0.02103,"18.3":0.08939,"18.4":0.04206,"18.5-18.7":0.13671,"26.0":0.04732,"26.1":0.08939,"26.2":0.51528,"26.3":2.92345,"26.4":0.09464},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0026,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00519,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.01298,"11.0-11.2":0.32713,"11.3-11.4":0.00779,"12.0-12.1":0,"12.2-12.5":0.10125,"13.0-13.1":0,"13.2":0.03894,"13.3":0.00519,"13.4-13.7":0.01298,"14.0-14.4":0.02337,"14.5-14.8":0.02337,"15.0-15.1":0.03375,"15.2-15.3":0.02077,"15.4":0.02596,"15.5":0.02856,"15.6-15.8":0.45954,"16.0":0.04673,"16.1":0.09087,"16.2":0.05192,"16.3":0.09346,"16.4":0.02077,"16.5":0.03894,"16.6-16.7":0.63868,"17.0":0.02856,"17.1":0.04673,"17.2":0.04154,"17.3":0.05712,"17.4":0.09346,"17.5":0.17654,"17.6-17.7":0.45434,"18.0":0.09866,"18.1":0.20251,"18.2":0.10645,"18.3":0.34011,"18.4":0.16356,"18.5-18.7":5.20287,"26.0":0.32453,"26.1":0.49329,"26.2":2.9026,"26.3":12.60996,"26.4":0.47252,"26.5":0},P:{"21":0.01077,"24":0.01077,"26":0.02154,"27":0.01077,"28":0.06461,"29":1.43218,_:"4 20 22 23 25 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.02369,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.24658,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.0184,"11":0.0184,_:"6 7 9 10 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{"2.5":0.00948,_:"3.0-3.1"},R:{_:"0"},M:{"0":0.62594},Q:{"14.9":0.00948},O:{"0":0.03794},H:{all:0},L:{"0":21.78187}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/UY.js b/server/api/node_modules/caniuse-lite/data/regions/UY.js new file mode 100644 index 0000000..12019b9 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/UY.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.02966,"52":0.00989,"83":0.01483,"102":0.00494,"113":0.00989,"115":0.1038,"128":0.00989,"134":0.00494,"136":0.02472,"137":0.00494,"138":0.00494,"139":0.01483,"140":0.03954,"143":0.00494,"144":0.00494,"145":0.00494,"146":0.01977,"147":0.05932,"148":0.92928,"149":0.1384,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 103 104 105 106 107 108 109 110 111 112 114 116 117 118 119 120 121 122 123 124 125 126 127 129 130 131 132 133 135 141 142 150 151 152 3.5 3.6"},D:{"47":0.00494,"49":0.00494,"55":0.00494,"63":0.00494,"69":0.00494,"74":0.00494,"75":0.00989,"79":0.00494,"80":0.01977,"83":0.00494,"86":0.01977,"87":0.01483,"88":0.00989,"90":0.00989,"95":0.01977,"97":0.00494,"98":0.00989,"101":0.00494,"103":0.40038,"104":0.40038,"105":0.40038,"106":0.3905,"107":0.3905,"108":0.39544,"109":1.03309,"110":0.3905,"111":0.40533,"112":0.82054,"113":0.00494,"114":0.01977,"115":0.00494,"116":0.84525,"117":0.39544,"118":0.00494,"119":0.02472,"120":0.40038,"121":0.00494,"122":0.02966,"123":0.00494,"124":0.40038,"125":0.00989,"126":0.00989,"127":0.02472,"128":0.02966,"129":0.01483,"130":0.01977,"131":0.84031,"132":0.01483,"133":0.82054,"134":0.01977,"135":0.07415,"136":0.02472,"137":0.0346,"138":0.09392,"139":0.08403,"140":0.04449,"141":0.04449,"142":0.09392,"143":0.19772,"144":0.98366,"145":11.46776,"146":9.8168,"147":0.01977,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 50 51 52 53 54 56 57 58 59 60 61 62 64 65 66 67 68 70 71 72 73 76 77 78 81 84 85 89 91 92 93 94 96 99 100 102 148 149 150"},F:{"95":0.01483,"96":0.02472,"124":0.00494,"125":0.00494,"126":0.00494,"127":0.91446,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"16":0.01483,"18":0.00494,"92":0.00494,"109":0.00494,"127":0.00494,"134":0.00494,"139":0.05932,"140":0.00494,"141":0.00494,"142":0.01977,"143":0.04943,"144":0.04449,"145":1.52244,"146":1.59659,_:"12 13 14 15 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 128 129 130 131 132 133 135 136 137 138"},E:{"14":0.00494,_:"4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.2-15.3 15.4 15.5 16.0 16.2 16.3 16.5 17.0 26.5 TP","13.1":0.00494,"14.1":0.00494,"15.1":0.00989,"15.6":0.02472,"16.1":0.00494,"16.4":0.00494,"16.6":0.04943,"17.1":0.02472,"17.2":0.00494,"17.3":0.00494,"17.4":0.00494,"17.5":0.00494,"17.6":0.05437,"18.0":0.00494,"18.1":0.06426,"18.2":0.00494,"18.3":0.00989,"18.4":0.00989,"18.5-18.7":0.03954,"26.0":0.00989,"26.1":0.02472,"26.2":0.11863,"26.3":0.44487,"26.4":0.01977},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00115,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.0023,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00575,"11.0-11.2":0.1448,"11.3-11.4":0.00345,"12.0-12.1":0,"12.2-12.5":0.04482,"13.0-13.1":0,"13.2":0.01724,"13.3":0.0023,"13.4-13.7":0.00575,"14.0-14.4":0.01034,"14.5-14.8":0.01034,"15.0-15.1":0.01494,"15.2-15.3":0.00919,"15.4":0.01149,"15.5":0.01264,"15.6-15.8":0.2034,"16.0":0.02069,"16.1":0.04022,"16.2":0.02298,"16.3":0.04137,"16.4":0.00919,"16.5":0.01724,"16.6-16.7":0.2827,"17.0":0.01264,"17.1":0.02069,"17.2":0.01839,"17.3":0.02528,"17.4":0.04137,"17.5":0.07814,"17.6-17.7":0.20111,"18.0":0.04367,"18.1":0.08964,"18.2":0.04712,"18.3":0.15054,"18.4":0.0724,"18.5-18.7":2.30295,"26.0":0.14365,"26.1":0.21834,"26.2":1.28478,"26.3":5.58156,"26.4":0.20915,"26.5":0},P:{"21":0.01029,"22":0.03088,"23":0.02059,"24":0.05147,"25":0.07206,"26":0.08236,"27":0.10294,"28":0.29854,"29":3.98393,_:"4 20 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 18.0 19.0","7.2-7.4":0.28824,"17.0":0.01029},I:{"0":0.02527,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.08093,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.17703},Q:{_:"14.9"},O:{"0":0.04046},H:{all:0},L:{"0":41.96557}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/UZ.js b/server/api/node_modules/caniuse-lite/data/regions/UZ.js new file mode 100644 index 0000000..521d24f --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/UZ.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.18225,"52":0.00651,"66":0.00651,"69":0.00651,"78":0.00651,"115":0.17574,"125":0.00651,"128":0.00651,"140":0.05207,"143":0.00651,"146":0.01302,"147":0.02604,"148":0.48167,"149":0.11065,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 67 68 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 126 127 129 130 131 132 133 134 135 136 137 138 139 141 142 144 145 150 151 152 3.5 3.6"},D:{"27":0.00651,"32":0.00651,"49":0.01302,"58":0.00651,"60":0.00651,"61":0.00651,"62":0.00651,"63":0.00651,"64":0.00651,"66":0.00651,"67":0.00651,"68":0.01953,"69":0.02604,"70":0.00651,"71":0.00651,"72":0.00651,"73":0.00651,"75":0.01302,"79":0.00651,"83":0.01302,"84":0.00651,"86":0.00651,"87":0.01953,"89":0.00651,"91":0.01302,"98":0.00651,"101":0.01302,"102":0.01302,"103":1.36038,"104":1.35387,"105":1.37991,"106":1.40594,"107":1.445,"108":1.37991,"109":2.56455,"110":1.34736,"111":1.37991,"112":1.88761,"113":0.00651,"114":0.01302,"116":2.72076,"117":1.36038,"118":0.00651,"119":0.00651,"120":1.3734,"121":0.01302,"122":0.05207,"123":0.01302,"124":1.39293,"125":0.00651,"126":0.01953,"127":0.00651,"128":0.01302,"129":0.01302,"130":0.01953,"131":2.8184,"132":0.09764,"133":2.79236,"134":0.03905,"135":0.03255,"136":0.01953,"137":0.01953,"138":0.07811,"139":0.07811,"140":0.03905,"141":0.03255,"142":0.10414,"143":0.16273,"144":1.90714,"145":9.19071,"146":7.21848,"147":0.01953,"148":0.00651,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 28 29 30 31 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 59 65 74 76 77 78 80 81 85 88 90 92 93 94 95 96 97 99 100 115 149 150"},F:{"51":0.00651,"53":0.00651,"54":0.00651,"55":0.00651,"56":0.00651,"57":0.00651,"63":0.00651,"67":0.00651,"79":0.00651,"82":0.00651,"95":0.05858,"96":0.02604,"126":0.01302,"127":0.30592,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 52 58 60 62 64 65 66 68 69 70 71 72 73 74 75 76 77 78 80 81 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.02604,"92":0.01953,"109":0.01953,"113":0.00651,"114":0.00651,"122":0.00651,"124":0.00651,"131":0.01953,"132":0.00651,"133":0.00651,"134":0.01302,"135":0.01302,"136":0.00651,"138":0.00651,"140":0.00651,"141":0.01302,"142":0.01302,"143":0.03255,"144":0.04556,"145":1.28227,"146":1.18464,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 115 116 117 118 119 120 121 123 125 126 127 128 129 130 137 139"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.3 16.4 16.5 17.0 17.2 17.3 18.0 18.4 26.5 TP","14.1":0.00651,"15.6":0.02604,"16.6":0.00651,"17.1":0.00651,"17.4":0.00651,"17.5":0.00651,"17.6":0.01953,"18.1":0.00651,"18.2":0.00651,"18.3":0.00651,"18.5-18.7":0.02604,"26.0":0.03255,"26.1":0.01953,"26.2":0.08462,"26.3":0.29941,"26.4":0.01953},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00049,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00098,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00244,"11.0-11.2":0.06152,"11.3-11.4":0.00146,"12.0-12.1":0,"12.2-12.5":0.01904,"13.0-13.1":0,"13.2":0.00732,"13.3":0.00098,"13.4-13.7":0.00244,"14.0-14.4":0.00439,"14.5-14.8":0.00439,"15.0-15.1":0.00635,"15.2-15.3":0.00391,"15.4":0.00488,"15.5":0.00537,"15.6-15.8":0.08642,"16.0":0.00879,"16.1":0.01709,"16.2":0.00977,"16.3":0.01758,"16.4":0.00391,"16.5":0.00732,"16.6-16.7":0.12011,"17.0":0.00537,"17.1":0.00879,"17.2":0.00781,"17.3":0.01074,"17.4":0.01758,"17.5":0.0332,"17.6-17.7":0.08544,"18.0":0.01855,"18.1":0.03808,"18.2":0.02002,"18.3":0.06396,"18.4":0.03076,"18.5-18.7":0.97846,"26.0":0.06103,"26.1":0.09277,"26.2":0.54586,"26.3":2.37144,"26.4":0.08886,"26.5":0},P:{"4":0.01032,"22":0.01032,"23":0.01032,"24":0.01032,"25":0.01032,"26":0.04128,"27":0.03096,"28":0.11352,"29":1.10429,_:"20 21 5.0-5.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 18.0 19.0","6.2-6.4":0.03096,"7.2-7.4":0.06192,"17.0":0.01032},I:{"0":0.00349,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0.42578,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.23432,_:"6 7 8 9 10 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.05235},Q:{"14.9":0.00698},O:{"0":2.15682},H:{all:0},L:{"0":30.55789}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/VA.js b/server/api/node_modules/caniuse-lite/data/regions/VA.js new file mode 100644 index 0000000..4fa8eee --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/VA.js @@ -0,0 +1 @@ +module.exports={C:{"109":0.0546,"115":1.6848,"128":0.0546,"140":0.1014,"147":0.0546,"148":7.7064,"149":4.3368,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 129 130 131 132 133 134 135 136 137 138 139 141 142 143 144 145 146 150 151 152 3.5 3.6"},D:{"109":0.3588,"116":0.0546,"122":2.301,"127":0.0546,"131":0.3588,"144":0.3042,"145":23.5872,"146":18.4782,"147":0.1014,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 117 118 119 120 121 123 124 125 126 128 129 130 132 133 134 135 136 137 138 139 140 141 142 143 148 149 150"},F:{_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.0546,"144":0.3042,"145":7.7064,"146":4.8984,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 14.1 15.1 15.2-15.3 15.4 16.0 16.1 16.2 16.3 16.4 16.5 16.6 17.0 17.1 17.2 17.3 17.4 17.5 18.1 18.2 18.4 26.0 26.4 26.5 TP","13.1":0.156,"15.5":0.0546,"15.6":0.0546,"17.6":0.1014,"18.0":0.0546,"18.3":0.0546,"18.5-18.7":0.0546,"26.1":0.156,"26.2":0.2028,"26.3":1.989},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00048,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00096,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00241,"11.0-11.2":0.06071,"11.3-11.4":0.00145,"12.0-12.1":0,"12.2-12.5":0.01879,"13.0-13.1":0,"13.2":0.00723,"13.3":0.00096,"13.4-13.7":0.00241,"14.0-14.4":0.00434,"14.5-14.8":0.00434,"15.0-15.1":0.00626,"15.2-15.3":0.00385,"15.4":0.00482,"15.5":0.0053,"15.6-15.8":0.08528,"16.0":0.00867,"16.1":0.01686,"16.2":0.00964,"16.3":0.01734,"16.4":0.00385,"16.5":0.00723,"16.6-16.7":0.11852,"17.0":0.0053,"17.1":0.00867,"17.2":0.00771,"17.3":0.0106,"17.4":0.01734,"17.5":0.03276,"17.6-17.7":0.08432,"18.0":0.01831,"18.1":0.03758,"18.2":0.01975,"18.3":0.06312,"18.4":0.03035,"18.5-18.7":0.96553,"26.0":0.06023,"26.1":0.09154,"26.2":0.53865,"26.3":2.3401,"26.4":0.08769,"26.5":0},P:{"26":0.05167,"29":0.73373,_:"4 20 21 22 23 24 25 27 28 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0.1056,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":2.9854},Q:{_:"14.9"},O:{"0":0.5764},H:{all:0},L:{"0":13.0292}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/VC.js b/server/api/node_modules/caniuse-lite/data/regions/VC.js new file mode 100644 index 0000000..8006291 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/VC.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.0168,"144":0.0056,"146":0.0056,"147":0.1512,"148":1.6576,"149":0.3136,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 145 150 151 152 3.5 3.6"},D:{"65":0.0336,"69":0.0224,"79":0.0056,"85":0.0336,"88":0.0056,"93":0.0224,"95":0.0112,"99":0.0168,"102":0.0112,"103":0.1232,"104":0.0336,"105":0.0392,"106":0.028,"107":0.0336,"108":0.0504,"109":0.308,"110":0.028,"111":0.0224,"112":0.0952,"116":0.1008,"117":0.028,"119":0.0448,"120":0.0504,"122":0.0056,"123":0.0056,"124":0.028,"126":0.0112,"127":0.0168,"128":0.0224,"130":0.0448,"131":0.112,"132":0.0056,"133":0.1008,"137":0.0056,"138":0.1512,"139":1.5064,"141":0.0168,"142":0.0672,"143":0.2576,"144":1.3328,"145":14.8904,"146":7.616,"147":0.0952,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 66 67 68 70 71 72 73 74 75 76 77 78 80 81 83 84 86 87 89 90 91 92 94 96 97 98 100 101 113 114 115 118 121 125 129 134 135 136 140 148 149 150"},F:{"63":0.0112,"95":0.0056,"96":0.028,"127":0.168,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.0112,"124":0.0168,"137":0.0056,"141":0.0448,"142":0.0112,"143":0.0336,"144":0.2688,"145":3.7408,"146":3.5616,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 125 126 127 128 129 130 131 132 133 134 135 136 138 139 140"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 15.2-15.3 15.4 16.0 16.1 16.3 16.4 16.5 17.2 17.4 18.0 18.2 18.4 26.5 TP","15.5":0.0112,"15.6":0.4704,"16.2":0.0504,"16.6":0.1176,"17.0":0.0056,"17.1":0.0224,"17.3":0.0112,"17.5":0.0056,"17.6":0.6104,"18.1":0.028,"18.3":0.0056,"18.5-18.7":0.0112,"26.0":0.0056,"26.1":0.9576,"26.2":0.252,"26.3":1.6688,"26.4":0.1512},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00116,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00232,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00579,"11.0-11.2":0.14603,"11.3-11.4":0.00348,"12.0-12.1":0,"12.2-12.5":0.0452,"13.0-13.1":0,"13.2":0.01738,"13.3":0.00232,"13.4-13.7":0.00579,"14.0-14.4":0.01043,"14.5-14.8":0.01043,"15.0-15.1":0.01507,"15.2-15.3":0.00927,"15.4":0.01159,"15.5":0.01275,"15.6-15.8":0.20514,"16.0":0.02086,"16.1":0.04056,"16.2":0.02318,"16.3":0.04172,"16.4":0.00927,"16.5":0.01738,"16.6-16.7":0.2851,"17.0":0.01275,"17.1":0.02086,"17.2":0.01854,"17.3":0.0255,"17.4":0.04172,"17.5":0.07881,"17.6-17.7":0.20282,"18.0":0.04404,"18.1":0.0904,"18.2":0.04752,"18.3":0.15182,"18.4":0.07301,"18.5-18.7":2.32256,"26.0":0.14487,"26.1":0.2202,"26.2":1.29572,"26.3":5.62907,"26.4":0.21093,"26.5":0},P:{"4":0.01055,"21":0.03165,"24":0.0211,"26":0.09494,"27":0.0211,"28":0.01055,"29":3.01688,_:"20 22 23 25 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 13.0 14.0 15.0 16.0 17.0 18.0","7.2-7.4":0.01055,"12.0":0.01055,"19.0":0.01055},I:{"0":0.03956,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.0484,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.0748},Q:{"14.9":0.0044},O:{"0":0.2288},H:{all:0},L:{"0":40.1924}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/VE.js b/server/api/node_modules/caniuse-lite/data/regions/VE.js new file mode 100644 index 0000000..6655a9d --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/VE.js @@ -0,0 +1 @@ +module.exports={C:{"4":1.54157,"5":0.11011,"52":0.03441,"68":0.00688,"78":0.00688,"91":0.00688,"115":0.33722,"123":0.00688,"127":0.00688,"128":0.00688,"136":0.00688,"138":0.00688,"139":0.01376,"140":0.04129,"141":0.00688,"142":0.00688,"143":0.00688,"144":0.00688,"145":0.03441,"146":0.02753,"147":0.0757,"148":1.04606,"149":0.17205,_:"2 3 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 124 125 126 129 130 131 132 133 134 135 137 150 151 152 3.5 3.6"},D:{"49":0.00688,"63":0.00688,"65":0.00688,"66":0.00688,"68":0.00688,"69":0.01376,"70":0.00688,"71":0.00688,"72":0.00688,"73":0.00688,"75":0.00688,"83":0.00688,"84":0.00688,"85":0.00688,"86":0.00688,"87":0.02065,"91":0.00688,"93":0.01376,"95":0.00688,"97":0.02753,"98":0.01376,"100":0.00688,"101":0.00688,"102":0.00688,"103":1.32134,"104":1.3007,"105":1.28005,"106":1.30758,"107":1.29382,"108":1.29382,"109":3.56488,"110":1.27317,"111":1.29382,"112":3.32401,"113":0.00688,"114":0.02065,"115":0.00688,"116":2.56699,"117":1.25252,"118":0.01376,"119":0.02065,"120":1.29382,"121":0.02065,"122":0.08947,"123":0.01376,"124":1.29382,"125":0.04129,"126":0.03441,"127":0.02753,"128":0.05506,"129":0.01376,"130":0.02753,"131":2.65645,"132":0.02753,"133":2.63581,"134":0.04129,"135":0.02753,"136":0.03441,"137":0.13764,"138":0.13076,"139":0.1514,"140":0.02753,"141":0.0757,"142":0.09635,"143":0.25463,"144":1.45898,"145":8.55433,"146":7.43944,"147":0.00688,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 64 67 74 76 77 78 79 80 81 88 89 90 92 94 96 99 148 149 150"},F:{"69":0.04817,"87":0.00688,"95":0.14452,"96":0.04817,"102":0.02065,"114":0.00688,"126":0.01376,"127":0.9566,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 88 89 90 91 92 93 94 97 98 99 100 101 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119 120 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00688,"92":0.02753,"102":0.00688,"109":0.04129,"121":0.00688,"122":0.01376,"131":0.01376,"133":0.00688,"134":0.01376,"135":0.00688,"136":0.00688,"138":0.01376,"139":0.00688,"140":0.00688,"141":0.00688,"142":0.01376,"143":0.06194,"144":0.0757,"145":1.58974,"146":1.77556,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 123 124 125 126 127 128 129 130 132 137"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 10.1 11.1 12.1 14.1 15.1 15.2-15.3 16.0 16.1 16.2 16.3 16.4 16.5 17.0 17.2 17.5 18.0 18.2 26.5 TP","5.1":0.08947,"9.1":0.00688,"13.1":0.00688,"15.4":0.00688,"15.5":0.00688,"15.6":0.02065,"16.6":0.02065,"17.1":0.00688,"17.3":0.00688,"17.4":0.00688,"17.6":0.02753,"18.1":0.00688,"18.3":0.00688,"18.4":0.00688,"18.5-18.7":0.00688,"26.0":0.00688,"26.1":0.00688,"26.2":0.04129,"26.3":0.1514,"26.4":0.00688},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00031,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00063,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00157,"11.0-11.2":0.03956,"11.3-11.4":0.00094,"12.0-12.1":0,"12.2-12.5":0.01225,"13.0-13.1":0,"13.2":0.00471,"13.3":0.00063,"13.4-13.7":0.00157,"14.0-14.4":0.00283,"14.5-14.8":0.00283,"15.0-15.1":0.00408,"15.2-15.3":0.00251,"15.4":0.00314,"15.5":0.00345,"15.6-15.8":0.05557,"16.0":0.00565,"16.1":0.01099,"16.2":0.00628,"16.3":0.0113,"16.4":0.00251,"16.5":0.00471,"16.6-16.7":0.07724,"17.0":0.00345,"17.1":0.00565,"17.2":0.00502,"17.3":0.00691,"17.4":0.0113,"17.5":0.02135,"17.6-17.7":0.05495,"18.0":0.01193,"18.1":0.02449,"18.2":0.01287,"18.3":0.04113,"18.4":0.01978,"18.5-18.7":0.62922,"26.0":0.03925,"26.1":0.05966,"26.2":0.35103,"26.3":1.52501,"26.4":0.05714,"26.5":0},P:{"23":0.01103,"26":0.02207,"27":0.01103,"28":0.02207,"29":0.47442,_:"4 20 21 22 24 25 5.0-5.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","6.2-6.4":0.02207,"7.2-7.4":0.01103},I:{"0":0.02181,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.31804,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{"2.5":0.00312,_:"3.0-3.1"},R:{_:"0"},M:{"0":0.19332},Q:{_:"14.9"},O:{"0":0.08419},H:{all:0},L:{"0":35.65005}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/VG.js b/server/api/node_modules/caniuse-lite/data/regions/VG.js new file mode 100644 index 0000000..8684627 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/VG.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.00541,"115":0.01081,"121":0.00541,"122":0.01081,"123":0.01622,"125":0.00541,"133":0.07567,"140":0.15675,"143":0.01622,"145":0.01081,"146":0.01622,"147":0.01081,"148":0.58915,"149":0.11891,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 124 126 127 128 129 130 131 132 134 135 136 137 138 139 141 142 144 150 151 152 3.5 3.6"},D:{"50":0.01622,"70":0.00541,"79":0.02703,"88":0.00541,"102":0.00541,"103":0.01622,"105":0.00541,"106":0.00541,"107":0.01081,"108":0.00541,"109":0.15134,"110":0.01081,"111":0.00541,"112":0.01081,"115":0.00541,"116":0.02703,"117":0.00541,"119":0.01081,"120":0.01622,"121":0.01622,"122":0.02162,"123":0.01081,"124":0.01081,"125":0.00541,"126":0.02162,"127":0.01622,"128":0.02162,"129":0.00541,"130":0.02703,"131":0.02703,"133":0.01622,"134":0.01081,"137":0.04324,"138":0.08108,"139":0.35673,"140":0.00541,"141":0.05405,"142":0.19999,"143":0.48645,"144":1.49719,"145":14.53405,"146":9.87494,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 71 72 73 74 75 76 77 78 80 81 83 84 85 86 87 89 90 91 92 93 94 95 96 97 98 99 100 101 104 113 114 118 132 135 136 147 148 149 150"},F:{"87":0.00541,"95":0.04324,"105":0.00541,"126":0.01622,"127":0.09189,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00541,"109":0.02703,"113":0.00541,"120":0.00541,"129":0.19458,"131":0.1081,"132":0.00541,"133":0.04865,"134":0.01622,"137":0.00541,"138":0.02162,"139":0.00541,"141":0.00541,"142":0.02162,"143":0.02703,"144":0.02703,"145":5.2969,"146":5.95091,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 114 115 116 117 118 119 121 122 123 124 125 126 127 128 130 135 136 140"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 13.1 15.1 15.2-15.3 15.5 16.0 16.2 26.5 TP","12.1":0.01081,"14.1":0.01622,"15.4":0.00541,"15.6":0.16756,"16.1":0.44321,"16.3":0.00541,"16.4":0.03784,"16.5":0.00541,"16.6":0.22161,"17.0":0.00541,"17.1":0.04865,"17.2":0.01081,"17.3":0.02162,"17.4":0.00541,"17.5":0.05405,"17.6":0.16756,"18.0":0.00541,"18.1":0.02162,"18.2":0.00541,"18.3":0.03243,"18.4":0.03784,"18.5-18.7":0.1081,"26.0":0.18377,"26.1":0.12972,"26.2":0.29728,"26.3":2.53495,"26.4":0.00541},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00218,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00436,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.01091,"11.0-11.2":0.27489,"11.3-11.4":0.00655,"12.0-12.1":0,"12.2-12.5":0.08509,"13.0-13.1":0,"13.2":0.03273,"13.3":0.00436,"13.4-13.7":0.01091,"14.0-14.4":0.01964,"14.5-14.8":0.01964,"15.0-15.1":0.02836,"15.2-15.3":0.01745,"15.4":0.02182,"15.5":0.024,"15.6-15.8":0.38616,"16.0":0.03927,"16.1":0.07636,"16.2":0.04363,"16.3":0.07854,"16.4":0.01745,"16.5":0.03273,"16.6-16.7":0.5367,"17.0":0.024,"17.1":0.03927,"17.2":0.03491,"17.3":0.048,"17.4":0.07854,"17.5":0.14836,"17.6-17.7":0.3818,"18.0":0.0829,"18.1":0.17017,"18.2":0.08945,"18.3":0.2858,"18.4":0.13745,"18.5-18.7":4.37214,"26.0":0.27271,"26.1":0.41452,"26.2":2.43915,"26.3":10.59655,"26.4":0.39707,"26.5":0},P:{"21":0.01069,"22":0.01069,"23":0.02139,"24":0.01069,"25":0.01069,"27":0.01069,"28":0.2887,"29":3.72108,_:"4 20 26 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":1.01581},I:{"0":0.02295,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.10569,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.05974},Q:{_:"14.9"},O:{"0":0.01379},H:{all:0},L:{"0":25.12108}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/VI.js b/server/api/node_modules/caniuse-lite/data/regions/VI.js new file mode 100644 index 0000000..e11acf4 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/VI.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.00458,"115":0.28879,"136":0.00458,"140":0.0275,"144":0.12835,"146":0.18336,"147":0.41256,"148":2.75957,"149":0.23378,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 137 138 139 141 142 143 145 150 151 152 3.5 3.6"},D:{"92":0.00458,"93":0.00458,"98":0.00458,"101":0.00917,"103":0.00458,"105":0.00458,"108":0.00458,"109":0.14669,"116":0.0275,"122":0.00917,"123":0.01834,"126":0.01375,"127":0.00458,"128":0.00917,"130":0.08251,"131":0.01834,"132":0.0275,"133":0.04584,"134":0.01834,"135":0.01834,"136":0.00458,"137":0.00458,"138":0.63259,"139":0.9443,"140":0.01375,"141":0.09626,"142":0.13294,"143":0.2017,"144":1.30644,"145":9.56681,"146":6.14714,"148":0.00917,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 91 94 95 96 97 99 100 102 104 106 107 110 111 112 113 114 115 117 118 119 120 121 124 125 129 147 149 150"},F:{"106":0.07334,"127":0.16961,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"109":0.04126,"131":0.02292,"135":0.00458,"136":0.01834,"139":0.00458,"142":0.01375,"143":0.06876,"144":0.12835,"145":3.76805,"146":3.71762,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 132 133 134 137 138 140 141"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.5 16.1 16.2 17.0 17.4 18.0 18.2 26.5 TP","5.1":0.00458,"13.1":0.00458,"14.1":0.00917,"15.4":0.00458,"15.6":0.10543,"16.0":0.41256,"16.3":0.03667,"16.4":0.00458,"16.5":0.00458,"16.6":0.13294,"17.1":0.80678,"17.2":0.00458,"17.3":0.05042,"17.5":0.04126,"17.6":0.31171,"18.1":0.66468,"18.3":0.05042,"18.4":0.12835,"18.5-18.7":0.22003,"26.0":0.05501,"26.1":0.0871,"26.2":0.49966,"26.3":2.99335,"26.4":0.05042},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00328,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00655,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.01639,"11.0-11.2":0.41293,"11.3-11.4":0.00983,"12.0-12.1":0,"12.2-12.5":0.12781,"13.0-13.1":0,"13.2":0.04916,"13.3":0.00655,"13.4-13.7":0.01639,"14.0-14.4":0.02949,"14.5-14.8":0.02949,"15.0-15.1":0.0426,"15.2-15.3":0.02622,"15.4":0.03277,"15.5":0.03605,"15.6-15.8":0.58007,"16.0":0.05899,"16.1":0.1147,"16.2":0.06554,"16.3":0.11798,"16.4":0.02622,"16.5":0.04916,"16.6-16.7":0.8062,"17.0":0.03605,"17.1":0.05899,"17.2":0.05244,"17.3":0.0721,"17.4":0.11798,"17.5":0.22285,"17.6-17.7":0.57351,"18.0":0.12453,"18.1":0.25562,"18.2":0.13437,"18.3":0.42932,"18.4":0.20646,"18.5-18.7":6.56755,"26.0":0.40965,"26.1":0.62267,"26.2":3.66393,"26.3":15.91747,"26.4":0.59645,"26.5":0},P:{"27":0.01111,"28":0.01111,"29":1.51051,_:"4 20 21 22 23 24 25 26 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.06493,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00003},K:{"0":0.19498,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.27622},Q:{_:"14.9"},O:{"0":0.02708},H:{all:0},L:{"0":24.05639}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/VN.js b/server/api/node_modules/caniuse-lite/data/regions/VN.js new file mode 100644 index 0000000..6da9739 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/VN.js @@ -0,0 +1 @@ +module.exports={C:{"50":0.00386,"51":0.00386,"52":0.00386,"53":0.00386,"54":0.00386,"55":0.00386,"56":0.00386,"57":0.00386,"58":0.00386,"59":0.00386,"60":0.00386,"61":0.00386,"62":0.00386,"63":0.00386,"65":0.00386,"66":0.00386,"67":0.00386,"109":0.01159,"115":0.02703,"136":0.00772,"140":0.00386,"147":0.01545,"148":0.22786,"149":0.04634,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 64 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 137 138 139 141 142 143 144 145 146 150 151 152 3.5 3.6"},D:{"49":0.00386,"53":0.00386,"54":0.00386,"57":0.00386,"60":0.00772,"61":0.00386,"62":0.00772,"63":0.00772,"64":0.00772,"65":0.00386,"66":0.00772,"67":0.00772,"68":0.01931,"69":0.00386,"70":0.00772,"71":0.00386,"72":0.00386,"74":0.00386,"75":0.00386,"77":0.00386,"79":0.00386,"81":0.00386,"85":0.00386,"87":0.01159,"89":0.00386,"91":0.00386,"100":0.00386,"101":0.00386,"102":0.00386,"103":0.71833,"104":0.71061,"105":0.71061,"106":0.71447,"107":0.71833,"108":0.71061,"109":1.02343,"110":0.69516,"111":0.71061,"112":1.74562,"113":0.00772,"114":0.01545,"115":0.01545,"116":1.4328,"117":0.67585,"118":0.01159,"119":0.01545,"120":0.68744,"121":0.01545,"122":0.03862,"123":0.01545,"124":0.72219,"125":0.01159,"126":0.01931,"127":0.01545,"128":0.05021,"129":0.01545,"130":0.01931,"131":3.11663,"132":0.04634,"133":1.41349,"134":0.01931,"135":0.02703,"136":0.01931,"137":0.01931,"138":0.07338,"139":0.09269,"140":0.02317,"141":0.02703,"142":0.09655,"143":0.10814,"144":0.39006,"145":4.25206,"146":3.70366,"147":0.00772,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 55 56 58 59 73 76 78 80 83 84 86 88 90 92 93 94 95 96 97 98 99 148 149 150"},F:{"36":0.00772,"46":0.00386,"50":0.00386,"51":0.00772,"52":0.00772,"53":0.00772,"54":0.01159,"55":0.01159,"56":0.01931,"57":0.00772,"58":0.00386,"60":0.00386,"95":0.0309,"96":0.03862,"126":0.00386,"127":0.0811,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 47 48 49 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.00386,"109":0.00386,"114":0.00386,"117":0.00386,"122":0.00386,"127":0.00386,"128":0.00386,"129":0.00386,"130":0.00386,"131":0.05407,"132":0.00386,"133":0.00386,"134":0.00386,"135":0.00386,"138":0.00386,"139":0.00386,"140":0.00386,"141":0.00386,"142":0.00772,"143":0.00772,"144":0.02317,"145":0.58316,"146":0.64109,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 118 119 120 121 123 124 125 126 136 137"},E:{"14":0.00386,_:"4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 10.1 11.1 12.1 15.1 15.2-15.3 16.0 17.0 26.5 TP","9.1":0.00386,"13.1":0.00386,"14.1":0.01159,"15.4":0.00386,"15.5":0.00386,"15.6":0.06565,"16.1":0.00386,"16.2":0.00386,"16.3":0.01159,"16.4":0.00772,"16.5":0.00772,"16.6":0.06179,"17.1":0.03862,"17.2":0.00386,"17.3":0.00386,"17.4":0.00386,"17.5":0.01159,"17.6":0.02317,"18.0":0.00386,"18.1":0.00386,"18.2":0.00386,"18.3":0.01545,"18.4":0.00772,"18.5-18.7":0.01931,"26.0":0.00772,"26.1":0.01159,"26.2":0.04634,"26.3":0.20855,"26.4":0.01159},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00184,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00369,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00921,"11.0-11.2":0.23217,"11.3-11.4":0.00553,"12.0-12.1":0,"12.2-12.5":0.07186,"13.0-13.1":0,"13.2":0.02764,"13.3":0.00369,"13.4-13.7":0.00921,"14.0-14.4":0.01658,"14.5-14.8":0.01658,"15.0-15.1":0.02395,"15.2-15.3":0.01474,"15.4":0.01843,"15.5":0.02027,"15.6-15.8":0.32615,"16.0":0.03317,"16.1":0.06449,"16.2":0.03685,"16.3":0.06633,"16.4":0.01474,"16.5":0.02764,"16.6-16.7":0.45329,"17.0":0.02027,"17.1":0.03317,"17.2":0.02948,"17.3":0.04054,"17.4":0.06633,"17.5":0.1253,"17.6-17.7":0.32246,"18.0":0.07002,"18.1":0.14372,"18.2":0.07555,"18.3":0.24138,"18.4":0.11609,"18.5-18.7":3.69263,"26.0":0.23033,"26.1":0.3501,"26.2":2.06006,"26.3":8.94964,"26.4":0.33536,"26.5":0},P:{"4":0.04096,"20":0.01024,"21":0.02048,"22":0.02048,"23":0.02048,"24":0.02048,"25":0.0512,"26":0.09216,"27":0.07168,"28":0.18433,"29":1.40294,_:"5.0-5.4 6.2-6.4 8.2 9.2 10.1 12.0 13.0 14.0 15.0 16.0 18.0 19.0","7.2-7.4":0.04096,"11.1-11.2":0.01024,"17.0":0.01024},I:{"0":0.00613,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0.23324,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.11662},Q:{"14.9":0.00614},O:{"0":2.52272},H:{all:0},L:{"0":43.39821}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/VU.js b/server/api/node_modules/caniuse-lite/data/regions/VU.js new file mode 100644 index 0000000..f1a215d --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/VU.js @@ -0,0 +1 @@ +module.exports={C:{"128":0.02028,"142":0.00507,"144":0.04057,"147":0.06085,"148":0.87728,"149":0.1217,"150":0.05071,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 129 130 131 132 133 134 135 136 137 138 139 140 141 143 145 146 151 152 3.5 3.6"},D:{"59":0.00507,"69":0.00507,"78":0.06085,"81":0.01014,"87":0.00507,"99":0.00507,"103":0.01014,"109":0.07607,"111":0.0355,"116":0.01014,"117":0.00507,"119":0.01521,"120":0.00507,"121":0.01521,"122":0.01014,"124":0.04057,"125":0.00507,"126":0.04057,"127":0.04057,"128":0.03043,"130":0.00507,"131":0.02028,"132":0.04057,"133":0.00507,"134":0.00507,"135":0.01014,"138":0.02028,"139":0.06085,"140":0.04057,"141":0.01521,"142":0.16227,"143":0.10649,"144":0.39554,"145":9.83774,"146":7.97668,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 61 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 79 80 83 84 85 86 88 89 90 91 92 93 94 95 96 97 98 100 101 102 104 105 106 107 108 110 112 113 114 115 118 123 129 136 137 147 148 149 150"},F:{"127":2.08418,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"16":0.02028,"18":0.00507,"92":0.00507,"114":0.01014,"119":0.00507,"122":0.00507,"127":0.04057,"131":0.01014,"133":0.00507,"134":0.01014,"135":0.00507,"138":0.20284,"139":0.07099,"140":0.02028,"141":0.01014,"142":0.05578,"143":0.02536,"144":0.2282,"145":3.66126,"146":2.93104,_:"12 13 14 15 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 120 121 123 124 125 126 128 129 130 132 136 137"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 14.1 15.1 15.2-15.3 15.4 15.5 16.1 16.2 16.3 16.5 17.1 17.3 17.4 18.0 18.1 18.2 18.4 18.5-18.7 26.0 26.4 26.5 TP","12.1":0.00507,"13.1":0.02028,"15.6":0.01521,"16.0":0.03043,"16.4":0.01014,"16.6":0.03043,"17.0":0.01521,"17.2":0.01014,"17.5":0.02028,"17.6":0.18763,"18.3":0.01014,"26.1":0.03043,"26.2":0.07607,"26.3":0.21805},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00049,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00098,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00244,"11.0-11.2":0.06153,"11.3-11.4":0.00147,"12.0-12.1":0,"12.2-12.5":0.01905,"13.0-13.1":0,"13.2":0.00733,"13.3":0.00098,"13.4-13.7":0.00244,"14.0-14.4":0.0044,"14.5-14.8":0.0044,"15.0-15.1":0.00635,"15.2-15.3":0.00391,"15.4":0.00488,"15.5":0.00537,"15.6-15.8":0.08644,"16.0":0.00879,"16.1":0.01709,"16.2":0.00977,"16.3":0.01758,"16.4":0.00391,"16.5":0.00733,"16.6-16.7":0.12014,"17.0":0.00537,"17.1":0.00879,"17.2":0.00781,"17.3":0.01074,"17.4":0.01758,"17.5":0.03321,"17.6-17.7":0.08546,"18.0":0.01856,"18.1":0.03809,"18.2":0.02002,"18.3":0.06398,"18.4":0.03077,"18.5-18.7":0.97868,"26.0":0.06105,"26.1":0.09279,"26.2":0.54599,"26.3":2.37199,"26.4":0.08888,"26.5":0},P:{"21":0.01043,"23":0.01043,"24":0.06261,"25":0.34433,"26":0.01043,"27":0.0313,"28":0.23999,"29":5.24842,_:"4 20 22 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.00985,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0.00986,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.71456},Q:{_:"14.9"},O:{"0":0.11334},H:{all:0},L:{"0":47.02672}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/WF.js b/server/api/node_modules/caniuse-lite/data/regions/WF.js new file mode 100644 index 0000000..c608629 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/WF.js @@ -0,0 +1 @@ +module.exports={C:{"140":0.4568,"142":0.04283,"148":0.58242,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 141 143 144 145 146 147 149 150 151 152 3.5 3.6"},D:{"109":0.04283,"133":0.04283,"138":0.0828,"143":0.70804,"144":0.83366,"145":0.99925,"146":1.20767,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 134 135 136 137 139 140 141 142 147 148 149 150"},F:{"127":0.12562,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"142":0.12562,"145":1.87288,"146":0.91646,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 143 144"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.2-15.3 15.4 15.5 15.6 16.0 16.1 16.2 16.3 16.4 16.5 17.0 17.2 17.3 18.0 18.1 18.2 18.3 18.4 18.5-18.7 26.0 26.5 TP","15.1":0.04283,"16.6":0.24839,"17.1":0.20842,"17.4":0.12562,"17.5":0.41683,"17.6":0.20842,"26.1":0.12562,"26.2":0.74801,"26.3":13.35855,"26.4":1.03922},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0049,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.0098,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.0245,"11.0-11.2":0.61741,"11.3-11.4":0.0147,"12.0-12.1":0,"12.2-12.5":0.1911,"13.0-13.1":0,"13.2":0.0735,"13.3":0.0098,"13.4-13.7":0.0245,"14.0-14.4":0.0441,"14.5-14.8":0.0441,"15.0-15.1":0.0637,"15.2-15.3":0.0392,"15.4":0.049,"15.5":0.0539,"15.6-15.8":0.86731,"16.0":0.0882,"16.1":0.1715,"16.2":0.098,"16.3":0.1764,"16.4":0.0392,"16.5":0.0735,"16.6-16.7":1.20541,"17.0":0.0539,"17.1":0.0882,"17.2":0.0784,"17.3":0.1078,"17.4":0.1764,"17.5":0.3332,"17.6-17.7":0.85751,"18.0":0.1862,"18.1":0.3822,"18.2":0.2009,"18.3":0.64191,"18.4":0.3087,"18.5-18.7":9.81968,"26.0":0.61251,"26.1":0.93101,"26.2":5.47825,"26.3":23.7995,"26.4":0.89181,"26.5":0},P:{"28":0.10479,"29":0.0524,_:"4 20 21 22 23 24 25 26 27 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{_:"0"},Q:{_:"14.9"},O:{_:"0"},H:{all:0},L:{"0":25.58136}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/WS.js b/server/api/node_modules/caniuse-lite/data/regions/WS.js new file mode 100644 index 0000000..0a1bf87 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/WS.js @@ -0,0 +1 @@ +module.exports={C:{"140":0.00461,"143":0.00461,"144":0.01384,"148":0.71978,"149":0.02768,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 141 142 145 146 147 150 151 152 3.5 3.6"},D:{"49":0.01846,"79":0.01846,"93":0.02768,"109":0.31837,"114":0.01384,"115":0.01846,"116":0.00461,"120":0.16149,"122":0.01384,"124":0.01384,"125":0.00461,"126":0.01384,"128":0.04614,"131":0.20763,"134":0.02768,"135":0.00461,"138":0.11535,"139":0.00461,"140":0.02768,"141":0.02768,"142":0.05537,"143":0.13842,"144":0.25377,"145":7.36394,"146":5.44452,"147":0.00461,"148":0.04614,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 83 84 85 86 87 88 89 90 91 92 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 117 118 119 121 123 127 129 130 132 133 136 137 149 150"},F:{"96":0.00461,"126":0.01384,"127":0.0646,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"16":0.00461,"17":0.01384,"92":0.00461,"103":0.07844,"117":0.00461,"122":0.01384,"127":0.01846,"133":0.00461,"134":0.01384,"135":0.00461,"137":0.0323,"138":0.10612,"140":0.04153,"141":0.01846,"142":0.02768,"143":0.04614,"144":0.11996,"145":4.27256,"146":5.06156,_:"12 13 14 15 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 104 105 106 107 108 109 110 111 112 113 114 115 116 118 119 120 121 123 124 125 126 128 129 130 131 132 136 139"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 11.1 12.1 13.1 15.1 15.2-15.3 15.4 16.0 16.2 16.3 16.4 16.5 17.0 17.2 17.3 17.4 18.0 18.2 18.4 26.0 26.4 26.5 TP","10.1":0.00461,"14.1":0.04614,"15.5":0.00461,"15.6":0.09228,"16.1":0.00461,"16.6":0.00461,"17.1":0.00461,"17.5":4.5817,"17.6":0.01384,"18.1":0.40603,"18.3":0.00461,"18.5-18.7":0.16149,"26.1":0.00461,"26.2":0.04614,"26.3":0.12458},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00085,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.0017,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00426,"11.0-11.2":0.10729,"11.3-11.4":0.00255,"12.0-12.1":0,"12.2-12.5":0.03321,"13.0-13.1":0,"13.2":0.01277,"13.3":0.0017,"13.4-13.7":0.00426,"14.0-14.4":0.00766,"14.5-14.8":0.00766,"15.0-15.1":0.01107,"15.2-15.3":0.00681,"15.4":0.00852,"15.5":0.00937,"15.6-15.8":0.15072,"16.0":0.01533,"16.1":0.0298,"16.2":0.01703,"16.3":0.03065,"16.4":0.00681,"16.5":0.01277,"16.6-16.7":0.20948,"17.0":0.00937,"17.1":0.01533,"17.2":0.01362,"17.3":0.01873,"17.4":0.03065,"17.5":0.0579,"17.6-17.7":0.14902,"18.0":0.03236,"18.1":0.06642,"18.2":0.03491,"18.3":0.11155,"18.4":0.05365,"18.5-18.7":1.70646,"26.0":0.10644,"26.1":0.16179,"26.2":0.95201,"26.3":4.13586,"26.4":0.15498,"26.5":0},P:{"4":0.01041,"20":0.05207,"21":0.13539,"22":0.17704,"23":0.11456,"24":0.71858,"25":1.34344,"26":0.22911,"27":0.61444,"28":1.40592,"29":3.53043,_:"5.0-5.4 8.2 10.1 11.1-11.2 12.0 14.0 15.0","6.2-6.4":0.01041,"7.2-7.4":0.06249,"9.2":0.01041,"13.0":0.01041,"16.0":0.01041,"17.0":0.01041,"18.0":0.01041,"19.0":0.01041},I:{"0":0.02152,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":2.04129,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.51167},Q:{"14.9":0.02154},O:{"0":0.01616},H:{all:0},L:{"0":46.15669}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/YE.js b/server/api/node_modules/caniuse-lite/data/regions/YE.js new file mode 100644 index 0000000..a51bd7c --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/YE.js @@ -0,0 +1 @@ +module.exports={C:{"115":0.04579,"118":0.00254,"128":0.00254,"140":0.00509,"144":0.00509,"146":0.00509,"147":0.01018,"148":0.1501,"149":0.01781,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 119 120 121 122 123 124 125 126 127 129 130 131 132 133 134 135 136 137 138 139 141 142 143 145 150 151 152 3.5 3.6"},D:{"41":0.00763,"47":0.00254,"55":0.01781,"56":0.00254,"58":0.00254,"70":0.3409,"71":0.00254,"73":0.00254,"78":0.00254,"79":0.00254,"81":0.00254,"83":0.00254,"86":0.00254,"87":0.05597,"91":0.01018,"94":0.00254,"95":0.00254,"96":0.00763,"102":0.00254,"105":0.00254,"106":0.04834,"107":0.00254,"108":0.00254,"109":0.2951,"114":0.01272,"115":0.02035,"119":0.04325,"120":0.00763,"121":0.00254,"122":0.00254,"123":0.01272,"124":0.00509,"126":0.01272,"127":0.00254,"128":0.00254,"130":0.00254,"131":0.01272,"132":0.00254,"133":0.00254,"134":0.01272,"135":0.01018,"136":0.00509,"137":0.01018,"138":0.19843,"139":0.02798,"140":0.00509,"141":0.05342,"142":0.0229,"143":0.07886,"144":0.13738,"145":1.86475,"146":1.60018,"147":0.00509,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 42 43 44 45 46 48 49 50 51 52 53 54 57 59 60 61 62 63 64 65 66 67 68 69 72 74 75 76 77 80 84 85 88 89 90 92 93 97 98 99 100 101 103 104 110 111 112 113 116 117 118 125 129 148 149 150"},F:{"53":0.00254,"79":0.00509,"86":0.01526,"88":0.00763,"89":0.00509,"90":0.12466,"91":0.00254,"93":0.00254,"94":0.03053,"95":0.0636,"96":0.1043,"127":0.02035,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 85 87 92 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"16":0.00509,"18":0.00254,"92":0.00509,"109":0.00509,"114":0.00254,"126":0.00254,"136":0.00254,"138":0.01526,"141":0.00254,"142":0.00509,"143":0.00509,"144":0.02544,"145":0.22642,"146":0.21624,_:"12 13 14 15 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 122 123 124 125 127 128 129 130 131 132 133 134 135 137 139 140"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 15.2-15.3 15.4 15.5 15.6 16.0 16.1 16.2 16.3 16.4 16.5 17.0 17.1 17.2 17.3 17.4 17.5 17.6 18.0 18.1 18.2 18.3 18.4 26.0 26.1 26.2 26.4 26.5 TP","5.1":0.06614,"16.6":0.00254,"18.5-18.7":0.01781,"26.3":0.0229},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00028,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00057,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00142,"11.0-11.2":0.0357,"11.3-11.4":0.00085,"12.0-12.1":0,"12.2-12.5":0.01105,"13.0-13.1":0,"13.2":0.00425,"13.3":0.00057,"13.4-13.7":0.00142,"14.0-14.4":0.00255,"14.5-14.8":0.00255,"15.0-15.1":0.00368,"15.2-15.3":0.00227,"15.4":0.00283,"15.5":0.00312,"15.6-15.8":0.05016,"16.0":0.0051,"16.1":0.00992,"16.2":0.00567,"16.3":0.0102,"16.4":0.00227,"16.5":0.00425,"16.6-16.7":0.06971,"17.0":0.00312,"17.1":0.0051,"17.2":0.00453,"17.3":0.00623,"17.4":0.0102,"17.5":0.01927,"17.6-17.7":0.04959,"18.0":0.01077,"18.1":0.0221,"18.2":0.01162,"18.3":0.03712,"18.4":0.01785,"18.5-18.7":0.56787,"26.0":0.03542,"26.1":0.05384,"26.2":0.3168,"26.3":1.37631,"26.4":0.05157,"26.5":0},P:{"21":0.02062,"22":0.01031,"23":0.01031,"25":0.01031,"26":0.03092,"27":0.01031,"28":0.1237,"29":0.93805,_:"4 20 24 5.0-5.4 6.2-6.4 8.2 10.1 15.0 17.0 19.0","7.2-7.4":0.11339,"9.2":0.01031,"11.1-11.2":0.02062,"12.0":0.01031,"13.0":0.01031,"14.0":0.01031,"16.0":0.06185,"18.0":0.01031},I:{"0":0.14901,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00007},K:{"0":2.1327,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.1566},Q:{_:"14.9"},O:{"0":6.05508},H:{all:0},L:{"0":80.46402}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/YT.js b/server/api/node_modules/caniuse-lite/data/regions/YT.js new file mode 100644 index 0000000..81eb015 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/YT.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.03815,"78":0.00382,"102":0.00382,"115":0.04578,"128":0.02671,"140":0.0496,"142":0.00382,"144":0.03434,"146":0.00382,"147":0.02289,"148":1.40011,"149":0.25561,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 129 130 131 132 133 134 135 136 137 138 139 141 143 145 150 151 152 3.5 3.6"},D:{"69":0.00382,"80":0.00382,"81":0.01145,"83":0.06867,"87":0.00382,"97":0.01145,"98":0.01526,"103":0.03815,"104":0.00382,"105":0.00382,"106":0.00382,"107":0.00382,"108":0.00382,"109":0.09156,"110":0.00382,"113":0.00382,"116":0.00382,"117":0.01145,"118":0.00382,"120":0.03434,"126":0.0496,"127":0.04578,"128":0.02289,"131":0.03434,"132":0.01526,"133":0.03434,"134":0.00382,"135":0.10682,"138":0.05723,"139":0.10301,"140":0.03434,"141":0.01145,"142":0.59896,"143":0.30902,"144":0.8393,"145":6.70677,"146":5.1617,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 78 79 84 85 86 88 89 90 91 92 93 94 95 96 99 100 101 102 111 112 114 115 119 121 122 123 124 125 129 130 136 137 147 148 149 150"},F:{"93":0.00382,"125":0.01526,"126":0.03815,"127":0.26324,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.01145,"18":0.01145,"92":0.03815,"109":0.03815,"119":0.01145,"134":0.01145,"135":0.00382,"136":0.00382,"138":0.01145,"142":0.04578,"143":0.02289,"144":0.4578,"145":2.93374,"146":1.95328,_:"12 13 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 120 121 122 123 124 125 126 127 128 129 130 131 132 133 137 139 140 141"},E:{"13":0.00382,_:"4 5 6 7 8 9 10 11 12 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 15.2-15.3 15.4 15.5 16.0 16.2 16.4 16.5 17.0 17.2 18.0 18.2 18.3 18.4 26.0 26.1 26.5 TP","15.6":0.01526,"16.1":0.01526,"16.3":0.00382,"16.6":0.86219,"17.1":0.01526,"17.3":0.00382,"17.4":0.0496,"17.5":0.01526,"17.6":0.04578,"18.1":0.00382,"18.5-18.7":0.0496,"26.2":0.06104,"26.3":0.24416,"26.4":0.00382},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00104,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00207,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00519,"11.0-11.2":0.13069,"11.3-11.4":0.00311,"12.0-12.1":0,"12.2-12.5":0.04045,"13.0-13.1":0,"13.2":0.01556,"13.3":0.00207,"13.4-13.7":0.00519,"14.0-14.4":0.00934,"14.5-14.8":0.00934,"15.0-15.1":0.01348,"15.2-15.3":0.0083,"15.4":0.01037,"15.5":0.01141,"15.6-15.8":0.18359,"16.0":0.01867,"16.1":0.0363,"16.2":0.02074,"16.3":0.03734,"16.4":0.0083,"16.5":0.01556,"16.6-16.7":0.25516,"17.0":0.01141,"17.1":0.01867,"17.2":0.0166,"17.3":0.02282,"17.4":0.03734,"17.5":0.07053,"17.6-17.7":0.18151,"18.0":0.03941,"18.1":0.0809,"18.2":0.04253,"18.3":0.13588,"18.4":0.06535,"18.5-18.7":2.0786,"26.0":0.12965,"26.1":0.19707,"26.2":1.15962,"26.3":5.0378,"26.4":0.18877,"26.5":0},P:{"22":0.12277,"25":0.63431,"27":0.23531,"28":0.36831,"29":4.33784,_:"4 20 21 23 24 26 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0","19.0":0.01023},I:{"0":0.03708,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.47006,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.03434,_:"6 7 8 9 10 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.21648},Q:{_:"14.9"},O:{"0":0.12989},H:{all:0},L:{"0":57.56144}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/ZA.js b/server/api/node_modules/caniuse-lite/data/regions/ZA.js new file mode 100644 index 0000000..d670a5c --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/ZA.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.00318,"52":0.0127,"59":0.00318,"78":0.00635,"115":0.03493,"127":0.00318,"133":0.00318,"136":0.00318,"140":0.01588,"143":0.00318,"146":0.00953,"147":0.02223,"148":0.34608,"149":0.06033,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 128 129 130 131 132 134 135 137 138 139 141 142 144 145 150 151 152 3.5 3.6"},D:{"41":0.00318,"44":0.00318,"45":0.00318,"46":0.00318,"47":0.00318,"49":0.00318,"50":0.00318,"51":0.00318,"52":0.00318,"53":0.00318,"54":0.00318,"55":0.00318,"56":0.00318,"57":0.00318,"58":0.00318,"59":0.00318,"60":0.00318,"65":0.00318,"69":0.00318,"70":0.00318,"75":0.00318,"81":0.00318,"86":0.00318,"87":0.00318,"88":0.00635,"98":0.00318,"103":0.05398,"104":0.04445,"105":0.04445,"106":0.04763,"107":0.04445,"108":0.04445,"109":0.30163,"110":0.04445,"111":0.04445,"112":0.12065,"114":0.04445,"115":0.00318,"116":0.12065,"117":0.04445,"119":0.00953,"120":0.04763,"121":0.00635,"122":0.00953,"123":0.00318,"124":0.04763,"125":0.00318,"126":0.00635,"127":0.00318,"128":0.02223,"129":0.00318,"130":0.00635,"131":0.12065,"132":0.01588,"133":0.11113,"134":0.01588,"135":0.0127,"136":0.01588,"137":0.0127,"138":0.08255,"139":0.0635,"140":0.02223,"141":0.01905,"142":0.04128,"143":0.09525,"144":0.23495,"145":4.37833,"146":3.41948,"147":0.00953,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 42 43 48 61 62 63 64 66 67 68 71 72 73 74 76 77 78 79 80 83 84 85 89 90 91 92 93 94 95 96 97 99 100 101 102 113 118 148 149 150"},F:{"84":0.00318,"90":0.00635,"92":0.00318,"93":0.00953,"94":0.0254,"95":0.10795,"96":0.1016,"109":0.00318,"125":0.00318,"126":0.00635,"127":0.18733,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 85 86 87 88 89 91 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00318,"92":0.00318,"109":0.0127,"114":0.00318,"118":0.0254,"122":0.00318,"127":0.00318,"133":0.00318,"134":0.00318,"135":0.00318,"136":0.00318,"137":0.00318,"138":0.00318,"139":0.00318,"140":0.00318,"141":0.00635,"142":0.00953,"143":0.04763,"144":0.0635,"145":1.37478,"146":1.31445,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 119 120 121 123 124 125 126 128 129 130 131 132"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 12.1 15.1 15.2-15.3 15.4 15.5 16.0 17.0 26.5 TP","11.1":0.00318,"13.1":0.00318,"14.1":0.00953,"15.6":0.03175,"16.1":0.00318,"16.2":0.00318,"16.3":0.00953,"16.4":0.00318,"16.5":0.00318,"16.6":0.04128,"17.1":0.0381,"17.2":0.00318,"17.3":0.00635,"17.4":0.04128,"17.5":0.00635,"17.6":0.03493,"18.0":0.00318,"18.1":0.00953,"18.2":0.00318,"18.3":0.0127,"18.4":0.00635,"18.5-18.7":0.02858,"26.0":0.00953,"26.1":0.0127,"26.2":0.06668,"26.3":0.32703,"26.4":0.02223},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00104,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00207,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00518,"11.0-11.2":0.13052,"11.3-11.4":0.00311,"12.0-12.1":0,"12.2-12.5":0.0404,"13.0-13.1":0,"13.2":0.01554,"13.3":0.00207,"13.4-13.7":0.00518,"14.0-14.4":0.00932,"14.5-14.8":0.00932,"15.0-15.1":0.01347,"15.2-15.3":0.00829,"15.4":0.01036,"15.5":0.01139,"15.6-15.8":0.18335,"16.0":0.01865,"16.1":0.03626,"16.2":0.02072,"16.3":0.03729,"16.4":0.00829,"16.5":0.01554,"16.6-16.7":0.25483,"17.0":0.01139,"17.1":0.01865,"17.2":0.01657,"17.3":0.02279,"17.4":0.03729,"17.5":0.07044,"17.6-17.7":0.18128,"18.0":0.03936,"18.1":0.0808,"18.2":0.04247,"18.3":0.1357,"18.4":0.06526,"18.5-18.7":2.07591,"26.0":0.12949,"26.1":0.19682,"26.2":1.15812,"26.3":5.03128,"26.4":0.18853,"26.5":0},P:{"20":0.01013,"21":0.01013,"22":0.02025,"23":0.03038,"24":0.07088,"25":0.0405,"26":0.05063,"27":0.081,"28":0.25313,"29":6.4397,_:"4 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 15.0 16.0 18.0","7.2-7.4":0.11138,"14.0":0.02025,"17.0":0.01013,"19.0":0.02025},I:{"0":0.02045,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":2.78419,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.5118},Q:{_:"14.9"},O:{"0":0.28661},H:{all:0},L:{"0":63.25426}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/ZM.js b/server/api/node_modules/caniuse-lite/data/regions/ZM.js new file mode 100644 index 0000000..202e9bd --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/ZM.js @@ -0,0 +1 @@ +module.exports={C:{"112":0.00342,"115":0.0444,"127":0.00342,"140":0.01366,"145":0.00342,"146":0.00342,"147":0.02732,"148":0.33126,"149":0.07172,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 113 114 116 117 118 119 120 121 122 123 124 125 126 128 129 130 131 132 133 134 135 136 137 138 139 141 142 143 144 150 151 152 3.5 3.6"},D:{"55":0.00342,"61":0.00342,"63":0.00342,"65":0.00342,"66":0.00342,"68":0.00683,"69":0.00683,"70":0.03074,"71":0.01366,"73":0.00683,"74":0.00683,"75":0.00342,"76":0.00342,"77":0.01025,"78":0.00683,"79":0.01025,"80":0.00342,"81":0.01366,"83":0.01366,"86":0.01025,"87":0.01366,"88":0.00342,"89":0.00342,"90":0.00342,"91":0.01025,"92":0.00342,"93":0.00342,"95":0.00342,"98":0.02049,"99":0.00342,"101":0.00342,"103":0.01366,"105":0.00342,"106":0.01025,"108":0.01025,"109":0.27662,"110":0.00342,"111":0.00683,"112":0.00342,"113":0.00342,"114":0.01366,"116":0.01025,"119":0.01708,"120":0.02391,"121":0.00683,"122":0.01366,"123":0.01366,"124":0.00342,"125":0.00683,"126":0.01708,"127":0.00683,"128":0.01366,"129":0.00683,"130":0.01366,"131":0.04098,"132":0.00342,"133":0.01025,"134":0.01366,"135":0.01025,"136":0.02049,"137":0.02732,"138":0.12294,"139":0.07172,"140":0.01366,"141":0.02732,"142":0.03415,"143":0.1366,"144":0.21173,"145":3.43549,"146":2.8447,"147":0.01025,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 56 57 58 59 60 62 64 67 72 84 85 94 96 97 100 102 104 107 115 117 118 148 149 150"},F:{"36":0.00342,"37":0.00342,"46":0.00342,"57":0.00342,"79":0.00683,"81":0.00342,"90":0.00342,"93":0.01025,"94":0.03074,"95":0.21856,"96":0.11611,"97":0.03074,"113":0.00342,"120":0.00342,"124":0.00342,"125":0.00342,"126":0.05464,"127":0.3415,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 82 83 84 85 86 87 88 89 91 92 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 114 115 116 117 118 119 121 122 123 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.00342,"15":0.00342,"16":0.00342,"17":0.00683,"18":0.04098,"84":0.00342,"89":0.00683,"90":0.03757,"92":0.05806,"100":0.01025,"103":0.00342,"109":0.00683,"111":0.00342,"112":0.00342,"114":0.00342,"122":0.01025,"134":0.00342,"136":0.00342,"138":0.00683,"139":0.00683,"140":0.01708,"141":0.01025,"142":0.01366,"143":0.04781,"144":0.1366,"145":1.15427,"146":1.03475,_:"12 13 79 80 81 83 85 86 87 88 91 93 94 95 96 97 98 99 101 102 104 105 106 107 108 110 113 115 116 117 118 119 120 121 123 124 125 126 127 128 129 130 131 132 133 135 137"},E:{"11":0.00342,_:"4 5 6 7 8 9 10 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.5 16.0 16.1 16.2 16.3 16.4 16.5 17.0 17.3 17.4 17.5 18.0 18.2 18.4 26.5 TP","5.1":0.00342,"13.1":0.00342,"14.1":0.01708,"15.4":0.00342,"15.6":0.02732,"16.6":0.02049,"17.1":0.04098,"17.2":0.00342,"17.6":0.02049,"18.1":0.00342,"18.3":0.00683,"18.5-18.7":0.00342,"26.0":0.00342,"26.1":0.00683,"26.2":0.04098,"26.3":0.05806,"26.4":0.02049},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00054,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00108,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00271,"11.0-11.2":0.0682,"11.3-11.4":0.00162,"12.0-12.1":0,"12.2-12.5":0.02111,"13.0-13.1":0,"13.2":0.00812,"13.3":0.00108,"13.4-13.7":0.00271,"14.0-14.4":0.00487,"14.5-14.8":0.00487,"15.0-15.1":0.00704,"15.2-15.3":0.00433,"15.4":0.00541,"15.5":0.00595,"15.6-15.8":0.09581,"16.0":0.00974,"16.1":0.01895,"16.2":0.01083,"16.3":0.01949,"16.4":0.00433,"16.5":0.00812,"16.6-16.7":0.13316,"17.0":0.00595,"17.1":0.00974,"17.2":0.00866,"17.3":0.01191,"17.4":0.01949,"17.5":0.03681,"17.6-17.7":0.09473,"18.0":0.02057,"18.1":0.04222,"18.2":0.02219,"18.3":0.07091,"18.4":0.0341,"18.5-18.7":1.08474,"26.0":0.06766,"26.1":0.10284,"26.2":0.60516,"26.3":2.62903,"26.4":0.09851,"26.5":0},P:{"21":0.01028,"22":0.01028,"23":0.01028,"24":0.01028,"25":0.02057,"26":0.04113,"27":0.05141,"28":0.13368,"29":0.94601,_:"4 20 5.0-5.4 6.2-6.4 8.2 10.1 12.0 13.0 14.0 15.0 17.0 18.0 19.0","7.2-7.4":0.05141,"9.2":0.03085,"11.1-11.2":0.01028,"16.0":0.01028},I:{"0":0.01316,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":9.55484,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.06585},Q:{"14.9":0.00659},O:{"0":0.82971},H:{all:0},L:{"0":69.41205}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/ZW.js b/server/api/node_modules/caniuse-lite/data/regions/ZW.js new file mode 100644 index 0000000..f868de6 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/ZW.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.00416,"62":0.00416,"78":0.00416,"112":0.00416,"115":0.04578,"122":0.00416,"127":0.01249,"128":0.00416,"140":0.04162,"142":0.00416,"143":0.04162,"144":0.00832,"145":0.00832,"146":0.00832,"147":0.05827,"148":0.95726,"149":0.13318,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 113 114 116 117 118 119 120 121 123 124 125 126 129 130 131 132 133 134 135 136 137 138 139 141 150 151 152 3.5 3.6"},D:{"49":0.00832,"58":0.00416,"63":0.00416,"64":0.00416,"65":0.00416,"67":0.00416,"68":0.01249,"69":0.01665,"70":0.02913,"71":0.01665,"72":0.00416,"73":0.00416,"74":0.00832,"75":0.00832,"76":0.00416,"77":0.00416,"78":0.00416,"79":0.02913,"80":0.00832,"81":0.00832,"83":0.00416,"84":0.00416,"85":0.00416,"86":0.01249,"87":0.00832,"88":0.00416,"89":0.00416,"90":0.03746,"91":0.01665,"93":0.00416,"95":0.00416,"96":0.00416,"98":0.00832,"99":0.00416,"100":0.00416,"101":0.00416,"102":0.00416,"103":0.02081,"104":0.00416,"106":0.00832,"107":0.00416,"108":0.00416,"109":0.33296,"110":0.00416,"111":0.01665,"112":0.02913,"113":0.00416,"114":0.02081,"116":0.02497,"117":0.00416,"118":0.00416,"119":0.02913,"120":0.02081,"121":0.00416,"122":0.02081,"123":0.01249,"124":0.01665,"125":0.01249,"126":0.02497,"127":0.01665,"128":0.03746,"129":0.00832,"130":0.09156,"131":0.04994,"132":0.01665,"133":0.02081,"134":0.0333,"135":0.03746,"136":0.02913,"137":0.04578,"138":0.1748,"139":0.15399,"140":0.02497,"141":0.05827,"142":0.06243,"143":0.18313,"144":0.39123,"145":6.70082,"146":5.24828,"147":0.02081,"148":0.00416,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 59 60 61 62 66 92 94 97 105 115 149 150"},F:{"36":0.00416,"57":0.00416,"64":0.00416,"77":0.00416,"79":0.00832,"83":0.00832,"90":0.00416,"93":0.00416,"94":0.01249,"95":0.09573,"96":0.09989,"97":0.00416,"113":0.00416,"114":0.00416,"120":0.00416,"122":0.02081,"124":0.00416,"125":0.00832,"126":0.05827,"127":0.55355,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 58 60 62 63 65 66 67 68 69 70 71 72 73 74 75 76 78 80 81 82 84 85 86 87 88 89 91 92 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 115 116 117 118 119 121 123 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.00416,"15":0.00416,"16":0.00832,"17":0.00832,"18":0.06659,"84":0.00832,"89":0.00832,"90":0.04994,"91":0.00416,"92":0.07075,"100":0.03746,"108":0.00416,"109":0.02081,"111":0.00832,"112":0.00416,"114":0.00416,"120":0.02497,"122":0.02081,"126":0.00416,"128":0.00416,"130":0.01249,"131":0.00832,"133":0.02497,"134":0.00416,"135":0.00832,"136":0.00416,"137":0.00832,"138":0.01665,"139":0.00832,"140":0.04578,"141":0.02081,"142":0.04162,"143":0.08324,"144":0.14151,"145":2.65952,"146":1.93533,_:"12 13 79 80 81 83 85 86 87 88 93 94 95 96 97 98 99 101 102 103 104 105 106 107 110 113 115 116 117 118 119 121 123 124 125 127 129 132"},E:{"14":0.00416,_:"4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 6.1 7.1 10.1 11.1 12.1 14.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.3 16.5 17.0 17.2 18.2 26.5 TP","5.1":0.00416,"9.1":0.01249,"13.1":0.01665,"15.6":0.05411,"16.4":0.00416,"16.6":0.0333,"17.1":0.01249,"17.3":0.00416,"17.4":0.01249,"17.5":0.00416,"17.6":0.02497,"18.0":0.01665,"18.1":0.02497,"18.3":0.01249,"18.4":0.00416,"18.5-18.7":0.00832,"26.0":0.02497,"26.1":0.0333,"26.2":0.09156,"26.3":0.2955,"26.4":0.02497},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0004,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00079,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00198,"11.0-11.2":0.05001,"11.3-11.4":0.00119,"12.0-12.1":0,"12.2-12.5":0.01548,"13.0-13.1":0,"13.2":0.00595,"13.3":0.00079,"13.4-13.7":0.00198,"14.0-14.4":0.00357,"14.5-14.8":0.00357,"15.0-15.1":0.00516,"15.2-15.3":0.00318,"15.4":0.00397,"15.5":0.00437,"15.6-15.8":0.07025,"16.0":0.00714,"16.1":0.01389,"16.2":0.00794,"16.3":0.01429,"16.4":0.00318,"16.5":0.00595,"16.6-16.7":0.09764,"17.0":0.00437,"17.1":0.00714,"17.2":0.00635,"17.3":0.00873,"17.4":0.01429,"17.5":0.02699,"17.6-17.7":0.06946,"18.0":0.01508,"18.1":0.03096,"18.2":0.01627,"18.3":0.052,"18.4":0.02501,"18.5-18.7":0.79542,"26.0":0.04961,"26.1":0.07541,"26.2":0.44375,"26.3":1.92782,"26.4":0.07224,"26.5":0},P:{"21":0.01022,"22":0.01022,"23":0.01022,"24":0.06135,"25":0.0818,"26":0.05112,"27":0.14314,"28":0.25561,"29":2.35165,_:"4 20 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 17.0 18.0","7.2-7.4":0.0409,"16.0":0.01022,"19.0":0.01022},I:{"0":0.03499,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":4.99064,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.1576},Q:{"14.9":0.01167},O:{"0":1.04482},H:{all:0},L:{"0":61.83683}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/alt-af.js b/server/api/node_modules/caniuse-lite/data/regions/alt-af.js new file mode 100644 index 0000000..7fd2733 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/alt-af.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.00699,"52":0.01048,"89":0.00349,"115":0.19217,"127":0.00699,"136":0.00349,"138":0.00699,"140":0.02795,"143":0.00349,"145":0.00349,"146":0.01048,"147":0.0559,"148":0.64639,"149":0.12229,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 128 129 130 131 132 133 134 135 137 139 141 142 144 150 151 152 3.5 3.6"},D:{"49":0.00699,"56":0.00699,"62":0.00349,"65":0.00349,"68":0.00699,"69":0.00349,"70":0.01048,"71":0.00349,"72":0.00349,"73":0.00699,"74":0.00349,"75":0.00699,"79":0.01048,"80":0.00349,"81":0.00699,"83":0.01048,"86":0.01048,"87":0.01048,"91":0.00349,"93":0.00349,"95":0.00699,"98":0.00699,"103":0.11181,"104":0.09434,"105":0.10831,"106":0.09783,"107":0.09434,"108":0.09434,"109":0.85254,"110":0.09783,"111":0.09434,"112":0.22711,"113":0.00349,"114":0.03494,"116":0.21663,"117":0.09434,"119":0.02446,"120":0.10482,"121":0.00699,"122":0.02446,"123":0.01048,"124":0.10133,"125":0.00699,"126":0.01398,"127":0.00699,"128":0.03145,"129":0.00699,"130":0.01398,"131":0.2306,"132":0.01747,"133":0.21313,"134":0.02795,"135":0.02446,"136":0.02446,"137":0.02795,"138":0.13277,"139":0.09783,"140":0.03145,"141":0.03145,"142":0.06289,"143":0.16072,"144":0.34241,"145":5.77209,"146":4.62606,"147":0.01747,"148":0.00349,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 57 58 59 60 61 63 64 66 67 76 77 78 84 85 88 89 90 92 94 96 97 99 100 101 102 115 118 149 150"},F:{"90":0.00699,"92":0.00699,"93":0.01747,"94":0.02795,"95":0.14325,"96":0.10482,"126":0.02446,"127":0.30747,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 91 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.02096,"90":0.00349,"92":0.02446,"100":0.00349,"109":0.01747,"114":0.01048,"118":0.00699,"122":0.01048,"131":0.00349,"135":0.00349,"136":0.00349,"137":0.00349,"138":0.00699,"139":0.00349,"140":0.01048,"141":0.01048,"142":0.01398,"143":0.04892,"144":0.07687,"145":1.29977,"146":1.18447,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 119 120 121 123 124 125 126 127 128 129 130 132 133 134"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.4 16.5 17.0 17.2 17.3 26.5 TP","5.1":0.02096,"13.1":0.00699,"14.1":0.00699,"15.6":0.03145,"16.3":0.00349,"16.6":0.03494,"17.1":0.02096,"17.4":0.01747,"17.5":0.00699,"17.6":0.03843,"18.0":0.00349,"18.1":0.00699,"18.2":0.00699,"18.3":0.01048,"18.4":0.00699,"18.5-18.7":0.02096,"26.0":0.01398,"26.1":0.01398,"26.2":0.0594,"26.3":0.24458,"26.4":0.01747},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00902,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00164,"11.0-11.2":0.02215,"11.3-11.4":0.00082,"12.0-12.1":0,"12.2-12.5":0.04594,"13.0-13.1":0,"13.2":0.02215,"13.3":0,"13.4-13.7":0,"14.0-14.4":0.00328,"14.5-14.8":0.00492,"15.0-15.1":0.04347,"15.2-15.3":0.00984,"15.4":0.00902,"15.5":0.0123,"15.6-15.8":0.36995,"16.0":0.02625,"16.1":0.03691,"16.2":0.02133,"16.3":0.03035,"16.4":0.00984,"16.5":0.01887,"16.6-16.7":0.37897,"17.0":0.01394,"17.1":0.01723,"17.2":0.0123,"17.3":0.02051,"17.4":0.03281,"17.5":0.06726,"17.6-17.7":0.12632,"18.0":0.05824,"18.1":0.09433,"18.2":0.05742,"18.3":0.15995,"18.4":0.07793,"18.5-18.7":1.67747,"26.0":0.20179,"26.1":0.22804,"26.2":0.96547,"26.3":3.16628,"26.4":0.13617,"26.5":0},P:{"22":0.01042,"23":0.02083,"24":0.05208,"25":0.04166,"26":0.06249,"27":0.08332,"28":0.21872,"29":3.13501,_:"4 20 21 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0","7.2-7.4":0.07291,"19.0":0.01042},I:{"0":0.04548,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00004},K:{"0":5.24303,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.01398,_:"6 7 8 9 10 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{"2.5":0.00651,_:"3.0-3.1"},R:{_:"0"},M:{"0":0.31224},Q:{_:"14.9"},O:{"0":0.33826},H:{all:0},L:{"0":60.7772}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/alt-an.js b/server/api/node_modules/caniuse-lite/data/regions/alt-an.js new file mode 100644 index 0000000..da7c4f0 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/alt-an.js @@ -0,0 +1 @@ +module.exports={C:{_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 3.5 3.6"},D:{"136":0.04528,"145":0.04528,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 137 138 139 140 141 142 143 144 146 147 148 149 150"},F:{_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 15.2-15.3 15.4 16.0 16.2 17.0 18.2 18.4 26.5 TP","15.5":0.13584,"15.6":0.79993,"16.1":0.3572,"16.3":0.57857,"16.4":0.40248,"16.5":0.44273,"16.6":3.02363,"17.1":5.91646,"17.2":0.53329,"17.3":0.48801,"17.4":0.79993,"17.5":0.89049,"17.6":12.23036,"18.0":0.13584,"18.1":0.44273,"18.3":0.13584,"18.5-18.7":1.20241,"26.0":0.22136,"26.1":1.46905,"26.2":2.04762,"26.3":7.69743,"26.4":0.26664},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0,"11.0-11.2":0,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.5":0,"13.0-13.1":0,"13.2":0,"13.3":0,"13.4-13.7":0,"14.0-14.4":0,"14.5-14.8":0,"15.0-15.1":0,"15.2-15.3":0,"15.4":0,"15.5":0,"15.6-15.8":0.17663,"16.0":0,"16.1":0.8439,"16.2":0.04416,"16.3":1.29038,"16.4":0.08832,"16.5":0.75558,"16.6-16.7":3.99871,"17.0":0,"17.1":0,"17.2":0.04416,"17.3":0.22079,"17.4":0.08832,"17.5":4.40103,"17.6-17.7":1.95765,"18.0":0,"18.1":0,"18.2":0,"18.3":0.08832,"18.4":0.13247,"18.5-18.7":6.13789,"26.0":0.62311,"26.1":0.35326,"26.2":4.66598,"26.3":21.91194,"26.4":1.24622,"26.5":0},P:{_:"4 20 21 22 23 24 25 26 27 28 29 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.04472},Q:{_:"14.9"},O:{_:"0"},H:{all:0},L:{"0":0.62665}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/alt-as.js b/server/api/node_modules/caniuse-lite/data/regions/alt-as.js new file mode 100644 index 0000000..92658b9 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/alt-as.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.01064,"115":0.07094,"136":0.00355,"140":0.01419,"145":0.00355,"146":0.00709,"147":0.03192,"148":0.52496,"149":0.10286,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 137 138 139 141 142 143 144 150 151 152 3.5 3.6"},D:{"39":0.01064,"40":0.01064,"41":0.01064,"42":0.01064,"43":0.01064,"44":0.01064,"45":0.01419,"46":0.01064,"47":0.01064,"48":0.01064,"49":0.01419,"50":0.01064,"51":0.01064,"52":0.01064,"53":0.01419,"54":0.01064,"55":0.01419,"56":0.01419,"57":0.01419,"58":0.01419,"59":0.01419,"60":0.01419,"69":0.01064,"73":0.00355,"77":0.07094,"78":0.00355,"79":0.01419,"80":0.00355,"83":0.00709,"86":0.01064,"87":0.00709,"91":0.00709,"92":0.00355,"93":0.01064,"97":0.01419,"98":0.00709,"99":0.00709,"101":0.01774,"102":0.00355,"103":0.14188,"104":0.08513,"105":0.08513,"106":0.08513,"107":0.08868,"108":0.09222,"109":0.67748,"110":0.08513,"111":0.08868,"112":0.18799,"113":0.00355,"114":0.03902,"115":0.01774,"116":0.18444,"117":0.08513,"118":0.00709,"119":0.02128,"120":0.10641,"121":0.02483,"122":0.02483,"123":0.01774,"124":0.10641,"125":0.02838,"126":0.02838,"127":0.01774,"128":0.03902,"129":0.01064,"130":0.08513,"131":0.32987,"132":0.03547,"133":0.18444,"134":0.04256,"135":0.06385,"136":0.03902,"137":0.04611,"138":0.10996,"139":0.13124,"140":0.05321,"141":0.05675,"142":0.19154,"143":0.14897,"144":0.5888,"145":6.75704,"146":5.47657,"147":0.02483,"148":0.01064,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 61 62 63 64 65 66 67 68 70 71 72 74 75 76 81 84 85 88 89 90 94 95 96 100 149 150"},F:{"94":0.00355,"95":0.06739,"96":0.07803,"126":0.00709,"127":0.15962,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00355,"92":0.01419,"106":0.00355,"109":0.02483,"113":0.00709,"114":0.00709,"120":0.02838,"122":0.01064,"123":0.00355,"124":0.00355,"125":0.00355,"126":0.00709,"127":0.01064,"128":0.00709,"129":0.00709,"130":0.00709,"131":0.01774,"132":0.00709,"133":0.01064,"134":0.01064,"135":0.01419,"136":0.01064,"137":0.01064,"138":0.02128,"139":0.01419,"140":0.02128,"141":0.02128,"142":0.02838,"143":0.04611,"144":0.12769,"145":1.63162,"146":1.58196,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 107 108 110 111 112 115 116 117 118 119 121"},E:{"14":0.00355,_:"4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 16.0 17.0 26.5 TP","13.1":0.00709,"14.1":0.01064,"15.4":0.00355,"15.5":0.00355,"15.6":0.03902,"16.1":0.00709,"16.2":0.00355,"16.3":0.01064,"16.4":0.00355,"16.5":0.00709,"16.6":0.04966,"17.1":0.03192,"17.2":0.00355,"17.3":0.00355,"17.4":0.00709,"17.5":0.01419,"17.6":0.04256,"18.0":0.00709,"18.1":0.01064,"18.2":0.00355,"18.3":0.01774,"18.4":0.00709,"18.5-18.7":0.03547,"26.0":0.01774,"26.1":0.02128,"26.2":0.10996,"26.3":0.39726,"26.4":0.01774},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00307,"5.0-5.1":0.00102,"6.0-6.1":0,"7.0-7.1":0.0041,"8.1-8.4":0,"9.0-9.2":0.00205,"9.3":0,"10.0-10.2":0,"10.3":0.0123,"11.0-11.2":0.07173,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.5":0.05226,"13.0-13.1":0,"13.2":0.02152,"13.3":0.00307,"13.4-13.7":0.01127,"14.0-14.4":0.01845,"14.5-14.8":0.01742,"15.0-15.1":0.01845,"15.2-15.3":0.01537,"15.4":0.02049,"15.5":0.02049,"15.6-15.8":0.2818,"16.0":0.03587,"16.1":0.05739,"16.2":0.03484,"16.3":0.06148,"16.4":0.01537,"16.5":0.02767,"16.6-16.7":0.34329,"17.0":0.02049,"17.1":0.03074,"17.2":0.02562,"17.3":0.03587,"17.4":0.06763,"17.5":0.10862,"17.6-17.7":0.23159,"18.0":0.06763,"18.1":0.1158,"18.2":0.07173,"18.3":0.1824,"18.4":0.10145,"18.5-18.7":2.27389,"26.0":0.207,"26.1":0.26746,"26.2":1.2512,"26.3":3.85608,"26.4":0.17728,"26.5":0},P:{"23":0.01074,"24":0.01074,"25":0.02148,"26":0.03223,"27":0.03223,"28":0.09668,"29":1.54683,_:"4 20 21 22 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.01074},I:{"0":0.06447,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00003},K:{"0":1.11637,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.59944,_:"6 7 8 9 10 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{"2.5":0.01291,_:"3.0-3.1"},R:{_:"0"},M:{"0":0.18714},Q:{"14.9":0.23876},O:{"0":1.27124},H:{all:0},L:{"0":59.47987}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/alt-eu.js b/server/api/node_modules/caniuse-lite/data/regions/alt-eu.js new file mode 100644 index 0000000..84a2e25 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/alt-eu.js @@ -0,0 +1 @@ +module.exports={C:{"52":0.03049,"68":0.00508,"78":0.01524,"105":0.01016,"115":0.2947,"128":0.01524,"133":0.00508,"134":0.00508,"135":0.01016,"136":0.01524,"137":0.00508,"138":0.01016,"139":0.01016,"140":0.25405,"142":0.01016,"143":0.01016,"144":0.01016,"145":0.01016,"146":0.02541,"147":0.16259,"148":2.44904,"149":0.49286,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 129 130 131 132 141 150 151 152 3.5 3.6"},D:{"39":0.11178,"40":0.11178,"41":0.11686,"42":0.11178,"43":0.11686,"44":0.11178,"45":0.11178,"46":0.11686,"47":0.11686,"48":0.12194,"49":0.12703,"50":0.11686,"51":0.11686,"52":0.11686,"53":0.11686,"54":0.11686,"55":0.11686,"56":0.11686,"57":0.11686,"58":0.11686,"59":0.11686,"60":0.11686,"68":0.01016,"78":0.00508,"87":0.01016,"92":0.01016,"93":0.00508,"102":0.01016,"103":0.05589,"104":0.02032,"105":0.01524,"106":0.02032,"107":0.02032,"108":0.03557,"109":0.75707,"110":0.02032,"111":0.02032,"112":0.03049,"114":0.01524,"116":0.10162,"117":0.03557,"118":0.01524,"119":0.01016,"120":0.05081,"121":0.01524,"122":0.04573,"123":0.01016,"124":0.03049,"125":0.01524,"126":0.05081,"127":0.01016,"128":0.06097,"129":0.01016,"130":0.03049,"131":0.09146,"132":0.03049,"133":0.06097,"134":0.07113,"135":0.04065,"136":0.03557,"137":0.04065,"138":0.16767,"139":0.13211,"140":0.06605,"141":0.1067,"142":0.17784,"143":0.30486,"144":0.83837,"145":11.06134,"146":8.60721,"147":0.02032,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 79 80 81 83 84 85 86 88 89 90 91 94 95 96 97 98 99 100 101 113 115 148 149 150"},F:{"40":0.01016,"46":0.01016,"95":0.11686,"96":0.06605,"125":0.01016,"126":0.02541,"127":0.97047,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"109":0.05589,"131":0.01016,"133":0.00508,"134":0.00508,"135":0.00508,"136":0.00508,"137":0.00508,"138":0.01016,"139":0.00508,"140":0.01524,"141":0.01016,"142":0.02032,"143":0.08638,"144":0.14735,"145":3.47032,"146":3.40935,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 132"},E:{"14":0.00508,_:"4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 12.1 15.1 15.2-15.3 26.5 TP","11.1":0.00508,"13.1":0.02541,"14.1":0.03557,"15.4":0.01016,"15.5":0.00508,"15.6":0.15243,"16.0":0.01016,"16.1":0.01524,"16.2":0.01016,"16.3":0.02032,"16.4":0.01016,"16.5":0.01016,"16.6":0.2134,"17.0":0.01016,"17.1":0.17784,"17.2":0.01016,"17.3":0.01524,"17.4":0.02541,"17.5":0.04065,"17.6":0.19816,"18.0":0.01524,"18.1":0.03049,"18.2":0.01524,"18.3":0.05589,"18.4":0.02541,"18.5-18.7":0.0813,"26.0":0.03557,"26.1":0.05081,"26.2":0.34551,"26.3":1.72754,"26.4":0.07113},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00158,"11.0-11.2":0.53695,"11.3-11.4":0.00792,"12.0-12.1":0,"12.2-12.5":0.07444,"13.0-13.1":0,"13.2":0.01742,"13.3":0,"13.4-13.7":0.00158,"14.0-14.4":0.00317,"14.5-14.8":0.00475,"15.0-15.1":0.0095,"15.2-15.3":0.00475,"15.4":0.00475,"15.5":0.0095,"15.6-15.8":0.23442,"16.0":0.01742,"16.1":0.04118,"16.2":0.01901,"16.3":0.04118,"16.4":0.00634,"16.5":0.01426,"16.6-16.7":0.34371,"17.0":0.0095,"17.1":0.01901,"17.2":0.01267,"17.3":0.02376,"17.4":0.03009,"17.5":0.07761,"17.6-17.7":0.24076,"18.0":0.04118,"18.1":0.09979,"18.2":0.0396,"18.3":0.18057,"18.4":0.07286,"18.5-18.7":2.70375,"26.0":0.15206,"26.1":0.27085,"26.2":1.73914,"26.3":8.41694,"26.4":0.29778,"26.5":0},P:{"21":0.01071,"22":0.01071,"23":0.01071,"24":0.02142,"25":0.01071,"26":0.05356,"27":0.03214,"28":0.08569,"29":3.02072,_:"4 20 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.04909,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00006},K:{"0":0.45747,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.01524,_:"6 7 8 9 10 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.54109},Q:{_:"14.9"},O:{"0":0.08362},H:{all:0},L:{"0":33.15351}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/alt-na.js b/server/api/node_modules/caniuse-lite/data/regions/alt-na.js new file mode 100644 index 0000000..e275e28 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/alt-na.js @@ -0,0 +1 @@ +module.exports={C:{"11":0.01039,"52":0.01039,"78":0.01559,"115":0.16108,"128":0.01039,"133":0.0052,"135":0.01039,"136":0.01039,"137":0.01039,"138":0.01039,"139":0.01039,"140":0.11951,"142":0.01039,"143":0.01039,"144":0.01039,"145":0.01559,"146":0.02598,"147":0.18186,"148":1.71988,"149":0.31696,_:"2 3 4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 129 130 131 132 134 141 150 151 152 3.5 3.6"},D:{"39":0.02598,"40":0.02598,"41":0.02598,"42":0.02598,"43":0.02598,"44":0.02598,"45":0.02598,"46":0.02598,"47":0.02598,"48":0.03637,"49":0.03637,"50":0.02598,"51":0.02598,"52":0.02598,"53":0.02598,"54":0.02598,"55":0.02598,"56":0.02598,"57":0.02598,"58":0.02598,"59":0.02598,"60":0.02598,"76":0.0052,"80":0.01039,"87":0.01039,"91":0.0052,"93":0.01559,"103":0.11431,"104":0.02078,"105":0.02078,"106":0.02078,"107":0.02078,"108":0.02078,"109":0.33774,"110":0.02078,"111":0.02598,"112":0.05196,"114":0.01039,"116":0.1299,"117":0.02598,"119":0.01039,"120":0.03637,"121":0.01039,"122":0.06755,"123":0.01039,"124":0.03637,"125":0.01559,"126":0.06235,"127":0.01039,"128":0.08314,"129":0.01559,"130":0.04676,"131":0.08833,"132":0.04676,"133":0.05716,"134":0.03637,"135":0.04676,"136":0.07274,"137":0.06235,"138":0.49362,"139":1.11714,"140":0.1299,"141":0.1299,"142":0.31696,"143":0.73264,"144":1.89654,"145":12.32491,"146":7.64851,"147":0.03118,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 77 78 79 81 83 84 85 86 88 89 90 92 94 95 96 97 98 99 100 101 102 113 115 118 148 149 150"},F:{"95":0.04676,"96":0.03637,"126":0.01559,"127":0.3897,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"109":0.04676,"131":0.01039,"132":0.0052,"133":0.0052,"134":0.01039,"135":0.01039,"136":0.01039,"137":0.0052,"138":0.01559,"139":0.01039,"140":0.01039,"141":0.01559,"142":0.03118,"143":0.1299,"144":0.18706,"145":3.85024,"146":3.49171,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130"},E:{"14":0.02078,_:"4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 15.2-15.3 26.5 TP","11.1":0.0052,"12.1":0.0052,"13.1":0.04157,"14.1":0.04157,"15.1":0.0052,"15.4":0.0052,"15.5":0.01039,"15.6":0.16627,"16.0":0.01039,"16.1":0.02078,"16.2":0.01559,"16.3":0.03637,"16.4":0.03118,"16.5":0.03637,"16.6":0.36372,"17.0":0.01559,"17.1":0.2546,"17.2":0.02078,"17.3":0.03637,"17.4":0.07794,"17.5":0.11951,"17.6":0.48842,"18.0":0.02078,"18.1":0.04676,"18.2":0.02078,"18.3":0.09353,"18.4":0.04157,"18.5-18.7":0.1351,"26.0":0.04676,"26.1":0.08833,"26.2":0.52999,"26.3":3.09162,"26.4":0.09872},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00259,"11.0-11.2":0.16337,"11.3-11.4":0.00519,"12.0-12.1":0,"12.2-12.5":0.05964,"13.0-13.1":0,"13.2":0.01037,"13.3":0.00259,"13.4-13.7":0.00259,"14.0-14.4":0.01556,"14.5-14.8":0.02334,"15.0-15.1":0.02334,"15.2-15.3":0.01037,"15.4":0.01297,"15.5":0.01815,"15.6-15.8":0.22042,"16.0":0.01815,"16.1":0.05446,"16.2":0.02853,"16.3":0.04927,"16.4":0.01297,"16.5":0.02075,"16.6-16.7":0.41751,"17.0":0.01297,"17.1":0.02853,"17.2":0.0389,"17.3":0.0389,"17.4":0.05186,"17.5":0.11151,"17.6-17.7":0.37083,"18.0":0.04668,"18.1":0.13485,"18.2":0.05705,"18.3":0.23857,"18.4":0.10113,"18.5-18.7":5.13453,"26.0":0.16337,"26.1":0.33712,"26.2":2.66322,"26.3":14.71122,"26.4":0.49011,"26.5":0.00259},P:{"21":0.01093,"26":0.02186,"27":0.01093,"28":0.06558,"29":1.51926,_:"4 20 22 23 24 25 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.02399,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.23059,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.02078,_:"6 7 8 9 10 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{"2.5":0.0048,_:"3.0-3.1"},R:{_:"0"},M:{"0":0.58128},Q:{"14.9":0.00961},O:{"0":0.03843},H:{all:0},L:{"0":22.6875}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/alt-oc.js b/server/api/node_modules/caniuse-lite/data/regions/alt-oc.js new file mode 100644 index 0000000..eabc376 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/alt-oc.js @@ -0,0 +1 @@ +module.exports={C:{"52":0.01041,"78":0.01041,"115":0.10928,"125":0.0052,"133":0.0052,"136":0.01041,"140":0.06765,"141":0.0052,"143":0.01041,"144":0.0052,"145":0.01561,"146":0.02602,"147":0.1249,"148":1.6861,"149":0.34867,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 126 127 128 129 130 131 132 134 135 137 138 139 142 150 151 152 3.5 3.6"},D:{"39":0.0052,"40":0.0052,"41":0.0052,"42":0.0052,"43":0.0052,"44":0.0052,"45":0.0052,"46":0.0052,"47":0.0052,"48":0.0052,"49":0.01561,"50":0.0052,"51":0.0052,"52":0.0052,"53":0.01041,"54":0.0052,"55":0.0052,"56":0.0052,"57":0.0052,"58":0.0052,"59":0.01041,"60":0.0052,"85":0.02602,"87":0.01561,"99":0.0052,"103":0.04163,"109":0.29663,"113":0.0052,"114":0.01561,"116":0.11969,"119":0.01041,"120":0.01561,"121":0.01561,"122":0.04163,"123":0.02082,"124":0.02082,"125":0.01041,"126":0.04163,"127":0.02602,"128":0.09888,"129":0.01041,"130":0.01041,"131":0.04163,"132":0.03122,"133":0.02602,"134":0.05204,"135":0.04163,"136":0.04163,"137":0.03643,"138":0.23418,"139":0.08847,"140":0.06765,"141":0.07806,"142":0.22377,"143":0.42152,"144":1.1709,"145":13.69693,"146":9.92403,"147":0.02602,"148":0.0052,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 86 88 89 90 91 92 93 94 95 96 97 98 100 101 102 104 105 106 107 108 110 111 112 115 117 118 149 150"},F:{"46":0.0052,"95":0.02082,"96":0.02082,"126":0.01561,"127":0.62968,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"105":0.0052,"109":0.03122,"120":0.0052,"131":0.0052,"134":0.0052,"135":0.01561,"136":0.0052,"137":0.0052,"138":0.01561,"139":0.01041,"140":0.01041,"141":0.01561,"142":0.04684,"143":0.08847,"144":0.19775,"145":4.14759,"146":4.05392,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 106 107 108 110 111 112 113 114 115 116 117 118 119 121 122 123 124 125 126 127 128 129 130 132 133"},E:{"14":0.01561,_:"4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 15.1 26.5 TP","12.1":0.02082,"13.1":0.04163,"14.1":0.05724,"15.2-15.3":0.0052,"15.4":0.01041,"15.5":0.02082,"15.6":0.2602,"16.0":0.01041,"16.1":0.04684,"16.2":0.01561,"16.3":0.04163,"16.4":0.02082,"16.5":0.02082,"16.6":0.35387,"17.0":0.01041,"17.1":0.35908,"17.2":0.01561,"17.3":0.03122,"17.4":0.04684,"17.5":0.07806,"17.6":0.31224,"18.0":0.01561,"18.1":0.04684,"18.2":0.02602,"18.3":0.09888,"18.4":0.04684,"18.5-18.7":0.14051,"26.0":0.06765,"26.1":0.10928,"26.2":0.61407,"26.3":3.1224,"26.4":0.09888},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00477,"11.0-11.2":0.11221,"11.3-11.4":0.00716,"12.0-12.1":0,"12.2-12.5":0.11221,"13.0-13.1":0,"13.2":0.01432,"13.3":0.00239,"13.4-13.7":0.00955,"14.0-14.4":0.00955,"14.5-14.8":0.02149,"15.0-15.1":0.01671,"15.2-15.3":0.01194,"15.4":0.01194,"15.5":0.01671,"15.6-15.8":0.33424,"16.0":0.0191,"16.1":0.06446,"16.2":0.02626,"16.3":0.05491,"16.4":0.01194,"16.5":0.02387,"16.6-16.7":0.55627,"17.0":0.01671,"17.1":0.02865,"17.2":0.0191,"17.3":0.03581,"17.4":0.05252,"17.5":0.10743,"17.6-17.7":0.39631,"18.0":0.05252,"18.1":0.1337,"18.2":0.05969,"18.3":0.23874,"18.4":0.10027,"18.5-18.7":4.51463,"26.0":0.13608,"26.1":0.35573,"26.2":2.6214,"26.3":13.16907,"26.4":0.37721,"26.5":0},P:{"21":0.0216,"22":0.0108,"23":0.0108,"24":0.0216,"25":0.0216,"26":0.0324,"27":0.0324,"28":0.0972,"29":3.21839,_:"4 20 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.02396,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{"0":0.14865,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.56102},Q:{_:"14.9"},O:{"0":0.04795},H:{all:0},L:{"0":22.8273}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/alt-sa.js b/server/api/node_modules/caniuse-lite/data/regions/alt-sa.js new file mode 100644 index 0000000..03c2f73 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/alt-sa.js @@ -0,0 +1 @@ +module.exports={C:{"4":0.04669,"5":0.03113,"59":0.00519,"115":0.10895,"128":0.01038,"136":0.01038,"139":0.00519,"140":0.07782,"143":0.01038,"144":0.01038,"145":0.00519,"146":0.01038,"147":0.05707,"148":1.00128,"149":0.19714,_:"2 3 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 129 130 131 132 133 134 135 137 138 141 142 150 151 152 3.5 3.6"},D:{"51":0.00519,"55":0.01038,"75":0.01038,"79":0.01038,"86":0.00519,"87":0.01038,"97":0.00519,"103":0.27496,"104":0.25421,"105":0.25421,"106":0.25421,"107":0.25421,"108":0.25421,"109":1.17249,"110":0.25421,"111":0.27496,"112":0.64331,"114":0.01038,"116":0.54474,"117":0.24902,"119":0.03632,"120":0.26459,"121":0.01556,"122":0.04669,"123":0.01038,"124":0.27496,"125":0.02075,"126":0.02075,"127":0.02075,"128":0.06226,"129":0.02594,"130":0.03113,"131":0.60181,"132":0.03632,"133":0.54993,"134":0.04669,"135":0.06226,"136":0.05188,"137":0.04669,"138":0.13489,"139":0.12451,"140":0.05707,"141":0.06226,"142":0.11932,"143":0.22827,"144":0.85602,"145":14.46414,"146":12.29556,"147":0.03113,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 52 53 54 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 76 77 78 80 81 83 84 85 88 89 90 91 92 93 94 95 96 98 99 100 101 102 113 115 118 148 149 150"},F:{"95":0.03113,"96":0.02594,"126":0.03113,"127":1.14655,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.01556,"109":0.03113,"131":0.00519,"134":0.00519,"135":0.00519,"138":0.01038,"139":0.00519,"140":0.00519,"141":0.01038,"142":0.01556,"143":0.07263,"144":0.0882,"145":2.42798,"146":2.44874,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 132 133 136 137"},E:{_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 12.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.3 16.5 17.0 17.2 17.3 18.0 18.2 26.5 TP","5.1":0.01038,"11.1":0.00519,"13.1":0.00519,"14.1":0.00519,"15.6":0.02075,"16.4":0.00519,"16.6":0.03113,"17.1":0.01556,"17.4":0.00519,"17.5":0.00519,"17.6":0.04669,"18.1":0.00519,"18.3":0.01038,"18.4":0.00519,"18.5-18.7":0.02594,"26.0":0.01038,"26.1":0.01556,"26.2":0.08301,"26.3":0.36316,"26.4":0.02594},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00069,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00069,"11.0-11.2":0.04235,"11.3-11.4":0.01736,"12.0-12.1":0,"12.2-12.5":0.00972,"13.0-13.1":0,"13.2":0.10205,"13.3":0,"13.4-13.7":0,"14.0-14.4":0.00069,"14.5-14.8":0.00139,"15.0-15.1":0.00069,"15.2-15.3":0,"15.4":0.00139,"15.5":0.00278,"15.6-15.8":0.084,"16.0":0.00764,"16.1":0.01388,"16.2":0.00486,"16.3":0.01458,"16.4":0.00139,"16.5":0.00417,"16.6-16.7":0.17842,"17.0":0.00347,"17.1":0.00625,"17.2":0.00486,"17.3":0.01041,"17.4":0.01388,"17.5":0.02985,"17.6-17.7":0.07914,"18.0":0.02291,"18.1":0.04721,"18.2":0.01527,"18.3":0.08192,"18.4":0.02916,"18.5-18.7":1.4315,"26.0":0.07914,"26.1":0.11594,"26.2":0.74907,"26.3":3.57666,"26.4":0.14093,"26.5":0},P:{"25":0.01069,"26":0.03207,"27":0.02138,"28":0.04276,"29":1.30432,_:"4 20 21 22 23 24 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.03207},I:{"0":0.05288,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00003},K:{"0":0.16357,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{_:"2.5 3.0-3.1"},R:{_:"0"},M:{"0":0.1299},Q:{_:"14.9"},O:{"0":0.02406},H:{all:0},L:{"0":44.19078}}; diff --git a/server/api/node_modules/caniuse-lite/data/regions/alt-ww.js b/server/api/node_modules/caniuse-lite/data/regions/alt-ww.js new file mode 100644 index 0000000..344162a --- /dev/null +++ b/server/api/node_modules/caniuse-lite/data/regions/alt-ww.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.00866,"52":0.013,"78":0.00866,"115":0.14296,"128":0.00866,"135":0.00433,"136":0.00866,"138":0.00433,"139":0.00433,"140":0.0953,"142":0.00433,"143":0.00433,"144":0.00866,"145":0.00866,"146":0.01733,"147":0.0953,"148":1.23895,"149":0.24259,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 127 129 130 131 132 133 134 137 141 150 151 152 3.5 3.6"},D:{"39":0.03466,"40":0.03466,"41":0.03466,"42":0.03466,"43":0.03466,"44":0.03466,"45":0.03466,"46":0.03466,"47":0.03466,"48":0.03899,"49":0.04332,"50":0.03466,"51":0.03466,"52":0.03466,"53":0.03466,"54":0.03466,"55":0.03466,"56":0.03466,"57":0.03466,"58":0.03466,"59":0.03466,"60":0.03466,"69":0.00433,"77":0.03466,"79":0.00866,"80":0.00433,"86":0.00866,"87":0.00866,"91":0.00433,"92":0.00433,"93":0.00866,"97":0.00866,"98":0.00433,"99":0.00433,"101":0.00866,"102":0.00433,"103":0.1213,"104":0.06498,"105":0.06498,"106":0.06498,"107":0.06498,"108":0.06931,"109":0.64547,"110":0.06498,"111":0.06498,"112":0.14296,"114":0.02599,"115":0.00866,"116":0.17328,"117":0.06931,"118":0.00866,"119":0.01733,"120":0.08664,"121":0.01733,"122":0.03899,"123":0.013,"124":0.08231,"125":0.02166,"126":0.03899,"127":0.013,"128":0.05632,"129":0.013,"130":0.06065,"131":0.2296,"132":0.03466,"133":0.14729,"134":0.04765,"135":0.05198,"136":0.04332,"137":0.04765,"138":0.21227,"139":0.34656,"140":0.07364,"141":0.08231,"142":0.20794,"143":0.32057,"144":0.94004,"145":9.30947,"146":6.96152,"147":0.02599,"148":0.00433,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 61 62 63 64 65 66 67 68 70 71 72 73 74 75 76 78 81 83 84 85 88 89 90 94 95 96 100 113 149 150"},F:{"94":0.00433,"95":0.07364,"96":0.06498,"126":0.013,"127":0.44186,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.00866,"109":0.03466,"114":0.00433,"120":0.013,"122":0.00866,"126":0.00433,"127":0.00433,"130":0.00433,"131":0.013,"132":0.00433,"133":0.00866,"134":0.00866,"135":0.00866,"136":0.00866,"137":0.00866,"138":0.01733,"139":0.013,"140":0.013,"141":0.01733,"142":0.02599,"143":0.07364,"144":0.13862,"145":2.56888,"146":2.44758,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 121 123 124 125 128 129"},E:{"14":0.00866,_:"4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 26.5 TP","13.1":0.02166,"14.1":0.02166,"15.4":0.00433,"15.5":0.00433,"15.6":0.09097,"16.0":0.00433,"16.1":0.013,"16.2":0.00866,"16.3":0.01733,"16.4":0.013,"16.5":0.013,"16.6":0.15595,"17.0":0.00433,"17.1":0.11263,"17.2":0.00866,"17.3":0.013,"17.4":0.03032,"17.5":0.04332,"17.6":0.17761,"18.0":0.00866,"18.1":0.02166,"18.2":0.00866,"18.3":0.04332,"18.4":0.02166,"18.5-18.7":0.06931,"26.0":0.03032,"26.1":0.04332,"26.2":0.25559,"26.3":1.30393,"26.4":0.04765},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00147,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00295,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00737,"11.0-11.2":0.18561,"11.3-11.4":0.00442,"12.0-12.1":0,"12.2-12.5":0.05745,"13.0-13.1":0,"13.2":0.0221,"13.3":0.00295,"13.4-13.7":0.00737,"14.0-14.4":0.01326,"14.5-14.8":0.01326,"15.0-15.1":0.01915,"15.2-15.3":0.01178,"15.4":0.01473,"15.5":0.0162,"15.6-15.8":0.26074,"16.0":0.02652,"16.1":0.05156,"16.2":0.02946,"16.3":0.05303,"16.4":0.01178,"16.5":0.0221,"16.6-16.7":0.36239,"17.0":0.0162,"17.1":0.02652,"17.2":0.02357,"17.3":0.03241,"17.4":0.05303,"17.5":0.10017,"17.6-17.7":0.25779,"18.0":0.05598,"18.1":0.1149,"18.2":0.0604,"18.3":0.19298,"18.4":0.09281,"18.5-18.7":2.95212,"26.0":0.18414,"26.1":0.27989,"26.2":1.64694,"26.3":7.15491,"26.4":0.26811,"26.5":0},P:{"21":0.01079,"24":0.01079,"25":0.01079,"26":0.03237,"27":0.03237,"28":0.08631,"29":1.94208,_:"4 20 22 23 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.05097,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00003},K:{"0":0.89554,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.29024,_:"6 7 8 9 10 5.5"},J:{_:"7 10"},N:{_:"10 11"},S:{"2.5":0.00567,_:"3.0-3.1"},R:{_:"0"},M:{"0":0.35142},Q:{"14.9":0.11336},O:{"0":0.64048},H:{all:0},L:{"0":44.75693}}; diff --git a/server/api/node_modules/caniuse-lite/dist/lib/statuses.js b/server/api/node_modules/caniuse-lite/dist/lib/statuses.js new file mode 100644 index 0000000..4d73ab3 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/dist/lib/statuses.js @@ -0,0 +1,9 @@ +module.exports = { + 1: 'ls', // WHATWG Living Standard + 2: 'rec', // W3C Recommendation + 3: 'pr', // W3C Proposed Recommendation + 4: 'cr', // W3C Candidate Recommendation + 5: 'wd', // W3C Working Draft + 6: 'other', // Non-W3C, but reputable + 7: 'unoff' // Unofficial, Editor's Draft or W3C "Note" +} diff --git a/server/api/node_modules/caniuse-lite/dist/lib/supported.js b/server/api/node_modules/caniuse-lite/dist/lib/supported.js new file mode 100644 index 0000000..3f81e4e --- /dev/null +++ b/server/api/node_modules/caniuse-lite/dist/lib/supported.js @@ -0,0 +1,9 @@ +module.exports = { + y: 1 << 0, + n: 1 << 1, + a: 1 << 2, + p: 1 << 3, + u: 1 << 4, + x: 1 << 5, + d: 1 << 6 +} diff --git a/server/api/node_modules/caniuse-lite/dist/unpacker/agents.js b/server/api/node_modules/caniuse-lite/dist/unpacker/agents.js new file mode 100644 index 0000000..0c8a790 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/dist/unpacker/agents.js @@ -0,0 +1,47 @@ +'use strict' + +const browsers = require('./browsers').browsers +const versions = require('./browserVersions').browserVersions +const agentsData = require('../../data/agents') + +function unpackBrowserVersions(versionsData) { + return Object.keys(versionsData).reduce((usage, version) => { + usage[versions[version]] = versionsData[version] + return usage + }, {}) +} + +module.exports.agents = Object.keys(agentsData).reduce((map, key) => { + let versionsData = agentsData[key] + map[browsers[key]] = Object.keys(versionsData).reduce((data, entry) => { + if (entry === 'A') { + data.usage_global = unpackBrowserVersions(versionsData[entry]) + } else if (entry === 'C') { + data.versions = versionsData[entry].reduce((list, version) => { + if (version === '') { + list.push(null) + } else { + list.push(versions[version]) + } + return list + }, []) + } else if (entry === 'D') { + data.prefix_exceptions = unpackBrowserVersions(versionsData[entry]) + } else if (entry === 'E') { + data.browser = versionsData[entry] + } else if (entry === 'F') { + data.release_date = Object.keys(versionsData[entry]).reduce( + (map2, key2) => { + map2[versions[key2]] = versionsData[entry][key2] + return map2 + }, + {} + ) + } else { + // entry is B + data.prefix = versionsData[entry] + } + return data + }, {}) + return map +}, {}) diff --git a/server/api/node_modules/caniuse-lite/dist/unpacker/browserVersions.js b/server/api/node_modules/caniuse-lite/dist/unpacker/browserVersions.js new file mode 100644 index 0000000..553526e --- /dev/null +++ b/server/api/node_modules/caniuse-lite/dist/unpacker/browserVersions.js @@ -0,0 +1 @@ +module.exports.browserVersions = require('../../data/browserVersions') diff --git a/server/api/node_modules/caniuse-lite/dist/unpacker/browsers.js b/server/api/node_modules/caniuse-lite/dist/unpacker/browsers.js new file mode 100644 index 0000000..85e68b4 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/dist/unpacker/browsers.js @@ -0,0 +1 @@ +module.exports.browsers = require('../../data/browsers') diff --git a/server/api/node_modules/caniuse-lite/dist/unpacker/feature.js b/server/api/node_modules/caniuse-lite/dist/unpacker/feature.js new file mode 100644 index 0000000..6690e99 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/dist/unpacker/feature.js @@ -0,0 +1,52 @@ +'use strict' + +const statuses = require('../lib/statuses') +const supported = require('../lib/supported') +const browsers = require('./browsers').browsers +const versions = require('./browserVersions').browserVersions + +const MATH2LOG = Math.log(2) + +function unpackSupport(cipher) { + // bit flags + let stats = Object.keys(supported).reduce((list, support) => { + if (cipher & supported[support]) list.push(support) + return list + }, []) + + // notes + let notes = cipher >> 7 + let notesArray = [] + while (notes) { + let note = Math.floor(Math.log(notes) / MATH2LOG) + 1 + notesArray.unshift(`#${note}`) + notes -= Math.pow(2, note - 1) + } + + return stats.concat(notesArray).join(' ') +} + +function unpackFeature(packed) { + let unpacked = { + status: statuses[packed.B], + title: packed.C, + shown: packed.D + } + unpacked.stats = Object.keys(packed.A).reduce((browserStats, key) => { + let browser = packed.A[key] + browserStats[browsers[key]] = Object.keys(browser).reduce( + (stats, support) => { + let packedVersions = browser[support].split(' ') + let unpacked2 = unpackSupport(support) + packedVersions.forEach(v => (stats[versions[v]] = unpacked2)) + return stats + }, + {} + ) + return browserStats + }, {}) + return unpacked +} + +module.exports = unpackFeature +module.exports.default = unpackFeature diff --git a/server/api/node_modules/caniuse-lite/dist/unpacker/features.js b/server/api/node_modules/caniuse-lite/dist/unpacker/features.js new file mode 100644 index 0000000..8362aec --- /dev/null +++ b/server/api/node_modules/caniuse-lite/dist/unpacker/features.js @@ -0,0 +1,6 @@ +/* + * Load this dynamically so that it + * doesn't appear in the rollup bundle. + */ + +module.exports.features = require('../../data/features') diff --git a/server/api/node_modules/caniuse-lite/dist/unpacker/index.js b/server/api/node_modules/caniuse-lite/dist/unpacker/index.js new file mode 100644 index 0000000..12017e8 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/dist/unpacker/index.js @@ -0,0 +1,4 @@ +module.exports.agents = require('./agents').agents +module.exports.feature = require('./feature') +module.exports.features = require('./features').features +module.exports.region = require('./region') diff --git a/server/api/node_modules/caniuse-lite/dist/unpacker/region.js b/server/api/node_modules/caniuse-lite/dist/unpacker/region.js new file mode 100644 index 0000000..d5cc2b6 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/dist/unpacker/region.js @@ -0,0 +1,22 @@ +'use strict' + +const browsers = require('./browsers').browsers + +function unpackRegion(packed) { + return Object.keys(packed).reduce((list, browser) => { + let data = packed[browser] + list[browsers[browser]] = Object.keys(data).reduce((memo, key) => { + let stats = data[key] + if (key === '_') { + stats.split(' ').forEach(version => (memo[version] = null)) + } else { + memo[key] = stats + } + return memo + }, {}) + return list + }, {}) +} + +module.exports = unpackRegion +module.exports.default = unpackRegion diff --git a/server/api/node_modules/caniuse-lite/package.json b/server/api/node_modules/caniuse-lite/package.json new file mode 100644 index 0000000..58a9615 --- /dev/null +++ b/server/api/node_modules/caniuse-lite/package.json @@ -0,0 +1,34 @@ +{ + "name": "caniuse-lite", + "version": "1.0.30001788", + "description": "A smaller version of caniuse-db, with only the essentials!", + "main": "dist/unpacker/index.js", + "files": [ + "data", + "dist" + ], + "keywords": [ + "support" + ], + "author": { + "name": "Ben Briggs", + "email": "beneb.info@gmail.com", + "url": "http://beneb.info" + }, + "repository": "browserslist/caniuse-lite", + "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" +} diff --git a/server/api/node_modules/chalk/index.d.ts b/server/api/node_modules/chalk/index.d.ts new file mode 100644 index 0000000..9cd88f3 --- /dev/null +++ b/server/api/node_modules/chalk/index.d.ts @@ -0,0 +1,415 @@ +/** +Basic foreground colors. + +[More colors here.](https://github.com/chalk/chalk/blob/master/readme.md#256-and-truecolor-color-support) +*/ +declare type ForegroundColor = + | 'black' + | 'red' + | 'green' + | 'yellow' + | 'blue' + | 'magenta' + | 'cyan' + | 'white' + | 'gray' + | 'grey' + | 'blackBright' + | 'redBright' + | 'greenBright' + | 'yellowBright' + | 'blueBright' + | 'magentaBright' + | 'cyanBright' + | 'whiteBright'; + +/** +Basic background colors. + +[More colors here.](https://github.com/chalk/chalk/blob/master/readme.md#256-and-truecolor-color-support) +*/ +declare type BackgroundColor = + | 'bgBlack' + | 'bgRed' + | 'bgGreen' + | 'bgYellow' + | 'bgBlue' + | 'bgMagenta' + | 'bgCyan' + | 'bgWhite' + | 'bgGray' + | 'bgGrey' + | 'bgBlackBright' + | 'bgRedBright' + | 'bgGreenBright' + | 'bgYellowBright' + | 'bgBlueBright' + | 'bgMagentaBright' + | 'bgCyanBright' + | 'bgWhiteBright'; + +/** +Basic colors. + +[More colors here.](https://github.com/chalk/chalk/blob/master/readme.md#256-and-truecolor-color-support) +*/ +declare type Color = ForegroundColor | BackgroundColor; + +declare type Modifiers = + | 'reset' + | 'bold' + | 'dim' + | 'italic' + | 'underline' + | 'inverse' + | 'hidden' + | 'strikethrough' + | 'visible'; + +declare namespace chalk { + /** + Levels: + - `0` - All colors disabled. + - `1` - Basic 16 colors support. + - `2` - ANSI 256 colors support. + - `3` - Truecolor 16 million colors support. + */ + type Level = 0 | 1 | 2 | 3; + + interface Options { + /** + Specify the color support for Chalk. + + By default, color support is automatically detected based on the environment. + + Levels: + - `0` - All colors disabled. + - `1` - Basic 16 colors support. + - `2` - ANSI 256 colors support. + - `3` - Truecolor 16 million colors support. + */ + level?: Level; + } + + /** + Return a new Chalk instance. + */ + type Instance = new (options?: Options) => Chalk; + + /** + Detect whether the terminal supports color. + */ + interface ColorSupport { + /** + The color level used by Chalk. + */ + level: Level; + + /** + Return whether Chalk supports basic 16 colors. + */ + hasBasic: boolean; + + /** + Return whether Chalk supports ANSI 256 colors. + */ + has256: boolean; + + /** + Return whether Chalk supports Truecolor 16 million colors. + */ + has16m: boolean; + } + + interface ChalkFunction { + /** + Use a template string. + + @remarks Template literals are unsupported for nested calls (see [issue #341](https://github.com/chalk/chalk/issues/341)) + + @example + ``` + import chalk = require('chalk'); + + log(chalk` + CPU: {red ${cpu.totalPercent}%} + RAM: {green ${ram.used / ram.total * 100}%} + DISK: {rgb(255,131,0) ${disk.used / disk.total * 100}%} + `); + ``` + + @example + ``` + import chalk = require('chalk'); + + log(chalk.red.bgBlack`2 + 3 = {bold ${2 + 3}}`) + ``` + */ + (text: TemplateStringsArray, ...placeholders: unknown[]): string; + + (...text: unknown[]): string; + } + + interface Chalk extends ChalkFunction { + /** + Return a new Chalk instance. + */ + Instance: Instance; + + /** + The color support for Chalk. + + By default, color support is automatically detected based on the environment. + + Levels: + - `0` - All colors disabled. + - `1` - Basic 16 colors support. + - `2` - ANSI 256 colors support. + - `3` - Truecolor 16 million colors support. + */ + level: Level; + + /** + Use HEX value to set text color. + + @param color - Hexadecimal value representing the desired color. + + @example + ``` + import chalk = require('chalk'); + + chalk.hex('#DEADED'); + ``` + */ + hex(color: string): Chalk; + + /** + Use keyword color value to set text color. + + @param color - Keyword value representing the desired color. + + @example + ``` + import chalk = require('chalk'); + + chalk.keyword('orange'); + ``` + */ + keyword(color: string): Chalk; + + /** + Use RGB values to set text color. + */ + rgb(red: number, green: number, blue: number): Chalk; + + /** + Use HSL values to set text color. + */ + hsl(hue: number, saturation: number, lightness: number): Chalk; + + /** + Use HSV values to set text color. + */ + hsv(hue: number, saturation: number, value: number): Chalk; + + /** + Use HWB values to set text color. + */ + hwb(hue: number, whiteness: number, blackness: number): Chalk; + + /** + Use a [Select/Set Graphic Rendition](https://en.wikipedia.org/wiki/ANSI_escape_code#SGR_parameters) (SGR) [color code number](https://en.wikipedia.org/wiki/ANSI_escape_code#3/4_bit) to set text color. + + 30 <= code && code < 38 || 90 <= code && code < 98 + For example, 31 for red, 91 for redBright. + */ + ansi(code: number): Chalk; + + /** + Use a [8-bit unsigned number](https://en.wikipedia.org/wiki/ANSI_escape_code#8-bit) to set text color. + */ + ansi256(index: number): Chalk; + + /** + Use HEX value to set background color. + + @param color - Hexadecimal value representing the desired color. + + @example + ``` + import chalk = require('chalk'); + + chalk.bgHex('#DEADED'); + ``` + */ + bgHex(color: string): Chalk; + + /** + Use keyword color value to set background color. + + @param color - Keyword value representing the desired color. + + @example + ``` + import chalk = require('chalk'); + + chalk.bgKeyword('orange'); + ``` + */ + bgKeyword(color: string): Chalk; + + /** + Use RGB values to set background color. + */ + bgRgb(red: number, green: number, blue: number): Chalk; + + /** + Use HSL values to set background color. + */ + bgHsl(hue: number, saturation: number, lightness: number): Chalk; + + /** + Use HSV values to set background color. + */ + bgHsv(hue: number, saturation: number, value: number): Chalk; + + /** + Use HWB values to set background color. + */ + bgHwb(hue: number, whiteness: number, blackness: number): Chalk; + + /** + Use a [Select/Set Graphic Rendition](https://en.wikipedia.org/wiki/ANSI_escape_code#SGR_parameters) (SGR) [color code number](https://en.wikipedia.org/wiki/ANSI_escape_code#3/4_bit) to set background color. + + 30 <= code && code < 38 || 90 <= code && code < 98 + For example, 31 for red, 91 for redBright. + Use the foreground code, not the background code (for example, not 41, nor 101). + */ + bgAnsi(code: number): Chalk; + + /** + Use a [8-bit unsigned number](https://en.wikipedia.org/wiki/ANSI_escape_code#8-bit) to set background color. + */ + bgAnsi256(index: number): Chalk; + + /** + Modifier: Resets the current color chain. + */ + readonly reset: Chalk; + + /** + Modifier: Make text bold. + */ + readonly bold: Chalk; + + /** + Modifier: Emitting only a small amount of light. + */ + readonly dim: Chalk; + + /** + Modifier: Make text italic. (Not widely supported) + */ + readonly italic: Chalk; + + /** + Modifier: Make text underline. (Not widely supported) + */ + readonly underline: Chalk; + + /** + Modifier: Inverse background and foreground colors. + */ + readonly inverse: Chalk; + + /** + Modifier: Prints the text, but makes it invisible. + */ + readonly hidden: Chalk; + + /** + Modifier: Puts a horizontal line through the center of the text. (Not widely supported) + */ + readonly strikethrough: Chalk; + + /** + Modifier: Prints the text only when Chalk has a color support level > 0. + Can be useful for things that are purely cosmetic. + */ + readonly visible: Chalk; + + readonly black: Chalk; + readonly red: Chalk; + readonly green: Chalk; + readonly yellow: Chalk; + readonly blue: Chalk; + readonly magenta: Chalk; + readonly cyan: Chalk; + readonly white: Chalk; + + /* + Alias for `blackBright`. + */ + readonly gray: Chalk; + + /* + Alias for `blackBright`. + */ + readonly grey: Chalk; + + readonly blackBright: Chalk; + readonly redBright: Chalk; + readonly greenBright: Chalk; + readonly yellowBright: Chalk; + readonly blueBright: Chalk; + readonly magentaBright: Chalk; + readonly cyanBright: Chalk; + readonly whiteBright: Chalk; + + readonly bgBlack: Chalk; + readonly bgRed: Chalk; + readonly bgGreen: Chalk; + readonly bgYellow: Chalk; + readonly bgBlue: Chalk; + readonly bgMagenta: Chalk; + readonly bgCyan: Chalk; + readonly bgWhite: Chalk; + + /* + Alias for `bgBlackBright`. + */ + readonly bgGray: Chalk; + + /* + Alias for `bgBlackBright`. + */ + readonly bgGrey: Chalk; + + readonly bgBlackBright: Chalk; + readonly bgRedBright: Chalk; + readonly bgGreenBright: Chalk; + readonly bgYellowBright: Chalk; + readonly bgBlueBright: Chalk; + readonly bgMagentaBright: Chalk; + readonly bgCyanBright: Chalk; + readonly bgWhiteBright: Chalk; + } +} + +/** +Main Chalk object that allows to chain styles together. +Call the last one as a method with a string argument. +Order doesn't matter, and later styles take precedent in case of a conflict. +This simply means that `chalk.red.yellow.green` is equivalent to `chalk.green`. +*/ +declare const chalk: chalk.Chalk & chalk.ChalkFunction & { + supportsColor: chalk.ColorSupport | false; + Level: chalk.Level; + Color: Color; + ForegroundColor: ForegroundColor; + BackgroundColor: BackgroundColor; + Modifiers: Modifiers; + stderr: chalk.Chalk & {supportsColor: chalk.ColorSupport | false}; +}; + +export = chalk; diff --git a/server/api/node_modules/chalk/license b/server/api/node_modules/chalk/license new file mode 100644 index 0000000..e7af2f7 --- /dev/null +++ b/server/api/node_modules/chalk/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (sindresorhus.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. diff --git a/server/api/node_modules/chalk/package.json b/server/api/node_modules/chalk/package.json new file mode 100644 index 0000000..47c23f2 --- /dev/null +++ b/server/api/node_modules/chalk/package.json @@ -0,0 +1,68 @@ +{ + "name": "chalk", + "version": "4.1.2", + "description": "Terminal string styling done right", + "license": "MIT", + "repository": "chalk/chalk", + "funding": "https://github.com/chalk/chalk?sponsor=1", + "main": "source", + "engines": { + "node": ">=10" + }, + "scripts": { + "test": "xo && nyc ava && tsd", + "bench": "matcha benchmark.js" + }, + "files": [ + "source", + "index.d.ts" + ], + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "str", + "ansi", + "style", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "devDependencies": { + "ava": "^2.4.0", + "coveralls": "^3.0.7", + "execa": "^4.0.0", + "import-fresh": "^3.1.0", + "matcha": "^0.7.0", + "nyc": "^15.0.0", + "resolve-from": "^5.0.0", + "tsd": "^0.7.4", + "xo": "^0.28.2" + }, + "xo": { + "rules": { + "unicorn/prefer-string-slice": "off", + "unicorn/prefer-includes": "off", + "@typescript-eslint/member-ordering": "off", + "no-redeclare": "off", + "unicorn/string-content": "off", + "unicorn/better-regex": "off" + } + } +} diff --git a/server/api/node_modules/chalk/readme.md b/server/api/node_modules/chalk/readme.md new file mode 100644 index 0000000..a055d21 --- /dev/null +++ b/server/api/node_modules/chalk/readme.md @@ -0,0 +1,341 @@ +

+
+
+ Chalk +
+
+
+

+ +> Terminal string styling done right + +[![Build Status](https://travis-ci.org/chalk/chalk.svg?branch=master)](https://travis-ci.org/chalk/chalk) [![Coverage Status](https://coveralls.io/repos/github/chalk/chalk/badge.svg?branch=master)](https://coveralls.io/github/chalk/chalk?branch=master) [![npm dependents](https://badgen.net/npm/dependents/chalk)](https://www.npmjs.com/package/chalk?activeTab=dependents) [![Downloads](https://badgen.net/npm/dt/chalk)](https://www.npmjs.com/package/chalk) [![](https://img.shields.io/badge/unicorn-approved-ff69b4.svg)](https://www.youtube.com/watch?v=9auOCbH5Ns4) [![XO code style](https://img.shields.io/badge/code_style-XO-5ed9c7.svg)](https://github.com/xojs/xo) ![TypeScript-ready](https://img.shields.io/npm/types/chalk.svg) [![run on repl.it](https://repl.it/badge/github/chalk/chalk)](https://repl.it/github/chalk/chalk) + + + +
+ +--- + + + +--- + +
+ +## Highlights + +- Expressive API +- Highly performant +- Ability to nest styles +- [256/Truecolor color support](#256-and-truecolor-color-support) +- Auto-detects color support +- Doesn't extend `String.prototype` +- Clean and focused +- Actively maintained +- [Used by ~50,000 packages](https://www.npmjs.com/browse/depended/chalk) as of January 1, 2020 + +## Install + +```console +$ npm install chalk +``` + +## Usage + +```js +const chalk = require('chalk'); + +console.log(chalk.blue('Hello world!')); +``` + +Chalk comes with an easy to use composable API where you just chain and nest the styles you want. + +```js +const chalk = require('chalk'); +const log = console.log; + +// Combine styled and normal strings +log(chalk.blue('Hello') + ' World' + chalk.red('!')); + +// Compose multiple styles using the chainable API +log(chalk.blue.bgRed.bold('Hello world!')); + +// Pass in multiple arguments +log(chalk.blue('Hello', 'World!', 'Foo', 'bar', 'biz', 'baz')); + +// Nest styles +log(chalk.red('Hello', chalk.underline.bgBlue('world') + '!')); + +// Nest styles of the same type even (color, underline, background) +log(chalk.green( + 'I am a green line ' + + chalk.blue.underline.bold('with a blue substring') + + ' that becomes green again!' +)); + +// ES2015 template literal +log(` +CPU: ${chalk.red('90%')} +RAM: ${chalk.green('40%')} +DISK: ${chalk.yellow('70%')} +`); + +// ES2015 tagged template literal +log(chalk` +CPU: {red ${cpu.totalPercent}%} +RAM: {green ${ram.used / ram.total * 100}%} +DISK: {rgb(255,131,0) ${disk.used / disk.total * 100}%} +`); + +// Use RGB colors in terminal emulators that support it. +log(chalk.keyword('orange')('Yay for orange colored text!')); +log(chalk.rgb(123, 45, 67).underline('Underlined reddish color')); +log(chalk.hex('#DEADED').bold('Bold gray!')); +``` + +Easily define your own themes: + +```js +const chalk = require('chalk'); + +const error = chalk.bold.red; +const warning = chalk.keyword('orange'); + +console.log(error('Error!')); +console.log(warning('Warning!')); +``` + +Take advantage of console.log [string substitution](https://nodejs.org/docs/latest/api/console.html#console_console_log_data_args): + +```js +const name = 'Sindre'; +console.log(chalk.green('Hello %s'), name); +//=> 'Hello Sindre' +``` + +## API + +### chalk.` + + `; +} + +function headerTemplate(details) { + function metricsTemplate({ pct, covered, total }, kind) { + return ` +
+ ${pct}% + ${kind} + ${covered}/${total} +
+ `; + } + + function skipTemplate(metrics) { + const statements = metrics.statements.skipped; + const branches = metrics.branches.skipped; + const functions = metrics.functions.skipped; + + const countLabel = (c, label, plural) => + c === 0 ? [] : `${c} ${label}${c === 1 ? '' : plural}`; + const skips = [].concat( + countLabel(statements, 'statement', 's'), + countLabel(functions, 'function', 's'), + countLabel(branches, 'branch', 'es') + ); + + if (skips.length === 0) { + return ''; + } + + return ` +
+ ${skips.join(', ')} + Ignored      +
+ `; + } + + return ` + + +${htmlHead(details)} + +
+
+

${details.pathHtml}

+
+ ${metricsTemplate(details.metrics.statements, 'Statements')} + ${metricsTemplate(details.metrics.branches, 'Branches')} + ${metricsTemplate(details.metrics.functions, 'Functions')} + ${metricsTemplate(details.metrics.lines, 'Lines')} + ${skipTemplate(details.metrics)} +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+ `; +} + +function footerTemplate(details) { + return ` +
+
+ + + + + + + + `; +} + +function detailTemplate(data) { + const lineNumbers = new Array(data.maxLines).fill().map((_, i) => i + 1); + const lineLink = num => + `${num}`; + const lineCount = line => + `${line.hits}`; + + /* This is rendered in a `
`, need control of all whitespace. */
+    return [
+        '',
+        `${lineNumbers
+            .map(lineLink)
+            .join('\n')}`,
+        `${data.lineCoverage
+            .map(lineCount)
+            .join('\n')}`,
+        `
${data.annotatedCode.join(
+            '\n'
+        )}
`, + '' + ].join(''); +} +const summaryTableHeader = [ + '
', + '', + '', + '', + ' ', + ' ', + ' ', + ' ', + ' ', + ' ', + ' ', + ' ', + ' ', + ' ', + '', + '', + '' +].join('\n'); + +function summaryLineTemplate(details) { + const { reportClasses, metrics, file, output } = details; + const percentGraph = pct => { + if (!isFinite(pct)) { + return ''; + } + + const cls = ['cover-fill']; + if (pct === 100) { + cls.push('cover-full'); + } + + pct = Math.floor(pct); + return [ + `
`, + `
` + ].join(''); + }; + const summaryType = (type, showGraph = false) => { + const info = metrics[type]; + const reportClass = reportClasses[type]; + const result = [ + ``, + `` + ]; + if (showGraph) { + result.unshift( + `` + ); + } + + return result; + }; + + return [] + .concat( + '', + ``, + summaryType('statements', true), + summaryType('branches'), + summaryType('functions'), + summaryType('lines'), + '\n' + ) + .join('\n\t'); +} + +const summaryTableFooter = ['', '
FileStatementsBranchesFunctionsLines
${info.pct}%${info.covered}/${info.total}`, + `
${percentGraph(info.pct)}
`, + `
${html.escape(file)}
', '
'].join('\n'); +const emptyClasses = { + statements: 'empty', + lines: 'empty', + functions: 'empty', + branches: 'empty' +}; + +const standardLinkMapper = { + getPath(node) { + if (typeof node === 'string') { + return node; + } + let filePath = node.getQualifiedName(); + if (node.isSummary()) { + if (filePath !== '') { + filePath += '/index.html'; + } else { + filePath = 'index.html'; + } + } else { + filePath += '.html'; + } + return filePath; + }, + + relativePath(source, target) { + const targetPath = this.getPath(target); + const sourcePath = path.dirname(this.getPath(source)); + return path.posix.relative(sourcePath, targetPath); + }, + + assetPath(node, name) { + return this.relativePath(this.getPath(node), name); + } +}; + +function fixPct(metrics) { + Object.keys(emptyClasses).forEach(key => { + metrics[key].pct = 0; + }); + return metrics; +} + +class HtmlReport extends ReportBase { + constructor(opts) { + super(); + + this.verbose = opts.verbose; + this.linkMapper = opts.linkMapper || standardLinkMapper; + this.subdir = opts.subdir || ''; + this.date = new Date().toISOString(); + this.skipEmpty = opts.skipEmpty; + } + + getBreadcrumbHtml(node) { + let parent = node.getParent(); + const nodePath = []; + + while (parent) { + nodePath.push(parent); + parent = parent.getParent(); + } + + const linkPath = nodePath.map(ancestor => { + const target = this.linkMapper.relativePath(node, ancestor); + const name = ancestor.getRelativeName() || 'All files'; + return '' + name + ''; + }); + + linkPath.reverse(); + return linkPath.length > 0 + ? linkPath.join(' / ') + ' ' + node.getRelativeName() + : 'All files'; + } + + fillTemplate(node, templateData, context) { + const linkMapper = this.linkMapper; + const summary = node.getCoverageSummary(); + templateData.entity = node.getQualifiedName() || 'All files'; + templateData.metrics = summary; + templateData.reportClass = context.classForPercent( + 'statements', + summary.statements.pct + ); + templateData.pathHtml = this.getBreadcrumbHtml(node); + templateData.base = { + css: linkMapper.assetPath(node, 'base.css') + }; + templateData.sorter = { + js: linkMapper.assetPath(node, 'sorter.js'), + image: linkMapper.assetPath(node, 'sort-arrow-sprite.png') + }; + templateData.blockNavigation = { + js: linkMapper.assetPath(node, 'block-navigation.js') + }; + templateData.prettify = { + js: linkMapper.assetPath(node, 'prettify.js'), + css: linkMapper.assetPath(node, 'prettify.css') + }; + templateData.favicon = linkMapper.assetPath(node, 'favicon.png'); + } + + getTemplateData() { + return { datetime: this.date }; + } + + getWriter(context) { + if (!this.subdir) { + return context.writer; + } + return context.writer.writerForDir(this.subdir); + } + + onStart(root, context) { + const assetHeaders = { + '.js': '/* eslint-disable */\n' + }; + + ['.', 'vendor'].forEach(subdir => { + const writer = this.getWriter(context); + const srcDir = path.resolve(__dirname, 'assets', subdir); + fs.readdirSync(srcDir).forEach(f => { + const resolvedSource = path.resolve(srcDir, f); + const resolvedDestination = '.'; + const stat = fs.statSync(resolvedSource); + let dest; + + if (stat.isFile()) { + dest = resolvedDestination + '/' + f; + if (this.verbose) { + console.log('Write asset: ' + dest); + } + writer.copyFile( + resolvedSource, + dest, + assetHeaders[path.extname(f)] + ); + } + }); + }); + } + + onSummary(node, context) { + const linkMapper = this.linkMapper; + const templateData = this.getTemplateData(); + const children = node.getChildren(); + const skipEmpty = this.skipEmpty; + + this.fillTemplate(node, templateData, context); + const cw = this.getWriter(context).writeFile(linkMapper.getPath(node)); + cw.write(headerTemplate(templateData)); + cw.write(summaryTableHeader); + children.forEach(child => { + const metrics = child.getCoverageSummary(); + const isEmpty = metrics.isEmpty(); + if (skipEmpty && isEmpty) { + return; + } + const reportClasses = isEmpty + ? emptyClasses + : { + statements: context.classForPercent( + 'statements', + metrics.statements.pct + ), + lines: context.classForPercent( + 'lines', + metrics.lines.pct + ), + functions: context.classForPercent( + 'functions', + metrics.functions.pct + ), + branches: context.classForPercent( + 'branches', + metrics.branches.pct + ) + }; + const data = { + metrics: isEmpty ? fixPct(metrics) : metrics, + reportClasses, + file: child.getRelativeName(), + output: linkMapper.relativePath(node, child) + }; + cw.write(summaryLineTemplate(data) + '\n'); + }); + cw.write(summaryTableFooter); + cw.write(footerTemplate(templateData)); + cw.close(); + } + + onDetail(node, context) { + const linkMapper = this.linkMapper; + const templateData = this.getTemplateData(); + + this.fillTemplate(node, templateData, context); + const cw = this.getWriter(context).writeFile(linkMapper.getPath(node)); + cw.write(headerTemplate(templateData)); + cw.write('
\n');
+        cw.write(detailTemplate(annotator(node.getFileCoverage(), context)));
+        cw.write('
\n'); + cw.write(footerTemplate(templateData)); + cw.close(); + } +} + +module.exports = HtmlReport; diff --git a/server/api/node_modules/istanbul-reports/lib/html/insertion-text.js b/server/api/node_modules/istanbul-reports/lib/html/insertion-text.js new file mode 100644 index 0000000..6f80642 --- /dev/null +++ b/server/api/node_modules/istanbul-reports/lib/html/insertion-text.js @@ -0,0 +1,114 @@ +'use strict'; +/* + Copyright 2012-2015, Yahoo Inc. + Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. + */ +function InsertionText(text, consumeBlanks) { + this.text = text; + this.origLength = text.length; + this.offsets = []; + this.consumeBlanks = consumeBlanks; + this.startPos = this.findFirstNonBlank(); + this.endPos = this.findLastNonBlank(); +} + +const WHITE_RE = /[ \f\n\r\t\v\u00A0\u2028\u2029]/; + +InsertionText.prototype = { + findFirstNonBlank() { + let pos = -1; + const text = this.text; + const len = text.length; + let i; + for (i = 0; i < len; i += 1) { + if (!text.charAt(i).match(WHITE_RE)) { + pos = i; + break; + } + } + return pos; + }, + findLastNonBlank() { + const text = this.text; + const len = text.length; + let pos = text.length + 1; + let i; + for (i = len - 1; i >= 0; i -= 1) { + if (!text.charAt(i).match(WHITE_RE)) { + pos = i; + break; + } + } + return pos; + }, + originalLength() { + return this.origLength; + }, + + insertAt(col, str, insertBefore, consumeBlanks) { + consumeBlanks = + typeof consumeBlanks === 'undefined' + ? this.consumeBlanks + : consumeBlanks; + col = col > this.originalLength() ? this.originalLength() : col; + col = col < 0 ? 0 : col; + + if (consumeBlanks) { + if (col <= this.startPos) { + col = 0; + } + if (col > this.endPos) { + col = this.origLength; + } + } + + const len = str.length; + const offset = this.findOffset(col, len, insertBefore); + const realPos = col + offset; + const text = this.text; + this.text = text.substring(0, realPos) + str + text.substring(realPos); + return this; + }, + + findOffset(pos, len, insertBefore) { + const offsets = this.offsets; + let offsetObj; + let cumulativeOffset = 0; + let i; + + for (i = 0; i < offsets.length; i += 1) { + offsetObj = offsets[i]; + if ( + offsetObj.pos < pos || + (offsetObj.pos === pos && !insertBefore) + ) { + cumulativeOffset += offsetObj.len; + } + if (offsetObj.pos >= pos) { + break; + } + } + if (offsetObj && offsetObj.pos === pos) { + offsetObj.len += len; + } else { + offsets.splice(i, 0, { pos, len }); + } + return cumulativeOffset; + }, + + wrap(startPos, startText, endPos, endText, consumeBlanks) { + this.insertAt(startPos, startText, true, consumeBlanks); + this.insertAt(endPos, endText, false, consumeBlanks); + return this; + }, + + wrapLine(startText, endText) { + this.wrap(0, startText, this.originalLength(), endText); + }, + + toString() { + return this.text; + } +}; + +module.exports = InsertionText; diff --git a/server/api/node_modules/istanbul-reports/lib/json-summary/index.js b/server/api/node_modules/istanbul-reports/lib/json-summary/index.js new file mode 100644 index 0000000..318a47f --- /dev/null +++ b/server/api/node_modules/istanbul-reports/lib/json-summary/index.js @@ -0,0 +1,56 @@ +/* + Copyright 2012-2015, Yahoo Inc. + Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. + */ +'use strict'; +const { ReportBase } = require('istanbul-lib-report'); + +class JsonSummaryReport extends ReportBase { + constructor(opts) { + super(); + + this.file = opts.file || 'coverage-summary.json'; + this.contentWriter = null; + this.first = true; + } + + onStart(root, context) { + this.contentWriter = context.writer.writeFile(this.file); + this.contentWriter.write('{'); + } + + writeSummary(filePath, sc) { + const cw = this.contentWriter; + if (this.first) { + this.first = false; + } else { + cw.write(','); + } + cw.write(JSON.stringify(filePath)); + cw.write(': '); + cw.write(JSON.stringify(sc)); + cw.println(''); + } + + onSummary(node) { + if (!node.isRoot()) { + return; + } + this.writeSummary('total', node.getCoverageSummary()); + } + + onDetail(node) { + this.writeSummary( + node.getFileCoverage().path, + node.getCoverageSummary() + ); + } + + onEnd() { + const cw = this.contentWriter; + cw.println('}'); + cw.close(); + } +} + +module.exports = JsonSummaryReport; diff --git a/server/api/node_modules/istanbul-reports/lib/json/index.js b/server/api/node_modules/istanbul-reports/lib/json/index.js new file mode 100644 index 0000000..bcae6ae --- /dev/null +++ b/server/api/node_modules/istanbul-reports/lib/json/index.js @@ -0,0 +1,44 @@ +/* + Copyright 2012-2015, Yahoo Inc. + Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. + */ +'use strict'; +const { ReportBase } = require('istanbul-lib-report'); + +class JsonReport extends ReportBase { + constructor(opts) { + super(); + + this.file = opts.file || 'coverage-final.json'; + this.first = true; + } + + onStart(root, context) { + this.contentWriter = context.writer.writeFile(this.file); + this.contentWriter.write('{'); + } + + onDetail(node) { + const fc = node.getFileCoverage(); + const key = fc.path; + const cw = this.contentWriter; + + if (this.first) { + this.first = false; + } else { + cw.write(','); + } + cw.write(JSON.stringify(key)); + cw.write(': '); + cw.write(JSON.stringify(fc)); + cw.println(''); + } + + onEnd() { + const cw = this.contentWriter; + cw.println('}'); + cw.close(); + } +} + +module.exports = JsonReport; diff --git a/server/api/node_modules/istanbul-reports/lib/lcov/index.js b/server/api/node_modules/istanbul-reports/lib/lcov/index.js new file mode 100644 index 0000000..383c202 --- /dev/null +++ b/server/api/node_modules/istanbul-reports/lib/lcov/index.js @@ -0,0 +1,33 @@ +'use strict'; +/* + Copyright 2012-2015, Yahoo Inc. + Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. + */ +const { ReportBase } = require('istanbul-lib-report'); +const LcovOnlyReport = require('../lcovonly'); +const HtmlReport = require('../html'); + +class LcovReport extends ReportBase { + constructor(opts) { + super(); + this.lcov = new LcovOnlyReport({ file: 'lcov.info', ...opts }); + this.html = new HtmlReport({ subdir: 'lcov-report' }); + } +} + +['Start', 'End', 'Summary', 'SummaryEnd', 'Detail'].forEach(what => { + const meth = 'on' + what; + LcovReport.prototype[meth] = function(...args) { + const lcov = this.lcov; + const html = this.html; + + if (lcov[meth]) { + lcov[meth](...args); + } + if (html[meth]) { + html[meth](...args); + } + }; +}); + +module.exports = LcovReport; diff --git a/server/api/node_modules/istanbul-reports/lib/lcovonly/index.js b/server/api/node_modules/istanbul-reports/lib/lcovonly/index.js new file mode 100644 index 0000000..0720e46 --- /dev/null +++ b/server/api/node_modules/istanbul-reports/lib/lcovonly/index.js @@ -0,0 +1,77 @@ +/* + Copyright 2012-2015, Yahoo Inc. + Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. + */ +'use strict'; +const { ReportBase } = require('istanbul-lib-report'); + +class LcovOnlyReport extends ReportBase { + constructor(opts) { + super(); + opts = opts || {}; + this.file = opts.file || 'lcov.info'; + this.projectRoot = opts.projectRoot || process.cwd(); + this.contentWriter = null; + } + + onStart(root, context) { + this.contentWriter = context.writer.writeFile(this.file); + } + + onDetail(node) { + const fc = node.getFileCoverage(); + const writer = this.contentWriter; + const functions = fc.f; + const functionMap = fc.fnMap; + const lines = fc.getLineCoverage(); + const branches = fc.b; + const branchMap = fc.branchMap; + const summary = node.getCoverageSummary(); + const path = require('path'); + + writer.println('TN:'); + const fileName = path.relative(this.projectRoot, fc.path); + writer.println('SF:' + fileName); + + Object.values(functionMap).forEach(meta => { + // Some versions of the instrumenter in the wild populate 'loc' + // but not 'decl': + const decl = meta.decl || meta.loc; + writer.println('FN:' + [decl.start.line, meta.name].join(',')); + }); + writer.println('FNF:' + summary.functions.total); + writer.println('FNH:' + summary.functions.covered); + + Object.entries(functionMap).forEach(([key, meta]) => { + const stats = functions[key]; + writer.println('FNDA:' + [stats, meta.name].join(',')); + }); + + Object.entries(lines).forEach(entry => { + writer.println('DA:' + entry.join(',')); + }); + writer.println('LF:' + summary.lines.total); + writer.println('LH:' + summary.lines.covered); + + Object.entries(branches).forEach(([key, branchArray]) => { + const meta = branchMap[key]; + if (meta) { + const { line } = meta.loc.start; + branchArray.forEach((b, i) => { + writer.println('BRDA:' + [line, key, i, b].join(',')); + }); + } else { + console.warn('Missing coverage entries in', fileName, key); + } + }); + writer.println('BRF:' + summary.branches.total); + writer.println('BRH:' + summary.branches.covered); + writer.println('end_of_record'); + } + + onEnd() { + this.contentWriter.close(); + } +} + +module.exports = LcovOnlyReport; diff --git a/server/api/node_modules/istanbul-reports/lib/none/index.js b/server/api/node_modules/istanbul-reports/lib/none/index.js new file mode 100644 index 0000000..81c1408 --- /dev/null +++ b/server/api/node_modules/istanbul-reports/lib/none/index.js @@ -0,0 +1,10 @@ +'use strict'; +/* + Copyright 2012-2015, Yahoo Inc. + Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. + */ +const { ReportBase } = require('istanbul-lib-report'); + +class NoneReport extends ReportBase {} + +module.exports = NoneReport; diff --git a/server/api/node_modules/istanbul-reports/lib/teamcity/index.js b/server/api/node_modules/istanbul-reports/lib/teamcity/index.js new file mode 100644 index 0000000..2bca26a --- /dev/null +++ b/server/api/node_modules/istanbul-reports/lib/teamcity/index.js @@ -0,0 +1,67 @@ +/* + Copyright 2012-2015, Yahoo Inc. + Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. + */ +'use strict'; +const { ReportBase } = require('istanbul-lib-report'); + +class TeamcityReport extends ReportBase { + constructor(opts) { + super(); + + opts = opts || {}; + this.file = opts.file || null; + this.blockName = opts.blockName || 'Code Coverage Summary'; + } + + onStart(node, context) { + const metrics = node.getCoverageSummary(); + const cw = context.writer.writeFile(this.file); + + cw.println(''); + cw.println("##teamcity[blockOpened name='" + this.blockName + "']"); + + //Statements Covered + cw.println( + lineForKey(metrics.statements.covered, 'CodeCoverageAbsBCovered') + ); + cw.println( + lineForKey(metrics.statements.total, 'CodeCoverageAbsBTotal') + ); + + //Branches Covered + cw.println( + lineForKey(metrics.branches.covered, 'CodeCoverageAbsRCovered') + ); + cw.println(lineForKey(metrics.branches.total, 'CodeCoverageAbsRTotal')); + + //Functions Covered + cw.println( + lineForKey(metrics.functions.covered, 'CodeCoverageAbsMCovered') + ); + cw.println( + lineForKey(metrics.functions.total, 'CodeCoverageAbsMTotal') + ); + + //Lines Covered + cw.println( + lineForKey(metrics.lines.covered, 'CodeCoverageAbsLCovered') + ); + cw.println(lineForKey(metrics.lines.total, 'CodeCoverageAbsLTotal')); + + cw.println("##teamcity[blockClosed name='" + this.blockName + "']"); + cw.close(); + } +} + +function lineForKey(value, teamcityVar) { + return ( + "##teamcity[buildStatisticValue key='" + + teamcityVar + + "' value='" + + value + + "']" + ); +} + +module.exports = TeamcityReport; diff --git a/server/api/node_modules/istanbul-reports/lib/text-lcov/index.js b/server/api/node_modules/istanbul-reports/lib/text-lcov/index.js new file mode 100644 index 0000000..847aedf --- /dev/null +++ b/server/api/node_modules/istanbul-reports/lib/text-lcov/index.js @@ -0,0 +1,17 @@ +'use strict'; +/* + Copyright 2012-2015, Yahoo Inc. + Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. + */ +const LcovOnly = require('../lcovonly'); + +class TextLcov extends LcovOnly { + constructor(opts) { + super({ + ...opts, + file: '-' + }); + } +} + +module.exports = TextLcov; diff --git a/server/api/node_modules/istanbul-reports/lib/text-summary/index.js b/server/api/node_modules/istanbul-reports/lib/text-summary/index.js new file mode 100644 index 0000000..a9e6eab --- /dev/null +++ b/server/api/node_modules/istanbul-reports/lib/text-summary/index.js @@ -0,0 +1,62 @@ +/* + Copyright 2012-2015, Yahoo Inc. + Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. + */ +'use strict'; +const { ReportBase } = require('istanbul-lib-report'); + +class TextSummaryReport extends ReportBase { + constructor(opts) { + super(); + + opts = opts || {}; + this.file = opts.file || null; + } + + onStart(node, context) { + const summary = node.getCoverageSummary(); + const cw = context.writer.writeFile(this.file); + const printLine = function(key) { + const str = lineForKey(summary, key); + const clazz = context.classForPercent(key, summary[key].pct); + cw.println(cw.colorize(str, clazz)); + }; + + cw.println(''); + cw.println( + '=============================== Coverage summary ===============================' + ); + printLine('statements'); + printLine('branches'); + printLine('functions'); + printLine('lines'); + cw.println( + '================================================================================' + ); + cw.close(); + } +} + +function lineForKey(summary, key) { + const metrics = summary[key]; + + key = key.substring(0, 1).toUpperCase() + key.substring(1); + if (key.length < 12) { + key += ' '.substring(0, 12 - key.length); + } + const result = [ + key, + ':', + metrics.pct + '%', + '(', + metrics.covered + '/' + metrics.total, + ')' + ].join(' '); + const skipped = metrics.skipped; + if (skipped > 0) { + return result + ', ' + skipped + ' ignored'; + } + return result; +} + +module.exports = TextSummaryReport; diff --git a/server/api/node_modules/istanbul-reports/lib/text/index.js b/server/api/node_modules/istanbul-reports/lib/text/index.js new file mode 100644 index 0000000..c28cedb --- /dev/null +++ b/server/api/node_modules/istanbul-reports/lib/text/index.js @@ -0,0 +1,298 @@ +/* + Copyright 2012-2015, Yahoo Inc. + Copyrights licensed under the New BSD License. See the accompanying LICENSE + file for terms. + */ +'use strict'; +const { ReportBase } = require('istanbul-lib-report'); + +const NAME_COL = 4; +const PCT_COLS = 7; +const MISSING_COL = 17; +const TAB_SIZE = 1; +const DELIM = ' | '; + +function padding(num, ch) { + let str = ''; + let i; + ch = ch || ' '; + for (i = 0; i < num; i += 1) { + str += ch; + } + return str; +} + +function fill(str, width, right, tabs) { + tabs = tabs || 0; + str = String(str); + + const leadingSpaces = tabs * TAB_SIZE; + const remaining = width - leadingSpaces; + const leader = padding(leadingSpaces); + let fmtStr = ''; + + if (remaining > 0) { + const strlen = str.length; + let fillStr; + + if (remaining >= strlen) { + fillStr = padding(remaining - strlen); + } else { + fillStr = '...'; + const length = remaining - fillStr.length; + + str = str.substring(strlen - length); + right = true; + } + fmtStr = right ? fillStr + str : str + fillStr; + } + + return leader + fmtStr; +} + +function formatName(name, maxCols, level) { + return fill(name, maxCols, false, level); +} + +function formatPct(pct, width) { + return fill(pct, width || PCT_COLS, true, 0); +} + +function nodeMissing(node) { + if (node.isSummary()) { + return ''; + } + + const metrics = node.getCoverageSummary(); + const isEmpty = metrics.isEmpty(); + const lines = isEmpty ? 0 : metrics.lines.pct; + + let coveredLines; + + const fileCoverage = node.getFileCoverage(); + if (lines === 100) { + const branches = fileCoverage.getBranchCoverageByLine(); + coveredLines = Object.entries(branches).map(([key, { coverage }]) => [ + key, + coverage === 100 + ]); + } else { + coveredLines = Object.entries(fileCoverage.getLineCoverage()); + } + + let newRange = true; + const ranges = coveredLines + .reduce((acum, [line, hit]) => { + if (hit) newRange = true; + else { + line = parseInt(line); + if (newRange) { + acum.push([line]); + newRange = false; + } else acum[acum.length - 1][1] = line; + } + + return acum; + }, []) + .map(range => { + const { length } = range; + + if (length === 1) return range[0]; + + return `${range[0]}-${range[1]}`; + }); + + return [].concat(...ranges).join(','); +} + +function nodeName(node) { + return node.getRelativeName() || 'All files'; +} + +function depthFor(node) { + let ret = 0; + node = node.getParent(); + while (node) { + ret += 1; + node = node.getParent(); + } + return ret; +} + +function nullDepthFor() { + return 0; +} + +function findWidth(node, context, nodeExtractor, depthFor = nullDepthFor) { + let last = 0; + function compareWidth(node) { + last = Math.max( + last, + TAB_SIZE * depthFor(node) + nodeExtractor(node).length + ); + } + const visitor = { + onSummary: compareWidth, + onDetail: compareWidth + }; + node.visit(context.getVisitor(visitor)); + return last; +} + +function makeLine(nameWidth, missingWidth) { + const name = padding(nameWidth, '-'); + const pct = padding(PCT_COLS, '-'); + const elements = []; + + elements.push(name); + elements.push(pct); + elements.push(padding(PCT_COLS + 1, '-')); + elements.push(pct); + elements.push(pct); + elements.push(padding(missingWidth, '-')); + return elements.join(DELIM.replace(/ /g, '-')) + '-'; +} + +function tableHeader(maxNameCols, missingWidth) { + const elements = []; + elements.push(formatName('File', maxNameCols, 0)); + elements.push(formatPct('% Stmts')); + elements.push(formatPct('% Branch', PCT_COLS + 1)); + elements.push(formatPct('% Funcs')); + elements.push(formatPct('% Lines')); + elements.push(formatName('Uncovered Line #s', missingWidth)); + return elements.join(DELIM) + ' '; +} + +function isFull(metrics) { + return ( + metrics.statements.pct === 100 && + metrics.branches.pct === 100 && + metrics.functions.pct === 100 && + metrics.lines.pct === 100 + ); +} + +function tableRow( + node, + context, + colorizer, + maxNameCols, + level, + skipEmpty, + skipFull, + missingWidth +) { + const name = nodeName(node); + const metrics = node.getCoverageSummary(); + const isEmpty = metrics.isEmpty(); + if (skipEmpty && isEmpty) { + return ''; + } + if (skipFull && isFull(metrics)) { + return ''; + } + + const mm = { + statements: isEmpty ? 0 : metrics.statements.pct, + branches: isEmpty ? 0 : metrics.branches.pct, + functions: isEmpty ? 0 : metrics.functions.pct, + lines: isEmpty ? 0 : metrics.lines.pct + }; + const colorize = isEmpty + ? function(str) { + return str; + } + : function(str, key) { + return colorizer(str, context.classForPercent(key, mm[key])); + }; + const elements = []; + + elements.push(colorize(formatName(name, maxNameCols, level), 'statements')); + elements.push(colorize(formatPct(mm.statements), 'statements')); + elements.push(colorize(formatPct(mm.branches, PCT_COLS + 1), 'branches')); + elements.push(colorize(formatPct(mm.functions), 'functions')); + elements.push(colorize(formatPct(mm.lines), 'lines')); + elements.push( + colorizer( + formatName(nodeMissing(node), missingWidth), + mm.lines === 100 ? 'medium' : 'low' + ) + ); + + return elements.join(DELIM) + ' '; +} + +class TextReport extends ReportBase { + constructor(opts) { + super(opts); + + opts = opts || {}; + const { maxCols } = opts; + + this.file = opts.file || null; + this.maxCols = maxCols != null ? maxCols : process.stdout.columns || 80; + this.cw = null; + this.skipEmpty = opts.skipEmpty; + this.skipFull = opts.skipFull; + } + + onStart(root, context) { + this.cw = context.writer.writeFile(this.file); + this.nameWidth = Math.max( + NAME_COL, + findWidth(root, context, nodeName, depthFor) + ); + this.missingWidth = Math.max( + MISSING_COL, + findWidth(root, context, nodeMissing) + ); + + if (this.maxCols > 0) { + const pct_cols = DELIM.length + 4 * (PCT_COLS + DELIM.length) + 2; + + const maxRemaining = this.maxCols - (pct_cols + MISSING_COL); + if (this.nameWidth > maxRemaining) { + this.nameWidth = maxRemaining; + this.missingWidth = MISSING_COL; + } else if (this.nameWidth < maxRemaining) { + const maxRemaining = this.maxCols - (this.nameWidth + pct_cols); + if (this.missingWidth > maxRemaining) { + this.missingWidth = maxRemaining; + } + } + } + const line = makeLine(this.nameWidth, this.missingWidth); + this.cw.println(line); + this.cw.println(tableHeader(this.nameWidth, this.missingWidth)); + this.cw.println(line); + } + + onSummary(node, context) { + const nodeDepth = depthFor(node); + const row = tableRow( + node, + context, + this.cw.colorize.bind(this.cw), + this.nameWidth, + nodeDepth, + this.skipEmpty, + this.skipFull, + this.missingWidth + ); + if (row) { + this.cw.println(row); + } + } + + onDetail(node, context) { + return this.onSummary(node, context); + } + + onEnd() { + this.cw.println(makeLine(this.nameWidth, this.missingWidth)); + this.cw.close(); + } +} + +module.exports = TextReport; diff --git a/server/api/node_modules/istanbul-reports/package.json b/server/api/node_modules/istanbul-reports/package.json new file mode 100644 index 0000000..cc668dd --- /dev/null +++ b/server/api/node_modules/istanbul-reports/package.json @@ -0,0 +1,60 @@ +{ + "name": "istanbul-reports", + "version": "3.2.0", + "description": "istanbul reports", + "author": "Krishnan Anantheswaran ", + "main": "index.js", + "files": [ + "index.js", + "lib" + ], + "scripts": { + "test": "nyc mocha --recursive", + "prepare": "webpack --config lib/html-spa/webpack.config.js --mode production", + "prepare:watch": "webpack --config lib/html-spa/webpack.config.js --watch --mode development" + }, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "devDependencies": { + "@babel/core": "^7.7.5", + "@babel/preset-env": "^7.7.5", + "@babel/preset-react": "^7.7.4", + "babel-loader": "^8.0.6", + "chai": "^4.2.0", + "is-windows": "^1.0.2", + "istanbul-lib-coverage": "^3.0.0", + "mocha": "^6.2.2", + "nyc": "^15.0.0-beta.2", + "react": "^16.12.0", + "react-dom": "^16.12.0", + "webpack": "^4.41.2", + "webpack-cli": "^3.3.10" + }, + "license": "BSD-3-Clause", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/istanbuljs/istanbuljs.git", + "directory": "packages/istanbul-reports" + }, + "keywords": [ + "istanbul", + "reports" + ], + "bugs": { + "url": "https://github.com/istanbuljs/istanbuljs/issues" + }, + "homepage": "https://istanbul.js.org/", + "nyc": { + "exclude": [ + "lib/html/assets/**", + "lib/html-spa/assets/**", + "lib/html-spa/rollup.config.js", + "test/**" + ] + }, + "engines": { + "node": ">=8" + } +} diff --git a/server/api/node_modules/jest-changed-files/LICENSE b/server/api/node_modules/jest-changed-files/LICENSE new file mode 100644 index 0000000..b93be90 --- /dev/null +++ b/server/api/node_modules/jest-changed-files/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) Meta Platforms, Inc. and affiliates. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/server/api/node_modules/jest-changed-files/README.md b/server/api/node_modules/jest-changed-files/README.md new file mode 100644 index 0000000..54b9607 --- /dev/null +++ b/server/api/node_modules/jest-changed-files/README.md @@ -0,0 +1,95 @@ +# jest-changed-files + +A module used internally by Jest to check which files have changed since you last committed in git or hg. + +## Install + +```sh +$ npm install --save jest-changed-files +``` + +## API + +### `getChangedFilesForRoots(roots: Array, options: Options): Promise` + +Get the list of files and repos that have changed since the last commit. + +#### Parameters + +roots: Array of string paths gathered from [jest roots](https://jestjs.io/docs/configuration#roots-arraystring). + +options: Object literal with keys + +- lastCommit: boolean +- withAncestor: boolean +- changedSince: string + +### Returns + +A Promise of Object literal with keys + +- changedFiles: Set\ +- repos: + - git: Set\ + - hg: Set\ + +### findRepos(roots: Array): Promise + +Get a set of git and hg repositories. + +#### Parameters + +roots: Array of string paths gathered from [jest roots](https://jestjs.io/docs/configuration#roots-arraystring). + +### Returns + +A Promise of Object literal with keys + +- git: Set\ +- hg: Set\ + +## Usage + +```javascript +import {getChangedFilesForRoots} from 'jest-changed-files'; + +getChangedFilesForRoots(['/path/to/test'], { + lastCommit: true, + withAncestor: true, +}).then(files => { + /* + { + repos: [], + changedFiles: [] + } + */ +}); +``` + +```javascript +import {getChangedFilesForRoots} from 'jest-changed-files'; + +getChangedFilesForRoots(['/path/to/test'], { + changedSince: 'main', +}).then(files => { + /* + { + repos: [], + changedFiles: [] + } + */ +}); +``` + +```javascript +import {findRepos} from 'jest-changed-files'; + +findRepos(['/path/to/test']).then(repos => { + /* + { + git: Set, + hg: Set + } + */ +}); +``` diff --git a/server/api/node_modules/jest-changed-files/package.json b/server/api/node_modules/jest-changed-files/package.json new file mode 100644 index 0000000..143782d --- /dev/null +++ b/server/api/node_modules/jest-changed-files/package.json @@ -0,0 +1,31 @@ +{ + "name": "jest-changed-files", + "version": "29.7.0", + "repository": { + "type": "git", + "url": "https://github.com/jestjs/jest.git", + "directory": "packages/jest-changed-files" + }, + "license": "MIT", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": { + "types": "./build/index.d.ts", + "default": "./build/index.js" + }, + "./package.json": "./package.json" + }, + "dependencies": { + "execa": "^5.0.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "publishConfig": { + "access": "public" + }, + "gitHead": "4e56991693da7cd4c3730dc3579a1dd1403ee630" +} diff --git a/server/api/node_modules/jest-circus/LICENSE b/server/api/node_modules/jest-circus/LICENSE new file mode 100644 index 0000000..b93be90 --- /dev/null +++ b/server/api/node_modules/jest-circus/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) Meta Platforms, Inc. and affiliates. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/server/api/node_modules/jest-circus/README.md b/server/api/node_modules/jest-circus/README.md new file mode 100644 index 0000000..6c5c683 --- /dev/null +++ b/server/api/node_modules/jest-circus/README.md @@ -0,0 +1,65 @@ +[type-definitions]: https://github.com/jestjs/jest/blob/main/packages/jest-types/src/Circus.ts + +

+ + +

jest-circus

+

The next-gen test runner for Jest

+

+ +## Overview + +Circus is a flux-based test runner for Jest that is fast, maintainable, and simple to extend. + +Circus allows you to bind to events via an optional event handler on any [custom environment](https://jestjs.io/docs/configuration#testenvironment-string). See the [type definitions][type-definitions] for more information on the events and state data currently available. + +```js +import {Event, State} from 'jest-circus'; +import {TestEnvironment as NodeEnvironment} from 'jest-environment-node'; + +class MyCustomEnvironment extends NodeEnvironment { + //... + + async handleTestEvent(event: Event, state: State) { + if (event.name === 'test_start') { + // ... + } + } +} +``` + +Mutating event or state data is currently unsupported and may cause unexpected behavior or break in a future release without warning. New events, event data, and/or state data will not be considered a breaking change and may be added in any minor release. + +Note, that `jest-circus` test runner would pause until a promise returned from `handleTestEvent` gets fulfilled. **However, there are a few events that do not conform to this rule, namely**: `start_describe_definition`, `finish_describe_definition`, `add_hook`, `add_test` or `error` (for the up-to-date list you can look at [SyncEvent type in the types definitions][type-definitions]). That is caused by backward compatibility reasons and `process.on('unhandledRejection', callback)` signature, but that usually should not be a problem for most of the use cases. + +## Installation + +> Note: As of Jest 27, `jest-circus` is the default test runner, so you do not have to install it to use it. + +Install `jest-circus` using yarn: + +```bash +yarn add --dev jest-circus +``` + +Or via npm: + +```bash +npm install --save-dev jest-circus +``` + +## Configure + +Configure Jest to use `jest-circus` via the [`testRunner`](https://jestjs.io/docs/configuration#testrunner-string) option: + +```json +{ + "testRunner": "jest-circus/runner" +} +``` + +Or via CLI: + +```bash +jest --testRunner='jest-circus/runner' +``` diff --git a/server/api/node_modules/jest-circus/package.json b/server/api/node_modules/jest-circus/package.json new file mode 100644 index 0000000..8f2dfd9 --- /dev/null +++ b/server/api/node_modules/jest-circus/package.json @@ -0,0 +1,59 @@ +{ + "name": "jest-circus", + "version": "29.7.0", + "repository": { + "type": "git", + "url": "https://github.com/jestjs/jest.git", + "directory": "packages/jest-circus" + }, + "license": "MIT", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": { + "types": "./build/index.d.ts", + "default": "./build/index.js" + }, + "./package.json": "./package.json", + "./runner": "./runner.js" + }, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^1.0.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.7.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "devDependencies": { + "@babel/core": "^7.11.6", + "@babel/register": "^7.0.0", + "@types/co": "^4.6.2", + "@types/graceful-fs": "^4.1.3", + "@types/stack-utils": "^2.0.0", + "execa": "^5.0.0", + "graceful-fs": "^4.2.9", + "tempy": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "publishConfig": { + "access": "public" + }, + "gitHead": "4e56991693da7cd4c3730dc3579a1dd1403ee630" +} diff --git a/server/api/node_modules/jest-circus/runner.js b/server/api/node_modules/jest-circus/runner.js new file mode 100644 index 0000000..de11d64 --- /dev/null +++ b/server/api/node_modules/jest-circus/runner.js @@ -0,0 +1,10 @@ +/** + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +// Allow people to use `jest-circus/runner` as a runner. +const runner = require('./build/legacy-code-todo-rewrite/jestAdapter').default; +module.exports = runner; diff --git a/server/api/node_modules/jest-cli/LICENSE b/server/api/node_modules/jest-cli/LICENSE new file mode 100644 index 0000000..b93be90 --- /dev/null +++ b/server/api/node_modules/jest-cli/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) Meta Platforms, Inc. and affiliates. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/server/api/node_modules/jest-cli/README.md b/server/api/node_modules/jest-cli/README.md new file mode 100644 index 0000000..9c3d31e --- /dev/null +++ b/server/api/node_modules/jest-cli/README.md @@ -0,0 +1,11 @@ +# Jest + +🃏 Delightful JavaScript Testing + +- **👩🏻‍💻 Developer Ready**: Complete and ready to set-up JavaScript testing solution. Works out of the box for any React project. + +- **🏃🏽 Instant Feedback**: Failed tests run first. Fast interactive mode can switch between running all tests or only test files related to changed files. + +- **📸 Snapshot Testing**: Jest can [capture snapshots](https://jestjs.io/docs/snapshot-testing) of React trees or other serializable values to simplify UI testing. + +Read More: https://jestjs.io/ diff --git a/server/api/node_modules/jest-cli/bin/jest.js b/server/api/node_modules/jest-cli/bin/jest.js new file mode 100644 index 0000000..3ddf940 --- /dev/null +++ b/server/api/node_modules/jest-cli/bin/jest.js @@ -0,0 +1,17 @@ +#!/usr/bin/env node +/** + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +const importLocal = require('import-local'); + +if (!importLocal(__filename)) { + if (process.env.NODE_ENV == null) { + process.env.NODE_ENV = 'test'; + } + + require('..').run(); +} diff --git a/server/api/node_modules/jest-cli/package.json b/server/api/node_modules/jest-cli/package.json new file mode 100644 index 0000000..a923ae2 --- /dev/null +++ b/server/api/node_modules/jest-cli/package.json @@ -0,0 +1,88 @@ +{ + "name": "jest-cli", + "description": "Delightful JavaScript Testing.", + "version": "29.7.0", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": { + "types": "./build/index.d.ts", + "default": "./build/index.js" + }, + "./package.json": "./package.json", + "./bin/jest": "./bin/jest.js" + }, + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "create-jest": "^29.7.0", + "exit": "^0.1.2", + "import-local": "^3.0.2", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "yargs": "^17.3.1" + }, + "devDependencies": { + "@tsd/typescript": "^5.0.4", + "@types/exit": "^0.1.30", + "@types/yargs": "^17.0.8", + "tsd-lite": "^0.7.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + }, + "bin": { + "jest": "./bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "repository": { + "type": "git", + "url": "https://github.com/jestjs/jest.git", + "directory": "packages/jest-cli" + }, + "bugs": { + "url": "https://github.com/jestjs/jest/issues" + }, + "homepage": "https://jestjs.io/", + "license": "MIT", + "keywords": [ + "ava", + "babel", + "coverage", + "easy", + "expect", + "facebook", + "immersive", + "instant", + "jasmine", + "jest", + "jsdom", + "mocha", + "mocking", + "painless", + "qunit", + "runner", + "sandboxed", + "snapshot", + "tap", + "tape", + "test", + "testing", + "typescript", + "watch" + ], + "publishConfig": { + "access": "public" + }, + "gitHead": "4e56991693da7cd4c3730dc3579a1dd1403ee630" +} diff --git a/server/api/node_modules/jest-config/LICENSE b/server/api/node_modules/jest-config/LICENSE new file mode 100644 index 0000000..b93be90 --- /dev/null +++ b/server/api/node_modules/jest-config/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) Meta Platforms, Inc. and affiliates. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/server/api/node_modules/jest-config/package.json b/server/api/node_modules/jest-config/package.json new file mode 100644 index 0000000..81b79f0 --- /dev/null +++ b/server/api/node_modules/jest-config/package.json @@ -0,0 +1,71 @@ +{ + "name": "jest-config", + "version": "29.7.0", + "repository": { + "type": "git", + "url": "https://github.com/jestjs/jest.git", + "directory": "packages/jest-config" + }, + "license": "MIT", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": { + "types": "./build/index.d.ts", + "default": "./build/index.js" + }, + "./package.json": "./package.json" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } + }, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "devDependencies": { + "@types/glob": "^7.1.1", + "@types/graceful-fs": "^4.1.3", + "@types/micromatch": "^4.0.1", + "@types/parse-json": "^4.0.0", + "semver": "^7.5.3", + "ts-node": "^10.5.0", + "typescript": "^5.0.4" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "publishConfig": { + "access": "public" + }, + "gitHead": "4e56991693da7cd4c3730dc3579a1dd1403ee630" +} diff --git a/server/api/node_modules/jest-diff/LICENSE b/server/api/node_modules/jest-diff/LICENSE new file mode 100644 index 0000000..b93be90 --- /dev/null +++ b/server/api/node_modules/jest-diff/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) Meta Platforms, Inc. and affiliates. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/server/api/node_modules/jest-diff/README.md b/server/api/node_modules/jest-diff/README.md new file mode 100644 index 0000000..d52f821 --- /dev/null +++ b/server/api/node_modules/jest-diff/README.md @@ -0,0 +1,671 @@ +# jest-diff + +Display differences clearly so people can review changes confidently. + +The `diff` named export serializes JavaScript **values**, compares them line-by-line, and returns a string which includes comparison lines. + +Two named exports compare **strings** character-by-character: + +- `diffStringsUnified` returns a string. +- `diffStringsRaw` returns an array of `Diff` objects. + +Three named exports compare **arrays of strings** line-by-line: + +- `diffLinesUnified` and `diffLinesUnified2` return a string. +- `diffLinesRaw` returns an array of `Diff` objects. + +## Installation + +To add this package as a dependency of a project, run either of the following commands: + +- `npm install jest-diff` +- `yarn add jest-diff` + +## Usage of `diff()` + +Given JavaScript **values**, `diff(a, b, options?)` does the following: + +1. **serialize** the values as strings using the `pretty-format` package +2. **compare** the strings line-by-line using the `diff-sequences` package +3. **format** the changed or common lines using the `chalk` package + +To use this function, write either of the following: + +- `const {diff} = require('jest-diff');` in CommonJS modules +- `import {diff} from 'jest-diff';` in ECMAScript modules + +### Example of `diff()` + +```js +const a = ['delete', 'common', 'changed from']; +const b = ['common', 'changed to', 'insert']; + +const difference = diff(a, b); +``` + +The returned **string** consists of: + +- annotation lines: describe the two change indicators with labels, and a blank line +- comparison lines: similar to “unified” view on GitHub, but `Expected` lines are green, `Received` lines are red, and common lines are dim (by default, see Options) + +```diff +- Expected ++ Received + + Array [ +- "delete", + "common", +- "changed from", ++ "changed to", ++ "insert", + ] +``` + +### Edge cases of `diff()` + +Here are edge cases for the return value: + +- `' Comparing two different types of values. …'` if the arguments have **different types** according to the `jest-get-type` package (instances of different classes have the same `'object'` type) +- `'Compared values have no visual difference.'` if the arguments have either **referential identity** according to `Object.is` method or **same serialization** according to the `pretty-format` package +- `null` if either argument is a so-called **asymmetric matcher** in Jasmine or Jest + +## Usage of diffStringsUnified + +Given **strings**, `diffStringsUnified(a, b, options?)` does the following: + +1. **compare** the strings character-by-character using the `diff-sequences` package +2. **clean up** small (often coincidental) common substrings, also known as chaff +3. **format** the changed or common lines using the `chalk` package + +Although the function is mainly for **multiline** strings, it compares any strings. + +Write either of the following: + +- `const {diffStringsUnified} = require('jest-diff');` in CommonJS modules +- `import {diffStringsUnified} from 'jest-diff';` in ECMAScript modules + +### Example of diffStringsUnified + +```js +const a = 'common\nchanged from'; +const b = 'common\nchanged to'; + +const difference = diffStringsUnified(a, b); +``` + +The returned **string** consists of: + +- annotation lines: describe the two change indicators with labels, and a blank line +- comparison lines: similar to “unified” view on GitHub, and **changed substrings** have **inverse** foreground and background colors (that is, `from` has white-on-green and `to` has white-on-red, which the following example does not show) + +```diff +- Expected ++ Received + + common +- changed from ++ changed to +``` + +### Performance of diffStringsUnified + +To get the benefit of **changed substrings** within the comparison lines, a character-by-character comparison has a higher computational cost (in time and space) than a line-by-line comparison. + +If the input strings can have **arbitrary length**, we recommend that the calling code set a limit, beyond which splits the strings, and then calls `diffLinesUnified` instead. For example, Jest falls back to line-by-line comparison if either string has length greater than 20K characters. + +## Usage of diffLinesUnified + +Given **arrays of strings**, `diffLinesUnified(aLines, bLines, options?)` does the following: + +1. **compare** the arrays line-by-line using the `diff-sequences` package +2. **format** the changed or common lines using the `chalk` package + +You might call this function when strings have been split into lines and you do not need to see changed substrings within lines. + +### Example of diffLinesUnified + +```js +const aLines = ['delete', 'common', 'changed from']; +const bLines = ['common', 'changed to', 'insert']; + +const difference = diffLinesUnified(aLines, bLines); +``` + +```diff +- Expected ++ Received + +- delete + common +- changed from ++ changed to ++ insert +``` + +### Edge cases of diffLinesUnified or diffStringsUnified + +Here are edge cases for arguments and return values: + +- both `a` and `b` are empty strings: no comparison lines +- only `a` is empty string: all comparison lines have `bColor` and `bIndicator` (see Options) +- only `b` is empty string: all comparison lines have `aColor` and `aIndicator` (see Options) +- `a` and `b` are equal non-empty strings: all comparison lines have `commonColor` and `commonIndicator` (see Options) + +## Usage of diffLinesUnified2 + +Given two **pairs** of arrays of strings, `diffLinesUnified2(aLinesDisplay, bLinesDisplay, aLinesCompare, bLinesCompare, options?)` does the following: + +1. **compare** the pair of `Compare` arrays line-by-line using the `diff-sequences` package +2. **format** the corresponding lines in the pair of `Display` arrays using the `chalk` package + +Jest calls this function to consider lines as common instead of changed if the only difference is indentation. + +You might call this function for case insensitive or Unicode equivalence comparison of lines. + +### Example of diffLinesUnified2 + +```js +import {format} from 'pretty-format'; + +const a = { + text: 'Ignore indentation in serialized object', + time: '2019-09-19T12:34:56.000Z', + type: 'CREATE_ITEM', +}; +const b = { + payload: { + text: 'Ignore indentation in serialized object', + time: '2019-09-19T12:34:56.000Z', + }, + type: 'CREATE_ITEM', +}; + +const difference = diffLinesUnified2( + // serialize with indentation to display lines + format(a).split('\n'), + format(b).split('\n'), + // serialize without indentation to compare lines + format(a, {indent: 0}).split('\n'), + format(b, {indent: 0}).split('\n'), +); +``` + +The `text` and `time` properties are common, because their only difference is indentation: + +```diff +- Expected ++ Received + + Object { ++ payload: Object { + text: 'Ignore indentation in serialized object', + time: '2019-09-19T12:34:56.000Z', ++ }, + type: 'CREATE_ITEM', + } +``` + +The preceding example illustrates why (at least for indentation) it seems more intuitive that the function returns the common line from the `bLinesDisplay` array instead of from the `aLinesDisplay` array. + +## Usage of diffStringsRaw + +Given **strings** and a boolean option, `diffStringsRaw(a, b, cleanup)` does the following: + +1. **compare** the strings character-by-character using the `diff-sequences` package +2. optionally **clean up** small (often coincidental) common substrings, also known as chaff + +Because `diffStringsRaw` returns the difference as **data** instead of a string, you can format it as your application requires (for example, enclosed in HTML markup for browser instead of escape sequences for console). + +The returned **array** describes substrings as instances of the `Diff` class, which calling code can access like array tuples: + +The value at index `0` is one of the following: + +| value | named export | description | +| ----: | :------------ | :-------------------- | +| `0` | `DIFF_EQUAL` | in `a` and in `b` | +| `-1` | `DIFF_DELETE` | in `a` but not in `b` | +| `1` | `DIFF_INSERT` | in `b` but not in `a` | + +The value at index `1` is a substring of `a` or `b` or both. + +### Example of diffStringsRaw with cleanup + +```js +const diffs = diffStringsRaw('changed from', 'changed to', true); +``` + +| `i` | `diffs[i][0]` | `diffs[i][1]` | +| --: | ------------: | :------------ | +| `0` | `0` | `'changed '` | +| `1` | `-1` | `'from'` | +| `2` | `1` | `'to'` | + +### Example of diffStringsRaw without cleanup + +```js +const diffs = diffStringsRaw('changed from', 'changed to', false); +``` + +| `i` | `diffs[i][0]` | `diffs[i][1]` | +| --: | ------------: | :------------ | +| `0` | `0` | `'changed '` | +| `1` | `-1` | `'fr'` | +| `2` | `1` | `'t'` | +| `3` | `0` | `'o'` | +| `4` | `-1` | `'m'` | + +### Advanced import for diffStringsRaw + +Here are all the named imports that you might need for the `diffStringsRaw` function: + +- `const {DIFF_DELETE, DIFF_EQUAL, DIFF_INSERT, Diff, diffStringsRaw} = require('jest-diff');` in CommonJS modules +- `import {DIFF_DELETE, DIFF_EQUAL, DIFF_INSERT, Diff, diffStringsRaw} from 'jest-diff';` in ECMAScript modules + +To write a **formatting** function, you might need the named constants (and `Diff` in TypeScript annotations). + +If you write an application-specific **cleanup** algorithm, then you might need to call the `Diff` constructor: + +```js +const diffCommon = new Diff(DIFF_EQUAL, 'changed '); +const diffDelete = new Diff(DIFF_DELETE, 'from'); +const diffInsert = new Diff(DIFF_INSERT, 'to'); +``` + +## Usage of diffLinesRaw + +Given **arrays of strings**, `diffLinesRaw(aLines, bLines)` does the following: + +- **compare** the arrays line-by-line using the `diff-sequences` package + +Because `diffLinesRaw` returns the difference as **data** instead of a string, you can format it as your application requires. + +### Example of diffLinesRaw + +```js +const aLines = ['delete', 'common', 'changed from']; +const bLines = ['common', 'changed to', 'insert']; + +const diffs = diffLinesRaw(aLines, bLines); +``` + +| `i` | `diffs[i][0]` | `diffs[i][1]` | +| --: | ------------: | :--------------- | +| `0` | `-1` | `'delete'` | +| `1` | `0` | `'common'` | +| `2` | `-1` | `'changed from'` | +| `3` | `1` | `'changed to'` | +| `4` | `1` | `'insert'` | + +### Edge case of diffLinesRaw + +If you call `string.split('\n')` for an empty string: + +- the result is `['']` an array which contains an empty string +- instead of `[]` an empty array + +Depending of your application, you might call `diffLinesRaw` with either array. + +### Example of split method + +```js +import {diffLinesRaw} from 'jest-diff'; + +const a = 'non-empty string'; +const b = ''; + +const diffs = diffLinesRaw(a.split('\n'), b.split('\n')); +``` + +| `i` | `diffs[i][0]` | `diffs[i][1]` | +| --: | ------------: | :------------------- | +| `0` | `-1` | `'non-empty string'` | +| `1` | `1` | `''` | + +Which you might format as follows: + +```diff +- Expected - 1 ++ Received + 1 + +- non-empty string ++ +``` + +### Example of splitLines0 function + +For edge case behavior like the `diffLinesUnified` function, you might define a `splitLines0` function, which given an empty string, returns `[]` an empty array: + +```js +export const splitLines0 = string => + string.length === 0 ? [] : string.split('\n'); +``` + +```js +import {diffLinesRaw} from 'jest-diff'; + +const a = ''; +const b = 'line 1\nline 2\nline 3'; + +const diffs = diffLinesRaw(a.split('\n'), b.split('\n')); +``` + +| `i` | `diffs[i][0]` | `diffs[i][1]` | +| --: | ------------: | :------------ | +| `0` | `1` | `'line 1'` | +| `1` | `1` | `'line 2'` | +| `2` | `1` | `'line 3'` | + +Which you might format as follows: + +```diff +- Expected - 0 ++ Received + 3 + ++ line 1 ++ line 2 ++ line 3 +``` + +In contrast to the `diffLinesRaw` function, the `diffLinesUnified` and `diffLinesUnified2` functions **automatically** convert array arguments computed by string `split` method, so callers do **not** need a `splitLine0` function. + +## Options + +The default options are for the report when an assertion fails from the `expect` package used by Jest. + +For other applications, you can provide an options object as a third argument: + +- `diff(a, b, options)` +- `diffStringsUnified(a, b, options)` +- `diffLinesUnified(aLines, bLines, options)` +- `diffLinesUnified2(aLinesDisplay, bLinesDisplay, aLinesCompare, bLinesCompare, options)` + +### Properties of options object + +| name | default | +| :-------------------------------- | :----------------- | +| `aAnnotation` | `'Expected'` | +| `aColor` | `chalk.green` | +| `aIndicator` | `'-'` | +| `bAnnotation` | `'Received'` | +| `bColor` | `chalk.red` | +| `bIndicator` | `'+'` | +| `changeColor` | `chalk.inverse` | +| `changeLineTrailingSpaceColor` | `string => string` | +| `commonColor` | `chalk.dim` | +| `commonIndicator` | `' '` | +| `commonLineTrailingSpaceColor` | `string => string` | +| `compareKeys` | `undefined` | +| `contextLines` | `5` | +| `emptyFirstOrLastLinePlaceholder` | `''` | +| `expand` | `true` | +| `includeChangeCounts` | `false` | +| `omitAnnotationLines` | `false` | +| `patchColor` | `chalk.yellow` | + +For more information about the options, see the following examples. + +### Example of options for labels + +If the application is code modification, you might replace the labels: + +```js +const options = { + aAnnotation: 'Original', + bAnnotation: 'Modified', +}; +``` + +```diff +- Original ++ Modified + + common +- changed from ++ changed to +``` + +The `jest-diff` package does not assume that the 2 labels have equal length. + +### Example of options for colors of changed lines + +For consistency with most diff tools, you might exchange the colors: + +```ts +import chalk = require('chalk'); + +const options = { + aColor: chalk.red, + bColor: chalk.green, +}; +``` + +### Example of option for color of changed substrings + +Although the default inverse of foreground and background colors is hard to beat for changed substrings **within lines**, especially because it highlights spaces, if you want bold font weight on yellow background color: + +```ts +import chalk = require('chalk'); + +const options = { + changeColor: chalk.bold.bgYellowBright, +}; +``` + +### Example of option to format trailing spaces + +Because `diff()` does not display substring differences within lines, formatting can help you see when lines differ by the presence or absence of trailing spaces found by `/\s+$/` regular expression. + +- If change lines have a background color, then you can see trailing spaces. +- If common lines have default dim color, then you cannot see trailing spaces. You might want yellowish background color to see them. + +```js +const options = { + aColor: chalk.rgb(128, 0, 128).bgRgb(255, 215, 255), // magenta + bColor: chalk.rgb(0, 95, 0).bgRgb(215, 255, 215), // green + commonLineTrailingSpaceColor: chalk.bgYellow, +}; +``` + +The value of a Color option is a function, which given a string, returns a string. + +If you want to replace trailing spaces with middle dot characters: + +```js +const replaceSpacesWithMiddleDot = string => '·'.repeat(string.length); + +const options = { + changeLineTrailingSpaceColor: replaceSpacesWithMiddleDot, + commonLineTrailingSpaceColor: replaceSpacesWithMiddleDot, +}; +``` + +If you need the TypeScript type of a Color option: + +```ts +import {DiffOptionsColor} from 'jest-diff'; +``` + +### Example of options for no colors + +To store the difference in a file without escape codes for colors, provide an identity function: + +```js +const noColor = string => string; + +const options = { + aColor: noColor, + bColor: noColor, + changeColor: noColor, + commonColor: noColor, + patchColor: noColor, +}; +``` + +### Example of options for indicators + +For consistency with the `diff` command, you might replace the indicators: + +```js +const options = { + aIndicator: '<', + bIndicator: '>', +}; +``` + +The `jest-diff` package assumes (but does not enforce) that the 3 indicators have equal length. + +### Example of options to limit common lines + +By default, the output includes all common lines. + +To emphasize the changes, you might limit the number of common “context” lines: + +```js +const options = { + contextLines: 1, + expand: false, +}; +``` + +A patch mark like `@@ -12,7 +12,9 @@` accounts for omitted common lines. + +### Example of option for color of patch marks + +If you want patch marks to have the same dim color as common lines: + +```ts +import chalk = require('chalk'); + +const options = { + expand: false, + patchColor: chalk.dim, +}; +``` + +### Example of option to include change counts + +To display the number of changed lines at the right of annotation lines: + +```js +const a = ['common', 'changed from']; +const b = ['common', 'changed to', 'insert']; + +const options = { + includeChangeCounts: true, +}; + +const difference = diff(a, b, options); +``` + +```diff +- Expected - 1 ++ Received + 2 + + Array [ + "common", +- "changed from", ++ "changed to", ++ "insert", + ] +``` + +### Example of option to omit annotation lines + +To display only the comparison lines: + +```js +const a = 'common\nchanged from'; +const b = 'common\nchanged to'; + +const options = { + omitAnnotationLines: true, +}; + +const difference = diffStringsUnified(a, b, options); +``` + +```diff + common +- changed from ++ changed to +``` + +### Example of option for empty first or last lines + +If the **first** or **last** comparison line is **empty**, because the content is empty and the indicator is a space, you might not notice it. + +The replacement option is a string whose default value is `''` empty string. + +Because Jest trims the report when a matcher fails, it deletes an empty last line. + +Therefore, Jest uses as placeholder the downwards arrow with corner leftwards: + +```js +const options = { + emptyFirstOrLastLinePlaceholder: '↵', // U+21B5 +}; +``` + +If a content line is empty, then the corresponding comparison line is automatically trimmed to remove the margin space (represented as a middle dot below) for the default indicators: + +| Indicator | untrimmed | trimmed | +| ----------------: | :-------- | :------ | +| `aIndicator` | `'-·'` | `'-'` | +| `bIndicator` | `'+·'` | `'+'` | +| `commonIndicator` | `' ·'` | `''` | + +### Example of option for sorting object keys + +When two objects are compared their keys are printed in alphabetical order by default. If this was not the original order of the keys the diff becomes harder to read as the keys are not in their original position. + +Use `compareKeys` to pass a function which will be used when sorting the object keys. + +```js +const a = {c: 'c', b: 'b1', a: 'a'}; +const b = {c: 'c', b: 'b2', a: 'a'}; + +const options = { + // The keys will be in their original order + compareKeys: () => 0, +}; + +const difference = diff(a, b, options); +``` + +```diff +- Expected ++ Received + + Object { + "c": "c", +- "b": "b1", ++ "b": "b2", + "a": "a", + } +``` + +Depending on the implementation of `compareKeys` any sort order can be used. + +```js +const a = {c: 'c', b: 'b1', a: 'a'}; +const b = {c: 'c', b: 'b2', a: 'a'}; + +const options = { + // The keys will be in reverse order + compareKeys: (a, b) => (a > b ? -1 : 1), +}; + +const difference = diff(a, b, options); +``` + +```diff +- Expected ++ Received + + Object { + "a": "a", +- "b": "b1", ++ "b": "b2", + "c": "c", + } +``` diff --git a/server/api/node_modules/jest-diff/package.json b/server/api/node_modules/jest-diff/package.json new file mode 100644 index 0000000..41a1d23 --- /dev/null +++ b/server/api/node_modules/jest-diff/package.json @@ -0,0 +1,36 @@ +{ + "name": "jest-diff", + "version": "29.7.0", + "repository": { + "type": "git", + "url": "https://github.com/jestjs/jest.git", + "directory": "packages/jest-diff" + }, + "license": "MIT", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": { + "types": "./build/index.d.ts", + "default": "./build/index.js" + }, + "./package.json": "./package.json" + }, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "devDependencies": { + "@jest/test-utils": "^29.7.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "publishConfig": { + "access": "public" + }, + "gitHead": "4e56991693da7cd4c3730dc3579a1dd1403ee630" +} diff --git a/server/api/node_modules/jest-docblock/LICENSE b/server/api/node_modules/jest-docblock/LICENSE new file mode 100644 index 0000000..b93be90 --- /dev/null +++ b/server/api/node_modules/jest-docblock/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) Meta Platforms, Inc. and affiliates. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/server/api/node_modules/jest-docblock/README.md b/server/api/node_modules/jest-docblock/README.md new file mode 100644 index 0000000..ba3fc7b --- /dev/null +++ b/server/api/node_modules/jest-docblock/README.md @@ -0,0 +1,108 @@ +# jest-docblock + +`jest-docblock` is a package that can extract and parse a specially-formatted comment called a "docblock" at the top of a file. + +A docblock looks like this: + +```js +/** + * Stuff goes here! + */ +``` + +Docblocks can contain pragmas, which are words prefixed by `@`: + +```js +/** + * Pragma incoming! + * + * @flow + */ +``` + +Pragmas can also take arguments: + +```js +/** + * Check this out: + * + * @myPragma it is so cool + */ +``` + +`jest-docblock` can: + +- extract the docblock from some code as a string +- parse a docblock string's pragmas into an object +- print an object and some comments back to a string + +## Installation + +```sh +# with yarn +$ yarn add jest-docblock +# with npm +$ npm install jest-docblock +``` + +## Usage + +```js +const code = ` +/** + * Everything is awesome! + * + * @everything is:awesome + * @flow + */ + + export const everything = Object.create(null); + export default function isAwesome(something) { + return something === everything; + } +`; + +const { + extract, + strip, + parse, + parseWithComments, + print, +} = require('jest-docblock'); + +const docblock = extract(code); +console.log(docblock); // "/**\n * Everything is awesome!\n * \n * @everything is:awesome\n * @flow\n */" + +const stripped = strip(code); +console.log(stripped); // "export const everything = Object.create(null);\n export default function isAwesome(something) {\n return something === everything;\n }" + +const pragmas = parse(docblock); +console.log(pragmas); // { everything: "is:awesome", flow: "" } + +const parsed = parseWithComments(docblock); +console.log(parsed); // { comments: "Everything is awesome!", pragmas: { everything: "is:awesome", flow: "" } } + +console.log(print({pragmas, comments: 'hi!'})); // /**\n * hi!\n *\n * @everything is:awesome\n * @flow\n */; +``` + +## API Documentation + +### `extract(contents: string): string` + +Extracts a docblock from some file contents. Returns the docblock contained in `contents`. If `contents` did not contain a docblock, it will return the empty string (`""`). + +### `strip(contents: string): string` + +Strips the top docblock from a file and return the result. If a file does not have a docblock at the top, then return the file unchanged. + +### `parse(docblock: string): {[key: string]: string | string[] }` + +Parses the pragmas in a docblock string into an object whose keys are the pragma tags and whose values are the arguments to those pragmas. + +### `parseWithComments(docblock: string): { comments: string, pragmas: {[key: string]: string | string[]} }` + +Similar to `parse` except this method also returns the comments from the docblock. Useful when used with `print()`. + +### `print({ comments?: string, pragmas?: {[key: string]: string | string[]} }): string` + +Prints an object of key-value pairs back into a docblock. If `comments` are provided, they will be positioned on the top of the docblock. diff --git a/server/api/node_modules/jest-docblock/package.json b/server/api/node_modules/jest-docblock/package.json new file mode 100644 index 0000000..22432f8 --- /dev/null +++ b/server/api/node_modules/jest-docblock/package.json @@ -0,0 +1,32 @@ +{ + "name": "jest-docblock", + "version": "29.7.0", + "repository": { + "type": "git", + "url": "https://github.com/jestjs/jest.git", + "directory": "packages/jest-docblock" + }, + "license": "MIT", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": { + "types": "./build/index.d.ts", + "default": "./build/index.js" + }, + "./package.json": "./package.json" + }, + "dependencies": { + "detect-newline": "^3.0.0" + }, + "devDependencies": { + "@types/node": "*" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "publishConfig": { + "access": "public" + }, + "gitHead": "4e56991693da7cd4c3730dc3579a1dd1403ee630" +} diff --git a/server/api/node_modules/jest-each/LICENSE b/server/api/node_modules/jest-each/LICENSE new file mode 100644 index 0000000..b93be90 --- /dev/null +++ b/server/api/node_modules/jest-each/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) Meta Platforms, Inc. and affiliates. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/server/api/node_modules/jest-each/README.md b/server/api/node_modules/jest-each/README.md new file mode 100644 index 0000000..3b43843 --- /dev/null +++ b/server/api/node_modules/jest-each/README.md @@ -0,0 +1,548 @@ +
+

jest-each

+ Jest Parameterised Testing +
+ +
+ +[![version](https://img.shields.io/npm/v/jest-each.svg?style=flat-square)](https://www.npmjs.com/package/jest-each) [![downloads](https://img.shields.io/npm/dm/jest-each.svg?style=flat-square)](http://npm-stat.com/charts.html?package=jest-each&from=2017-03-21) [![MIT License](https://img.shields.io/npm/l/jest-each.svg?style=flat-square)](https://github.com/jestjs/jest/blob/main/LICENSE) + +A parameterised testing library for [Jest](https://jestjs.io/) inspired by [mocha-each](https://github.com/ryym/mocha-each). + +jest-each allows you to provide multiple arguments to your `test`/`describe` which results in the test/suite being run once per row of parameters. + +## Features + +- `.test` to runs multiple tests with parameterised data + - Also under the alias: `.it` +- `.test.only` to only run the parameterised tests + - Also under the aliases: `.it.only` or `.fit` +- `.test.skip` to skip the parameterised tests + - Also under the aliases: `.it.skip` or `.xit` or `.xtest` +- `.test.concurrent` + - Also under the alias: `.it.concurrent` +- `.test.concurrent.only` + - Also under the alias: `.it.concurrent.only` +- `.test.concurrent.skip` + - Also under the alias: `.it.concurrent.skip` +- `.describe` to runs test suites with parameterised data +- `.describe.only` to only run the parameterised suite of tests + - Also under the aliases: `.fdescribe` +- `.describe.skip` to skip the parameterised suite of tests + - Also under the aliases: `.xdescribe` +- Asynchronous tests with `done` +- Unique test titles with [`printf` formatting](https://nodejs.org/api/util.html#util_util_format_format_args): + - `%p` - [pretty-format](https://www.npmjs.com/package/pretty-format). + - `%s`- String. + - `%d`- Number. + - `%i` - Integer. + - `%f` - Floating point value. + - `%j` - JSON. + - `%o` - Object. + - `%#` - Index of the test case. + - `%%` - single percent sign ('%'). This does not consume an argument. +- Unique test titles by injecting properties of test case object +- 🖖 Spock like data tables with [Tagged Template Literals](#tagged-template-literal-of-rows) + +--- + +- [Demo](#demo) +- [Installation](#installation) +- [Importing](#importing) +- APIs + - [Array of Rows](#array-of-rows) + - [Usage](#usage) + - [Tagged Template Literal of rows](#tagged-template-literal-of-rows) + - [Usage](#usage-1) + +## Demo + +#### Tests without jest-each + +![Current jest tests](assets/default-demo.gif) + +#### Tests can be re-written with jest-each to: + +**`.test`** + +![Current jest tests](assets/test-demo.gif) + +**`.test` with Tagged Template Literals** + +![Current jest tests](assets/tagged-template-literal.gif) + +**`.describe`** + +![Current jest tests](assets/describe-demo.gif) + +## Installation + +`npm i --save-dev jest-each` + +`yarn add -D jest-each` + +## Importing + +jest-each is a default export so it can be imported with whatever name you like. + +```js +// es6 +import each from 'jest-each'; +``` + +```js +// es5 +const each = require('jest-each').default; +``` + +## Array of rows + +### API + +#### `each([parameters]).test(name, testFn)` + +##### `each`: + +- parameters: `Array` of Arrays with the arguments that are passed into the `testFn` for each row + - _Note_ If you pass in a 1D array of primitives, internally it will be mapped to a table i.e. `[1, 2, 3] -> [[1], [2], [3]]` + +##### `.test`: + +- name: `String` the title of the `test`. + - Generate unique test titles by positionally injecting parameters with [`printf` formatting](https://nodejs.org/api/util.html#util_util_format_format_args): + - `%p` - [pretty-format](https://www.npmjs.com/package/pretty-format). + - `%s`- String. + - `%d`- Number. + - `%i` - Integer. + - `%f` - Floating point value. + - `%j` - JSON. + - `%o` - Object. + - `%#` - Index of the test case. + - `%%` - single percent sign ('%'). This does not consume an argument. + - Or generate unique test titles by injecting properties of test case object with `$variable` + - To inject nested object values use you can supply a keyPath i.e. `$variable.path.to.value` + - You can use `$#` to inject the index of the test case + - You cannot use `$variable` with the `printf` formatting except for `%%` +- testFn: `Function` the test logic, this is the function that will receive the parameters of each row as function arguments + +#### `each([parameters]).describe(name, suiteFn)` + +##### `each`: + +- parameters: `Array` of Arrays with the arguments that are passed into the `suiteFn` for each row + - _Note_ If you pass in a 1D array of primitives, internally it will be mapped to a table i.e. `[1, 2, 3] -> [[1], [2], [3]]` + +##### `.describe`: + +- name: `String` the title of the `describe` + - Generate unique test titles by positionally injecting parameters with [`printf` formatting](https://nodejs.org/api/util.html#util_util_format_format_args): + - `%p` - [pretty-format](https://www.npmjs.com/package/pretty-format). + - `%s`- String. + - `%d`- Number. + - `%i` - Integer. + - `%f` - Floating point value. + - `%j` - JSON. + - `%o` - Object. + - `%#` - Index of the test case. + - `%%` - single percent sign ('%'). This does not consume an argument. + - Or generate unique test titles by injecting properties of test case object with `$variable` + - To inject nested object values use you can supply a keyPath i.e. `$variable.path.to.value` + - You can use `$#` to inject the index of the test case + - You cannot use `$variable` with the `printf` formatting except for `%%` +- suiteFn: `Function` the suite of `test`/`it`s to be ran, this is the function that will receive the parameters in each row as function arguments + +### Usage + +#### `.test(name, fn)` + +Alias: `.it(name, fn)` + +```js +each([ + [1, 1, 2], + [1, 2, 3], + [2, 1, 3], +]).test('returns the result of adding %d to %d', (a, b, expected) => { + expect(a + b).toBe(expected); +}); +``` + +```js +each([ + {a: 1, b: 1, expected: 2}, + {a: 1, b: 2, expected: 3}, + {a: 2, b: 1, expected: 3}, +]).test('returns the result of adding $a to $b', ({a, b, expected}) => { + expect(a + b).toBe(expected); +}); +``` + +#### `.test.only(name, fn)` + +Aliases: `.it.only(name, fn)` or `.fit(name, fn)` + +```js +each([ + [1, 1, 2], + [1, 2, 3], + [2, 1, 3], +]).test.only('returns the result of adding %d to %d', (a, b, expected) => { + expect(a + b).toBe(expected); +}); +``` + +#### `.test.skip(name, fn)` + +Aliases: `.it.skip(name, fn)` or `.xit(name, fn)` or `.xtest(name, fn)` + +```js +each([ + [1, 1, 2], + [1, 2, 3], + [2, 1, 3], +]).test.skip('returns the result of adding %d to %d', (a, b, expected) => { + expect(a + b).toBe(expected); +}); +``` + +#### `.test.concurrent(name, fn)` + +Aliases: `.it.concurrent(name, fn)` + +```js +each([ + [1, 1, 2], + [1, 2, 3], + [2, 1, 3], +]).test.concurrent( + 'returns the result of adding %d to %d', + (a, b, expected) => { + expect(a + b).toBe(expected); + }, +); +``` + +#### `.test.concurrent.only(name, fn)` + +Aliases: `.it.concurrent.only(name, fn)` + +```js +each([ + [1, 1, 2], + [1, 2, 3], + [2, 1, 3], +]).test.concurrent.only( + 'returns the result of adding %d to %d', + (a, b, expected) => { + expect(a + b).toBe(expected); + }, +); +``` + +#### `.test.concurrent.skip(name, fn)` + +Aliases: `.it.concurrent.skip(name, fn)` + +```js +each([ + [1, 1, 2], + [1, 2, 3], + [2, 1, 3], +]).test.concurrent.skip( + 'returns the result of adding %d to %d', + (a, b, expected) => { + expect(a + b).toBe(expected); + }, +); +``` + +#### Asynchronous `.test(name, fn(done))` + +Alias: `.it(name, fn(done))` + +```js +each([['hello'], ['mr'], ['spy']]).test( + 'gives 007 secret message: %s', + (str, done) => { + const asynchronousSpy = message => { + expect(message).toBe(str); + done(); + }; + callSomeAsynchronousFunction(asynchronousSpy)(str); + }, +); +``` + +#### `.describe(name, fn)` + +```js +each([ + [1, 1, 2], + [1, 2, 3], + [2, 1, 3], +]).describe('.add(%d, %d)', (a, b, expected) => { + test(`returns ${expected}`, () => { + expect(a + b).toBe(expected); + }); + + test('does not mutate first arg', () => { + a + b; + expect(a).toBe(a); + }); + + test('does not mutate second arg', () => { + a + b; + expect(b).toBe(b); + }); +}); +``` + +```js +each([ + {a: 1, b: 1, expected: 2}, + {a: 1, b: 2, expected: 3}, + {a: 2, b: 1, expected: 3}, +]).describe('.add($a, $b)', ({a, b, expected}) => { + test(`returns ${expected}`, () => { + expect(a + b).toBe(expected); + }); + + test('does not mutate first arg', () => { + a + b; + expect(a).toBe(a); + }); + + test('does not mutate second arg', () => { + a + b; + expect(b).toBe(b); + }); +}); +``` + +#### `.describe.only(name, fn)` + +Aliases: `.fdescribe(name, fn)` + +```js +each([ + [1, 1, 2], + [1, 2, 3], + [2, 1, 3], +]).describe.only('.add(%d, %d)', (a, b, expected) => { + test(`returns ${expected}`, () => { + expect(a + b).toBe(expected); + }); +}); +``` + +#### `.describe.skip(name, fn)` + +Aliases: `.xdescribe(name, fn)` + +```js +each([ + [1, 1, 2], + [1, 2, 3], + [2, 1, 3], +]).describe.skip('.add(%d, %d)', (a, b, expected) => { + test(`returns ${expected}`, () => { + expect(a + b).toBe(expected); + }); +}); +``` + +--- + +## Tagged Template Literal of rows + +### API + +#### `each[tagged template].test(name, suiteFn)` + +```js +each` + a | b | expected + ${1} | ${1} | ${2} + ${1} | ${2} | ${3} + ${2} | ${1} | ${3} +`.test('returns $expected when adding $a to $b', ({a, b, expected}) => { + expect(a + b).toBe(expected); +}); +``` + +##### `each` takes a tagged template string with: + +- First row of variable name column headings separated with `|` +- One or more subsequent rows of data supplied as template literal expressions using `${value}` syntax. + +##### `.test`: + +- name: `String` the title of the `test`, use `$variable` in the name string to inject test values into the test title from the tagged template expressions + - To inject nested object values use you can supply a keyPath i.e. `$variable.path.to.value` + - You can use `$#` to inject the index of the table row. +- testFn: `Function` the test logic, this is the function that will receive the parameters of each row as function arguments + +#### `each[tagged template].describe(name, suiteFn)` + +```js +each` + a | b | expected + ${1} | ${1} | ${2} + ${1} | ${2} | ${3} + ${2} | ${1} | ${3} +`.describe('$a + $b', ({a, b, expected}) => { + test(`returns ${expected}`, () => { + expect(a + b).toBe(expected); + }); + + test('does not mutate first arg', () => { + a + b; + expect(a).toBe(a); + }); + + test('does not mutate second arg', () => { + a + b; + expect(b).toBe(b); + }); +}); +``` + +##### `each` takes a tagged template string with: + +- First row of variable name column headings separated with `|` +- One or more subsequent rows of data supplied as template literal expressions using `${value}` syntax. + +##### `.describe`: + +- name: `String` the title of the `test`, use `$variable` in the name string to inject test values into the test title from the tagged template expressions + - To inject nested object values use you can supply a keyPath i.e. `$variable.path.to.value` +- suiteFn: `Function` the suite of `test`/`it`s to be ran, this is the function that will receive the parameters in each row as function arguments + +### Usage + +#### `.test(name, fn)` + +Alias: `.it(name, fn)` + +```js +each` + a | b | expected + ${1} | ${1} | ${2} + ${1} | ${2} | ${3} + ${2} | ${1} | ${3} +`.test('returns $expected when adding $a to $b', ({a, b, expected}) => { + expect(a + b).toBe(expected); +}); +``` + +#### `.test.only(name, fn)` + +Aliases: `.it.only(name, fn)` or `.fit(name, fn)` + +```js +each` + a | b | expected + ${1} | ${1} | ${2} + ${1} | ${2} | ${3} + ${2} | ${1} | ${3} +`.test.only('returns $expected when adding $a to $b', ({a, b, expected}) => { + expect(a + b).toBe(expected); +}); +``` + +#### `.test.skip(name, fn)` + +Aliases: `.it.skip(name, fn)` or `.xit(name, fn)` or `.xtest(name, fn)` + +```js +each` + a | b | expected + ${1} | ${1} | ${2} + ${1} | ${2} | ${3} + ${2} | ${1} | ${3} +`.test.skip('returns $expected when adding $a to $b', ({a, b, expected}) => { + expect(a + b).toBe(expected); +}); +``` + +#### Asynchronous `.test(name, fn(done))` + +Alias: `.it(name, fn(done))` + +```js +each` + str + ${'hello'} + ${'mr'} + ${'spy'} +`.test('gives 007 secret message: $str', ({str}, done) => { + const asynchronousSpy = message => { + expect(message).toBe(str); + done(); + }; + callSomeAsynchronousFunction(asynchronousSpy)(str); +}); +``` + +#### `.describe(name, fn)` + +```js +each` + a | b | expected + ${1} | ${1} | ${2} + ${1} | ${2} | ${3} + ${2} | ${1} | ${3} +`.describe('$a + $b', ({a, b, expected}) => { + test(`returns ${expected}`, () => { + expect(a + b).toBe(expected); + }); + + test('does not mutate first arg', () => { + a + b; + expect(a).toBe(a); + }); + + test('does not mutate second arg', () => { + a + b; + expect(b).toBe(b); + }); +}); +``` + +#### `.describe.only(name, fn)` + +Aliases: `.fdescribe(name, fn)` + +```js +each` + a | b | expected + ${1} | ${1} | ${2} + ${1} | ${2} | ${3} + ${2} | ${1} | ${3} +`.describe.only('$a + $b', ({a, b, expected}) => { + test(`returns ${expected}`, () => { + expect(a + b).toBe(expected); + }); +}); +``` + +#### `.describe.skip(name, fn)` + +Aliases: `.xdescribe(name, fn)` + +```js +each` + a | b | expected + ${1} | ${1} | ${2} + ${1} | ${2} | ${3} + ${2} | ${1} | ${3} +`.describe.skip('$a + $b', ({a, b, expected}) => { + test(`returns ${expected}`, () => { + expect(a + b).toBe(expected); + }); +}); +``` + +## License + +MIT diff --git a/server/api/node_modules/jest-each/package.json b/server/api/node_modules/jest-each/package.json new file mode 100644 index 0000000..a271f71 --- /dev/null +++ b/server/api/node_modules/jest-each/package.json @@ -0,0 +1,41 @@ +{ + "name": "jest-each", + "version": "29.7.0", + "description": "Parameterised tests for Jest", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": { + "types": "./build/index.d.ts", + "default": "./build/index.js" + }, + "./package.json": "./package.json" + }, + "repository": { + "type": "git", + "url": "https://github.com/jestjs/jest.git", + "directory": "packages/jest-each" + }, + "keywords": [ + "jest", + "parameterised", + "test", + "each" + ], + "author": "Matt Phillips (mattphillips)", + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "publishConfig": { + "access": "public" + }, + "gitHead": "4e56991693da7cd4c3730dc3579a1dd1403ee630" +} diff --git a/server/api/node_modules/jest-environment-node/LICENSE b/server/api/node_modules/jest-environment-node/LICENSE new file mode 100644 index 0000000..b93be90 --- /dev/null +++ b/server/api/node_modules/jest-environment-node/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) Meta Platforms, Inc. and affiliates. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/server/api/node_modules/jest-environment-node/package.json b/server/api/node_modules/jest-environment-node/package.json new file mode 100644 index 0000000..c1c7d19 --- /dev/null +++ b/server/api/node_modules/jest-environment-node/package.json @@ -0,0 +1,37 @@ +{ + "name": "jest-environment-node", + "version": "29.7.0", + "repository": { + "type": "git", + "url": "https://github.com/jestjs/jest.git", + "directory": "packages/jest-environment-node" + }, + "license": "MIT", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": { + "types": "./build/index.d.ts", + "default": "./build/index.js" + }, + "./package.json": "./package.json" + }, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "devDependencies": { + "@jest/test-utils": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "publishConfig": { + "access": "public" + }, + "gitHead": "4e56991693da7cd4c3730dc3579a1dd1403ee630" +} diff --git a/server/api/node_modules/jest-get-type/LICENSE b/server/api/node_modules/jest-get-type/LICENSE new file mode 100644 index 0000000..b93be90 --- /dev/null +++ b/server/api/node_modules/jest-get-type/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) Meta Platforms, Inc. and affiliates. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/server/api/node_modules/jest-get-type/package.json b/server/api/node_modules/jest-get-type/package.json new file mode 100644 index 0000000..ffd8a15 --- /dev/null +++ b/server/api/node_modules/jest-get-type/package.json @@ -0,0 +1,27 @@ +{ + "name": "jest-get-type", + "description": "A utility function to get the type of a value", + "version": "29.6.3", + "repository": { + "type": "git", + "url": "https://github.com/jestjs/jest.git", + "directory": "packages/jest-get-type" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "license": "MIT", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": { + "types": "./build/index.d.ts", + "default": "./build/index.js" + }, + "./package.json": "./package.json" + }, + "publishConfig": { + "access": "public" + }, + "gitHead": "fb7d95c8af6e0d65a8b65348433d8a0ea0725b5b" +} diff --git a/server/api/node_modules/jest-haste-map/LICENSE b/server/api/node_modules/jest-haste-map/LICENSE new file mode 100644 index 0000000..b93be90 --- /dev/null +++ b/server/api/node_modules/jest-haste-map/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) Meta Platforms, Inc. and affiliates. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/server/api/node_modules/jest-haste-map/package.json b/server/api/node_modules/jest-haste-map/package.json new file mode 100644 index 0000000..ee459fd --- /dev/null +++ b/server/api/node_modules/jest-haste-map/package.json @@ -0,0 +1,47 @@ +{ + "name": "jest-haste-map", + "version": "29.7.0", + "repository": { + "type": "git", + "url": "https://github.com/jestjs/jest.git", + "directory": "packages/jest-haste-map" + }, + "license": "MIT", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": { + "types": "./build/index.d.ts", + "default": "./build/index.js" + }, + "./package.json": "./package.json" + }, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + }, + "devDependencies": { + "@types/fb-watchman": "^2.0.0", + "@types/micromatch": "^4.0.1", + "slash": "^3.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "publishConfig": { + "access": "public" + }, + "gitHead": "4e56991693da7cd4c3730dc3579a1dd1403ee630" +} diff --git a/server/api/node_modules/jest-leak-detector/LICENSE b/server/api/node_modules/jest-leak-detector/LICENSE new file mode 100644 index 0000000..b93be90 --- /dev/null +++ b/server/api/node_modules/jest-leak-detector/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) Meta Platforms, Inc. and affiliates. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/server/api/node_modules/jest-leak-detector/README.md b/server/api/node_modules/jest-leak-detector/README.md new file mode 100644 index 0000000..5e650b7 --- /dev/null +++ b/server/api/node_modules/jest-leak-detector/README.md @@ -0,0 +1,27 @@ +# jest-leak-detector + +Module for verifying whether an object has been garbage collected or not. + +Internally creates a weak reference to the object, and forces garbage collection to happen. If the reference is gone, it meant no one else was pointing to the object. + +## Example + +```javascript +(async function () { + let reference = {}; + let isLeaking; + + const detector = new LeakDetector(reference); + + // Reference is held in memory. + isLeaking = await detector.isLeaking(); + console.log(isLeaking); // true + + // We destroy the only reference to the object. + reference = null; + + // Reference is gone. + isLeaking = await detector.isLeaking(); + console.log(isLeaking); // false +})(); +``` diff --git a/server/api/node_modules/jest-leak-detector/package.json b/server/api/node_modules/jest-leak-detector/package.json new file mode 100644 index 0000000..3cb14af --- /dev/null +++ b/server/api/node_modules/jest-leak-detector/package.json @@ -0,0 +1,33 @@ +{ + "name": "jest-leak-detector", + "version": "29.7.0", + "repository": { + "type": "git", + "url": "https://github.com/jestjs/jest.git", + "directory": "packages/jest-leak-detector" + }, + "license": "MIT", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": { + "types": "./build/index.d.ts", + "default": "./build/index.js" + }, + "./package.json": "./package.json" + }, + "dependencies": { + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "devDependencies": { + "@types/node": "*" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "publishConfig": { + "access": "public" + }, + "gitHead": "4e56991693da7cd4c3730dc3579a1dd1403ee630" +} diff --git a/server/api/node_modules/jest-matcher-utils/LICENSE b/server/api/node_modules/jest-matcher-utils/LICENSE new file mode 100644 index 0000000..b93be90 --- /dev/null +++ b/server/api/node_modules/jest-matcher-utils/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) Meta Platforms, Inc. and affiliates. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/server/api/node_modules/jest-matcher-utils/README.md b/server/api/node_modules/jest-matcher-utils/README.md new file mode 100644 index 0000000..17e19c2 --- /dev/null +++ b/server/api/node_modules/jest-matcher-utils/README.md @@ -0,0 +1,24 @@ +# jest-matcher-utils + +This package's exports are most notably used by `expect`'s [`this.utils`](https://jestjs.io/docs/expect#thisutils). + +## Installation + +To add this package as a dependency of a project, run either of the following commands: + +- `npm install jest-matcher-utils` +- `yarn add jest-matcher-utils` + +## Exports ([src/index.ts](https://github.com/jestjs/jest/blob/HEAD/packages/jest-matcher-utils/src/index.ts)) + +### Functions + +`stringify` `highlightTrailingWhitespace` `printReceived` `printExpected` `printWithType` `ensureNoExpected` `ensureActualIsNumber` `ensureExpectedIsNumber` `ensureNumbers` `ensureExpectedIsNonNegativeInteger` `printDiffOrStringify` `diff` `pluralize` `getLabelPrinter` `matcherErrorMessage` `matcherHint` + +### Types + +`MatcherHintOptions` `DiffOptions` + +### Constants + +`EXPECTED_COLOR` `RECEIVED_COLOR` `INVERTED_COLOR` `BOLD_WEIGHT` `DIM_COLOR` `SUGGEST_TO_CONTAIN_EQUAL` diff --git a/server/api/node_modules/jest-matcher-utils/package.json b/server/api/node_modules/jest-matcher-utils/package.json new file mode 100644 index 0000000..aa2a50a --- /dev/null +++ b/server/api/node_modules/jest-matcher-utils/package.json @@ -0,0 +1,37 @@ +{ + "name": "jest-matcher-utils", + "description": "A set of utility functions for expect and related packages", + "version": "29.7.0", + "repository": { + "type": "git", + "url": "https://github.com/jestjs/jest.git", + "directory": "packages/jest-matcher-utils" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "license": "MIT", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": { + "types": "./build/index.d.ts", + "default": "./build/index.js" + }, + "./package.json": "./package.json" + }, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "devDependencies": { + "@jest/test-utils": "^29.7.0", + "@types/node": "*" + }, + "publishConfig": { + "access": "public" + }, + "gitHead": "4e56991693da7cd4c3730dc3579a1dd1403ee630" +} diff --git a/server/api/node_modules/jest-message-util/LICENSE b/server/api/node_modules/jest-message-util/LICENSE new file mode 100644 index 0000000..b93be90 --- /dev/null +++ b/server/api/node_modules/jest-message-util/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) Meta Platforms, Inc. and affiliates. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/server/api/node_modules/jest-message-util/package.json b/server/api/node_modules/jest-message-util/package.json new file mode 100644 index 0000000..8accd3f --- /dev/null +++ b/server/api/node_modules/jest-message-util/package.json @@ -0,0 +1,43 @@ +{ + "name": "jest-message-util", + "version": "29.7.0", + "repository": { + "type": "git", + "url": "https://github.com/jestjs/jest.git", + "directory": "packages/jest-message-util" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "license": "MIT", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": { + "types": "./build/index.d.ts", + "default": "./build/index.js" + }, + "./package.json": "./package.json" + }, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "devDependencies": { + "@types/babel__code-frame": "^7.0.0", + "@types/graceful-fs": "^4.1.3", + "@types/micromatch": "^4.0.1", + "tempy": "^1.0.0" + }, + "publishConfig": { + "access": "public" + }, + "gitHead": "4e56991693da7cd4c3730dc3579a1dd1403ee630" +} diff --git a/server/api/node_modules/jest-mock/LICENSE b/server/api/node_modules/jest-mock/LICENSE new file mode 100644 index 0000000..b93be90 --- /dev/null +++ b/server/api/node_modules/jest-mock/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) Meta Platforms, Inc. and affiliates. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/server/api/node_modules/jest-mock/README.md b/server/api/node_modules/jest-mock/README.md new file mode 100644 index 0000000..41588a0 --- /dev/null +++ b/server/api/node_modules/jest-mock/README.md @@ -0,0 +1,106 @@ +# jest-mock + +**Note:** More details on user side API can be found in [Jest documentation](https://jestjs.io/docs/mock-function-api). + +## API + +```js +import {ModuleMocker} from 'jest-mock'; +``` + +### `constructor(global)` + +Creates a new module mocker that generates mocks as if they were created in an environment with the given global object. + +### `generateFromMetadata(metadata)` + +Generates a mock based on the given metadata (Metadata for the mock in the schema returned by the `getMetadata()` method of this module). Mocks treat functions specially, and all mock functions have additional members, described in the documentation for `fn()` in this module. + +One important note: function prototypes are handled specially by this mocking framework. For functions with prototypes, when called as a constructor, the mock will install mocked function members on the instance. This allows different instances of the same constructor to have different values for its mocks member and its return values. + +### `getMetadata(component)` + +Inspects the argument and returns its schema in the following recursive format: + +``` +{ + type: ... + members: {} +} +``` + +Where type is one of `array`, `object`, `function`, or `ref`, and members is an optional dictionary where the keys are member names and the values are metadata objects. Function prototypes are defined by defining metadata for the `member.prototype` of the function. The type of a function prototype should always be `object`. For instance, a class might be defined like this: + +```js +const classDef = { + type: 'function', + members: { + staticMethod: {type: 'function'}, + prototype: { + type: 'object', + members: { + instanceMethod: {type: 'function'}, + }, + }, + }, +}; +``` + +Metadata may also contain references to other objects defined within the same metadata object. The metadata for the referent must be marked with `refID` key and an arbitrary value. The referrer must be marked with a `ref` key that has the same value as object with refID that it refers to. For instance, this metadata blob: + +```js +const refID = { + type: 'object', + refID: 1, + members: { + self: {ref: 1}, + }, +}; +``` + +Defines an object with a slot named `self` that refers back to the object. + +### `fn(implementation?)` + +Generates a stand-alone function with members that help drive unit tests or confirm expectations. Specifically, functions returned by this method have the following members: + +##### `.mock` + +An object with three members, `calls`, `instances` and `invocationCallOrder`, which are all lists. The items in the `calls` list are the arguments with which the function was called. The "instances" list stores the value of 'this' for each call to the function. This is useful for retrieving instances from a constructor. The `invocationCallOrder` lists the order in which the mock was called in relation to all mock calls, starting at 1. + +##### `.mockReturnValueOnce(value)` + +Pushes the given value onto a FIFO queue of return values for the function. + +##### `.mockReturnValue(value)` + +Sets the default return value for the function. + +##### `.mockImplementationOnce(function)` + +Pushes the given mock implementation onto a FIFO queue of mock implementations for the function. + +##### `.mockImplementation(function)` + +Sets the default mock implementation for the function. + +##### `.mockReturnThis()` + +Syntactic sugar for: + +```js +mockFn.mockImplementation(function () { + return this; +}); +``` + +In case both `.mockImplementationOnce()` / `.mockImplementation()` and `.mockReturnValueOnce()` / `.mockReturnValue()` are called. The priority of which to use is based on what is the last call: + +- if the last call is `.mockReturnValueOnce()` or `.mockReturnValue()`, use the specific return value or default return value. If specific return values are used up or no default return value is set, fall back to try `.mockImplementation()`; +- if the last call is `.mockImplementationOnce()` or `.mockImplementation()`, run the specific implementation and return the result or run default implementation and return the result. + +##### `.withImplementation(function, callback)` + +Temporarily overrides the default mock implementation within the callback, then restores it's previous implementation. + +If the callback is async or returns a `thenable`, `withImplementation` will return a promise. Awaiting the promise will await the callback and reset the implementation. diff --git a/server/api/node_modules/jest-mock/package.json b/server/api/node_modules/jest-mock/package.json new file mode 100644 index 0000000..e47872a --- /dev/null +++ b/server/api/node_modules/jest-mock/package.json @@ -0,0 +1,35 @@ +{ + "name": "jest-mock", + "version": "29.7.0", + "repository": { + "type": "git", + "url": "https://github.com/jestjs/jest.git", + "directory": "packages/jest-mock" + }, + "license": "MIT", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": { + "types": "./build/index.d.ts", + "default": "./build/index.js" + }, + "./package.json": "./package.json" + }, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" + }, + "devDependencies": { + "@tsd/typescript": "^5.0.4", + "tsd-lite": "^0.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "publishConfig": { + "access": "public" + }, + "gitHead": "4e56991693da7cd4c3730dc3579a1dd1403ee630" +} diff --git a/server/api/node_modules/jest-pnp-resolver/README.md b/server/api/node_modules/jest-pnp-resolver/README.md new file mode 100644 index 0000000..20bf42a --- /dev/null +++ b/server/api/node_modules/jest-pnp-resolver/README.md @@ -0,0 +1,34 @@ +# [Plug'n'Play](https://github.com/yarnpkg/rfcs/pull/101) resolver for Jest + +[![npm version](https://img.shields.io/npm/v/jest-pnp-resolver.svg)](https://www.npmjs.com/package/jest-pnp-resolver) +[![node version](https://img.shields.io/node/v/jest-pnp-resolver.svg)](https://www.npmjs.com/package/jest-pnp-resolver) + +*This plugin is also available for Rollup ([rollup-plugin-pnp-resolve](https://github.com/arcanis/rollup-plugin-pnp-resolve)), TypeScript ([ts-pnp](https://github.com/arcanis/ts-pnp)), and Webpack ([pnp-webpack-plugin](https://github.com/arcanis/pnp-webpack-plugin))* + +## Installation + +``` +yarn add -D jest-pnp-resolver +``` + +## Usage + +As of `jest@^24.4.0` you don't need to manually add this package anymore. The default resolver will already use PnP. + +Simply add the resolver to your configuration. For example, a minimal `jest.config.js` would be as such: + +```js +module.exports = { + resolver: require.resolve(`jest-pnp-resolver`) +}; +``` + +## License (MIT) + +> **Copyright © 2016 Maël Nison** +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/server/api/node_modules/jest-pnp-resolver/createRequire.js b/server/api/node_modules/jest-pnp-resolver/createRequire.js new file mode 100644 index 0000000..7da60d6 --- /dev/null +++ b/server/api/node_modules/jest-pnp-resolver/createRequire.js @@ -0,0 +1,25 @@ +const nativeModule = require(`module`); + +module.exports = (filename) => { + // Added in Node v12.2.0 + if (nativeModule.createRequire) { + return nativeModule.createRequire(filename); + } + + // Added in Node v10.12.0 and deprecated since Node v12.2.0 + if (nativeModule.createRequireFromPath) { + return nativeModule.createRequireFromPath(filename); + } + + // Polyfill + return _createRequire(filename); +}; + +// Polyfill +function _createRequire (filename) { + const mod = new nativeModule.Module(filename, null) + mod.filename = filename + mod.paths = nativeModule.Module._nodeModulePaths(path.dirname(filename)) + mod._compile(`module.exports = require;`, filename) + return mod.exports +} diff --git a/server/api/node_modules/jest-pnp-resolver/getDefaultResolver.js b/server/api/node_modules/jest-pnp-resolver/getDefaultResolver.js new file mode 100644 index 0000000..ab90dbc --- /dev/null +++ b/server/api/node_modules/jest-pnp-resolver/getDefaultResolver.js @@ -0,0 +1,13 @@ +let defaultResolver; + +module.exports = () => { + if (!defaultResolver) { + try { + defaultResolver = require(`jest-resolve/build/defaultResolver`).default; + } catch (error) { + defaultResolver = require(`jest-resolve/build/default_resolver`).default; + } + } + + return defaultResolver; +}; diff --git a/server/api/node_modules/jest-pnp-resolver/index.d.ts b/server/api/node_modules/jest-pnp-resolver/index.d.ts new file mode 100644 index 0000000..1acbbac --- /dev/null +++ b/server/api/node_modules/jest-pnp-resolver/index.d.ts @@ -0,0 +1,10 @@ +type JestResolverOptions = { + basedir: string; + defaultResolver: (request: string, opts: any) => string, + extensions?: Array, +}; + +export default function resolve( + request: string, + options: JestResolverOptions, +): string; diff --git a/server/api/node_modules/jest-pnp-resolver/index.js b/server/api/node_modules/jest-pnp-resolver/index.js new file mode 100644 index 0000000..2b74c08 --- /dev/null +++ b/server/api/node_modules/jest-pnp-resolver/index.js @@ -0,0 +1,50 @@ +let globalPnpApi; +try { + globalPnpApi = require(`pnpapi`); +} catch { + // Just ignore if we don't have a global PnP instance - perhaps + // we'll eventually find one at runtime due to multi-tree +} + +const createRequire = require(`./createRequire`); +const getDefaultResolver = require(`./getDefaultResolver`); + +module.exports = (request, options) => { + const { + basedir, + defaultResolver = getDefaultResolver(), + extensions, + } = options; + + if (process.versions.pnp) { + let pnpApi = globalPnpApi; + + // While technically it would be more correct to run this code + // everytime (since they file being run *may* belong to a + // different dependency tree than the one owning Jest), in + // practice this doesn't happen anywhere else than on the Jest + // repository itself (in the test env). So in order to preserve + // the performances, we can afford a slight incoherence here. + if (!pnpApi) { + try { + const baseReq = createRequire(`${basedir}/internal.js`); + pnpApi = baseReq(`pnpapi`); + } catch { + // The file isn't part of a PnP dependency tree, so we can + // just use the default Jest resolver. + } + } + + if (pnpApi) { + const resolution = pnpApi.resolveRequest(request, `${basedir}/`, {extensions}); + + // When the request is a native module, Jest expects to get the string back unmodified, but pnp returns null instead. + if (resolution === null) + return request; + + return resolution; + } + } + + return defaultResolver(request, {...options, allowPnp: false}); +}; diff --git a/server/api/node_modules/jest-pnp-resolver/package.json b/server/api/node_modules/jest-pnp-resolver/package.json new file mode 100644 index 0000000..01f8e15 --- /dev/null +++ b/server/api/node_modules/jest-pnp-resolver/package.json @@ -0,0 +1,31 @@ +{ + "name": "jest-pnp-resolver", + "version": "1.2.3", + "description": "plug'n'play resolver for Webpack", + "license": "MIT", + "engines": { + "node": ">=6" + }, + "homepage": "https://github.com/arcanis/jest-pnp-resolver", + "bugs": { + "url": "https://github.com/arcanis/jest-pnp-resolver/issues" + }, + "repository": { + "type": "git", + "url": "https://github.com/arcanis/jest-pnp-resolver.git" + }, + "keywords": [ + "jest", + "yarn", + "plugnplay", + "pnp" + ], + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } +} diff --git a/server/api/node_modules/jest-regex-util/LICENSE b/server/api/node_modules/jest-regex-util/LICENSE new file mode 100644 index 0000000..b93be90 --- /dev/null +++ b/server/api/node_modules/jest-regex-util/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) Meta Platforms, Inc. and affiliates. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/server/api/node_modules/jest-regex-util/package.json b/server/api/node_modules/jest-regex-util/package.json new file mode 100644 index 0000000..ed8bc70 --- /dev/null +++ b/server/api/node_modules/jest-regex-util/package.json @@ -0,0 +1,29 @@ +{ + "name": "jest-regex-util", + "version": "29.6.3", + "repository": { + "type": "git", + "url": "https://github.com/jestjs/jest.git", + "directory": "packages/jest-regex-util" + }, + "devDependencies": { + "@types/node": "*" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "license": "MIT", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": { + "types": "./build/index.d.ts", + "default": "./build/index.js" + }, + "./package.json": "./package.json" + }, + "publishConfig": { + "access": "public" + }, + "gitHead": "fb7d95c8af6e0d65a8b65348433d8a0ea0725b5b" +} diff --git a/server/api/node_modules/jest-resolve-dependencies/LICENSE b/server/api/node_modules/jest-resolve-dependencies/LICENSE new file mode 100644 index 0000000..b93be90 --- /dev/null +++ b/server/api/node_modules/jest-resolve-dependencies/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) Meta Platforms, Inc. and affiliates. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/server/api/node_modules/jest-resolve-dependencies/package.json b/server/api/node_modules/jest-resolve-dependencies/package.json new file mode 100644 index 0000000..bbeeb06 --- /dev/null +++ b/server/api/node_modules/jest-resolve-dependencies/package.json @@ -0,0 +1,37 @@ +{ + "name": "jest-resolve-dependencies", + "version": "29.7.0", + "repository": { + "type": "git", + "url": "https://github.com/jestjs/jest.git", + "directory": "packages/jest-resolve-dependencies" + }, + "license": "MIT", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": { + "types": "./build/index.d.ts", + "default": "./build/index.js" + }, + "./package.json": "./package.json" + }, + "dependencies": { + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" + }, + "devDependencies": { + "@jest/test-utils": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-haste-map": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "publishConfig": { + "access": "public" + }, + "gitHead": "4e56991693da7cd4c3730dc3579a1dd1403ee630" +} diff --git a/server/api/node_modules/jest-resolve/LICENSE b/server/api/node_modules/jest-resolve/LICENSE new file mode 100644 index 0000000..b93be90 --- /dev/null +++ b/server/api/node_modules/jest-resolve/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) Meta Platforms, Inc. and affiliates. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/server/api/node_modules/jest-resolve/package.json b/server/api/node_modules/jest-resolve/package.json new file mode 100644 index 0000000..198c9be --- /dev/null +++ b/server/api/node_modules/jest-resolve/package.json @@ -0,0 +1,44 @@ +{ + "name": "jest-resolve", + "version": "29.7.0", + "repository": { + "type": "git", + "url": "https://github.com/jestjs/jest.git", + "directory": "packages/jest-resolve" + }, + "license": "MIT", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": { + "types": "./build/index.d.ts", + "default": "./build/index.js" + }, + "./package.json": "./package.json" + }, + "dependencies": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" + }, + "devDependencies": { + "@tsd/typescript": "^5.0.4", + "@types/graceful-fs": "^4.1.3", + "@types/pnpapi": "^0.0.2", + "@types/resolve": "^1.20.2", + "tsd-lite": "^0.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "publishConfig": { + "access": "public" + }, + "gitHead": "4e56991693da7cd4c3730dc3579a1dd1403ee630" +} diff --git a/server/api/node_modules/jest-runner/LICENSE b/server/api/node_modules/jest-runner/LICENSE new file mode 100644 index 0000000..b93be90 --- /dev/null +++ b/server/api/node_modules/jest-runner/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) Meta Platforms, Inc. and affiliates. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/server/api/node_modules/jest-runner/package.json b/server/api/node_modules/jest-runner/package.json new file mode 100644 index 0000000..6b46ae0 --- /dev/null +++ b/server/api/node_modules/jest-runner/package.json @@ -0,0 +1,58 @@ +{ + "name": "jest-runner", + "version": "29.7.0", + "repository": { + "type": "git", + "url": "https://github.com/jestjs/jest.git", + "directory": "packages/jest-runner" + }, + "license": "MIT", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": { + "types": "./build/index.d.ts", + "default": "./build/index.js" + }, + "./package.json": "./package.json" + }, + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "devDependencies": { + "@jest/test-utils": "^29.7.0", + "@tsd/typescript": "^5.0.4", + "@types/exit": "^0.1.30", + "@types/graceful-fs": "^4.1.3", + "@types/source-map-support": "^0.5.0", + "jest-jasmine2": "^29.7.0", + "tsd-lite": "^0.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "publishConfig": { + "access": "public" + }, + "gitHead": "4e56991693da7cd4c3730dc3579a1dd1403ee630" +} diff --git a/server/api/node_modules/jest-runtime/LICENSE b/server/api/node_modules/jest-runtime/LICENSE new file mode 100644 index 0000000..b93be90 --- /dev/null +++ b/server/api/node_modules/jest-runtime/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) Meta Platforms, Inc. and affiliates. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/server/api/node_modules/jest-runtime/package.json b/server/api/node_modules/jest-runtime/package.json new file mode 100644 index 0000000..096ae19 --- /dev/null +++ b/server/api/node_modules/jest-runtime/package.json @@ -0,0 +1,56 @@ +{ + "name": "jest-runtime", + "version": "29.7.0", + "repository": { + "type": "git", + "url": "https://github.com/jestjs/jest.git", + "directory": "packages/jest-runtime" + }, + "license": "MIT", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": { + "types": "./build/index.d.ts", + "default": "./build/index.js" + }, + "./package.json": "./package.json" + }, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "devDependencies": { + "@jest/test-utils": "^29.7.0", + "@types/glob": "^7.1.1", + "@types/graceful-fs": "^4.1.3", + "jest-environment-node": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "publishConfig": { + "access": "public" + }, + "gitHead": "4e56991693da7cd4c3730dc3579a1dd1403ee630" +} diff --git a/server/api/node_modules/jest-snapshot/LICENSE b/server/api/node_modules/jest-snapshot/LICENSE new file mode 100644 index 0000000..b93be90 --- /dev/null +++ b/server/api/node_modules/jest-snapshot/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) Meta Platforms, Inc. and affiliates. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/server/api/node_modules/jest-snapshot/node_modules/.bin/semver b/server/api/node_modules/jest-snapshot/node_modules/.bin/semver new file mode 100644 index 0000000..97c5327 --- /dev/null +++ b/server/api/node_modules/jest-snapshot/node_modules/.bin/semver @@ -0,0 +1,16 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) + if command -v cygpath > /dev/null 2>&1; then + basedir=`cygpath -w "$basedir"` + fi + ;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../semver/bin/semver.js" "$@" +else + exec node "$basedir/../semver/bin/semver.js" "$@" +fi diff --git a/server/api/node_modules/jest-snapshot/node_modules/.bin/semver.cmd b/server/api/node_modules/jest-snapshot/node_modules/.bin/semver.cmd new file mode 100644 index 0000000..9913fa9 --- /dev/null +++ b/server/api/node_modules/jest-snapshot/node_modules/.bin/semver.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\semver\bin\semver.js" %* diff --git a/server/api/node_modules/jest-snapshot/node_modules/.bin/semver.ps1 b/server/api/node_modules/jest-snapshot/node_modules/.bin/semver.ps1 new file mode 100644 index 0000000..314717a --- /dev/null +++ b/server/api/node_modules/jest-snapshot/node_modules/.bin/semver.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../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 diff --git a/server/api/node_modules/jest-snapshot/node_modules/semver/LICENSE b/server/api/node_modules/jest-snapshot/node_modules/semver/LICENSE new file mode 100644 index 0000000..19129e3 --- /dev/null +++ b/server/api/node_modules/jest-snapshot/node_modules/semver/LICENSE @@ -0,0 +1,15 @@ +The ISC License + +Copyright (c) Isaac Z. Schlueter and Contributors + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/server/api/node_modules/jest-snapshot/node_modules/semver/README.md b/server/api/node_modules/jest-snapshot/node_modules/semver/README.md new file mode 100644 index 0000000..e9d1bc5 --- /dev/null +++ b/server/api/node_modules/jest-snapshot/node_modules/semver/README.md @@ -0,0 +1,665 @@ +semver(1) -- The semantic versioner for npm +=========================================== + +## Install + +```bash +npm install semver +```` + +## Usage + +As a node module: + +```js +const semver = require('semver') + +semver.valid('1.2.3') // '1.2.3' +semver.valid('a.b.c') // null +semver.clean(' =v1.2.3 ') // '1.2.3' +semver.satisfies('1.2.3', '1.x || >=2.5.0 || 5.0.0 - 7.2.3') // true +semver.gt('1.2.3', '9.8.7') // false +semver.lt('1.2.3', '9.8.7') // true +semver.minVersion('>=1.0.0') // '1.0.0' +semver.valid(semver.coerce('v2')) // '2.0.0' +semver.valid(semver.coerce('42.6.7.9.3-alpha')) // '42.6.7' +``` + +You can also just load the module for the function that you care about if +you'd like to minimize your footprint. + +```js +// load the whole API at once in a single object +const semver = require('semver') + +// or just load the bits you need +// all of them listed here, just pick and choose what you want + +// classes +const SemVer = require('semver/classes/semver') +const Comparator = require('semver/classes/comparator') +const Range = require('semver/classes/range') + +// functions for working with versions +const semverParse = require('semver/functions/parse') +const semverValid = require('semver/functions/valid') +const semverClean = require('semver/functions/clean') +const semverInc = require('semver/functions/inc') +const semverDiff = require('semver/functions/diff') +const semverMajor = require('semver/functions/major') +const semverMinor = require('semver/functions/minor') +const semverPatch = require('semver/functions/patch') +const semverPrerelease = require('semver/functions/prerelease') +const semverCompare = require('semver/functions/compare') +const semverRcompare = require('semver/functions/rcompare') +const semverCompareLoose = require('semver/functions/compare-loose') +const semverCompareBuild = require('semver/functions/compare-build') +const semverSort = require('semver/functions/sort') +const semverRsort = require('semver/functions/rsort') + +// low-level comparators between versions +const semverGt = require('semver/functions/gt') +const semverLt = require('semver/functions/lt') +const semverEq = require('semver/functions/eq') +const semverNeq = require('semver/functions/neq') +const semverGte = require('semver/functions/gte') +const semverLte = require('semver/functions/lte') +const semverCmp = require('semver/functions/cmp') +const semverCoerce = require('semver/functions/coerce') + +// working with ranges +const semverSatisfies = require('semver/functions/satisfies') +const semverMaxSatisfying = require('semver/ranges/max-satisfying') +const semverMinSatisfying = require('semver/ranges/min-satisfying') +const semverToComparators = require('semver/ranges/to-comparators') +const semverMinVersion = require('semver/ranges/min-version') +const semverValidRange = require('semver/ranges/valid') +const semverOutside = require('semver/ranges/outside') +const semverGtr = require('semver/ranges/gtr') +const semverLtr = require('semver/ranges/ltr') +const semverIntersects = require('semver/ranges/intersects') +const semverSimplifyRange = require('semver/ranges/simplify') +const semverRangeSubset = require('semver/ranges/subset') +``` + +As a command-line utility: + +``` +$ semver -h + +A JavaScript implementation of the https://semver.org/ specification +Copyright Isaac Z. Schlueter + +Usage: semver [options] [ [...]] +Prints valid versions sorted by SemVer precedence + +Options: +-r --range + Print versions that match the specified range. + +-i --increment [] + Increment a version by the specified level. Level can + be one of: major, minor, patch, premajor, preminor, + prepatch, prerelease, or release. Default level is 'patch'. + Only one version may be specified. + +--preid + Identifier to be used to prefix premajor, preminor, + prepatch or prerelease version increments. + +-l --loose + Interpret versions and ranges loosely + +-n <0|1|false> + Base number for prerelease identifier (default: 0). + Use false to omit the number altogether. + +-p --include-prerelease + Always include prerelease versions in range matching + +-c --coerce + Coerce a string into SemVer if possible + (does not imply --loose) + +--rtl + Coerce version strings right to left + +--ltr + Coerce version strings left to right (default) + +Program exits successfully if any valid version satisfies +all supplied ranges, and prints all satisfying versions. + +If no satisfying versions are found, then exits failure. + +Versions are printed in ascending order, so supplying +multiple versions to the utility will just sort them. +``` + +## Versions + +A "version" is described by the `v2.0.0` specification found at +. + +A leading `"="` or `"v"` character is stripped off and ignored. +Support for stripping a leading "v" is kept for compatibility with `v1.0.0` of the SemVer +specification but should not be used anymore. + +## Ranges + +A `version range` is a set of `comparators` that specify versions +that satisfy the range. + +A `comparator` is composed of an `operator` and a `version`. The set +of primitive `operators` is: + +* `<` Less than +* `<=` Less than or equal to +* `>` Greater than +* `>=` Greater than or equal to +* `=` Equal. If no operator is specified, then equality is assumed, + so this operator is optional but MAY be included. + +For example, the comparator `>=1.2.7` would match the versions +`1.2.7`, `1.2.8`, `2.5.3`, and `1.3.9`, but not the versions `1.2.6` +or `1.1.0`. The comparator `>1` is equivalent to `>=2.0.0` and +would match the versions `2.0.0` and `3.1.0`, but not the versions +`1.0.1` or `1.1.0`. + +Comparators can be joined by whitespace to form a `comparator set`, +which is satisfied by the **intersection** of all of the comparators +it includes. + +A range is composed of one or more comparator sets, joined by `||`. A +version matches a range if and only if every comparator in at least +one of the `||`-separated comparator sets is satisfied by the version. + +For example, the range `>=1.2.7 <1.3.0` would match the versions +`1.2.7`, `1.2.8`, and `1.2.99`, but not the versions `1.2.6`, `1.3.0`, +or `1.1.0`. + +The range `1.2.7 || >=1.2.9 <2.0.0` would match the versions `1.2.7`, +`1.2.9`, and `1.4.6`, but not the versions `1.2.8` or `2.0.0`. + +### Prerelease Tags + +If a version has a prerelease tag (for example, `1.2.3-alpha.3`) then +it will only be allowed to satisfy comparator sets if at least one +comparator with the same `[major, minor, patch]` tuple also has a +prerelease tag. + +For example, the range `>1.2.3-alpha.3` would be allowed to match the +version `1.2.3-alpha.7`, but it would *not* be satisfied by +`3.4.5-alpha.9`, even though `3.4.5-alpha.9` is technically "greater +than" `1.2.3-alpha.3` according to the SemVer sort rules. The version +range only accepts prerelease tags on the `1.2.3` version. +Version `3.4.5` *would* satisfy the range because it does not have a +prerelease flag, and `3.4.5` is greater than `1.2.3-alpha.7`. + +The purpose of this behavior is twofold. First, prerelease versions +frequently are updated very quickly, and contain many breaking changes +that are (by the author's design) not yet fit for public consumption. +Therefore, by default, they are excluded from range-matching +semantics. + +Second, a user who has opted into using a prerelease version has +indicated the intent to use *that specific* set of +alpha/beta/rc versions. By including a prerelease tag in the range, +the user is indicating that they are aware of the risk. However, it +is still not appropriate to assume that they have opted into taking a +similar risk on the *next* set of prerelease versions. + +Note that this behavior can be suppressed (treating all prerelease +versions as if they were normal versions, for range-matching) +by setting the `includePrerelease` flag on the options +object to any +[functions](https://github.com/npm/node-semver#functions) that do +range matching. + +#### Prerelease Identifiers + +The method `.inc` takes an additional `identifier` string argument that +will append the value of the string as a prerelease identifier: + +```javascript +semver.inc('1.2.3', 'prerelease', 'beta') +// '1.2.4-beta.0' +``` + +command-line example: + +```bash +$ semver 1.2.3 -i prerelease --preid beta +1.2.4-beta.0 +``` + +Which then can be used to increment further: + +```bash +$ semver 1.2.4-beta.0 -i prerelease +1.2.4-beta.1 +``` + +To get out of the prerelease phase, use the `release` option: + +```bash +$ semver 1.2.4-beta.1 -i release +1.2.4 +``` + +#### Prerelease Identifier Base + +The method `.inc` takes an optional parameter 'identifierBase' string +that will let you let your prerelease number as zero-based or one-based. +Set to `false` to omit the prerelease number altogether. +If you do not specify this parameter, it will default to zero-based. + +```javascript +semver.inc('1.2.3', 'prerelease', 'beta', '1') +// '1.2.4-beta.1' +``` + +```javascript +semver.inc('1.2.3', 'prerelease', 'beta', false) +// '1.2.4-beta' +``` + +command-line example: + +```bash +$ semver 1.2.3 -i prerelease --preid beta -n 1 +1.2.4-beta.1 +``` + +```bash +$ semver 1.2.3 -i prerelease --preid beta -n false +1.2.4-beta +``` + +### Advanced Range Syntax + +Advanced range syntax desugars to primitive comparators in +deterministic ways. + +Advanced ranges may be combined in the same way as primitive +comparators using white space or `||`. + +#### Hyphen Ranges `X.Y.Z - A.B.C` + +Specifies an inclusive set. + +* `1.2.3 - 2.3.4` := `>=1.2.3 <=2.3.4` + +If a partial version is provided as the first version in the inclusive +range, then the missing pieces are replaced with zeroes. + +* `1.2 - 2.3.4` := `>=1.2.0 <=2.3.4` + +If a partial version is provided as the second version in the +inclusive range, then all versions that start with the supplied parts +of the tuple are accepted, but nothing that would be greater than the +provided tuple parts. + +* `1.2.3 - 2.3` := `>=1.2.3 <2.4.0-0` +* `1.2.3 - 2` := `>=1.2.3 <3.0.0-0` + +#### X-Ranges `1.2.x` `1.X` `1.2.*` `*` + +Any of `X`, `x`, or `*` may be used to "stand in" for one of the +numeric values in the `[major, minor, patch]` tuple. + +* `*` := `>=0.0.0` (Any non-prerelease version satisfies, unless + `includePrerelease` is specified, in which case any version at all + satisfies) +* `1.x` := `>=1.0.0 <2.0.0-0` (Matching major version) +* `1.2.x` := `>=1.2.0 <1.3.0-0` (Matching major and minor versions) + +A partial version range is treated as an X-Range, so the special +character is in fact optional. + +* `""` (empty string) := `*` := `>=0.0.0` +* `1` := `1.x.x` := `>=1.0.0 <2.0.0-0` +* `1.2` := `1.2.x` := `>=1.2.0 <1.3.0-0` + +#### Tilde Ranges `~1.2.3` `~1.2` `~1` + +Allows patch-level changes if a minor version is specified on the +comparator. Allows minor-level changes if not. + +* `~1.2.3` := `>=1.2.3 <1.(2+1).0` := `>=1.2.3 <1.3.0-0` +* `~1.2` := `>=1.2.0 <1.(2+1).0` := `>=1.2.0 <1.3.0-0` (Same as `1.2.x`) +* `~1` := `>=1.0.0 <(1+1).0.0` := `>=1.0.0 <2.0.0-0` (Same as `1.x`) +* `~0.2.3` := `>=0.2.3 <0.(2+1).0` := `>=0.2.3 <0.3.0-0` +* `~0.2` := `>=0.2.0 <0.(2+1).0` := `>=0.2.0 <0.3.0-0` (Same as `0.2.x`) +* `~0` := `>=0.0.0 <(0+1).0.0` := `>=0.0.0 <1.0.0-0` (Same as `0.x`) +* `~1.2.3-beta.2` := `>=1.2.3-beta.2 <1.3.0-0` Note that prereleases in + the `1.2.3` version will be allowed, if they are greater than or + equal to `beta.2`. So, `1.2.3-beta.4` would be allowed, but + `1.2.4-beta.2` would not, because it is a prerelease of a + different `[major, minor, patch]` tuple. + +#### Caret Ranges `^1.2.3` `^0.2.5` `^0.0.4` + +Allows changes that do not modify the left-most non-zero element in the +`[major, minor, patch]` tuple. In other words, this allows patch and +minor updates for versions `1.0.0` and above, patch updates for +versions `0.X >=0.1.0`, and *no* updates for versions `0.0.X`. + +Many authors treat a `0.x` version as if the `x` were the major +"breaking-change" indicator. + +Caret ranges are ideal when an author may make breaking changes +between `0.2.4` and `0.3.0` releases, which is a common practice. +However, it presumes that there will *not* be breaking changes between +`0.2.4` and `0.2.5`. It allows for changes that are presumed to be +additive (but non-breaking), according to commonly observed practices. + +* `^1.2.3` := `>=1.2.3 <2.0.0-0` +* `^0.2.3` := `>=0.2.3 <0.3.0-0` +* `^0.0.3` := `>=0.0.3 <0.0.4-0` +* `^1.2.3-beta.2` := `>=1.2.3-beta.2 <2.0.0-0` Note that prereleases in + the `1.2.3` version will be allowed, if they are greater than or + equal to `beta.2`. So, `1.2.3-beta.4` would be allowed, but + `1.2.4-beta.2` would not, because it is a prerelease of a + different `[major, minor, patch]` tuple. +* `^0.0.3-beta` := `>=0.0.3-beta <0.0.4-0` Note that prereleases in the + `0.0.3` version *only* will be allowed, if they are greater than or + equal to `beta`. So, `0.0.3-pr.2` would be allowed. + +When parsing caret ranges, a missing `patch` value desugars to the +number `0`, but will allow flexibility within that value, even if the +major and minor versions are both `0`. + +* `^1.2.x` := `>=1.2.0 <2.0.0-0` +* `^0.0.x` := `>=0.0.0 <0.1.0-0` +* `^0.0` := `>=0.0.0 <0.1.0-0` + +A missing `minor` and `patch` values will desugar to zero, but also +allow flexibility within those values, even if the major version is +zero. + +* `^1.x` := `>=1.0.0 <2.0.0-0` +* `^0.x` := `>=0.0.0 <1.0.0-0` + +### Range Grammar + +Putting all this together, here is a Backus-Naur grammar for ranges, +for the benefit of parser authors: + +```bnf +range-set ::= range ( logical-or range ) * +logical-or ::= ( ' ' ) * '||' ( ' ' ) * +range ::= hyphen | simple ( ' ' simple ) * | '' +hyphen ::= partial ' - ' partial +simple ::= primitive | partial | tilde | caret +primitive ::= ( '<' | '>' | '>=' | '<=' | '=' ) partial +partial ::= xr ( '.' xr ( '.' xr qualifier ? )? )? +xr ::= 'x' | 'X' | '*' | nr +nr ::= '0' | ['1'-'9'] ( ['0'-'9'] ) * +tilde ::= '~' partial +caret ::= '^' partial +qualifier ::= ( '-' pre )? ( '+' build )? +pre ::= parts +build ::= parts +parts ::= part ( '.' part ) * +part ::= nr | [-0-9A-Za-z]+ +``` + +## Functions + +All methods and classes take a final `options` object argument. All +options in this object are `false` by default. The options supported +are: + +- `loose`: Be more forgiving about not-quite-valid semver strings. + (Any resulting output will always be 100% strict compliant, of + course.) For backwards compatibility reasons, if the `options` + argument is a boolean value instead of an object, it is interpreted + to be the `loose` param. +- `includePrerelease`: Set to suppress the [default + behavior](https://github.com/npm/node-semver#prerelease-tags) of + excluding prerelease tagged versions from ranges unless they are + explicitly opted into. + +Strict-mode Comparators and Ranges will be strict about the SemVer +strings that they parse. + +* `valid(v)`: Return the parsed version, or null if it's not valid. +* `inc(v, releaseType, options, identifier, identifierBase)`: + Return the version incremented by the release + type (`major`, `premajor`, `minor`, `preminor`, `patch`, + `prepatch`, `prerelease`, or `release`), or null if it's not valid + * `premajor` in one call will bump the version up to the next major + version and down to a prerelease of that major version. + `preminor`, and `prepatch` work the same way. + * If called from a non-prerelease version, `prerelease` will work the + same as `prepatch`. It increments the patch version and then makes a + prerelease. If the input version is already a prerelease it simply + increments it. + * `release` will remove any prerelease part of the version. + * `identifier` can be used to prefix `premajor`, `preminor`, + `prepatch`, or `prerelease` version increments. `identifierBase` + is the base to be used for the `prerelease` identifier. +* `prerelease(v)`: Returns an array of prerelease components, or null + if none exist. Example: `prerelease('1.2.3-alpha.1') -> ['alpha', 1]` +* `major(v)`: Return the major version number. +* `minor(v)`: Return the minor version number. +* `patch(v)`: Return the patch version number. +* `intersects(r1, r2, loose)`: Return true if the two supplied ranges + or comparators intersect. +* `parse(v)`: Attempt to parse a string as a semantic version, returning either + a `SemVer` object or `null`. + +### Comparison + +* `gt(v1, v2)`: `v1 > v2` +* `gte(v1, v2)`: `v1 >= v2` +* `lt(v1, v2)`: `v1 < v2` +* `lte(v1, v2)`: `v1 <= v2` +* `eq(v1, v2)`: `v1 == v2` This is true if they're logically equivalent, + even if they're not the same string. You already know how to + compare strings. +* `neq(v1, v2)`: `v1 != v2` The opposite of `eq`. +* `cmp(v1, comparator, v2)`: Pass in a comparison string, and it'll call + the corresponding function above. `"==="` and `"!=="` do simple + string comparison, but are included for completeness. Throws if an + invalid comparison string is provided. +* `compare(v1, v2)`: Return `0` if `v1 == v2`, or `1` if `v1` is greater, or `-1` if + `v2` is greater. Sorts in ascending order if passed to `Array.sort()`. +* `rcompare(v1, v2)`: The reverse of `compare`. Sorts an array of versions + in descending order when passed to `Array.sort()`. +* `compareBuild(v1, v2)`: The same as `compare` but considers `build` when two versions + are equal. Sorts in ascending order if passed to `Array.sort()`. +* `compareLoose(v1, v2)`: Short for `compare(v1, v2, { loose: true })`. +* `diff(v1, v2)`: Returns the difference between two versions by the release type + (`major`, `premajor`, `minor`, `preminor`, `patch`, `prepatch`, or `prerelease`), + or null if the versions are the same. + +### Sorting + +* `sort(versions)`: Returns a sorted array of versions based on the `compareBuild` + function. +* `rsort(versions)`: The reverse of `sort`. Returns an array of versions based on + the `compareBuild` function in descending order. + +### Comparators + +* `intersects(comparator)`: Return true if the comparators intersect + +### Ranges + +* `validRange(range)`: Return the valid range or null if it's not valid. +* `satisfies(version, range)`: Return true if the version satisfies the + range. +* `maxSatisfying(versions, range)`: Return the highest version in the list + that satisfies the range, or `null` if none of them do. +* `minSatisfying(versions, range)`: Return the lowest version in the list + that satisfies the range, or `null` if none of them do. +* `minVersion(range)`: Return the lowest version that can match + the given range. +* `gtr(version, range)`: Return `true` if the version is greater than all the + versions possible in the range. +* `ltr(version, range)`: Return `true` if the version is less than all the + versions possible in the range. +* `outside(version, range, hilo)`: Return true if the version is outside + the bounds of the range in either the high or low direction. The + `hilo` argument must be either the string `'>'` or `'<'`. (This is + the function called by `gtr` and `ltr`.) +* `intersects(range)`: Return true if any of the range comparators intersect. +* `simplifyRange(versions, range)`: Return a "simplified" range that + matches the same items in the `versions` list as the range specified. Note + that it does *not* guarantee that it would match the same versions in all + cases, only for the set of versions provided. This is useful when + generating ranges by joining together multiple versions with `||` + programmatically, to provide the user with something a bit more + ergonomic. If the provided range is shorter in string-length than the + generated range, then that is returned. +* `subset(subRange, superRange)`: Return `true` if the `subRange` range is + entirely contained by the `superRange` range. + +Note that, since ranges may be non-contiguous, a version might not be +greater than a range, less than a range, *or* satisfy a range! For +example, the range `1.2 <1.2.9 || >2.0.0` would have a hole from `1.2.9` +until `2.0.0`, so version `1.2.10` would not be greater than the +range (because `2.0.1` satisfies, which is higher), nor less than the +range (since `1.2.8` satisfies, which is lower), and it also does not +satisfy the range. + +If you want to know if a version satisfies or does not satisfy a +range, use the `satisfies(version, range)` function. + +### Coercion + +* `coerce(version, options)`: Coerces a string to semver if possible + +This aims to provide a very forgiving translation of a non-semver string to +semver. It looks for the first digit in a string and consumes all +remaining characters which satisfy at least a partial semver (e.g., `1`, +`1.2`, `1.2.3`) up to the max permitted length (256 characters). Longer +versions are simply truncated (`4.6.3.9.2-alpha2` becomes `4.6.3`). All +surrounding text is simply ignored (`v3.4 replaces v3.3.1` becomes +`3.4.0`). Only text which lacks digits will fail coercion (`version one` +is not valid). The maximum length for any semver component considered for +coercion is 16 characters; longer components will be ignored +(`10000000000000000.4.7.4` becomes `4.7.4`). The maximum value for any +semver component is `Number.MAX_SAFE_INTEGER || (2**53 - 1)`; higher value +components are invalid (`9999999999999999.4.7.4` is likely invalid). + +If the `options.rtl` flag is set, then `coerce` will return the right-most +coercible tuple that does not share an ending index with a longer coercible +tuple. For example, `1.2.3.4` will return `2.3.4` in rtl mode, not +`4.0.0`. `1.2.3/4` will return `4.0.0`, because the `4` is not a part of +any other overlapping SemVer tuple. + +If the `options.includePrerelease` flag is set, then the `coerce` result will contain +prerelease and build parts of a version. For example, `1.2.3.4-rc.1+rev.2` +will preserve prerelease `rc.1` and build `rev.2` in the result. + +### Clean + +* `clean(version)`: Clean a string to be a valid semver if possible + +This will return a cleaned and trimmed semver version. If the provided +version is not valid a null will be returned. This does not work for +ranges. + +ex. +* `s.clean(' = v 2.1.5foo')`: `null` +* `s.clean(' = v 2.1.5foo', { loose: true })`: `'2.1.5-foo'` +* `s.clean(' = v 2.1.5-foo')`: `null` +* `s.clean(' = v 2.1.5-foo', { loose: true })`: `'2.1.5-foo'` +* `s.clean('=v2.1.5')`: `'2.1.5'` +* `s.clean(' =v2.1.5')`: `'2.1.5'` +* `s.clean(' 2.1.5 ')`: `'2.1.5'` +* `s.clean('~1.0.0')`: `null` + +## Constants + +As a convenience, helper constants are exported to provide information about what `node-semver` supports: + +### `RELEASE_TYPES` + +- major +- premajor +- minor +- preminor +- patch +- prepatch +- prerelease + +``` +const semver = require('semver'); + +if (semver.RELEASE_TYPES.includes(arbitraryUserInput)) { + console.log('This is a valid release type!'); +} else { + console.warn('This is NOT a valid release type!'); +} +``` + +### `SEMVER_SPEC_VERSION` + +2.0.0 + +``` +const semver = require('semver'); + +console.log('We are currently using the semver specification version:', semver.SEMVER_SPEC_VERSION); +``` + +## Exported Modules + + + +You may pull in just the part of this semver utility that you need if you +are sensitive to packing and tree-shaking concerns. The main +`require('semver')` export uses getter functions to lazily load the parts +of the API that are used. + +The following modules are available: + +* `require('semver')` +* `require('semver/classes')` +* `require('semver/classes/comparator')` +* `require('semver/classes/range')` +* `require('semver/classes/semver')` +* `require('semver/functions/clean')` +* `require('semver/functions/cmp')` +* `require('semver/functions/coerce')` +* `require('semver/functions/compare')` +* `require('semver/functions/compare-build')` +* `require('semver/functions/compare-loose')` +* `require('semver/functions/diff')` +* `require('semver/functions/eq')` +* `require('semver/functions/gt')` +* `require('semver/functions/gte')` +* `require('semver/functions/inc')` +* `require('semver/functions/lt')` +* `require('semver/functions/lte')` +* `require('semver/functions/major')` +* `require('semver/functions/minor')` +* `require('semver/functions/neq')` +* `require('semver/functions/parse')` +* `require('semver/functions/patch')` +* `require('semver/functions/prerelease')` +* `require('semver/functions/rcompare')` +* `require('semver/functions/rsort')` +* `require('semver/functions/satisfies')` +* `require('semver/functions/sort')` +* `require('semver/functions/valid')` +* `require('semver/ranges/gtr')` +* `require('semver/ranges/intersects')` +* `require('semver/ranges/ltr')` +* `require('semver/ranges/max-satisfying')` +* `require('semver/ranges/min-satisfying')` +* `require('semver/ranges/min-version')` +* `require('semver/ranges/outside')` +* `require('semver/ranges/simplify')` +* `require('semver/ranges/subset')` +* `require('semver/ranges/to-comparators')` +* `require('semver/ranges/valid')` + diff --git a/server/api/node_modules/jest-snapshot/node_modules/semver/bin/semver.js b/server/api/node_modules/jest-snapshot/node_modules/semver/bin/semver.js new file mode 100644 index 0000000..d62bfc0 --- /dev/null +++ b/server/api/node_modules/jest-snapshot/node_modules/semver/bin/semver.js @@ -0,0 +1,191 @@ +#!/usr/bin/env node +// Standalone semver comparison program. +// Exits successfully and prints matching version(s) if +// any supplied version is valid and passes all tests. + +'use strict' + +const argv = process.argv.slice(2) + +let versions = [] + +const range = [] + +let inc = null + +const version = require('../package.json').version + +let loose = false + +let includePrerelease = false + +let coerce = false + +let rtl = false + +let identifier + +let identifierBase + +const semver = require('../') +const parseOptions = require('../internal/parse-options') + +let reverse = false + +let options = {} + +const main = () => { + if (!argv.length) { + return help() + } + while (argv.length) { + let a = argv.shift() + const indexOfEqualSign = a.indexOf('=') + if (indexOfEqualSign !== -1) { + const value = a.slice(indexOfEqualSign + 1) + a = a.slice(0, indexOfEqualSign) + argv.unshift(value) + } + switch (a) { + case '-rv': case '-rev': case '--rev': case '--reverse': + reverse = true + break + case '-l': case '--loose': + loose = true + break + case '-p': case '--include-prerelease': + includePrerelease = true + break + case '-v': case '--version': + versions.push(argv.shift()) + break + case '-i': case '--inc': case '--increment': + switch (argv[0]) { + case 'major': case 'minor': case 'patch': case 'prerelease': + case 'premajor': case 'preminor': case 'prepatch': + case 'release': + inc = argv.shift() + break + default: + inc = 'patch' + break + } + break + case '--preid': + identifier = argv.shift() + break + case '-r': case '--range': + range.push(argv.shift()) + break + case '-n': + identifierBase = argv.shift() + if (identifierBase === 'false') { + identifierBase = false + } + break + case '-c': case '--coerce': + coerce = true + break + case '--rtl': + rtl = true + break + case '--ltr': + rtl = false + break + case '-h': case '--help': case '-?': + return help() + default: + versions.push(a) + break + } + } + + options = parseOptions({ loose, includePrerelease, rtl }) + + versions = versions.map((v) => { + return coerce ? (semver.coerce(v, options) || { version: v }).version : v + }).filter((v) => { + return semver.valid(v, options) + }) + if (!versions.length) { + return fail() + } + if (inc && (versions.length !== 1 || range.length)) { + return failInc() + } + + for (let i = 0, l = range.length; i < l; i++) { + versions = versions.filter((v) => { + return semver.satisfies(v, range[i], options) + }) + if (!versions.length) { + return fail() + } + } + versions + .sort((a, b) => semver[reverse ? 'rcompare' : 'compare'](a, b, options)) + .map(v => semver.clean(v, options)) + .map(v => inc ? semver.inc(v, inc, options, identifier, identifierBase) : v) + .forEach(v => console.log(v)) +} + +const failInc = () => { + console.error('--inc can only be used on a single version with no range') + fail() +} + +const fail = () => process.exit(1) + +const help = () => console.log( +`SemVer ${version} + +A JavaScript implementation of the https://semver.org/ specification +Copyright Isaac Z. Schlueter + +Usage: semver [options] [ [...]] +Prints valid versions sorted by SemVer precedence + +Options: +-r --range + Print versions that match the specified range. + +-i --increment [] + Increment a version by the specified level. Level can + be one of: major, minor, patch, premajor, preminor, + prepatch, prerelease, or release. Default level is 'patch'. + Only one version may be specified. + +--preid + Identifier to be used to prefix premajor, preminor, + prepatch or prerelease version increments. + +-l --loose + Interpret versions and ranges loosely + +-p --include-prerelease + Always include prerelease versions in range matching + +-c --coerce + Coerce a string into SemVer if possible + (does not imply --loose) + +--rtl + Coerce version strings right to left + +--ltr + Coerce version strings left to right (default) + +-n + Base number to be used for the prerelease identifier. + Can be either 0 or 1, or false to omit the number altogether. + Defaults to 0. + +Program exits successfully if any valid version satisfies +all supplied ranges, and prints all satisfying versions. + +If no satisfying versions are found, then exits failure. + +Versions are printed in ascending order, so supplying +multiple versions to the utility will just sort them.`) + +main() diff --git a/server/api/node_modules/jest-snapshot/node_modules/semver/classes/comparator.js b/server/api/node_modules/jest-snapshot/node_modules/semver/classes/comparator.js new file mode 100644 index 0000000..647c1f0 --- /dev/null +++ b/server/api/node_modules/jest-snapshot/node_modules/semver/classes/comparator.js @@ -0,0 +1,143 @@ +'use strict' + +const ANY = Symbol('SemVer ANY') +// hoisted class for cyclic dependency +class Comparator { + static get ANY () { + return ANY + } + + constructor (comp, options) { + options = parseOptions(options) + + if (comp instanceof Comparator) { + if (comp.loose === !!options.loose) { + return comp + } else { + comp = comp.value + } + } + + comp = comp.trim().split(/\s+/).join(' ') + debug('comparator', comp, options) + this.options = options + this.loose = !!options.loose + this.parse(comp) + + if (this.semver === ANY) { + this.value = '' + } else { + this.value = this.operator + this.semver.version + } + + debug('comp', this) + } + + parse (comp) { + const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR] + const m = comp.match(r) + + if (!m) { + throw new TypeError(`Invalid comparator: ${comp}`) + } + + this.operator = m[1] !== undefined ? m[1] : '' + if (this.operator === '=') { + this.operator = '' + } + + // if it literally is just '>' or '' then allow anything. + if (!m[2]) { + this.semver = ANY + } else { + this.semver = new SemVer(m[2], this.options.loose) + } + } + + toString () { + return this.value + } + + test (version) { + debug('Comparator.test', version, this.options.loose) + + if (this.semver === ANY || version === ANY) { + return true + } + + if (typeof version === 'string') { + try { + version = new SemVer(version, this.options) + } catch (er) { + return false + } + } + + return cmp(version, this.operator, this.semver, this.options) + } + + intersects (comp, options) { + if (!(comp instanceof Comparator)) { + throw new TypeError('a Comparator is required') + } + + if (this.operator === '') { + if (this.value === '') { + return true + } + return new Range(comp.value, options).test(this.value) + } else if (comp.operator === '') { + if (comp.value === '') { + return true + } + return new Range(this.value, options).test(comp.semver) + } + + options = parseOptions(options) + + // Special cases where nothing can possibly be lower + if (options.includePrerelease && + (this.value === '<0.0.0-0' || comp.value === '<0.0.0-0')) { + return false + } + if (!options.includePrerelease && + (this.value.startsWith('<0.0.0') || comp.value.startsWith('<0.0.0'))) { + return false + } + + // Same direction increasing (> or >=) + if (this.operator.startsWith('>') && comp.operator.startsWith('>')) { + return true + } + // Same direction decreasing (< or <=) + if (this.operator.startsWith('<') && comp.operator.startsWith('<')) { + return true + } + // same SemVer and both sides are inclusive (<= or >=) + if ( + (this.semver.version === comp.semver.version) && + this.operator.includes('=') && comp.operator.includes('=')) { + return true + } + // opposite directions less than + if (cmp(this.semver, '<', comp.semver, options) && + this.operator.startsWith('>') && comp.operator.startsWith('<')) { + return true + } + // opposite directions greater than + if (cmp(this.semver, '>', comp.semver, options) && + this.operator.startsWith('<') && comp.operator.startsWith('>')) { + return true + } + return false + } +} + +module.exports = Comparator + +const parseOptions = require('../internal/parse-options') +const { safeRe: re, t } = require('../internal/re') +const cmp = require('../functions/cmp') +const debug = require('../internal/debug') +const SemVer = require('./semver') +const Range = require('./range') diff --git a/server/api/node_modules/jest-snapshot/node_modules/semver/classes/index.js b/server/api/node_modules/jest-snapshot/node_modules/semver/classes/index.js new file mode 100644 index 0000000..91c24ec --- /dev/null +++ b/server/api/node_modules/jest-snapshot/node_modules/semver/classes/index.js @@ -0,0 +1,7 @@ +'use strict' + +module.exports = { + SemVer: require('./semver.js'), + Range: require('./range.js'), + Comparator: require('./comparator.js'), +} diff --git a/server/api/node_modules/jest-snapshot/node_modules/semver/classes/range.js b/server/api/node_modules/jest-snapshot/node_modules/semver/classes/range.js new file mode 100644 index 0000000..94629ce --- /dev/null +++ b/server/api/node_modules/jest-snapshot/node_modules/semver/classes/range.js @@ -0,0 +1,557 @@ +'use strict' + +const SPACE_CHARACTERS = /\s+/g + +// hoisted class for cyclic dependency +class Range { + constructor (range, options) { + options = parseOptions(options) + + if (range instanceof Range) { + if ( + range.loose === !!options.loose && + range.includePrerelease === !!options.includePrerelease + ) { + return range + } else { + return new Range(range.raw, options) + } + } + + if (range instanceof Comparator) { + // just put it in the set and return + this.raw = range.value + this.set = [[range]] + this.formatted = undefined + return this + } + + this.options = options + this.loose = !!options.loose + this.includePrerelease = !!options.includePrerelease + + // First reduce all whitespace as much as possible so we do not have to rely + // on potentially slow regexes like \s*. This is then stored and used for + // future error messages as well. + this.raw = range.trim().replace(SPACE_CHARACTERS, ' ') + + // First, split on || + this.set = this.raw + .split('||') + // map the range to a 2d array of comparators + .map(r => this.parseRange(r.trim())) + // throw out any comparator lists that are empty + // this generally means that it was not a valid range, which is allowed + // in loose mode, but will still throw if the WHOLE range is invalid. + .filter(c => c.length) + + if (!this.set.length) { + throw new TypeError(`Invalid SemVer Range: ${this.raw}`) + } + + // if we have any that are not the null set, throw out null sets. + if (this.set.length > 1) { + // keep the first one, in case they're all null sets + const first = this.set[0] + this.set = this.set.filter(c => !isNullSet(c[0])) + if (this.set.length === 0) { + this.set = [first] + } else if (this.set.length > 1) { + // if we have any that are *, then the range is just * + for (const c of this.set) { + if (c.length === 1 && isAny(c[0])) { + this.set = [c] + break + } + } + } + } + + this.formatted = undefined + } + + get range () { + if (this.formatted === undefined) { + this.formatted = '' + for (let i = 0; i < this.set.length; i++) { + if (i > 0) { + this.formatted += '||' + } + const comps = this.set[i] + for (let k = 0; k < comps.length; k++) { + if (k > 0) { + this.formatted += ' ' + } + this.formatted += comps[k].toString().trim() + } + } + } + return this.formatted + } + + format () { + return this.range + } + + toString () { + return this.range + } + + parseRange (range) { + // memoize range parsing for performance. + // this is a very hot path, and fully deterministic. + const memoOpts = + (this.options.includePrerelease && FLAG_INCLUDE_PRERELEASE) | + (this.options.loose && FLAG_LOOSE) + const memoKey = memoOpts + ':' + range + const cached = cache.get(memoKey) + if (cached) { + return cached + } + + const loose = this.options.loose + // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4` + const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE] + range = range.replace(hr, hyphenReplace(this.options.includePrerelease)) + debug('hyphen replace', range) + + // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5` + range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace) + debug('comparator trim', range) + + // `~ 1.2.3` => `~1.2.3` + range = range.replace(re[t.TILDETRIM], tildeTrimReplace) + debug('tilde trim', range) + + // `^ 1.2.3` => `^1.2.3` + range = range.replace(re[t.CARETTRIM], caretTrimReplace) + debug('caret trim', range) + + // At this point, the range is completely trimmed and + // ready to be split into comparators. + + let rangeList = range + .split(' ') + .map(comp => parseComparator(comp, this.options)) + .join(' ') + .split(/\s+/) + // >=0.0.0 is equivalent to * + .map(comp => replaceGTE0(comp, this.options)) + + if (loose) { + // in loose mode, throw out any that are not valid comparators + rangeList = rangeList.filter(comp => { + debug('loose invalid filter', comp, this.options) + return !!comp.match(re[t.COMPARATORLOOSE]) + }) + } + debug('range list', rangeList) + + // if any comparators are the null set, then replace with JUST null set + // if more than one comparator, remove any * comparators + // also, don't include the same comparator more than once + const rangeMap = new Map() + const comparators = rangeList.map(comp => new Comparator(comp, this.options)) + for (const comp of comparators) { + if (isNullSet(comp)) { + return [comp] + } + rangeMap.set(comp.value, comp) + } + if (rangeMap.size > 1 && rangeMap.has('')) { + rangeMap.delete('') + } + + const result = [...rangeMap.values()] + cache.set(memoKey, result) + return result + } + + intersects (range, options) { + if (!(range instanceof Range)) { + throw new TypeError('a Range is required') + } + + return this.set.some((thisComparators) => { + return ( + isSatisfiable(thisComparators, options) && + range.set.some((rangeComparators) => { + return ( + isSatisfiable(rangeComparators, options) && + thisComparators.every((thisComparator) => { + return rangeComparators.every((rangeComparator) => { + return thisComparator.intersects(rangeComparator, options) + }) + }) + ) + }) + ) + }) + } + + // if ANY of the sets match ALL of its comparators, then pass + test (version) { + if (!version) { + return false + } + + if (typeof version === 'string') { + try { + version = new SemVer(version, this.options) + } catch (er) { + return false + } + } + + for (let i = 0; i < this.set.length; i++) { + if (testSet(this.set[i], version, this.options)) { + return true + } + } + return false + } +} + +module.exports = Range + +const LRU = require('../internal/lrucache') +const cache = new LRU() + +const parseOptions = require('../internal/parse-options') +const Comparator = require('./comparator') +const debug = require('../internal/debug') +const SemVer = require('./semver') +const { + safeRe: re, + t, + comparatorTrimReplace, + tildeTrimReplace, + caretTrimReplace, +} = require('../internal/re') +const { FLAG_INCLUDE_PRERELEASE, FLAG_LOOSE } = require('../internal/constants') + +const isNullSet = c => c.value === '<0.0.0-0' +const isAny = c => c.value === '' + +// take a set of comparators and determine whether there +// exists a version which can satisfy it +const isSatisfiable = (comparators, options) => { + let result = true + const remainingComparators = comparators.slice() + let testComparator = remainingComparators.pop() + + while (result && remainingComparators.length) { + result = remainingComparators.every((otherComparator) => { + return testComparator.intersects(otherComparator, options) + }) + + testComparator = remainingComparators.pop() + } + + return result +} + +// comprised of xranges, tildes, stars, and gtlt's at this point. +// already replaced the hyphen ranges +// turn into a set of JUST comparators. +const parseComparator = (comp, options) => { + comp = comp.replace(re[t.BUILD], '') + debug('comp', comp, options) + comp = replaceCarets(comp, options) + debug('caret', comp) + comp = replaceTildes(comp, options) + debug('tildes', comp) + comp = replaceXRanges(comp, options) + debug('xrange', comp) + comp = replaceStars(comp, options) + debug('stars', comp) + return comp +} + +const isX = id => !id || id.toLowerCase() === 'x' || id === '*' + +// ~, ~> --> * (any, kinda silly) +// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0 +// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0 +// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0 +// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0 +// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0 +// ~0.0.1 --> >=0.0.1 <0.1.0-0 +const replaceTildes = (comp, options) => { + return comp + .trim() + .split(/\s+/) + .map((c) => replaceTilde(c, options)) + .join(' ') +} + +const replaceTilde = (comp, options) => { + const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE] + return comp.replace(r, (_, M, m, p, pr) => { + debug('tilde', comp, _, M, m, p, pr) + let ret + + if (isX(M)) { + ret = '' + } else if (isX(m)) { + ret = `>=${M}.0.0 <${+M + 1}.0.0-0` + } else if (isX(p)) { + // ~1.2 == >=1.2.0 <1.3.0-0 + ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0` + } else if (pr) { + debug('replaceTilde pr', pr) + ret = `>=${M}.${m}.${p}-${pr + } <${M}.${+m + 1}.0-0` + } else { + // ~1.2.3 == >=1.2.3 <1.3.0-0 + ret = `>=${M}.${m}.${p + } <${M}.${+m + 1}.0-0` + } + + debug('tilde return', ret) + return ret + }) +} + +// ^ --> * (any, kinda silly) +// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0 +// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0 +// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0 +// ^1.2.3 --> >=1.2.3 <2.0.0-0 +// ^1.2.0 --> >=1.2.0 <2.0.0-0 +// ^0.0.1 --> >=0.0.1 <0.0.2-0 +// ^0.1.0 --> >=0.1.0 <0.2.0-0 +const replaceCarets = (comp, options) => { + return comp + .trim() + .split(/\s+/) + .map((c) => replaceCaret(c, options)) + .join(' ') +} + +const replaceCaret = (comp, options) => { + debug('caret', comp, options) + const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET] + const z = options.includePrerelease ? '-0' : '' + return comp.replace(r, (_, M, m, p, pr) => { + debug('caret', comp, _, M, m, p, pr) + let ret + + if (isX(M)) { + ret = '' + } else if (isX(m)) { + ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0` + } else if (isX(p)) { + if (M === '0') { + ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0` + } else { + ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0` + } + } else if (pr) { + debug('replaceCaret pr', pr) + if (M === '0') { + if (m === '0') { + ret = `>=${M}.${m}.${p}-${pr + } <${M}.${m}.${+p + 1}-0` + } else { + ret = `>=${M}.${m}.${p}-${pr + } <${M}.${+m + 1}.0-0` + } + } else { + ret = `>=${M}.${m}.${p}-${pr + } <${+M + 1}.0.0-0` + } + } else { + debug('no pr') + if (M === '0') { + if (m === '0') { + ret = `>=${M}.${m}.${p + }${z} <${M}.${m}.${+p + 1}-0` + } else { + ret = `>=${M}.${m}.${p + }${z} <${M}.${+m + 1}.0-0` + } + } else { + ret = `>=${M}.${m}.${p + } <${+M + 1}.0.0-0` + } + } + + debug('caret return', ret) + return ret + }) +} + +const replaceXRanges = (comp, options) => { + debug('replaceXRanges', comp, options) + return comp + .split(/\s+/) + .map((c) => replaceXRange(c, options)) + .join(' ') +} + +const replaceXRange = (comp, options) => { + comp = comp.trim() + const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE] + return comp.replace(r, (ret, gtlt, M, m, p, pr) => { + debug('xRange', comp, ret, gtlt, M, m, p, pr) + const xM = isX(M) + const xm = xM || isX(m) + const xp = xm || isX(p) + const anyX = xp + + if (gtlt === '=' && anyX) { + gtlt = '' + } + + // if we're including prereleases in the match, then we need + // to fix this to -0, the lowest possible prerelease value + pr = options.includePrerelease ? '-0' : '' + + if (xM) { + if (gtlt === '>' || gtlt === '<') { + // nothing is allowed + ret = '<0.0.0-0' + } else { + // nothing is forbidden + ret = '*' + } + } else if (gtlt && anyX) { + // we know patch is an x, because we have any x at all. + // replace X with 0 + if (xm) { + m = 0 + } + p = 0 + + if (gtlt === '>') { + // >1 => >=2.0.0 + // >1.2 => >=1.3.0 + gtlt = '>=' + if (xm) { + M = +M + 1 + m = 0 + p = 0 + } else { + m = +m + 1 + p = 0 + } + } else if (gtlt === '<=') { + // <=0.7.x is actually <0.8.0, since any 0.7.x should + // pass. Similarly, <=7.x is actually <8.0.0, etc. + gtlt = '<' + if (xm) { + M = +M + 1 + } else { + m = +m + 1 + } + } + + if (gtlt === '<') { + pr = '-0' + } + + ret = `${gtlt + M}.${m}.${p}${pr}` + } else if (xm) { + ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0` + } else if (xp) { + ret = `>=${M}.${m}.0${pr + } <${M}.${+m + 1}.0-0` + } + + debug('xRange return', ret) + + return ret + }) +} + +// Because * is AND-ed with everything else in the comparator, +// and '' means "any version", just remove the *s entirely. +const replaceStars = (comp, options) => { + debug('replaceStars', comp, options) + // Looseness is ignored here. star is always as loose as it gets! + return comp + .trim() + .replace(re[t.STAR], '') +} + +const replaceGTE0 = (comp, options) => { + debug('replaceGTE0', comp, options) + return comp + .trim() + .replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], '') +} + +// This function is passed to string.replace(re[t.HYPHENRANGE]) +// M, m, patch, prerelease, build +// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5 +// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do +// 1.2 - 3.4 => >=1.2.0 <3.5.0-0 +// TODO build? +const hyphenReplace = incPr => ($0, + from, fM, fm, fp, fpr, fb, + to, tM, tm, tp, tpr) => { + if (isX(fM)) { + from = '' + } else if (isX(fm)) { + from = `>=${fM}.0.0${incPr ? '-0' : ''}` + } else if (isX(fp)) { + from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}` + } else if (fpr) { + from = `>=${from}` + } else { + from = `>=${from}${incPr ? '-0' : ''}` + } + + if (isX(tM)) { + to = '' + } else if (isX(tm)) { + to = `<${+tM + 1}.0.0-0` + } else if (isX(tp)) { + to = `<${tM}.${+tm + 1}.0-0` + } else if (tpr) { + to = `<=${tM}.${tm}.${tp}-${tpr}` + } else if (incPr) { + to = `<${tM}.${tm}.${+tp + 1}-0` + } else { + to = `<=${to}` + } + + return `${from} ${to}`.trim() +} + +const testSet = (set, version, options) => { + for (let i = 0; i < set.length; i++) { + if (!set[i].test(version)) { + return false + } + } + + if (version.prerelease.length && !options.includePrerelease) { + // Find the set of versions that are allowed to have prereleases + // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0 + // That should allow `1.2.3-pr.2` to pass. + // However, `1.2.4-alpha.notready` should NOT be allowed, + // even though it's within the range set by the comparators. + for (let i = 0; i < set.length; i++) { + debug(set[i].semver) + if (set[i].semver === Comparator.ANY) { + continue + } + + if (set[i].semver.prerelease.length > 0) { + const allowed = set[i].semver + if (allowed.major === version.major && + allowed.minor === version.minor && + allowed.patch === version.patch) { + return true + } + } + } + + // Version has a -pre, but it's not one of the ones we like. + return false + } + + return true +} diff --git a/server/api/node_modules/jest-snapshot/node_modules/semver/classes/semver.js b/server/api/node_modules/jest-snapshot/node_modules/semver/classes/semver.js new file mode 100644 index 0000000..92254be --- /dev/null +++ b/server/api/node_modules/jest-snapshot/node_modules/semver/classes/semver.js @@ -0,0 +1,333 @@ +'use strict' + +const debug = require('../internal/debug') +const { MAX_LENGTH, MAX_SAFE_INTEGER } = require('../internal/constants') +const { safeRe: re, t } = require('../internal/re') + +const parseOptions = require('../internal/parse-options') +const { compareIdentifiers } = require('../internal/identifiers') +class SemVer { + constructor (version, options) { + options = parseOptions(options) + + if (version instanceof SemVer) { + if (version.loose === !!options.loose && + version.includePrerelease === !!options.includePrerelease) { + return version + } else { + version = version.version + } + } else if (typeof version !== 'string') { + throw new TypeError(`Invalid version. Must be a string. Got type "${typeof version}".`) + } + + if (version.length > MAX_LENGTH) { + throw new TypeError( + `version is longer than ${MAX_LENGTH} characters` + ) + } + + debug('SemVer', version, options) + this.options = options + this.loose = !!options.loose + // this isn't actually relevant for versions, but keep it so that we + // don't run into trouble passing this.options around. + this.includePrerelease = !!options.includePrerelease + + const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL]) + + if (!m) { + throw new TypeError(`Invalid Version: ${version}`) + } + + this.raw = version + + // these are actually numbers + this.major = +m[1] + this.minor = +m[2] + this.patch = +m[3] + + if (this.major > MAX_SAFE_INTEGER || this.major < 0) { + throw new TypeError('Invalid major version') + } + + if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) { + throw new TypeError('Invalid minor version') + } + + if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) { + throw new TypeError('Invalid patch version') + } + + // numberify any prerelease numeric ids + if (!m[4]) { + this.prerelease = [] + } else { + this.prerelease = m[4].split('.').map((id) => { + if (/^[0-9]+$/.test(id)) { + const num = +id + if (num >= 0 && num < MAX_SAFE_INTEGER) { + return num + } + } + return id + }) + } + + this.build = m[5] ? m[5].split('.') : [] + this.format() + } + + format () { + this.version = `${this.major}.${this.minor}.${this.patch}` + if (this.prerelease.length) { + this.version += `-${this.prerelease.join('.')}` + } + return this.version + } + + toString () { + return this.version + } + + compare (other) { + debug('SemVer.compare', this.version, this.options, other) + if (!(other instanceof SemVer)) { + if (typeof other === 'string' && other === this.version) { + return 0 + } + other = new SemVer(other, this.options) + } + + if (other.version === this.version) { + return 0 + } + + return this.compareMain(other) || this.comparePre(other) + } + + compareMain (other) { + if (!(other instanceof SemVer)) { + other = new SemVer(other, this.options) + } + + if (this.major < other.major) { + return -1 + } + if (this.major > other.major) { + return 1 + } + if (this.minor < other.minor) { + return -1 + } + if (this.minor > other.minor) { + return 1 + } + if (this.patch < other.patch) { + return -1 + } + if (this.patch > other.patch) { + return 1 + } + return 0 + } + + comparePre (other) { + if (!(other instanceof SemVer)) { + other = new SemVer(other, this.options) + } + + // NOT having a prerelease is > having one + if (this.prerelease.length && !other.prerelease.length) { + return -1 + } else if (!this.prerelease.length && other.prerelease.length) { + return 1 + } else if (!this.prerelease.length && !other.prerelease.length) { + return 0 + } + + let i = 0 + do { + const a = this.prerelease[i] + const b = other.prerelease[i] + debug('prerelease compare', i, a, b) + if (a === undefined && b === undefined) { + return 0 + } else if (b === undefined) { + return 1 + } else if (a === undefined) { + return -1 + } else if (a === b) { + continue + } else { + return compareIdentifiers(a, b) + } + } while (++i) + } + + compareBuild (other) { + if (!(other instanceof SemVer)) { + other = new SemVer(other, this.options) + } + + let i = 0 + do { + const a = this.build[i] + const b = other.build[i] + debug('build compare', i, a, b) + if (a === undefined && b === undefined) { + return 0 + } else if (b === undefined) { + return 1 + } else if (a === undefined) { + return -1 + } else if (a === b) { + continue + } else { + return compareIdentifiers(a, b) + } + } while (++i) + } + + // preminor will bump the version up to the next minor release, and immediately + // down to pre-release. premajor and prepatch work the same way. + inc (release, identifier, identifierBase) { + if (release.startsWith('pre')) { + if (!identifier && identifierBase === false) { + throw new Error('invalid increment argument: identifier is empty') + } + // Avoid an invalid semver results + if (identifier) { + const match = `-${identifier}`.match(this.options.loose ? re[t.PRERELEASELOOSE] : re[t.PRERELEASE]) + if (!match || match[1] !== identifier) { + throw new Error(`invalid identifier: ${identifier}`) + } + } + } + + switch (release) { + case 'premajor': + this.prerelease.length = 0 + this.patch = 0 + this.minor = 0 + this.major++ + this.inc('pre', identifier, identifierBase) + break + case 'preminor': + this.prerelease.length = 0 + this.patch = 0 + this.minor++ + this.inc('pre', identifier, identifierBase) + break + case 'prepatch': + // If this is already a prerelease, it will bump to the next version + // drop any prereleases that might already exist, since they are not + // relevant at this point. + this.prerelease.length = 0 + this.inc('patch', identifier, identifierBase) + this.inc('pre', identifier, identifierBase) + break + // If the input is a non-prerelease version, this acts the same as + // prepatch. + case 'prerelease': + if (this.prerelease.length === 0) { + this.inc('patch', identifier, identifierBase) + } + this.inc('pre', identifier, identifierBase) + break + case 'release': + if (this.prerelease.length === 0) { + throw new Error(`version ${this.raw} is not a prerelease`) + } + this.prerelease.length = 0 + break + + case 'major': + // If this is a pre-major version, bump up to the same major version. + // Otherwise increment major. + // 1.0.0-5 bumps to 1.0.0 + // 1.1.0 bumps to 2.0.0 + if ( + this.minor !== 0 || + this.patch !== 0 || + this.prerelease.length === 0 + ) { + this.major++ + } + this.minor = 0 + this.patch = 0 + this.prerelease = [] + break + case 'minor': + // If this is a pre-minor version, bump up to the same minor version. + // Otherwise increment minor. + // 1.2.0-5 bumps to 1.2.0 + // 1.2.1 bumps to 1.3.0 + if (this.patch !== 0 || this.prerelease.length === 0) { + this.minor++ + } + this.patch = 0 + this.prerelease = [] + break + case 'patch': + // If this is not a pre-release version, it will increment the patch. + // If it is a pre-release it will bump up to the same patch version. + // 1.2.0-5 patches to 1.2.0 + // 1.2.0 patches to 1.2.1 + if (this.prerelease.length === 0) { + this.patch++ + } + this.prerelease = [] + break + // This probably shouldn't be used publicly. + // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction. + case 'pre': { + const base = Number(identifierBase) ? 1 : 0 + + if (this.prerelease.length === 0) { + this.prerelease = [base] + } else { + let i = this.prerelease.length + while (--i >= 0) { + if (typeof this.prerelease[i] === 'number') { + this.prerelease[i]++ + i = -2 + } + } + if (i === -1) { + // didn't increment anything + if (identifier === this.prerelease.join('.') && identifierBase === false) { + throw new Error('invalid increment argument: identifier already exists') + } + this.prerelease.push(base) + } + } + if (identifier) { + // 1.2.0-beta.1 bumps to 1.2.0-beta.2, + // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0 + let prerelease = [identifier, base] + if (identifierBase === false) { + prerelease = [identifier] + } + if (compareIdentifiers(this.prerelease[0], identifier) === 0) { + if (isNaN(this.prerelease[1])) { + this.prerelease = prerelease + } + } else { + this.prerelease = prerelease + } + } + break + } + default: + throw new Error(`invalid increment argument: ${release}`) + } + this.raw = this.format() + if (this.build.length) { + this.raw += `+${this.build.join('.')}` + } + return this + } +} + +module.exports = SemVer diff --git a/server/api/node_modules/jest-snapshot/node_modules/semver/functions/clean.js b/server/api/node_modules/jest-snapshot/node_modules/semver/functions/clean.js new file mode 100644 index 0000000..79703d6 --- /dev/null +++ b/server/api/node_modules/jest-snapshot/node_modules/semver/functions/clean.js @@ -0,0 +1,8 @@ +'use strict' + +const parse = require('./parse') +const clean = (version, options) => { + const s = parse(version.trim().replace(/^[=v]+/, ''), options) + return s ? s.version : null +} +module.exports = clean diff --git a/server/api/node_modules/jest-snapshot/node_modules/semver/functions/cmp.js b/server/api/node_modules/jest-snapshot/node_modules/semver/functions/cmp.js new file mode 100644 index 0000000..77487dc --- /dev/null +++ b/server/api/node_modules/jest-snapshot/node_modules/semver/functions/cmp.js @@ -0,0 +1,54 @@ +'use strict' + +const eq = require('./eq') +const neq = require('./neq') +const gt = require('./gt') +const gte = require('./gte') +const lt = require('./lt') +const lte = require('./lte') + +const cmp = (a, op, b, loose) => { + switch (op) { + case '===': + if (typeof a === 'object') { + a = a.version + } + if (typeof b === 'object') { + b = b.version + } + return a === b + + case '!==': + if (typeof a === 'object') { + a = a.version + } + if (typeof b === 'object') { + b = b.version + } + return a !== b + + case '': + case '=': + case '==': + return eq(a, b, loose) + + case '!=': + return neq(a, b, loose) + + case '>': + return gt(a, b, loose) + + case '>=': + return gte(a, b, loose) + + case '<': + return lt(a, b, loose) + + case '<=': + return lte(a, b, loose) + + default: + throw new TypeError(`Invalid operator: ${op}`) + } +} +module.exports = cmp diff --git a/server/api/node_modules/jest-snapshot/node_modules/semver/functions/coerce.js b/server/api/node_modules/jest-snapshot/node_modules/semver/functions/coerce.js new file mode 100644 index 0000000..cfe0275 --- /dev/null +++ b/server/api/node_modules/jest-snapshot/node_modules/semver/functions/coerce.js @@ -0,0 +1,62 @@ +'use strict' + +const SemVer = require('../classes/semver') +const parse = require('./parse') +const { safeRe: re, t } = require('../internal/re') + +const coerce = (version, options) => { + if (version instanceof SemVer) { + return version + } + + if (typeof version === 'number') { + version = String(version) + } + + if (typeof version !== 'string') { + return null + } + + options = options || {} + + let match = null + if (!options.rtl) { + match = version.match(options.includePrerelease ? re[t.COERCEFULL] : re[t.COERCE]) + } else { + // Find the right-most coercible string that does not share + // a terminus with a more left-ward coercible string. + // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4' + // With includePrerelease option set, '1.2.3.4-rc' wants to coerce '2.3.4-rc', not '2.3.4' + // + // Walk through the string checking with a /g regexp + // Manually set the index so as to pick up overlapping matches. + // Stop when we get a match that ends at the string end, since no + // coercible string can be more right-ward without the same terminus. + const coerceRtlRegex = options.includePrerelease ? re[t.COERCERTLFULL] : re[t.COERCERTL] + let next + while ((next = coerceRtlRegex.exec(version)) && + (!match || match.index + match[0].length !== version.length) + ) { + if (!match || + next.index + next[0].length !== match.index + match[0].length) { + match = next + } + coerceRtlRegex.lastIndex = next.index + next[1].length + next[2].length + } + // leave it in a clean state + coerceRtlRegex.lastIndex = -1 + } + + if (match === null) { + return null + } + + const major = match[2] + const minor = match[3] || '0' + const patch = match[4] || '0' + const prerelease = options.includePrerelease && match[5] ? `-${match[5]}` : '' + const build = options.includePrerelease && match[6] ? `+${match[6]}` : '' + + return parse(`${major}.${minor}.${patch}${prerelease}${build}`, options) +} +module.exports = coerce diff --git a/server/api/node_modules/jest-snapshot/node_modules/semver/functions/compare-build.js b/server/api/node_modules/jest-snapshot/node_modules/semver/functions/compare-build.js new file mode 100644 index 0000000..99157cf --- /dev/null +++ b/server/api/node_modules/jest-snapshot/node_modules/semver/functions/compare-build.js @@ -0,0 +1,9 @@ +'use strict' + +const SemVer = require('../classes/semver') +const compareBuild = (a, b, loose) => { + const versionA = new SemVer(a, loose) + const versionB = new SemVer(b, loose) + return versionA.compare(versionB) || versionA.compareBuild(versionB) +} +module.exports = compareBuild diff --git a/server/api/node_modules/jest-snapshot/node_modules/semver/functions/compare-loose.js b/server/api/node_modules/jest-snapshot/node_modules/semver/functions/compare-loose.js new file mode 100644 index 0000000..7531634 --- /dev/null +++ b/server/api/node_modules/jest-snapshot/node_modules/semver/functions/compare-loose.js @@ -0,0 +1,5 @@ +'use strict' + +const compare = require('./compare') +const compareLoose = (a, b) => compare(a, b, true) +module.exports = compareLoose diff --git a/server/api/node_modules/jest-snapshot/node_modules/semver/functions/compare.js b/server/api/node_modules/jest-snapshot/node_modules/semver/functions/compare.js new file mode 100644 index 0000000..63d8090 --- /dev/null +++ b/server/api/node_modules/jest-snapshot/node_modules/semver/functions/compare.js @@ -0,0 +1,7 @@ +'use strict' + +const SemVer = require('../classes/semver') +const compare = (a, b, loose) => + new SemVer(a, loose).compare(new SemVer(b, loose)) + +module.exports = compare diff --git a/server/api/node_modules/jest-snapshot/node_modules/semver/functions/diff.js b/server/api/node_modules/jest-snapshot/node_modules/semver/functions/diff.js new file mode 100644 index 0000000..c99ab51 --- /dev/null +++ b/server/api/node_modules/jest-snapshot/node_modules/semver/functions/diff.js @@ -0,0 +1,60 @@ +'use strict' + +const parse = require('./parse.js') + +const diff = (version1, version2) => { + const v1 = parse(version1, null, true) + const v2 = parse(version2, null, true) + const comparison = v1.compare(v2) + + if (comparison === 0) { + return null + } + + const v1Higher = comparison > 0 + const highVersion = v1Higher ? v1 : v2 + const lowVersion = v1Higher ? v2 : v1 + const highHasPre = !!highVersion.prerelease.length + const lowHasPre = !!lowVersion.prerelease.length + + if (lowHasPre && !highHasPre) { + // Going from prerelease -> no prerelease requires some special casing + + // If the low version has only a major, then it will always be a major + // Some examples: + // 1.0.0-1 -> 1.0.0 + // 1.0.0-1 -> 1.1.1 + // 1.0.0-1 -> 2.0.0 + if (!lowVersion.patch && !lowVersion.minor) { + return 'major' + } + + // If the main part has no difference + if (lowVersion.compareMain(highVersion) === 0) { + if (lowVersion.minor && !lowVersion.patch) { + return 'minor' + } + return 'patch' + } + } + + // add the `pre` prefix if we are going to a prerelease version + const prefix = highHasPre ? 'pre' : '' + + if (v1.major !== v2.major) { + return prefix + 'major' + } + + if (v1.minor !== v2.minor) { + return prefix + 'minor' + } + + if (v1.patch !== v2.patch) { + return prefix + 'patch' + } + + // high and low are prereleases + return 'prerelease' +} + +module.exports = diff diff --git a/server/api/node_modules/jest-snapshot/node_modules/semver/functions/eq.js b/server/api/node_modules/jest-snapshot/node_modules/semver/functions/eq.js new file mode 100644 index 0000000..5f0eead --- /dev/null +++ b/server/api/node_modules/jest-snapshot/node_modules/semver/functions/eq.js @@ -0,0 +1,5 @@ +'use strict' + +const compare = require('./compare') +const eq = (a, b, loose) => compare(a, b, loose) === 0 +module.exports = eq diff --git a/server/api/node_modules/jest-snapshot/node_modules/semver/functions/gt.js b/server/api/node_modules/jest-snapshot/node_modules/semver/functions/gt.js new file mode 100644 index 0000000..84a57dd --- /dev/null +++ b/server/api/node_modules/jest-snapshot/node_modules/semver/functions/gt.js @@ -0,0 +1,5 @@ +'use strict' + +const compare = require('./compare') +const gt = (a, b, loose) => compare(a, b, loose) > 0 +module.exports = gt diff --git a/server/api/node_modules/jest-snapshot/node_modules/semver/functions/gte.js b/server/api/node_modules/jest-snapshot/node_modules/semver/functions/gte.js new file mode 100644 index 0000000..7c52bdf --- /dev/null +++ b/server/api/node_modules/jest-snapshot/node_modules/semver/functions/gte.js @@ -0,0 +1,5 @@ +'use strict' + +const compare = require('./compare') +const gte = (a, b, loose) => compare(a, b, loose) >= 0 +module.exports = gte diff --git a/server/api/node_modules/jest-snapshot/node_modules/semver/functions/inc.js b/server/api/node_modules/jest-snapshot/node_modules/semver/functions/inc.js new file mode 100644 index 0000000..ff999e9 --- /dev/null +++ b/server/api/node_modules/jest-snapshot/node_modules/semver/functions/inc.js @@ -0,0 +1,21 @@ +'use strict' + +const SemVer = require('../classes/semver') + +const inc = (version, release, options, identifier, identifierBase) => { + if (typeof (options) === 'string') { + identifierBase = identifier + identifier = options + options = undefined + } + + try { + return new SemVer( + version instanceof SemVer ? version.version : version, + options + ).inc(release, identifier, identifierBase).version + } catch (er) { + return null + } +} +module.exports = inc diff --git a/server/api/node_modules/jest-snapshot/node_modules/semver/functions/lt.js b/server/api/node_modules/jest-snapshot/node_modules/semver/functions/lt.js new file mode 100644 index 0000000..2fb32a0 --- /dev/null +++ b/server/api/node_modules/jest-snapshot/node_modules/semver/functions/lt.js @@ -0,0 +1,5 @@ +'use strict' + +const compare = require('./compare') +const lt = (a, b, loose) => compare(a, b, loose) < 0 +module.exports = lt diff --git a/server/api/node_modules/jest-snapshot/node_modules/semver/functions/lte.js b/server/api/node_modules/jest-snapshot/node_modules/semver/functions/lte.js new file mode 100644 index 0000000..da9ee8f --- /dev/null +++ b/server/api/node_modules/jest-snapshot/node_modules/semver/functions/lte.js @@ -0,0 +1,5 @@ +'use strict' + +const compare = require('./compare') +const lte = (a, b, loose) => compare(a, b, loose) <= 0 +module.exports = lte diff --git a/server/api/node_modules/jest-snapshot/node_modules/semver/functions/major.js b/server/api/node_modules/jest-snapshot/node_modules/semver/functions/major.js new file mode 100644 index 0000000..e6d08dc --- /dev/null +++ b/server/api/node_modules/jest-snapshot/node_modules/semver/functions/major.js @@ -0,0 +1,5 @@ +'use strict' + +const SemVer = require('../classes/semver') +const major = (a, loose) => new SemVer(a, loose).major +module.exports = major diff --git a/server/api/node_modules/jest-snapshot/node_modules/semver/functions/minor.js b/server/api/node_modules/jest-snapshot/node_modules/semver/functions/minor.js new file mode 100644 index 0000000..9e70ffd --- /dev/null +++ b/server/api/node_modules/jest-snapshot/node_modules/semver/functions/minor.js @@ -0,0 +1,5 @@ +'use strict' + +const SemVer = require('../classes/semver') +const minor = (a, loose) => new SemVer(a, loose).minor +module.exports = minor diff --git a/server/api/node_modules/jest-snapshot/node_modules/semver/functions/neq.js b/server/api/node_modules/jest-snapshot/node_modules/semver/functions/neq.js new file mode 100644 index 0000000..84326b7 --- /dev/null +++ b/server/api/node_modules/jest-snapshot/node_modules/semver/functions/neq.js @@ -0,0 +1,5 @@ +'use strict' + +const compare = require('./compare') +const neq = (a, b, loose) => compare(a, b, loose) !== 0 +module.exports = neq diff --git a/server/api/node_modules/jest-snapshot/node_modules/semver/functions/parse.js b/server/api/node_modules/jest-snapshot/node_modules/semver/functions/parse.js new file mode 100644 index 0000000..d544d33 --- /dev/null +++ b/server/api/node_modules/jest-snapshot/node_modules/semver/functions/parse.js @@ -0,0 +1,18 @@ +'use strict' + +const SemVer = require('../classes/semver') +const parse = (version, options, throwErrors = false) => { + if (version instanceof SemVer) { + return version + } + try { + return new SemVer(version, options) + } catch (er) { + if (!throwErrors) { + return null + } + throw er + } +} + +module.exports = parse diff --git a/server/api/node_modules/jest-snapshot/node_modules/semver/functions/patch.js b/server/api/node_modules/jest-snapshot/node_modules/semver/functions/patch.js new file mode 100644 index 0000000..7675162 --- /dev/null +++ b/server/api/node_modules/jest-snapshot/node_modules/semver/functions/patch.js @@ -0,0 +1,5 @@ +'use strict' + +const SemVer = require('../classes/semver') +const patch = (a, loose) => new SemVer(a, loose).patch +module.exports = patch diff --git a/server/api/node_modules/jest-snapshot/node_modules/semver/functions/prerelease.js b/server/api/node_modules/jest-snapshot/node_modules/semver/functions/prerelease.js new file mode 100644 index 0000000..b8fe1db --- /dev/null +++ b/server/api/node_modules/jest-snapshot/node_modules/semver/functions/prerelease.js @@ -0,0 +1,8 @@ +'use strict' + +const parse = require('./parse') +const prerelease = (version, options) => { + const parsed = parse(version, options) + return (parsed && parsed.prerelease.length) ? parsed.prerelease : null +} +module.exports = prerelease diff --git a/server/api/node_modules/jest-snapshot/node_modules/semver/functions/rcompare.js b/server/api/node_modules/jest-snapshot/node_modules/semver/functions/rcompare.js new file mode 100644 index 0000000..8e1c222 --- /dev/null +++ b/server/api/node_modules/jest-snapshot/node_modules/semver/functions/rcompare.js @@ -0,0 +1,5 @@ +'use strict' + +const compare = require('./compare') +const rcompare = (a, b, loose) => compare(b, a, loose) +module.exports = rcompare diff --git a/server/api/node_modules/jest-snapshot/node_modules/semver/functions/rsort.js b/server/api/node_modules/jest-snapshot/node_modules/semver/functions/rsort.js new file mode 100644 index 0000000..5d3d200 --- /dev/null +++ b/server/api/node_modules/jest-snapshot/node_modules/semver/functions/rsort.js @@ -0,0 +1,5 @@ +'use strict' + +const compareBuild = require('./compare-build') +const rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose)) +module.exports = rsort diff --git a/server/api/node_modules/jest-snapshot/node_modules/semver/functions/satisfies.js b/server/api/node_modules/jest-snapshot/node_modules/semver/functions/satisfies.js new file mode 100644 index 0000000..a0264a2 --- /dev/null +++ b/server/api/node_modules/jest-snapshot/node_modules/semver/functions/satisfies.js @@ -0,0 +1,12 @@ +'use strict' + +const Range = require('../classes/range') +const satisfies = (version, range, options) => { + try { + range = new Range(range, options) + } catch (er) { + return false + } + return range.test(version) +} +module.exports = satisfies diff --git a/server/api/node_modules/jest-snapshot/node_modules/semver/functions/sort.js b/server/api/node_modules/jest-snapshot/node_modules/semver/functions/sort.js new file mode 100644 index 0000000..edb24b1 --- /dev/null +++ b/server/api/node_modules/jest-snapshot/node_modules/semver/functions/sort.js @@ -0,0 +1,5 @@ +'use strict' + +const compareBuild = require('./compare-build') +const sort = (list, loose) => list.sort((a, b) => compareBuild(a, b, loose)) +module.exports = sort diff --git a/server/api/node_modules/jest-snapshot/node_modules/semver/functions/valid.js b/server/api/node_modules/jest-snapshot/node_modules/semver/functions/valid.js new file mode 100644 index 0000000..0db67ed --- /dev/null +++ b/server/api/node_modules/jest-snapshot/node_modules/semver/functions/valid.js @@ -0,0 +1,8 @@ +'use strict' + +const parse = require('./parse') +const valid = (version, options) => { + const v = parse(version, options) + return v ? v.version : null +} +module.exports = valid diff --git a/server/api/node_modules/jest-snapshot/node_modules/semver/index.js b/server/api/node_modules/jest-snapshot/node_modules/semver/index.js new file mode 100644 index 0000000..285662a --- /dev/null +++ b/server/api/node_modules/jest-snapshot/node_modules/semver/index.js @@ -0,0 +1,91 @@ +'use strict' + +// just pre-load all the stuff that index.js lazily exports +const internalRe = require('./internal/re') +const constants = require('./internal/constants') +const SemVer = require('./classes/semver') +const identifiers = require('./internal/identifiers') +const parse = require('./functions/parse') +const valid = require('./functions/valid') +const clean = require('./functions/clean') +const inc = require('./functions/inc') +const diff = require('./functions/diff') +const major = require('./functions/major') +const minor = require('./functions/minor') +const patch = require('./functions/patch') +const prerelease = require('./functions/prerelease') +const compare = require('./functions/compare') +const rcompare = require('./functions/rcompare') +const compareLoose = require('./functions/compare-loose') +const compareBuild = require('./functions/compare-build') +const sort = require('./functions/sort') +const rsort = require('./functions/rsort') +const gt = require('./functions/gt') +const lt = require('./functions/lt') +const eq = require('./functions/eq') +const neq = require('./functions/neq') +const gte = require('./functions/gte') +const lte = require('./functions/lte') +const cmp = require('./functions/cmp') +const coerce = require('./functions/coerce') +const Comparator = require('./classes/comparator') +const Range = require('./classes/range') +const satisfies = require('./functions/satisfies') +const toComparators = require('./ranges/to-comparators') +const maxSatisfying = require('./ranges/max-satisfying') +const minSatisfying = require('./ranges/min-satisfying') +const minVersion = require('./ranges/min-version') +const validRange = require('./ranges/valid') +const outside = require('./ranges/outside') +const gtr = require('./ranges/gtr') +const ltr = require('./ranges/ltr') +const intersects = require('./ranges/intersects') +const simplifyRange = require('./ranges/simplify') +const subset = require('./ranges/subset') +module.exports = { + parse, + valid, + clean, + inc, + diff, + major, + minor, + patch, + prerelease, + compare, + rcompare, + compareLoose, + compareBuild, + sort, + rsort, + gt, + lt, + eq, + neq, + gte, + lte, + cmp, + coerce, + Comparator, + Range, + satisfies, + toComparators, + maxSatisfying, + minSatisfying, + minVersion, + validRange, + outside, + gtr, + ltr, + intersects, + simplifyRange, + subset, + SemVer, + re: internalRe.re, + src: internalRe.src, + tokens: internalRe.t, + SEMVER_SPEC_VERSION: constants.SEMVER_SPEC_VERSION, + RELEASE_TYPES: constants.RELEASE_TYPES, + compareIdentifiers: identifiers.compareIdentifiers, + rcompareIdentifiers: identifiers.rcompareIdentifiers, +} diff --git a/server/api/node_modules/jest-snapshot/node_modules/semver/internal/constants.js b/server/api/node_modules/jest-snapshot/node_modules/semver/internal/constants.js new file mode 100644 index 0000000..6d1db91 --- /dev/null +++ b/server/api/node_modules/jest-snapshot/node_modules/semver/internal/constants.js @@ -0,0 +1,37 @@ +'use strict' + +// Note: this is the semver.org version of the spec that it implements +// Not necessarily the package version of this code. +const SEMVER_SPEC_VERSION = '2.0.0' + +const MAX_LENGTH = 256 +const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || +/* istanbul ignore next */ 9007199254740991 + +// Max safe segment length for coercion. +const MAX_SAFE_COMPONENT_LENGTH = 16 + +// Max safe length for a build identifier. The max length minus 6 characters for +// the shortest version with a build 0.0.0+BUILD. +const MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6 + +const RELEASE_TYPES = [ + 'major', + 'premajor', + 'minor', + 'preminor', + 'patch', + 'prepatch', + 'prerelease', +] + +module.exports = { + MAX_LENGTH, + MAX_SAFE_COMPONENT_LENGTH, + MAX_SAFE_BUILD_LENGTH, + MAX_SAFE_INTEGER, + RELEASE_TYPES, + SEMVER_SPEC_VERSION, + FLAG_INCLUDE_PRERELEASE: 0b001, + FLAG_LOOSE: 0b010, +} diff --git a/server/api/node_modules/jest-snapshot/node_modules/semver/internal/debug.js b/server/api/node_modules/jest-snapshot/node_modules/semver/internal/debug.js new file mode 100644 index 0000000..20d1e9d --- /dev/null +++ b/server/api/node_modules/jest-snapshot/node_modules/semver/internal/debug.js @@ -0,0 +1,11 @@ +'use strict' + +const debug = ( + typeof process === 'object' && + process.env && + process.env.NODE_DEBUG && + /\bsemver\b/i.test(process.env.NODE_DEBUG) +) ? (...args) => console.error('SEMVER', ...args) + : () => {} + +module.exports = debug diff --git a/server/api/node_modules/jest-snapshot/node_modules/semver/internal/identifiers.js b/server/api/node_modules/jest-snapshot/node_modules/semver/internal/identifiers.js new file mode 100644 index 0000000..d053472 --- /dev/null +++ b/server/api/node_modules/jest-snapshot/node_modules/semver/internal/identifiers.js @@ -0,0 +1,29 @@ +'use strict' + +const numeric = /^[0-9]+$/ +const compareIdentifiers = (a, b) => { + if (typeof a === 'number' && typeof b === 'number') { + return a === b ? 0 : a < b ? -1 : 1 + } + + const anum = numeric.test(a) + const bnum = numeric.test(b) + + if (anum && bnum) { + a = +a + b = +b + } + + return a === b ? 0 + : (anum && !bnum) ? -1 + : (bnum && !anum) ? 1 + : a < b ? -1 + : 1 +} + +const rcompareIdentifiers = (a, b) => compareIdentifiers(b, a) + +module.exports = { + compareIdentifiers, + rcompareIdentifiers, +} diff --git a/server/api/node_modules/jest-snapshot/node_modules/semver/internal/lrucache.js b/server/api/node_modules/jest-snapshot/node_modules/semver/internal/lrucache.js new file mode 100644 index 0000000..b8bf526 --- /dev/null +++ b/server/api/node_modules/jest-snapshot/node_modules/semver/internal/lrucache.js @@ -0,0 +1,42 @@ +'use strict' + +class LRUCache { + constructor () { + this.max = 1000 + this.map = new Map() + } + + get (key) { + const value = this.map.get(key) + if (value === undefined) { + return undefined + } else { + // Remove the key from the map and add it to the end + this.map.delete(key) + this.map.set(key, value) + return value + } + } + + delete (key) { + return this.map.delete(key) + } + + set (key, value) { + const deleted = this.delete(key) + + if (!deleted && value !== undefined) { + // If cache is full, delete the least recently used item + if (this.map.size >= this.max) { + const firstKey = this.map.keys().next().value + this.delete(firstKey) + } + + this.map.set(key, value) + } + + return this + } +} + +module.exports = LRUCache diff --git a/server/api/node_modules/jest-snapshot/node_modules/semver/internal/parse-options.js b/server/api/node_modules/jest-snapshot/node_modules/semver/internal/parse-options.js new file mode 100644 index 0000000..5295454 --- /dev/null +++ b/server/api/node_modules/jest-snapshot/node_modules/semver/internal/parse-options.js @@ -0,0 +1,17 @@ +'use strict' + +// parse out just the options we care about +const looseOption = Object.freeze({ loose: true }) +const emptyOpts = Object.freeze({ }) +const parseOptions = options => { + if (!options) { + return emptyOpts + } + + if (typeof options !== 'object') { + return looseOption + } + + return options +} +module.exports = parseOptions diff --git a/server/api/node_modules/jest-snapshot/node_modules/semver/internal/re.js b/server/api/node_modules/jest-snapshot/node_modules/semver/internal/re.js new file mode 100644 index 0000000..639fca8 --- /dev/null +++ b/server/api/node_modules/jest-snapshot/node_modules/semver/internal/re.js @@ -0,0 +1,223 @@ +'use strict' + +const { + MAX_SAFE_COMPONENT_LENGTH, + MAX_SAFE_BUILD_LENGTH, + MAX_LENGTH, +} = require('./constants') +const debug = require('./debug') +exports = module.exports = {} + +// The actual regexps go on exports.re +const re = exports.re = [] +const safeRe = exports.safeRe = [] +const src = exports.src = [] +const safeSrc = exports.safeSrc = [] +const t = exports.t = {} +let R = 0 + +const LETTERDASHNUMBER = '[a-zA-Z0-9-]' + +// Replace some greedy regex tokens to prevent regex dos issues. These regex are +// used internally via the safeRe object since all inputs in this library get +// normalized first to trim and collapse all extra whitespace. The original +// regexes are exported for userland consumption and lower level usage. A +// future breaking change could export the safer regex only with a note that +// all input should have extra whitespace removed. +const safeRegexReplacements = [ + ['\\s', 1], + ['\\d', MAX_LENGTH], + [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH], +] + +const makeSafeRegex = (value) => { + for (const [token, max] of safeRegexReplacements) { + value = value + .split(`${token}*`).join(`${token}{0,${max}}`) + .split(`${token}+`).join(`${token}{1,${max}}`) + } + return value +} + +const createToken = (name, value, isGlobal) => { + const safe = makeSafeRegex(value) + const index = R++ + debug(name, index, value) + t[name] = index + src[index] = value + safeSrc[index] = safe + re[index] = new RegExp(value, isGlobal ? 'g' : undefined) + safeRe[index] = new RegExp(safe, isGlobal ? 'g' : undefined) +} + +// The following Regular Expressions can be used for tokenizing, +// validating, and parsing SemVer version strings. + +// ## Numeric Identifier +// A single `0`, or a non-zero digit followed by zero or more digits. + +createToken('NUMERICIDENTIFIER', '0|[1-9]\\d*') +createToken('NUMERICIDENTIFIERLOOSE', '\\d+') + +// ## Non-numeric Identifier +// Zero or more digits, followed by a letter or hyphen, and then zero or +// more letters, digits, or hyphens. + +createToken('NONNUMERICIDENTIFIER', `\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`) + +// ## Main Version +// Three dot-separated numeric identifiers. + +createToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\.` + + `(${src[t.NUMERICIDENTIFIER]})\\.` + + `(${src[t.NUMERICIDENTIFIER]})`) + +createToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.` + + `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.` + + `(${src[t.NUMERICIDENTIFIERLOOSE]})`) + +// ## Pre-release Version Identifier +// A numeric identifier, or a non-numeric identifier. +// Non-numeric identifiers include numeric identifiers but can be longer. +// Therefore non-numeric identifiers must go first. + +createToken('PRERELEASEIDENTIFIER', `(?:${src[t.NONNUMERICIDENTIFIER] +}|${src[t.NUMERICIDENTIFIER]})`) + +createToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NONNUMERICIDENTIFIER] +}|${src[t.NUMERICIDENTIFIERLOOSE]})`) + +// ## Pre-release Version +// Hyphen, followed by one or more dot-separated pre-release version +// identifiers. + +createToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER] +}(?:\\.${src[t.PRERELEASEIDENTIFIER]})*))`) + +createToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE] +}(?:\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`) + +// ## Build Metadata Identifier +// Any combination of digits, letters, or hyphens. + +createToken('BUILDIDENTIFIER', `${LETTERDASHNUMBER}+`) + +// ## Build Metadata +// Plus sign, followed by one or more period-separated build metadata +// identifiers. + +createToken('BUILD', `(?:\\+(${src[t.BUILDIDENTIFIER] +}(?:\\.${src[t.BUILDIDENTIFIER]})*))`) + +// ## Full Version String +// A main version, followed optionally by a pre-release version and +// build metadata. + +// Note that the only major, minor, patch, and pre-release sections of +// the version string are capturing groups. The build metadata is not a +// capturing group, because it should not ever be used in version +// comparison. + +createToken('FULLPLAIN', `v?${src[t.MAINVERSION] +}${src[t.PRERELEASE]}?${ + src[t.BUILD]}?`) + +createToken('FULL', `^${src[t.FULLPLAIN]}$`) + +// like full, but allows v1.2.3 and =1.2.3, which people do sometimes. +// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty +// common in the npm registry. +createToken('LOOSEPLAIN', `[v=\\s]*${src[t.MAINVERSIONLOOSE] +}${src[t.PRERELEASELOOSE]}?${ + src[t.BUILD]}?`) + +createToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`) + +createToken('GTLT', '((?:<|>)?=?)') + +// Something like "2.*" or "1.2.x". +// Note that "x.x" is a valid xRange identifer, meaning "any version" +// Only the first item is strictly required. +createToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`) +createToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\*`) + +createToken('XRANGEPLAIN', `[v=\\s]*(${src[t.XRANGEIDENTIFIER]})` + + `(?:\\.(${src[t.XRANGEIDENTIFIER]})` + + `(?:\\.(${src[t.XRANGEIDENTIFIER]})` + + `(?:${src[t.PRERELEASE]})?${ + src[t.BUILD]}?` + + `)?)?`) + +createToken('XRANGEPLAINLOOSE', `[v=\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` + + `(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` + + `(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` + + `(?:${src[t.PRERELEASELOOSE]})?${ + src[t.BUILD]}?` + + `)?)?`) + +createToken('XRANGE', `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAIN]}$`) +createToken('XRANGELOOSE', `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAINLOOSE]}$`) + +// Coercion. +// Extract anything that could conceivably be a part of a valid semver +createToken('COERCEPLAIN', `${'(^|[^\\d])' + + '(\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` + + `(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` + + `(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`) +createToken('COERCE', `${src[t.COERCEPLAIN]}(?:$|[^\\d])`) +createToken('COERCEFULL', src[t.COERCEPLAIN] + + `(?:${src[t.PRERELEASE]})?` + + `(?:${src[t.BUILD]})?` + + `(?:$|[^\\d])`) +createToken('COERCERTL', src[t.COERCE], true) +createToken('COERCERTLFULL', src[t.COERCEFULL], true) + +// Tilde ranges. +// Meaning is "reasonably at or greater than" +createToken('LONETILDE', '(?:~>?)') + +createToken('TILDETRIM', `(\\s*)${src[t.LONETILDE]}\\s+`, true) +exports.tildeTrimReplace = '$1~' + +createToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`) +createToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`) + +// Caret ranges. +// Meaning is "at least and backwards compatible with" +createToken('LONECARET', '(?:\\^)') + +createToken('CARETTRIM', `(\\s*)${src[t.LONECARET]}\\s+`, true) +exports.caretTrimReplace = '$1^' + +createToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`) +createToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`) + +// A simple gt/lt/eq thing, or just "" to indicate "any version" +createToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\s*(${src[t.LOOSEPLAIN]})$|^$`) +createToken('COMPARATOR', `^${src[t.GTLT]}\\s*(${src[t.FULLPLAIN]})$|^$`) + +// An expression to strip any whitespace between the gtlt and the thing +// it modifies, so that `> 1.2.3` ==> `>1.2.3` +createToken('COMPARATORTRIM', `(\\s*)${src[t.GTLT] +}\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true) +exports.comparatorTrimReplace = '$1$2$3' + +// Something like `1.2.3 - 1.2.4` +// Note that these all use the loose form, because they'll be +// checked against either the strict or loose comparator form +// later. +createToken('HYPHENRANGE', `^\\s*(${src[t.XRANGEPLAIN]})` + + `\\s+-\\s+` + + `(${src[t.XRANGEPLAIN]})` + + `\\s*$`) + +createToken('HYPHENRANGELOOSE', `^\\s*(${src[t.XRANGEPLAINLOOSE]})` + + `\\s+-\\s+` + + `(${src[t.XRANGEPLAINLOOSE]})` + + `\\s*$`) + +// Star ranges basically just allow anything at all. +createToken('STAR', '(<|>)?=?\\s*\\*') +// >=0.0.0 is like a star +createToken('GTE0', '^\\s*>=\\s*0\\.0\\.0\\s*$') +createToken('GTE0PRE', '^\\s*>=\\s*0\\.0\\.0-0\\s*$') diff --git a/server/api/node_modules/jest-snapshot/node_modules/semver/package.json b/server/api/node_modules/jest-snapshot/node_modules/semver/package.json new file mode 100644 index 0000000..a84de91 --- /dev/null +++ b/server/api/node_modules/jest-snapshot/node_modules/semver/package.json @@ -0,0 +1,78 @@ +{ + "name": "semver", + "version": "7.7.4", + "description": "The semantic version parser used by npm.", + "main": "index.js", + "scripts": { + "test": "tap", + "snap": "tap", + "lint": "npm run eslint", + "postlint": "template-oss-check", + "lintfix": "npm run eslint -- --fix", + "posttest": "npm run lint", + "template-oss-apply": "template-oss-apply --force", + "eslint": "eslint \"**/*.{js,cjs,ts,mjs,jsx,tsx}\"" + }, + "devDependencies": { + "@npmcli/eslint-config": "^6.0.0", + "@npmcli/template-oss": "4.29.0", + "benchmark": "^2.1.4", + "tap": "^16.0.0" + }, + "license": "ISC", + "repository": { + "type": "git", + "url": "git+https://github.com/npm/node-semver.git" + }, + "bin": { + "semver": "bin/semver.js" + }, + "files": [ + "bin/", + "lib/", + "classes/", + "functions/", + "internal/", + "ranges/", + "index.js", + "preload.js", + "range.bnf" + ], + "tap": { + "timeout": 30, + "coverage-map": "map.js", + "nyc-arg": [ + "--exclude", + "tap-snapshots/**" + ] + }, + "engines": { + "node": ">=10" + }, + "author": "GitHub Inc.", + "templateOSS": { + "//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.", + "version": "4.29.0", + "engines": ">=10", + "distPaths": [ + "classes/", + "functions/", + "internal/", + "ranges/", + "index.js", + "preload.js", + "range.bnf" + ], + "allowPaths": [ + "/classes/", + "/functions/", + "/internal/", + "/ranges/", + "/index.js", + "/preload.js", + "/range.bnf", + "/benchmarks" + ], + "publish": "true" + } +} diff --git a/server/api/node_modules/jest-snapshot/node_modules/semver/preload.js b/server/api/node_modules/jest-snapshot/node_modules/semver/preload.js new file mode 100644 index 0000000..e6c47b9 --- /dev/null +++ b/server/api/node_modules/jest-snapshot/node_modules/semver/preload.js @@ -0,0 +1,4 @@ +'use strict' + +// XXX remove in v8 or beyond +module.exports = require('./index.js') diff --git a/server/api/node_modules/jest-snapshot/node_modules/semver/range.bnf b/server/api/node_modules/jest-snapshot/node_modules/semver/range.bnf new file mode 100644 index 0000000..d4c6ae0 --- /dev/null +++ b/server/api/node_modules/jest-snapshot/node_modules/semver/range.bnf @@ -0,0 +1,16 @@ +range-set ::= range ( logical-or range ) * +logical-or ::= ( ' ' ) * '||' ( ' ' ) * +range ::= hyphen | simple ( ' ' simple ) * | '' +hyphen ::= partial ' - ' partial +simple ::= primitive | partial | tilde | caret +primitive ::= ( '<' | '>' | '>=' | '<=' | '=' ) partial +partial ::= xr ( '.' xr ( '.' xr qualifier ? )? )? +xr ::= 'x' | 'X' | '*' | nr +nr ::= '0' | [1-9] ( [0-9] ) * +tilde ::= '~' partial +caret ::= '^' partial +qualifier ::= ( '-' pre )? ( '+' build )? +pre ::= parts +build ::= parts +parts ::= part ( '.' part ) * +part ::= nr | [-0-9A-Za-z]+ diff --git a/server/api/node_modules/jest-snapshot/node_modules/semver/ranges/gtr.js b/server/api/node_modules/jest-snapshot/node_modules/semver/ranges/gtr.js new file mode 100644 index 0000000..0e7601f --- /dev/null +++ b/server/api/node_modules/jest-snapshot/node_modules/semver/ranges/gtr.js @@ -0,0 +1,6 @@ +'use strict' + +// Determine if version is greater than all the versions possible in the range. +const outside = require('./outside') +const gtr = (version, range, options) => outside(version, range, '>', options) +module.exports = gtr diff --git a/server/api/node_modules/jest-snapshot/node_modules/semver/ranges/intersects.js b/server/api/node_modules/jest-snapshot/node_modules/semver/ranges/intersects.js new file mode 100644 index 0000000..917be7e --- /dev/null +++ b/server/api/node_modules/jest-snapshot/node_modules/semver/ranges/intersects.js @@ -0,0 +1,9 @@ +'use strict' + +const Range = require('../classes/range') +const intersects = (r1, r2, options) => { + r1 = new Range(r1, options) + r2 = new Range(r2, options) + return r1.intersects(r2, options) +} +module.exports = intersects diff --git a/server/api/node_modules/jest-snapshot/node_modules/semver/ranges/ltr.js b/server/api/node_modules/jest-snapshot/node_modules/semver/ranges/ltr.js new file mode 100644 index 0000000..aa5e568 --- /dev/null +++ b/server/api/node_modules/jest-snapshot/node_modules/semver/ranges/ltr.js @@ -0,0 +1,6 @@ +'use strict' + +const outside = require('./outside') +// Determine if version is less than all the versions possible in the range +const ltr = (version, range, options) => outside(version, range, '<', options) +module.exports = ltr diff --git a/server/api/node_modules/jest-snapshot/node_modules/semver/ranges/max-satisfying.js b/server/api/node_modules/jest-snapshot/node_modules/semver/ranges/max-satisfying.js new file mode 100644 index 0000000..01fe5ae --- /dev/null +++ b/server/api/node_modules/jest-snapshot/node_modules/semver/ranges/max-satisfying.js @@ -0,0 +1,27 @@ +'use strict' + +const SemVer = require('../classes/semver') +const Range = require('../classes/range') + +const maxSatisfying = (versions, range, options) => { + let max = null + let maxSV = null + let rangeObj = null + try { + rangeObj = new Range(range, options) + } catch (er) { + return null + } + versions.forEach((v) => { + if (rangeObj.test(v)) { + // satisfies(v, range, options) + if (!max || maxSV.compare(v) === -1) { + // compare(max, v, true) + max = v + maxSV = new SemVer(max, options) + } + } + }) + return max +} +module.exports = maxSatisfying diff --git a/server/api/node_modules/jest-snapshot/node_modules/semver/ranges/min-satisfying.js b/server/api/node_modules/jest-snapshot/node_modules/semver/ranges/min-satisfying.js new file mode 100644 index 0000000..af89c8e --- /dev/null +++ b/server/api/node_modules/jest-snapshot/node_modules/semver/ranges/min-satisfying.js @@ -0,0 +1,26 @@ +'use strict' + +const SemVer = require('../classes/semver') +const Range = require('../classes/range') +const minSatisfying = (versions, range, options) => { + let min = null + let minSV = null + let rangeObj = null + try { + rangeObj = new Range(range, options) + } catch (er) { + return null + } + versions.forEach((v) => { + if (rangeObj.test(v)) { + // satisfies(v, range, options) + if (!min || minSV.compare(v) === 1) { + // compare(min, v, true) + min = v + minSV = new SemVer(min, options) + } + } + }) + return min +} +module.exports = minSatisfying diff --git a/server/api/node_modules/jest-snapshot/node_modules/semver/ranges/min-version.js b/server/api/node_modules/jest-snapshot/node_modules/semver/ranges/min-version.js new file mode 100644 index 0000000..09a65aa --- /dev/null +++ b/server/api/node_modules/jest-snapshot/node_modules/semver/ranges/min-version.js @@ -0,0 +1,63 @@ +'use strict' + +const SemVer = require('../classes/semver') +const Range = require('../classes/range') +const gt = require('../functions/gt') + +const minVersion = (range, loose) => { + range = new Range(range, loose) + + let minver = new SemVer('0.0.0') + if (range.test(minver)) { + return minver + } + + minver = new SemVer('0.0.0-0') + if (range.test(minver)) { + return minver + } + + minver = null + for (let i = 0; i < range.set.length; ++i) { + const comparators = range.set[i] + + let setMin = null + comparators.forEach((comparator) => { + // Clone to avoid manipulating the comparator's semver object. + const compver = new SemVer(comparator.semver.version) + switch (comparator.operator) { + case '>': + if (compver.prerelease.length === 0) { + compver.patch++ + } else { + compver.prerelease.push(0) + } + compver.raw = compver.format() + /* fallthrough */ + case '': + case '>=': + if (!setMin || gt(compver, setMin)) { + setMin = compver + } + break + case '<': + case '<=': + /* Ignore maximum versions */ + break + /* istanbul ignore next */ + default: + throw new Error(`Unexpected operation: ${comparator.operator}`) + } + }) + if (setMin && (!minver || gt(minver, setMin))) { + minver = setMin + } + } + + if (minver && range.test(minver)) { + return minver + } + + return null +} +module.exports = minVersion diff --git a/server/api/node_modules/jest-snapshot/node_modules/semver/ranges/outside.js b/server/api/node_modules/jest-snapshot/node_modules/semver/ranges/outside.js new file mode 100644 index 0000000..ca74421 --- /dev/null +++ b/server/api/node_modules/jest-snapshot/node_modules/semver/ranges/outside.js @@ -0,0 +1,82 @@ +'use strict' + +const SemVer = require('../classes/semver') +const Comparator = require('../classes/comparator') +const { ANY } = Comparator +const Range = require('../classes/range') +const satisfies = require('../functions/satisfies') +const gt = require('../functions/gt') +const lt = require('../functions/lt') +const lte = require('../functions/lte') +const gte = require('../functions/gte') + +const outside = (version, range, hilo, options) => { + version = new SemVer(version, options) + range = new Range(range, options) + + let gtfn, ltefn, ltfn, comp, ecomp + switch (hilo) { + case '>': + gtfn = gt + ltefn = lte + ltfn = lt + comp = '>' + ecomp = '>=' + break + case '<': + gtfn = lt + ltefn = gte + ltfn = gt + comp = '<' + ecomp = '<=' + break + default: + throw new TypeError('Must provide a hilo val of "<" or ">"') + } + + // If it satisfies the range it is not outside + if (satisfies(version, range, options)) { + return false + } + + // From now on, variable terms are as if we're in "gtr" mode. + // but note that everything is flipped for the "ltr" function. + + for (let i = 0; i < range.set.length; ++i) { + const comparators = range.set[i] + + let high = null + let low = null + + comparators.forEach((comparator) => { + if (comparator.semver === ANY) { + comparator = new Comparator('>=0.0.0') + } + high = high || comparator + low = low || comparator + if (gtfn(comparator.semver, high.semver, options)) { + high = comparator + } else if (ltfn(comparator.semver, low.semver, options)) { + low = comparator + } + }) + + // If the edge version comparator has a operator then our version + // isn't outside it + if (high.operator === comp || high.operator === ecomp) { + return false + } + + // If the lowest version comparator has an operator and our version + // is less than it then it isn't higher than the range + if ((!low.operator || low.operator === comp) && + ltefn(version, low.semver)) { + return false + } else if (low.operator === ecomp && ltfn(version, low.semver)) { + return false + } + } + return true +} + +module.exports = outside diff --git a/server/api/node_modules/jest-snapshot/node_modules/semver/ranges/simplify.js b/server/api/node_modules/jest-snapshot/node_modules/semver/ranges/simplify.js new file mode 100644 index 0000000..262732e --- /dev/null +++ b/server/api/node_modules/jest-snapshot/node_modules/semver/ranges/simplify.js @@ -0,0 +1,49 @@ +'use strict' + +// given a set of versions and a range, create a "simplified" range +// that includes the same versions that the original range does +// If the original range is shorter than the simplified one, return that. +const satisfies = require('../functions/satisfies.js') +const compare = require('../functions/compare.js') +module.exports = (versions, range, options) => { + const set = [] + let first = null + let prev = null + const v = versions.sort((a, b) => compare(a, b, options)) + for (const version of v) { + const included = satisfies(version, range, options) + if (included) { + prev = version + if (!first) { + first = version + } + } else { + if (prev) { + set.push([first, prev]) + } + prev = null + first = null + } + } + if (first) { + set.push([first, null]) + } + + const ranges = [] + for (const [min, max] of set) { + if (min === max) { + ranges.push(min) + } else if (!max && min === v[0]) { + ranges.push('*') + } else if (!max) { + ranges.push(`>=${min}`) + } else if (min === v[0]) { + ranges.push(`<=${max}`) + } else { + ranges.push(`${min} - ${max}`) + } + } + const simplified = ranges.join(' || ') + const original = typeof range.raw === 'string' ? range.raw : String(range) + return simplified.length < original.length ? simplified : range +} diff --git a/server/api/node_modules/jest-snapshot/node_modules/semver/ranges/subset.js b/server/api/node_modules/jest-snapshot/node_modules/semver/ranges/subset.js new file mode 100644 index 0000000..99f4321 --- /dev/null +++ b/server/api/node_modules/jest-snapshot/node_modules/semver/ranges/subset.js @@ -0,0 +1,249 @@ +'use strict' + +const Range = require('../classes/range.js') +const Comparator = require('../classes/comparator.js') +const { ANY } = Comparator +const satisfies = require('../functions/satisfies.js') +const compare = require('../functions/compare.js') + +// Complex range `r1 || r2 || ...` is a subset of `R1 || R2 || ...` iff: +// - Every simple range `r1, r2, ...` is a null set, OR +// - Every simple range `r1, r2, ...` which is not a null set is a subset of +// some `R1, R2, ...` +// +// Simple range `c1 c2 ...` is a subset of simple range `C1 C2 ...` iff: +// - If c is only the ANY comparator +// - If C is only the ANY comparator, return true +// - Else if in prerelease mode, return false +// - else replace c with `[>=0.0.0]` +// - If C is only the ANY comparator +// - if in prerelease mode, return true +// - else replace C with `[>=0.0.0]` +// - Let EQ be the set of = comparators in c +// - If EQ is more than one, return true (null set) +// - Let GT be the highest > or >= comparator in c +// - Let LT be the lowest < or <= comparator in c +// - If GT and LT, and GT.semver > LT.semver, return true (null set) +// - If any C is a = range, and GT or LT are set, return false +// - If EQ +// - If GT, and EQ does not satisfy GT, return true (null set) +// - If LT, and EQ does not satisfy LT, return true (null set) +// - If EQ satisfies every C, return true +// - Else return false +// - If GT +// - If GT.semver is lower than any > or >= comp in C, return false +// - If GT is >=, and GT.semver does not satisfy every C, return false +// - If GT.semver has a prerelease, and not in prerelease mode +// - If no C has a prerelease and the GT.semver tuple, return false +// - If LT +// - If LT.semver is greater than any < or <= comp in C, return false +// - If LT is <=, and LT.semver does not satisfy every C, return false +// - If LT.semver has a prerelease, and not in prerelease mode +// - If no C has a prerelease and the LT.semver tuple, return false +// - Else return true + +const subset = (sub, dom, options = {}) => { + if (sub === dom) { + return true + } + + sub = new Range(sub, options) + dom = new Range(dom, options) + let sawNonNull = false + + OUTER: for (const simpleSub of sub.set) { + for (const simpleDom of dom.set) { + const isSub = simpleSubset(simpleSub, simpleDom, options) + sawNonNull = sawNonNull || isSub !== null + if (isSub) { + continue OUTER + } + } + // the null set is a subset of everything, but null simple ranges in + // a complex range should be ignored. so if we saw a non-null range, + // then we know this isn't a subset, but if EVERY simple range was null, + // then it is a subset. + if (sawNonNull) { + return false + } + } + return true +} + +const minimumVersionWithPreRelease = [new Comparator('>=0.0.0-0')] +const minimumVersion = [new Comparator('>=0.0.0')] + +const simpleSubset = (sub, dom, options) => { + if (sub === dom) { + return true + } + + if (sub.length === 1 && sub[0].semver === ANY) { + if (dom.length === 1 && dom[0].semver === ANY) { + return true + } else if (options.includePrerelease) { + sub = minimumVersionWithPreRelease + } else { + sub = minimumVersion + } + } + + if (dom.length === 1 && dom[0].semver === ANY) { + if (options.includePrerelease) { + return true + } else { + dom = minimumVersion + } + } + + const eqSet = new Set() + let gt, lt + for (const c of sub) { + if (c.operator === '>' || c.operator === '>=') { + gt = higherGT(gt, c, options) + } else if (c.operator === '<' || c.operator === '<=') { + lt = lowerLT(lt, c, options) + } else { + eqSet.add(c.semver) + } + } + + if (eqSet.size > 1) { + return null + } + + let gtltComp + if (gt && lt) { + gtltComp = compare(gt.semver, lt.semver, options) + if (gtltComp > 0) { + return null + } else if (gtltComp === 0 && (gt.operator !== '>=' || lt.operator !== '<=')) { + return null + } + } + + // will iterate one or zero times + for (const eq of eqSet) { + if (gt && !satisfies(eq, String(gt), options)) { + return null + } + + if (lt && !satisfies(eq, String(lt), options)) { + return null + } + + for (const c of dom) { + if (!satisfies(eq, String(c), options)) { + return false + } + } + + return true + } + + let higher, lower + let hasDomLT, hasDomGT + // if the subset has a prerelease, we need a comparator in the superset + // with the same tuple and a prerelease, or it's not a subset + let needDomLTPre = lt && + !options.includePrerelease && + lt.semver.prerelease.length ? lt.semver : false + let needDomGTPre = gt && + !options.includePrerelease && + gt.semver.prerelease.length ? gt.semver : false + // exception: <1.2.3-0 is the same as <1.2.3 + if (needDomLTPre && needDomLTPre.prerelease.length === 1 && + lt.operator === '<' && needDomLTPre.prerelease[0] === 0) { + needDomLTPre = false + } + + for (const c of dom) { + hasDomGT = hasDomGT || c.operator === '>' || c.operator === '>=' + hasDomLT = hasDomLT || c.operator === '<' || c.operator === '<=' + if (gt) { + if (needDomGTPre) { + if (c.semver.prerelease && c.semver.prerelease.length && + c.semver.major === needDomGTPre.major && + c.semver.minor === needDomGTPre.minor && + c.semver.patch === needDomGTPre.patch) { + needDomGTPre = false + } + } + if (c.operator === '>' || c.operator === '>=') { + higher = higherGT(gt, c, options) + if (higher === c && higher !== gt) { + return false + } + } else if (gt.operator === '>=' && !satisfies(gt.semver, String(c), options)) { + return false + } + } + if (lt) { + if (needDomLTPre) { + if (c.semver.prerelease && c.semver.prerelease.length && + c.semver.major === needDomLTPre.major && + c.semver.minor === needDomLTPre.minor && + c.semver.patch === needDomLTPre.patch) { + needDomLTPre = false + } + } + if (c.operator === '<' || c.operator === '<=') { + lower = lowerLT(lt, c, options) + if (lower === c && lower !== lt) { + return false + } + } else if (lt.operator === '<=' && !satisfies(lt.semver, String(c), options)) { + return false + } + } + if (!c.operator && (lt || gt) && gtltComp !== 0) { + return false + } + } + + // if there was a < or >, and nothing in the dom, then must be false + // UNLESS it was limited by another range in the other direction. + // Eg, >1.0.0 <1.0.1 is still a subset of <2.0.0 + if (gt && hasDomLT && !lt && gtltComp !== 0) { + return false + } + + if (lt && hasDomGT && !gt && gtltComp !== 0) { + return false + } + + // we needed a prerelease range in a specific tuple, but didn't get one + // then this isn't a subset. eg >=1.2.3-pre is not a subset of >=1.0.0, + // because it includes prereleases in the 1.2.3 tuple + if (needDomGTPre || needDomLTPre) { + return false + } + + return true +} + +// >=1.2.3 is lower than >1.2.3 +const higherGT = (a, b, options) => { + if (!a) { + return b + } + const comp = compare(a.semver, b.semver, options) + return comp > 0 ? a + : comp < 0 ? b + : b.operator === '>' && a.operator === '>=' ? b + : a +} + +// <=1.2.3 is higher than <1.2.3 +const lowerLT = (a, b, options) => { + if (!a) { + return b + } + const comp = compare(a.semver, b.semver, options) + return comp < 0 ? a + : comp > 0 ? b + : b.operator === '<' && a.operator === '<=' ? b + : a +} + +module.exports = subset diff --git a/server/api/node_modules/jest-snapshot/node_modules/semver/ranges/to-comparators.js b/server/api/node_modules/jest-snapshot/node_modules/semver/ranges/to-comparators.js new file mode 100644 index 0000000..5be2519 --- /dev/null +++ b/server/api/node_modules/jest-snapshot/node_modules/semver/ranges/to-comparators.js @@ -0,0 +1,10 @@ +'use strict' + +const Range = require('../classes/range') + +// Mostly just for testing and legacy API reasons +const toComparators = (range, options) => + new Range(range, options).set + .map(comp => comp.map(c => c.value).join(' ').trim().split(' ')) + +module.exports = toComparators diff --git a/server/api/node_modules/jest-snapshot/node_modules/semver/ranges/valid.js b/server/api/node_modules/jest-snapshot/node_modules/semver/ranges/valid.js new file mode 100644 index 0000000..cc6b0e9 --- /dev/null +++ b/server/api/node_modules/jest-snapshot/node_modules/semver/ranges/valid.js @@ -0,0 +1,13 @@ +'use strict' + +const Range = require('../classes/range') +const validRange = (range, options) => { + try { + // Return '*' instead of '' so that truthiness works. + // This will throw if it's invalid anyway + return new Range(range, options).range || '*' + } catch (er) { + return null + } +} +module.exports = validRange diff --git a/server/api/node_modules/jest-snapshot/package.json b/server/api/node_modules/jest-snapshot/package.json new file mode 100644 index 0000000..167dd93 --- /dev/null +++ b/server/api/node_modules/jest-snapshot/package.json @@ -0,0 +1,63 @@ +{ + "name": "jest-snapshot", + "version": "29.7.0", + "repository": { + "type": "git", + "url": "https://github.com/jestjs/jest.git", + "directory": "packages/jest-snapshot" + }, + "license": "MIT", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": { + "types": "./build/index.d.ts", + "default": "./build/index.js" + }, + "./package.json": "./package.json" + }, + "dependencies": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "natural-compare": "^1.4.0", + "pretty-format": "^29.7.0", + "semver": "^7.5.3" + }, + "devDependencies": { + "@babel/preset-flow": "^7.7.2", + "@babel/preset-react": "^7.12.1", + "@jest/test-utils": "^29.7.0", + "@tsd/typescript": "^5.0.4", + "@types/babel__core": "^7.1.14", + "@types/graceful-fs": "^4.1.3", + "@types/natural-compare": "^1.4.0", + "@types/prettier": "^2.1.5", + "@types/semver": "^7.1.0", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "prettier": "^2.1.1", + "tsd-lite": "^0.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "publishConfig": { + "access": "public" + }, + "gitHead": "4e56991693da7cd4c3730dc3579a1dd1403ee630" +} diff --git a/server/api/node_modules/jest-util/LICENSE b/server/api/node_modules/jest-util/LICENSE new file mode 100644 index 0000000..b93be90 --- /dev/null +++ b/server/api/node_modules/jest-util/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) Meta Platforms, Inc. and affiliates. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/server/api/node_modules/jest-util/Readme.md b/server/api/node_modules/jest-util/Readme.md new file mode 100644 index 0000000..15f6daa --- /dev/null +++ b/server/api/node_modules/jest-util/Readme.md @@ -0,0 +1,87 @@ +# `@jest/utils` + +This packages is a collection of utilities and helper functions + +## `ErrorWithStack` + +This custom error class can be useful when you need to capture the stack trace of an error and provide additional context to the error message. By default, JavaScript errors only capture the stack trace when they are thrown, but this class allows you to capture the stack trace at any point in your code by calling its constructor. + +## `clearLine` + +It ensures that the clearing operation is only performed when running in a terminal environment, and not when the output is redirected to a file or another non-terminal destination. + +## `convertDescriptorToString` + +It defines a function named `convertDescriptorToString` that takes a descriptor as input and converts it to a string based on its type. It handles various types such as functions, numbers, strings, and undefined values. If the input doesn't match any of these types, it throws an error with a descriptive message. + +## `createDirectory` + +It creates new directory and also allows creation of nested directories. + +## `deepCyclicCopy` + +The `deepCyclicCopy` function provides deep copying of JavaScript objects and arrays, including handling circular references. It offers optional customization through a `DeepCyclicCopyOptions` parameter, allowing users to blacklist properties and preserve object prototypes. The function returns a completely independent deep copy of the input data structure. + +## `formatTime` + +This function is useful for formatting time values with appropriate SI unit prefixes for readability. It expresses time in various units (e.g., milliseconds, microseconds, nanoseconds) while ensuring the formatting is consistent and human-readable. + +## `globsToMatcher` + +The code efficiently converts a list of glob patterns into a reusable function for matching paths against those patterns, considering negated patterns and optimizing for performance. + +## `installCommonGlobals` + +Sets up various global variables and functions needed by the Jest testing framework. It ensures that these globals are properly set up for testing scenarios while maintaining compatibility with the environment's global object. + +## `interopRequireDefault` + +Provides a way to ensure compatibility between ES modules and CommonJS modules by handling the default export behavior appropriately. + +## `invariant` + +It is a utility used for asserting that a given condition is true. It's often used as a debugging aid during development to catch situations where an expected condition is not met. + +## `isInteractive` + +Checks whether the current environment is suitable for interactive terminal interactions. + +## `isNonNullable` + +Used to narrow down the type of a variable within a TypeScript code block, ensuring that it is safe to assume that the value is non-nullable. This can help avoid runtime errors related to null or undefined values. + +## `isPromise` + +It helps in order to determine whether a given value conforms to the structure of a Promise-like object, which typically has a `then` method. This can be useful when working with asynchronous code to ensure dealing with promises correctly. + +## `pluralize` + +This function is used to easily generate grammatically correct phrases in text output that depend on the count of items. It ensures that the word is correctly pluralized when needed. + +## `preRunMessage` + +These functions are intended for use in interactive command-line tools or scripts which provide informative messages to the user while ensuring a clean and responsive interface. + +## `replacePathSepForGlob` + +The function takes a string `path` as input and replaces backslashes ('\\') with forward slashes ('/') in the path. Used to normalize file paths to be compatible with glob patterns, ensuring consistency in path representation for different operating systems. + +## `requireOrImportModule` + +This function provides a unified way to load modules regardless of whether they use CommonJS or ESM syntax. It ensures that the default export is applied consistently when needed, allowing users to work with modules that might use different module systems. + +## `setGlobal` + +Used to set properties with specified values within a global object. It is designed to work in both browser-like and Node.js environments by accepting different types of global objects as input. + +## `specialChars` + +It defines constants and conditional values for handling platform-specific behaviors in a terminal environment. It determines if the current platform is Windows ('win32') and sets up constants for various symbols and terminal screen clearing escape sequences accordingly, ensuring proper display and behavior on both Windows and non-Windows operating systems. + +## `testPathPatternToRegExp` + +This function is used for consistency when serializing/deserializing global configurations and ensures that consistent regular expressions are produced for matching test paths. + +## `tryRealpath` + +Used to resolve the real path of a given path, but if the path doesn't exist or is a directory, it doesn't throw an error and returns the original path string. This can be useful for gracefully handling path resolution in scenarios where some paths might not exist or might be directories. diff --git a/server/api/node_modules/jest-util/package.json b/server/api/node_modules/jest-util/package.json new file mode 100644 index 0000000..33b7b93 --- /dev/null +++ b/server/api/node_modules/jest-util/package.json @@ -0,0 +1,38 @@ +{ + "name": "jest-util", + "version": "29.7.0", + "repository": { + "type": "git", + "url": "https://github.com/jestjs/jest.git", + "directory": "packages/jest-util" + }, + "license": "MIT", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": { + "types": "./build/index.d.ts", + "default": "./build/index.js" + }, + "./package.json": "./package.json" + }, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "devDependencies": { + "@types/graceful-fs": "^4.1.3", + "@types/picomatch": "^2.2.2" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "publishConfig": { + "access": "public" + }, + "gitHead": "4e56991693da7cd4c3730dc3579a1dd1403ee630" +} diff --git a/server/api/node_modules/jest-validate/LICENSE b/server/api/node_modules/jest-validate/LICENSE new file mode 100644 index 0000000..b93be90 --- /dev/null +++ b/server/api/node_modules/jest-validate/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) Meta Platforms, Inc. and affiliates. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/server/api/node_modules/jest-validate/README.md b/server/api/node_modules/jest-validate/README.md new file mode 100644 index 0000000..41b275c --- /dev/null +++ b/server/api/node_modules/jest-validate/README.md @@ -0,0 +1,216 @@ +# jest-validate + +Generic configuration validation tool that helps you with warnings, errors and deprecation messages as well as showing users examples of correct configuration. + +```bash +npm install --save jest-validate +``` + +## Usage + +```js +import {validate} from 'jest-validate'; + +validate(config, validationOptions); // => {hasDeprecationWarnings: boolean, isValid: boolean} +``` + +Where `ValidationOptions` are: + +```ts +type ValidationOptions = { + comment?: string; + condition?: (option: unknown, validOption: unknown) => boolean; + deprecate?: ( + config: Record, + option: string, + deprecatedOptions: DeprecatedOptions, + options: ValidationOptions, + ) => boolean; + deprecatedConfig?: DeprecatedOptions; + error?: ( + option: string, + received: unknown, + defaultValue: unknown, + options: ValidationOptions, + path?: Array, + ) => void; + exampleConfig: Record; + recursive?: boolean; + recursiveBlacklist?: Array; + recursiveDenylist?: Array; + title?: Title; + unknown?: ( + config: Record, + exampleConfig: Record, + option: string, + options: ValidationOptions, + path?: Array, + ) => void; +}; + +type Title = { + deprecation?: string; + error?: string; + warning?: string; +}; +``` + +`exampleConfig` is the only option required. + +## API + +By default `jest-validate` will print generic warning and error messages. You can however customize this behavior by providing `options: ValidationOptions` object as a second argument: + +Almost anything can be overwritten to suite your needs. + +### Options + +- `recursiveDenylist` – optional array of string keyPaths that should be excluded from deep (recursive) validation. +- `comment` – optional string to be rendered below error/warning message. +- `condition` – an optional function with validation condition. +- `deprecate`, `error`, `unknown` – optional functions responsible for displaying warning and error messages. +- `deprecatedConfig` – optional object with deprecated config keys. +- `exampleConfig` – the only **required** option with configuration against which you'd like to test. +- `recursive` - optional boolean determining whether recursively compare `exampleConfig` to `config` (default: `true`). +- `title` – optional object of titles for errors and messages. + +You will find examples of `condition`, `deprecate`, `error`, `unknown`, and `deprecatedConfig` inside source of this repository, named respectively. + +## exampleConfig syntax + +`exampleConfig` should be an object with key/value pairs that contain an example of a valid value for each key. A configuration value is considered valid when: + +- it matches the JavaScript type of the example value, e.g. `string`, `number`, `array`, `boolean`, `function`, or `object` +- it is `null` or `undefined` +- it matches the Javascript type of any of arguments passed to `MultipleValidOptions(...)` + +The last condition is a special syntax that allows validating where more than one type is permissible; see example below. It's acceptable to have multiple values of the same type in the example, so you can also use this syntax to provide more than one example. When a validation failure occurs, the error message will show all other values in the array as examples. + +## Examples + +Minimal example: + +```js +validate(config, {exampleConfig}); +``` + +Example with slight modifications: + +```js +validate(config, { + comment: ' Documentation: http://custom-docs.com', + deprecatedConfig, + exampleConfig, + title: { + deprecation: 'Custom Deprecation', + // leaving 'error' and 'warning' as default + }, +}); +``` + +This will output: + +#### Warning: + +```bash +● Validation Warning: + + Unknown option transformx with value "/node_modules/babel-jest" was found. + This is either a typing error or a user mistake. Fixing it will remove this message. + + Documentation: http://custom-docs.com +``` + +#### Error: + +```bash +● Validation Error: + + Option transform must be of type: + object + but instead received: + string + + Example: + { + "transform": { + "\\.js$": "/preprocessor.js" + } + } + + Documentation: http://custom-docs.com +``` + +## Example validating multiple types + +```js +import {multipleValidOptions} from 'jest-validate'; + +validate(config, { + // `bar` will accept either a string or a number + bar: multipleValidOptions('string is ok', 2), +}); +``` + +#### Error: + +```bash +● Validation Error: + + Option foo must be of type: + string or number + but instead received: + array + + Example: + { + "bar": "string is ok" + } + + or + + { + "bar": 2 + } + + Documentation: http://custom-docs.com +``` + +#### Deprecation + +Based on `deprecatedConfig` object with proper deprecation messages. Note custom title: + +```bash +Custom Deprecation: + + Option scriptPreprocessor was replaced by transform, which support multiple preprocessors. + + Jest now treats your current configuration as: + { + "transform": {".*": "xxx"} + } + + Please update your configuration. + + Documentation: http://custom-docs.com +``` + +## Example validating CLI arguments + +```js +import {validate} from 'jest-validate'; + +validateCLIOptions(argv, {...allowedOptions, deprecatedOptions}); +``` + +If `argv` contains a deprecated option that is not specifid in `allowedOptions`, `validateCLIOptions` will throw an error with the message specified in the `deprecatedOptions` config: + +```bash +● collectCoverageOnlyFrom: + + Option "collectCoverageOnlyFrom" was replaced by "collectCoverageFrom" + + CLI Options Documentation: https://jestjs.io/docs/en/cli.html +``` + +If the deprecation option is still listed in the `allowedOptions` config, then `validateCLIOptions` will print the warning wihout throwing an error. diff --git a/server/api/node_modules/jest-validate/node_modules/camelcase/index.d.ts b/server/api/node_modules/jest-validate/node_modules/camelcase/index.d.ts new file mode 100644 index 0000000..9db94e5 --- /dev/null +++ b/server/api/node_modules/jest-validate/node_modules/camelcase/index.d.ts @@ -0,0 +1,103 @@ +declare namespace camelcase { + interface Options { + /** + Uppercase the first character: `foo-bar` → `FooBar`. + + @default false + */ + readonly pascalCase?: boolean; + + /** + Preserve the consecutive uppercase characters: `foo-BAR` → `FooBAR`. + + @default false + */ + readonly preserveConsecutiveUppercase?: boolean; + + /** + The locale parameter indicates the locale to be used to convert to upper/lower case according to any locale-specific case mappings. If multiple locales are given in an array, the best available locale is used. + + Setting `locale: false` ignores the platform locale and uses the [Unicode Default Case Conversion](https://unicode-org.github.io/icu/userguide/transforms/casemappings.html#simple-single-character-case-mapping) algorithm. + + Default: The host environment’s current locale. + + @example + ``` + import camelCase = require('camelcase'); + + camelCase('lorem-ipsum', {locale: 'en-US'}); + //=> 'loremIpsum' + camelCase('lorem-ipsum', {locale: 'tr-TR'}); + //=> 'loremİpsum' + camelCase('lorem-ipsum', {locale: ['en-US', 'en-GB']}); + //=> 'loremIpsum' + camelCase('lorem-ipsum', {locale: ['tr', 'TR', 'tr-TR']}); + //=> 'loremİpsum' + ``` + */ + readonly locale?: false | string | readonly string[]; + } +} + +/** +Convert a dash/dot/underscore/space separated string to camelCase or PascalCase: `foo-bar` → `fooBar`. + +Correctly handles Unicode strings. + +@param input - String to convert to camel case. + +@example +``` +import camelCase = require('camelcase'); + +camelCase('foo-bar'); +//=> 'fooBar' + +camelCase('foo_bar'); +//=> 'fooBar' + +camelCase('Foo-Bar'); +//=> 'fooBar' + +camelCase('розовый_пушистый_единорог'); +//=> 'розовыйПушистыйЕдинорог' + +camelCase('Foo-Bar', {pascalCase: true}); +//=> 'FooBar' + +camelCase('--foo.bar', {pascalCase: false}); +//=> 'fooBar' + +camelCase('Foo-BAR', {preserveConsecutiveUppercase: true}); +//=> 'fooBAR' + +camelCase('fooBAR', {pascalCase: true, preserveConsecutiveUppercase: true})); +//=> 'FooBAR' + +camelCase('foo bar'); +//=> 'fooBar' + +console.log(process.argv[3]); +//=> '--foo-bar' +camelCase(process.argv[3]); +//=> 'fooBar' + +camelCase(['foo', 'bar']); +//=> 'fooBar' + +camelCase(['__foo__', '--bar'], {pascalCase: true}); +//=> 'FooBar' + +camelCase(['foo', 'BAR'], {pascalCase: true, preserveConsecutiveUppercase: true}) +//=> 'FooBAR' + +camelCase('lorem-ipsum', {locale: 'en-US'}); +//=> 'loremIpsum' +``` +*/ +declare function camelcase( + input: string | readonly string[], + options?: camelcase.Options +): string; + +export = camelcase; diff --git a/server/api/node_modules/jest-validate/node_modules/camelcase/index.js b/server/api/node_modules/jest-validate/node_modules/camelcase/index.js new file mode 100644 index 0000000..6ff4ee8 --- /dev/null +++ b/server/api/node_modules/jest-validate/node_modules/camelcase/index.js @@ -0,0 +1,113 @@ +'use strict'; + +const UPPERCASE = /[\p{Lu}]/u; +const LOWERCASE = /[\p{Ll}]/u; +const LEADING_CAPITAL = /^[\p{Lu}](?![\p{Lu}])/gu; +const IDENTIFIER = /([\p{Alpha}\p{N}_]|$)/u; +const SEPARATORS = /[_.\- ]+/; + +const LEADING_SEPARATORS = new RegExp('^' + SEPARATORS.source); +const SEPARATORS_AND_IDENTIFIER = new RegExp(SEPARATORS.source + IDENTIFIER.source, 'gu'); +const NUMBERS_AND_IDENTIFIER = new RegExp('\\d+' + IDENTIFIER.source, 'gu'); + +const preserveCamelCase = (string, toLowerCase, toUpperCase) => { + let isLastCharLower = false; + let isLastCharUpper = false; + let isLastLastCharUpper = false; + + for (let i = 0; i < string.length; i++) { + const character = string[i]; + + if (isLastCharLower && UPPERCASE.test(character)) { + string = string.slice(0, i) + '-' + string.slice(i); + isLastCharLower = false; + isLastLastCharUpper = isLastCharUpper; + isLastCharUpper = true; + i++; + } else if (isLastCharUpper && isLastLastCharUpper && LOWERCASE.test(character)) { + string = string.slice(0, i - 1) + '-' + string.slice(i - 1); + isLastLastCharUpper = isLastCharUpper; + isLastCharUpper = false; + isLastCharLower = true; + } else { + isLastCharLower = toLowerCase(character) === character && toUpperCase(character) !== character; + isLastLastCharUpper = isLastCharUpper; + isLastCharUpper = toUpperCase(character) === character && toLowerCase(character) !== character; + } + } + + return string; +}; + +const preserveConsecutiveUppercase = (input, toLowerCase) => { + LEADING_CAPITAL.lastIndex = 0; + + return input.replace(LEADING_CAPITAL, m1 => toLowerCase(m1)); +}; + +const postProcess = (input, toUpperCase) => { + SEPARATORS_AND_IDENTIFIER.lastIndex = 0; + NUMBERS_AND_IDENTIFIER.lastIndex = 0; + + return input.replace(SEPARATORS_AND_IDENTIFIER, (_, identifier) => toUpperCase(identifier)) + .replace(NUMBERS_AND_IDENTIFIER, m => toUpperCase(m)); +}; + +const camelCase = (input, options) => { + if (!(typeof input === 'string' || Array.isArray(input))) { + throw new TypeError('Expected the input to be `string | string[]`'); + } + + options = { + pascalCase: false, + preserveConsecutiveUppercase: false, + ...options + }; + + if (Array.isArray(input)) { + input = input.map(x => x.trim()) + .filter(x => x.length) + .join('-'); + } else { + input = input.trim(); + } + + if (input.length === 0) { + return ''; + } + + const toLowerCase = options.locale === false ? + string => string.toLowerCase() : + string => string.toLocaleLowerCase(options.locale); + const toUpperCase = options.locale === false ? + string => string.toUpperCase() : + string => string.toLocaleUpperCase(options.locale); + + if (input.length === 1) { + return options.pascalCase ? toUpperCase(input) : toLowerCase(input); + } + + const hasUpperCase = input !== toLowerCase(input); + + if (hasUpperCase) { + input = preserveCamelCase(input, toLowerCase, toUpperCase); + } + + input = input.replace(LEADING_SEPARATORS, ''); + + if (options.preserveConsecutiveUppercase) { + input = preserveConsecutiveUppercase(input, toLowerCase); + } else { + input = toLowerCase(input); + } + + if (options.pascalCase) { + input = toUpperCase(input.charAt(0)) + input.slice(1); + } + + return postProcess(input, toUpperCase); +}; + +module.exports = camelCase; +// TODO: Remove this for the next major release +module.exports.default = camelCase; diff --git a/server/api/node_modules/jest-validate/node_modules/camelcase/license b/server/api/node_modules/jest-validate/node_modules/camelcase/license new file mode 100644 index 0000000..fa7ceba --- /dev/null +++ b/server/api/node_modules/jest-validate/node_modules/camelcase/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (https://sindresorhus.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. diff --git a/server/api/node_modules/jest-validate/node_modules/camelcase/package.json b/server/api/node_modules/jest-validate/node_modules/camelcase/package.json new file mode 100644 index 0000000..c433579 --- /dev/null +++ b/server/api/node_modules/jest-validate/node_modules/camelcase/package.json @@ -0,0 +1,44 @@ +{ + "name": "camelcase", + "version": "6.3.0", + "description": "Convert a dash/dot/underscore/space separated string to camelCase or PascalCase: `foo-bar` → `fooBar`", + "license": "MIT", + "repository": "sindresorhus/camelcase", + "funding": "https://github.com/sponsors/sindresorhus", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "https://sindresorhus.com" + }, + "engines": { + "node": ">=10" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "keywords": [ + "camelcase", + "camel-case", + "camel", + "case", + "dash", + "hyphen", + "dot", + "underscore", + "separator", + "string", + "text", + "convert", + "pascalcase", + "pascal-case" + ], + "devDependencies": { + "ava": "^1.4.1", + "tsd": "^0.11.0", + "xo": "^0.28.3" + } +} diff --git a/server/api/node_modules/jest-validate/node_modules/camelcase/readme.md b/server/api/node_modules/jest-validate/node_modules/camelcase/readme.md new file mode 100644 index 0000000..0ff8f9e --- /dev/null +++ b/server/api/node_modules/jest-validate/node_modules/camelcase/readme.md @@ -0,0 +1,144 @@ +# camelcase + +> Convert a dash/dot/underscore/space separated string to camelCase or PascalCase: `foo-bar` → `fooBar` + +Correctly handles Unicode strings. + +If you use this on untrusted user input, don't forget to limit the length to something reasonable. + +## Install + +``` +$ npm install camelcase +``` + +*If you need to support Firefox < 78, stay on version 5 as version 6 uses regex features not available in Firefox < 78.* + +## Usage + +```js +const camelCase = require('camelcase'); + +camelCase('foo-bar'); +//=> 'fooBar' + +camelCase('foo_bar'); +//=> 'fooBar' + +camelCase('Foo-Bar'); +//=> 'fooBar' + +camelCase('розовый_пушистый_единорог'); +//=> 'розовыйПушистыйЕдинорог' + +camelCase('Foo-Bar', {pascalCase: true}); +//=> 'FooBar' + +camelCase('--foo.bar', {pascalCase: false}); +//=> 'fooBar' + +camelCase('Foo-BAR', {preserveConsecutiveUppercase: true}); +//=> 'fooBAR' + +camelCase('fooBAR', {pascalCase: true, preserveConsecutiveUppercase: true})); +//=> 'FooBAR' + +camelCase('foo bar'); +//=> 'fooBar' + +console.log(process.argv[3]); +//=> '--foo-bar' +camelCase(process.argv[3]); +//=> 'fooBar' + +camelCase(['foo', 'bar']); +//=> 'fooBar' + +camelCase(['__foo__', '--bar'], {pascalCase: true}); +//=> 'FooBar' + +camelCase(['foo', 'BAR'], {pascalCase: true, preserveConsecutiveUppercase: true}) +//=> 'FooBAR' + +camelCase('lorem-ipsum', {locale: 'en-US'}); +//=> 'loremIpsum' +``` + +## API + +### camelCase(input, options?) + +#### input + +Type: `string | string[]` + +String to convert to camel case. + +#### options + +Type: `object` + +##### pascalCase + +Type: `boolean`\ +Default: `false` + +Uppercase the first character: `foo-bar` → `FooBar` + +##### preserveConsecutiveUppercase + +Type: `boolean`\ +Default: `false` + +Preserve the consecutive uppercase characters: `foo-BAR` → `FooBAR`. + +##### locale + +Type: `false | string | string[]`\ +Default: The host environment’s current locale. + +The locale parameter indicates the locale to be used to convert to upper/lower case according to any locale-specific case mappings. If multiple locales are given in an array, the best available locale is used. + +```js +const camelCase = require('camelcase'); + +camelCase('lorem-ipsum', {locale: 'en-US'}); +//=> 'loremIpsum' + +camelCase('lorem-ipsum', {locale: 'tr-TR'}); +//=> 'loremİpsum' + +camelCase('lorem-ipsum', {locale: ['en-US', 'en-GB']}); +//=> 'loremIpsum' + +camelCase('lorem-ipsum', {locale: ['tr', 'TR', 'tr-TR']}); +//=> 'loremİpsum' +``` + +Setting `locale: false` ignores the platform locale and uses the [Unicode Default Case Conversion](https://unicode-org.github.io/icu/userguide/transforms/casemappings.html#simple-single-character-case-mapping) algorithm: + +```js +const camelCase = require('camelcase'); + +// On a platform with 'tr-TR' + +camelCase('lorem-ipsum'); +//=> 'loremİpsum' + +camelCase('lorem-ipsum', {locale: false}); +//=> 'loremIpsum' +``` + +## camelcase for enterprise + +Available as part of the Tidelift Subscription. + +The maintainers of camelcase and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. [Learn more.](https://tidelift.com/subscription/pkg/npm-camelcase?utm_source=npm-camelcase&utm_medium=referral&utm_campaign=enterprise&utm_term=repo) + +## Related + +- [decamelize](https://github.com/sindresorhus/decamelize) - The inverse of this module +- [uppercamelcase](https://github.com/SamVerschueren/uppercamelcase) - Like this module, but to PascalCase instead of camelCase +- [titleize](https://github.com/sindresorhus/titleize) - Capitalize every word in string +- [humanize-string](https://github.com/sindresorhus/humanize-string) - Convert a camelized/dasherized/underscored string into a humanized one +- [camelcase-keys](https://github.com/sindresorhus/camelcase-keys) - Convert object keys to camel case diff --git a/server/api/node_modules/jest-validate/package.json b/server/api/node_modules/jest-validate/package.json new file mode 100644 index 0000000..bfe79fc --- /dev/null +++ b/server/api/node_modules/jest-validate/package.json @@ -0,0 +1,37 @@ +{ + "name": "jest-validate", + "version": "29.7.0", + "repository": { + "type": "git", + "url": "https://github.com/jestjs/jest.git", + "directory": "packages/jest-validate" + }, + "license": "MIT", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": { + "types": "./build/index.d.ts", + "default": "./build/index.js" + }, + "./package.json": "./package.json" + }, + "dependencies": { + "@jest/types": "^29.6.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "leven": "^3.1.0", + "pretty-format": "^29.7.0" + }, + "devDependencies": { + "@types/yargs": "^17.0.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "publishConfig": { + "access": "public" + }, + "gitHead": "4e56991693da7cd4c3730dc3579a1dd1403ee630" +} diff --git a/server/api/node_modules/jest-watcher/LICENSE b/server/api/node_modules/jest-watcher/LICENSE new file mode 100644 index 0000000..b93be90 --- /dev/null +++ b/server/api/node_modules/jest-watcher/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) Meta Platforms, Inc. and affiliates. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/server/api/node_modules/jest-watcher/package.json b/server/api/node_modules/jest-watcher/package.json new file mode 100644 index 0000000..9c18a29 --- /dev/null +++ b/server/api/node_modules/jest-watcher/package.json @@ -0,0 +1,41 @@ +{ + "name": "jest-watcher", + "description": "Delightful JavaScript Testing.", + "version": "29.7.0", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": { + "types": "./build/index.d.ts", + "default": "./build/index.js" + }, + "./package.json": "./package.json" + }, + "dependencies": { + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.7.0", + "string-length": "^4.0.1" + }, + "repository": { + "type": "git", + "url": "https://github.com/jestjs/jest.git", + "directory": "packages/jest-watcher" + }, + "bugs": { + "url": "https://github.com/jestjs/jest/issues" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "homepage": "https://jestjs.io/", + "license": "MIT", + "publishConfig": { + "access": "public" + }, + "gitHead": "4e56991693da7cd4c3730dc3579a1dd1403ee630" +} diff --git a/server/api/node_modules/jest-worker/LICENSE b/server/api/node_modules/jest-worker/LICENSE new file mode 100644 index 0000000..b93be90 --- /dev/null +++ b/server/api/node_modules/jest-worker/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) Meta Platforms, Inc. and affiliates. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/server/api/node_modules/jest-worker/README.md b/server/api/node_modules/jest-worker/README.md new file mode 100644 index 0000000..f9e1131 --- /dev/null +++ b/server/api/node_modules/jest-worker/README.md @@ -0,0 +1,272 @@ +# jest-worker + +Module for executing heavy tasks under forked processes in parallel, by providing a `Promise` based interface, minimum overhead, and bound workers. + +The module works by providing an absolute path of the module to be loaded in all forked processes. All methods are exposed on the parent process as promises, so they can be `await`'ed. Child (worker) methods can either be synchronous or asynchronous. + +The module also implements support for bound workers. Binding a worker means that, based on certain parameters, the same task will always be executed by the same worker. The way bound workers work is by using the returned string of the `computeWorkerKey` method. If the string was used before for a task, the call will be queued to the related worker that processed the task earlier; if not, it will be executed by the first available worker, then sticked to the worker that executed it; so the next time it will be processed by the same worker. If you have no preference on the worker executing the task, but you have defined a `computeWorkerKey` method because you want _some_ of the tasks to be sticked, you can return `null` from it. + +The list of exposed methods can be explicitly provided via the `exposedMethods` option. If it is not provided, it will be obtained by requiring the child module into the main process, and analyzed via reflection. Check the "minimal example" section for a valid one. + +## Install + +```sh +yarn add jest-worker +``` + +## Example + +This example covers the minimal usage: + +### File `parent.js` + +```js +import {Worker as JestWorker} from 'jest-worker'; + +async function main() { + const worker = new JestWorker(require.resolve('./worker')); + const result = await worker.hello('Alice'); // "Hello, Alice" +} + +main(); +``` + +### File `worker.js` + +```js +export function hello(param) { + return `Hello, ${param}`; +} +``` + +## Experimental worker + +Node shipped with [`worker_threads`](https://nodejs.org/api/worker_threads.html), a "threading API" that uses `SharedArrayBuffers` to communicate between the main process and its child threads. This feature can significantly improve the communication time between parent and child processes in `jest-worker`. + +To use `worker_threads` instead of default `child_process` you have to pass `enableWorkerThreads: true` when instantiating the worker. + +## API + +The `Worker` export is a constructor that is initialized by passing the worker path, plus an options object. + +### `workerPath: string | URL` (required) + +Node module name or absolute path or file URL of the file to be loaded in the child processes. You can use `require.resolve` to transform a relative path into an absolute one. + +### `options: Object` (optional) + +#### `computeWorkerKey: (method: string, ...args: Array) => string | null` (optional) + +Every time a method exposed via the API is called, `computeWorkerKey` is also called in order to bound the call to a worker. This is useful for workers that are able to cache the result or part of it. You bound calls to a worker by making `computeWorkerKey` return the same identifier for all different calls. If you do not want to bind the call to any worker, return `null`. + +The callback you provide is called with the method name, plus all the rest of the arguments of the call. Thus, you have full control to decide what to return. Check a practical example on bound workers under the "bound worker usage" section. + +By default, no process is bound to any worker. + +#### `enableWorkerThreads: boolean` (optional) + +By default, `jest-worker` will use `child_process` threads to spawn new Node.js processes. If you prefer [`worker_threads`](https://nodejs.org/api/worker_threads.html) instead, pass `enableWorkerThreads: true`. + +#### `exposedMethods: ReadonlyArray` (optional) + +List of method names that can be called on the child processes from the parent process. You cannot expose any method named like a public `Worker` method, or starting with `_`. If you use method auto-discovery, then these methods will not be exposed, even if they exist. + +#### `forkOptions: ForkOptions` (optional) + +Allow customizing all options passed to `child_process.fork`. By default, some values are set (`cwd`, `env`, `execArgv` and `serialization`), but you can override them and customize the rest. For a list of valid values, check [the Node documentation](https://nodejs.org/api/child_process.html#child_process_child_process_fork_modulepath_args_options). + +#### `idleMemoryLimit: number` (optional) + +Specifies the memory limit for workers before they are recycled and is primarily a work-around for [this issue](https://github.com/jestjs/jest/issues/11956); + +After the worker has executed a task the memory usage of it is checked. If it exceeds the value specified the worker is killed and restarted. If no limit is set this process does not occur. The limit can be specified in 2 ways: + +- `<= 1` - The value is assumed to be a percentage of system memory. So 0.5 sets the memory limit of the worker to half of the total system memory +- `\> 1` - Assumed to be a fixed byte value. Because of the previous rule if you wanted a value of 1 byte (I don't know why) you could use `1.1`. + +#### `maxRetries: number` (optional) + +Maximum amount of times that a dead child can be re-spawned, per call. Defaults to `3`, pass `Infinity` to allow endless retries. + +#### `numWorkers: number` (optional) + +Amount of workers to spawn. Defaults to the number of CPUs minus 1. + +#### `resourceLimits: ResourceLimits` (optional) + +The `resourceLimits` option which will be passed to `worker_threads` workers. + +#### `silent: Boolean` (optional) + +Set to false for `stdout` and `stderr` to be logged to console. + +By default this is true. + +#### `setupArgs: Array` (optional) + +The arguments that will be passed to the `setup` method during initialization. + +#### `taskQueue: TaskQueue` (optional) + +The task queue defines in which order tasks (method calls) are processed by the workers. `jest-worker` ships with a `FifoQueue` and `PriorityQueue`: + +- `FifoQueue` (default): Processes the method calls (tasks) in the call order. +- `PriorityQueue`: Processes the method calls by a computed priority in natural ordering (lower priorities first). Tasks with the same priority are processed in any order (FIFO not guaranteed). The constructor accepts a single argument, the function that is passed the name of the called function and the arguments and returns a numerical value for the priority: `new require('jest-worker').PriorityQueue((method, filename) => filename.length)`. + +#### `WorkerPool: new (workerPath: string, options?: WorkerPoolOptions) => WorkerPoolInterface` (optional) + +Provide a custom WorkerPool class to be used for spawning child processes. + +#### `workerSchedulingPolicy: 'round-robin' | 'in-order'` (optional) + +Specifies the policy how tasks are assigned to workers if multiple workers are _idle_: + +- `round-robin` (default): The task will be sequentially distributed onto the workers. The first task is assigned to the worker 1, the second to the worker 2, to ensure that the work is distributed across workers. +- `in-order`: The task will be assigned to the first free worker starting with worker 1 and only assign the work to worker 2 if the worker 1 is busy. + +Tasks are always assigned to the first free worker as soon as tasks start to queue up. The scheduling policy does not define the task scheduling which is always first-in, first-out. + +## JestWorker + +### Methods + +The returned `JestWorker` instance has all the exposed methods, plus some additional ones to interact with the workers itself: + +#### `getStdout(): Readable` + +Returns a `ReadableStream` where the standard output of all workers is piped. Note that the `silent` option of the child workers must be set to `true` to make it work. This is the default set by `jest-worker`, but keep it in mind when overriding options through `forkOptions`. + +#### `getStderr(): Readable` + +Returns a `ReadableStream` where the standard error of all workers is piped. Note that the `silent` option of the child workers must be set to `true` to make it work. This is the default set by `jest-worker`, but keep it in mind when overriding options through `forkOptions`. + +#### `start()` + +Starts up every worker and calls their `setup` function, if it exists. Returns a `Promise` which resolves when all workers are running and have completed their `setup`. + +This is useful if you want to start up all your workers eagerly before they are used to call any other functions. + +#### `end()` + +Finishes the workers by killing all workers. No further calls can be done to the `Worker` instance. + +Returns a `Promise` that resolves with `{ forceExited: boolean }` once all workers are dead. If `forceExited` is `true`, at least one of the workers did not exit gracefully, which likely happened because it executed a leaky task that left handles open. This should be avoided, force exiting workers is a last resort to prevent creating lots of orphans. + +**Note:** + +`await`ing the `end()` Promise immediately after the workers are no longer needed before proceeding to do other useful things in your program may not be a good idea. If workers have to be force exited, `jest-worker` may go through multiple stages of force exiting (e.g. SIGTERM, later SIGKILL) and give the worker overall around 1 second time to exit on its own. During this time, your program will wait, even though it may not be necessary that all workers are dead before continuing execution. + +Consider deliberately leaving this Promise floating (unhandled resolution). After your program has done the rest of its work and is about to exit, the Node process will wait for the Promise to resolve after all workers are dead as the last event loop task. That way you parallelized computation time of your program and waiting time and you didn't delay the outputs of your program unnecessarily. + +### Worker IDs + +Each worker has a unique id (index that starts with `'1'`), which is available inside the worker as `process.env.JEST_WORKER_ID`. + +## Setting up and tearing down the child process + +The child process can define two special methods (both of them can be asynchronous): + +- `setup()`: If defined, it's executed before the first call to any method in the child. +- `teardown()`: If defined, it's executed when the farm ends. + +# More examples + +## Standard usage + +This example covers the standard usage: + +### File `parent.js` + +```js +import {Worker as JestWorker} from 'jest-worker'; + +async function main() { + const myWorker = new JestWorker(require.resolve('./worker'), { + exposedMethods: ['foo', 'bar', 'getWorkerId'], + numWorkers: 4, + }); + + console.log(await myWorker.foo('Alice')); // "Hello from foo: Alice" + console.log(await myWorker.bar('Bob')); // "Hello from bar: Bob" + console.log(await myWorker.getWorkerId()); // "3" -> this message has sent from the 3rd worker + + const {forceExited} = await myWorker.end(); + if (forceExited) { + console.error('Workers failed to exit gracefully'); + } +} + +main(); +``` + +### File `worker.js` + +```js +export function foo(param) { + return `Hello from foo: ${param}`; +} + +export function bar(param) { + return `Hello from bar: ${param}`; +} + +export function getWorkerId() { + return process.env.JEST_WORKER_ID; +} +``` + +## Bound worker usage: + +This example covers the usage with a `computeWorkerKey` method: + +### File `parent.js` + +```js +import {Worker as JestWorker} from 'jest-worker'; + +async function main() { + const myWorker = new JestWorker(require.resolve('./worker'), { + computeWorkerKey: (method, filename) => filename, + }); + + // Transform the given file, within the first available worker. + console.log(await myWorker.transform('/tmp/foo.js')); + + // Wait a bit. + await sleep(10000); + + // Transform the same file again. Will immediately return because the + // transformed file is cached in the worker, and `computeWorkerKey` ensures + // the same worker that processed the file the first time will process it now. + console.log(await myWorker.transform('/tmp/foo.js')); + + const {forceExited} = await myWorker.end(); + if (forceExited) { + console.error('Workers failed to exit gracefully'); + } +} + +main(); +``` + +### File `worker.js` + +```js +import babel from '@babel/core'; + +const cache = Object.create(null); + +export function transform(filename) { + if (cache[filename]) { + return cache[filename]; + } + + // jest-worker can handle both immediate results and thenables. If a + // thenable is returned, it will be await'ed until it resolves. + return babel.transformFileAsync(filename).then(result => { + cache[filename] = result; + + return result; + }); +} +``` diff --git a/server/api/node_modules/jest-worker/node_modules/supports-color/browser.js b/server/api/node_modules/jest-worker/node_modules/supports-color/browser.js new file mode 100644 index 0000000..f097aec --- /dev/null +++ b/server/api/node_modules/jest-worker/node_modules/supports-color/browser.js @@ -0,0 +1,24 @@ +/* eslint-env browser */ +'use strict'; + +function getChromeVersion() { + const matches = /(Chrome|Chromium)\/(?\d+)\./.exec(navigator.userAgent); + + if (!matches) { + return; + } + + return Number.parseInt(matches.groups.chromeVersion, 10); +} + +const colorSupport = getChromeVersion() >= 69 ? { + level: 1, + hasBasic: true, + has256: false, + has16m: false +} : false; + +module.exports = { + stdout: colorSupport, + stderr: colorSupport +}; diff --git a/server/api/node_modules/jest-worker/node_modules/supports-color/index.js b/server/api/node_modules/jest-worker/node_modules/supports-color/index.js new file mode 100644 index 0000000..2dd2fcb --- /dev/null +++ b/server/api/node_modules/jest-worker/node_modules/supports-color/index.js @@ -0,0 +1,152 @@ +'use strict'; +const os = require('os'); +const tty = require('tty'); +const hasFlag = require('has-flag'); + +const {env} = process; + +let flagForceColor; +if (hasFlag('no-color') || + hasFlag('no-colors') || + hasFlag('color=false') || + hasFlag('color=never')) { + flagForceColor = 0; +} else if (hasFlag('color') || + hasFlag('colors') || + hasFlag('color=true') || + hasFlag('color=always')) { + flagForceColor = 1; +} + +function envForceColor() { + if ('FORCE_COLOR' in env) { + if (env.FORCE_COLOR === 'true') { + return 1; + } + + if (env.FORCE_COLOR === 'false') { + return 0; + } + + return env.FORCE_COLOR.length === 0 ? 1 : Math.min(Number.parseInt(env.FORCE_COLOR, 10), 3); + } +} + +function translateLevel(level) { + if (level === 0) { + return false; + } + + return { + level, + hasBasic: true, + has256: level >= 2, + has16m: level >= 3 + }; +} + +function supportsColor(haveStream, {streamIsTTY, sniffFlags = true} = {}) { + const noFlagForceColor = envForceColor(); + if (noFlagForceColor !== undefined) { + flagForceColor = noFlagForceColor; + } + + const forceColor = sniffFlags ? flagForceColor : noFlagForceColor; + + if (forceColor === 0) { + return 0; + } + + if (sniffFlags) { + if (hasFlag('color=16m') || + hasFlag('color=full') || + hasFlag('color=truecolor')) { + return 3; + } + + if (hasFlag('color=256')) { + return 2; + } + } + + if (haveStream && !streamIsTTY && forceColor === undefined) { + return 0; + } + + const min = forceColor || 0; + + if (env.TERM === 'dumb') { + return min; + } + + if (process.platform === 'win32') { + // Windows 10 build 10586 is the first Windows release that supports 256 colors. + // Windows 10 build 14931 is the first release that supports 16m/TrueColor. + const osRelease = os.release().split('.'); + if ( + Number(osRelease[0]) >= 10 && + Number(osRelease[2]) >= 10586 + ) { + return Number(osRelease[2]) >= 14931 ? 3 : 2; + } + + return 1; + } + + if ('CI' in env) { + if (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI', 'GITHUB_ACTIONS', 'BUILDKITE', 'DRONE'].some(sign => sign in env) || env.CI_NAME === 'codeship') { + return 1; + } + + return min; + } + + if ('TEAMCITY_VERSION' in env) { + return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0; + } + + if (env.COLORTERM === 'truecolor') { + return 3; + } + + if ('TERM_PROGRAM' in env) { + const version = Number.parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10); + + switch (env.TERM_PROGRAM) { + case 'iTerm.app': + return version >= 3 ? 3 : 2; + case 'Apple_Terminal': + return 2; + // No default + } + } + + if (/-256(color)?$/i.test(env.TERM)) { + return 2; + } + + if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) { + return 1; + } + + if ('COLORTERM' in env) { + return 1; + } + + return min; +} + +function getSupportLevel(stream, options = {}) { + const level = supportsColor(stream, { + streamIsTTY: stream && stream.isTTY, + ...options + }); + + return translateLevel(level); +} + +module.exports = { + supportsColor: getSupportLevel, + stdout: getSupportLevel({isTTY: tty.isatty(1)}), + stderr: getSupportLevel({isTTY: tty.isatty(2)}) +}; diff --git a/server/api/node_modules/jest-worker/node_modules/supports-color/license b/server/api/node_modules/jest-worker/node_modules/supports-color/license new file mode 100644 index 0000000..fa7ceba --- /dev/null +++ b/server/api/node_modules/jest-worker/node_modules/supports-color/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (https://sindresorhus.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. diff --git a/server/api/node_modules/jest-worker/node_modules/supports-color/package.json b/server/api/node_modules/jest-worker/node_modules/supports-color/package.json new file mode 100644 index 0000000..a97bf2a --- /dev/null +++ b/server/api/node_modules/jest-worker/node_modules/supports-color/package.json @@ -0,0 +1,58 @@ +{ + "name": "supports-color", + "version": "8.1.1", + "description": "Detect whether a terminal supports color", + "license": "MIT", + "repository": "chalk/supports-color", + "funding": "https://github.com/chalk/supports-color?sponsor=1", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "https://sindresorhus.com" + }, + "engines": { + "node": ">=10" + }, + "scripts": { + "test": "xo && ava" + }, + "files": [ + "index.js", + "browser.js" + ], + "exports": { + "node": "./index.js", + "default": "./browser.js" + }, + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "dependencies": { + "has-flag": "^4.0.0" + }, + "devDependencies": { + "ava": "^2.4.0", + "import-fresh": "^3.2.2", + "xo": "^0.35.0" + }, + "browser": "browser.js" +} diff --git a/server/api/node_modules/jest-worker/node_modules/supports-color/readme.md b/server/api/node_modules/jest-worker/node_modules/supports-color/readme.md new file mode 100644 index 0000000..3eedd1c --- /dev/null +++ b/server/api/node_modules/jest-worker/node_modules/supports-color/readme.md @@ -0,0 +1,77 @@ +# supports-color + +> Detect whether a terminal supports color + +## Install + +``` +$ npm install supports-color +``` + +## Usage + +```js +const supportsColor = require('supports-color'); + +if (supportsColor.stdout) { + console.log('Terminal stdout supports color'); +} + +if (supportsColor.stdout.has256) { + console.log('Terminal stdout supports 256 colors'); +} + +if (supportsColor.stderr.has16m) { + console.log('Terminal stderr supports 16 million colors (truecolor)'); +} +``` + +## API + +Returns an `Object` with a `stdout` and `stderr` property for testing either streams. Each property is an `Object`, or `false` if color is not supported. + +The `stdout`/`stderr` objects specifies a level of support for color through a `.level` property and a corresponding flag: + +- `.level = 1` and `.hasBasic = true`: Basic color support (16 colors) +- `.level = 2` and `.has256 = true`: 256 color support +- `.level = 3` and `.has16m = true`: Truecolor support (16 million colors) + +### `require('supports-color').supportsColor(stream, options?)` + +Additionally, `supports-color` exposes the `.supportsColor()` function that takes an arbitrary write stream (e.g. `process.stdout`) and an optional options object to (re-)evaluate color support for an arbitrary stream. + +For example, `require('supports-color').stdout` is the equivalent of `require('supports-color').supportsColor(process.stdout)`. + +The options object supports a single boolean property `sniffFlags`. By default it is `true`, which instructs `supportsColor()` to sniff `process.argv` for the multitude of `--color` flags (see _Info_ below). If `false`, then `process.argv` is not considered when determining color support. + +## Info + +It obeys the `--color` and `--no-color` CLI flags. + +For situations where using `--color` is not possible, use the environment variable `FORCE_COLOR=1` (level 1), `FORCE_COLOR=2` (level 2), or `FORCE_COLOR=3` (level 3) to forcefully enable color, or `FORCE_COLOR=0` to forcefully disable. The use of `FORCE_COLOR` overrides all other color support checks. + +Explicit 256/Truecolor mode can be enabled using the `--color=256` and `--color=16m` flags, respectively. + +## Related + +- [supports-color-cli](https://github.com/chalk/supports-color-cli) - CLI for this module +- [chalk](https://github.com/chalk/chalk) - Terminal string styling done right + +## Maintainers + +- [Sindre Sorhus](https://github.com/sindresorhus) +- [Josh Junon](https://github.com/qix-) + +--- + +
+ + Get professional support for this package with a Tidelift subscription + +
+ + Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. +
+
+ +--- diff --git a/server/api/node_modules/jest-worker/package.json b/server/api/node_modules/jest-worker/package.json new file mode 100644 index 0000000..6975f97 --- /dev/null +++ b/server/api/node_modules/jest-worker/package.json @@ -0,0 +1,42 @@ +{ + "name": "jest-worker", + "version": "29.7.0", + "repository": { + "type": "git", + "url": "https://github.com/jestjs/jest.git", + "directory": "packages/jest-worker" + }, + "license": "MIT", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": { + "types": "./build/index.d.ts", + "default": "./build/index.js" + }, + "./package.json": "./package.json" + }, + "dependencies": { + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "devDependencies": { + "@babel/core": "^7.11.6", + "@tsd/typescript": "^5.0.4", + "@types/merge-stream": "^1.1.2", + "@types/supports-color": "^8.1.0", + "get-stream": "^6.0.0", + "jest-leak-detector": "^29.7.0", + "tsd-lite": "^0.7.0", + "worker-farm": "^1.6.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "publishConfig": { + "access": "public" + }, + "gitHead": "4e56991693da7cd4c3730dc3579a1dd1403ee630" +} diff --git a/server/api/node_modules/jest/LICENSE b/server/api/node_modules/jest/LICENSE new file mode 100644 index 0000000..b93be90 --- /dev/null +++ b/server/api/node_modules/jest/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) Meta Platforms, Inc. and affiliates. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/server/api/node_modules/jest/README.md b/server/api/node_modules/jest/README.md new file mode 100644 index 0000000..9c3d31e --- /dev/null +++ b/server/api/node_modules/jest/README.md @@ -0,0 +1,11 @@ +# Jest + +🃏 Delightful JavaScript Testing + +- **👩🏻‍💻 Developer Ready**: Complete and ready to set-up JavaScript testing solution. Works out of the box for any React project. + +- **🏃🏽 Instant Feedback**: Failed tests run first. Fast interactive mode can switch between running all tests or only test files related to changed files. + +- **📸 Snapshot Testing**: Jest can [capture snapshots](https://jestjs.io/docs/snapshot-testing) of React trees or other serializable values to simplify UI testing. + +Read More: https://jestjs.io/ diff --git a/server/api/node_modules/jest/bin/jest.js b/server/api/node_modules/jest/bin/jest.js new file mode 100644 index 0000000..f3be8f9 --- /dev/null +++ b/server/api/node_modules/jest/bin/jest.js @@ -0,0 +1,13 @@ +#!/usr/bin/env node +/** + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +const importLocal = require('import-local'); + +if (!importLocal(__filename)) { + require('jest-cli/bin/jest'); +} diff --git a/server/api/node_modules/jest/package.json b/server/api/node_modules/jest/package.json new file mode 100644 index 0000000..41e01c8 --- /dev/null +++ b/server/api/node_modules/jest/package.json @@ -0,0 +1,74 @@ +{ + "name": "jest", + "description": "Delightful JavaScript Testing.", + "version": "29.7.0", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": { + "types": "./build/index.d.ts", + "default": "./build/index.js" + }, + "./package.json": "./package.json", + "./bin/jest": "./bin/jest.js" + }, + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", + "import-local": "^3.0.2", + "jest-cli": "^29.7.0" + }, + "devDependencies": { + "@tsd/typescript": "^5.0.4", + "tsd-lite": "^0.7.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + }, + "bin": "./bin/jest.js", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "repository": { + "type": "git", + "url": "https://github.com/jestjs/jest.git", + "directory": "packages/jest" + }, + "homepage": "https://jestjs.io/", + "license": "MIT", + "keywords": [ + "ava", + "babel", + "coverage", + "easy", + "expect", + "facebook", + "immersive", + "instant", + "jasmine", + "jest", + "jsdom", + "mocha", + "mocking", + "painless", + "qunit", + "runner", + "sandboxed", + "snapshot", + "tap", + "tape", + "test", + "testing", + "typescript", + "watch" + ], + "publishConfig": { + "access": "public" + }, + "gitHead": "4e56991693da7cd4c3730dc3579a1dd1403ee630" +} diff --git a/server/api/node_modules/js-tokens/CHANGELOG.md b/server/api/node_modules/js-tokens/CHANGELOG.md new file mode 100644 index 0000000..755e6f6 --- /dev/null +++ b/server/api/node_modules/js-tokens/CHANGELOG.md @@ -0,0 +1,151 @@ +### Version 4.0.0 (2018-01-28) ### + +- Added: Support for ES2018. The only change needed was recognizing the `s` + regex flag. +- Changed: _All_ tokens returned by the `matchToToken` function now have a + `closed` property. It is set to `undefined` for the tokens where “closed” + doesn’t make sense. This means that all tokens objects have the same shape, + which might improve performance. + +These are the breaking changes: + +- `'/a/s'.match(jsTokens)` no longer returns `['/', 'a', '/', 's']`, but + `['/a/s']`. (There are of course other variations of this.) +- Code that rely on some token objects not having the `closed` property could + now behave differently. + + +### Version 3.0.2 (2017-06-28) ### + +- No code changes. Just updates to the readme. + + +### Version 3.0.1 (2017-01-30) ### + +- Fixed: ES2015 unicode escapes with more than 6 hex digits are now matched + correctly. + + +### Version 3.0.0 (2017-01-11) ### + +This release contains one breaking change, that should [improve performance in +V8][v8-perf]: + +> So how can you, as a JavaScript developer, ensure that your RegExps are fast? +> If you are not interested in hooking into RegExp internals, make sure that +> neither the RegExp instance, nor its prototype is modified in order to get the +> best performance: +> +> ```js +> var re = /./g; +> re.exec(''); // Fast path. +> re.new_property = 'slow'; +> ``` + +This module used to export a single regex, with `.matchToToken` bolted +on, just like in the above example. This release changes the exports of +the module to avoid this issue. + +Before: + +```js +import jsTokens from "js-tokens" +// or: +var jsTokens = require("js-tokens") +var matchToToken = jsTokens.matchToToken +``` + +After: + +```js +import jsTokens, {matchToToken} from "js-tokens" +// or: +var jsTokens = require("js-tokens").default +var matchToToken = require("js-tokens").matchToToken +``` + +[v8-perf]: http://v8project.blogspot.se/2017/01/speeding-up-v8-regular-expressions.html + + +### Version 2.0.0 (2016-06-19) ### + +- Added: Support for ES2016. In other words, support for the `**` exponentiation + operator. + +These are the breaking changes: + +- `'**'.match(jsTokens)` no longer returns `['*', '*']`, but `['**']`. +- `'**='.match(jsTokens)` no longer returns `['*', '*=']`, but `['**=']`. + + +### Version 1.0.3 (2016-03-27) ### + +- Improved: Made the regex ever so slightly smaller. +- Updated: The readme. + + +### Version 1.0.2 (2015-10-18) ### + +- Improved: Limited npm package contents for a smaller download. Thanks to + @zertosh! + + +### Version 1.0.1 (2015-06-20) ### + +- Fixed: Declared an undeclared variable. + + +### Version 1.0.0 (2015-02-26) ### + +- Changed: Merged the 'operator' and 'punctuation' types into 'punctuator'. That + type is now equivalent to the Punctuator token in the ECMAScript + specification. (Backwards-incompatible change.) +- Fixed: A `-` followed by a number is now correctly matched as a punctuator + followed by a number. It used to be matched as just a number, but there is no + such thing as negative number literals. (Possibly backwards-incompatible + change.) + + +### Version 0.4.1 (2015-02-21) ### + +- Added: Support for the regex `u` flag. + + +### Version 0.4.0 (2015-02-21) ### + +- Improved: `jsTokens.matchToToken` performance. +- Added: Support for octal and binary number literals. +- Added: Support for template strings. + + +### Version 0.3.1 (2015-01-06) ### + +- Fixed: Support for unicode spaces. They used to be allowed in names (which is + very confusing), and some unicode newlines were wrongly allowed in strings and + regexes. + + +### Version 0.3.0 (2014-12-19) ### + +- Changed: The `jsTokens.names` array has been replaced with the + `jsTokens.matchToToken` function. The capturing groups of `jsTokens` are no + longer part of the public API; instead use said function. See this [gist] for + an example. (Backwards-incompatible change.) +- Changed: The empty string is now considered an “invalid” token, instead an + “empty” token (its own group). (Backwards-incompatible change.) +- Removed: component support. (Backwards-incompatible change.) + +[gist]: https://gist.github.com/lydell/be49dbf80c382c473004 + + +### Version 0.2.0 (2014-06-19) ### + +- Changed: Match ES6 function arrows (`=>`) as an operator, instead of its own + category (“functionArrow”), for simplicity. (Backwards-incompatible change.) +- Added: ES6 splats (`...`) are now matched as an operator (instead of three + punctuations). (Backwards-incompatible change.) + + +### Version 0.1.0 (2014-03-08) ### + +- Initial release. diff --git a/server/api/node_modules/js-tokens/LICENSE b/server/api/node_modules/js-tokens/LICENSE new file mode 100644 index 0000000..54aef52 --- /dev/null +++ b/server/api/node_modules/js-tokens/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014, 2015, 2016, 2017, 2018 Simon Lydell + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/server/api/node_modules/js-tokens/README.md b/server/api/node_modules/js-tokens/README.md new file mode 100644 index 0000000..00cdf16 --- /dev/null +++ b/server/api/node_modules/js-tokens/README.md @@ -0,0 +1,240 @@ +Overview [![Build Status](https://travis-ci.org/lydell/js-tokens.svg?branch=master)](https://travis-ci.org/lydell/js-tokens) +======== + +A regex that tokenizes JavaScript. + +```js +var jsTokens = require("js-tokens").default + +var jsString = "var foo=opts.foo;\n..." + +jsString.match(jsTokens) +// ["var", " ", "foo", "=", "opts", ".", "foo", ";", "\n", ...] +``` + + +Installation +============ + +`npm install js-tokens` + +```js +import jsTokens from "js-tokens" +// or: +var jsTokens = require("js-tokens").default +``` + + +Usage +===== + +### `jsTokens` ### + +A regex with the `g` flag that matches JavaScript tokens. + +The regex _always_ matches, even invalid JavaScript and the empty string. + +The next match is always directly after the previous. + +### `var token = matchToToken(match)` ### + +```js +import {matchToToken} from "js-tokens" +// or: +var matchToToken = require("js-tokens").matchToToken +``` + +Takes a `match` returned by `jsTokens.exec(string)`, and returns a `{type: +String, value: String}` object. The following types are available: + +- string +- comment +- regex +- number +- name +- punctuator +- whitespace +- invalid + +Multi-line comments and strings also have a `closed` property indicating if the +token was closed or not (see below). + +Comments and strings both come in several flavors. To distinguish them, check if +the token starts with `//`, `/*`, `'`, `"` or `` ` ``. + +Names are ECMAScript IdentifierNames, that is, including both identifiers and +keywords. You may use [is-keyword-js] to tell them apart. + +Whitespace includes both line terminators and other whitespace. + +[is-keyword-js]: https://github.com/crissdev/is-keyword-js + + +ECMAScript support +================== + +The intention is to always support the latest ECMAScript version whose feature +set has been finalized. + +If adding support for a newer version requires changes, a new version with a +major verion bump will be released. + +Currently, ECMAScript 2018 is supported. + + +Invalid code handling +===================== + +Unterminated strings are still matched as strings. JavaScript strings cannot +contain (unescaped) newlines, so unterminated strings simply end at the end of +the line. Unterminated template strings can contain unescaped newlines, though, +so they go on to the end of input. + +Unterminated multi-line comments are also still matched as comments. They +simply go on to the end of the input. + +Unterminated regex literals are likely matched as division and whatever is +inside the regex. + +Invalid ASCII characters have their own capturing group. + +Invalid non-ASCII characters are treated as names, to simplify the matching of +names (except unicode spaces which are treated as whitespace). Note: See also +the [ES2018](#es2018) section. + +Regex literals may contain invalid regex syntax. They are still matched as +regex literals. They may also contain repeated regex flags, to keep the regex +simple. + +Strings may contain invalid escape sequences. + + +Limitations +=========== + +Tokenizing JavaScript using regexes—in fact, _one single regex_—won’t be +perfect. But that’s not the point either. + +You may compare jsTokens with [esprima] by using `esprima-compare.js`. +See `npm run esprima-compare`! + +[esprima]: http://esprima.org/ + +### Template string interpolation ### + +Template strings are matched as single tokens, from the starting `` ` `` to the +ending `` ` ``, including interpolations (whose tokens are not matched +individually). + +Matching template string interpolations requires recursive balancing of `{` and +`}`—something that JavaScript regexes cannot do. Only one level of nesting is +supported. + +### Division and regex literals collision ### + +Consider this example: + +```js +var g = 9.82 +var number = bar / 2/g + +var regex = / 2/g +``` + +A human can easily understand that in the `number` line we’re dealing with +division, and in the `regex` line we’re dealing with a regex literal. How come? +Because humans can look at the whole code to put the `/` characters in context. +A JavaScript regex cannot. It only sees forwards. (Well, ES2018 regexes can also +look backwards. See the [ES2018](#es2018) section). + +When the `jsTokens` regex scans throught the above, it will see the following +at the end of both the `number` and `regex` rows: + +```js +/ 2/g +``` + +It is then impossible to know if that is a regex literal, or part of an +expression dealing with division. + +Here is a similar case: + +```js +foo /= 2/g +foo(/= 2/g) +``` + +The first line divides the `foo` variable with `2/g`. The second line calls the +`foo` function with the regex literal `/= 2/g`. Again, since `jsTokens` only +sees forwards, it cannot tell the two cases apart. + +There are some cases where we _can_ tell division and regex literals apart, +though. + +First off, we have the simple cases where there’s only one slash in the line: + +```js +var foo = 2/g +foo /= 2 +``` + +Regex literals cannot contain newlines, so the above cases are correctly +identified as division. Things are only problematic when there are more than +one non-comment slash in a single line. + +Secondly, not every character is a valid regex flag. + +```js +var number = bar / 2/e +``` + +The above example is also correctly identified as division, because `e` is not a +valid regex flag. I initially wanted to future-proof by allowing `[a-zA-Z]*` +(any letter) as flags, but it is not worth it since it increases the amount of +ambigous cases. So only the standard `g`, `m`, `i`, `y` and `u` flags are +allowed. This means that the above example will be identified as division as +long as you don’t rename the `e` variable to some permutation of `gmiyus` 1 to 6 +characters long. + +Lastly, we can look _forward_ for information. + +- If the token following what looks like a regex literal is not valid after a + regex literal, but is valid in a division expression, then the regex literal + is treated as division instead. For example, a flagless regex cannot be + followed by a string, number or name, but all of those three can be the + denominator of a division. +- Generally, if what looks like a regex literal is followed by an operator, the + regex literal is treated as division instead. This is because regexes are + seldomly used with operators (such as `+`, `*`, `&&` and `==`), but division + could likely be part of such an expression. + +Please consult the regex source and the test cases for precise information on +when regex or division is matched (should you need to know). In short, you +could sum it up as: + +If the end of a statement looks like a regex literal (even if it isn’t), it +will be treated as one. Otherwise it should work as expected (if you write sane +code). + +### ES2018 ### + +ES2018 added some nice regex improvements to the language. + +- [Unicode property escapes] should allow telling names and invalid non-ASCII + characters apart without blowing up the regex size. +- [Lookbehind assertions] should allow matching telling division and regex + literals apart in more cases. +- [Named capture groups] might simplify some things. + +These things would be nice to do, but are not critical. They probably have to +wait until the oldest maintained Node.js LTS release supports those features. + +[Unicode property escapes]: http://2ality.com/2017/07/regexp-unicode-property-escapes.html +[Lookbehind assertions]: http://2ality.com/2017/05/regexp-lookbehind-assertions.html +[Named capture groups]: http://2ality.com/2017/05/regexp-named-capture-groups.html + + +License +======= + +[MIT](LICENSE). diff --git a/server/api/node_modules/js-tokens/index.js b/server/api/node_modules/js-tokens/index.js new file mode 100644 index 0000000..b23a4a0 --- /dev/null +++ b/server/api/node_modules/js-tokens/index.js @@ -0,0 +1,23 @@ +// Copyright 2014, 2015, 2016, 2017, 2018 Simon Lydell +// License: MIT. (See LICENSE.) + +Object.defineProperty(exports, "__esModule", { + value: true +}) + +// This regex comes from regex.coffee, and is inserted here by generate-index.js +// (run `npm run build`). +exports.default = /((['"])(?:(?!\2|\\).|\\(?:\r\n|[\s\S]))*(\2)?|`(?:[^`\\$]|\\[\s\S]|\$(?!\{)|\$\{(?:[^{}]|\{[^}]*\}?)*\}?)*(`)?)|(\/\/.*)|(\/\*(?:[^*]|\*(?!\/))*(\*\/)?)|(\/(?!\*)(?:\[(?:(?![\]\\]).|\\.)*\]|(?![\/\]\\]).|\\.)+\/(?:(?!\s*(?:\b|[\u0080-\uFFFF$\\'"~({]|[+\-!](?!=)|\.?\d))|[gmiyus]{1,6}\b(?![\u0080-\uFFFF$\\]|\s*(?:[+\-*%&|^<>!=?({]|\/(?![\/*])))))|(0[xX][\da-fA-F]+|0[oO][0-7]+|0[bB][01]+|(?:\d*\.\d+|\d+\.?)(?:[eE][+-]?\d+)?)|((?!\d)(?:(?!\s)[$\w\u0080-\uFFFF]|\\u[\da-fA-F]{4}|\\u\{[\da-fA-F]+\})+)|(--|\+\+|&&|\|\||=>|\.{3}|(?:[+\-\/%&|^]|\*{1,2}|<{1,2}|>{1,3}|!=?|={1,2})=?|[?~.,:;[\](){}])|(\s+)|(^$|[\s\S])/g + +exports.matchToToken = function(match) { + var token = {type: "invalid", value: match[0], closed: undefined} + if (match[ 1]) token.type = "string" , token.closed = !!(match[3] || match[4]) + else if (match[ 5]) token.type = "comment" + else if (match[ 6]) token.type = "comment", token.closed = !!match[7] + else if (match[ 8]) token.type = "regex" + else if (match[ 9]) token.type = "number" + else if (match[10]) token.type = "name" + else if (match[11]) token.type = "punctuator" + else if (match[12]) token.type = "whitespace" + return token +} diff --git a/server/api/node_modules/js-tokens/package.json b/server/api/node_modules/js-tokens/package.json new file mode 100644 index 0000000..66752fa --- /dev/null +++ b/server/api/node_modules/js-tokens/package.json @@ -0,0 +1,30 @@ +{ + "name": "js-tokens", + "version": "4.0.0", + "author": "Simon Lydell", + "license": "MIT", + "description": "A regex that tokenizes JavaScript.", + "keywords": [ + "JavaScript", + "js", + "token", + "tokenize", + "regex" + ], + "files": [ + "index.js" + ], + "repository": "lydell/js-tokens", + "scripts": { + "test": "mocha --ui tdd", + "esprima-compare": "node esprima-compare ./index.js everything.js/es5.js", + "build": "node generate-index.js", + "dev": "npm run build && npm test" + }, + "devDependencies": { + "coffeescript": "2.1.1", + "esprima": "4.0.0", + "everything.js": "1.0.3", + "mocha": "5.0.0" + } +} diff --git a/server/api/node_modules/js-yaml/LICENSE b/server/api/node_modules/js-yaml/LICENSE new file mode 100644 index 0000000..09d3a29 --- /dev/null +++ b/server/api/node_modules/js-yaml/LICENSE @@ -0,0 +1,21 @@ +(The MIT License) + +Copyright (C) 2011-2015 by Vitaly Puzrin + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/server/api/node_modules/js-yaml/README.md b/server/api/node_modules/js-yaml/README.md new file mode 100644 index 0000000..246e563 --- /dev/null +++ b/server/api/node_modules/js-yaml/README.md @@ -0,0 +1,299 @@ +JS-YAML - YAML 1.2 parser / writer for JavaScript +================================================= + +[![Build Status](https://travis-ci.org/nodeca/js-yaml.svg?branch=master)](https://travis-ci.org/nodeca/js-yaml) +[![NPM version](https://img.shields.io/npm/v/js-yaml.svg)](https://www.npmjs.org/package/js-yaml) + +__[Online Demo](http://nodeca.github.com/js-yaml/)__ + + +This is an implementation of [YAML](http://yaml.org/), a human-friendly data +serialization language. Started as [PyYAML](http://pyyaml.org/) port, it was +completely rewritten from scratch. Now it's very fast, and supports 1.2 spec. + + +Installation +------------ + +### YAML module for node.js + +``` +npm install js-yaml +``` + + +### CLI executable + +If you want to inspect your YAML files from CLI, install js-yaml globally: + +``` +npm install -g js-yaml +``` + +#### Usage + +``` +usage: js-yaml [-h] [-v] [-c] [-t] file + +Positional arguments: + file File with YAML document(s) + +Optional arguments: + -h, --help Show this help message and exit. + -v, --version Show program's version number and exit. + -c, --compact Display errors in compact mode + -t, --trace Show stack trace on error +``` + + +### Bundled YAML library for browsers + +``` html + + + + +``` + +Browser support was done mostly for the online demo. If you find any errors - feel +free to send pull requests with fixes. Also note, that IE and other old browsers +needs [es5-shims](https://github.com/kriskowal/es5-shim) to operate. + +Notes: + +1. We have no resources to support browserified version. Don't expect it to be + well tested. Don't expect fast fixes if something goes wrong there. +2. `!!js/function` in browser bundle will not work by default. If you really need + it - load `esprima` parser first (via amd or directly). +3. `!!bin` in browser will return `Array`, because browsers do not support + node.js `Buffer` and adding Buffer shims is completely useless on practice. + + +API +--- + +Here we cover the most 'useful' methods. If you need advanced details (creating +your own tags), see [wiki](https://github.com/nodeca/js-yaml/wiki) and +[examples](https://github.com/nodeca/js-yaml/tree/master/examples) for more +info. + +``` javascript +const yaml = require('js-yaml'); +const fs = require('fs'); + +// Get document, or throw exception on error +try { + const doc = yaml.safeLoad(fs.readFileSync('/home/ixti/example.yml', 'utf8')); + console.log(doc); +} catch (e) { + console.log(e); +} +``` + + +### safeLoad (string [ , options ]) + +**Recommended loading way.** Parses `string` as single YAML document. Returns either a +plain object, a string or `undefined`, or throws `YAMLException` on error. By default, does +not support regexps, functions and undefined. This method is safe for untrusted data. + +options: + +- `filename` _(default: null)_ - string to be used as a file path in + error/warning messages. +- `onWarning` _(default: null)_ - function to call on warning messages. + Loader will call this function with an instance of `YAMLException` for each warning. +- `schema` _(default: `DEFAULT_SAFE_SCHEMA`)_ - specifies a schema to use. + - `FAILSAFE_SCHEMA` - only strings, arrays and plain objects: + http://www.yaml.org/spec/1.2/spec.html#id2802346 + - `JSON_SCHEMA` - all JSON-supported types: + http://www.yaml.org/spec/1.2/spec.html#id2803231 + - `CORE_SCHEMA` - same as `JSON_SCHEMA`: + http://www.yaml.org/spec/1.2/spec.html#id2804923 + - `DEFAULT_SAFE_SCHEMA` - all supported YAML types, without unsafe ones + (`!!js/undefined`, `!!js/regexp` and `!!js/function`): + http://yaml.org/type/ + - `DEFAULT_FULL_SCHEMA` - all supported YAML types. +- `json` _(default: false)_ - compatibility with JSON.parse behaviour. If true, then duplicate keys in a mapping will override values rather than throwing an error. + +NOTE: This function **does not** understand multi-document sources, it throws +exception on those. + +NOTE: JS-YAML **does not** support schema-specific tag resolution restrictions. +So, the JSON schema is not as strictly defined in the YAML specification. +It allows numbers in any notation, use `Null` and `NULL` as `null`, etc. +The core schema also has no such restrictions. It allows binary notation for integers. + + +### load (string [ , options ]) + +**Use with care with untrusted sources**. The same as `safeLoad()` but uses +`DEFAULT_FULL_SCHEMA` by default - adds some JavaScript-specific types: +`!!js/function`, `!!js/regexp` and `!!js/undefined`. For untrusted sources, you +must additionally validate object structure to avoid injections: + +``` javascript +const untrusted_code = '"toString": ! "function (){very_evil_thing();}"'; + +// I'm just converting that string, what could possibly go wrong? +require('js-yaml').load(untrusted_code) + '' +``` + + +### safeLoadAll (string [, iterator] [, options ]) + +Same as `safeLoad()`, but understands multi-document sources. Applies +`iterator` to each document if specified, or returns array of documents. + +``` javascript +const yaml = require('js-yaml'); + +yaml.safeLoadAll(data, function (doc) { + console.log(doc); +}); +``` + + +### loadAll (string [, iterator] [ , options ]) + +Same as `safeLoadAll()` but uses `DEFAULT_FULL_SCHEMA` by default. + + +### safeDump (object [ , options ]) + +Serializes `object` as a YAML document. Uses `DEFAULT_SAFE_SCHEMA`, so it will +throw an exception if you try to dump regexps or functions. However, you can +disable exceptions by setting the `skipInvalid` option to `true`. + +options: + +- `indent` _(default: 2)_ - indentation width to use (in spaces). +- `noArrayIndent` _(default: false)_ - when true, will not add an indentation level to array elements +- `skipInvalid` _(default: false)_ - do not throw on invalid types (like function + in the safe schema) and skip pairs and single values with such types. +- `flowLevel` (default: -1) - specifies level of nesting, when to switch from + block to flow style for collections. -1 means block style everwhere +- `styles` - "tag" => "style" map. Each tag may have own set of styles. +- `schema` _(default: `DEFAULT_SAFE_SCHEMA`)_ specifies a schema to use. +- `sortKeys` _(default: `false`)_ - if `true`, sort keys when dumping YAML. If a + function, use the function to sort the keys. +- `lineWidth` _(default: `80`)_ - set max line width. +- `noRefs` _(default: `false`)_ - if `true`, don't convert duplicate objects into references +- `noCompatMode` _(default: `false`)_ - if `true` don't try to be compatible with older + yaml versions. Currently: don't quote "yes", "no" and so on, as required for YAML 1.1 +- `condenseFlow` _(default: `false`)_ - if `true` flow sequences will be condensed, omitting the space between `a, b`. Eg. `'[a,b]'`, and omitting the space between `key: value` and quoting the key. Eg. `'{"a":b}'` Can be useful when using yaml for pretty URL query params as spaces are %-encoded. + +The following table show availlable styles (e.g. "canonical", +"binary"...) available for each tag (.e.g. !!null, !!int ...). Yaml +output is shown on the right side after `=>` (default setting) or `->`: + +``` none +!!null + "canonical" -> "~" + "lowercase" => "null" + "uppercase" -> "NULL" + "camelcase" -> "Null" + +!!int + "binary" -> "0b1", "0b101010", "0b1110001111010" + "octal" -> "01", "052", "016172" + "decimal" => "1", "42", "7290" + "hexadecimal" -> "0x1", "0x2A", "0x1C7A" + +!!bool + "lowercase" => "true", "false" + "uppercase" -> "TRUE", "FALSE" + "camelcase" -> "True", "False" + +!!float + "lowercase" => ".nan", '.inf' + "uppercase" -> ".NAN", '.INF' + "camelcase" -> ".NaN", '.Inf' +``` + +Example: + +``` javascript +safeDump (object, { + 'styles': { + '!!null': 'canonical' // dump null as ~ + }, + 'sortKeys': true // sort object keys +}); +``` + +### dump (object [ , options ]) + +Same as `safeDump()` but without limits (uses `DEFAULT_FULL_SCHEMA` by default). + + +Supported YAML types +-------------------- + +The list of standard YAML tags and corresponding JavaScipt types. See also +[YAML tag discussion](http://pyyaml.org/wiki/YAMLTagDiscussion) and +[YAML types repository](http://yaml.org/type/). + +``` +!!null '' # null +!!bool 'yes' # bool +!!int '3...' # number +!!float '3.14...' # number +!!binary '...base64...' # buffer +!!timestamp 'YYYY-...' # date +!!omap [ ... ] # array of key-value pairs +!!pairs [ ... ] # array or array pairs +!!set { ... } # array of objects with given keys and null values +!!str '...' # string +!!seq [ ... ] # array +!!map { ... } # object +``` + +**JavaScript-specific tags** + +``` +!!js/regexp /pattern/gim # RegExp +!!js/undefined '' # Undefined +!!js/function 'function () {...}' # Function +``` + +Caveats +------- + +Note, that you use arrays or objects as key in JS-YAML. JS does not allow objects +or arrays as keys, and stringifies (by calling `toString()` method) them at the +moment of adding them. + +``` yaml +--- +? [ foo, bar ] +: - baz +? { foo: bar } +: - baz + - baz +``` + +``` javascript +{ "foo,bar": ["baz"], "[object Object]": ["baz", "baz"] } +``` + +Also, reading of properties on implicit block mapping keys is not supported yet. +So, the following YAML document cannot be loaded. + +``` yaml +&anchor foo: + foo: bar + *anchor: duplicate key + baz: bat + *anchor: duplicate key +``` + + +js-yaml for enterprise +---------------------- + +Available as part of the Tidelift Subscription + +The maintainers of js-yaml and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. [Learn more.](https://tidelift.com/subscription/pkg/npm-js-yaml?utm_source=npm-js-yaml&utm_medium=referral&utm_campaign=enterprise&utm_term=repo) diff --git a/server/api/node_modules/js-yaml/bin/js-yaml.js b/server/api/node_modules/js-yaml/bin/js-yaml.js new file mode 100644 index 0000000..e79186b --- /dev/null +++ b/server/api/node_modules/js-yaml/bin/js-yaml.js @@ -0,0 +1,132 @@ +#!/usr/bin/env node + + +'use strict'; + +/*eslint-disable no-console*/ + + +// stdlib +var fs = require('fs'); + + +// 3rd-party +var argparse = require('argparse'); + + +// internal +var yaml = require('..'); + + +//////////////////////////////////////////////////////////////////////////////// + + +var cli = new argparse.ArgumentParser({ + prog: 'js-yaml', + version: require('../package.json').version, + addHelp: true +}); + + +cli.addArgument([ '-c', '--compact' ], { + help: 'Display errors in compact mode', + action: 'storeTrue' +}); + + +// deprecated (not needed after we removed output colors) +// option suppressed, but not completely removed for compatibility +cli.addArgument([ '-j', '--to-json' ], { + help: argparse.Const.SUPPRESS, + dest: 'json', + action: 'storeTrue' +}); + + +cli.addArgument([ '-t', '--trace' ], { + help: 'Show stack trace on error', + action: 'storeTrue' +}); + +cli.addArgument([ 'file' ], { + help: 'File to read, utf-8 encoded without BOM', + nargs: '?', + defaultValue: '-' +}); + + +//////////////////////////////////////////////////////////////////////////////// + + +var options = cli.parseArgs(); + + +//////////////////////////////////////////////////////////////////////////////// + +function readFile(filename, encoding, callback) { + if (options.file === '-') { + // read from stdin + + var chunks = []; + + process.stdin.on('data', function (chunk) { + chunks.push(chunk); + }); + + process.stdin.on('end', function () { + return callback(null, Buffer.concat(chunks).toString(encoding)); + }); + } else { + fs.readFile(filename, encoding, callback); + } +} + +readFile(options.file, 'utf8', function (error, input) { + var output, isYaml; + + if (error) { + if (error.code === 'ENOENT') { + console.error('File not found: ' + options.file); + process.exit(2); + } + + console.error( + options.trace && error.stack || + error.message || + String(error)); + + process.exit(1); + } + + try { + output = JSON.parse(input); + isYaml = false; + } catch (err) { + if (err instanceof SyntaxError) { + try { + output = []; + yaml.loadAll(input, function (doc) { output.push(doc); }, {}); + isYaml = true; + + if (output.length === 0) output = null; + else if (output.length === 1) output = output[0]; + + } catch (e) { + if (options.trace && err.stack) console.error(e.stack); + else console.error(e.toString(options.compact)); + + process.exit(1); + } + } else { + console.error( + options.trace && err.stack || + err.message || + String(err)); + + process.exit(1); + } + } + + if (isYaml) console.log(JSON.stringify(output, null, ' ')); + else console.log(yaml.dump(output)); +}); diff --git a/server/api/node_modules/js-yaml/dist/js-yaml.js b/server/api/node_modules/js-yaml/dist/js-yaml.js new file mode 100644 index 0000000..edd69ae --- /dev/null +++ b/server/api/node_modules/js-yaml/dist/js-yaml.js @@ -0,0 +1,4005 @@ +/*! js-yaml 3.14.2 https://github.com/nodeca/js-yaml */(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.jsyaml = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i */ +var CHAR_QUESTION = 0x3F; /* ? */ +var CHAR_COMMERCIAL_AT = 0x40; /* @ */ +var CHAR_LEFT_SQUARE_BRACKET = 0x5B; /* [ */ +var CHAR_RIGHT_SQUARE_BRACKET = 0x5D; /* ] */ +var CHAR_GRAVE_ACCENT = 0x60; /* ` */ +var CHAR_LEFT_CURLY_BRACKET = 0x7B; /* { */ +var CHAR_VERTICAL_LINE = 0x7C; /* | */ +var CHAR_RIGHT_CURLY_BRACKET = 0x7D; /* } */ + +var ESCAPE_SEQUENCES = {}; + +ESCAPE_SEQUENCES[0x00] = '\\0'; +ESCAPE_SEQUENCES[0x07] = '\\a'; +ESCAPE_SEQUENCES[0x08] = '\\b'; +ESCAPE_SEQUENCES[0x09] = '\\t'; +ESCAPE_SEQUENCES[0x0A] = '\\n'; +ESCAPE_SEQUENCES[0x0B] = '\\v'; +ESCAPE_SEQUENCES[0x0C] = '\\f'; +ESCAPE_SEQUENCES[0x0D] = '\\r'; +ESCAPE_SEQUENCES[0x1B] = '\\e'; +ESCAPE_SEQUENCES[0x22] = '\\"'; +ESCAPE_SEQUENCES[0x5C] = '\\\\'; +ESCAPE_SEQUENCES[0x85] = '\\N'; +ESCAPE_SEQUENCES[0xA0] = '\\_'; +ESCAPE_SEQUENCES[0x2028] = '\\L'; +ESCAPE_SEQUENCES[0x2029] = '\\P'; + +var DEPRECATED_BOOLEANS_SYNTAX = [ + 'y', 'Y', 'yes', 'Yes', 'YES', 'on', 'On', 'ON', + 'n', 'N', 'no', 'No', 'NO', 'off', 'Off', 'OFF' +]; + +function compileStyleMap(schema, map) { + var result, keys, index, length, tag, style, type; + + if (map === null) return {}; + + result = {}; + keys = Object.keys(map); + + for (index = 0, length = keys.length; index < length; index += 1) { + tag = keys[index]; + style = String(map[tag]); + + if (tag.slice(0, 2) === '!!') { + tag = 'tag:yaml.org,2002:' + tag.slice(2); + } + type = schema.compiledTypeMap['fallback'][tag]; + + if (type && _hasOwnProperty.call(type.styleAliases, style)) { + style = type.styleAliases[style]; + } + + result[tag] = style; + } + + return result; +} + +function encodeHex(character) { + var string, handle, length; + + string = character.toString(16).toUpperCase(); + + if (character <= 0xFF) { + handle = 'x'; + length = 2; + } else if (character <= 0xFFFF) { + handle = 'u'; + length = 4; + } else if (character <= 0xFFFFFFFF) { + handle = 'U'; + length = 8; + } else { + throw new YAMLException('code point within a string may not be greater than 0xFFFFFFFF'); + } + + return '\\' + handle + common.repeat('0', length - string.length) + string; +} + +function State(options) { + this.schema = options['schema'] || DEFAULT_FULL_SCHEMA; + this.indent = Math.max(1, (options['indent'] || 2)); + this.noArrayIndent = options['noArrayIndent'] || false; + this.skipInvalid = options['skipInvalid'] || false; + this.flowLevel = (common.isNothing(options['flowLevel']) ? -1 : options['flowLevel']); + this.styleMap = compileStyleMap(this.schema, options['styles'] || null); + this.sortKeys = options['sortKeys'] || false; + this.lineWidth = options['lineWidth'] || 80; + this.noRefs = options['noRefs'] || false; + this.noCompatMode = options['noCompatMode'] || false; + this.condenseFlow = options['condenseFlow'] || false; + + this.implicitTypes = this.schema.compiledImplicit; + this.explicitTypes = this.schema.compiledExplicit; + + this.tag = null; + this.result = ''; + + this.duplicates = []; + this.usedDuplicates = null; +} + +// Indents every line in a string. Empty lines (\n only) are not indented. +function indentString(string, spaces) { + var ind = common.repeat(' ', spaces), + position = 0, + next = -1, + result = '', + line, + length = string.length; + + while (position < length) { + next = string.indexOf('\n', position); + if (next === -1) { + line = string.slice(position); + position = length; + } else { + line = string.slice(position, next + 1); + position = next + 1; + } + + if (line.length && line !== '\n') result += ind; + + result += line; + } + + return result; +} + +function generateNextLine(state, level) { + return '\n' + common.repeat(' ', state.indent * level); +} + +function testImplicitResolving(state, str) { + var index, length, type; + + for (index = 0, length = state.implicitTypes.length; index < length; index += 1) { + type = state.implicitTypes[index]; + + if (type.resolve(str)) { + return true; + } + } + + return false; +} + +// [33] s-white ::= s-space | s-tab +function isWhitespace(c) { + return c === CHAR_SPACE || c === CHAR_TAB; +} + +// Returns true if the character can be printed without escaping. +// From YAML 1.2: "any allowed characters known to be non-printable +// should also be escaped. [However,] This isn’t mandatory" +// Derived from nb-char - \t - #x85 - #xA0 - #x2028 - #x2029. +function isPrintable(c) { + return (0x00020 <= c && c <= 0x00007E) + || ((0x000A1 <= c && c <= 0x00D7FF) && c !== 0x2028 && c !== 0x2029) + || ((0x0E000 <= c && c <= 0x00FFFD) && c !== 0xFEFF /* BOM */) + || (0x10000 <= c && c <= 0x10FFFF); +} + +// [34] ns-char ::= nb-char - s-white +// [27] nb-char ::= c-printable - b-char - c-byte-order-mark +// [26] b-char ::= b-line-feed | b-carriage-return +// [24] b-line-feed ::= #xA /* LF */ +// [25] b-carriage-return ::= #xD /* CR */ +// [3] c-byte-order-mark ::= #xFEFF +function isNsChar(c) { + return isPrintable(c) && !isWhitespace(c) + // byte-order-mark + && c !== 0xFEFF + // b-char + && c !== CHAR_CARRIAGE_RETURN + && c !== CHAR_LINE_FEED; +} + +// Simplified test for values allowed after the first character in plain style. +function isPlainSafe(c, prev) { + // Uses a subset of nb-char - c-flow-indicator - ":" - "#" + // where nb-char ::= c-printable - b-char - c-byte-order-mark. + return isPrintable(c) && c !== 0xFEFF + // - c-flow-indicator + && c !== CHAR_COMMA + && c !== CHAR_LEFT_SQUARE_BRACKET + && c !== CHAR_RIGHT_SQUARE_BRACKET + && c !== CHAR_LEFT_CURLY_BRACKET + && c !== CHAR_RIGHT_CURLY_BRACKET + // - ":" - "#" + // /* An ns-char preceding */ "#" + && c !== CHAR_COLON + && ((c !== CHAR_SHARP) || (prev && isNsChar(prev))); +} + +// Simplified test for values allowed as the first character in plain style. +function isPlainSafeFirst(c) { + // Uses a subset of ns-char - c-indicator + // where ns-char = nb-char - s-white. + return isPrintable(c) && c !== 0xFEFF + && !isWhitespace(c) // - s-white + // - (c-indicator ::= + // “-” | “?” | “:” | “,” | “[” | “]” | “{” | “}” + && c !== CHAR_MINUS + && c !== CHAR_QUESTION + && c !== CHAR_COLON + && c !== CHAR_COMMA + && c !== CHAR_LEFT_SQUARE_BRACKET + && c !== CHAR_RIGHT_SQUARE_BRACKET + && c !== CHAR_LEFT_CURLY_BRACKET + && c !== CHAR_RIGHT_CURLY_BRACKET + // | “#” | “&” | “*” | “!” | “|” | “=” | “>” | “'” | “"” + && c !== CHAR_SHARP + && c !== CHAR_AMPERSAND + && c !== CHAR_ASTERISK + && c !== CHAR_EXCLAMATION + && c !== CHAR_VERTICAL_LINE + && c !== CHAR_EQUALS + && c !== CHAR_GREATER_THAN + && c !== CHAR_SINGLE_QUOTE + && c !== CHAR_DOUBLE_QUOTE + // | “%” | “@” | “`”) + && c !== CHAR_PERCENT + && c !== CHAR_COMMERCIAL_AT + && c !== CHAR_GRAVE_ACCENT; +} + +// Determines whether block indentation indicator is required. +function needIndentIndicator(string) { + var leadingSpaceRe = /^\n* /; + return leadingSpaceRe.test(string); +} + +var STYLE_PLAIN = 1, + STYLE_SINGLE = 2, + STYLE_LITERAL = 3, + STYLE_FOLDED = 4, + STYLE_DOUBLE = 5; + +// Determines which scalar styles are possible and returns the preferred style. +// lineWidth = -1 => no limit. +// Pre-conditions: str.length > 0. +// Post-conditions: +// STYLE_PLAIN or STYLE_SINGLE => no \n are in the string. +// STYLE_LITERAL => no lines are suitable for folding (or lineWidth is -1). +// STYLE_FOLDED => a line > lineWidth and can be folded (and lineWidth != -1). +function chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth, testAmbiguousType) { + var i; + var char, prev_char; + var hasLineBreak = false; + var hasFoldableLine = false; // only checked if shouldTrackWidth + var shouldTrackWidth = lineWidth !== -1; + var previousLineBreak = -1; // count the first line correctly + var plain = isPlainSafeFirst(string.charCodeAt(0)) + && !isWhitespace(string.charCodeAt(string.length - 1)); + + if (singleLineOnly) { + // Case: no block styles. + // Check for disallowed characters to rule out plain and single. + for (i = 0; i < string.length; i++) { + char = string.charCodeAt(i); + if (!isPrintable(char)) { + return STYLE_DOUBLE; + } + prev_char = i > 0 ? string.charCodeAt(i - 1) : null; + plain = plain && isPlainSafe(char, prev_char); + } + } else { + // Case: block styles permitted. + for (i = 0; i < string.length; i++) { + char = string.charCodeAt(i); + if (char === CHAR_LINE_FEED) { + hasLineBreak = true; + // Check if any line can be folded. + if (shouldTrackWidth) { + hasFoldableLine = hasFoldableLine || + // Foldable line = too long, and not more-indented. + (i - previousLineBreak - 1 > lineWidth && + string[previousLineBreak + 1] !== ' '); + previousLineBreak = i; + } + } else if (!isPrintable(char)) { + return STYLE_DOUBLE; + } + prev_char = i > 0 ? string.charCodeAt(i - 1) : null; + plain = plain && isPlainSafe(char, prev_char); + } + // in case the end is missing a \n + hasFoldableLine = hasFoldableLine || (shouldTrackWidth && + (i - previousLineBreak - 1 > lineWidth && + string[previousLineBreak + 1] !== ' ')); + } + // Although every style can represent \n without escaping, prefer block styles + // for multiline, since they're more readable and they don't add empty lines. + // Also prefer folding a super-long line. + if (!hasLineBreak && !hasFoldableLine) { + // Strings interpretable as another type have to be quoted; + // e.g. the string 'true' vs. the boolean true. + return plain && !testAmbiguousType(string) + ? STYLE_PLAIN : STYLE_SINGLE; + } + // Edge case: block indentation indicator can only have one digit. + if (indentPerLevel > 9 && needIndentIndicator(string)) { + return STYLE_DOUBLE; + } + // At this point we know block styles are valid. + // Prefer literal style unless we want to fold. + return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL; +} + +// Note: line breaking/folding is implemented for only the folded style. +// NB. We drop the last trailing newline (if any) of a returned block scalar +// since the dumper adds its own newline. This always works: +// • No ending newline => unaffected; already using strip "-" chomping. +// • Ending newline => removed then restored. +// Importantly, this keeps the "+" chomp indicator from gaining an extra line. +function writeScalar(state, string, level, iskey) { + state.dump = (function () { + if (string.length === 0) { + return "''"; + } + if (!state.noCompatMode && + DEPRECATED_BOOLEANS_SYNTAX.indexOf(string) !== -1) { + return "'" + string + "'"; + } + + var indent = state.indent * Math.max(1, level); // no 0-indent scalars + // As indentation gets deeper, let the width decrease monotonically + // to the lower bound min(state.lineWidth, 40). + // Note that this implies + // state.lineWidth ≤ 40 + state.indent: width is fixed at the lower bound. + // state.lineWidth > 40 + state.indent: width decreases until the lower bound. + // This behaves better than a constant minimum width which disallows narrower options, + // or an indent threshold which causes the width to suddenly increase. + var lineWidth = state.lineWidth === -1 + ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent); + + // Without knowing if keys are implicit/explicit, assume implicit for safety. + var singleLineOnly = iskey + // No block styles in flow mode. + || (state.flowLevel > -1 && level >= state.flowLevel); + function testAmbiguity(string) { + return testImplicitResolving(state, string); + } + + switch (chooseScalarStyle(string, singleLineOnly, state.indent, lineWidth, testAmbiguity)) { + case STYLE_PLAIN: + return string; + case STYLE_SINGLE: + return "'" + string.replace(/'/g, "''") + "'"; + case STYLE_LITERAL: + return '|' + blockHeader(string, state.indent) + + dropEndingNewline(indentString(string, indent)); + case STYLE_FOLDED: + return '>' + blockHeader(string, state.indent) + + dropEndingNewline(indentString(foldString(string, lineWidth), indent)); + case STYLE_DOUBLE: + return '"' + escapeString(string, lineWidth) + '"'; + default: + throw new YAMLException('impossible error: invalid scalar style'); + } + }()); +} + +// Pre-conditions: string is valid for a block scalar, 1 <= indentPerLevel <= 9. +function blockHeader(string, indentPerLevel) { + var indentIndicator = needIndentIndicator(string) ? String(indentPerLevel) : ''; + + // note the special case: the string '\n' counts as a "trailing" empty line. + var clip = string[string.length - 1] === '\n'; + var keep = clip && (string[string.length - 2] === '\n' || string === '\n'); + var chomp = keep ? '+' : (clip ? '' : '-'); + + return indentIndicator + chomp + '\n'; +} + +// (See the note for writeScalar.) +function dropEndingNewline(string) { + return string[string.length - 1] === '\n' ? string.slice(0, -1) : string; +} + +// Note: a long line without a suitable break point will exceed the width limit. +// Pre-conditions: every char in str isPrintable, str.length > 0, width > 0. +function foldString(string, width) { + // In folded style, $k$ consecutive newlines output as $k+1$ newlines— + // unless they're before or after a more-indented line, or at the very + // beginning or end, in which case $k$ maps to $k$. + // Therefore, parse each chunk as newline(s) followed by a content line. + var lineRe = /(\n+)([^\n]*)/g; + + // first line (possibly an empty line) + var result = (function () { + var nextLF = string.indexOf('\n'); + nextLF = nextLF !== -1 ? nextLF : string.length; + lineRe.lastIndex = nextLF; + return foldLine(string.slice(0, nextLF), width); + }()); + // If we haven't reached the first content line yet, don't add an extra \n. + var prevMoreIndented = string[0] === '\n' || string[0] === ' '; + var moreIndented; + + // rest of the lines + var match; + while ((match = lineRe.exec(string))) { + var prefix = match[1], line = match[2]; + moreIndented = (line[0] === ' '); + result += prefix + + (!prevMoreIndented && !moreIndented && line !== '' + ? '\n' : '') + + foldLine(line, width); + prevMoreIndented = moreIndented; + } + + return result; +} + +// Greedy line breaking. +// Picks the longest line under the limit each time, +// otherwise settles for the shortest line over the limit. +// NB. More-indented lines *cannot* be folded, as that would add an extra \n. +function foldLine(line, width) { + if (line === '' || line[0] === ' ') return line; + + // Since a more-indented line adds a \n, breaks can't be followed by a space. + var breakRe = / [^ ]/g; // note: the match index will always be <= length-2. + var match; + // start is an inclusive index. end, curr, and next are exclusive. + var start = 0, end, curr = 0, next = 0; + var result = ''; + + // Invariants: 0 <= start <= length-1. + // 0 <= curr <= next <= max(0, length-2). curr - start <= width. + // Inside the loop: + // A match implies length >= 2, so curr and next are <= length-2. + while ((match = breakRe.exec(line))) { + next = match.index; + // maintain invariant: curr - start <= width + if (next - start > width) { + end = (curr > start) ? curr : next; // derive end <= length-2 + result += '\n' + line.slice(start, end); + // skip the space that was output as \n + start = end + 1; // derive start <= length-1 + } + curr = next; + } + + // By the invariants, start <= length-1, so there is something left over. + // It is either the whole string or a part starting from non-whitespace. + result += '\n'; + // Insert a break if the remainder is too long and there is a break available. + if (line.length - start > width && curr > start) { + result += line.slice(start, curr) + '\n' + line.slice(curr + 1); + } else { + result += line.slice(start); + } + + return result.slice(1); // drop extra \n joiner +} + +// Escapes a double-quoted string. +function escapeString(string) { + var result = ''; + var char, nextChar; + var escapeSeq; + + for (var i = 0; i < string.length; i++) { + char = string.charCodeAt(i); + // Check for surrogate pairs (reference Unicode 3.0 section "3.7 Surrogates"). + if (char >= 0xD800 && char <= 0xDBFF/* high surrogate */) { + nextChar = string.charCodeAt(i + 1); + if (nextChar >= 0xDC00 && nextChar <= 0xDFFF/* low surrogate */) { + // Combine the surrogate pair and store it escaped. + result += encodeHex((char - 0xD800) * 0x400 + nextChar - 0xDC00 + 0x10000); + // Advance index one extra since we already used that char here. + i++; continue; + } + } + escapeSeq = ESCAPE_SEQUENCES[char]; + result += !escapeSeq && isPrintable(char) + ? string[i] + : escapeSeq || encodeHex(char); + } + + return result; +} + +function writeFlowSequence(state, level, object) { + var _result = '', + _tag = state.tag, + index, + length; + + for (index = 0, length = object.length; index < length; index += 1) { + // Write only valid elements. + if (writeNode(state, level, object[index], false, false)) { + if (index !== 0) _result += ',' + (!state.condenseFlow ? ' ' : ''); + _result += state.dump; + } + } + + state.tag = _tag; + state.dump = '[' + _result + ']'; +} + +function writeBlockSequence(state, level, object, compact) { + var _result = '', + _tag = state.tag, + index, + length; + + for (index = 0, length = object.length; index < length; index += 1) { + // Write only valid elements. + if (writeNode(state, level + 1, object[index], true, true)) { + if (!compact || index !== 0) { + _result += generateNextLine(state, level); + } + + if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { + _result += '-'; + } else { + _result += '- '; + } + + _result += state.dump; + } + } + + state.tag = _tag; + state.dump = _result || '[]'; // Empty sequence if no valid values. +} + +function writeFlowMapping(state, level, object) { + var _result = '', + _tag = state.tag, + objectKeyList = Object.keys(object), + index, + length, + objectKey, + objectValue, + pairBuffer; + + for (index = 0, length = objectKeyList.length; index < length; index += 1) { + + pairBuffer = ''; + if (index !== 0) pairBuffer += ', '; + + if (state.condenseFlow) pairBuffer += '"'; + + objectKey = objectKeyList[index]; + objectValue = object[objectKey]; + + if (!writeNode(state, level, objectKey, false, false)) { + continue; // Skip this pair because of invalid key; + } + + if (state.dump.length > 1024) pairBuffer += '? '; + + pairBuffer += state.dump + (state.condenseFlow ? '"' : '') + ':' + (state.condenseFlow ? '' : ' '); + + if (!writeNode(state, level, objectValue, false, false)) { + continue; // Skip this pair because of invalid value. + } + + pairBuffer += state.dump; + + // Both key and value are valid. + _result += pairBuffer; + } + + state.tag = _tag; + state.dump = '{' + _result + '}'; +} + +function writeBlockMapping(state, level, object, compact) { + var _result = '', + _tag = state.tag, + objectKeyList = Object.keys(object), + index, + length, + objectKey, + objectValue, + explicitPair, + pairBuffer; + + // Allow sorting keys so that the output file is deterministic + if (state.sortKeys === true) { + // Default sorting + objectKeyList.sort(); + } else if (typeof state.sortKeys === 'function') { + // Custom sort function + objectKeyList.sort(state.sortKeys); + } else if (state.sortKeys) { + // Something is wrong + throw new YAMLException('sortKeys must be a boolean or a function'); + } + + for (index = 0, length = objectKeyList.length; index < length; index += 1) { + pairBuffer = ''; + + if (!compact || index !== 0) { + pairBuffer += generateNextLine(state, level); + } + + objectKey = objectKeyList[index]; + objectValue = object[objectKey]; + + if (!writeNode(state, level + 1, objectKey, true, true, true)) { + continue; // Skip this pair because of invalid key. + } + + explicitPair = (state.tag !== null && state.tag !== '?') || + (state.dump && state.dump.length > 1024); + + if (explicitPair) { + if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { + pairBuffer += '?'; + } else { + pairBuffer += '? '; + } + } + + pairBuffer += state.dump; + + if (explicitPair) { + pairBuffer += generateNextLine(state, level); + } + + if (!writeNode(state, level + 1, objectValue, true, explicitPair)) { + continue; // Skip this pair because of invalid value. + } + + if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { + pairBuffer += ':'; + } else { + pairBuffer += ': '; + } + + pairBuffer += state.dump; + + // Both key and value are valid. + _result += pairBuffer; + } + + state.tag = _tag; + state.dump = _result || '{}'; // Empty mapping if no valid pairs. +} + +function detectType(state, object, explicit) { + var _result, typeList, index, length, type, style; + + typeList = explicit ? state.explicitTypes : state.implicitTypes; + + for (index = 0, length = typeList.length; index < length; index += 1) { + type = typeList[index]; + + if ((type.instanceOf || type.predicate) && + (!type.instanceOf || ((typeof object === 'object') && (object instanceof type.instanceOf))) && + (!type.predicate || type.predicate(object))) { + + state.tag = explicit ? type.tag : '?'; + + if (type.represent) { + style = state.styleMap[type.tag] || type.defaultStyle; + + if (_toString.call(type.represent) === '[object Function]') { + _result = type.represent(object, style); + } else if (_hasOwnProperty.call(type.represent, style)) { + _result = type.represent[style](object, style); + } else { + throw new YAMLException('!<' + type.tag + '> tag resolver accepts not "' + style + '" style'); + } + + state.dump = _result; + } + + return true; + } + } + + return false; +} + +// Serializes `object` and writes it to global `result`. +// Returns true on success, or false on invalid object. +// +function writeNode(state, level, object, block, compact, iskey) { + state.tag = null; + state.dump = object; + + if (!detectType(state, object, false)) { + detectType(state, object, true); + } + + var type = _toString.call(state.dump); + + if (block) { + block = (state.flowLevel < 0 || state.flowLevel > level); + } + + var objectOrArray = type === '[object Object]' || type === '[object Array]', + duplicateIndex, + duplicate; + + if (objectOrArray) { + duplicateIndex = state.duplicates.indexOf(object); + duplicate = duplicateIndex !== -1; + } + + if ((state.tag !== null && state.tag !== '?') || duplicate || (state.indent !== 2 && level > 0)) { + compact = false; + } + + if (duplicate && state.usedDuplicates[duplicateIndex]) { + state.dump = '*ref_' + duplicateIndex; + } else { + if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) { + state.usedDuplicates[duplicateIndex] = true; + } + if (type === '[object Object]') { + if (block && (Object.keys(state.dump).length !== 0)) { + writeBlockMapping(state, level, state.dump, compact); + if (duplicate) { + state.dump = '&ref_' + duplicateIndex + state.dump; + } + } else { + writeFlowMapping(state, level, state.dump); + if (duplicate) { + state.dump = '&ref_' + duplicateIndex + ' ' + state.dump; + } + } + } else if (type === '[object Array]') { + var arrayLevel = (state.noArrayIndent && (level > 0)) ? level - 1 : level; + if (block && (state.dump.length !== 0)) { + writeBlockSequence(state, arrayLevel, state.dump, compact); + if (duplicate) { + state.dump = '&ref_' + duplicateIndex + state.dump; + } + } else { + writeFlowSequence(state, arrayLevel, state.dump); + if (duplicate) { + state.dump = '&ref_' + duplicateIndex + ' ' + state.dump; + } + } + } else if (type === '[object String]') { + if (state.tag !== '?') { + writeScalar(state, state.dump, level, iskey); + } + } else { + if (state.skipInvalid) return false; + throw new YAMLException('unacceptable kind of an object to dump ' + type); + } + + if (state.tag !== null && state.tag !== '?') { + state.dump = '!<' + state.tag + '> ' + state.dump; + } + } + + return true; +} + +function getDuplicateReferences(object, state) { + var objects = [], + duplicatesIndexes = [], + index, + length; + + inspectNode(object, objects, duplicatesIndexes); + + for (index = 0, length = duplicatesIndexes.length; index < length; index += 1) { + state.duplicates.push(objects[duplicatesIndexes[index]]); + } + state.usedDuplicates = new Array(length); +} + +function inspectNode(object, objects, duplicatesIndexes) { + var objectKeyList, + index, + length; + + if (object !== null && typeof object === 'object') { + index = objects.indexOf(object); + if (index !== -1) { + if (duplicatesIndexes.indexOf(index) === -1) { + duplicatesIndexes.push(index); + } + } else { + objects.push(object); + + if (Array.isArray(object)) { + for (index = 0, length = object.length; index < length; index += 1) { + inspectNode(object[index], objects, duplicatesIndexes); + } + } else { + objectKeyList = Object.keys(object); + + for (index = 0, length = objectKeyList.length; index < length; index += 1) { + inspectNode(object[objectKeyList[index]], objects, duplicatesIndexes); + } + } + } + } +} + +function dump(input, options) { + options = options || {}; + + var state = new State(options); + + if (!state.noRefs) getDuplicateReferences(input, state); + + if (writeNode(state, 0, input, true, true)) return state.dump + '\n'; + + return ''; +} + +function safeDump(input, options) { + return dump(input, common.extend({ schema: DEFAULT_SAFE_SCHEMA }, options)); +} + +module.exports.dump = dump; +module.exports.safeDump = safeDump; + +},{"./common":2,"./exception":4,"./schema/default_full":9,"./schema/default_safe":10}],4:[function(require,module,exports){ +// YAML error class. http://stackoverflow.com/questions/8458984 +// +'use strict'; + +function YAMLException(reason, mark) { + // Super constructor + Error.call(this); + + this.name = 'YAMLException'; + this.reason = reason; + this.mark = mark; + this.message = (this.reason || '(unknown reason)') + (this.mark ? ' ' + this.mark.toString() : ''); + + // Include stack trace in error object + if (Error.captureStackTrace) { + // Chrome and NodeJS + Error.captureStackTrace(this, this.constructor); + } else { + // FF, IE 10+ and Safari 6+. Fallback for others + this.stack = (new Error()).stack || ''; + } +} + + +// Inherit from Error +YAMLException.prototype = Object.create(Error.prototype); +YAMLException.prototype.constructor = YAMLException; + + +YAMLException.prototype.toString = function toString(compact) { + var result = this.name + ': '; + + result += this.reason || '(unknown reason)'; + + if (!compact && this.mark) { + result += ' ' + this.mark.toString(); + } + + return result; +}; + + +module.exports = YAMLException; + +},{}],5:[function(require,module,exports){ +'use strict'; + +/*eslint-disable max-len,no-use-before-define*/ + +var common = require('./common'); +var YAMLException = require('./exception'); +var Mark = require('./mark'); +var DEFAULT_SAFE_SCHEMA = require('./schema/default_safe'); +var DEFAULT_FULL_SCHEMA = require('./schema/default_full'); + + +var _hasOwnProperty = Object.prototype.hasOwnProperty; + + +var CONTEXT_FLOW_IN = 1; +var CONTEXT_FLOW_OUT = 2; +var CONTEXT_BLOCK_IN = 3; +var CONTEXT_BLOCK_OUT = 4; + + +var CHOMPING_CLIP = 1; +var CHOMPING_STRIP = 2; +var CHOMPING_KEEP = 3; + + +var PATTERN_NON_PRINTABLE = /[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/; +var PATTERN_NON_ASCII_LINE_BREAKS = /[\x85\u2028\u2029]/; +var PATTERN_FLOW_INDICATORS = /[,\[\]\{\}]/; +var PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\-]+!)$/i; +var PATTERN_TAG_URI = /^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i; + + +function _class(obj) { return Object.prototype.toString.call(obj); } + +function is_EOL(c) { + return (c === 0x0A/* LF */) || (c === 0x0D/* CR */); +} + +function is_WHITE_SPACE(c) { + return (c === 0x09/* Tab */) || (c === 0x20/* Space */); +} + +function is_WS_OR_EOL(c) { + return (c === 0x09/* Tab */) || + (c === 0x20/* Space */) || + (c === 0x0A/* LF */) || + (c === 0x0D/* CR */); +} + +function is_FLOW_INDICATOR(c) { + return c === 0x2C/* , */ || + c === 0x5B/* [ */ || + c === 0x5D/* ] */ || + c === 0x7B/* { */ || + c === 0x7D/* } */; +} + +function fromHexCode(c) { + var lc; + + if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) { + return c - 0x30; + } + + /*eslint-disable no-bitwise*/ + lc = c | 0x20; + + if ((0x61/* a */ <= lc) && (lc <= 0x66/* f */)) { + return lc - 0x61 + 10; + } + + return -1; +} + +function escapedHexLen(c) { + if (c === 0x78/* x */) { return 2; } + if (c === 0x75/* u */) { return 4; } + if (c === 0x55/* U */) { return 8; } + return 0; +} + +function fromDecimalCode(c) { + if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) { + return c - 0x30; + } + + return -1; +} + +function simpleEscapeSequence(c) { + /* eslint-disable indent */ + return (c === 0x30/* 0 */) ? '\x00' : + (c === 0x61/* a */) ? '\x07' : + (c === 0x62/* b */) ? '\x08' : + (c === 0x74/* t */) ? '\x09' : + (c === 0x09/* Tab */) ? '\x09' : + (c === 0x6E/* n */) ? '\x0A' : + (c === 0x76/* v */) ? '\x0B' : + (c === 0x66/* f */) ? '\x0C' : + (c === 0x72/* r */) ? '\x0D' : + (c === 0x65/* e */) ? '\x1B' : + (c === 0x20/* Space */) ? ' ' : + (c === 0x22/* " */) ? '\x22' : + (c === 0x2F/* / */) ? '/' : + (c === 0x5C/* \ */) ? '\x5C' : + (c === 0x4E/* N */) ? '\x85' : + (c === 0x5F/* _ */) ? '\xA0' : + (c === 0x4C/* L */) ? '\u2028' : + (c === 0x50/* P */) ? '\u2029' : ''; +} + +function charFromCodepoint(c) { + if (c <= 0xFFFF) { + return String.fromCharCode(c); + } + // Encode UTF-16 surrogate pair + // https://en.wikipedia.org/wiki/UTF-16#Code_points_U.2B010000_to_U.2B10FFFF + return String.fromCharCode( + ((c - 0x010000) >> 10) + 0xD800, + ((c - 0x010000) & 0x03FF) + 0xDC00 + ); +} + +// set a property of a literal object, while protecting against prototype pollution, +// see https://github.com/nodeca/js-yaml/issues/164 for more details +function setProperty(object, key, value) { + // used for this specific key only because Object.defineProperty is slow + if (key === '__proto__') { + Object.defineProperty(object, key, { + configurable: true, + enumerable: true, + writable: true, + value: value + }); + } else { + object[key] = value; + } +} + +var simpleEscapeCheck = new Array(256); // integer, for fast access +var simpleEscapeMap = new Array(256); +for (var i = 0; i < 256; i++) { + simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0; + simpleEscapeMap[i] = simpleEscapeSequence(i); +} + + +function State(input, options) { + this.input = input; + + this.filename = options['filename'] || null; + this.schema = options['schema'] || DEFAULT_FULL_SCHEMA; + this.onWarning = options['onWarning'] || null; + this.legacy = options['legacy'] || false; + this.json = options['json'] || false; + this.listener = options['listener'] || null; + + this.implicitTypes = this.schema.compiledImplicit; + this.typeMap = this.schema.compiledTypeMap; + + this.length = input.length; + this.position = 0; + this.line = 0; + this.lineStart = 0; + this.lineIndent = 0; + + this.documents = []; + + /* + this.version; + this.checkLineBreaks; + this.tagMap; + this.anchorMap; + this.tag; + this.anchor; + this.kind; + this.result;*/ + +} + + +function generateError(state, message) { + return new YAMLException( + message, + new Mark(state.filename, state.input, state.position, state.line, (state.position - state.lineStart))); +} + +function throwError(state, message) { + throw generateError(state, message); +} + +function throwWarning(state, message) { + if (state.onWarning) { + state.onWarning.call(null, generateError(state, message)); + } +} + + +var directiveHandlers = { + + YAML: function handleYamlDirective(state, name, args) { + + var match, major, minor; + + if (state.version !== null) { + throwError(state, 'duplication of %YAML directive'); + } + + if (args.length !== 1) { + throwError(state, 'YAML directive accepts exactly one argument'); + } + + match = /^([0-9]+)\.([0-9]+)$/.exec(args[0]); + + if (match === null) { + throwError(state, 'ill-formed argument of the YAML directive'); + } + + major = parseInt(match[1], 10); + minor = parseInt(match[2], 10); + + if (major !== 1) { + throwError(state, 'unacceptable YAML version of the document'); + } + + state.version = args[0]; + state.checkLineBreaks = (minor < 2); + + if (minor !== 1 && minor !== 2) { + throwWarning(state, 'unsupported YAML version of the document'); + } + }, + + TAG: function handleTagDirective(state, name, args) { + + var handle, prefix; + + if (args.length !== 2) { + throwError(state, 'TAG directive accepts exactly two arguments'); + } + + handle = args[0]; + prefix = args[1]; + + if (!PATTERN_TAG_HANDLE.test(handle)) { + throwError(state, 'ill-formed tag handle (first argument) of the TAG directive'); + } + + if (_hasOwnProperty.call(state.tagMap, handle)) { + throwError(state, 'there is a previously declared suffix for "' + handle + '" tag handle'); + } + + if (!PATTERN_TAG_URI.test(prefix)) { + throwError(state, 'ill-formed tag prefix (second argument) of the TAG directive'); + } + + state.tagMap[handle] = prefix; + } +}; + + +function captureSegment(state, start, end, checkJson) { + var _position, _length, _character, _result; + + if (start < end) { + _result = state.input.slice(start, end); + + if (checkJson) { + for (_position = 0, _length = _result.length; _position < _length; _position += 1) { + _character = _result.charCodeAt(_position); + if (!(_character === 0x09 || + (0x20 <= _character && _character <= 0x10FFFF))) { + throwError(state, 'expected valid JSON character'); + } + } + } else if (PATTERN_NON_PRINTABLE.test(_result)) { + throwError(state, 'the stream contains non-printable characters'); + } + + state.result += _result; + } +} + +function mergeMappings(state, destination, source, overridableKeys) { + var sourceKeys, key, index, quantity; + + if (!common.isObject(source)) { + throwError(state, 'cannot merge mappings; the provided source object is unacceptable'); + } + + sourceKeys = Object.keys(source); + + for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) { + key = sourceKeys[index]; + + if (!_hasOwnProperty.call(destination, key)) { + setProperty(destination, key, source[key]); + overridableKeys[key] = true; + } + } +} + +function storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, startLine, startPos) { + var index, quantity; + + // The output is a plain object here, so keys can only be strings. + // We need to convert keyNode to a string, but doing so can hang the process + // (deeply nested arrays that explode exponentially using aliases). + if (Array.isArray(keyNode)) { + keyNode = Array.prototype.slice.call(keyNode); + + for (index = 0, quantity = keyNode.length; index < quantity; index += 1) { + if (Array.isArray(keyNode[index])) { + throwError(state, 'nested arrays are not supported inside keys'); + } + + if (typeof keyNode === 'object' && _class(keyNode[index]) === '[object Object]') { + keyNode[index] = '[object Object]'; + } + } + } + + // Avoid code execution in load() via toString property + // (still use its own toString for arrays, timestamps, + // and whatever user schema extensions happen to have @@toStringTag) + if (typeof keyNode === 'object' && _class(keyNode) === '[object Object]') { + keyNode = '[object Object]'; + } + + + keyNode = String(keyNode); + + if (_result === null) { + _result = {}; + } + + if (keyTag === 'tag:yaml.org,2002:merge') { + if (Array.isArray(valueNode)) { + for (index = 0, quantity = valueNode.length; index < quantity; index += 1) { + mergeMappings(state, _result, valueNode[index], overridableKeys); + } + } else { + mergeMappings(state, _result, valueNode, overridableKeys); + } + } else { + if (!state.json && + !_hasOwnProperty.call(overridableKeys, keyNode) && + _hasOwnProperty.call(_result, keyNode)) { + state.line = startLine || state.line; + state.position = startPos || state.position; + throwError(state, 'duplicated mapping key'); + } + setProperty(_result, keyNode, valueNode); + delete overridableKeys[keyNode]; + } + + return _result; +} + +function readLineBreak(state) { + var ch; + + ch = state.input.charCodeAt(state.position); + + if (ch === 0x0A/* LF */) { + state.position++; + } else if (ch === 0x0D/* CR */) { + state.position++; + if (state.input.charCodeAt(state.position) === 0x0A/* LF */) { + state.position++; + } + } else { + throwError(state, 'a line break is expected'); + } + + state.line += 1; + state.lineStart = state.position; +} + +function skipSeparationSpace(state, allowComments, checkIndent) { + var lineBreaks = 0, + ch = state.input.charCodeAt(state.position); + + while (ch !== 0) { + while (is_WHITE_SPACE(ch)) { + ch = state.input.charCodeAt(++state.position); + } + + if (allowComments && ch === 0x23/* # */) { + do { + ch = state.input.charCodeAt(++state.position); + } while (ch !== 0x0A/* LF */ && ch !== 0x0D/* CR */ && ch !== 0); + } + + if (is_EOL(ch)) { + readLineBreak(state); + + ch = state.input.charCodeAt(state.position); + lineBreaks++; + state.lineIndent = 0; + + while (ch === 0x20/* Space */) { + state.lineIndent++; + ch = state.input.charCodeAt(++state.position); + } + } else { + break; + } + } + + if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) { + throwWarning(state, 'deficient indentation'); + } + + return lineBreaks; +} + +function testDocumentSeparator(state) { + var _position = state.position, + ch; + + ch = state.input.charCodeAt(_position); + + // Condition state.position === state.lineStart is tested + // in parent on each call, for efficiency. No needs to test here again. + if ((ch === 0x2D/* - */ || ch === 0x2E/* . */) && + ch === state.input.charCodeAt(_position + 1) && + ch === state.input.charCodeAt(_position + 2)) { + + _position += 3; + + ch = state.input.charCodeAt(_position); + + if (ch === 0 || is_WS_OR_EOL(ch)) { + return true; + } + } + + return false; +} + +function writeFoldedLines(state, count) { + if (count === 1) { + state.result += ' '; + } else if (count > 1) { + state.result += common.repeat('\n', count - 1); + } +} + + +function readPlainScalar(state, nodeIndent, withinFlowCollection) { + var preceding, + following, + captureStart, + captureEnd, + hasPendingContent, + _line, + _lineStart, + _lineIndent, + _kind = state.kind, + _result = state.result, + ch; + + ch = state.input.charCodeAt(state.position); + + if (is_WS_OR_EOL(ch) || + is_FLOW_INDICATOR(ch) || + ch === 0x23/* # */ || + ch === 0x26/* & */ || + ch === 0x2A/* * */ || + ch === 0x21/* ! */ || + ch === 0x7C/* | */ || + ch === 0x3E/* > */ || + ch === 0x27/* ' */ || + ch === 0x22/* " */ || + ch === 0x25/* % */ || + ch === 0x40/* @ */ || + ch === 0x60/* ` */) { + return false; + } + + if (ch === 0x3F/* ? */ || ch === 0x2D/* - */) { + following = state.input.charCodeAt(state.position + 1); + + if (is_WS_OR_EOL(following) || + withinFlowCollection && is_FLOW_INDICATOR(following)) { + return false; + } + } + + state.kind = 'scalar'; + state.result = ''; + captureStart = captureEnd = state.position; + hasPendingContent = false; + + while (ch !== 0) { + if (ch === 0x3A/* : */) { + following = state.input.charCodeAt(state.position + 1); + + if (is_WS_OR_EOL(following) || + withinFlowCollection && is_FLOW_INDICATOR(following)) { + break; + } + + } else if (ch === 0x23/* # */) { + preceding = state.input.charCodeAt(state.position - 1); + + if (is_WS_OR_EOL(preceding)) { + break; + } + + } else if ((state.position === state.lineStart && testDocumentSeparator(state)) || + withinFlowCollection && is_FLOW_INDICATOR(ch)) { + break; + + } else if (is_EOL(ch)) { + _line = state.line; + _lineStart = state.lineStart; + _lineIndent = state.lineIndent; + skipSeparationSpace(state, false, -1); + + if (state.lineIndent >= nodeIndent) { + hasPendingContent = true; + ch = state.input.charCodeAt(state.position); + continue; + } else { + state.position = captureEnd; + state.line = _line; + state.lineStart = _lineStart; + state.lineIndent = _lineIndent; + break; + } + } + + if (hasPendingContent) { + captureSegment(state, captureStart, captureEnd, false); + writeFoldedLines(state, state.line - _line); + captureStart = captureEnd = state.position; + hasPendingContent = false; + } + + if (!is_WHITE_SPACE(ch)) { + captureEnd = state.position + 1; + } + + ch = state.input.charCodeAt(++state.position); + } + + captureSegment(state, captureStart, captureEnd, false); + + if (state.result) { + return true; + } + + state.kind = _kind; + state.result = _result; + return false; +} + +function readSingleQuotedScalar(state, nodeIndent) { + var ch, + captureStart, captureEnd; + + ch = state.input.charCodeAt(state.position); + + if (ch !== 0x27/* ' */) { + return false; + } + + state.kind = 'scalar'; + state.result = ''; + state.position++; + captureStart = captureEnd = state.position; + + while ((ch = state.input.charCodeAt(state.position)) !== 0) { + if (ch === 0x27/* ' */) { + captureSegment(state, captureStart, state.position, true); + ch = state.input.charCodeAt(++state.position); + + if (ch === 0x27/* ' */) { + captureStart = state.position; + state.position++; + captureEnd = state.position; + } else { + return true; + } + + } else if (is_EOL(ch)) { + captureSegment(state, captureStart, captureEnd, true); + writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent)); + captureStart = captureEnd = state.position; + + } else if (state.position === state.lineStart && testDocumentSeparator(state)) { + throwError(state, 'unexpected end of the document within a single quoted scalar'); + + } else { + state.position++; + captureEnd = state.position; + } + } + + throwError(state, 'unexpected end of the stream within a single quoted scalar'); +} + +function readDoubleQuotedScalar(state, nodeIndent) { + var captureStart, + captureEnd, + hexLength, + hexResult, + tmp, + ch; + + ch = state.input.charCodeAt(state.position); + + if (ch !== 0x22/* " */) { + return false; + } + + state.kind = 'scalar'; + state.result = ''; + state.position++; + captureStart = captureEnd = state.position; + + while ((ch = state.input.charCodeAt(state.position)) !== 0) { + if (ch === 0x22/* " */) { + captureSegment(state, captureStart, state.position, true); + state.position++; + return true; + + } else if (ch === 0x5C/* \ */) { + captureSegment(state, captureStart, state.position, true); + ch = state.input.charCodeAt(++state.position); + + if (is_EOL(ch)) { + skipSeparationSpace(state, false, nodeIndent); + + // TODO: rework to inline fn with no type cast? + } else if (ch < 256 && simpleEscapeCheck[ch]) { + state.result += simpleEscapeMap[ch]; + state.position++; + + } else if ((tmp = escapedHexLen(ch)) > 0) { + hexLength = tmp; + hexResult = 0; + + for (; hexLength > 0; hexLength--) { + ch = state.input.charCodeAt(++state.position); + + if ((tmp = fromHexCode(ch)) >= 0) { + hexResult = (hexResult << 4) + tmp; + + } else { + throwError(state, 'expected hexadecimal character'); + } + } + + state.result += charFromCodepoint(hexResult); + + state.position++; + + } else { + throwError(state, 'unknown escape sequence'); + } + + captureStart = captureEnd = state.position; + + } else if (is_EOL(ch)) { + captureSegment(state, captureStart, captureEnd, true); + writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent)); + captureStart = captureEnd = state.position; + + } else if (state.position === state.lineStart && testDocumentSeparator(state)) { + throwError(state, 'unexpected end of the document within a double quoted scalar'); + + } else { + state.position++; + captureEnd = state.position; + } + } + + throwError(state, 'unexpected end of the stream within a double quoted scalar'); +} + +function readFlowCollection(state, nodeIndent) { + var readNext = true, + _line, + _tag = state.tag, + _result, + _anchor = state.anchor, + following, + terminator, + isPair, + isExplicitPair, + isMapping, + overridableKeys = {}, + keyNode, + keyTag, + valueNode, + ch; + + ch = state.input.charCodeAt(state.position); + + if (ch === 0x5B/* [ */) { + terminator = 0x5D;/* ] */ + isMapping = false; + _result = []; + } else if (ch === 0x7B/* { */) { + terminator = 0x7D;/* } */ + isMapping = true; + _result = {}; + } else { + return false; + } + + if (state.anchor !== null) { + state.anchorMap[state.anchor] = _result; + } + + ch = state.input.charCodeAt(++state.position); + + while (ch !== 0) { + skipSeparationSpace(state, true, nodeIndent); + + ch = state.input.charCodeAt(state.position); + + if (ch === terminator) { + state.position++; + state.tag = _tag; + state.anchor = _anchor; + state.kind = isMapping ? 'mapping' : 'sequence'; + state.result = _result; + return true; + } else if (!readNext) { + throwError(state, 'missed comma between flow collection entries'); + } + + keyTag = keyNode = valueNode = null; + isPair = isExplicitPair = false; + + if (ch === 0x3F/* ? */) { + following = state.input.charCodeAt(state.position + 1); + + if (is_WS_OR_EOL(following)) { + isPair = isExplicitPair = true; + state.position++; + skipSeparationSpace(state, true, nodeIndent); + } + } + + _line = state.line; + composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true); + keyTag = state.tag; + keyNode = state.result; + skipSeparationSpace(state, true, nodeIndent); + + ch = state.input.charCodeAt(state.position); + + if ((isExplicitPair || state.line === _line) && ch === 0x3A/* : */) { + isPair = true; + ch = state.input.charCodeAt(++state.position); + skipSeparationSpace(state, true, nodeIndent); + composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true); + valueNode = state.result; + } + + if (isMapping) { + storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode); + } else if (isPair) { + _result.push(storeMappingPair(state, null, overridableKeys, keyTag, keyNode, valueNode)); + } else { + _result.push(keyNode); + } + + skipSeparationSpace(state, true, nodeIndent); + + ch = state.input.charCodeAt(state.position); + + if (ch === 0x2C/* , */) { + readNext = true; + ch = state.input.charCodeAt(++state.position); + } else { + readNext = false; + } + } + + throwError(state, 'unexpected end of the stream within a flow collection'); +} + +function readBlockScalar(state, nodeIndent) { + var captureStart, + folding, + chomping = CHOMPING_CLIP, + didReadContent = false, + detectedIndent = false, + textIndent = nodeIndent, + emptyLines = 0, + atMoreIndented = false, + tmp, + ch; + + ch = state.input.charCodeAt(state.position); + + if (ch === 0x7C/* | */) { + folding = false; + } else if (ch === 0x3E/* > */) { + folding = true; + } else { + return false; + } + + state.kind = 'scalar'; + state.result = ''; + + while (ch !== 0) { + ch = state.input.charCodeAt(++state.position); + + if (ch === 0x2B/* + */ || ch === 0x2D/* - */) { + if (CHOMPING_CLIP === chomping) { + chomping = (ch === 0x2B/* + */) ? CHOMPING_KEEP : CHOMPING_STRIP; + } else { + throwError(state, 'repeat of a chomping mode identifier'); + } + + } else if ((tmp = fromDecimalCode(ch)) >= 0) { + if (tmp === 0) { + throwError(state, 'bad explicit indentation width of a block scalar; it cannot be less than one'); + } else if (!detectedIndent) { + textIndent = nodeIndent + tmp - 1; + detectedIndent = true; + } else { + throwError(state, 'repeat of an indentation width identifier'); + } + + } else { + break; + } + } + + if (is_WHITE_SPACE(ch)) { + do { ch = state.input.charCodeAt(++state.position); } + while (is_WHITE_SPACE(ch)); + + if (ch === 0x23/* # */) { + do { ch = state.input.charCodeAt(++state.position); } + while (!is_EOL(ch) && (ch !== 0)); + } + } + + while (ch !== 0) { + readLineBreak(state); + state.lineIndent = 0; + + ch = state.input.charCodeAt(state.position); + + while ((!detectedIndent || state.lineIndent < textIndent) && + (ch === 0x20/* Space */)) { + state.lineIndent++; + ch = state.input.charCodeAt(++state.position); + } + + if (!detectedIndent && state.lineIndent > textIndent) { + textIndent = state.lineIndent; + } + + if (is_EOL(ch)) { + emptyLines++; + continue; + } + + // End of the scalar. + if (state.lineIndent < textIndent) { + + // Perform the chomping. + if (chomping === CHOMPING_KEEP) { + state.result += common.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines); + } else if (chomping === CHOMPING_CLIP) { + if (didReadContent) { // i.e. only if the scalar is not empty. + state.result += '\n'; + } + } + + // Break this `while` cycle and go to the funciton's epilogue. + break; + } + + // Folded style: use fancy rules to handle line breaks. + if (folding) { + + // Lines starting with white space characters (more-indented lines) are not folded. + if (is_WHITE_SPACE(ch)) { + atMoreIndented = true; + // except for the first content line (cf. Example 8.1) + state.result += common.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines); + + // End of more-indented block. + } else if (atMoreIndented) { + atMoreIndented = false; + state.result += common.repeat('\n', emptyLines + 1); + + // Just one line break - perceive as the same line. + } else if (emptyLines === 0) { + if (didReadContent) { // i.e. only if we have already read some scalar content. + state.result += ' '; + } + + // Several line breaks - perceive as different lines. + } else { + state.result += common.repeat('\n', emptyLines); + } + + // Literal style: just add exact number of line breaks between content lines. + } else { + // Keep all line breaks except the header line break. + state.result += common.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines); + } + + didReadContent = true; + detectedIndent = true; + emptyLines = 0; + captureStart = state.position; + + while (!is_EOL(ch) && (ch !== 0)) { + ch = state.input.charCodeAt(++state.position); + } + + captureSegment(state, captureStart, state.position, false); + } + + return true; +} + +function readBlockSequence(state, nodeIndent) { + var _line, + _tag = state.tag, + _anchor = state.anchor, + _result = [], + following, + detected = false, + ch; + + if (state.anchor !== null) { + state.anchorMap[state.anchor] = _result; + } + + ch = state.input.charCodeAt(state.position); + + while (ch !== 0) { + + if (ch !== 0x2D/* - */) { + break; + } + + following = state.input.charCodeAt(state.position + 1); + + if (!is_WS_OR_EOL(following)) { + break; + } + + detected = true; + state.position++; + + if (skipSeparationSpace(state, true, -1)) { + if (state.lineIndent <= nodeIndent) { + _result.push(null); + ch = state.input.charCodeAt(state.position); + continue; + } + } + + _line = state.line; + composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true); + _result.push(state.result); + skipSeparationSpace(state, true, -1); + + ch = state.input.charCodeAt(state.position); + + if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) { + throwError(state, 'bad indentation of a sequence entry'); + } else if (state.lineIndent < nodeIndent) { + break; + } + } + + if (detected) { + state.tag = _tag; + state.anchor = _anchor; + state.kind = 'sequence'; + state.result = _result; + return true; + } + return false; +} + +function readBlockMapping(state, nodeIndent, flowIndent) { + var following, + allowCompact, + _line, + _pos, + _tag = state.tag, + _anchor = state.anchor, + _result = {}, + overridableKeys = {}, + keyTag = null, + keyNode = null, + valueNode = null, + atExplicitKey = false, + detected = false, + ch; + + if (state.anchor !== null) { + state.anchorMap[state.anchor] = _result; + } + + ch = state.input.charCodeAt(state.position); + + while (ch !== 0) { + following = state.input.charCodeAt(state.position + 1); + _line = state.line; // Save the current line. + _pos = state.position; + + // + // Explicit notation case. There are two separate blocks: + // first for the key (denoted by "?") and second for the value (denoted by ":") + // + if ((ch === 0x3F/* ? */ || ch === 0x3A/* : */) && is_WS_OR_EOL(following)) { + + if (ch === 0x3F/* ? */) { + if (atExplicitKey) { + storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null); + keyTag = keyNode = valueNode = null; + } + + detected = true; + atExplicitKey = true; + allowCompact = true; + + } else if (atExplicitKey) { + // i.e. 0x3A/* : */ === character after the explicit key. + atExplicitKey = false; + allowCompact = true; + + } else { + throwError(state, 'incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line'); + } + + state.position += 1; + ch = following; + + // + // Implicit notation case. Flow-style node as the key first, then ":", and the value. + // + } else if (composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) { + + if (state.line === _line) { + ch = state.input.charCodeAt(state.position); + + while (is_WHITE_SPACE(ch)) { + ch = state.input.charCodeAt(++state.position); + } + + if (ch === 0x3A/* : */) { + ch = state.input.charCodeAt(++state.position); + + if (!is_WS_OR_EOL(ch)) { + throwError(state, 'a whitespace character is expected after the key-value separator within a block mapping'); + } + + if (atExplicitKey) { + storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null); + keyTag = keyNode = valueNode = null; + } + + detected = true; + atExplicitKey = false; + allowCompact = false; + keyTag = state.tag; + keyNode = state.result; + + } else if (detected) { + throwError(state, 'can not read an implicit mapping pair; a colon is missed'); + + } else { + state.tag = _tag; + state.anchor = _anchor; + return true; // Keep the result of `composeNode`. + } + + } else if (detected) { + throwError(state, 'can not read a block mapping entry; a multiline key may not be an implicit key'); + + } else { + state.tag = _tag; + state.anchor = _anchor; + return true; // Keep the result of `composeNode`. + } + + } else { + break; // Reading is done. Go to the epilogue. + } + + // + // Common reading code for both explicit and implicit notations. + // + if (state.line === _line || state.lineIndent > nodeIndent) { + if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) { + if (atExplicitKey) { + keyNode = state.result; + } else { + valueNode = state.result; + } + } + + if (!atExplicitKey) { + storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _pos); + keyTag = keyNode = valueNode = null; + } + + skipSeparationSpace(state, true, -1); + ch = state.input.charCodeAt(state.position); + } + + if (state.lineIndent > nodeIndent && (ch !== 0)) { + throwError(state, 'bad indentation of a mapping entry'); + } else if (state.lineIndent < nodeIndent) { + break; + } + } + + // + // Epilogue. + // + + // Special case: last mapping's node contains only the key in explicit notation. + if (atExplicitKey) { + storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null); + } + + // Expose the resulting mapping. + if (detected) { + state.tag = _tag; + state.anchor = _anchor; + state.kind = 'mapping'; + state.result = _result; + } + + return detected; +} + +function readTagProperty(state) { + var _position, + isVerbatim = false, + isNamed = false, + tagHandle, + tagName, + ch; + + ch = state.input.charCodeAt(state.position); + + if (ch !== 0x21/* ! */) return false; + + if (state.tag !== null) { + throwError(state, 'duplication of a tag property'); + } + + ch = state.input.charCodeAt(++state.position); + + if (ch === 0x3C/* < */) { + isVerbatim = true; + ch = state.input.charCodeAt(++state.position); + + } else if (ch === 0x21/* ! */) { + isNamed = true; + tagHandle = '!!'; + ch = state.input.charCodeAt(++state.position); + + } else { + tagHandle = '!'; + } + + _position = state.position; + + if (isVerbatim) { + do { ch = state.input.charCodeAt(++state.position); } + while (ch !== 0 && ch !== 0x3E/* > */); + + if (state.position < state.length) { + tagName = state.input.slice(_position, state.position); + ch = state.input.charCodeAt(++state.position); + } else { + throwError(state, 'unexpected end of the stream within a verbatim tag'); + } + } else { + while (ch !== 0 && !is_WS_OR_EOL(ch)) { + + if (ch === 0x21/* ! */) { + if (!isNamed) { + tagHandle = state.input.slice(_position - 1, state.position + 1); + + if (!PATTERN_TAG_HANDLE.test(tagHandle)) { + throwError(state, 'named tag handle cannot contain such characters'); + } + + isNamed = true; + _position = state.position + 1; + } else { + throwError(state, 'tag suffix cannot contain exclamation marks'); + } + } + + ch = state.input.charCodeAt(++state.position); + } + + tagName = state.input.slice(_position, state.position); + + if (PATTERN_FLOW_INDICATORS.test(tagName)) { + throwError(state, 'tag suffix cannot contain flow indicator characters'); + } + } + + if (tagName && !PATTERN_TAG_URI.test(tagName)) { + throwError(state, 'tag name cannot contain such characters: ' + tagName); + } + + if (isVerbatim) { + state.tag = tagName; + + } else if (_hasOwnProperty.call(state.tagMap, tagHandle)) { + state.tag = state.tagMap[tagHandle] + tagName; + + } else if (tagHandle === '!') { + state.tag = '!' + tagName; + + } else if (tagHandle === '!!') { + state.tag = 'tag:yaml.org,2002:' + tagName; + + } else { + throwError(state, 'undeclared tag handle "' + tagHandle + '"'); + } + + return true; +} + +function readAnchorProperty(state) { + var _position, + ch; + + ch = state.input.charCodeAt(state.position); + + if (ch !== 0x26/* & */) return false; + + if (state.anchor !== null) { + throwError(state, 'duplication of an anchor property'); + } + + ch = state.input.charCodeAt(++state.position); + _position = state.position; + + while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) { + ch = state.input.charCodeAt(++state.position); + } + + if (state.position === _position) { + throwError(state, 'name of an anchor node must contain at least one character'); + } + + state.anchor = state.input.slice(_position, state.position); + return true; +} + +function readAlias(state) { + var _position, alias, + ch; + + ch = state.input.charCodeAt(state.position); + + if (ch !== 0x2A/* * */) return false; + + ch = state.input.charCodeAt(++state.position); + _position = state.position; + + while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) { + ch = state.input.charCodeAt(++state.position); + } + + if (state.position === _position) { + throwError(state, 'name of an alias node must contain at least one character'); + } + + alias = state.input.slice(_position, state.position); + + if (!_hasOwnProperty.call(state.anchorMap, alias)) { + throwError(state, 'unidentified alias "' + alias + '"'); + } + + state.result = state.anchorMap[alias]; + skipSeparationSpace(state, true, -1); + return true; +} + +function composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) { + var allowBlockStyles, + allowBlockScalars, + allowBlockCollections, + indentStatus = 1, // 1: this>parent, 0: this=parent, -1: this parentIndent) { + indentStatus = 1; + } else if (state.lineIndent === parentIndent) { + indentStatus = 0; + } else if (state.lineIndent < parentIndent) { + indentStatus = -1; + } + } + } + + if (indentStatus === 1) { + while (readTagProperty(state) || readAnchorProperty(state)) { + if (skipSeparationSpace(state, true, -1)) { + atNewLine = true; + allowBlockCollections = allowBlockStyles; + + if (state.lineIndent > parentIndent) { + indentStatus = 1; + } else if (state.lineIndent === parentIndent) { + indentStatus = 0; + } else if (state.lineIndent < parentIndent) { + indentStatus = -1; + } + } else { + allowBlockCollections = false; + } + } + } + + if (allowBlockCollections) { + allowBlockCollections = atNewLine || allowCompact; + } + + if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) { + if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) { + flowIndent = parentIndent; + } else { + flowIndent = parentIndent + 1; + } + + blockIndent = state.position - state.lineStart; + + if (indentStatus === 1) { + if (allowBlockCollections && + (readBlockSequence(state, blockIndent) || + readBlockMapping(state, blockIndent, flowIndent)) || + readFlowCollection(state, flowIndent)) { + hasContent = true; + } else { + if ((allowBlockScalars && readBlockScalar(state, flowIndent)) || + readSingleQuotedScalar(state, flowIndent) || + readDoubleQuotedScalar(state, flowIndent)) { + hasContent = true; + + } else if (readAlias(state)) { + hasContent = true; + + if (state.tag !== null || state.anchor !== null) { + throwError(state, 'alias node should not have any properties'); + } + + } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) { + hasContent = true; + + if (state.tag === null) { + state.tag = '?'; + } + } + + if (state.anchor !== null) { + state.anchorMap[state.anchor] = state.result; + } + } + } else if (indentStatus === 0) { + // Special case: block sequences are allowed to have same indentation level as the parent. + // http://www.yaml.org/spec/1.2/spec.html#id2799784 + hasContent = allowBlockCollections && readBlockSequence(state, blockIndent); + } + } + + if (state.tag !== null && state.tag !== '!') { + if (state.tag === '?') { + // Implicit resolving is not allowed for non-scalar types, and '?' + // non-specific tag is only automatically assigned to plain scalars. + // + // We only need to check kind conformity in case user explicitly assigns '?' + // tag, for example like this: "! [0]" + // + if (state.result !== null && state.kind !== 'scalar') { + throwError(state, 'unacceptable node kind for ! tag; it should be "scalar", not "' + state.kind + '"'); + } + + for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) { + type = state.implicitTypes[typeIndex]; + + if (type.resolve(state.result)) { // `state.result` updated in resolver if matched + state.result = type.construct(state.result); + state.tag = type.tag; + if (state.anchor !== null) { + state.anchorMap[state.anchor] = state.result; + } + break; + } + } + } else if (_hasOwnProperty.call(state.typeMap[state.kind || 'fallback'], state.tag)) { + type = state.typeMap[state.kind || 'fallback'][state.tag]; + + if (state.result !== null && type.kind !== state.kind) { + throwError(state, 'unacceptable node kind for !<' + state.tag + '> tag; it should be "' + type.kind + '", not "' + state.kind + '"'); + } + + if (!type.resolve(state.result)) { // `state.result` updated in resolver if matched + throwError(state, 'cannot resolve a node with !<' + state.tag + '> explicit tag'); + } else { + state.result = type.construct(state.result); + if (state.anchor !== null) { + state.anchorMap[state.anchor] = state.result; + } + } + } else { + throwError(state, 'unknown tag !<' + state.tag + '>'); + } + } + + if (state.listener !== null) { + state.listener('close', state); + } + return state.tag !== null || state.anchor !== null || hasContent; +} + +function readDocument(state) { + var documentStart = state.position, + _position, + directiveName, + directiveArgs, + hasDirectives = false, + ch; + + state.version = null; + state.checkLineBreaks = state.legacy; + state.tagMap = {}; + state.anchorMap = {}; + + while ((ch = state.input.charCodeAt(state.position)) !== 0) { + skipSeparationSpace(state, true, -1); + + ch = state.input.charCodeAt(state.position); + + if (state.lineIndent > 0 || ch !== 0x25/* % */) { + break; + } + + hasDirectives = true; + ch = state.input.charCodeAt(++state.position); + _position = state.position; + + while (ch !== 0 && !is_WS_OR_EOL(ch)) { + ch = state.input.charCodeAt(++state.position); + } + + directiveName = state.input.slice(_position, state.position); + directiveArgs = []; + + if (directiveName.length < 1) { + throwError(state, 'directive name must not be less than one character in length'); + } + + while (ch !== 0) { + while (is_WHITE_SPACE(ch)) { + ch = state.input.charCodeAt(++state.position); + } + + if (ch === 0x23/* # */) { + do { ch = state.input.charCodeAt(++state.position); } + while (ch !== 0 && !is_EOL(ch)); + break; + } + + if (is_EOL(ch)) break; + + _position = state.position; + + while (ch !== 0 && !is_WS_OR_EOL(ch)) { + ch = state.input.charCodeAt(++state.position); + } + + directiveArgs.push(state.input.slice(_position, state.position)); + } + + if (ch !== 0) readLineBreak(state); + + if (_hasOwnProperty.call(directiveHandlers, directiveName)) { + directiveHandlers[directiveName](state, directiveName, directiveArgs); + } else { + throwWarning(state, 'unknown document directive "' + directiveName + '"'); + } + } + + skipSeparationSpace(state, true, -1); + + if (state.lineIndent === 0 && + state.input.charCodeAt(state.position) === 0x2D/* - */ && + state.input.charCodeAt(state.position + 1) === 0x2D/* - */ && + state.input.charCodeAt(state.position + 2) === 0x2D/* - */) { + state.position += 3; + skipSeparationSpace(state, true, -1); + + } else if (hasDirectives) { + throwError(state, 'directives end mark is expected'); + } + + composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true); + skipSeparationSpace(state, true, -1); + + if (state.checkLineBreaks && + PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) { + throwWarning(state, 'non-ASCII line breaks are interpreted as content'); + } + + state.documents.push(state.result); + + if (state.position === state.lineStart && testDocumentSeparator(state)) { + + if (state.input.charCodeAt(state.position) === 0x2E/* . */) { + state.position += 3; + skipSeparationSpace(state, true, -1); + } + return; + } + + if (state.position < (state.length - 1)) { + throwError(state, 'end of the stream or a document separator is expected'); + } else { + return; + } +} + + +function loadDocuments(input, options) { + input = String(input); + options = options || {}; + + if (input.length !== 0) { + + // Add tailing `\n` if not exists + if (input.charCodeAt(input.length - 1) !== 0x0A/* LF */ && + input.charCodeAt(input.length - 1) !== 0x0D/* CR */) { + input += '\n'; + } + + // Strip BOM + if (input.charCodeAt(0) === 0xFEFF) { + input = input.slice(1); + } + } + + var state = new State(input, options); + + var nullpos = input.indexOf('\0'); + + if (nullpos !== -1) { + state.position = nullpos; + throwError(state, 'null byte is not allowed in input'); + } + + // Use 0 as string terminator. That significantly simplifies bounds check. + state.input += '\0'; + + while (state.input.charCodeAt(state.position) === 0x20/* Space */) { + state.lineIndent += 1; + state.position += 1; + } + + while (state.position < (state.length - 1)) { + readDocument(state); + } + + return state.documents; +} + + +function loadAll(input, iterator, options) { + if (iterator !== null && typeof iterator === 'object' && typeof options === 'undefined') { + options = iterator; + iterator = null; + } + + var documents = loadDocuments(input, options); + + if (typeof iterator !== 'function') { + return documents; + } + + for (var index = 0, length = documents.length; index < length; index += 1) { + iterator(documents[index]); + } +} + + +function load(input, options) { + var documents = loadDocuments(input, options); + + if (documents.length === 0) { + /*eslint-disable no-undefined*/ + return undefined; + } else if (documents.length === 1) { + return documents[0]; + } + throw new YAMLException('expected a single document in the stream, but found more'); +} + + +function safeLoadAll(input, iterator, options) { + if (typeof iterator === 'object' && iterator !== null && typeof options === 'undefined') { + options = iterator; + iterator = null; + } + + return loadAll(input, iterator, common.extend({ schema: DEFAULT_SAFE_SCHEMA }, options)); +} + + +function safeLoad(input, options) { + return load(input, common.extend({ schema: DEFAULT_SAFE_SCHEMA }, options)); +} + + +module.exports.loadAll = loadAll; +module.exports.load = load; +module.exports.safeLoadAll = safeLoadAll; +module.exports.safeLoad = safeLoad; + +},{"./common":2,"./exception":4,"./mark":6,"./schema/default_full":9,"./schema/default_safe":10}],6:[function(require,module,exports){ +'use strict'; + + +var common = require('./common'); + + +function Mark(name, buffer, position, line, column) { + this.name = name; + this.buffer = buffer; + this.position = position; + this.line = line; + this.column = column; +} + + +Mark.prototype.getSnippet = function getSnippet(indent, maxLength) { + var head, start, tail, end, snippet; + + if (!this.buffer) return null; + + indent = indent || 4; + maxLength = maxLength || 75; + + head = ''; + start = this.position; + + while (start > 0 && '\x00\r\n\x85\u2028\u2029'.indexOf(this.buffer.charAt(start - 1)) === -1) { + start -= 1; + if (this.position - start > (maxLength / 2 - 1)) { + head = ' ... '; + start += 5; + break; + } + } + + tail = ''; + end = this.position; + + while (end < this.buffer.length && '\x00\r\n\x85\u2028\u2029'.indexOf(this.buffer.charAt(end)) === -1) { + end += 1; + if (end - this.position > (maxLength / 2 - 1)) { + tail = ' ... '; + end -= 5; + break; + } + } + + snippet = this.buffer.slice(start, end); + + return common.repeat(' ', indent) + head + snippet + tail + '\n' + + common.repeat(' ', indent + this.position - start + head.length) + '^'; +}; + + +Mark.prototype.toString = function toString(compact) { + var snippet, where = ''; + + if (this.name) { + where += 'in "' + this.name + '" '; + } + + where += 'at line ' + (this.line + 1) + ', column ' + (this.column + 1); + + if (!compact) { + snippet = this.getSnippet(); + + if (snippet) { + where += ':\n' + snippet; + } + } + + return where; +}; + + +module.exports = Mark; + +},{"./common":2}],7:[function(require,module,exports){ +'use strict'; + +/*eslint-disable max-len*/ + +var common = require('./common'); +var YAMLException = require('./exception'); +var Type = require('./type'); + + +function compileList(schema, name, result) { + var exclude = []; + + schema.include.forEach(function (includedSchema) { + result = compileList(includedSchema, name, result); + }); + + schema[name].forEach(function (currentType) { + result.forEach(function (previousType, previousIndex) { + if (previousType.tag === currentType.tag && previousType.kind === currentType.kind) { + exclude.push(previousIndex); + } + }); + + result.push(currentType); + }); + + return result.filter(function (type, index) { + return exclude.indexOf(index) === -1; + }); +} + + +function compileMap(/* lists... */) { + var result = { + scalar: {}, + sequence: {}, + mapping: {}, + fallback: {} + }, index, length; + + function collectType(type) { + result[type.kind][type.tag] = result['fallback'][type.tag] = type; + } + + for (index = 0, length = arguments.length; index < length; index += 1) { + arguments[index].forEach(collectType); + } + return result; +} + + +function Schema(definition) { + this.include = definition.include || []; + this.implicit = definition.implicit || []; + this.explicit = definition.explicit || []; + + this.implicit.forEach(function (type) { + if (type.loadKind && type.loadKind !== 'scalar') { + throw new YAMLException('There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.'); + } + }); + + this.compiledImplicit = compileList(this, 'implicit', []); + this.compiledExplicit = compileList(this, 'explicit', []); + this.compiledTypeMap = compileMap(this.compiledImplicit, this.compiledExplicit); +} + + +Schema.DEFAULT = null; + + +Schema.create = function createSchema() { + var schemas, types; + + switch (arguments.length) { + case 1: + schemas = Schema.DEFAULT; + types = arguments[0]; + break; + + case 2: + schemas = arguments[0]; + types = arguments[1]; + break; + + default: + throw new YAMLException('Wrong number of arguments for Schema.create function'); + } + + schemas = common.toArray(schemas); + types = common.toArray(types); + + if (!schemas.every(function (schema) { return schema instanceof Schema; })) { + throw new YAMLException('Specified list of super schemas (or a single Schema object) contains a non-Schema object.'); + } + + if (!types.every(function (type) { return type instanceof Type; })) { + throw new YAMLException('Specified list of YAML types (or a single Type object) contains a non-Type object.'); + } + + return new Schema({ + include: schemas, + explicit: types + }); +}; + + +module.exports = Schema; + +},{"./common":2,"./exception":4,"./type":13}],8:[function(require,module,exports){ +// Standard YAML's Core schema. +// http://www.yaml.org/spec/1.2/spec.html#id2804923 +// +// NOTE: JS-YAML does not support schema-specific tag resolution restrictions. +// So, Core schema has no distinctions from JSON schema is JS-YAML. + + +'use strict'; + + +var Schema = require('../schema'); + + +module.exports = new Schema({ + include: [ + require('./json') + ] +}); + +},{"../schema":7,"./json":12}],9:[function(require,module,exports){ +// JS-YAML's default schema for `load` function. +// It is not described in the YAML specification. +// +// This schema is based on JS-YAML's default safe schema and includes +// JavaScript-specific types: !!js/undefined, !!js/regexp and !!js/function. +// +// Also this schema is used as default base schema at `Schema.create` function. + + +'use strict'; + + +var Schema = require('../schema'); + + +module.exports = Schema.DEFAULT = new Schema({ + include: [ + require('./default_safe') + ], + explicit: [ + require('../type/js/undefined'), + require('../type/js/regexp'), + require('../type/js/function') + ] +}); + +},{"../schema":7,"../type/js/function":18,"../type/js/regexp":19,"../type/js/undefined":20,"./default_safe":10}],10:[function(require,module,exports){ +// JS-YAML's default schema for `safeLoad` function. +// It is not described in the YAML specification. +// +// This schema is based on standard YAML's Core schema and includes most of +// extra types described at YAML tag repository. (http://yaml.org/type/) + + +'use strict'; + + +var Schema = require('../schema'); + + +module.exports = new Schema({ + include: [ + require('./core') + ], + implicit: [ + require('../type/timestamp'), + require('../type/merge') + ], + explicit: [ + require('../type/binary'), + require('../type/omap'), + require('../type/pairs'), + require('../type/set') + ] +}); + +},{"../schema":7,"../type/binary":14,"../type/merge":22,"../type/omap":24,"../type/pairs":25,"../type/set":27,"../type/timestamp":29,"./core":8}],11:[function(require,module,exports){ +// Standard YAML's Failsafe schema. +// http://www.yaml.org/spec/1.2/spec.html#id2802346 + + +'use strict'; + + +var Schema = require('../schema'); + + +module.exports = new Schema({ + explicit: [ + require('../type/str'), + require('../type/seq'), + require('../type/map') + ] +}); + +},{"../schema":7,"../type/map":21,"../type/seq":26,"../type/str":28}],12:[function(require,module,exports){ +// Standard YAML's JSON schema. +// http://www.yaml.org/spec/1.2/spec.html#id2803231 +// +// NOTE: JS-YAML does not support schema-specific tag resolution restrictions. +// So, this schema is not such strict as defined in the YAML specification. +// It allows numbers in binary notaion, use `Null` and `NULL` as `null`, etc. + + +'use strict'; + + +var Schema = require('../schema'); + + +module.exports = new Schema({ + include: [ + require('./failsafe') + ], + implicit: [ + require('../type/null'), + require('../type/bool'), + require('../type/int'), + require('../type/float') + ] +}); + +},{"../schema":7,"../type/bool":15,"../type/float":16,"../type/int":17,"../type/null":23,"./failsafe":11}],13:[function(require,module,exports){ +'use strict'; + +var YAMLException = require('./exception'); + +var TYPE_CONSTRUCTOR_OPTIONS = [ + 'kind', + 'resolve', + 'construct', + 'instanceOf', + 'predicate', + 'represent', + 'defaultStyle', + 'styleAliases' +]; + +var YAML_NODE_KINDS = [ + 'scalar', + 'sequence', + 'mapping' +]; + +function compileStyleAliases(map) { + var result = {}; + + if (map !== null) { + Object.keys(map).forEach(function (style) { + map[style].forEach(function (alias) { + result[String(alias)] = style; + }); + }); + } + + return result; +} + +function Type(tag, options) { + options = options || {}; + + Object.keys(options).forEach(function (name) { + if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) { + throw new YAMLException('Unknown option "' + name + '" is met in definition of "' + tag + '" YAML type.'); + } + }); + + // TODO: Add tag format check. + this.tag = tag; + this.kind = options['kind'] || null; + this.resolve = options['resolve'] || function () { return true; }; + this.construct = options['construct'] || function (data) { return data; }; + this.instanceOf = options['instanceOf'] || null; + this.predicate = options['predicate'] || null; + this.represent = options['represent'] || null; + this.defaultStyle = options['defaultStyle'] || null; + this.styleAliases = compileStyleAliases(options['styleAliases'] || null); + + if (YAML_NODE_KINDS.indexOf(this.kind) === -1) { + throw new YAMLException('Unknown kind "' + this.kind + '" is specified for "' + tag + '" YAML type.'); + } +} + +module.exports = Type; + +},{"./exception":4}],14:[function(require,module,exports){ +'use strict'; + +/*eslint-disable no-bitwise*/ + +var NodeBuffer; + +try { + // A trick for browserified version, to not include `Buffer` shim + var _require = require; + NodeBuffer = _require('buffer').Buffer; +} catch (__) {} + +var Type = require('../type'); + + +// [ 64, 65, 66 ] -> [ padding, CR, LF ] +var BASE64_MAP = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r'; + + +function resolveYamlBinary(data) { + if (data === null) return false; + + var code, idx, bitlen = 0, max = data.length, map = BASE64_MAP; + + // Convert one by one. + for (idx = 0; idx < max; idx++) { + code = map.indexOf(data.charAt(idx)); + + // Skip CR/LF + if (code > 64) continue; + + // Fail on illegal characters + if (code < 0) return false; + + bitlen += 6; + } + + // If there are any bits left, source was corrupted + return (bitlen % 8) === 0; +} + +function constructYamlBinary(data) { + var idx, tailbits, + input = data.replace(/[\r\n=]/g, ''), // remove CR/LF & padding to simplify scan + max = input.length, + map = BASE64_MAP, + bits = 0, + result = []; + + // Collect by 6*4 bits (3 bytes) + + for (idx = 0; idx < max; idx++) { + if ((idx % 4 === 0) && idx) { + result.push((bits >> 16) & 0xFF); + result.push((bits >> 8) & 0xFF); + result.push(bits & 0xFF); + } + + bits = (bits << 6) | map.indexOf(input.charAt(idx)); + } + + // Dump tail + + tailbits = (max % 4) * 6; + + if (tailbits === 0) { + result.push((bits >> 16) & 0xFF); + result.push((bits >> 8) & 0xFF); + result.push(bits & 0xFF); + } else if (tailbits === 18) { + result.push((bits >> 10) & 0xFF); + result.push((bits >> 2) & 0xFF); + } else if (tailbits === 12) { + result.push((bits >> 4) & 0xFF); + } + + // Wrap into Buffer for NodeJS and leave Array for browser + if (NodeBuffer) { + // Support node 6.+ Buffer API when available + return NodeBuffer.from ? NodeBuffer.from(result) : new NodeBuffer(result); + } + + return result; +} + +function representYamlBinary(object /*, style*/) { + var result = '', bits = 0, idx, tail, + max = object.length, + map = BASE64_MAP; + + // Convert every three bytes to 4 ASCII characters. + + for (idx = 0; idx < max; idx++) { + if ((idx % 3 === 0) && idx) { + result += map[(bits >> 18) & 0x3F]; + result += map[(bits >> 12) & 0x3F]; + result += map[(bits >> 6) & 0x3F]; + result += map[bits & 0x3F]; + } + + bits = (bits << 8) + object[idx]; + } + + // Dump tail + + tail = max % 3; + + if (tail === 0) { + result += map[(bits >> 18) & 0x3F]; + result += map[(bits >> 12) & 0x3F]; + result += map[(bits >> 6) & 0x3F]; + result += map[bits & 0x3F]; + } else if (tail === 2) { + result += map[(bits >> 10) & 0x3F]; + result += map[(bits >> 4) & 0x3F]; + result += map[(bits << 2) & 0x3F]; + result += map[64]; + } else if (tail === 1) { + result += map[(bits >> 2) & 0x3F]; + result += map[(bits << 4) & 0x3F]; + result += map[64]; + result += map[64]; + } + + return result; +} + +function isBinary(object) { + return NodeBuffer && NodeBuffer.isBuffer(object); +} + +module.exports = new Type('tag:yaml.org,2002:binary', { + kind: 'scalar', + resolve: resolveYamlBinary, + construct: constructYamlBinary, + predicate: isBinary, + represent: representYamlBinary +}); + +},{"../type":13}],15:[function(require,module,exports){ +'use strict'; + +var Type = require('../type'); + +function resolveYamlBoolean(data) { + if (data === null) return false; + + var max = data.length; + + return (max === 4 && (data === 'true' || data === 'True' || data === 'TRUE')) || + (max === 5 && (data === 'false' || data === 'False' || data === 'FALSE')); +} + +function constructYamlBoolean(data) { + return data === 'true' || + data === 'True' || + data === 'TRUE'; +} + +function isBoolean(object) { + return Object.prototype.toString.call(object) === '[object Boolean]'; +} + +module.exports = new Type('tag:yaml.org,2002:bool', { + kind: 'scalar', + resolve: resolveYamlBoolean, + construct: constructYamlBoolean, + predicate: isBoolean, + represent: { + lowercase: function (object) { return object ? 'true' : 'false'; }, + uppercase: function (object) { return object ? 'TRUE' : 'FALSE'; }, + camelcase: function (object) { return object ? 'True' : 'False'; } + }, + defaultStyle: 'lowercase' +}); + +},{"../type":13}],16:[function(require,module,exports){ +'use strict'; + +var common = require('../common'); +var Type = require('../type'); + +var YAML_FLOAT_PATTERN = new RegExp( + // 2.5e4, 2.5 and integers + '^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?' + + // .2e4, .2 + // special case, seems not from spec + '|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?' + + // 20:59 + '|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*' + + // .inf + '|[-+]?\\.(?:inf|Inf|INF)' + + // .nan + '|\\.(?:nan|NaN|NAN))$'); + +function resolveYamlFloat(data) { + if (data === null) return false; + + if (!YAML_FLOAT_PATTERN.test(data) || + // Quick hack to not allow integers end with `_` + // Probably should update regexp & check speed + data[data.length - 1] === '_') { + return false; + } + + return true; +} + +function constructYamlFloat(data) { + var value, sign, base, digits; + + value = data.replace(/_/g, '').toLowerCase(); + sign = value[0] === '-' ? -1 : 1; + digits = []; + + if ('+-'.indexOf(value[0]) >= 0) { + value = value.slice(1); + } + + if (value === '.inf') { + return (sign === 1) ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY; + + } else if (value === '.nan') { + return NaN; + + } else if (value.indexOf(':') >= 0) { + value.split(':').forEach(function (v) { + digits.unshift(parseFloat(v, 10)); + }); + + value = 0.0; + base = 1; + + digits.forEach(function (d) { + value += d * base; + base *= 60; + }); + + return sign * value; + + } + return sign * parseFloat(value, 10); +} + + +var SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/; + +function representYamlFloat(object, style) { + var res; + + if (isNaN(object)) { + switch (style) { + case 'lowercase': return '.nan'; + case 'uppercase': return '.NAN'; + case 'camelcase': return '.NaN'; + } + } else if (Number.POSITIVE_INFINITY === object) { + switch (style) { + case 'lowercase': return '.inf'; + case 'uppercase': return '.INF'; + case 'camelcase': return '.Inf'; + } + } else if (Number.NEGATIVE_INFINITY === object) { + switch (style) { + case 'lowercase': return '-.inf'; + case 'uppercase': return '-.INF'; + case 'camelcase': return '-.Inf'; + } + } else if (common.isNegativeZero(object)) { + return '-0.0'; + } + + res = object.toString(10); + + // JS stringifier can build scientific format without dots: 5e-100, + // while YAML requres dot: 5.e-100. Fix it with simple hack + + return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace('e', '.e') : res; +} + +function isFloat(object) { + return (Object.prototype.toString.call(object) === '[object Number]') && + (object % 1 !== 0 || common.isNegativeZero(object)); +} + +module.exports = new Type('tag:yaml.org,2002:float', { + kind: 'scalar', + resolve: resolveYamlFloat, + construct: constructYamlFloat, + predicate: isFloat, + represent: representYamlFloat, + defaultStyle: 'lowercase' +}); + +},{"../common":2,"../type":13}],17:[function(require,module,exports){ +'use strict'; + +var common = require('../common'); +var Type = require('../type'); + +function isHexCode(c) { + return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) || + ((0x41/* A */ <= c) && (c <= 0x46/* F */)) || + ((0x61/* a */ <= c) && (c <= 0x66/* f */)); +} + +function isOctCode(c) { + return ((0x30/* 0 */ <= c) && (c <= 0x37/* 7 */)); +} + +function isDecCode(c) { + return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)); +} + +function resolveYamlInteger(data) { + if (data === null) return false; + + var max = data.length, + index = 0, + hasDigits = false, + ch; + + if (!max) return false; + + ch = data[index]; + + // sign + if (ch === '-' || ch === '+') { + ch = data[++index]; + } + + if (ch === '0') { + // 0 + if (index + 1 === max) return true; + ch = data[++index]; + + // base 2, base 8, base 16 + + if (ch === 'b') { + // base 2 + index++; + + for (; index < max; index++) { + ch = data[index]; + if (ch === '_') continue; + if (ch !== '0' && ch !== '1') return false; + hasDigits = true; + } + return hasDigits && ch !== '_'; + } + + + if (ch === 'x') { + // base 16 + index++; + + for (; index < max; index++) { + ch = data[index]; + if (ch === '_') continue; + if (!isHexCode(data.charCodeAt(index))) return false; + hasDigits = true; + } + return hasDigits && ch !== '_'; + } + + // base 8 + for (; index < max; index++) { + ch = data[index]; + if (ch === '_') continue; + if (!isOctCode(data.charCodeAt(index))) return false; + hasDigits = true; + } + return hasDigits && ch !== '_'; + } + + // base 10 (except 0) or base 60 + + // value should not start with `_`; + if (ch === '_') return false; + + for (; index < max; index++) { + ch = data[index]; + if (ch === '_') continue; + if (ch === ':') break; + if (!isDecCode(data.charCodeAt(index))) { + return false; + } + hasDigits = true; + } + + // Should have digits and should not end with `_` + if (!hasDigits || ch === '_') return false; + + // if !base60 - done; + if (ch !== ':') return true; + + // base60 almost not used, no needs to optimize + return /^(:[0-5]?[0-9])+$/.test(data.slice(index)); +} + +function constructYamlInteger(data) { + var value = data, sign = 1, ch, base, digits = []; + + if (value.indexOf('_') !== -1) { + value = value.replace(/_/g, ''); + } + + ch = value[0]; + + if (ch === '-' || ch === '+') { + if (ch === '-') sign = -1; + value = value.slice(1); + ch = value[0]; + } + + if (value === '0') return 0; + + if (ch === '0') { + if (value[1] === 'b') return sign * parseInt(value.slice(2), 2); + if (value[1] === 'x') return sign * parseInt(value, 16); + return sign * parseInt(value, 8); + } + + if (value.indexOf(':') !== -1) { + value.split(':').forEach(function (v) { + digits.unshift(parseInt(v, 10)); + }); + + value = 0; + base = 1; + + digits.forEach(function (d) { + value += (d * base); + base *= 60; + }); + + return sign * value; + + } + + return sign * parseInt(value, 10); +} + +function isInteger(object) { + return (Object.prototype.toString.call(object)) === '[object Number]' && + (object % 1 === 0 && !common.isNegativeZero(object)); +} + +module.exports = new Type('tag:yaml.org,2002:int', { + kind: 'scalar', + resolve: resolveYamlInteger, + construct: constructYamlInteger, + predicate: isInteger, + represent: { + binary: function (obj) { return obj >= 0 ? '0b' + obj.toString(2) : '-0b' + obj.toString(2).slice(1); }, + octal: function (obj) { return obj >= 0 ? '0' + obj.toString(8) : '-0' + obj.toString(8).slice(1); }, + decimal: function (obj) { return obj.toString(10); }, + /* eslint-disable max-len */ + hexadecimal: function (obj) { return obj >= 0 ? '0x' + obj.toString(16).toUpperCase() : '-0x' + obj.toString(16).toUpperCase().slice(1); } + }, + defaultStyle: 'decimal', + styleAliases: { + binary: [ 2, 'bin' ], + octal: [ 8, 'oct' ], + decimal: [ 10, 'dec' ], + hexadecimal: [ 16, 'hex' ] + } +}); + +},{"../common":2,"../type":13}],18:[function(require,module,exports){ +'use strict'; + +var esprima; + +// Browserified version does not have esprima +// +// 1. For node.js just require module as deps +// 2. For browser try to require mudule via external AMD system. +// If not found - try to fallback to window.esprima. If not +// found too - then fail to parse. +// +try { + // workaround to exclude package from browserify list. + var _require = require; + esprima = _require('esprima'); +} catch (_) { + /* eslint-disable no-redeclare */ + /* global window */ + if (typeof window !== 'undefined') esprima = window.esprima; +} + +var Type = require('../../type'); + +function resolveJavascriptFunction(data) { + if (data === null) return false; + + try { + var source = '(' + data + ')', + ast = esprima.parse(source, { range: true }); + + if (ast.type !== 'Program' || + ast.body.length !== 1 || + ast.body[0].type !== 'ExpressionStatement' || + (ast.body[0].expression.type !== 'ArrowFunctionExpression' && + ast.body[0].expression.type !== 'FunctionExpression')) { + return false; + } + + return true; + } catch (err) { + return false; + } +} + +function constructJavascriptFunction(data) { + /*jslint evil:true*/ + + var source = '(' + data + ')', + ast = esprima.parse(source, { range: true }), + params = [], + body; + + if (ast.type !== 'Program' || + ast.body.length !== 1 || + ast.body[0].type !== 'ExpressionStatement' || + (ast.body[0].expression.type !== 'ArrowFunctionExpression' && + ast.body[0].expression.type !== 'FunctionExpression')) { + throw new Error('Failed to resolve function'); + } + + ast.body[0].expression.params.forEach(function (param) { + params.push(param.name); + }); + + body = ast.body[0].expression.body.range; + + // Esprima's ranges include the first '{' and the last '}' characters on + // function expressions. So cut them out. + if (ast.body[0].expression.body.type === 'BlockStatement') { + /*eslint-disable no-new-func*/ + return new Function(params, source.slice(body[0] + 1, body[1] - 1)); + } + // ES6 arrow functions can omit the BlockStatement. In that case, just return + // the body. + /*eslint-disable no-new-func*/ + return new Function(params, 'return ' + source.slice(body[0], body[1])); +} + +function representJavascriptFunction(object /*, style*/) { + return object.toString(); +} + +function isFunction(object) { + return Object.prototype.toString.call(object) === '[object Function]'; +} + +module.exports = new Type('tag:yaml.org,2002:js/function', { + kind: 'scalar', + resolve: resolveJavascriptFunction, + construct: constructJavascriptFunction, + predicate: isFunction, + represent: representJavascriptFunction +}); + +},{"../../type":13}],19:[function(require,module,exports){ +'use strict'; + +var Type = require('../../type'); + +function resolveJavascriptRegExp(data) { + if (data === null) return false; + if (data.length === 0) return false; + + var regexp = data, + tail = /\/([gim]*)$/.exec(data), + modifiers = ''; + + // if regexp starts with '/' it can have modifiers and must be properly closed + // `/foo/gim` - modifiers tail can be maximum 3 chars + if (regexp[0] === '/') { + if (tail) modifiers = tail[1]; + + if (modifiers.length > 3) return false; + // if expression starts with /, is should be properly terminated + if (regexp[regexp.length - modifiers.length - 1] !== '/') return false; + } + + return true; +} + +function constructJavascriptRegExp(data) { + var regexp = data, + tail = /\/([gim]*)$/.exec(data), + modifiers = ''; + + // `/foo/gim` - tail can be maximum 4 chars + if (regexp[0] === '/') { + if (tail) modifiers = tail[1]; + regexp = regexp.slice(1, regexp.length - modifiers.length - 1); + } + + return new RegExp(regexp, modifiers); +} + +function representJavascriptRegExp(object /*, style*/) { + var result = '/' + object.source + '/'; + + if (object.global) result += 'g'; + if (object.multiline) result += 'm'; + if (object.ignoreCase) result += 'i'; + + return result; +} + +function isRegExp(object) { + return Object.prototype.toString.call(object) === '[object RegExp]'; +} + +module.exports = new Type('tag:yaml.org,2002:js/regexp', { + kind: 'scalar', + resolve: resolveJavascriptRegExp, + construct: constructJavascriptRegExp, + predicate: isRegExp, + represent: representJavascriptRegExp +}); + +},{"../../type":13}],20:[function(require,module,exports){ +'use strict'; + +var Type = require('../../type'); + +function resolveJavascriptUndefined() { + return true; +} + +function constructJavascriptUndefined() { + /*eslint-disable no-undefined*/ + return undefined; +} + +function representJavascriptUndefined() { + return ''; +} + +function isUndefined(object) { + return typeof object === 'undefined'; +} + +module.exports = new Type('tag:yaml.org,2002:js/undefined', { + kind: 'scalar', + resolve: resolveJavascriptUndefined, + construct: constructJavascriptUndefined, + predicate: isUndefined, + represent: representJavascriptUndefined +}); + +},{"../../type":13}],21:[function(require,module,exports){ +'use strict'; + +var Type = require('../type'); + +module.exports = new Type('tag:yaml.org,2002:map', { + kind: 'mapping', + construct: function (data) { return data !== null ? data : {}; } +}); + +},{"../type":13}],22:[function(require,module,exports){ +'use strict'; + +var Type = require('../type'); + +function resolveYamlMerge(data) { + return data === '<<' || data === null; +} + +module.exports = new Type('tag:yaml.org,2002:merge', { + kind: 'scalar', + resolve: resolveYamlMerge +}); + +},{"../type":13}],23:[function(require,module,exports){ +'use strict'; + +var Type = require('../type'); + +function resolveYamlNull(data) { + if (data === null) return true; + + var max = data.length; + + return (max === 1 && data === '~') || + (max === 4 && (data === 'null' || data === 'Null' || data === 'NULL')); +} + +function constructYamlNull() { + return null; +} + +function isNull(object) { + return object === null; +} + +module.exports = new Type('tag:yaml.org,2002:null', { + kind: 'scalar', + resolve: resolveYamlNull, + construct: constructYamlNull, + predicate: isNull, + represent: { + canonical: function () { return '~'; }, + lowercase: function () { return 'null'; }, + uppercase: function () { return 'NULL'; }, + camelcase: function () { return 'Null'; } + }, + defaultStyle: 'lowercase' +}); + +},{"../type":13}],24:[function(require,module,exports){ +'use strict'; + +var Type = require('../type'); + +var _hasOwnProperty = Object.prototype.hasOwnProperty; +var _toString = Object.prototype.toString; + +function resolveYamlOmap(data) { + if (data === null) return true; + + var objectKeys = [], index, length, pair, pairKey, pairHasKey, + object = data; + + for (index = 0, length = object.length; index < length; index += 1) { + pair = object[index]; + pairHasKey = false; + + if (_toString.call(pair) !== '[object Object]') return false; + + for (pairKey in pair) { + if (_hasOwnProperty.call(pair, pairKey)) { + if (!pairHasKey) pairHasKey = true; + else return false; + } + } + + if (!pairHasKey) return false; + + if (objectKeys.indexOf(pairKey) === -1) objectKeys.push(pairKey); + else return false; + } + + return true; +} + +function constructYamlOmap(data) { + return data !== null ? data : []; +} + +module.exports = new Type('tag:yaml.org,2002:omap', { + kind: 'sequence', + resolve: resolveYamlOmap, + construct: constructYamlOmap +}); + +},{"../type":13}],25:[function(require,module,exports){ +'use strict'; + +var Type = require('../type'); + +var _toString = Object.prototype.toString; + +function resolveYamlPairs(data) { + if (data === null) return true; + + var index, length, pair, keys, result, + object = data; + + result = new Array(object.length); + + for (index = 0, length = object.length; index < length; index += 1) { + pair = object[index]; + + if (_toString.call(pair) !== '[object Object]') return false; + + keys = Object.keys(pair); + + if (keys.length !== 1) return false; + + result[index] = [ keys[0], pair[keys[0]] ]; + } + + return true; +} + +function constructYamlPairs(data) { + if (data === null) return []; + + var index, length, pair, keys, result, + object = data; + + result = new Array(object.length); + + for (index = 0, length = object.length; index < length; index += 1) { + pair = object[index]; + + keys = Object.keys(pair); + + result[index] = [ keys[0], pair[keys[0]] ]; + } + + return result; +} + +module.exports = new Type('tag:yaml.org,2002:pairs', { + kind: 'sequence', + resolve: resolveYamlPairs, + construct: constructYamlPairs +}); + +},{"../type":13}],26:[function(require,module,exports){ +'use strict'; + +var Type = require('../type'); + +module.exports = new Type('tag:yaml.org,2002:seq', { + kind: 'sequence', + construct: function (data) { return data !== null ? data : []; } +}); + +},{"../type":13}],27:[function(require,module,exports){ +'use strict'; + +var Type = require('../type'); + +var _hasOwnProperty = Object.prototype.hasOwnProperty; + +function resolveYamlSet(data) { + if (data === null) return true; + + var key, object = data; + + for (key in object) { + if (_hasOwnProperty.call(object, key)) { + if (object[key] !== null) return false; + } + } + + return true; +} + +function constructYamlSet(data) { + return data !== null ? data : {}; +} + +module.exports = new Type('tag:yaml.org,2002:set', { + kind: 'mapping', + resolve: resolveYamlSet, + construct: constructYamlSet +}); + +},{"../type":13}],28:[function(require,module,exports){ +'use strict'; + +var Type = require('../type'); + +module.exports = new Type('tag:yaml.org,2002:str', { + kind: 'scalar', + construct: function (data) { return data !== null ? data : ''; } +}); + +},{"../type":13}],29:[function(require,module,exports){ +'use strict'; + +var Type = require('../type'); + +var YAML_DATE_REGEXP = new RegExp( + '^([0-9][0-9][0-9][0-9])' + // [1] year + '-([0-9][0-9])' + // [2] month + '-([0-9][0-9])$'); // [3] day + +var YAML_TIMESTAMP_REGEXP = new RegExp( + '^([0-9][0-9][0-9][0-9])' + // [1] year + '-([0-9][0-9]?)' + // [2] month + '-([0-9][0-9]?)' + // [3] day + '(?:[Tt]|[ \\t]+)' + // ... + '([0-9][0-9]?)' + // [4] hour + ':([0-9][0-9])' + // [5] minute + ':([0-9][0-9])' + // [6] second + '(?:\\.([0-9]*))?' + // [7] fraction + '(?:[ \\t]*(Z|([-+])([0-9][0-9]?)' + // [8] tz [9] tz_sign [10] tz_hour + '(?::([0-9][0-9]))?))?$'); // [11] tz_minute + +function resolveYamlTimestamp(data) { + if (data === null) return false; + if (YAML_DATE_REGEXP.exec(data) !== null) return true; + if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) return true; + return false; +} + +function constructYamlTimestamp(data) { + var match, year, month, day, hour, minute, second, fraction = 0, + delta = null, tz_hour, tz_minute, date; + + match = YAML_DATE_REGEXP.exec(data); + if (match === null) match = YAML_TIMESTAMP_REGEXP.exec(data); + + if (match === null) throw new Error('Date resolve error'); + + // match: [1] year [2] month [3] day + + year = +(match[1]); + month = +(match[2]) - 1; // JS month starts with 0 + day = +(match[3]); + + if (!match[4]) { // no hour + return new Date(Date.UTC(year, month, day)); + } + + // match: [4] hour [5] minute [6] second [7] fraction + + hour = +(match[4]); + minute = +(match[5]); + second = +(match[6]); + + if (match[7]) { + fraction = match[7].slice(0, 3); + while (fraction.length < 3) { // milli-seconds + fraction += '0'; + } + fraction = +fraction; + } + + // match: [8] tz [9] tz_sign [10] tz_hour [11] tz_minute + + if (match[9]) { + tz_hour = +(match[10]); + tz_minute = +(match[11] || 0); + delta = (tz_hour * 60 + tz_minute) * 60000; // delta in mili-seconds + if (match[9] === '-') delta = -delta; + } + + date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction)); + + if (delta) date.setTime(date.getTime() - delta); + + return date; +} + +function representYamlTimestamp(object /*, style*/) { + return object.toISOString(); +} + +module.exports = new Type('tag:yaml.org,2002:timestamp', { + kind: 'scalar', + resolve: resolveYamlTimestamp, + construct: constructYamlTimestamp, + instanceOf: Date, + represent: representYamlTimestamp +}); + +},{"../type":13}],"/":[function(require,module,exports){ +'use strict'; + + +var yaml = require('./lib/js-yaml.js'); + + +module.exports = yaml; + +},{"./lib/js-yaml.js":1}]},{},[])("/") +}); diff --git a/server/api/node_modules/js-yaml/dist/js-yaml.min.js b/server/api/node_modules/js-yaml/dist/js-yaml.min.js new file mode 100644 index 0000000..66cc94e --- /dev/null +++ b/server/api/node_modules/js-yaml/dist/js-yaml.min.js @@ -0,0 +1 @@ +/*! js-yaml 3.14.2 https://github.com/nodeca/js-yaml */!function(e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).jsyaml=e()}(function(){return function i(r,o,a){function s(t,e){if(!o[t]){if(!r[t]){var n="function"==typeof require&&require;if(!e&&n)return n(t,!0);if(c)return c(t,!0);throw(e=new Error("Cannot find module '"+t+"'")).code="MODULE_NOT_FOUND",e}n=o[t]={exports:{}},r[t][0].call(n.exports,function(e){return s(r[t][1][e]||e)},n,n.exports,i,r,o,a)}return o[t].exports}for(var c="function"==typeof require&&require,e=0;e{var n,i,r,o,a,s,c;if(null===t)return{};for(n={},r=0,o=(i=Object.keys(t)).length;r{if(0===i.length)return"''";if(!o.noCompatMode&&-1!==Q.indexOf(i))return"'"+i+"'";var e=o.indent*Math.max(1,r),t=-1===o.lineWidth?-1:Math.max(Math.min(o.lineWidth,40),o.lineWidth-e),n=a||-1=o.flowLevel;switch(ee(i,n,o.indent,t,function(e){for(var t=o,n=e,i=0,r=t.implicitTypes.length;i"+p(i,o.indent)+f(u(((t,n)=>{for(var e,i=/(\n+)([^\n]*)/g,r=(()=>{var e=-1!==(e=t.indexOf("\n"))?e:t.length;return i.lastIndex=e,d(t.slice(0,e),n)})(),o="\n"===t[0]||" "===t[0];s=i.exec(t);){var a=s[1],s=s[2];e=" "===s[0],r+=a+(o||e||""===s?"":"\n")+d(s,n),o=e}return r})(i,t),e));case E:return'"'+(e=>{for(var t,n,i="",r=0;rt&&o tag resolver accepts not "'+o+'" style');i=r.represent[o](t,o)}e.dump=i}return 1}}function Z(e,t,n,i,r,D){e.tag=null,e.dump=n,V(e,n,!1)||V(e,n,!0);var o,a,s=$.call(e.dump),c=(i=i&&(e.flowLevel<0||e.flowLevel>t),"[object Object]"===s||"[object Array]"===s);if(c&&(a=-1!==(o=e.duplicates.indexOf(n))),(null!==e.tag&&"?"!==e.tag||a||2!==e.indent&&0 "+e.dump)}return 1}function ne(e,t){var n,i,r=[],o=[];for(!function e(t,n,i){var r,o,a;if(null!==t&&"object"==typeof t)if(-1!==(o=n.indexOf(t)))-1===i.indexOf(o)&&i.push(o);else if(n.push(t),Array.isArray(t))for(o=0,a=t.length;o>10),56320+(c-65536&1023)),e.position++}else O(e,"unknown escape sequence");n=i=e.position}else k(l)?(_(e,n,i,!0),U(e,L(e,!1,t)),n=i=e.position):e.position===e.lineStart&&D(e)?O(e,"unexpected end of the document within a double quoted scalar"):(e.position++,i=e.position)}O(e,"unexpected end of the stream within a double quoted scalar")}}function $(e,t){var n,i,r=e.tag,o=e.anchor,a=[],s=!1;for(null!==e.anchor&&(e.anchorMap[e.anchor]=a),i=e.input.charCodeAt(e.position);0!==i&&45===i&&S(e.input.charCodeAt(e.position+1));)if(s=!0,e.position++,L(e,!0,-1)&&e.lineIndent<=t)a.push(null),i=e.input.charCodeAt(e.position);else if(n=e.line,q(e,t,x,!1,!0),a.push(e.result),L(e,!0,-1),i=e.input.charCodeAt(e.position),(e.line===n||e.lineIndent>t)&&0!==i)O(e,"bad indentation of a sequence entry");else if(e.lineIndentt?p=1:e.lineIndent===t?p=0:e.lineIndent{var t,n,i,r=!1,o=!1,a=e.input.charCodeAt(e.position);if(33===a){if(null!==e.tag&&O(e,"duplication of a tag property"),60===(a=e.input.charCodeAt(++e.position))?(r=!0,a=e.input.charCodeAt(++e.position)):33===a?(o=!0,n="!!",a=e.input.charCodeAt(++e.position)):n="!",t=e.position,r){for(;0!==(a=e.input.charCodeAt(++e.position))&&62!==a;);e.position{var t,n=e.input.charCodeAt(e.position);if(38===n){for(null!==e.anchor&&O(e,"duplication of an anchor property"),n=e.input.charCodeAt(++e.position),t=e.position;0!==n&&!S(n)&&!I(n);)n=e.input.charCodeAt(++e.position);return e.position===t&&O(e,"name of an anchor node must contain at least one character"),e.anchor=e.input.slice(t,e.position),1}})(e);)L(e,!0,-1)?(f=!0,s=o,e.lineIndent>t?p=1:e.lineIndent===t?p=0:e.lineIndent{var i,r,o,a,s,c=e.tag,l=e.anchor,u={},p={},f=null,d=null,h=null,m=!1,g=!1;for(null!==e.anchor&&(e.anchorMap[e.anchor]=u),s=e.input.charCodeAt(e.position);0!==s;){if(i=e.input.charCodeAt(e.position+1),o=e.line,a=e.position,63!==s&&58!==s||!S(i)){if(!q(e,n,y,!1,!0))break;if(e.line===o){for(s=e.input.charCodeAt(e.position);j(s);)s=e.input.charCodeAt(++e.position);if(58===s)S(s=e.input.charCodeAt(++e.position))||O(e,"a whitespace character is expected after the key-value separator within a block mapping"),m&&(M(e,u,p,f,d,null),f=d=h=null),r=m=!(g=!0),f=e.tag,d=e.result;else{if(!g)return e.tag=c,e.anchor=l,1;O(e,"can not read an implicit mapping pair; a colon is missed")}}else{if(!g)return e.tag=c,e.anchor=l,1;O(e,"can not read a block mapping entry; a multiline key may not be an implicit key")}}else 63===s?(m&&(M(e,u,p,f,d,null),f=d=h=null),r=m=g=!0):m?r=!(m=!1):O(e,"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"),e.position+=1,s=i;if((e.line===o||e.lineIndent>t)&&(q(e,t,A,!0,r)&&(m?d=e.result:h=e.result),m||(M(e,u,p,f,d,h,o,a),f=d=h=null),L(e,!0,-1),s=e.input.charCodeAt(e.position)),t{var n,i,r,o,a,s,c,l,u,p=!0,f=e.tag,d=e.anchor,h={},m=e.input.charCodeAt(e.position);if(91===m)s=!(r=93),i=[];else{if(123!==m)return;r=125,s=!0,i={}}for(null!==e.anchor&&(e.anchorMap[e.anchor]=i),m=e.input.charCodeAt(++e.position);0!==m;){if(L(e,!0,t),(m=e.input.charCodeAt(e.position))===r)return e.position++,e.tag=f,e.anchor=d,e.kind=s?"mapping":"sequence",e.result=i,1;p||O(e,"missed comma between flow collection entries"),u=null,o=a=!1,63===m&&S(e.input.charCodeAt(e.position+1))&&(o=a=!0,e.position++,L(e,!0,t)),n=e.line,q(e,t,g,!1,!0),l=e.tag,c=e.result,L(e,!0,t),m=e.input.charCodeAt(e.position),!a&&e.line!==n||58!==m||(o=!0,m=e.input.charCodeAt(++e.position),L(e,!0,t),q(e,t,g,!1,!0),u=e.result),s?M(e,i,h,l,c,u):o?i.push(M(e,null,h,l,c,u)):i.push(c),L(e,!0,t),44===(m=e.input.charCodeAt(e.position))?(p=!0,m=e.input.charCodeAt(++e.position)):p=!1}O(e,"unexpected end of the stream within a flow collection")})(e,i)?d=!0:(a&&((e,t)=>{var n,i,r,o=b,a=!1,s=!1,c=t,l=0,u=!1,p=e.input.charCodeAt(e.position);if(124===p)i=!1;else{if(62!==p)return;i=!0}for(e.kind="scalar",e.result="";0!==p;)if(43===(p=e.input.charCodeAt(++e.position))||45===p)b===o?o=43===p?v:Y:O(e,"repeat of a chomping mode identifier");else{if(!(0<=(r=48<=(r=p)&&r<=57?r-48:-1)))break;0==r?O(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):s?O(e,"repeat of an indentation width identifier"):(c=t+r-1,s=!0)}if(j(p)){for(;j(p=e.input.charCodeAt(++e.position)););if(35===p)for(;!k(p=e.input.charCodeAt(++e.position))&&0!==p;);}for(;0!==p;){for(T(e),e.lineIndent=0,p=e.input.charCodeAt(e.position);(!s||e.lineIndentc&&(c=e.lineIndent),k(p))l++;else{if(e.lineIndent{var n,i,r=e.input.charCodeAt(e.position);if(39===r){for(e.kind="scalar",e.result="",e.position++,n=i=e.position;0!==(r=e.input.charCodeAt(e.position));)if(39===r){if(_(e,n,e.position,!0),39!==(r=e.input.charCodeAt(++e.position)))return 1;n=e.position,e.position++,i=e.position}else k(r)?(_(e,n,i,!0),U(e,L(e,!1,t)),n=i=e.position):e.position===e.lineStart&&D(e)?O(e,"unexpected end of the document within a single quoted scalar"):(e.position++,i=e.position);O(e,"unexpected end of the stream within a single quoted scalar")}})(e,i)||K(e,i)?d=!0:(e=>{var t,n=e.input.charCodeAt(e.position);if(42===n){for(n=e.input.charCodeAt(++e.position),t=e.position;0!==n&&!S(n)&&!I(n);)n=e.input.charCodeAt(++e.position);return e.position===t&&O(e,"name of an alias node must contain at least one character"),t=e.input.slice(t,e.position),m.call(e.anchorMap,t)||O(e,'unidentified alias "'+t+'"'),e.result=e.anchorMap[t],L(e,!0,-1),1}})(e)?(d=!0,null===e.tag&&null===e.anchor||O(e,"alias node should not have any properties")):((e,t,n)=>{var i,r,o,a,s,c,l,u=e.kind,p=e.result,f=e.input.charCodeAt(e.position);if(!S(f)&&!I(f)&&35!==f&&38!==f&&42!==f&&33!==f&&124!==f&&62!==f&&39!==f&&34!==f&&37!==f&&64!==f&&96!==f&&(63!==f&&45!==f||!(S(i=e.input.charCodeAt(e.position+1))||n&&I(i)))){for(e.kind="scalar",e.result="",r=o=e.position,a=!1;0!==f;){if(58===f){if(S(i=e.input.charCodeAt(e.position+1))||n&&I(i))break}else if(35===f){if(S(e.input.charCodeAt(e.position-1)))break}else{if(e.position===e.lineStart&&D(e)||n&&I(f))break;if(k(f)){if(s=e.line,c=e.lineStart,l=e.lineIndent,L(e,!1,-1),t<=e.lineIndent){a=!0,f=e.input.charCodeAt(e.position);continue}e.position=o,e.line=s,e.lineStart=c,e.lineIndent=l;break}}a&&(_(e,r,o,!1),U(e,e.line-s),r=o=e.position,a=!1),j(f)||(o=e.position+1),f=e.input.charCodeAt(++e.position)}if(_(e,r,o,!1),e.result)return 1;e.kind=u,e.result=p}})(e,i,g===n)&&(d=!0,null===e.tag)&&(e.tag="?"),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):0===p&&(d=s&&$(e,r))),null!==e.tag&&"!"!==e.tag)if("?"===e.tag){for(null!==e.result&&"scalar"!==e.kind&&O(e,'unacceptable node kind for ! tag; it should be "scalar", not "'+e.kind+'"'),c=0,l=e.implicitTypes.length;c tag; it should be "'+u.kind+'", not "'+e.kind+'"'),u.resolve(e.result)?(e.result=u.construct(e.result),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):O(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")):O(e,"unknown tag !<"+e.tag+">");return null!==e.listener&&e.listener("close",e),null!==e.tag||null!==e.anchor||d}function H(e,t){t=t||{};var n=new W(e=0!==(e=String(e)).length&&(10!==e.charCodeAt(e.length-1)&&13!==e.charCodeAt(e.length-1)&&(e+="\n"),65279===e.charCodeAt(0))?e.slice(1):e,t),t=e.indexOf("\0");for(-1!==t&&(n.position=t,O(n,"null byte is not allowed in input")),n.input+="\0";32===n.input.charCodeAt(n.position);)n.lineIndent+=1,n.position+=1;for(;n.positiont/2-1){n=" ... ",i+=5;break}for(r="",o=this.position;ot/2-1){r=" ... ",o-=5;break}return a=this.buffer.slice(i,o),s.repeat(" ",e)+n+a+r+"\n"+s.repeat(" ",e+this.position-i+n.length)+"^"},i.prototype.toString=function(e){var t="";return this.name&&(t+='in "'+this.name+'" '),t+="at line "+(this.line+1)+", column "+(this.column+1),e||(e=this.getSnippet())&&(t+=":\n"+e),t},t.exports=i},{"./common":2}],7:[function(e,t,n){var i=e("./common"),r=e("./exception"),o=e("./type");function a(e,t,i){var r=[];return e.include.forEach(function(e){i=a(e,t,i)}),e[t].forEach(function(n){i.forEach(function(e,t){e.tag===n.tag&&e.kind===n.kind&&r.push(t)}),i.push(n)}),i.filter(function(e,t){return-1===r.indexOf(t)})}function s(e){this.include=e.include||[],this.implicit=e.implicit||[],this.explicit=e.explicit||[],this.implicit.forEach(function(e){if(e.loadKind&&"scalar"!==e.loadKind)throw new r("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.")}),this.compiledImplicit=a(this,"implicit",[]),this.compiledExplicit=a(this,"explicit",[]),this.compiledTypeMap=function(){var e,t,n={scalar:{},sequence:{},mapping:{},fallback:{}};function i(e){n[e.kind][e.tag]=n.fallback[e.tag]=e}for(e=0,t=arguments.length;e>16&255),o.push(r>>8&255),o.push(255&r)),r=r<<6|i.indexOf(t.charAt(a));return 0==(e=n%4*6)?(o.push(r>>16&255),o.push(r>>8&255),o.push(255&r)):18==e?(o.push(r>>10&255),o.push(r>>2&255)):12==e&&o.push(r>>4&255),s?s.from?s.from(o):new s(o):o},predicate:function(e){return s&&s.isBuffer(e)},represent:function(e){for(var t,n="",i=0,r=e.length,o=c,a=0;a>18&63]+o[i>>12&63])+o[i>>6&63]+o[63&i]),i=(i<<8)+e[a];return 0==(t=r%3)?n=(n=n+o[i>>18&63]+o[i>>12&63])+o[i>>6&63]+o[63&i]:2==t?n=(n=n+o[i>>10&63]+o[i>>4&63])+o[i<<2&63]+o[64]:1==t&&(n=(n=n+o[i>>2&63]+o[i<<4&63])+o[64]+o[64]),n}})},{"../type":13}],15:[function(e,t,n){e=e("../type");t.exports=new e("tag:yaml.org,2002:bool",{kind:"scalar",resolve:function(e){var t;return null!==e&&(4===(t=e.length)&&("true"===e||"True"===e||"TRUE"===e)||5===t&&("false"===e||"False"===e||"FALSE"===e))},construct:function(e){return"true"===e||"True"===e||"TRUE"===e},predicate:function(e){return"[object Boolean]"===Object.prototype.toString.call(e)},represent:{lowercase:function(e){return e?"true":"false"},uppercase:function(e){return e?"TRUE":"FALSE"},camelcase:function(e){return e?"True":"False"}},defaultStyle:"lowercase"})},{"../type":13}],16:[function(e,t,n){var i=e("../common"),e=e("../type"),r=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");var o=/^[-+]?[0-9]+e/;t.exports=new e("tag:yaml.org,2002:float",{kind:"scalar",resolve:function(e){return null!==e&&!(!r.test(e)||"_"===e[e.length-1])},construct:function(e){var t,n=e.replace(/_/g,"").toLowerCase(),e="-"===n[0]?-1:1,i=[];return".inf"===(n=0<="+-".indexOf(n[0])?n.slice(1):n)?1==e?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:".nan"===n?NaN:0<=n.indexOf(":")?(n.split(":").forEach(function(e){i.unshift(parseFloat(e,10))}),n=0,t=1,i.forEach(function(e){n+=e*t,t*=60}),e*n):e*parseFloat(n,10)},predicate:function(e){return"[object Number]"===Object.prototype.toString.call(e)&&(e%1!=0||i.isNegativeZero(e))},represent:function(e,t){if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(i.isNegativeZero(e))return"-0.0";return t=e.toString(10),o.test(t)?t.replace("e",".e"):t},defaultStyle:"lowercase"})},{"../common":2,"../type":13}],17:[function(e,t,n){var i=e("../common"),e=e("../type");t.exports=new e("tag:yaml.org,2002:int",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t,n,i,r,o=e.length,a=0,s=!1;if(!o)return!1;if("0"===(t="-"!==(t=e[a])&&"+"!==t?t:e[++a])){if(a+1===o)return!0;if("b"===(t=e[++a])){for(a++;a */ +var CHAR_QUESTION = 0x3F; /* ? */ +var CHAR_COMMERCIAL_AT = 0x40; /* @ */ +var CHAR_LEFT_SQUARE_BRACKET = 0x5B; /* [ */ +var CHAR_RIGHT_SQUARE_BRACKET = 0x5D; /* ] */ +var CHAR_GRAVE_ACCENT = 0x60; /* ` */ +var CHAR_LEFT_CURLY_BRACKET = 0x7B; /* { */ +var CHAR_VERTICAL_LINE = 0x7C; /* | */ +var CHAR_RIGHT_CURLY_BRACKET = 0x7D; /* } */ + +var ESCAPE_SEQUENCES = {}; + +ESCAPE_SEQUENCES[0x00] = '\\0'; +ESCAPE_SEQUENCES[0x07] = '\\a'; +ESCAPE_SEQUENCES[0x08] = '\\b'; +ESCAPE_SEQUENCES[0x09] = '\\t'; +ESCAPE_SEQUENCES[0x0A] = '\\n'; +ESCAPE_SEQUENCES[0x0B] = '\\v'; +ESCAPE_SEQUENCES[0x0C] = '\\f'; +ESCAPE_SEQUENCES[0x0D] = '\\r'; +ESCAPE_SEQUENCES[0x1B] = '\\e'; +ESCAPE_SEQUENCES[0x22] = '\\"'; +ESCAPE_SEQUENCES[0x5C] = '\\\\'; +ESCAPE_SEQUENCES[0x85] = '\\N'; +ESCAPE_SEQUENCES[0xA0] = '\\_'; +ESCAPE_SEQUENCES[0x2028] = '\\L'; +ESCAPE_SEQUENCES[0x2029] = '\\P'; + +var DEPRECATED_BOOLEANS_SYNTAX = [ + 'y', 'Y', 'yes', 'Yes', 'YES', 'on', 'On', 'ON', + 'n', 'N', 'no', 'No', 'NO', 'off', 'Off', 'OFF' +]; + +function compileStyleMap(schema, map) { + var result, keys, index, length, tag, style, type; + + if (map === null) return {}; + + result = {}; + keys = Object.keys(map); + + for (index = 0, length = keys.length; index < length; index += 1) { + tag = keys[index]; + style = String(map[tag]); + + if (tag.slice(0, 2) === '!!') { + tag = 'tag:yaml.org,2002:' + tag.slice(2); + } + type = schema.compiledTypeMap['fallback'][tag]; + + if (type && _hasOwnProperty.call(type.styleAliases, style)) { + style = type.styleAliases[style]; + } + + result[tag] = style; + } + + return result; +} + +function encodeHex(character) { + var string, handle, length; + + string = character.toString(16).toUpperCase(); + + if (character <= 0xFF) { + handle = 'x'; + length = 2; + } else if (character <= 0xFFFF) { + handle = 'u'; + length = 4; + } else if (character <= 0xFFFFFFFF) { + handle = 'U'; + length = 8; + } else { + throw new YAMLException('code point within a string may not be greater than 0xFFFFFFFF'); + } + + return '\\' + handle + common.repeat('0', length - string.length) + string; +} + +function State(options) { + this.schema = options['schema'] || DEFAULT_FULL_SCHEMA; + this.indent = Math.max(1, (options['indent'] || 2)); + this.noArrayIndent = options['noArrayIndent'] || false; + this.skipInvalid = options['skipInvalid'] || false; + this.flowLevel = (common.isNothing(options['flowLevel']) ? -1 : options['flowLevel']); + this.styleMap = compileStyleMap(this.schema, options['styles'] || null); + this.sortKeys = options['sortKeys'] || false; + this.lineWidth = options['lineWidth'] || 80; + this.noRefs = options['noRefs'] || false; + this.noCompatMode = options['noCompatMode'] || false; + this.condenseFlow = options['condenseFlow'] || false; + + this.implicitTypes = this.schema.compiledImplicit; + this.explicitTypes = this.schema.compiledExplicit; + + this.tag = null; + this.result = ''; + + this.duplicates = []; + this.usedDuplicates = null; +} + +// Indents every line in a string. Empty lines (\n only) are not indented. +function indentString(string, spaces) { + var ind = common.repeat(' ', spaces), + position = 0, + next = -1, + result = '', + line, + length = string.length; + + while (position < length) { + next = string.indexOf('\n', position); + if (next === -1) { + line = string.slice(position); + position = length; + } else { + line = string.slice(position, next + 1); + position = next + 1; + } + + if (line.length && line !== '\n') result += ind; + + result += line; + } + + return result; +} + +function generateNextLine(state, level) { + return '\n' + common.repeat(' ', state.indent * level); +} + +function testImplicitResolving(state, str) { + var index, length, type; + + for (index = 0, length = state.implicitTypes.length; index < length; index += 1) { + type = state.implicitTypes[index]; + + if (type.resolve(str)) { + return true; + } + } + + return false; +} + +// [33] s-white ::= s-space | s-tab +function isWhitespace(c) { + return c === CHAR_SPACE || c === CHAR_TAB; +} + +// Returns true if the character can be printed without escaping. +// From YAML 1.2: "any allowed characters known to be non-printable +// should also be escaped. [However,] This isn’t mandatory" +// Derived from nb-char - \t - #x85 - #xA0 - #x2028 - #x2029. +function isPrintable(c) { + return (0x00020 <= c && c <= 0x00007E) + || ((0x000A1 <= c && c <= 0x00D7FF) && c !== 0x2028 && c !== 0x2029) + || ((0x0E000 <= c && c <= 0x00FFFD) && c !== 0xFEFF /* BOM */) + || (0x10000 <= c && c <= 0x10FFFF); +} + +// [34] ns-char ::= nb-char - s-white +// [27] nb-char ::= c-printable - b-char - c-byte-order-mark +// [26] b-char ::= b-line-feed | b-carriage-return +// [24] b-line-feed ::= #xA /* LF */ +// [25] b-carriage-return ::= #xD /* CR */ +// [3] c-byte-order-mark ::= #xFEFF +function isNsChar(c) { + return isPrintable(c) && !isWhitespace(c) + // byte-order-mark + && c !== 0xFEFF + // b-char + && c !== CHAR_CARRIAGE_RETURN + && c !== CHAR_LINE_FEED; +} + +// Simplified test for values allowed after the first character in plain style. +function isPlainSafe(c, prev) { + // Uses a subset of nb-char - c-flow-indicator - ":" - "#" + // where nb-char ::= c-printable - b-char - c-byte-order-mark. + return isPrintable(c) && c !== 0xFEFF + // - c-flow-indicator + && c !== CHAR_COMMA + && c !== CHAR_LEFT_SQUARE_BRACKET + && c !== CHAR_RIGHT_SQUARE_BRACKET + && c !== CHAR_LEFT_CURLY_BRACKET + && c !== CHAR_RIGHT_CURLY_BRACKET + // - ":" - "#" + // /* An ns-char preceding */ "#" + && c !== CHAR_COLON + && ((c !== CHAR_SHARP) || (prev && isNsChar(prev))); +} + +// Simplified test for values allowed as the first character in plain style. +function isPlainSafeFirst(c) { + // Uses a subset of ns-char - c-indicator + // where ns-char = nb-char - s-white. + return isPrintable(c) && c !== 0xFEFF + && !isWhitespace(c) // - s-white + // - (c-indicator ::= + // “-” | “?” | “:” | “,” | “[” | “]” | “{” | “}” + && c !== CHAR_MINUS + && c !== CHAR_QUESTION + && c !== CHAR_COLON + && c !== CHAR_COMMA + && c !== CHAR_LEFT_SQUARE_BRACKET + && c !== CHAR_RIGHT_SQUARE_BRACKET + && c !== CHAR_LEFT_CURLY_BRACKET + && c !== CHAR_RIGHT_CURLY_BRACKET + // | “#” | “&” | “*” | “!” | “|” | “=” | “>” | “'” | “"” + && c !== CHAR_SHARP + && c !== CHAR_AMPERSAND + && c !== CHAR_ASTERISK + && c !== CHAR_EXCLAMATION + && c !== CHAR_VERTICAL_LINE + && c !== CHAR_EQUALS + && c !== CHAR_GREATER_THAN + && c !== CHAR_SINGLE_QUOTE + && c !== CHAR_DOUBLE_QUOTE + // | “%” | “@” | “`”) + && c !== CHAR_PERCENT + && c !== CHAR_COMMERCIAL_AT + && c !== CHAR_GRAVE_ACCENT; +} + +// Determines whether block indentation indicator is required. +function needIndentIndicator(string) { + var leadingSpaceRe = /^\n* /; + return leadingSpaceRe.test(string); +} + +var STYLE_PLAIN = 1, + STYLE_SINGLE = 2, + STYLE_LITERAL = 3, + STYLE_FOLDED = 4, + STYLE_DOUBLE = 5; + +// Determines which scalar styles are possible and returns the preferred style. +// lineWidth = -1 => no limit. +// Pre-conditions: str.length > 0. +// Post-conditions: +// STYLE_PLAIN or STYLE_SINGLE => no \n are in the string. +// STYLE_LITERAL => no lines are suitable for folding (or lineWidth is -1). +// STYLE_FOLDED => a line > lineWidth and can be folded (and lineWidth != -1). +function chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth, testAmbiguousType) { + var i; + var char, prev_char; + var hasLineBreak = false; + var hasFoldableLine = false; // only checked if shouldTrackWidth + var shouldTrackWidth = lineWidth !== -1; + var previousLineBreak = -1; // count the first line correctly + var plain = isPlainSafeFirst(string.charCodeAt(0)) + && !isWhitespace(string.charCodeAt(string.length - 1)); + + if (singleLineOnly) { + // Case: no block styles. + // Check for disallowed characters to rule out plain and single. + for (i = 0; i < string.length; i++) { + char = string.charCodeAt(i); + if (!isPrintable(char)) { + return STYLE_DOUBLE; + } + prev_char = i > 0 ? string.charCodeAt(i - 1) : null; + plain = plain && isPlainSafe(char, prev_char); + } + } else { + // Case: block styles permitted. + for (i = 0; i < string.length; i++) { + char = string.charCodeAt(i); + if (char === CHAR_LINE_FEED) { + hasLineBreak = true; + // Check if any line can be folded. + if (shouldTrackWidth) { + hasFoldableLine = hasFoldableLine || + // Foldable line = too long, and not more-indented. + (i - previousLineBreak - 1 > lineWidth && + string[previousLineBreak + 1] !== ' '); + previousLineBreak = i; + } + } else if (!isPrintable(char)) { + return STYLE_DOUBLE; + } + prev_char = i > 0 ? string.charCodeAt(i - 1) : null; + plain = plain && isPlainSafe(char, prev_char); + } + // in case the end is missing a \n + hasFoldableLine = hasFoldableLine || (shouldTrackWidth && + (i - previousLineBreak - 1 > lineWidth && + string[previousLineBreak + 1] !== ' ')); + } + // Although every style can represent \n without escaping, prefer block styles + // for multiline, since they're more readable and they don't add empty lines. + // Also prefer folding a super-long line. + if (!hasLineBreak && !hasFoldableLine) { + // Strings interpretable as another type have to be quoted; + // e.g. the string 'true' vs. the boolean true. + return plain && !testAmbiguousType(string) + ? STYLE_PLAIN : STYLE_SINGLE; + } + // Edge case: block indentation indicator can only have one digit. + if (indentPerLevel > 9 && needIndentIndicator(string)) { + return STYLE_DOUBLE; + } + // At this point we know block styles are valid. + // Prefer literal style unless we want to fold. + return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL; +} + +// Note: line breaking/folding is implemented for only the folded style. +// NB. We drop the last trailing newline (if any) of a returned block scalar +// since the dumper adds its own newline. This always works: +// • No ending newline => unaffected; already using strip "-" chomping. +// • Ending newline => removed then restored. +// Importantly, this keeps the "+" chomp indicator from gaining an extra line. +function writeScalar(state, string, level, iskey) { + state.dump = (function () { + if (string.length === 0) { + return "''"; + } + if (!state.noCompatMode && + DEPRECATED_BOOLEANS_SYNTAX.indexOf(string) !== -1) { + return "'" + string + "'"; + } + + var indent = state.indent * Math.max(1, level); // no 0-indent scalars + // As indentation gets deeper, let the width decrease monotonically + // to the lower bound min(state.lineWidth, 40). + // Note that this implies + // state.lineWidth ≤ 40 + state.indent: width is fixed at the lower bound. + // state.lineWidth > 40 + state.indent: width decreases until the lower bound. + // This behaves better than a constant minimum width which disallows narrower options, + // or an indent threshold which causes the width to suddenly increase. + var lineWidth = state.lineWidth === -1 + ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent); + + // Without knowing if keys are implicit/explicit, assume implicit for safety. + var singleLineOnly = iskey + // No block styles in flow mode. + || (state.flowLevel > -1 && level >= state.flowLevel); + function testAmbiguity(string) { + return testImplicitResolving(state, string); + } + + switch (chooseScalarStyle(string, singleLineOnly, state.indent, lineWidth, testAmbiguity)) { + case STYLE_PLAIN: + return string; + case STYLE_SINGLE: + return "'" + string.replace(/'/g, "''") + "'"; + case STYLE_LITERAL: + return '|' + blockHeader(string, state.indent) + + dropEndingNewline(indentString(string, indent)); + case STYLE_FOLDED: + return '>' + blockHeader(string, state.indent) + + dropEndingNewline(indentString(foldString(string, lineWidth), indent)); + case STYLE_DOUBLE: + return '"' + escapeString(string, lineWidth) + '"'; + default: + throw new YAMLException('impossible error: invalid scalar style'); + } + }()); +} + +// Pre-conditions: string is valid for a block scalar, 1 <= indentPerLevel <= 9. +function blockHeader(string, indentPerLevel) { + var indentIndicator = needIndentIndicator(string) ? String(indentPerLevel) : ''; + + // note the special case: the string '\n' counts as a "trailing" empty line. + var clip = string[string.length - 1] === '\n'; + var keep = clip && (string[string.length - 2] === '\n' || string === '\n'); + var chomp = keep ? '+' : (clip ? '' : '-'); + + return indentIndicator + chomp + '\n'; +} + +// (See the note for writeScalar.) +function dropEndingNewline(string) { + return string[string.length - 1] === '\n' ? string.slice(0, -1) : string; +} + +// Note: a long line without a suitable break point will exceed the width limit. +// Pre-conditions: every char in str isPrintable, str.length > 0, width > 0. +function foldString(string, width) { + // In folded style, $k$ consecutive newlines output as $k+1$ newlines— + // unless they're before or after a more-indented line, or at the very + // beginning or end, in which case $k$ maps to $k$. + // Therefore, parse each chunk as newline(s) followed by a content line. + var lineRe = /(\n+)([^\n]*)/g; + + // first line (possibly an empty line) + var result = (function () { + var nextLF = string.indexOf('\n'); + nextLF = nextLF !== -1 ? nextLF : string.length; + lineRe.lastIndex = nextLF; + return foldLine(string.slice(0, nextLF), width); + }()); + // If we haven't reached the first content line yet, don't add an extra \n. + var prevMoreIndented = string[0] === '\n' || string[0] === ' '; + var moreIndented; + + // rest of the lines + var match; + while ((match = lineRe.exec(string))) { + var prefix = match[1], line = match[2]; + moreIndented = (line[0] === ' '); + result += prefix + + (!prevMoreIndented && !moreIndented && line !== '' + ? '\n' : '') + + foldLine(line, width); + prevMoreIndented = moreIndented; + } + + return result; +} + +// Greedy line breaking. +// Picks the longest line under the limit each time, +// otherwise settles for the shortest line over the limit. +// NB. More-indented lines *cannot* be folded, as that would add an extra \n. +function foldLine(line, width) { + if (line === '' || line[0] === ' ') return line; + + // Since a more-indented line adds a \n, breaks can't be followed by a space. + var breakRe = / [^ ]/g; // note: the match index will always be <= length-2. + var match; + // start is an inclusive index. end, curr, and next are exclusive. + var start = 0, end, curr = 0, next = 0; + var result = ''; + + // Invariants: 0 <= start <= length-1. + // 0 <= curr <= next <= max(0, length-2). curr - start <= width. + // Inside the loop: + // A match implies length >= 2, so curr and next are <= length-2. + while ((match = breakRe.exec(line))) { + next = match.index; + // maintain invariant: curr - start <= width + if (next - start > width) { + end = (curr > start) ? curr : next; // derive end <= length-2 + result += '\n' + line.slice(start, end); + // skip the space that was output as \n + start = end + 1; // derive start <= length-1 + } + curr = next; + } + + // By the invariants, start <= length-1, so there is something left over. + // It is either the whole string or a part starting from non-whitespace. + result += '\n'; + // Insert a break if the remainder is too long and there is a break available. + if (line.length - start > width && curr > start) { + result += line.slice(start, curr) + '\n' + line.slice(curr + 1); + } else { + result += line.slice(start); + } + + return result.slice(1); // drop extra \n joiner +} + +// Escapes a double-quoted string. +function escapeString(string) { + var result = ''; + var char, nextChar; + var escapeSeq; + + for (var i = 0; i < string.length; i++) { + char = string.charCodeAt(i); + // Check for surrogate pairs (reference Unicode 3.0 section "3.7 Surrogates"). + if (char >= 0xD800 && char <= 0xDBFF/* high surrogate */) { + nextChar = string.charCodeAt(i + 1); + if (nextChar >= 0xDC00 && nextChar <= 0xDFFF/* low surrogate */) { + // Combine the surrogate pair and store it escaped. + result += encodeHex((char - 0xD800) * 0x400 + nextChar - 0xDC00 + 0x10000); + // Advance index one extra since we already used that char here. + i++; continue; + } + } + escapeSeq = ESCAPE_SEQUENCES[char]; + result += !escapeSeq && isPrintable(char) + ? string[i] + : escapeSeq || encodeHex(char); + } + + return result; +} + +function writeFlowSequence(state, level, object) { + var _result = '', + _tag = state.tag, + index, + length; + + for (index = 0, length = object.length; index < length; index += 1) { + // Write only valid elements. + if (writeNode(state, level, object[index], false, false)) { + if (index !== 0) _result += ',' + (!state.condenseFlow ? ' ' : ''); + _result += state.dump; + } + } + + state.tag = _tag; + state.dump = '[' + _result + ']'; +} + +function writeBlockSequence(state, level, object, compact) { + var _result = '', + _tag = state.tag, + index, + length; + + for (index = 0, length = object.length; index < length; index += 1) { + // Write only valid elements. + if (writeNode(state, level + 1, object[index], true, true)) { + if (!compact || index !== 0) { + _result += generateNextLine(state, level); + } + + if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { + _result += '-'; + } else { + _result += '- '; + } + + _result += state.dump; + } + } + + state.tag = _tag; + state.dump = _result || '[]'; // Empty sequence if no valid values. +} + +function writeFlowMapping(state, level, object) { + var _result = '', + _tag = state.tag, + objectKeyList = Object.keys(object), + index, + length, + objectKey, + objectValue, + pairBuffer; + + for (index = 0, length = objectKeyList.length; index < length; index += 1) { + + pairBuffer = ''; + if (index !== 0) pairBuffer += ', '; + + if (state.condenseFlow) pairBuffer += '"'; + + objectKey = objectKeyList[index]; + objectValue = object[objectKey]; + + if (!writeNode(state, level, objectKey, false, false)) { + continue; // Skip this pair because of invalid key; + } + + if (state.dump.length > 1024) pairBuffer += '? '; + + pairBuffer += state.dump + (state.condenseFlow ? '"' : '') + ':' + (state.condenseFlow ? '' : ' '); + + if (!writeNode(state, level, objectValue, false, false)) { + continue; // Skip this pair because of invalid value. + } + + pairBuffer += state.dump; + + // Both key and value are valid. + _result += pairBuffer; + } + + state.tag = _tag; + state.dump = '{' + _result + '}'; +} + +function writeBlockMapping(state, level, object, compact) { + var _result = '', + _tag = state.tag, + objectKeyList = Object.keys(object), + index, + length, + objectKey, + objectValue, + explicitPair, + pairBuffer; + + // Allow sorting keys so that the output file is deterministic + if (state.sortKeys === true) { + // Default sorting + objectKeyList.sort(); + } else if (typeof state.sortKeys === 'function') { + // Custom sort function + objectKeyList.sort(state.sortKeys); + } else if (state.sortKeys) { + // Something is wrong + throw new YAMLException('sortKeys must be a boolean or a function'); + } + + for (index = 0, length = objectKeyList.length; index < length; index += 1) { + pairBuffer = ''; + + if (!compact || index !== 0) { + pairBuffer += generateNextLine(state, level); + } + + objectKey = objectKeyList[index]; + objectValue = object[objectKey]; + + if (!writeNode(state, level + 1, objectKey, true, true, true)) { + continue; // Skip this pair because of invalid key. + } + + explicitPair = (state.tag !== null && state.tag !== '?') || + (state.dump && state.dump.length > 1024); + + if (explicitPair) { + if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { + pairBuffer += '?'; + } else { + pairBuffer += '? '; + } + } + + pairBuffer += state.dump; + + if (explicitPair) { + pairBuffer += generateNextLine(state, level); + } + + if (!writeNode(state, level + 1, objectValue, true, explicitPair)) { + continue; // Skip this pair because of invalid value. + } + + if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { + pairBuffer += ':'; + } else { + pairBuffer += ': '; + } + + pairBuffer += state.dump; + + // Both key and value are valid. + _result += pairBuffer; + } + + state.tag = _tag; + state.dump = _result || '{}'; // Empty mapping if no valid pairs. +} + +function detectType(state, object, explicit) { + var _result, typeList, index, length, type, style; + + typeList = explicit ? state.explicitTypes : state.implicitTypes; + + for (index = 0, length = typeList.length; index < length; index += 1) { + type = typeList[index]; + + if ((type.instanceOf || type.predicate) && + (!type.instanceOf || ((typeof object === 'object') && (object instanceof type.instanceOf))) && + (!type.predicate || type.predicate(object))) { + + state.tag = explicit ? type.tag : '?'; + + if (type.represent) { + style = state.styleMap[type.tag] || type.defaultStyle; + + if (_toString.call(type.represent) === '[object Function]') { + _result = type.represent(object, style); + } else if (_hasOwnProperty.call(type.represent, style)) { + _result = type.represent[style](object, style); + } else { + throw new YAMLException('!<' + type.tag + '> tag resolver accepts not "' + style + '" style'); + } + + state.dump = _result; + } + + return true; + } + } + + return false; +} + +// Serializes `object` and writes it to global `result`. +// Returns true on success, or false on invalid object. +// +function writeNode(state, level, object, block, compact, iskey) { + state.tag = null; + state.dump = object; + + if (!detectType(state, object, false)) { + detectType(state, object, true); + } + + var type = _toString.call(state.dump); + + if (block) { + block = (state.flowLevel < 0 || state.flowLevel > level); + } + + var objectOrArray = type === '[object Object]' || type === '[object Array]', + duplicateIndex, + duplicate; + + if (objectOrArray) { + duplicateIndex = state.duplicates.indexOf(object); + duplicate = duplicateIndex !== -1; + } + + if ((state.tag !== null && state.tag !== '?') || duplicate || (state.indent !== 2 && level > 0)) { + compact = false; + } + + if (duplicate && state.usedDuplicates[duplicateIndex]) { + state.dump = '*ref_' + duplicateIndex; + } else { + if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) { + state.usedDuplicates[duplicateIndex] = true; + } + if (type === '[object Object]') { + if (block && (Object.keys(state.dump).length !== 0)) { + writeBlockMapping(state, level, state.dump, compact); + if (duplicate) { + state.dump = '&ref_' + duplicateIndex + state.dump; + } + } else { + writeFlowMapping(state, level, state.dump); + if (duplicate) { + state.dump = '&ref_' + duplicateIndex + ' ' + state.dump; + } + } + } else if (type === '[object Array]') { + var arrayLevel = (state.noArrayIndent && (level > 0)) ? level - 1 : level; + if (block && (state.dump.length !== 0)) { + writeBlockSequence(state, arrayLevel, state.dump, compact); + if (duplicate) { + state.dump = '&ref_' + duplicateIndex + state.dump; + } + } else { + writeFlowSequence(state, arrayLevel, state.dump); + if (duplicate) { + state.dump = '&ref_' + duplicateIndex + ' ' + state.dump; + } + } + } else if (type === '[object String]') { + if (state.tag !== '?') { + writeScalar(state, state.dump, level, iskey); + } + } else { + if (state.skipInvalid) return false; + throw new YAMLException('unacceptable kind of an object to dump ' + type); + } + + if (state.tag !== null && state.tag !== '?') { + state.dump = '!<' + state.tag + '> ' + state.dump; + } + } + + return true; +} + +function getDuplicateReferences(object, state) { + var objects = [], + duplicatesIndexes = [], + index, + length; + + inspectNode(object, objects, duplicatesIndexes); + + for (index = 0, length = duplicatesIndexes.length; index < length; index += 1) { + state.duplicates.push(objects[duplicatesIndexes[index]]); + } + state.usedDuplicates = new Array(length); +} + +function inspectNode(object, objects, duplicatesIndexes) { + var objectKeyList, + index, + length; + + if (object !== null && typeof object === 'object') { + index = objects.indexOf(object); + if (index !== -1) { + if (duplicatesIndexes.indexOf(index) === -1) { + duplicatesIndexes.push(index); + } + } else { + objects.push(object); + + if (Array.isArray(object)) { + for (index = 0, length = object.length; index < length; index += 1) { + inspectNode(object[index], objects, duplicatesIndexes); + } + } else { + objectKeyList = Object.keys(object); + + for (index = 0, length = objectKeyList.length; index < length; index += 1) { + inspectNode(object[objectKeyList[index]], objects, duplicatesIndexes); + } + } + } + } +} + +function dump(input, options) { + options = options || {}; + + var state = new State(options); + + if (!state.noRefs) getDuplicateReferences(input, state); + + if (writeNode(state, 0, input, true, true)) return state.dump + '\n'; + + return ''; +} + +function safeDump(input, options) { + return dump(input, common.extend({ schema: DEFAULT_SAFE_SCHEMA }, options)); +} + +module.exports.dump = dump; +module.exports.safeDump = safeDump; diff --git a/server/api/node_modules/js-yaml/lib/js-yaml/exception.js b/server/api/node_modules/js-yaml/lib/js-yaml/exception.js new file mode 100644 index 0000000..b744a1e --- /dev/null +++ b/server/api/node_modules/js-yaml/lib/js-yaml/exception.js @@ -0,0 +1,43 @@ +// YAML error class. http://stackoverflow.com/questions/8458984 +// +'use strict'; + +function YAMLException(reason, mark) { + // Super constructor + Error.call(this); + + this.name = 'YAMLException'; + this.reason = reason; + this.mark = mark; + this.message = (this.reason || '(unknown reason)') + (this.mark ? ' ' + this.mark.toString() : ''); + + // Include stack trace in error object + if (Error.captureStackTrace) { + // Chrome and NodeJS + Error.captureStackTrace(this, this.constructor); + } else { + // FF, IE 10+ and Safari 6+. Fallback for others + this.stack = (new Error()).stack || ''; + } +} + + +// Inherit from Error +YAMLException.prototype = Object.create(Error.prototype); +YAMLException.prototype.constructor = YAMLException; + + +YAMLException.prototype.toString = function toString(compact) { + var result = this.name + ': '; + + result += this.reason || '(unknown reason)'; + + if (!compact && this.mark) { + result += ' ' + this.mark.toString(); + } + + return result; +}; + + +module.exports = YAMLException; diff --git a/server/api/node_modules/js-yaml/lib/js-yaml/loader.js b/server/api/node_modules/js-yaml/lib/js-yaml/loader.js new file mode 100644 index 0000000..0e1e43d --- /dev/null +++ b/server/api/node_modules/js-yaml/lib/js-yaml/loader.js @@ -0,0 +1,1660 @@ +'use strict'; + +/*eslint-disable max-len,no-use-before-define*/ + +var common = require('./common'); +var YAMLException = require('./exception'); +var Mark = require('./mark'); +var DEFAULT_SAFE_SCHEMA = require('./schema/default_safe'); +var DEFAULT_FULL_SCHEMA = require('./schema/default_full'); + + +var _hasOwnProperty = Object.prototype.hasOwnProperty; + + +var CONTEXT_FLOW_IN = 1; +var CONTEXT_FLOW_OUT = 2; +var CONTEXT_BLOCK_IN = 3; +var CONTEXT_BLOCK_OUT = 4; + + +var CHOMPING_CLIP = 1; +var CHOMPING_STRIP = 2; +var CHOMPING_KEEP = 3; + + +var PATTERN_NON_PRINTABLE = /[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/; +var PATTERN_NON_ASCII_LINE_BREAKS = /[\x85\u2028\u2029]/; +var PATTERN_FLOW_INDICATORS = /[,\[\]\{\}]/; +var PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\-]+!)$/i; +var PATTERN_TAG_URI = /^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i; + + +function _class(obj) { return Object.prototype.toString.call(obj); } + +function is_EOL(c) { + return (c === 0x0A/* LF */) || (c === 0x0D/* CR */); +} + +function is_WHITE_SPACE(c) { + return (c === 0x09/* Tab */) || (c === 0x20/* Space */); +} + +function is_WS_OR_EOL(c) { + return (c === 0x09/* Tab */) || + (c === 0x20/* Space */) || + (c === 0x0A/* LF */) || + (c === 0x0D/* CR */); +} + +function is_FLOW_INDICATOR(c) { + return c === 0x2C/* , */ || + c === 0x5B/* [ */ || + c === 0x5D/* ] */ || + c === 0x7B/* { */ || + c === 0x7D/* } */; +} + +function fromHexCode(c) { + var lc; + + if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) { + return c - 0x30; + } + + /*eslint-disable no-bitwise*/ + lc = c | 0x20; + + if ((0x61/* a */ <= lc) && (lc <= 0x66/* f */)) { + return lc - 0x61 + 10; + } + + return -1; +} + +function escapedHexLen(c) { + if (c === 0x78/* x */) { return 2; } + if (c === 0x75/* u */) { return 4; } + if (c === 0x55/* U */) { return 8; } + return 0; +} + +function fromDecimalCode(c) { + if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) { + return c - 0x30; + } + + return -1; +} + +function simpleEscapeSequence(c) { + /* eslint-disable indent */ + return (c === 0x30/* 0 */) ? '\x00' : + (c === 0x61/* a */) ? '\x07' : + (c === 0x62/* b */) ? '\x08' : + (c === 0x74/* t */) ? '\x09' : + (c === 0x09/* Tab */) ? '\x09' : + (c === 0x6E/* n */) ? '\x0A' : + (c === 0x76/* v */) ? '\x0B' : + (c === 0x66/* f */) ? '\x0C' : + (c === 0x72/* r */) ? '\x0D' : + (c === 0x65/* e */) ? '\x1B' : + (c === 0x20/* Space */) ? ' ' : + (c === 0x22/* " */) ? '\x22' : + (c === 0x2F/* / */) ? '/' : + (c === 0x5C/* \ */) ? '\x5C' : + (c === 0x4E/* N */) ? '\x85' : + (c === 0x5F/* _ */) ? '\xA0' : + (c === 0x4C/* L */) ? '\u2028' : + (c === 0x50/* P */) ? '\u2029' : ''; +} + +function charFromCodepoint(c) { + if (c <= 0xFFFF) { + return String.fromCharCode(c); + } + // Encode UTF-16 surrogate pair + // https://en.wikipedia.org/wiki/UTF-16#Code_points_U.2B010000_to_U.2B10FFFF + return String.fromCharCode( + ((c - 0x010000) >> 10) + 0xD800, + ((c - 0x010000) & 0x03FF) + 0xDC00 + ); +} + +// set a property of a literal object, while protecting against prototype pollution, +// see https://github.com/nodeca/js-yaml/issues/164 for more details +function setProperty(object, key, value) { + // used for this specific key only because Object.defineProperty is slow + if (key === '__proto__') { + Object.defineProperty(object, key, { + configurable: true, + enumerable: true, + writable: true, + value: value + }); + } else { + object[key] = value; + } +} + +var simpleEscapeCheck = new Array(256); // integer, for fast access +var simpleEscapeMap = new Array(256); +for (var i = 0; i < 256; i++) { + simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0; + simpleEscapeMap[i] = simpleEscapeSequence(i); +} + + +function State(input, options) { + this.input = input; + + this.filename = options['filename'] || null; + this.schema = options['schema'] || DEFAULT_FULL_SCHEMA; + this.onWarning = options['onWarning'] || null; + this.legacy = options['legacy'] || false; + this.json = options['json'] || false; + this.listener = options['listener'] || null; + + this.implicitTypes = this.schema.compiledImplicit; + this.typeMap = this.schema.compiledTypeMap; + + this.length = input.length; + this.position = 0; + this.line = 0; + this.lineStart = 0; + this.lineIndent = 0; + + this.documents = []; + + /* + this.version; + this.checkLineBreaks; + this.tagMap; + this.anchorMap; + this.tag; + this.anchor; + this.kind; + this.result;*/ + +} + + +function generateError(state, message) { + return new YAMLException( + message, + new Mark(state.filename, state.input, state.position, state.line, (state.position - state.lineStart))); +} + +function throwError(state, message) { + throw generateError(state, message); +} + +function throwWarning(state, message) { + if (state.onWarning) { + state.onWarning.call(null, generateError(state, message)); + } +} + + +var directiveHandlers = { + + YAML: function handleYamlDirective(state, name, args) { + + var match, major, minor; + + if (state.version !== null) { + throwError(state, 'duplication of %YAML directive'); + } + + if (args.length !== 1) { + throwError(state, 'YAML directive accepts exactly one argument'); + } + + match = /^([0-9]+)\.([0-9]+)$/.exec(args[0]); + + if (match === null) { + throwError(state, 'ill-formed argument of the YAML directive'); + } + + major = parseInt(match[1], 10); + minor = parseInt(match[2], 10); + + if (major !== 1) { + throwError(state, 'unacceptable YAML version of the document'); + } + + state.version = args[0]; + state.checkLineBreaks = (minor < 2); + + if (minor !== 1 && minor !== 2) { + throwWarning(state, 'unsupported YAML version of the document'); + } + }, + + TAG: function handleTagDirective(state, name, args) { + + var handle, prefix; + + if (args.length !== 2) { + throwError(state, 'TAG directive accepts exactly two arguments'); + } + + handle = args[0]; + prefix = args[1]; + + if (!PATTERN_TAG_HANDLE.test(handle)) { + throwError(state, 'ill-formed tag handle (first argument) of the TAG directive'); + } + + if (_hasOwnProperty.call(state.tagMap, handle)) { + throwError(state, 'there is a previously declared suffix for "' + handle + '" tag handle'); + } + + if (!PATTERN_TAG_URI.test(prefix)) { + throwError(state, 'ill-formed tag prefix (second argument) of the TAG directive'); + } + + state.tagMap[handle] = prefix; + } +}; + + +function captureSegment(state, start, end, checkJson) { + var _position, _length, _character, _result; + + if (start < end) { + _result = state.input.slice(start, end); + + if (checkJson) { + for (_position = 0, _length = _result.length; _position < _length; _position += 1) { + _character = _result.charCodeAt(_position); + if (!(_character === 0x09 || + (0x20 <= _character && _character <= 0x10FFFF))) { + throwError(state, 'expected valid JSON character'); + } + } + } else if (PATTERN_NON_PRINTABLE.test(_result)) { + throwError(state, 'the stream contains non-printable characters'); + } + + state.result += _result; + } +} + +function mergeMappings(state, destination, source, overridableKeys) { + var sourceKeys, key, index, quantity; + + if (!common.isObject(source)) { + throwError(state, 'cannot merge mappings; the provided source object is unacceptable'); + } + + sourceKeys = Object.keys(source); + + for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) { + key = sourceKeys[index]; + + if (!_hasOwnProperty.call(destination, key)) { + setProperty(destination, key, source[key]); + overridableKeys[key] = true; + } + } +} + +function storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, startLine, startPos) { + var index, quantity; + + // The output is a plain object here, so keys can only be strings. + // We need to convert keyNode to a string, but doing so can hang the process + // (deeply nested arrays that explode exponentially using aliases). + if (Array.isArray(keyNode)) { + keyNode = Array.prototype.slice.call(keyNode); + + for (index = 0, quantity = keyNode.length; index < quantity; index += 1) { + if (Array.isArray(keyNode[index])) { + throwError(state, 'nested arrays are not supported inside keys'); + } + + if (typeof keyNode === 'object' && _class(keyNode[index]) === '[object Object]') { + keyNode[index] = '[object Object]'; + } + } + } + + // Avoid code execution in load() via toString property + // (still use its own toString for arrays, timestamps, + // and whatever user schema extensions happen to have @@toStringTag) + if (typeof keyNode === 'object' && _class(keyNode) === '[object Object]') { + keyNode = '[object Object]'; + } + + + keyNode = String(keyNode); + + if (_result === null) { + _result = {}; + } + + if (keyTag === 'tag:yaml.org,2002:merge') { + if (Array.isArray(valueNode)) { + for (index = 0, quantity = valueNode.length; index < quantity; index += 1) { + mergeMappings(state, _result, valueNode[index], overridableKeys); + } + } else { + mergeMappings(state, _result, valueNode, overridableKeys); + } + } else { + if (!state.json && + !_hasOwnProperty.call(overridableKeys, keyNode) && + _hasOwnProperty.call(_result, keyNode)) { + state.line = startLine || state.line; + state.position = startPos || state.position; + throwError(state, 'duplicated mapping key'); + } + setProperty(_result, keyNode, valueNode); + delete overridableKeys[keyNode]; + } + + return _result; +} + +function readLineBreak(state) { + var ch; + + ch = state.input.charCodeAt(state.position); + + if (ch === 0x0A/* LF */) { + state.position++; + } else if (ch === 0x0D/* CR */) { + state.position++; + if (state.input.charCodeAt(state.position) === 0x0A/* LF */) { + state.position++; + } + } else { + throwError(state, 'a line break is expected'); + } + + state.line += 1; + state.lineStart = state.position; +} + +function skipSeparationSpace(state, allowComments, checkIndent) { + var lineBreaks = 0, + ch = state.input.charCodeAt(state.position); + + while (ch !== 0) { + while (is_WHITE_SPACE(ch)) { + ch = state.input.charCodeAt(++state.position); + } + + if (allowComments && ch === 0x23/* # */) { + do { + ch = state.input.charCodeAt(++state.position); + } while (ch !== 0x0A/* LF */ && ch !== 0x0D/* CR */ && ch !== 0); + } + + if (is_EOL(ch)) { + readLineBreak(state); + + ch = state.input.charCodeAt(state.position); + lineBreaks++; + state.lineIndent = 0; + + while (ch === 0x20/* Space */) { + state.lineIndent++; + ch = state.input.charCodeAt(++state.position); + } + } else { + break; + } + } + + if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) { + throwWarning(state, 'deficient indentation'); + } + + return lineBreaks; +} + +function testDocumentSeparator(state) { + var _position = state.position, + ch; + + ch = state.input.charCodeAt(_position); + + // Condition state.position === state.lineStart is tested + // in parent on each call, for efficiency. No needs to test here again. + if ((ch === 0x2D/* - */ || ch === 0x2E/* . */) && + ch === state.input.charCodeAt(_position + 1) && + ch === state.input.charCodeAt(_position + 2)) { + + _position += 3; + + ch = state.input.charCodeAt(_position); + + if (ch === 0 || is_WS_OR_EOL(ch)) { + return true; + } + } + + return false; +} + +function writeFoldedLines(state, count) { + if (count === 1) { + state.result += ' '; + } else if (count > 1) { + state.result += common.repeat('\n', count - 1); + } +} + + +function readPlainScalar(state, nodeIndent, withinFlowCollection) { + var preceding, + following, + captureStart, + captureEnd, + hasPendingContent, + _line, + _lineStart, + _lineIndent, + _kind = state.kind, + _result = state.result, + ch; + + ch = state.input.charCodeAt(state.position); + + if (is_WS_OR_EOL(ch) || + is_FLOW_INDICATOR(ch) || + ch === 0x23/* # */ || + ch === 0x26/* & */ || + ch === 0x2A/* * */ || + ch === 0x21/* ! */ || + ch === 0x7C/* | */ || + ch === 0x3E/* > */ || + ch === 0x27/* ' */ || + ch === 0x22/* " */ || + ch === 0x25/* % */ || + ch === 0x40/* @ */ || + ch === 0x60/* ` */) { + return false; + } + + if (ch === 0x3F/* ? */ || ch === 0x2D/* - */) { + following = state.input.charCodeAt(state.position + 1); + + if (is_WS_OR_EOL(following) || + withinFlowCollection && is_FLOW_INDICATOR(following)) { + return false; + } + } + + state.kind = 'scalar'; + state.result = ''; + captureStart = captureEnd = state.position; + hasPendingContent = false; + + while (ch !== 0) { + if (ch === 0x3A/* : */) { + following = state.input.charCodeAt(state.position + 1); + + if (is_WS_OR_EOL(following) || + withinFlowCollection && is_FLOW_INDICATOR(following)) { + break; + } + + } else if (ch === 0x23/* # */) { + preceding = state.input.charCodeAt(state.position - 1); + + if (is_WS_OR_EOL(preceding)) { + break; + } + + } else if ((state.position === state.lineStart && testDocumentSeparator(state)) || + withinFlowCollection && is_FLOW_INDICATOR(ch)) { + break; + + } else if (is_EOL(ch)) { + _line = state.line; + _lineStart = state.lineStart; + _lineIndent = state.lineIndent; + skipSeparationSpace(state, false, -1); + + if (state.lineIndent >= nodeIndent) { + hasPendingContent = true; + ch = state.input.charCodeAt(state.position); + continue; + } else { + state.position = captureEnd; + state.line = _line; + state.lineStart = _lineStart; + state.lineIndent = _lineIndent; + break; + } + } + + if (hasPendingContent) { + captureSegment(state, captureStart, captureEnd, false); + writeFoldedLines(state, state.line - _line); + captureStart = captureEnd = state.position; + hasPendingContent = false; + } + + if (!is_WHITE_SPACE(ch)) { + captureEnd = state.position + 1; + } + + ch = state.input.charCodeAt(++state.position); + } + + captureSegment(state, captureStart, captureEnd, false); + + if (state.result) { + return true; + } + + state.kind = _kind; + state.result = _result; + return false; +} + +function readSingleQuotedScalar(state, nodeIndent) { + var ch, + captureStart, captureEnd; + + ch = state.input.charCodeAt(state.position); + + if (ch !== 0x27/* ' */) { + return false; + } + + state.kind = 'scalar'; + state.result = ''; + state.position++; + captureStart = captureEnd = state.position; + + while ((ch = state.input.charCodeAt(state.position)) !== 0) { + if (ch === 0x27/* ' */) { + captureSegment(state, captureStart, state.position, true); + ch = state.input.charCodeAt(++state.position); + + if (ch === 0x27/* ' */) { + captureStart = state.position; + state.position++; + captureEnd = state.position; + } else { + return true; + } + + } else if (is_EOL(ch)) { + captureSegment(state, captureStart, captureEnd, true); + writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent)); + captureStart = captureEnd = state.position; + + } else if (state.position === state.lineStart && testDocumentSeparator(state)) { + throwError(state, 'unexpected end of the document within a single quoted scalar'); + + } else { + state.position++; + captureEnd = state.position; + } + } + + throwError(state, 'unexpected end of the stream within a single quoted scalar'); +} + +function readDoubleQuotedScalar(state, nodeIndent) { + var captureStart, + captureEnd, + hexLength, + hexResult, + tmp, + ch; + + ch = state.input.charCodeAt(state.position); + + if (ch !== 0x22/* " */) { + return false; + } + + state.kind = 'scalar'; + state.result = ''; + state.position++; + captureStart = captureEnd = state.position; + + while ((ch = state.input.charCodeAt(state.position)) !== 0) { + if (ch === 0x22/* " */) { + captureSegment(state, captureStart, state.position, true); + state.position++; + return true; + + } else if (ch === 0x5C/* \ */) { + captureSegment(state, captureStart, state.position, true); + ch = state.input.charCodeAt(++state.position); + + if (is_EOL(ch)) { + skipSeparationSpace(state, false, nodeIndent); + + // TODO: rework to inline fn with no type cast? + } else if (ch < 256 && simpleEscapeCheck[ch]) { + state.result += simpleEscapeMap[ch]; + state.position++; + + } else if ((tmp = escapedHexLen(ch)) > 0) { + hexLength = tmp; + hexResult = 0; + + for (; hexLength > 0; hexLength--) { + ch = state.input.charCodeAt(++state.position); + + if ((tmp = fromHexCode(ch)) >= 0) { + hexResult = (hexResult << 4) + tmp; + + } else { + throwError(state, 'expected hexadecimal character'); + } + } + + state.result += charFromCodepoint(hexResult); + + state.position++; + + } else { + throwError(state, 'unknown escape sequence'); + } + + captureStart = captureEnd = state.position; + + } else if (is_EOL(ch)) { + captureSegment(state, captureStart, captureEnd, true); + writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent)); + captureStart = captureEnd = state.position; + + } else if (state.position === state.lineStart && testDocumentSeparator(state)) { + throwError(state, 'unexpected end of the document within a double quoted scalar'); + + } else { + state.position++; + captureEnd = state.position; + } + } + + throwError(state, 'unexpected end of the stream within a double quoted scalar'); +} + +function readFlowCollection(state, nodeIndent) { + var readNext = true, + _line, + _tag = state.tag, + _result, + _anchor = state.anchor, + following, + terminator, + isPair, + isExplicitPair, + isMapping, + overridableKeys = {}, + keyNode, + keyTag, + valueNode, + ch; + + ch = state.input.charCodeAt(state.position); + + if (ch === 0x5B/* [ */) { + terminator = 0x5D;/* ] */ + isMapping = false; + _result = []; + } else if (ch === 0x7B/* { */) { + terminator = 0x7D;/* } */ + isMapping = true; + _result = {}; + } else { + return false; + } + + if (state.anchor !== null) { + state.anchorMap[state.anchor] = _result; + } + + ch = state.input.charCodeAt(++state.position); + + while (ch !== 0) { + skipSeparationSpace(state, true, nodeIndent); + + ch = state.input.charCodeAt(state.position); + + if (ch === terminator) { + state.position++; + state.tag = _tag; + state.anchor = _anchor; + state.kind = isMapping ? 'mapping' : 'sequence'; + state.result = _result; + return true; + } else if (!readNext) { + throwError(state, 'missed comma between flow collection entries'); + } + + keyTag = keyNode = valueNode = null; + isPair = isExplicitPair = false; + + if (ch === 0x3F/* ? */) { + following = state.input.charCodeAt(state.position + 1); + + if (is_WS_OR_EOL(following)) { + isPair = isExplicitPair = true; + state.position++; + skipSeparationSpace(state, true, nodeIndent); + } + } + + _line = state.line; + composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true); + keyTag = state.tag; + keyNode = state.result; + skipSeparationSpace(state, true, nodeIndent); + + ch = state.input.charCodeAt(state.position); + + if ((isExplicitPair || state.line === _line) && ch === 0x3A/* : */) { + isPair = true; + ch = state.input.charCodeAt(++state.position); + skipSeparationSpace(state, true, nodeIndent); + composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true); + valueNode = state.result; + } + + if (isMapping) { + storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode); + } else if (isPair) { + _result.push(storeMappingPair(state, null, overridableKeys, keyTag, keyNode, valueNode)); + } else { + _result.push(keyNode); + } + + skipSeparationSpace(state, true, nodeIndent); + + ch = state.input.charCodeAt(state.position); + + if (ch === 0x2C/* , */) { + readNext = true; + ch = state.input.charCodeAt(++state.position); + } else { + readNext = false; + } + } + + throwError(state, 'unexpected end of the stream within a flow collection'); +} + +function readBlockScalar(state, nodeIndent) { + var captureStart, + folding, + chomping = CHOMPING_CLIP, + didReadContent = false, + detectedIndent = false, + textIndent = nodeIndent, + emptyLines = 0, + atMoreIndented = false, + tmp, + ch; + + ch = state.input.charCodeAt(state.position); + + if (ch === 0x7C/* | */) { + folding = false; + } else if (ch === 0x3E/* > */) { + folding = true; + } else { + return false; + } + + state.kind = 'scalar'; + state.result = ''; + + while (ch !== 0) { + ch = state.input.charCodeAt(++state.position); + + if (ch === 0x2B/* + */ || ch === 0x2D/* - */) { + if (CHOMPING_CLIP === chomping) { + chomping = (ch === 0x2B/* + */) ? CHOMPING_KEEP : CHOMPING_STRIP; + } else { + throwError(state, 'repeat of a chomping mode identifier'); + } + + } else if ((tmp = fromDecimalCode(ch)) >= 0) { + if (tmp === 0) { + throwError(state, 'bad explicit indentation width of a block scalar; it cannot be less than one'); + } else if (!detectedIndent) { + textIndent = nodeIndent + tmp - 1; + detectedIndent = true; + } else { + throwError(state, 'repeat of an indentation width identifier'); + } + + } else { + break; + } + } + + if (is_WHITE_SPACE(ch)) { + do { ch = state.input.charCodeAt(++state.position); } + while (is_WHITE_SPACE(ch)); + + if (ch === 0x23/* # */) { + do { ch = state.input.charCodeAt(++state.position); } + while (!is_EOL(ch) && (ch !== 0)); + } + } + + while (ch !== 0) { + readLineBreak(state); + state.lineIndent = 0; + + ch = state.input.charCodeAt(state.position); + + while ((!detectedIndent || state.lineIndent < textIndent) && + (ch === 0x20/* Space */)) { + state.lineIndent++; + ch = state.input.charCodeAt(++state.position); + } + + if (!detectedIndent && state.lineIndent > textIndent) { + textIndent = state.lineIndent; + } + + if (is_EOL(ch)) { + emptyLines++; + continue; + } + + // End of the scalar. + if (state.lineIndent < textIndent) { + + // Perform the chomping. + if (chomping === CHOMPING_KEEP) { + state.result += common.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines); + } else if (chomping === CHOMPING_CLIP) { + if (didReadContent) { // i.e. only if the scalar is not empty. + state.result += '\n'; + } + } + + // Break this `while` cycle and go to the funciton's epilogue. + break; + } + + // Folded style: use fancy rules to handle line breaks. + if (folding) { + + // Lines starting with white space characters (more-indented lines) are not folded. + if (is_WHITE_SPACE(ch)) { + atMoreIndented = true; + // except for the first content line (cf. Example 8.1) + state.result += common.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines); + + // End of more-indented block. + } else if (atMoreIndented) { + atMoreIndented = false; + state.result += common.repeat('\n', emptyLines + 1); + + // Just one line break - perceive as the same line. + } else if (emptyLines === 0) { + if (didReadContent) { // i.e. only if we have already read some scalar content. + state.result += ' '; + } + + // Several line breaks - perceive as different lines. + } else { + state.result += common.repeat('\n', emptyLines); + } + + // Literal style: just add exact number of line breaks between content lines. + } else { + // Keep all line breaks except the header line break. + state.result += common.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines); + } + + didReadContent = true; + detectedIndent = true; + emptyLines = 0; + captureStart = state.position; + + while (!is_EOL(ch) && (ch !== 0)) { + ch = state.input.charCodeAt(++state.position); + } + + captureSegment(state, captureStart, state.position, false); + } + + return true; +} + +function readBlockSequence(state, nodeIndent) { + var _line, + _tag = state.tag, + _anchor = state.anchor, + _result = [], + following, + detected = false, + ch; + + if (state.anchor !== null) { + state.anchorMap[state.anchor] = _result; + } + + ch = state.input.charCodeAt(state.position); + + while (ch !== 0) { + + if (ch !== 0x2D/* - */) { + break; + } + + following = state.input.charCodeAt(state.position + 1); + + if (!is_WS_OR_EOL(following)) { + break; + } + + detected = true; + state.position++; + + if (skipSeparationSpace(state, true, -1)) { + if (state.lineIndent <= nodeIndent) { + _result.push(null); + ch = state.input.charCodeAt(state.position); + continue; + } + } + + _line = state.line; + composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true); + _result.push(state.result); + skipSeparationSpace(state, true, -1); + + ch = state.input.charCodeAt(state.position); + + if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) { + throwError(state, 'bad indentation of a sequence entry'); + } else if (state.lineIndent < nodeIndent) { + break; + } + } + + if (detected) { + state.tag = _tag; + state.anchor = _anchor; + state.kind = 'sequence'; + state.result = _result; + return true; + } + return false; +} + +function readBlockMapping(state, nodeIndent, flowIndent) { + var following, + allowCompact, + _line, + _pos, + _tag = state.tag, + _anchor = state.anchor, + _result = {}, + overridableKeys = {}, + keyTag = null, + keyNode = null, + valueNode = null, + atExplicitKey = false, + detected = false, + ch; + + if (state.anchor !== null) { + state.anchorMap[state.anchor] = _result; + } + + ch = state.input.charCodeAt(state.position); + + while (ch !== 0) { + following = state.input.charCodeAt(state.position + 1); + _line = state.line; // Save the current line. + _pos = state.position; + + // + // Explicit notation case. There are two separate blocks: + // first for the key (denoted by "?") and second for the value (denoted by ":") + // + if ((ch === 0x3F/* ? */ || ch === 0x3A/* : */) && is_WS_OR_EOL(following)) { + + if (ch === 0x3F/* ? */) { + if (atExplicitKey) { + storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null); + keyTag = keyNode = valueNode = null; + } + + detected = true; + atExplicitKey = true; + allowCompact = true; + + } else if (atExplicitKey) { + // i.e. 0x3A/* : */ === character after the explicit key. + atExplicitKey = false; + allowCompact = true; + + } else { + throwError(state, 'incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line'); + } + + state.position += 1; + ch = following; + + // + // Implicit notation case. Flow-style node as the key first, then ":", and the value. + // + } else if (composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) { + + if (state.line === _line) { + ch = state.input.charCodeAt(state.position); + + while (is_WHITE_SPACE(ch)) { + ch = state.input.charCodeAt(++state.position); + } + + if (ch === 0x3A/* : */) { + ch = state.input.charCodeAt(++state.position); + + if (!is_WS_OR_EOL(ch)) { + throwError(state, 'a whitespace character is expected after the key-value separator within a block mapping'); + } + + if (atExplicitKey) { + storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null); + keyTag = keyNode = valueNode = null; + } + + detected = true; + atExplicitKey = false; + allowCompact = false; + keyTag = state.tag; + keyNode = state.result; + + } else if (detected) { + throwError(state, 'can not read an implicit mapping pair; a colon is missed'); + + } else { + state.tag = _tag; + state.anchor = _anchor; + return true; // Keep the result of `composeNode`. + } + + } else if (detected) { + throwError(state, 'can not read a block mapping entry; a multiline key may not be an implicit key'); + + } else { + state.tag = _tag; + state.anchor = _anchor; + return true; // Keep the result of `composeNode`. + } + + } else { + break; // Reading is done. Go to the epilogue. + } + + // + // Common reading code for both explicit and implicit notations. + // + if (state.line === _line || state.lineIndent > nodeIndent) { + if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) { + if (atExplicitKey) { + keyNode = state.result; + } else { + valueNode = state.result; + } + } + + if (!atExplicitKey) { + storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _pos); + keyTag = keyNode = valueNode = null; + } + + skipSeparationSpace(state, true, -1); + ch = state.input.charCodeAt(state.position); + } + + if (state.lineIndent > nodeIndent && (ch !== 0)) { + throwError(state, 'bad indentation of a mapping entry'); + } else if (state.lineIndent < nodeIndent) { + break; + } + } + + // + // Epilogue. + // + + // Special case: last mapping's node contains only the key in explicit notation. + if (atExplicitKey) { + storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null); + } + + // Expose the resulting mapping. + if (detected) { + state.tag = _tag; + state.anchor = _anchor; + state.kind = 'mapping'; + state.result = _result; + } + + return detected; +} + +function readTagProperty(state) { + var _position, + isVerbatim = false, + isNamed = false, + tagHandle, + tagName, + ch; + + ch = state.input.charCodeAt(state.position); + + if (ch !== 0x21/* ! */) return false; + + if (state.tag !== null) { + throwError(state, 'duplication of a tag property'); + } + + ch = state.input.charCodeAt(++state.position); + + if (ch === 0x3C/* < */) { + isVerbatim = true; + ch = state.input.charCodeAt(++state.position); + + } else if (ch === 0x21/* ! */) { + isNamed = true; + tagHandle = '!!'; + ch = state.input.charCodeAt(++state.position); + + } else { + tagHandle = '!'; + } + + _position = state.position; + + if (isVerbatim) { + do { ch = state.input.charCodeAt(++state.position); } + while (ch !== 0 && ch !== 0x3E/* > */); + + if (state.position < state.length) { + tagName = state.input.slice(_position, state.position); + ch = state.input.charCodeAt(++state.position); + } else { + throwError(state, 'unexpected end of the stream within a verbatim tag'); + } + } else { + while (ch !== 0 && !is_WS_OR_EOL(ch)) { + + if (ch === 0x21/* ! */) { + if (!isNamed) { + tagHandle = state.input.slice(_position - 1, state.position + 1); + + if (!PATTERN_TAG_HANDLE.test(tagHandle)) { + throwError(state, 'named tag handle cannot contain such characters'); + } + + isNamed = true; + _position = state.position + 1; + } else { + throwError(state, 'tag suffix cannot contain exclamation marks'); + } + } + + ch = state.input.charCodeAt(++state.position); + } + + tagName = state.input.slice(_position, state.position); + + if (PATTERN_FLOW_INDICATORS.test(tagName)) { + throwError(state, 'tag suffix cannot contain flow indicator characters'); + } + } + + if (tagName && !PATTERN_TAG_URI.test(tagName)) { + throwError(state, 'tag name cannot contain such characters: ' + tagName); + } + + if (isVerbatim) { + state.tag = tagName; + + } else if (_hasOwnProperty.call(state.tagMap, tagHandle)) { + state.tag = state.tagMap[tagHandle] + tagName; + + } else if (tagHandle === '!') { + state.tag = '!' + tagName; + + } else if (tagHandle === '!!') { + state.tag = 'tag:yaml.org,2002:' + tagName; + + } else { + throwError(state, 'undeclared tag handle "' + tagHandle + '"'); + } + + return true; +} + +function readAnchorProperty(state) { + var _position, + ch; + + ch = state.input.charCodeAt(state.position); + + if (ch !== 0x26/* & */) return false; + + if (state.anchor !== null) { + throwError(state, 'duplication of an anchor property'); + } + + ch = state.input.charCodeAt(++state.position); + _position = state.position; + + while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) { + ch = state.input.charCodeAt(++state.position); + } + + if (state.position === _position) { + throwError(state, 'name of an anchor node must contain at least one character'); + } + + state.anchor = state.input.slice(_position, state.position); + return true; +} + +function readAlias(state) { + var _position, alias, + ch; + + ch = state.input.charCodeAt(state.position); + + if (ch !== 0x2A/* * */) return false; + + ch = state.input.charCodeAt(++state.position); + _position = state.position; + + while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) { + ch = state.input.charCodeAt(++state.position); + } + + if (state.position === _position) { + throwError(state, 'name of an alias node must contain at least one character'); + } + + alias = state.input.slice(_position, state.position); + + if (!_hasOwnProperty.call(state.anchorMap, alias)) { + throwError(state, 'unidentified alias "' + alias + '"'); + } + + state.result = state.anchorMap[alias]; + skipSeparationSpace(state, true, -1); + return true; +} + +function composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) { + var allowBlockStyles, + allowBlockScalars, + allowBlockCollections, + indentStatus = 1, // 1: this>parent, 0: this=parent, -1: this parentIndent) { + indentStatus = 1; + } else if (state.lineIndent === parentIndent) { + indentStatus = 0; + } else if (state.lineIndent < parentIndent) { + indentStatus = -1; + } + } + } + + if (indentStatus === 1) { + while (readTagProperty(state) || readAnchorProperty(state)) { + if (skipSeparationSpace(state, true, -1)) { + atNewLine = true; + allowBlockCollections = allowBlockStyles; + + if (state.lineIndent > parentIndent) { + indentStatus = 1; + } else if (state.lineIndent === parentIndent) { + indentStatus = 0; + } else if (state.lineIndent < parentIndent) { + indentStatus = -1; + } + } else { + allowBlockCollections = false; + } + } + } + + if (allowBlockCollections) { + allowBlockCollections = atNewLine || allowCompact; + } + + if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) { + if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) { + flowIndent = parentIndent; + } else { + flowIndent = parentIndent + 1; + } + + blockIndent = state.position - state.lineStart; + + if (indentStatus === 1) { + if (allowBlockCollections && + (readBlockSequence(state, blockIndent) || + readBlockMapping(state, blockIndent, flowIndent)) || + readFlowCollection(state, flowIndent)) { + hasContent = true; + } else { + if ((allowBlockScalars && readBlockScalar(state, flowIndent)) || + readSingleQuotedScalar(state, flowIndent) || + readDoubleQuotedScalar(state, flowIndent)) { + hasContent = true; + + } else if (readAlias(state)) { + hasContent = true; + + if (state.tag !== null || state.anchor !== null) { + throwError(state, 'alias node should not have any properties'); + } + + } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) { + hasContent = true; + + if (state.tag === null) { + state.tag = '?'; + } + } + + if (state.anchor !== null) { + state.anchorMap[state.anchor] = state.result; + } + } + } else if (indentStatus === 0) { + // Special case: block sequences are allowed to have same indentation level as the parent. + // http://www.yaml.org/spec/1.2/spec.html#id2799784 + hasContent = allowBlockCollections && readBlockSequence(state, blockIndent); + } + } + + if (state.tag !== null && state.tag !== '!') { + if (state.tag === '?') { + // Implicit resolving is not allowed for non-scalar types, and '?' + // non-specific tag is only automatically assigned to plain scalars. + // + // We only need to check kind conformity in case user explicitly assigns '?' + // tag, for example like this: "! [0]" + // + if (state.result !== null && state.kind !== 'scalar') { + throwError(state, 'unacceptable node kind for ! tag; it should be "scalar", not "' + state.kind + '"'); + } + + for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) { + type = state.implicitTypes[typeIndex]; + + if (type.resolve(state.result)) { // `state.result` updated in resolver if matched + state.result = type.construct(state.result); + state.tag = type.tag; + if (state.anchor !== null) { + state.anchorMap[state.anchor] = state.result; + } + break; + } + } + } else if (_hasOwnProperty.call(state.typeMap[state.kind || 'fallback'], state.tag)) { + type = state.typeMap[state.kind || 'fallback'][state.tag]; + + if (state.result !== null && type.kind !== state.kind) { + throwError(state, 'unacceptable node kind for !<' + state.tag + '> tag; it should be "' + type.kind + '", not "' + state.kind + '"'); + } + + if (!type.resolve(state.result)) { // `state.result` updated in resolver if matched + throwError(state, 'cannot resolve a node with !<' + state.tag + '> explicit tag'); + } else { + state.result = type.construct(state.result); + if (state.anchor !== null) { + state.anchorMap[state.anchor] = state.result; + } + } + } else { + throwError(state, 'unknown tag !<' + state.tag + '>'); + } + } + + if (state.listener !== null) { + state.listener('close', state); + } + return state.tag !== null || state.anchor !== null || hasContent; +} + +function readDocument(state) { + var documentStart = state.position, + _position, + directiveName, + directiveArgs, + hasDirectives = false, + ch; + + state.version = null; + state.checkLineBreaks = state.legacy; + state.tagMap = {}; + state.anchorMap = {}; + + while ((ch = state.input.charCodeAt(state.position)) !== 0) { + skipSeparationSpace(state, true, -1); + + ch = state.input.charCodeAt(state.position); + + if (state.lineIndent > 0 || ch !== 0x25/* % */) { + break; + } + + hasDirectives = true; + ch = state.input.charCodeAt(++state.position); + _position = state.position; + + while (ch !== 0 && !is_WS_OR_EOL(ch)) { + ch = state.input.charCodeAt(++state.position); + } + + directiveName = state.input.slice(_position, state.position); + directiveArgs = []; + + if (directiveName.length < 1) { + throwError(state, 'directive name must not be less than one character in length'); + } + + while (ch !== 0) { + while (is_WHITE_SPACE(ch)) { + ch = state.input.charCodeAt(++state.position); + } + + if (ch === 0x23/* # */) { + do { ch = state.input.charCodeAt(++state.position); } + while (ch !== 0 && !is_EOL(ch)); + break; + } + + if (is_EOL(ch)) break; + + _position = state.position; + + while (ch !== 0 && !is_WS_OR_EOL(ch)) { + ch = state.input.charCodeAt(++state.position); + } + + directiveArgs.push(state.input.slice(_position, state.position)); + } + + if (ch !== 0) readLineBreak(state); + + if (_hasOwnProperty.call(directiveHandlers, directiveName)) { + directiveHandlers[directiveName](state, directiveName, directiveArgs); + } else { + throwWarning(state, 'unknown document directive "' + directiveName + '"'); + } + } + + skipSeparationSpace(state, true, -1); + + if (state.lineIndent === 0 && + state.input.charCodeAt(state.position) === 0x2D/* - */ && + state.input.charCodeAt(state.position + 1) === 0x2D/* - */ && + state.input.charCodeAt(state.position + 2) === 0x2D/* - */) { + state.position += 3; + skipSeparationSpace(state, true, -1); + + } else if (hasDirectives) { + throwError(state, 'directives end mark is expected'); + } + + composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true); + skipSeparationSpace(state, true, -1); + + if (state.checkLineBreaks && + PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) { + throwWarning(state, 'non-ASCII line breaks are interpreted as content'); + } + + state.documents.push(state.result); + + if (state.position === state.lineStart && testDocumentSeparator(state)) { + + if (state.input.charCodeAt(state.position) === 0x2E/* . */) { + state.position += 3; + skipSeparationSpace(state, true, -1); + } + return; + } + + if (state.position < (state.length - 1)) { + throwError(state, 'end of the stream or a document separator is expected'); + } else { + return; + } +} + + +function loadDocuments(input, options) { + input = String(input); + options = options || {}; + + if (input.length !== 0) { + + // Add tailing `\n` if not exists + if (input.charCodeAt(input.length - 1) !== 0x0A/* LF */ && + input.charCodeAt(input.length - 1) !== 0x0D/* CR */) { + input += '\n'; + } + + // Strip BOM + if (input.charCodeAt(0) === 0xFEFF) { + input = input.slice(1); + } + } + + var state = new State(input, options); + + var nullpos = input.indexOf('\0'); + + if (nullpos !== -1) { + state.position = nullpos; + throwError(state, 'null byte is not allowed in input'); + } + + // Use 0 as string terminator. That significantly simplifies bounds check. + state.input += '\0'; + + while (state.input.charCodeAt(state.position) === 0x20/* Space */) { + state.lineIndent += 1; + state.position += 1; + } + + while (state.position < (state.length - 1)) { + readDocument(state); + } + + return state.documents; +} + + +function loadAll(input, iterator, options) { + if (iterator !== null && typeof iterator === 'object' && typeof options === 'undefined') { + options = iterator; + iterator = null; + } + + var documents = loadDocuments(input, options); + + if (typeof iterator !== 'function') { + return documents; + } + + for (var index = 0, length = documents.length; index < length; index += 1) { + iterator(documents[index]); + } +} + + +function load(input, options) { + var documents = loadDocuments(input, options); + + if (documents.length === 0) { + /*eslint-disable no-undefined*/ + return undefined; + } else if (documents.length === 1) { + return documents[0]; + } + throw new YAMLException('expected a single document in the stream, but found more'); +} + + +function safeLoadAll(input, iterator, options) { + if (typeof iterator === 'object' && iterator !== null && typeof options === 'undefined') { + options = iterator; + iterator = null; + } + + return loadAll(input, iterator, common.extend({ schema: DEFAULT_SAFE_SCHEMA }, options)); +} + + +function safeLoad(input, options) { + return load(input, common.extend({ schema: DEFAULT_SAFE_SCHEMA }, options)); +} + + +module.exports.loadAll = loadAll; +module.exports.load = load; +module.exports.safeLoadAll = safeLoadAll; +module.exports.safeLoad = safeLoad; diff --git a/server/api/node_modules/js-yaml/lib/js-yaml/mark.js b/server/api/node_modules/js-yaml/lib/js-yaml/mark.js new file mode 100644 index 0000000..47b265c --- /dev/null +++ b/server/api/node_modules/js-yaml/lib/js-yaml/mark.js @@ -0,0 +1,76 @@ +'use strict'; + + +var common = require('./common'); + + +function Mark(name, buffer, position, line, column) { + this.name = name; + this.buffer = buffer; + this.position = position; + this.line = line; + this.column = column; +} + + +Mark.prototype.getSnippet = function getSnippet(indent, maxLength) { + var head, start, tail, end, snippet; + + if (!this.buffer) return null; + + indent = indent || 4; + maxLength = maxLength || 75; + + head = ''; + start = this.position; + + while (start > 0 && '\x00\r\n\x85\u2028\u2029'.indexOf(this.buffer.charAt(start - 1)) === -1) { + start -= 1; + if (this.position - start > (maxLength / 2 - 1)) { + head = ' ... '; + start += 5; + break; + } + } + + tail = ''; + end = this.position; + + while (end < this.buffer.length && '\x00\r\n\x85\u2028\u2029'.indexOf(this.buffer.charAt(end)) === -1) { + end += 1; + if (end - this.position > (maxLength / 2 - 1)) { + tail = ' ... '; + end -= 5; + break; + } + } + + snippet = this.buffer.slice(start, end); + + return common.repeat(' ', indent) + head + snippet + tail + '\n' + + common.repeat(' ', indent + this.position - start + head.length) + '^'; +}; + + +Mark.prototype.toString = function toString(compact) { + var snippet, where = ''; + + if (this.name) { + where += 'in "' + this.name + '" '; + } + + where += 'at line ' + (this.line + 1) + ', column ' + (this.column + 1); + + if (!compact) { + snippet = this.getSnippet(); + + if (snippet) { + where += ':\n' + snippet; + } + } + + return where; +}; + + +module.exports = Mark; diff --git a/server/api/node_modules/js-yaml/lib/js-yaml/schema.js b/server/api/node_modules/js-yaml/lib/js-yaml/schema.js new file mode 100644 index 0000000..ca7cf47 --- /dev/null +++ b/server/api/node_modules/js-yaml/lib/js-yaml/schema.js @@ -0,0 +1,108 @@ +'use strict'; + +/*eslint-disable max-len*/ + +var common = require('./common'); +var YAMLException = require('./exception'); +var Type = require('./type'); + + +function compileList(schema, name, result) { + var exclude = []; + + schema.include.forEach(function (includedSchema) { + result = compileList(includedSchema, name, result); + }); + + schema[name].forEach(function (currentType) { + result.forEach(function (previousType, previousIndex) { + if (previousType.tag === currentType.tag && previousType.kind === currentType.kind) { + exclude.push(previousIndex); + } + }); + + result.push(currentType); + }); + + return result.filter(function (type, index) { + return exclude.indexOf(index) === -1; + }); +} + + +function compileMap(/* lists... */) { + var result = { + scalar: {}, + sequence: {}, + mapping: {}, + fallback: {} + }, index, length; + + function collectType(type) { + result[type.kind][type.tag] = result['fallback'][type.tag] = type; + } + + for (index = 0, length = arguments.length; index < length; index += 1) { + arguments[index].forEach(collectType); + } + return result; +} + + +function Schema(definition) { + this.include = definition.include || []; + this.implicit = definition.implicit || []; + this.explicit = definition.explicit || []; + + this.implicit.forEach(function (type) { + if (type.loadKind && type.loadKind !== 'scalar') { + throw new YAMLException('There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.'); + } + }); + + this.compiledImplicit = compileList(this, 'implicit', []); + this.compiledExplicit = compileList(this, 'explicit', []); + this.compiledTypeMap = compileMap(this.compiledImplicit, this.compiledExplicit); +} + + +Schema.DEFAULT = null; + + +Schema.create = function createSchema() { + var schemas, types; + + switch (arguments.length) { + case 1: + schemas = Schema.DEFAULT; + types = arguments[0]; + break; + + case 2: + schemas = arguments[0]; + types = arguments[1]; + break; + + default: + throw new YAMLException('Wrong number of arguments for Schema.create function'); + } + + schemas = common.toArray(schemas); + types = common.toArray(types); + + if (!schemas.every(function (schema) { return schema instanceof Schema; })) { + throw new YAMLException('Specified list of super schemas (or a single Schema object) contains a non-Schema object.'); + } + + if (!types.every(function (type) { return type instanceof Type; })) { + throw new YAMLException('Specified list of YAML types (or a single Type object) contains a non-Type object.'); + } + + return new Schema({ + include: schemas, + explicit: types + }); +}; + + +module.exports = Schema; diff --git a/server/api/node_modules/js-yaml/lib/js-yaml/schema/core.js b/server/api/node_modules/js-yaml/lib/js-yaml/schema/core.js new file mode 100644 index 0000000..206daab --- /dev/null +++ b/server/api/node_modules/js-yaml/lib/js-yaml/schema/core.js @@ -0,0 +1,18 @@ +// Standard YAML's Core schema. +// http://www.yaml.org/spec/1.2/spec.html#id2804923 +// +// NOTE: JS-YAML does not support schema-specific tag resolution restrictions. +// So, Core schema has no distinctions from JSON schema is JS-YAML. + + +'use strict'; + + +var Schema = require('../schema'); + + +module.exports = new Schema({ + include: [ + require('./json') + ] +}); diff --git a/server/api/node_modules/js-yaml/lib/js-yaml/schema/default_full.js b/server/api/node_modules/js-yaml/lib/js-yaml/schema/default_full.js new file mode 100644 index 0000000..a55ef42 --- /dev/null +++ b/server/api/node_modules/js-yaml/lib/js-yaml/schema/default_full.js @@ -0,0 +1,25 @@ +// JS-YAML's default schema for `load` function. +// It is not described in the YAML specification. +// +// This schema is based on JS-YAML's default safe schema and includes +// JavaScript-specific types: !!js/undefined, !!js/regexp and !!js/function. +// +// Also this schema is used as default base schema at `Schema.create` function. + + +'use strict'; + + +var Schema = require('../schema'); + + +module.exports = Schema.DEFAULT = new Schema({ + include: [ + require('./default_safe') + ], + explicit: [ + require('../type/js/undefined'), + require('../type/js/regexp'), + require('../type/js/function') + ] +}); diff --git a/server/api/node_modules/js-yaml/lib/js-yaml/schema/default_safe.js b/server/api/node_modules/js-yaml/lib/js-yaml/schema/default_safe.js new file mode 100644 index 0000000..11d89bb --- /dev/null +++ b/server/api/node_modules/js-yaml/lib/js-yaml/schema/default_safe.js @@ -0,0 +1,28 @@ +// JS-YAML's default schema for `safeLoad` function. +// It is not described in the YAML specification. +// +// This schema is based on standard YAML's Core schema and includes most of +// extra types described at YAML tag repository. (http://yaml.org/type/) + + +'use strict'; + + +var Schema = require('../schema'); + + +module.exports = new Schema({ + include: [ + require('./core') + ], + implicit: [ + require('../type/timestamp'), + require('../type/merge') + ], + explicit: [ + require('../type/binary'), + require('../type/omap'), + require('../type/pairs'), + require('../type/set') + ] +}); diff --git a/server/api/node_modules/js-yaml/lib/js-yaml/schema/failsafe.js b/server/api/node_modules/js-yaml/lib/js-yaml/schema/failsafe.js new file mode 100644 index 0000000..b7a33eb --- /dev/null +++ b/server/api/node_modules/js-yaml/lib/js-yaml/schema/failsafe.js @@ -0,0 +1,17 @@ +// Standard YAML's Failsafe schema. +// http://www.yaml.org/spec/1.2/spec.html#id2802346 + + +'use strict'; + + +var Schema = require('../schema'); + + +module.exports = new Schema({ + explicit: [ + require('../type/str'), + require('../type/seq'), + require('../type/map') + ] +}); diff --git a/server/api/node_modules/js-yaml/lib/js-yaml/schema/json.js b/server/api/node_modules/js-yaml/lib/js-yaml/schema/json.js new file mode 100644 index 0000000..5be3dbf --- /dev/null +++ b/server/api/node_modules/js-yaml/lib/js-yaml/schema/json.js @@ -0,0 +1,25 @@ +// Standard YAML's JSON schema. +// http://www.yaml.org/spec/1.2/spec.html#id2803231 +// +// NOTE: JS-YAML does not support schema-specific tag resolution restrictions. +// So, this schema is not such strict as defined in the YAML specification. +// It allows numbers in binary notaion, use `Null` and `NULL` as `null`, etc. + + +'use strict'; + + +var Schema = require('../schema'); + + +module.exports = new Schema({ + include: [ + require('./failsafe') + ], + implicit: [ + require('../type/null'), + require('../type/bool'), + require('../type/int'), + require('../type/float') + ] +}); diff --git a/server/api/node_modules/js-yaml/lib/js-yaml/type.js b/server/api/node_modules/js-yaml/lib/js-yaml/type.js new file mode 100644 index 0000000..90b702a --- /dev/null +++ b/server/api/node_modules/js-yaml/lib/js-yaml/type.js @@ -0,0 +1,61 @@ +'use strict'; + +var YAMLException = require('./exception'); + +var TYPE_CONSTRUCTOR_OPTIONS = [ + 'kind', + 'resolve', + 'construct', + 'instanceOf', + 'predicate', + 'represent', + 'defaultStyle', + 'styleAliases' +]; + +var YAML_NODE_KINDS = [ + 'scalar', + 'sequence', + 'mapping' +]; + +function compileStyleAliases(map) { + var result = {}; + + if (map !== null) { + Object.keys(map).forEach(function (style) { + map[style].forEach(function (alias) { + result[String(alias)] = style; + }); + }); + } + + return result; +} + +function Type(tag, options) { + options = options || {}; + + Object.keys(options).forEach(function (name) { + if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) { + throw new YAMLException('Unknown option "' + name + '" is met in definition of "' + tag + '" YAML type.'); + } + }); + + // TODO: Add tag format check. + this.tag = tag; + this.kind = options['kind'] || null; + this.resolve = options['resolve'] || function () { return true; }; + this.construct = options['construct'] || function (data) { return data; }; + this.instanceOf = options['instanceOf'] || null; + this.predicate = options['predicate'] || null; + this.represent = options['represent'] || null; + this.defaultStyle = options['defaultStyle'] || null; + this.styleAliases = compileStyleAliases(options['styleAliases'] || null); + + if (YAML_NODE_KINDS.indexOf(this.kind) === -1) { + throw new YAMLException('Unknown kind "' + this.kind + '" is specified for "' + tag + '" YAML type.'); + } +} + +module.exports = Type; diff --git a/server/api/node_modules/js-yaml/lib/js-yaml/type/binary.js b/server/api/node_modules/js-yaml/lib/js-yaml/type/binary.js new file mode 100644 index 0000000..10b1875 --- /dev/null +++ b/server/api/node_modules/js-yaml/lib/js-yaml/type/binary.js @@ -0,0 +1,138 @@ +'use strict'; + +/*eslint-disable no-bitwise*/ + +var NodeBuffer; + +try { + // A trick for browserified version, to not include `Buffer` shim + var _require = require; + NodeBuffer = _require('buffer').Buffer; +} catch (__) {} + +var Type = require('../type'); + + +// [ 64, 65, 66 ] -> [ padding, CR, LF ] +var BASE64_MAP = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r'; + + +function resolveYamlBinary(data) { + if (data === null) return false; + + var code, idx, bitlen = 0, max = data.length, map = BASE64_MAP; + + // Convert one by one. + for (idx = 0; idx < max; idx++) { + code = map.indexOf(data.charAt(idx)); + + // Skip CR/LF + if (code > 64) continue; + + // Fail on illegal characters + if (code < 0) return false; + + bitlen += 6; + } + + // If there are any bits left, source was corrupted + return (bitlen % 8) === 0; +} + +function constructYamlBinary(data) { + var idx, tailbits, + input = data.replace(/[\r\n=]/g, ''), // remove CR/LF & padding to simplify scan + max = input.length, + map = BASE64_MAP, + bits = 0, + result = []; + + // Collect by 6*4 bits (3 bytes) + + for (idx = 0; idx < max; idx++) { + if ((idx % 4 === 0) && idx) { + result.push((bits >> 16) & 0xFF); + result.push((bits >> 8) & 0xFF); + result.push(bits & 0xFF); + } + + bits = (bits << 6) | map.indexOf(input.charAt(idx)); + } + + // Dump tail + + tailbits = (max % 4) * 6; + + if (tailbits === 0) { + result.push((bits >> 16) & 0xFF); + result.push((bits >> 8) & 0xFF); + result.push(bits & 0xFF); + } else if (tailbits === 18) { + result.push((bits >> 10) & 0xFF); + result.push((bits >> 2) & 0xFF); + } else if (tailbits === 12) { + result.push((bits >> 4) & 0xFF); + } + + // Wrap into Buffer for NodeJS and leave Array for browser + if (NodeBuffer) { + // Support node 6.+ Buffer API when available + return NodeBuffer.from ? NodeBuffer.from(result) : new NodeBuffer(result); + } + + return result; +} + +function representYamlBinary(object /*, style*/) { + var result = '', bits = 0, idx, tail, + max = object.length, + map = BASE64_MAP; + + // Convert every three bytes to 4 ASCII characters. + + for (idx = 0; idx < max; idx++) { + if ((idx % 3 === 0) && idx) { + result += map[(bits >> 18) & 0x3F]; + result += map[(bits >> 12) & 0x3F]; + result += map[(bits >> 6) & 0x3F]; + result += map[bits & 0x3F]; + } + + bits = (bits << 8) + object[idx]; + } + + // Dump tail + + tail = max % 3; + + if (tail === 0) { + result += map[(bits >> 18) & 0x3F]; + result += map[(bits >> 12) & 0x3F]; + result += map[(bits >> 6) & 0x3F]; + result += map[bits & 0x3F]; + } else if (tail === 2) { + result += map[(bits >> 10) & 0x3F]; + result += map[(bits >> 4) & 0x3F]; + result += map[(bits << 2) & 0x3F]; + result += map[64]; + } else if (tail === 1) { + result += map[(bits >> 2) & 0x3F]; + result += map[(bits << 4) & 0x3F]; + result += map[64]; + result += map[64]; + } + + return result; +} + +function isBinary(object) { + return NodeBuffer && NodeBuffer.isBuffer(object); +} + +module.exports = new Type('tag:yaml.org,2002:binary', { + kind: 'scalar', + resolve: resolveYamlBinary, + construct: constructYamlBinary, + predicate: isBinary, + represent: representYamlBinary +}); diff --git a/server/api/node_modules/js-yaml/lib/js-yaml/type/bool.js b/server/api/node_modules/js-yaml/lib/js-yaml/type/bool.js new file mode 100644 index 0000000..cb77459 --- /dev/null +++ b/server/api/node_modules/js-yaml/lib/js-yaml/type/bool.js @@ -0,0 +1,35 @@ +'use strict'; + +var Type = require('../type'); + +function resolveYamlBoolean(data) { + if (data === null) return false; + + var max = data.length; + + return (max === 4 && (data === 'true' || data === 'True' || data === 'TRUE')) || + (max === 5 && (data === 'false' || data === 'False' || data === 'FALSE')); +} + +function constructYamlBoolean(data) { + return data === 'true' || + data === 'True' || + data === 'TRUE'; +} + +function isBoolean(object) { + return Object.prototype.toString.call(object) === '[object Boolean]'; +} + +module.exports = new Type('tag:yaml.org,2002:bool', { + kind: 'scalar', + resolve: resolveYamlBoolean, + construct: constructYamlBoolean, + predicate: isBoolean, + represent: { + lowercase: function (object) { return object ? 'true' : 'false'; }, + uppercase: function (object) { return object ? 'TRUE' : 'FALSE'; }, + camelcase: function (object) { return object ? 'True' : 'False'; } + }, + defaultStyle: 'lowercase' +}); diff --git a/server/api/node_modules/js-yaml/lib/js-yaml/type/float.js b/server/api/node_modules/js-yaml/lib/js-yaml/type/float.js new file mode 100644 index 0000000..127671b --- /dev/null +++ b/server/api/node_modules/js-yaml/lib/js-yaml/type/float.js @@ -0,0 +1,116 @@ +'use strict'; + +var common = require('../common'); +var Type = require('../type'); + +var YAML_FLOAT_PATTERN = new RegExp( + // 2.5e4, 2.5 and integers + '^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?' + + // .2e4, .2 + // special case, seems not from spec + '|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?' + + // 20:59 + '|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*' + + // .inf + '|[-+]?\\.(?:inf|Inf|INF)' + + // .nan + '|\\.(?:nan|NaN|NAN))$'); + +function resolveYamlFloat(data) { + if (data === null) return false; + + if (!YAML_FLOAT_PATTERN.test(data) || + // Quick hack to not allow integers end with `_` + // Probably should update regexp & check speed + data[data.length - 1] === '_') { + return false; + } + + return true; +} + +function constructYamlFloat(data) { + var value, sign, base, digits; + + value = data.replace(/_/g, '').toLowerCase(); + sign = value[0] === '-' ? -1 : 1; + digits = []; + + if ('+-'.indexOf(value[0]) >= 0) { + value = value.slice(1); + } + + if (value === '.inf') { + return (sign === 1) ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY; + + } else if (value === '.nan') { + return NaN; + + } else if (value.indexOf(':') >= 0) { + value.split(':').forEach(function (v) { + digits.unshift(parseFloat(v, 10)); + }); + + value = 0.0; + base = 1; + + digits.forEach(function (d) { + value += d * base; + base *= 60; + }); + + return sign * value; + + } + return sign * parseFloat(value, 10); +} + + +var SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/; + +function representYamlFloat(object, style) { + var res; + + if (isNaN(object)) { + switch (style) { + case 'lowercase': return '.nan'; + case 'uppercase': return '.NAN'; + case 'camelcase': return '.NaN'; + } + } else if (Number.POSITIVE_INFINITY === object) { + switch (style) { + case 'lowercase': return '.inf'; + case 'uppercase': return '.INF'; + case 'camelcase': return '.Inf'; + } + } else if (Number.NEGATIVE_INFINITY === object) { + switch (style) { + case 'lowercase': return '-.inf'; + case 'uppercase': return '-.INF'; + case 'camelcase': return '-.Inf'; + } + } else if (common.isNegativeZero(object)) { + return '-0.0'; + } + + res = object.toString(10); + + // JS stringifier can build scientific format without dots: 5e-100, + // while YAML requres dot: 5.e-100. Fix it with simple hack + + return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace('e', '.e') : res; +} + +function isFloat(object) { + return (Object.prototype.toString.call(object) === '[object Number]') && + (object % 1 !== 0 || common.isNegativeZero(object)); +} + +module.exports = new Type('tag:yaml.org,2002:float', { + kind: 'scalar', + resolve: resolveYamlFloat, + construct: constructYamlFloat, + predicate: isFloat, + represent: representYamlFloat, + defaultStyle: 'lowercase' +}); diff --git a/server/api/node_modules/js-yaml/lib/js-yaml/type/int.js b/server/api/node_modules/js-yaml/lib/js-yaml/type/int.js new file mode 100644 index 0000000..ba61c5f --- /dev/null +++ b/server/api/node_modules/js-yaml/lib/js-yaml/type/int.js @@ -0,0 +1,173 @@ +'use strict'; + +var common = require('../common'); +var Type = require('../type'); + +function isHexCode(c) { + return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) || + ((0x41/* A */ <= c) && (c <= 0x46/* F */)) || + ((0x61/* a */ <= c) && (c <= 0x66/* f */)); +} + +function isOctCode(c) { + return ((0x30/* 0 */ <= c) && (c <= 0x37/* 7 */)); +} + +function isDecCode(c) { + return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)); +} + +function resolveYamlInteger(data) { + if (data === null) return false; + + var max = data.length, + index = 0, + hasDigits = false, + ch; + + if (!max) return false; + + ch = data[index]; + + // sign + if (ch === '-' || ch === '+') { + ch = data[++index]; + } + + if (ch === '0') { + // 0 + if (index + 1 === max) return true; + ch = data[++index]; + + // base 2, base 8, base 16 + + if (ch === 'b') { + // base 2 + index++; + + for (; index < max; index++) { + ch = data[index]; + if (ch === '_') continue; + if (ch !== '0' && ch !== '1') return false; + hasDigits = true; + } + return hasDigits && ch !== '_'; + } + + + if (ch === 'x') { + // base 16 + index++; + + for (; index < max; index++) { + ch = data[index]; + if (ch === '_') continue; + if (!isHexCode(data.charCodeAt(index))) return false; + hasDigits = true; + } + return hasDigits && ch !== '_'; + } + + // base 8 + for (; index < max; index++) { + ch = data[index]; + if (ch === '_') continue; + if (!isOctCode(data.charCodeAt(index))) return false; + hasDigits = true; + } + return hasDigits && ch !== '_'; + } + + // base 10 (except 0) or base 60 + + // value should not start with `_`; + if (ch === '_') return false; + + for (; index < max; index++) { + ch = data[index]; + if (ch === '_') continue; + if (ch === ':') break; + if (!isDecCode(data.charCodeAt(index))) { + return false; + } + hasDigits = true; + } + + // Should have digits and should not end with `_` + if (!hasDigits || ch === '_') return false; + + // if !base60 - done; + if (ch !== ':') return true; + + // base60 almost not used, no needs to optimize + return /^(:[0-5]?[0-9])+$/.test(data.slice(index)); +} + +function constructYamlInteger(data) { + var value = data, sign = 1, ch, base, digits = []; + + if (value.indexOf('_') !== -1) { + value = value.replace(/_/g, ''); + } + + ch = value[0]; + + if (ch === '-' || ch === '+') { + if (ch === '-') sign = -1; + value = value.slice(1); + ch = value[0]; + } + + if (value === '0') return 0; + + if (ch === '0') { + if (value[1] === 'b') return sign * parseInt(value.slice(2), 2); + if (value[1] === 'x') return sign * parseInt(value, 16); + return sign * parseInt(value, 8); + } + + if (value.indexOf(':') !== -1) { + value.split(':').forEach(function (v) { + digits.unshift(parseInt(v, 10)); + }); + + value = 0; + base = 1; + + digits.forEach(function (d) { + value += (d * base); + base *= 60; + }); + + return sign * value; + + } + + return sign * parseInt(value, 10); +} + +function isInteger(object) { + return (Object.prototype.toString.call(object)) === '[object Number]' && + (object % 1 === 0 && !common.isNegativeZero(object)); +} + +module.exports = new Type('tag:yaml.org,2002:int', { + kind: 'scalar', + resolve: resolveYamlInteger, + construct: constructYamlInteger, + predicate: isInteger, + represent: { + binary: function (obj) { return obj >= 0 ? '0b' + obj.toString(2) : '-0b' + obj.toString(2).slice(1); }, + octal: function (obj) { return obj >= 0 ? '0' + obj.toString(8) : '-0' + obj.toString(8).slice(1); }, + decimal: function (obj) { return obj.toString(10); }, + /* eslint-disable max-len */ + hexadecimal: function (obj) { return obj >= 0 ? '0x' + obj.toString(16).toUpperCase() : '-0x' + obj.toString(16).toUpperCase().slice(1); } + }, + defaultStyle: 'decimal', + styleAliases: { + binary: [ 2, 'bin' ], + octal: [ 8, 'oct' ], + decimal: [ 10, 'dec' ], + hexadecimal: [ 16, 'hex' ] + } +}); diff --git a/server/api/node_modules/js-yaml/lib/js-yaml/type/js/function.js b/server/api/node_modules/js-yaml/lib/js-yaml/type/js/function.js new file mode 100644 index 0000000..8fab8c4 --- /dev/null +++ b/server/api/node_modules/js-yaml/lib/js-yaml/type/js/function.js @@ -0,0 +1,93 @@ +'use strict'; + +var esprima; + +// Browserified version does not have esprima +// +// 1. For node.js just require module as deps +// 2. For browser try to require mudule via external AMD system. +// If not found - try to fallback to window.esprima. If not +// found too - then fail to parse. +// +try { + // workaround to exclude package from browserify list. + var _require = require; + esprima = _require('esprima'); +} catch (_) { + /* eslint-disable no-redeclare */ + /* global window */ + if (typeof window !== 'undefined') esprima = window.esprima; +} + +var Type = require('../../type'); + +function resolveJavascriptFunction(data) { + if (data === null) return false; + + try { + var source = '(' + data + ')', + ast = esprima.parse(source, { range: true }); + + if (ast.type !== 'Program' || + ast.body.length !== 1 || + ast.body[0].type !== 'ExpressionStatement' || + (ast.body[0].expression.type !== 'ArrowFunctionExpression' && + ast.body[0].expression.type !== 'FunctionExpression')) { + return false; + } + + return true; + } catch (err) { + return false; + } +} + +function constructJavascriptFunction(data) { + /*jslint evil:true*/ + + var source = '(' + data + ')', + ast = esprima.parse(source, { range: true }), + params = [], + body; + + if (ast.type !== 'Program' || + ast.body.length !== 1 || + ast.body[0].type !== 'ExpressionStatement' || + (ast.body[0].expression.type !== 'ArrowFunctionExpression' && + ast.body[0].expression.type !== 'FunctionExpression')) { + throw new Error('Failed to resolve function'); + } + + ast.body[0].expression.params.forEach(function (param) { + params.push(param.name); + }); + + body = ast.body[0].expression.body.range; + + // Esprima's ranges include the first '{' and the last '}' characters on + // function expressions. So cut them out. + if (ast.body[0].expression.body.type === 'BlockStatement') { + /*eslint-disable no-new-func*/ + return new Function(params, source.slice(body[0] + 1, body[1] - 1)); + } + // ES6 arrow functions can omit the BlockStatement. In that case, just return + // the body. + /*eslint-disable no-new-func*/ + return new Function(params, 'return ' + source.slice(body[0], body[1])); +} + +function representJavascriptFunction(object /*, style*/) { + return object.toString(); +} + +function isFunction(object) { + return Object.prototype.toString.call(object) === '[object Function]'; +} + +module.exports = new Type('tag:yaml.org,2002:js/function', { + kind: 'scalar', + resolve: resolveJavascriptFunction, + construct: constructJavascriptFunction, + predicate: isFunction, + represent: representJavascriptFunction +}); diff --git a/server/api/node_modules/js-yaml/lib/js-yaml/type/js/regexp.js b/server/api/node_modules/js-yaml/lib/js-yaml/type/js/regexp.js new file mode 100644 index 0000000..43fa470 --- /dev/null +++ b/server/api/node_modules/js-yaml/lib/js-yaml/type/js/regexp.js @@ -0,0 +1,60 @@ +'use strict'; + +var Type = require('../../type'); + +function resolveJavascriptRegExp(data) { + if (data === null) return false; + if (data.length === 0) return false; + + var regexp = data, + tail = /\/([gim]*)$/.exec(data), + modifiers = ''; + + // if regexp starts with '/' it can have modifiers and must be properly closed + // `/foo/gim` - modifiers tail can be maximum 3 chars + if (regexp[0] === '/') { + if (tail) modifiers = tail[1]; + + if (modifiers.length > 3) return false; + // if expression starts with /, is should be properly terminated + if (regexp[regexp.length - modifiers.length - 1] !== '/') return false; + } + + return true; +} + +function constructJavascriptRegExp(data) { + var regexp = data, + tail = /\/([gim]*)$/.exec(data), + modifiers = ''; + + // `/foo/gim` - tail can be maximum 4 chars + if (regexp[0] === '/') { + if (tail) modifiers = tail[1]; + regexp = regexp.slice(1, regexp.length - modifiers.length - 1); + } + + return new RegExp(regexp, modifiers); +} + +function representJavascriptRegExp(object /*, style*/) { + var result = '/' + object.source + '/'; + + if (object.global) result += 'g'; + if (object.multiline) result += 'm'; + if (object.ignoreCase) result += 'i'; + + return result; +} + +function isRegExp(object) { + return Object.prototype.toString.call(object) === '[object RegExp]'; +} + +module.exports = new Type('tag:yaml.org,2002:js/regexp', { + kind: 'scalar', + resolve: resolveJavascriptRegExp, + construct: constructJavascriptRegExp, + predicate: isRegExp, + represent: representJavascriptRegExp +}); diff --git a/server/api/node_modules/js-yaml/lib/js-yaml/type/js/undefined.js b/server/api/node_modules/js-yaml/lib/js-yaml/type/js/undefined.js new file mode 100644 index 0000000..95b5569 --- /dev/null +++ b/server/api/node_modules/js-yaml/lib/js-yaml/type/js/undefined.js @@ -0,0 +1,28 @@ +'use strict'; + +var Type = require('../../type'); + +function resolveJavascriptUndefined() { + return true; +} + +function constructJavascriptUndefined() { + /*eslint-disable no-undefined*/ + return undefined; +} + +function representJavascriptUndefined() { + return ''; +} + +function isUndefined(object) { + return typeof object === 'undefined'; +} + +module.exports = new Type('tag:yaml.org,2002:js/undefined', { + kind: 'scalar', + resolve: resolveJavascriptUndefined, + construct: constructJavascriptUndefined, + predicate: isUndefined, + represent: representJavascriptUndefined +}); diff --git a/server/api/node_modules/js-yaml/lib/js-yaml/type/map.js b/server/api/node_modules/js-yaml/lib/js-yaml/type/map.js new file mode 100644 index 0000000..f327bee --- /dev/null +++ b/server/api/node_modules/js-yaml/lib/js-yaml/type/map.js @@ -0,0 +1,8 @@ +'use strict'; + +var Type = require('../type'); + +module.exports = new Type('tag:yaml.org,2002:map', { + kind: 'mapping', + construct: function (data) { return data !== null ? data : {}; } +}); diff --git a/server/api/node_modules/js-yaml/lib/js-yaml/type/merge.js b/server/api/node_modules/js-yaml/lib/js-yaml/type/merge.js new file mode 100644 index 0000000..ae08a86 --- /dev/null +++ b/server/api/node_modules/js-yaml/lib/js-yaml/type/merge.js @@ -0,0 +1,12 @@ +'use strict'; + +var Type = require('../type'); + +function resolveYamlMerge(data) { + return data === '<<' || data === null; +} + +module.exports = new Type('tag:yaml.org,2002:merge', { + kind: 'scalar', + resolve: resolveYamlMerge +}); diff --git a/server/api/node_modules/js-yaml/lib/js-yaml/type/null.js b/server/api/node_modules/js-yaml/lib/js-yaml/type/null.js new file mode 100644 index 0000000..6874daa --- /dev/null +++ b/server/api/node_modules/js-yaml/lib/js-yaml/type/null.js @@ -0,0 +1,34 @@ +'use strict'; + +var Type = require('../type'); + +function resolveYamlNull(data) { + if (data === null) return true; + + var max = data.length; + + return (max === 1 && data === '~') || + (max === 4 && (data === 'null' || data === 'Null' || data === 'NULL')); +} + +function constructYamlNull() { + return null; +} + +function isNull(object) { + return object === null; +} + +module.exports = new Type('tag:yaml.org,2002:null', { + kind: 'scalar', + resolve: resolveYamlNull, + construct: constructYamlNull, + predicate: isNull, + represent: { + canonical: function () { return '~'; }, + lowercase: function () { return 'null'; }, + uppercase: function () { return 'NULL'; }, + camelcase: function () { return 'Null'; } + }, + defaultStyle: 'lowercase' +}); diff --git a/server/api/node_modules/js-yaml/lib/js-yaml/type/omap.js b/server/api/node_modules/js-yaml/lib/js-yaml/type/omap.js new file mode 100644 index 0000000..b2b5323 --- /dev/null +++ b/server/api/node_modules/js-yaml/lib/js-yaml/type/omap.js @@ -0,0 +1,44 @@ +'use strict'; + +var Type = require('../type'); + +var _hasOwnProperty = Object.prototype.hasOwnProperty; +var _toString = Object.prototype.toString; + +function resolveYamlOmap(data) { + if (data === null) return true; + + var objectKeys = [], index, length, pair, pairKey, pairHasKey, + object = data; + + for (index = 0, length = object.length; index < length; index += 1) { + pair = object[index]; + pairHasKey = false; + + if (_toString.call(pair) !== '[object Object]') return false; + + for (pairKey in pair) { + if (_hasOwnProperty.call(pair, pairKey)) { + if (!pairHasKey) pairHasKey = true; + else return false; + } + } + + if (!pairHasKey) return false; + + if (objectKeys.indexOf(pairKey) === -1) objectKeys.push(pairKey); + else return false; + } + + return true; +} + +function constructYamlOmap(data) { + return data !== null ? data : []; +} + +module.exports = new Type('tag:yaml.org,2002:omap', { + kind: 'sequence', + resolve: resolveYamlOmap, + construct: constructYamlOmap +}); diff --git a/server/api/node_modules/js-yaml/lib/js-yaml/type/pairs.js b/server/api/node_modules/js-yaml/lib/js-yaml/type/pairs.js new file mode 100644 index 0000000..74b5240 --- /dev/null +++ b/server/api/node_modules/js-yaml/lib/js-yaml/type/pairs.js @@ -0,0 +1,53 @@ +'use strict'; + +var Type = require('../type'); + +var _toString = Object.prototype.toString; + +function resolveYamlPairs(data) { + if (data === null) return true; + + var index, length, pair, keys, result, + object = data; + + result = new Array(object.length); + + for (index = 0, length = object.length; index < length; index += 1) { + pair = object[index]; + + if (_toString.call(pair) !== '[object Object]') return false; + + keys = Object.keys(pair); + + if (keys.length !== 1) return false; + + result[index] = [ keys[0], pair[keys[0]] ]; + } + + return true; +} + +function constructYamlPairs(data) { + if (data === null) return []; + + var index, length, pair, keys, result, + object = data; + + result = new Array(object.length); + + for (index = 0, length = object.length; index < length; index += 1) { + pair = object[index]; + + keys = Object.keys(pair); + + result[index] = [ keys[0], pair[keys[0]] ]; + } + + return result; +} + +module.exports = new Type('tag:yaml.org,2002:pairs', { + kind: 'sequence', + resolve: resolveYamlPairs, + construct: constructYamlPairs +}); diff --git a/server/api/node_modules/js-yaml/lib/js-yaml/type/seq.js b/server/api/node_modules/js-yaml/lib/js-yaml/type/seq.js new file mode 100644 index 0000000..be8f77f --- /dev/null +++ b/server/api/node_modules/js-yaml/lib/js-yaml/type/seq.js @@ -0,0 +1,8 @@ +'use strict'; + +var Type = require('../type'); + +module.exports = new Type('tag:yaml.org,2002:seq', { + kind: 'sequence', + construct: function (data) { return data !== null ? data : []; } +}); diff --git a/server/api/node_modules/js-yaml/lib/js-yaml/type/set.js b/server/api/node_modules/js-yaml/lib/js-yaml/type/set.js new file mode 100644 index 0000000..f885a32 --- /dev/null +++ b/server/api/node_modules/js-yaml/lib/js-yaml/type/set.js @@ -0,0 +1,29 @@ +'use strict'; + +var Type = require('../type'); + +var _hasOwnProperty = Object.prototype.hasOwnProperty; + +function resolveYamlSet(data) { + if (data === null) return true; + + var key, object = data; + + for (key in object) { + if (_hasOwnProperty.call(object, key)) { + if (object[key] !== null) return false; + } + } + + return true; +} + +function constructYamlSet(data) { + return data !== null ? data : {}; +} + +module.exports = new Type('tag:yaml.org,2002:set', { + kind: 'mapping', + resolve: resolveYamlSet, + construct: constructYamlSet +}); diff --git a/server/api/node_modules/js-yaml/lib/js-yaml/type/str.js b/server/api/node_modules/js-yaml/lib/js-yaml/type/str.js new file mode 100644 index 0000000..27acc10 --- /dev/null +++ b/server/api/node_modules/js-yaml/lib/js-yaml/type/str.js @@ -0,0 +1,8 @@ +'use strict'; + +var Type = require('../type'); + +module.exports = new Type('tag:yaml.org,2002:str', { + kind: 'scalar', + construct: function (data) { return data !== null ? data : ''; } +}); diff --git a/server/api/node_modules/js-yaml/lib/js-yaml/type/timestamp.js b/server/api/node_modules/js-yaml/lib/js-yaml/type/timestamp.js new file mode 100644 index 0000000..8fa9c58 --- /dev/null +++ b/server/api/node_modules/js-yaml/lib/js-yaml/type/timestamp.js @@ -0,0 +1,88 @@ +'use strict'; + +var Type = require('../type'); + +var YAML_DATE_REGEXP = new RegExp( + '^([0-9][0-9][0-9][0-9])' + // [1] year + '-([0-9][0-9])' + // [2] month + '-([0-9][0-9])$'); // [3] day + +var YAML_TIMESTAMP_REGEXP = new RegExp( + '^([0-9][0-9][0-9][0-9])' + // [1] year + '-([0-9][0-9]?)' + // [2] month + '-([0-9][0-9]?)' + // [3] day + '(?:[Tt]|[ \\t]+)' + // ... + '([0-9][0-9]?)' + // [4] hour + ':([0-9][0-9])' + // [5] minute + ':([0-9][0-9])' + // [6] second + '(?:\\.([0-9]*))?' + // [7] fraction + '(?:[ \\t]*(Z|([-+])([0-9][0-9]?)' + // [8] tz [9] tz_sign [10] tz_hour + '(?::([0-9][0-9]))?))?$'); // [11] tz_minute + +function resolveYamlTimestamp(data) { + if (data === null) return false; + if (YAML_DATE_REGEXP.exec(data) !== null) return true; + if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) return true; + return false; +} + +function constructYamlTimestamp(data) { + var match, year, month, day, hour, minute, second, fraction = 0, + delta = null, tz_hour, tz_minute, date; + + match = YAML_DATE_REGEXP.exec(data); + if (match === null) match = YAML_TIMESTAMP_REGEXP.exec(data); + + if (match === null) throw new Error('Date resolve error'); + + // match: [1] year [2] month [3] day + + year = +(match[1]); + month = +(match[2]) - 1; // JS month starts with 0 + day = +(match[3]); + + if (!match[4]) { // no hour + return new Date(Date.UTC(year, month, day)); + } + + // match: [4] hour [5] minute [6] second [7] fraction + + hour = +(match[4]); + minute = +(match[5]); + second = +(match[6]); + + if (match[7]) { + fraction = match[7].slice(0, 3); + while (fraction.length < 3) { // milli-seconds + fraction += '0'; + } + fraction = +fraction; + } + + // match: [8] tz [9] tz_sign [10] tz_hour [11] tz_minute + + if (match[9]) { + tz_hour = +(match[10]); + tz_minute = +(match[11] || 0); + delta = (tz_hour * 60 + tz_minute) * 60000; // delta in mili-seconds + if (match[9] === '-') delta = -delta; + } + + date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction)); + + if (delta) date.setTime(date.getTime() - delta); + + return date; +} + +function representYamlTimestamp(object /*, style*/) { + return object.toISOString(); +} + +module.exports = new Type('tag:yaml.org,2002:timestamp', { + kind: 'scalar', + resolve: resolveYamlTimestamp, + construct: constructYamlTimestamp, + instanceOf: Date, + represent: representYamlTimestamp +}); diff --git a/server/api/node_modules/js-yaml/package.json b/server/api/node_modules/js-yaml/package.json new file mode 100644 index 0000000..0d68bf6 --- /dev/null +++ b/server/api/node_modules/js-yaml/package.json @@ -0,0 +1,49 @@ +{ + "name": "js-yaml", + "version": "3.14.2", + "description": "YAML 1.2 parser and serializer", + "keywords": [ + "yaml", + "parser", + "serializer", + "pyyaml" + ], + "homepage": "https://github.com/nodeca/js-yaml", + "author": "Vladimir Zapparov ", + "contributors": [ + "Aleksey V Zapparov (http://www.ixti.net/)", + "Vitaly Puzrin (https://github.com/puzrin)", + "Martin Grenfell (http://got-ravings.blogspot.com)" + ], + "license": "MIT", + "repository": "nodeca/js-yaml", + "files": [ + "index.js", + "lib/", + "bin/", + "dist/" + ], + "bin": { + "js-yaml": "bin/js-yaml.js" + }, + "unpkg": "dist/js-yaml.min.js", + "jsdelivr": "dist/js-yaml.min.js", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "devDependencies": { + "ansi": "^0.3.1", + "benchmark": "^2.1.4", + "browserify": "^16.2.2", + "codemirror": "^5.13.4", + "eslint": "^7.0.0", + "fast-check": "^1.24.2", + "istanbul": "^0.4.5", + "mocha": "^7.1.2", + "uglify-js": "^3.0.1" + }, + "scripts": { + "test": "make test" + } +} diff --git a/server/api/node_modules/jsesc/LICENSE-MIT.txt b/server/api/node_modules/jsesc/LICENSE-MIT.txt new file mode 100644 index 0000000..a41e0a7 --- /dev/null +++ b/server/api/node_modules/jsesc/LICENSE-MIT.txt @@ -0,0 +1,20 @@ +Copyright Mathias Bynens + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/server/api/node_modules/jsesc/README.md b/server/api/node_modules/jsesc/README.md new file mode 100644 index 0000000..840d2c8 --- /dev/null +++ b/server/api/node_modules/jsesc/README.md @@ -0,0 +1,422 @@ +# jsesc + +Given some data, _jsesc_ returns a stringified representation of that data. jsesc is similar to `JSON.stringify()` except: + +1. it outputs JavaScript instead of JSON [by default](#json), enabling support for data structures like ES6 maps and sets; +2. it offers [many options](#api) to customize the output; +3. its output is ASCII-safe [by default](#minimal), thanks to its use of [escape sequences](https://mathiasbynens.be/notes/javascript-escapes) where needed. + +For any input, jsesc generates the shortest possible valid printable-ASCII-only output. [Here’s an online demo.](https://mothereff.in/js-escapes) + +jsesc’s output can be used instead of `JSON.stringify`’s to avoid [mojibake](https://en.wikipedia.org/wiki/Mojibake) and other encoding issues, or even to [avoid errors](https://twitter.com/annevk/status/380000829643571200) when passing JSON-formatted data (which may contain U+2028 LINE SEPARATOR, U+2029 PARAGRAPH SEPARATOR, or [lone surrogates](https://esdiscuss.org/topic/code-points-vs-unicode-scalar-values#content-14)) to a JavaScript parser or an UTF-8 encoder. + +## Installation + +Via [npm](https://www.npmjs.com/): + +```bash +npm install jsesc +``` + +In [Node.js](https://nodejs.org/): + +```js +const jsesc = require('jsesc'); +``` + +## API + +### `jsesc(value, options)` + +This function takes a value and returns an escaped version of the value where any characters that are not printable ASCII symbols are escaped using the shortest possible (but valid) [escape sequences for use in JavaScript strings](https://mathiasbynens.be/notes/javascript-escapes). The first supported value type is strings: + +```js +jsesc('Ich ♥ Bücher'); +// → 'Ich \\u2665 B\\xFCcher' + +jsesc('foo 𝌆 bar'); +// → 'foo \\uD834\\uDF06 bar' +``` + +Instead of a string, the `value` can also be an array, an object, a map, a set, or a buffer. In such cases, `jsesc` returns a stringified version of the value where any characters that are not printable ASCII symbols are escaped in the same way. + +```js +// Escaping an array +jsesc([ + 'Ich ♥ Bücher', 'foo 𝌆 bar' +]); +// → '[\'Ich \\u2665 B\\xFCcher\',\'foo \\uD834\\uDF06 bar\']' + +// Escaping an object +jsesc({ + 'Ich ♥ Bücher': 'foo 𝌆 bar' +}); +// → '{\'Ich \\u2665 B\\xFCcher\':\'foo \\uD834\\uDF06 bar\'}' +``` + +The optional `options` argument accepts an object with the following options: + +#### `quotes` + +The default value for the `quotes` option is `'single'`. This means that any occurrences of `'` in the input string are escaped as `\'`, so that the output can be used in a string literal wrapped in single quotes. + +```js +jsesc('`Lorem` ipsum "dolor" sit \'amet\' etc.'); +// → 'Lorem ipsum "dolor" sit \\\'amet\\\' etc.' + +jsesc('`Lorem` ipsum "dolor" sit \'amet\' etc.', { + 'quotes': 'single' +}); +// → '`Lorem` ipsum "dolor" sit \\\'amet\\\' etc.' +// → "`Lorem` ipsum \"dolor\" sit \\'amet\\' etc." +``` + +If you want to use the output as part of a string literal wrapped in double quotes, set the `quotes` option to `'double'`. + +```js +jsesc('`Lorem` ipsum "dolor" sit \'amet\' etc.', { + 'quotes': 'double' +}); +// → '`Lorem` ipsum \\"dolor\\" sit \'amet\' etc.' +// → "`Lorem` ipsum \\\"dolor\\\" sit 'amet' etc." +``` + +If you want to use the output as part of a template literal (i.e. wrapped in backticks), set the `quotes` option to `'backtick'`. + +```js +jsesc('`Lorem` ipsum "dolor" sit \'amet\' etc.', { + 'quotes': 'backtick' +}); +// → '\\`Lorem\\` ipsum "dolor" sit \'amet\' etc.' +// → "\\`Lorem\\` ipsum \"dolor\" sit 'amet' etc." +// → `\\\`Lorem\\\` ipsum "dolor" sit 'amet' etc.` +``` + +This setting also affects the output for arrays and objects: + +```js +jsesc({ 'Ich ♥ Bücher': 'foo 𝌆 bar' }, { + 'quotes': 'double' +}); +// → '{"Ich \\u2665 B\\xFCcher":"foo \\uD834\\uDF06 bar"}' + +jsesc([ 'Ich ♥ Bücher', 'foo 𝌆 bar' ], { + 'quotes': 'double' +}); +// → '["Ich \\u2665 B\\xFCcher","foo \\uD834\\uDF06 bar"]' +``` + +#### `numbers` + +The default value for the `numbers` option is `'decimal'`. This means that any numeric values are represented using decimal integer literals. Other valid options are `binary`, `octal`, and `hexadecimal`, which result in binary integer literals, octal integer literals, and hexadecimal integer literals, respectively. + +```js +jsesc(42, { + 'numbers': 'binary' +}); +// → '0b101010' + +jsesc(42, { + 'numbers': 'octal' +}); +// → '0o52' + +jsesc(42, { + 'numbers': 'decimal' +}); +// → '42' + +jsesc(42, { + 'numbers': 'hexadecimal' +}); +// → '0x2A' +``` + +#### `wrap` + +The `wrap` option takes a boolean value (`true` or `false`), and defaults to `false` (disabled). When enabled, the output is a valid JavaScript string literal wrapped in quotes. The type of quotes can be specified through the `quotes` setting. + +```js +jsesc('Lorem ipsum "dolor" sit \'amet\' etc.', { + 'quotes': 'single', + 'wrap': true +}); +// → '\'Lorem ipsum "dolor" sit \\\'amet\\\' etc.\'' +// → "\'Lorem ipsum \"dolor\" sit \\\'amet\\\' etc.\'" + +jsesc('Lorem ipsum "dolor" sit \'amet\' etc.', { + 'quotes': 'double', + 'wrap': true +}); +// → '"Lorem ipsum \\"dolor\\" sit \'amet\' etc."' +// → "\"Lorem ipsum \\\"dolor\\\" sit \'amet\' etc.\"" +``` + +#### `es6` + +The `es6` option takes a boolean value (`true` or `false`), and defaults to `false` (disabled). When enabled, any astral Unicode symbols in the input are escaped using [ECMAScript 6 Unicode code point escape sequences](https://mathiasbynens.be/notes/javascript-escapes#unicode-code-point) instead of using separate escape sequences for each surrogate half. If backwards compatibility with ES5 environments is a concern, don’t enable this setting. If the `json` setting is enabled, the value for the `es6` setting is ignored (as if it was `false`). + +```js +// By default, the `es6` option is disabled: +jsesc('foo 𝌆 bar 💩 baz'); +// → 'foo \\uD834\\uDF06 bar \\uD83D\\uDCA9 baz' + +// To explicitly disable it: +jsesc('foo 𝌆 bar 💩 baz', { + 'es6': false +}); +// → 'foo \\uD834\\uDF06 bar \\uD83D\\uDCA9 baz' + +// To enable it: +jsesc('foo 𝌆 bar 💩 baz', { + 'es6': true +}); +// → 'foo \\u{1D306} bar \\u{1F4A9} baz' +``` + +#### `escapeEverything` + +The `escapeEverything` option takes a boolean value (`true` or `false`), and defaults to `false` (disabled). When enabled, all the symbols in the output are escaped — even printable ASCII symbols. + +```js +jsesc('lolwat"foo\'bar', { + 'escapeEverything': true +}); +// → '\\x6C\\x6F\\x6C\\x77\\x61\\x74\\"\\x66\\x6F\\x6F\\\'\\x62\\x61\\x72' +// → "\\x6C\\x6F\\x6C\\x77\\x61\\x74\\\"\\x66\\x6F\\x6F\\'\\x62\\x61\\x72" +``` + +This setting also affects the output for string literals within arrays and objects. + +#### `minimal` + +The `minimal` option takes a boolean value (`true` or `false`), and defaults to `false` (disabled). When enabled, only a limited set of symbols in the output are escaped: + +* U+0000 `\0` +* U+0008 `\b` +* U+0009 `\t` +* U+000A `\n` +* U+000C `\f` +* U+000D `\r` +* U+005C `\\` +* U+2028 `\u2028` +* U+2029 `\u2029` +* whatever symbol is being used for wrapping string literals (based on [the `quotes` option](#quotes)) +* [lone surrogates](https://esdiscuss.org/topic/code-points-vs-unicode-scalar-values#content-14) + +Note: with this option enabled, jsesc output is no longer guaranteed to be ASCII-safe. + +```js +jsesc('foo\u2029bar\nbaz©qux𝌆flops', { + 'minimal': false +}); +// → 'foo\\u2029bar\\nbaz©qux𝌆flops' +``` + +#### `isScriptContext` + +The `isScriptContext` option takes a boolean value (`true` or `false`), and defaults to `false` (disabled). When enabled, occurrences of [`` or `